agent-skill-manager 1.2.0 → 1.3.0

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.
@@ -2,40 +2,40 @@
2
2
  // @bun
3
3
  var e=(A,q)=>()=>(A&&(q=A(A=0)),q);var Sa=(A)=>Promise.all(A);import{readFile as sj,writeFile as ij,mkdir as rj}from"fs/promises";import{join as s6,resolve as nj}from"path";import{homedir as oj}from"os";function ug(){return{version:1,providers:ej.map((A)=>({...A})),customPaths:[],preferences:{defaultScope:"both",defaultSort:"name"}}}function Rq(){return i6}function cq(A){if(A.startsWith("~/"))return s6(za,A.slice(2));if(A.startsWith("/"))return A;return nj(A)}function AZ(A){let q=ug(),g=A.providers||[],E=new Set(g.map((a)=>a.name));for(let a of q.providers)if(!E.has(a.name))g.push({...a});return{version:A.version??q.version,providers:g,customPaths:A.customPaths??[],preferences:{defaultScope:A.preferences?.defaultScope??q.preferences.defaultScope,defaultSort:A.preferences?.defaultSort??q.preferences.defaultSort}}}async function kA(){try{let A=await sj(i6,"utf-8"),q=JSON.parse(A);return AZ(q)}catch{let A=ug();return await Zg(A),A}}async function Zg(A){await rj(Ba,{recursive:!0}),await ij(i6,JSON.stringify(A,null,2)+`
4
4
  `,"utf-8")}var za,Ba,i6,ej;var vq=e(()=>{za=oj(),Ba=s6(za,".config","agent-skill-manager"),i6=s6(Ba,"config.json"),ej=[{name:"claude",label:"Claude Code",global:"~/.claude/skills",project:".claude/skills",enabled:!0},{name:"codex",label:"Codex",global:"~/.codex/skills",project:".codex/skills",enabled:!0},{name:"openclaw",label:"OpenClaw",global:"~/.openclaw/skills",project:".openclaw/skills",enabled:!0},{name:"agents",label:"Agents",global:"~/.agents/skills",project:".agents/skills",enabled:!0}]});function Ca(A){let q={},g=A.split(`
5
- `),E=!1,a=!1,F=null,K=[],Z="none",j=-1;function U(){if(F){let O=K.join(" ").trim();if(O)q[F]=O;F=null,K=[],Z="none",j=-1}}for(let O of g){if(O.trim()==="---")if(!a){a=!0,E=!0;continue}else{U();break}if(!E)continue;if(Z!=="none"&&F){let M=O.replace(/^\s*/,""),L=O.length-M.length;if(L>0&&M.length>0){if(j===-1)j=L;K.push(M);continue}else if(M.length===0)continue;else U()}let Q=O.match(/^(\w[\w-]*):\s*(.*?)\s*$/);if(Q){U();let M=Q[1],L=Q[2];if(L==="|"||L===">")F=M,K=[],Z=L==="|"?"literal":"folded";else if(L==="|+"||L===">+"||L==="|-"||L===">-")F=M,K=[],Z=L.startsWith("|")?"literal":"folded";else{let $=L.replace(/^["']|["']$/g,"");if($)q[M]=$}}}return U(),q}import{readdir as Da,stat as gZ,lstat as EZ,readlink as aZ,readFile as FZ}from"fs/promises";import{join as ka,resolve as KZ}from"path";function jZ(A,q){let g=[];for(let E of A.providers){if(!E.enabled)continue;if(q==="global"||q==="both")g.push({dir:cq(E.global),location:`global-${E.name}`,scope:"global",providerName:E.name,providerLabel:E.label});if(q==="project"||q==="both")g.push({dir:cq(E.project),location:`project-${E.name}`,scope:"project",providerName:E.name,providerLabel:E.label})}for(let E of A.customPaths)if(q===E.scope||q==="both")g.push({dir:cq(E.path),location:`${E.scope}-custom`,scope:E.scope,providerName:"custom",providerLabel:E.label});return g}async function ZZ(A){try{return(await Da(A,{recursive:!0})).length}catch{return 0}}async function UZ(A){let q=[],g;try{g=await Da(A.dir)}catch{return q}for(let E of g){let a=ka(A.dir,E);try{if(!(await gZ(a)).isDirectory())continue}catch{continue}let F=ka(a,"SKILL.md"),K;try{K=await FZ(F,"utf-8")}catch{continue}let Z=Ca(K),j=!1,U=null;try{if((await EZ(a)).isSymbolicLink())j=!0,U=await aZ(a)}catch{}let O=await ZZ(a);q.push({name:Z.name||E,version:Z.version||"0.0.0",description:(Z.description||"").replace(/\s*\n\s*/g," ").trim(),dirName:E,path:KZ(a),originalPath:a,location:A.location,scope:A.scope,provider:A.providerName,providerLabel:A.providerLabel,isSymlink:j,symlinkTarget:U,fileCount:O})}return q}async function eA(A,q){let g=jZ(A,q);return(await Promise.all(g.map(UZ))).flat()}function lg(A,q){if(!q.trim())return A;let g=q.toLowerCase();return A.filter((E)=>E.name.toLowerCase().includes(g)||E.description.toLowerCase().includes(g)||E.location.toLowerCase().includes(g)||E.providerLabel.toLowerCase().includes(g))}function Ug(A,q){let g=[...A];switch(q){case"name":g.sort((E,a)=>E.name.localeCompare(a.name));break;case"version":g.sort((E,a)=>E.version.localeCompare(a.version));break;case"location":g.sort((E,a)=>E.location.localeCompare(a.location));break}return g}var r6=e(()=>{vq()});import{rm as n6,readFile as ya,writeFile as _Z,access as OZ,lstat as GZ}from"fs/promises";import{join as wa,resolve as sg,dirname as QZ}from"path";import{homedir as YZ}from"os";function Og(A,q){let g={directories:[],ruleFiles:[],agentsBlocks:[]};g.directories.push({path:A.originalPath,isSymlink:A.isSymlink});let E=A.dirName;if(A.scope==="project")g.ruleFiles.push(sg(".cursor","rules",`${E}.mdc`),sg(".windsurf","rules",`${E}.md`),sg(".github","instructions",`${E}.instructions.md`)),g.agentsBlocks.push({file:sg("AGENTS.md"),skillName:E});if(A.scope==="global"){for(let K of q.providers){if(!K.enabled)continue;let Z=cq(K.global),j=wa(QZ(Z),"AGENTS.md");g.agentsBlocks.push({file:j,skillName:E})}let a=wa(MZ,".codex","AGENTS.md");if(!g.agentsBlocks.some((K)=>K.file===a))g.agentsBlocks.push({file:a,skillName:E})}return g}function ig(A,q,g){let E=q.filter((j)=>j.dirName===A);if(E.length===0)return{directories:[],ruleFiles:[],agentsBlocks:[]};let a={directories:[],ruleFiles:[],agentsBlocks:[]},F=new Set,K=new Set,Z=new Set;for(let j of E){let U=Og(j,g);for(let O of U.directories)if(!F.has(O.path))F.add(O.path),a.directories.push(O);for(let O of U.ruleFiles)if(!K.has(O))K.add(O),a.ruleFiles.push(O);for(let O of U.agentsBlocks){let Q=`${O.file}::${O.skillName}`;if(!Z.has(Q))Z.add(Q),a.agentsBlocks.push(O)}}return a}async function _g(A){try{return await OZ(A),!0}catch{return!1}}async function JZ(A,q){if(!await _g(A))return;let g=await ya(A,"utf-8");for(let E of["agent-skill-manager","skill-manager","pskills"]){let a=`<!-- ${E}: ${q} -->`,F=`<!-- /${E}: ${q} -->`,K=g.indexOf(a),Z=g.indexOf(F);if(K===-1||Z===-1)continue;let j=K;if(j>0&&g[j-1]===`
5
+ `),E=!1,a=!1,F=null,K=[],Z="none",j=-1;function U(){if(F){let O=K.join(" ").trim();if(O)q[F]=O;F=null,K=[],Z="none",j=-1}}for(let O of g){if(O.trim()==="---")if(!a){a=!0,E=!0;continue}else{U();break}if(!E)continue;if(Z!=="none"&&F){let M=O.replace(/^\s*/,""),L=O.length-M.length;if(L>0&&M.length>0){if(j===-1)j=L;K.push(M);continue}else if(M.length===0)continue;else U()}let Q=O.match(/^(\w[\w-]*):\s*(.*?)\s*$/);if(Q){U();let M=Q[1],L=Q[2];if(L==="|"||L===">")F=M,K=[],Z=L==="|"?"literal":"folded";else if(L==="|+"||L===">+"||L==="|-"||L===">-")F=M,K=[],Z=L.startsWith("|")?"literal":"folded";else{let $=L.replace(/^["']|["']$/g,"");if($)q[M]=$}}}return U(),q}import{readdir as Da,stat as gZ,lstat as EZ,readlink as aZ,readFile as FZ,realpath as KZ}from"fs/promises";import{join as ka,resolve as jZ}from"path";function ZZ(A,q){let g=[];for(let E of A.providers){if(!E.enabled)continue;if(q==="global"||q==="both")g.push({dir:cq(E.global),location:`global-${E.name}`,scope:"global",providerName:E.name,providerLabel:E.label});if(q==="project"||q==="both")g.push({dir:cq(E.project),location:`project-${E.name}`,scope:"project",providerName:E.name,providerLabel:E.label})}for(let E of A.customPaths)if(q===E.scope||q==="both")g.push({dir:cq(E.path),location:`${E.scope}-custom`,scope:E.scope,providerName:"custom",providerLabel:E.label});return g}async function UZ(A){try{return(await Da(A,{recursive:!0})).length}catch{return 0}}async function _Z(A){let q=[],g;try{g=await Da(A.dir)}catch{return q}for(let E of g){let a=ka(A.dir,E);try{if(!(await gZ(a)).isDirectory())continue}catch{continue}let F=ka(a,"SKILL.md"),K;try{K=await FZ(F,"utf-8")}catch{continue}let Z=Ca(K),j=!1,U=null;try{if((await EZ(a)).isSymbolicLink())j=!0,U=await aZ(a)}catch{}let O=jZ(a),Q;try{Q=await KZ(a)}catch{Q=O}let M=await UZ(a);q.push({name:Z.name||E,version:Z.version||"0.0.0",description:(Z.description||"").replace(/\s*\n\s*/g," ").trim(),dirName:E,path:O,originalPath:a,location:A.location,scope:A.scope,provider:A.providerName,providerLabel:A.providerLabel,isSymlink:j,symlinkTarget:U,realPath:Q,fileCount:M})}return q}async function eA(A,q){let g=ZZ(A,q);return(await Promise.all(g.map(_Z))).flat()}function lg(A,q){if(!q.trim())return A;let g=q.toLowerCase();return A.filter((E)=>E.name.toLowerCase().includes(g)||E.description.toLowerCase().includes(g)||E.location.toLowerCase().includes(g)||E.providerLabel.toLowerCase().includes(g))}function Ug(A,q){let g=[...A];switch(q){case"name":g.sort((E,a)=>E.name.localeCompare(a.name));break;case"version":g.sort((E,a)=>E.version.localeCompare(a.version));break;case"location":g.sort((E,a)=>E.location.localeCompare(a.location));break}return g}var r6=e(()=>{vq()});import{rm as n6,readFile as ya,writeFile as OZ,access as GZ,lstat as QZ}from"fs/promises";import{join as wa,resolve as sg,dirname as YZ}from"path";import{homedir as MZ}from"os";function Og(A,q){let g={directories:[],ruleFiles:[],agentsBlocks:[]};g.directories.push({path:A.originalPath,isSymlink:A.isSymlink});let E=A.dirName;if(A.scope==="project")g.ruleFiles.push(sg(".cursor","rules",`${E}.mdc`),sg(".windsurf","rules",`${E}.md`),sg(".github","instructions",`${E}.instructions.md`)),g.agentsBlocks.push({file:sg("AGENTS.md"),skillName:E});if(A.scope==="global"){for(let K of q.providers){if(!K.enabled)continue;let Z=cq(K.global),j=wa(YZ(Z),"AGENTS.md");g.agentsBlocks.push({file:j,skillName:E})}let a=wa(JZ,".codex","AGENTS.md");if(!g.agentsBlocks.some((K)=>K.file===a))g.agentsBlocks.push({file:a,skillName:E})}return g}function ig(A,q,g){let E=q.filter((j)=>j.dirName===A);if(E.length===0)return{directories:[],ruleFiles:[],agentsBlocks:[]};let a={directories:[],ruleFiles:[],agentsBlocks:[]},F=new Set,K=new Set,Z=new Set;for(let j of E){let U=Og(j,g);for(let O of U.directories)if(!F.has(O.path))F.add(O.path),a.directories.push(O);for(let O of U.ruleFiles)if(!K.has(O))K.add(O),a.ruleFiles.push(O);for(let O of U.agentsBlocks){let Q=`${O.file}::${O.skillName}`;if(!Z.has(Q))Z.add(Q),a.agentsBlocks.push(O)}}return a}async function _g(A){try{return await GZ(A),!0}catch{return!1}}async function HZ(A,q){if(!await _g(A))return;let g=await ya(A,"utf-8");for(let E of["agent-skill-manager","skill-manager","pskills"]){let a=`<!-- ${E}: ${q} -->`,F=`<!-- /${E}: ${q} -->`,K=g.indexOf(a),Z=g.indexOf(F);if(K===-1||Z===-1)continue;let j=K;if(j>0&&g[j-1]===`
6
6
  `)j--;let O=Z+F.length;if(O<g.length&&g[O]===`
7
- `)O++;g=g.slice(0,j)+g.slice(O)}await _Z(A,g,"utf-8")}async function pq(A){let q=[];for(let g of A.directories)try{if(g.isSymlink)await n6(g.path),q.push(`Removed symlink: ${g.path}`);else await n6(g.path,{recursive:!0,force:!0}),q.push(`Removed directory: ${g.path}`)}catch(E){q.push(`Failed to remove ${g.path}: ${E.message}`)}for(let g of A.ruleFiles)if(await _g(g))try{await n6(g),q.push(`Removed rule file: ${g}`)}catch(E){q.push(`Failed to remove ${g}: ${E.message}`)}for(let g of A.agentsBlocks)try{await JZ(g.file,g.skillName),q.push(`Cleaned AGENTS.md block in: ${g.file}`)}catch(E){q.push(`Failed to clean AGENTS.md block: ${E.message}`)}return q}async function rg(A){let q=[];for(let g of A.directories)if(await _g(g.path)){let a=(await GZ(g.path)).isSymbolicLink()?"symlink":"directory";q.push(`${g.path} (${a})`)}for(let g of A.ruleFiles)if(await _g(g))q.push(g);for(let g of A.agentsBlocks)if(await _g(g.file)){let E=await ya(g.file,"utf-8");if(E.includes(`<!-- agent-skill-manager: ${g.skillName} -->`)||E.includes(`<!-- skill-manager: ${g.skillName} -->`)||E.includes(`<!-- pskills: ${g.skillName} -->`))q.push(`${g.file} (AGENTS.md block)`)}return q}var MZ;var o6=e(()=>{vq();MZ=YZ()});function e6(A){if(A.length===0)return"No skills found.";let q=["Name","Version","Provider","Scope","Type","Path"],g=A.map((j)=>[j.name,j.version,j.providerLabel,j.scope,j.isSymlink?"symlink":"directory",j.path]),E=q.map((j,U)=>Math.max(j.length,...g.map((O)=>O[U].length))),a=(j,U)=>j.padEnd(U),F=q.map((j,U)=>a(j,E[U])).join(" "),K=E.map((j)=>"\u2500".repeat(j)).join("\u2500\u2500"),Z=g.map((j)=>j.map((U,O)=>a(U,E[O])).join(" "));return[Aq()?l.bold(F):F,K,...Z].join(`
7
+ `)O++;g=g.slice(0,j)+g.slice(O)}await OZ(A,g,"utf-8")}async function pq(A){let q=[];for(let g of A.directories)try{if(g.isSymlink)await n6(g.path),q.push(`Removed symlink: ${g.path}`);else await n6(g.path,{recursive:!0,force:!0}),q.push(`Removed directory: ${g.path}`)}catch(E){q.push(`Failed to remove ${g.path}: ${E.message}`)}for(let g of A.ruleFiles)if(await _g(g))try{await n6(g),q.push(`Removed rule file: ${g}`)}catch(E){q.push(`Failed to remove ${g}: ${E.message}`)}for(let g of A.agentsBlocks)try{await HZ(g.file,g.skillName),q.push(`Cleaned AGENTS.md block in: ${g.file}`)}catch(E){q.push(`Failed to clean AGENTS.md block: ${E.message}`)}return q}async function rg(A){let q=[];for(let g of A.directories)if(await _g(g.path)){let a=(await QZ(g.path)).isSymbolicLink()?"symlink":"directory";q.push(`${g.path} (${a})`)}for(let g of A.ruleFiles)if(await _g(g))q.push(g);for(let g of A.agentsBlocks)if(await _g(g.file)){let E=await ya(g.file,"utf-8");if(E.includes(`<!-- agent-skill-manager: ${g.skillName} -->`)||E.includes(`<!-- skill-manager: ${g.skillName} -->`)||E.includes(`<!-- pskills: ${g.skillName} -->`))q.push(`${g.file} (AGENTS.md block)`)}return q}var JZ;var o6=e(()=>{vq();JZ=MZ()});function e6(A){if(A.length===0)return"No skills found.";let q=["Name","Version","Provider","Scope","Type","Path"],g=A.map((j)=>[j.name,j.version,j.providerLabel,j.scope,j.isSymlink?"symlink":"directory",j.path]),E=q.map((j,U)=>Math.max(j.length,...g.map((O)=>O[U].length))),a=(j,U)=>j.padEnd(U),F=q.map((j,U)=>a(j,E[U])).join(" "),K=E.map((j)=>"\u2500".repeat(j)).join("\u2500\u2500"),Z=g.map((j)=>j.map((U,O)=>a(U,E[O])).join(" "));return[Aq()?l.bold(F):F,K,...Z].join(`
8
8
  `)}function ma(A){let q=[],g=(E,a)=>`${Aq()?l.bold(E+":"):E+":"} ${a}`;if(q.push(g("Name",A.name)),q.push(g("Version",A.version)),q.push(g("Provider",A.providerLabel)),q.push(g("Scope",A.scope)),q.push(g("Location",A.location)),q.push(g("Path",A.path)),q.push(g("Type",A.isSymlink?"symlink":"directory")),A.isSymlink&&A.symlinkTarget)q.push(g("Symlink Target",A.symlinkTarget));if(q.push(g("File Count",String(A.fileCount))),A.description)q.push(""),q.push(g("Description",A.description));return q.join(`
9
- `)}function Gg(A){return JSON.stringify(A,null,2)}var Aq=()=>{if(process.env.NO_COLOR!==void 0)return!1;if(globalThis.__CLI_NO_COLOR)return!1;if(!process.stdout.isTTY)return!1;return!0},l;var AE=e(()=>{l={bold:(A)=>Aq()?`\x1B[1m${A}\x1B[0m`:A,cyan:(A)=>Aq()?`\x1B[36m${A}\x1B[0m`:A,green:(A)=>Aq()?`\x1B[32m${A}\x1B[0m`:A,yellow:(A)=>Aq()?`\x1B[33m${A}\x1B[0m`:A,dim:(A)=>Aq()?`\x1B[2m${A}\x1B[0m`:A,red:(A)=>Aq()?`\x1B[31m${A}\x1B[0m`:A,blueBold:(A)=>Aq()?`\x1B[1m\x1B[34m${A}\x1B[0m`:A}});function Qg(A){let q=[],g=new Set,E=new Map;for(let K of A){let Z=E.get(K.dirName)??[];Z.push(K),E.set(K.dirName,Z)}for(let[K,Z]of E)if(new Set(Z.map((U)=>U.location)).size>=2){q.push({key:K,reason:"same-dirName",instances:Z});for(let U of Z)g.add(U.path)}let a=new Map;for(let K of A){if(!K.name)continue;let Z=a.get(K.name)??[];Z.push(K),a.set(K.name,Z)}for(let[K,Z]of a){if(new Set(Z.map((Q)=>Q.dirName)).size<2)continue;let U=Z.filter((Q)=>!g.has(Q.path));if(U.length<2)continue;if(new Set(U.map((Q)=>Q.dirName)).size<2)continue;q.push({key:K,reason:"same-frontmatterName",instances:U})}q.sort((K,Z)=>{if(K.reason!==Z.reason)return K.reason==="same-dirName"?-1:1;return K.key.localeCompare(Z.key)});let F=q.reduce((K,Z)=>K+Z.instances.length,0);return{scannedAt:new Date().toISOString(),totalSkills:A.length,duplicateGroups:q,totalDuplicateInstances:F}}function Yg(A){return[...A].sort((q,g)=>{if(q.scope!==g.scope)return q.scope==="global"?-1:1;let E=q.providerLabel.localeCompare(g.providerLabel);if(E!==0)return E;return q.path.localeCompare(g.path)})}function ng(A){return A==="same-dirName"?"same dirName":"same name"}function ba(A){if(A.duplicateGroups.length===0)return l.green("No duplicate skills found.");let q=[];q.push(l.bold(`Found ${A.duplicateGroups.length} duplicate group(s) (${A.totalDuplicateInstances} total instances):`)),q.push("");for(let g of A.duplicateGroups){q.push(l.yellow(` Group: "${g.key}" (${ng(g.reason)})`));let E=Yg(g.instances);for(let a=0;a<E.length;a++){let F=E[a],K=a===0?l.green(" (recommended keep)"):"";q.push(` ${l.dim("\u2022")} ${F.path} [${F.providerLabel}/${F.scope}]${K}`)}q.push("")}return q.join(`
10
- `)}function ca(A){return JSON.stringify(A,null,2)}var og=e(()=>{AE()});import{resolve as HZ}from"path";var va="1.2.0",qE="6af47d0",LZ,$Z,Mg;var gE=e(async()=>{try{va=(await Bun.file(HZ(import.meta.dir,"../../package.json")).json()).version}catch{}try{let A=Bun.spawn(["git","rev-parse","--short","HEAD"],{stdout:"pipe",stderr:"pipe"});qE=(await new Response(A.stdout).text()).trim()||qE}catch{}LZ=va,$Z=qE,Mg=`v${LZ} (${$Z})`});var ua="./highlights-ghv9g403.scm";var ta=()=>{};var sa="./tree-sitter-javascript-nd0q4pe9.wasm";var la=()=>{};var ra="./highlights-eq9cgrbb.scm";var ia=()=>{};var oa="./tree-sitter-typescript-zxjzwt75.wasm";var na=()=>{};var AF="./highlights-r812a2qc.scm";var ea=()=>{};var gF="./tree-sitter-markdown-411r6y9b.wasm";var qF=()=>{};var aF="./injections-73j83es3.scm";var EF=()=>{};var KF="./highlights-x6tmsnaa.scm";var FF=()=>{};var ZF="./tree-sitter-markdown_inline-j5349f42.wasm";var jF=()=>{};var _F="./highlights-hk7bwhj4.scm";var UF=()=>{};var GF="./tree-sitter-zig-e78zbjpm.wasm";var OF=()=>{};import{EventEmitter as qU}from"events";import{Buffer as OU}from"buffer";import{Buffer as Y6}from"buffer";import{EventEmitter as yU}from"events";import{resolve as DA,dirname as wA}from"path";import{fileURLToPath as yA}from"url";import{resolve as LF,isAbsolute as vU,parse as pU}from"path";import{existsSync as fU}from"fs";import{basename as dU,join as tU}from"path";import $F from"os";import Lq from"path";import{EventEmitter as rU}from"events";import{dlopen as eU,toArrayBuffer as Jg,JSCallback as ZE,ptr as v}from"bun:ffi";import{existsSync as A_,writeFileSync as q_}from"fs";import{EventEmitter as g_}from"events";import{toArrayBuffer as q6,ptr as TF}from"bun:ffi";import{ptr as Nq,toArrayBuffer as UE}from"bun:ffi";import{ptr as Z_,toArrayBuffer as U_}from"bun:ffi";import{EventEmitter as X_}from"events";import V_ from"util";import{EventEmitter as XK}from"events";import{Console as N_}from"console";import W_ from"fs";import h_ from"path";import vF from"util";import{Writable as S_}from"stream";import{EventEmitter as z_}from"events";import{EventEmitter as w_}from"events";function lZ(A,q){this[A]=uZ.bind(null,q)}function eZ(A){function q(a,F,K){let Z=a[F];a[F]=function(){for(var j=arguments.length,U=Array(j),O=0;O<j;O++)U[O]=arguments[O];return K.call(this,Z,...U)}}for(let a of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){let F={[bA.Point]:A.Node.prototype[a],[bA.Percent]:A.Node.prototype[`${a}Percent`],[bA.Auto]:A.Node.prototype[`${a}Auto`]};q(A.Node.prototype,a,function(K){for(var Z=arguments.length,j=Array(Z>1?Z-1:0),U=1;U<Z;U++)j[U-1]=arguments[U];let O=j.pop(),Q,M;if(O==="auto")Q=bA.Auto,M=void 0;else if(typeof O==="object")Q=O.unit,M=O.valueOf();else if(Q=typeof O==="string"&&O.endsWith("%")?bA.Percent:bA.Point,M=parseFloat(O),O!==void 0&&!Number.isNaN(O)&&Number.isNaN(M))throw Error(`Invalid value ${O} for ${a}`);if(!F[Q])throw Error(`Failed to execute "${a}": Unsupported unit '${O}'`);if(M!==void 0)return F[Q].call(this,...j,M);else return F[Q].call(this,...j)})}function g(a){return A.MeasureCallback.implement({measure:function(){let{width:F,height:K}=a(...arguments);return{width:F??NaN,height:K??NaN}}})}q(A.Node.prototype,"setMeasureFunc",function(a,F){if(F)return a.call(this,g(F));else return this.unsetMeasureFunc()});function E(a){return A.DirtiedCallback.implement({dirtied:a})}return q(A.Node.prototype,"setDirtiedFunc",function(a,F){a.call(this,E(F))}),q(A.Config.prototype,"free",function(){A.Config.destroy(this)}),q(A.Node,"create",(a,F)=>{return F?A.Node.createWithConfig(F):A.Node.createDefault()}),q(A.Node.prototype,"free",function(){A.Node.destroy(this)}),q(A.Node.prototype,"freeRecursive",function(){for(let a=0,F=this.getChildCount();a<F;++a)this.getChild(0).freeRecursive();this.free()}),q(A.Node.prototype,"calculateLayout",function(a){let F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,Z=arguments.length>3&&arguments[3]!==void 0?arguments[3]:lq.LTR;return a.call(this,F,K,Z)}),{Config:A.Config,Node:A.Node,...oZ}}function uF(A){return typeof A==="string"&&tF.includes(A)}function iq(A,q="single"){if(uF(A))return A;if(A!==void 0&&A!==null)console.warn(`Invalid borderStyle "${A}", falling back to "${q}". Valid values are: ${tF.join(", ")}`);return q}function G6(A){return A===!0?{top:!0,right:!0,bottom:!0,left:!0}:Array.isArray(A)?{top:A.includes("top"),right:A.includes("right"),bottom:A.includes("bottom"),left:A.includes("left")}:{top:!1,right:!1,bottom:!1,left:!1}}function Bq(A){let q=new Uint32Array(11);return q[0]=A.topLeft.codePointAt(0),q[1]=A.topRight.codePointAt(0),q[2]=A.bottomLeft.codePointAt(0),q[3]=A.bottomRight.codePointAt(0),q[4]=A.horizontal.codePointAt(0),q[5]=A.vertical.codePointAt(0),q[6]=A.topT.codePointAt(0),q[7]=A.bottomT.codePointAt(0),q[8]=A.leftT.codePointAt(0),q[9]=A.rightT.codePointAt(0),q[10]=A.cross.codePointAt(0),q}class Xg{name;ctrl;meta;shift;option;sequence;number;raw;eventType;source;code;super;hyper;capsLock;numLock;baseCode;repeated;_defaultPrevented=!1;_propagationStopped=!1;constructor(A){this.name=A.name,this.ctrl=A.ctrl,this.meta=A.meta,this.shift=A.shift,this.option=A.option,this.sequence=A.sequence,this.number=A.number,this.raw=A.raw,this.eventType=A.eventType,this.source=A.source,this.code=A.code,this.super=A.super,this.hyper=A.hyper,this.capsLock=A.capsLock,this.numLock=A.numLock,this.baseCode=A.baseCode,this.repeated=A.repeated}get defaultPrevented(){return this._defaultPrevented}get propagationStopped(){return this._propagationStopped}preventDefault(){this._defaultPrevented=!0}stopPropagation(){this._propagationStopped=!0}}class hE{text;_defaultPrevented=!1;_propagationStopped=!1;constructor(A){this.text=A}get defaultPrevented(){return this._defaultPrevented}get propagationStopped(){return this._propagationStopped}preventDefault(){this._defaultPrevented=!0}stopPropagation(){this._propagationStopped=!0}}class AA{buffer;constructor(A){this.buffer=A}static fromArray(A){return new AA(A)}static fromValues(A,q,g,E=1){return new AA(new Float32Array([A,q,g,E]))}static fromInts(A,q,g,E=255){return new AA(new Float32Array([A/255,q/255,g/255,E/255]))}static fromHex(A){return Z6(A)}toInts(){return[Math.round(this.r*255),Math.round(this.g*255),Math.round(this.b*255),Math.round(this.a*255)]}get r(){return this.buffer[0]}set r(A){this.buffer[0]=A}get g(){return this.buffer[1]}set g(A){this.buffer[1]=A}get b(){return this.buffer[2]}set b(A){this.buffer[2]=A}get a(){return this.buffer[3]}set a(A){this.buffer[3]=A}map(A){return[A(this.r),A(this.g),A(this.b),A(this.a)]}toString(){return`rgba(${this.r.toFixed(2)}, ${this.g.toFixed(2)}, ${this.b.toFixed(2)}, ${this.a.toFixed(2)})`}equals(A){if(!A)return!1;return this.r===A.r&&this.g===A.g&&this.b===A.b&&this.a===A.a}}function Z6(A){if(A=A.replace(/^#/,""),A.length===3)A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2];else if(A.length===4)A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2]+A[3]+A[3];if(!/^[0-9A-Fa-f]{6}$/.test(A)&&!/^[0-9A-Fa-f]{8}$/.test(A))return console.warn(`Invalid hex color: ${A}, defaulting to magenta`),AA.fromValues(1,0,1,1);let q=parseInt(A.substring(0,2),16)/255,g=parseInt(A.substring(2,4),16)/255,E=parseInt(A.substring(4,6),16)/255,a=A.length===8?parseInt(A.substring(6,8),16)/255:1;return AA.fromValues(q,g,E,a)}function R(A){if(typeof A==="string"){let q=A.toLowerCase();if(q==="transparent")return AA.fromValues(0,0,0,0);if(QF[q])return Z6(QF[q]);return Z6(A)}return A}function UU(A){let q=[],g=0,E=/<c(\d+)>(.*?)<\/c\d+>/g,a=0,F;while((F=E.exec(A))!==null){if(F.index>a){let j=A.slice(a,F.index);if(j)q.push({text:j,colorIndex:0})}let K=parseInt(F[1])-1,Z=F[2];q.push({text:Z,colorIndex:Math.max(0,K)}),a=F.index+F[0].length}if(a<A.length){let K=A.slice(a);if(K)q.push({text:K,colorIndex:0})}return q}function BE(A){if(!EE[A]){let q=lF[A],g={};for(let[E,a]of Object.entries(q.chars))g[E]=a.map((F)=>UU(F));EE[A]={...q,colors:q.colors||1,chars:g}}return EE[A]}function rq({text:A,font:q="tiny"}){let g=BE(q);if(!g)return console.warn(`Font '${q}' not found`),{width:0,height:0};let E=0;for(let a=0;a<A.length;a++){let F=A[a].toUpperCase(),K=g.chars[F];if(!K){let j=g.chars[" "];if(j&&j[0]){let U=0;for(let O of j[0])U+=O.text.length;E+=U}else E+=1;continue}let Z=0;if(K[0])for(let j of K[0])Z+=j.text.length;if(E+=Z,a<A.length-1)E+=g.letterspace_size}return{width:E,height:g.lines}}function CE(A,q="tiny"){let g=BE(q);if(!g)return[0];let E=[0],a=0;for(let F=0;F<A.length;F++){let K=A[F].toUpperCase(),Z=g.chars[K],j=0;if(!Z){let U=g.chars[" "];if(U&&U[0])for(let O of U[0])j+=O.text.length;else j=1}else if(Z[0])for(let U of Z[0])j+=U.text.length;if(a+=j,F<A.length-1)a+=g.letterspace_size;E.push(a)}return E}function K6(A,q,g="tiny"){let E=CE(q,g);if(A<0)return 0;for(let a=0;a<E.length-1;a++){let F=E[a],K=E[a+1];if(A>=F&&A<K){let Z=F+(K-F)/2;return A<Z?a:a+1}}if(E.length>0&&A>=E[E.length-1])return q.length;return 0}function Q6(A,{text:q,x:g=0,y:E=0,color:a=[AA.fromInts(255,255,255,255)],backgroundColor:F=AA.fromInts(0,0,0,255),font:K="tiny"}){let{width:Z,height:j}=A,U=BE(K);if(!U)return console.warn(`Font '${K}' not found`),{width:0,height:0};let O=Array.isArray(a)?a:[a];if(E<0||E+U.lines>j)return{width:0,height:U.lines};let Q=g,M=g;for(let L=0;L<q.length;L++){let $=q[L].toUpperCase(),V=U.chars[$];if(!V){let X=U.chars[" "];if(X&&X[0]){let T=0;for(let x of X[0])T+=x.text.length;Q+=T}else Q+=1;continue}let H=0;if(V[0])for(let X of V[0])H+=X.text.length;if(Q>=Z)break;if(Q+H<0){Q+=H+U.letterspace_size;continue}for(let X=0;X<U.lines&&X<V.length;X++){let T=V[X],x=E+X;if(x>=0&&x<j){let z=Q;for(let m of T){let D=O[m.colorIndex]||O[0];for(let N=0;N<m.text.length;N++){let h=z+N;if(h>=0&&h<Z){let b=m.text[N];if(b!==" ")A.setCellWithAlphaBlending(h,x,b,R(D),R(F))}}z+=m.text.length}}}if(Q+=H,L<q.length-1)Q+=U.letterspace_size}return{width:Q-M,height:U.lines}}function Tg({bold:A=!1,italic:q=!1,underline:g=!1,dim:E=!1,blink:a=!1,inverse:F=!1,hidden:K=!1,strikethrough:Z=!1}={}){let j=tA.NONE;if(A)j|=tA.BOLD;if(q)j|=tA.ITALIC;if(g)j|=tA.UNDERLINE;if(E)j|=tA.DIM;if(a)j|=tA.BLINK;if(F)j|=tA.INVERSE;if(K)j|=tA.HIDDEN;if(Z)j|=tA.STRIKETHROUGH;return j}function rF(A){return A&&A[iF]}function oq(A){return new nq([{__isChunk:!0,text:A}])}function _U(A,q){if(typeof A==="object"&&"__isChunk"in A){let g=A,E=q.fg?R(q.fg):g.fg,a=q.bg?R(q.bg):g.bg,F=Tg(q),K=g.attributes?g.attributes|F:F;return{__isChunk:!0,text:g.text,fg:E,bg:a,attributes:K,link:g.link}}else{let g=String(A),E=q.fg?R(q.fg):void 0,a=q.bg?R(q.bg):void 0,F=Tg(q);return{__isChunk:!0,text:g,fg:E,bg:a,attributes:F}}}class kE{now(){return Date.now()}setTimeout(A,q){return globalThis.setTimeout(A,q)}clearTimeout(A){globalThis.clearTimeout(A)}}function oF(A){return{shift:!!(A&1),alt:!!(A&2),ctrl:!!(A&4),super:!!(A&8),hyper:!!(A&16),meta:!!(A&32),capsLock:!!(A&64),numLock:!!(A&128)}}function YU(A){let g=/^\x1b\[(\d+);(\d+):(\d+)([A-Z~])$/.exec(A);if(!g)return null;let E=g[1],a=g[2],F=g[3],K=g[4],Z;if(K==="~")Z=QU[E];else{if(E!=="1")return null;Z=GU[K]}if(!Z)return null;let j={name:Z,ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"kitty",super:!1,hyper:!1,capsLock:!1,numLock:!1};if(a){let U=parseInt(a,10);if(!isNaN(U)&&U>1){let O=oF(U-1);j.shift=O.shift,j.ctrl=O.ctrl,j.meta=O.alt||O.meta,j.option=O.alt,j.super=O.super,j.hyper=O.hyper,j.capsLock=O.capsLock,j.numLock=O.numLock}}if(F==="1"||!F)j.eventType="press";else if(F==="2")j.eventType="press",j.repeated=!0;else if(F==="3")j.eventType="release";return j}function MU(A){let q=YU(A);if(q)return q;let E=/^\x1b\[([^\x1b]+)u$/.exec(A);if(!E)return null;let F=E[1].split(";");if(F.length<1)return null;let K={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"kitty",super:!1,hyper:!1,capsLock:!1,numLock:!1},Z="",j=F[0]?.split(":")||[],U=j[0];if(!U)return null;let O=parseInt(U,10);if(isNaN(O))return null;let Q,M;if(j[1]){let $=parseInt(j[1],10);if(!isNaN($)&&$>0&&$<=1114111)Q=$}if(j[2]){let $=parseInt(j[2],10);if(!isNaN($)&&$>0&&$<=1114111)M=$}let L=YF[O];if(L)K.name=L,K.code=`[${O}u`;else if(O>0&&O<=1114111){let $=String.fromCodePoint(O);if(K.name=$,M)K.baseCode=M}else return null;if(F[1]){let $=F[1].split(":"),V=$[0],H=$[1];if(V){let X=parseInt(V,10);if(!isNaN(X)&&X>1){let T=oF(X-1);K.shift=T.shift,K.ctrl=T.ctrl,K.meta=T.alt||T.meta,K.option=T.alt,K.super=T.super,K.hyper=T.hyper,K.capsLock=T.capsLock,K.numLock=T.numLock}}if(H==="1"||!H)K.eventType="press";else if(H==="2")K.eventType="press",K.repeated=!0;else if(H==="3")K.eventType="release";else K.eventType="press"}if(F[2]){let $=F[2].split(":");for(let V of $){let H=parseInt(V,10);if(!isNaN(H)&&H>0&&H<=1114111)Z+=String.fromCodePoint(H)}}if(Z===""){if(K.name.length>0&&!YF[O])if(K.shift&&Q)Z=String.fromCodePoint(Q);else if(K.shift&&K.name.length===1)Z=K.name.toLocaleUpperCase();else Z=K.name}if(K.name===" "&&K.shift&&!K.ctrl&&!K.meta)Z=" ";if(Z)K.sequence=Z;return K}function JE(A){if(A==null)return i.Auto;switch(A.toLowerCase()){case"auto":return i.Auto;case"flex-start":return i.FlexStart;case"center":return i.Center;case"flex-end":return i.FlexEnd;case"stretch":return i.Stretch;case"baseline":return i.Baseline;case"space-between":return i.SpaceBetween;case"space-around":return i.SpaceAround;case"space-evenly":return i.SpaceEvenly;default:return i.Auto}}function HE(A){if(A==null)return i.Stretch;switch(A.toLowerCase()){case"auto":return i.Auto;case"flex-start":return i.FlexStart;case"center":return i.Center;case"flex-end":return i.FlexEnd;case"stretch":return i.Stretch;case"baseline":return i.Baseline;case"space-between":return i.SpaceBetween;case"space-around":return i.SpaceAround;case"space-evenly":return i.SpaceEvenly;default:return i.Stretch}}function LE(A){if(A==null)return hA.Column;switch(A.toLowerCase()){case"column":return hA.Column;case"column-reverse":return hA.ColumnReverse;case"row":return hA.Row;case"row-reverse":return hA.RowReverse;default:return hA.Column}}function $E(A){if(A==null)return MA.FlexStart;switch(A.toLowerCase()){case"flex-start":return MA.FlexStart;case"center":return MA.Center;case"flex-end":return MA.FlexEnd;case"space-between":return MA.SpaceBetween;case"space-around":return MA.SpaceAround;case"space-evenly":return MA.SpaceEvenly;default:return MA.FlexStart}}function XE(A){if(A==null)return Fq.Visible;switch(A.toLowerCase()){case"visible":return Fq.Visible;case"hidden":return Fq.Hidden;case"scroll":return Fq.Scroll;default:return Fq.Visible}}function IE(A){if(A==null)return Kq.Relative;switch(A.toLowerCase()){case"static":return Kq.Static;case"relative":return Kq.Relative;case"absolute":return Kq.Absolute;default:return Kq.Static}}function TE(A){if(A==null)return jq.NoWrap;switch(A.toLowerCase()){case"no-wrap":return jq.NoWrap;case"wrap":return jq.Wrap;case"wrap-reverse":return jq.WrapReverse;default:return jq.NoWrap}}class AK{renderable;relativeX;relativeY;constructor(A,q,g){this.renderable=A,this.relativeX=q-this.renderable.x,this.relativeY=g-this.renderable.y}get x(){return this.renderable.x+this.relativeX}get y(){return this.renderable.y+this.relativeY}}class DE{_anchor;_focus;_selectedRenderables=[];_touchedRenderables=[];_isActive=!0;_isDragging=!0;_isStart=!1;constructor(A,q,g){this._anchor=new AK(A,q.x,q.y),this._focus={...g}}get isStart(){return this._isStart}set isStart(A){this._isStart=A}get anchor(){return{x:this._anchor.x,y:this._anchor.y}}get focus(){return{...this._focus}}set focus(A){this._focus={...A}}get isActive(){return this._isActive}set isActive(A){this._isActive=A}get isDragging(){return this._isDragging}set isDragging(A){this._isDragging=A}get bounds(){let A=Math.min(this._anchor.x,this._focus.x),q=Math.max(this._anchor.x,this._focus.x),g=Math.min(this._anchor.y,this._focus.y),E=Math.max(this._anchor.y,this._focus.y),a=q-A+1,F=E-g+1;return{x:A,y:g,width:a,height:F}}updateSelectedRenderables(A){this._selectedRenderables=A}get selectedRenderables(){return this._selectedRenderables}updateTouchedRenderables(A){this._touchedRenderables=A}get touchedRenderables(){return this._touchedRenderables}getSelectedText(){return this._selectedRenderables.sort((q,g)=>{let E=q.y,a=g.y;if(E!==a)return E-a;return q.x-g.x}).filter((q)=>!q.isDestroyed).map((q)=>q.getSelectedText()).filter((q)=>q).join(`
11
- `)}}function Vg(A,q,g){if(!A?.isActive)return null;return{anchorX:A.anchor.x-q,anchorY:A.anchor.y-g,focusX:A.focus.x-q,focusY:A.focus.y-g,isActive:!0}}class wE{getText;getFont;localSelection=null;constructor(A,q){this.getText=A,this.getFont=q}hasSelection(){return this.localSelection!==null}getSelection(){return this.localSelection}shouldStartSelection(A,q,g,E){if(A<0||A>=g||q<0||q>=E)return!1;let a=this.getText(),F=this.getFont(),K=K6(A,a,F);return K>=0&&K<=a.length}onLocalSelectionChanged(A,q,g){let E=this.localSelection;if(!A?.isActive)return this.localSelection=null,E!==null;let a=this.getText(),F=this.getFont(),K={x:A.anchorX,y:A.anchorY},Z={x:A.focusX,y:A.focusY};if(g-1<K.y||0>Z.y)return this.localSelection=null,E!==null;let j=0,U=a.length;if(K.y>g-1)return this.localSelection=null,E!==null;else if(K.y>=0&&K.y<=g-1){if(K.x>0)j=K6(K.x,a,F)}if(Z.y<0)return this.localSelection=null,E!==null;else if(Z.y>=0&&Z.y<=g-1)if(Z.x>=0)U=K6(Z.x,a,F);else U=0;if(j<U&&j>=0&&U<=a.length)this.localSelection={start:j,end:U};else this.localSelection=null;return E?.start!==this.localSelection?.start||E?.end!==this.localSelection?.end}}function kq(A,q){let g=globalThis[yE]??={};if(!(A in g))g[A]=q();return g[A]}function TU(A){let q=globalThis[yE];if(q&&A in q)delete q[A]}function PU(A){let q=globalThis[yE];return q&&A in q}function ZA(A){let q=Cq[A.name];if(q){if(q.description!==A.description||q.type!==A.type||q.default!==A.default)throw Error(`Environment variable "${A.name}" is already registered with different configuration. Existing: ${JSON.stringify(q)}, New: ${JSON.stringify(A)}`);return}Cq[A.name]=A}function VU(A){let q=A.toLowerCase();return["true","1","on","yes"].includes(q)}function xU(A){let q=process.env[A.name];if(q===void 0&&A.default!==void 0)return A.default;if(q===void 0)throw Error(`Required environment variable ${A.name} is not set. ${A.description}`);switch(A.type){case"boolean":return typeof q==="boolean"?q:VU(q);case"number":let g=Number(q);if(isNaN(g))throw Error(`Environment variable ${A.name} must be a valid number, got: ${q}`);return g;case"string":default:return q}}class qK{parsedValues=new Map;get(A){if(this.parsedValues.has(A))return this.parsedValues.get(A);if(!(A in Cq))throw Error(`Environment variable ${A} is not registered.`);try{let q=xU(Cq[A]);return this.parsedValues.set(A,q),q}catch(q){throw Error(`Failed to parse env var ${A}: ${q instanceof Error?q.message:String(q)}`)}}has(A){return A in Cq}clearCache(){this.parsedValues.clear()}}class EK{buf;start=0;end=0;constructor(A=U6){this.buf=new Uint8Array(A)}get length(){return this.end-this.start}get capacity(){return this.buf.length}view(){return this.buf.subarray(this.start,this.end)}take(){let A=this.view();return this.start=0,this.end=0,A}append(A){if(A.length===0)return;this.ensureCapacity(this.length+A.length),this.buf.set(A,this.end),this.end+=A.length}consume(A){if(A<=0)return;if(A>=this.length){this.start=0,this.end=0;return}if(this.start+=A,this.start>=this.buf.length/2)this.buf.copyWithin(0,this.start,this.end),this.end-=this.start,this.start=0}clear(){this.start=0,this.end=0}reset(A=U6){this.buf=new Uint8Array(A),this.start=0,this.end=0}ensureCapacity(A){let q=this.length;if(A<=this.buf.length){if(this.buf.length-this.end>=A-q)return;if(this.buf.copyWithin(0,this.start,this.end),this.end=q,this.start=0,A<=this.buf.length)return}let g=this.buf.length;while(g<A)g*=2;let E=new Uint8Array(g);E.set(this.view(),0),this.buf=E,this.start=0,this.end=q}}function MF(A,q){if(typeof A!=="number"||!Number.isFinite(A)||A<=0)return q;return Math.floor(A)}function BU(A){if(A<128)return 1;if(A>=194&&A<=223)return 2;if(A>=224&&A<=239)return 3;if(A>=240&&A<=244)return 4;return 0}function CU(A,q){if(A.length!==q.length)return!1;for(let g=0;g<A.length;g+=1)if(A[g]!==q[g])return!1;return!0}function kU(A){if(A.length<7)return!1;if(A[0]!==Eq||A[1]!==91||A[2]!==60)return!1;let q=A[A.length-1];if(q!==77&&q!==109)return!1;let g=0,E=!1;for(let a=3;a<A.length-1;a+=1){let F=A[a];if(F>=48&&F<=57){E=!0;continue}if(F===59&&E&&g<2){g+=1,E=!1;continue}return!1}return g===2&&E}function DU(A,q){if(A.length===0)return q;if(q.length===0)return A;let g=new Uint8Array(A.length+q.length);return g.set(A,0),g.set(q,A.length),g}function JF(A,q){if(q.length===0)return 0;let g=A.length-q.length;for(let E=0;E<=g;E+=1){let a=!0;for(let F=0;F<q.length;F+=1)if(A[E+F]!==q[F]){a=!1;break}if(a)return E}return-1}function HF(A){return Y6.from(A.buffer,A.byteOffset,A.byteLength).toString("latin1")}function qq(A){return hU.decode(A)}function wU(){return{tail:gK,decoder:new TextDecoder,parts:[]}}class mE{pending=new EK(U6);events=[];timeoutMs;maxPendingBytes;armTimeouts;onTimeoutFlush;useKittyKeyboard;mouseParser=new Pg;clock;timeoutId=null;destroyed=!1;pendingSinceMs=null;forceFlush=!1;justFlushedEsc=!1;state={tag:"ground"};cursor=0;unitStart=0;paste=null;constructor(A={}){this.timeoutMs=MF(A.timeoutMs,RU),this.maxPendingBytes=MF(A.maxPendingBytes,NU),this.armTimeouts=A.armTimeouts??!0,this.onTimeoutFlush=A.onTimeoutFlush??null,this.useKittyKeyboard=A.useKittyKeyboard??!0,this.clock=A.clock??zU}get bufferCapacity(){return this.pending.capacity}push(A){if(this.ensureAlive(),A.length===0){this.emitKeyOrResponse("unknown","");return}let q=A;while(q.length>0){if(this.paste){q=this.consumePasteBytes(q);continue}let g=this.state.tag==="ground"&&this.pending.length===0?JF(q,aE):-1,E=g===-1?q.length:g+aE.length;if(this.pending.append(q.subarray(0,E)),q=q.subarray(E),this.scanPending(),this.paste&&this.pending.length>0){q=this.consumePasteBytes(this.takePendingBytes());continue}if(!this.paste&&this.pending.length>this.maxPendingBytes){if(this.flushPendingOverflow(),this.scanPending(),this.paste&&this.pending.length>0)q=this.consumePasteBytes(this.takePendingBytes())}}this.reconcileTimeoutState()}read(){if(this.ensureAlive(),this.events.length===0&&this.forceFlush)this.scanPending(),this.reconcileTimeoutState();return this.events.shift()??null}drain(A){this.ensureAlive();while(!0){if(this.destroyed)return;let q=this.read();if(!q)return;A(q)}}flushTimeout(A=this.clock.now()){if(this.ensureAlive(),this.paste||this.pendingSinceMs===null||this.pending.length===0)return;if(A<this.pendingSinceMs||A-this.pendingSinceMs<this.timeoutMs)return;this.forceFlush=!0}reset(){if(this.destroyed)return;this.clearTimeout(),this.resetState()}resetMouseState(){this.ensureAlive(),this.mouseParser.reset()}destroy(){if(this.destroyed)return;this.clearTimeout(),this.destroyed=!0,this.resetState()}ensureAlive(){if(this.destroyed)throw Error("StdinParser has been destroyed")}scanPending(){while(!this.paste){let A=this.pending.view();if(this.state.tag==="ground"&&this.cursor>=A.length){this.pending.clear(),this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1;return}let q=this.cursor<A.length?A[this.cursor]:-1;switch(this.state.tag){case"ground":{if(this.unitStart=this.cursor,this.justFlushedEsc){if(q===91){this.justFlushedEsc=!1,this.cursor+=1,this.state={tag:"esc_recovery"};continue}this.justFlushedEsc=!1}if(q===Eq){this.cursor+=1,this.state={tag:"esc"};continue}if(q<128){this.emitKeyOrResponse("unknown",qq(A.subarray(this.cursor,this.cursor+1))),this.consumePrefix(this.cursor+1);continue}let g=BU(q);if(g===0){if(!this.forceFlush&&this.cursor+1===A.length){this.markPending();return}this.emitLegacyHighByte(q),this.consumePrefix(this.cursor+1);continue}this.cursor+=1,this.state={tag:"utf8",expected:g,seen:1};continue}case"utf8":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitLegacyHighByte(A[this.unitStart]),this.state={tag:"ground"},this.consumePrefix(this.unitStart+1);continue}if((q&192)!==128){this.emitLegacyHighByte(A[this.unitStart]),this.state={tag:"ground"},this.consumePrefix(this.unitStart+1);continue}let g=this.state.seen+1;if(this.cursor+=1,g<this.state.expected){this.state={tag:"utf8",expected:this.state.expected,seen:g};continue}this.emitKeyOrResponse("unknown",qq(A.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"esc":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}let g=this.cursor===this.unitStart+1&&A[this.unitStart]===Eq;this.emitKeyOrResponse("unknown",qq(A.subarray(this.unitStart,this.cursor))),this.justFlushedEsc=g,this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}switch(q){case 91:this.cursor+=1,this.state={tag:"csi"};continue;case 79:this.cursor+=1,this.state={tag:"ss3"};continue;case 93:this.cursor+=1,this.state={tag:"osc",sawEsc:!1};continue;case 80:this.cursor+=1,this.state={tag:"dcs",sawEsc:!1};continue;case 95:this.cursor+=1,this.state={tag:"apc",sawEsc:!1};continue;case Eq:this.cursor+=1;continue;default:this.cursor+=1,this.emitKeyOrResponse("unknown",qq(A.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}}case"ss3":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===Eq){this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}this.cursor+=1,this.emitKeyOrResponse("unknown",qq(A.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"esc_recovery":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitKeyOrResponse("unknown",qq(A.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===60){this.cursor+=1,this.state={tag:"esc_less_mouse"};continue}if(q===77){this.cursor+=1,this.state={tag:"esc_less_x10_mouse"};continue}this.emitKeyOrResponse("unknown",qq(A.subarray(this.unitStart,this.unitStart+1))),this.state={tag:"ground"},this.consumePrefix(this.unitStart+1);continue}case"csi":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===Eq){this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===77&&this.cursor===this.unitStart+2){let g=this.cursor+4;if(A.length<g){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,A.length)),this.state={tag:"ground"},this.consumePrefix(A.length);continue}this.emitMouse(A.subarray(this.unitStart,g),"x10"),this.state={tag:"ground"},this.consumePrefix(g);continue}if(q===36){let g=this.cursor+1,E=qq(A.subarray(this.unitStart,g));if(SU.test(E)){this.emitKeyOrResponse("csi",E),this.state={tag:"ground"},this.consumePrefix(g);continue}if(!this.forceFlush&&g>=A.length){this.markPending();return}}if(q===91&&this.cursor===this.unitStart+2){this.cursor+=1;continue}if(q>=64&&q<=126){let g=this.cursor+1,E=A.subarray(this.unitStart,g);if(CU(E,aE)){this.state={tag:"ground"},this.consumePrefix(g),this.paste=wU();continue}if(kU(E)){this.emitMouse(E,"sgr"),this.state={tag:"ground"},this.consumePrefix(g);continue}this.emitKeyOrResponse("csi",qq(E)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.cursor+=1;continue}case"osc":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(this.state.sawEsc){if(q===92){let g=this.cursor+1;this.emitOpaqueResponse("osc",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.state={tag:"osc",sawEsc:!1};continue}if(q===WU){let g=this.cursor+1;this.emitOpaqueResponse("osc",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}if(q===Eq){this.cursor+=1,this.state={tag:"osc",sawEsc:!0};continue}this.cursor+=1;continue}case"dcs":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(this.state.sawEsc){if(q===92){let g=this.cursor+1;this.emitOpaqueResponse("dcs",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.state={tag:"dcs",sawEsc:!1};continue}if(q===Eq){this.cursor+=1,this.state={tag:"dcs",sawEsc:!0};continue}this.cursor+=1;continue}case"apc":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(this.state.sawEsc){if(q===92){let g=this.cursor+1;this.emitOpaqueResponse("apc",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.state={tag:"apc",sawEsc:!1};continue}if(q===Eq){this.cursor+=1,this.state={tag:"apc",sawEsc:!0};continue}this.cursor+=1;continue}case"esc_less_mouse":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q>=48&&q<=57||q===59){this.cursor+=1;continue}if(q===77||q===109){let g=this.cursor+1;this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"esc_less_x10_mouse":{let g=this.unitStart+5;if(A.length<g){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,A.length)),this.state={tag:"ground"},this.consumePrefix(A.length);continue}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}}}}emitKeyOrResponse(A,q){let g=ME(q,{useKittyKeyboard:this.useKittyKeyboard});if(g){this.events.push({type:"key",raw:g.raw,key:g});return}this.events.push({type:"response",protocol:A,sequence:q})}emitMouse(A,q){let g=this.mouseParser.parseMouseEvent(A);if(!g){this.emitOpaqueResponse("unknown",A);return}this.events.push({type:"mouse",raw:HF(A),encoding:q,event:g})}emitLegacyHighByte(A){let q=ME(Y6.from([A]),{useKittyKeyboard:this.useKittyKeyboard});if(q){this.events.push({type:"key",raw:q.raw,key:q});return}this.events.push({type:"response",protocol:"unknown",sequence:String.fromCharCode(A)})}emitOpaqueResponse(A,q){this.events.push({type:"response",protocol:A,sequence:HF(q)})}consumePrefix(A){this.pending.consume(A),this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1}takePendingBytes(){let A=this.pending.take();return this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1,A}flushPendingOverflow(){if(this.pending.length===0)return;this.emitOpaqueResponse("unknown",this.pending.view()),this.pending.clear(),this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1,this.state={tag:"ground"}}markPending(){this.pendingSinceMs=this.clock.now()}consumePasteBytes(A){let q=this.paste,g=DU(q.tail,A),E=JF(g,FE);if(E!==-1){this.pushPasteText(g.subarray(0,E));let K=q.decoder.decode();if(K.length>0)q.parts.push(K);return this.events.push({type:"paste",text:q.parts.join("")}),this.paste=null,g.subarray(E+FE.length)}let a=Math.min(FE.length-1,g.length),F=g.length-a;if(F>0)this.pushPasteText(g.subarray(0,F));return q.tail=g.slice(F),gK}pushPasteText(A){if(A.length===0)return;let q=this.paste.decoder.decode(A,{stream:!0});if(q.length>0)this.paste.parts.push(q)}reconcileTimeoutState(){if(!this.armTimeouts)return;if(this.paste||this.pendingSinceMs===null||this.pending.length===0){this.clearTimeout();return}this.clearTimeout(),this.timeoutId=this.clock.setTimeout(()=>{if(this.timeoutId=null,this.destroyed)return;try{this.flushTimeout(this.clock.now()),this.onTimeoutFlush?.()}catch(A){console.error("stdin parser timeout flush failed",A)}},this.timeoutMs)}clearTimeout(){if(!this.timeoutId)return;this.clock.clearTimeout(this.timeoutId),this.timeoutId=null}resetState(){this.pending.reset(U6),this.events.length=0,this.pendingSinceMs=null,this.forceFlush=!1,this.justFlushedEsc=!1,this.state={tag:"ground"},this.cursor=0,this.unitStart=0,this.paste=null,this.mouseParser.reset()}}class aK{scopeId;constructor(A){if(this.scopeId=A,!dq.has(this.scopeId))dq.set(this.scopeId,new Map)}debounce(A,q,g){let E=dq.get(this.scopeId);return new Promise((a,F)=>{if(E.has(A))clearTimeout(E.get(A));let K=setTimeout(()=>{try{a(g())}catch(Z){F(Z)}E.delete(A)},q);E.set(A,K)})}clearDebounce(A){let q=dq.get(this.scopeId);if(q&&q.has(A))clearTimeout(q.get(A)),q.delete(A)}clear(){let A=dq.get(this.scopeId);if(A)A.forEach((q)=>clearTimeout(q)),A.clear()}}function mU(A){return new aK(A)}function bU(A){let q=dq.get(A);if(q)q.forEach((g)=>clearTimeout(g)),q.clear()}class FK{processor;queue=[];processing=!1;autoProcess=!0;constructor(A,q=!0){this.processor=A,this.autoProcess=q}enqueue(A){if(this.queue.push(A),!this.processing&&this.autoProcess)this.processQueue()}processQueue(){if(this.queue.length===0)return;this.processing=!0,queueMicrotask(async()=>{if(this.queue.length===0){this.processing=!1;return}let A=this.queue.shift();try{await this.processor(A)}catch(q){console.error("Error processing queue item:",q)}if(this.queue.length>0)this.processQueue();else this.processing=!1})}clear(){this.queue=[]}isProcessing(){return this.processing}size(){return this.queue.length}}function cU(){if(!KE)KE=[{filetype:"javascript",queries:{highlights:[DA(wA(yA(import.meta.url)),ua)]},wasm:DA(wA(yA(import.meta.url)),sa)},{filetype:"typescript",queries:{highlights:[DA(wA(yA(import.meta.url)),ra)]},wasm:DA(wA(yA(import.meta.url)),oa)},{filetype:"markdown",queries:{highlights:[DA(wA(yA(import.meta.url)),AF)],injections:[DA(wA(yA(import.meta.url)),aF)]},wasm:DA(wA(yA(import.meta.url)),gF),injectionMapping:{nodeTypes:{inline:"markdown_inline",pipe_table_cell:"markdown_inline"},infoStringMap:{javascript:"javascript",js:"javascript",typescript:"typescript",ts:"typescript",markdown:"markdown",md:"markdown"}}},{filetype:"markdown_inline",queries:{highlights:[DA(wA(yA(import.meta.url)),KF)]},wasm:DA(wA(yA(import.meta.url)),ZF)},{filetype:"zig",queries:{highlights:[DA(wA(yA(import.meta.url)),_F)]},wasm:DA(wA(yA(import.meta.url)),GF)}];return KE}function KK(A){return A.includes("$bunfs")||/^B:[\\/]~BUN/i.test(A)}function uU(){return process.platform==="win32"?"B:\\~BUN\\root":"/$bunfs/root"}function lU(A){return tU(uU(),dU(A))}function nU(A){if(!A||typeof A!=="string")return!1;if(A.trim().length===0)return!1;if(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"].includes(A.toUpperCase()))return!1;if(/[<>:"|?*\/\\\x00-\x1f]/.test(A))return!1;if(A.endsWith(".")||A.endsWith(" "))return!1;if(A==="."||A==="..")return!1;return!0}function jK(){return kq("data-paths-opentui",()=>new cE)}function ZK(){let A=jK(),q={dataPath:A.globalDataPath};return kq("tree-sitter-client",()=>{let g=new bE(q);return A.on("paths:changed",(E)=>{g.setDataPath(E.globalDataPath)}),g})}class UK{undoStack=[];redoStack=[];saveSnapshot(A,q){let g={extmarks:new Map(Array.from(A.entries()).map(([E,a])=>[E,{...a}])),nextId:q};this.undoStack.push(g),this.redoStack=[]}undo(){if(this.undoStack.length===0)return null;return this.undoStack.pop()}redo(){if(this.redoStack.length===0)return null;return this.redoStack.pop()}pushRedo(A){this.redoStack.push(A)}pushUndo(A){this.undoStack.push(A)}clear(){this.undoStack=[],this.redoStack=[]}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}}class vE{editBuffer;editorView;extmarks=new Map;extmarksByTypeId=new Map;metadata=new Map;nextId=1;destroyed=!1;history=new UK;typeNameToId=new Map;typeIdToName=new Map;nextTypeId=1;originalMoveCursorLeft;originalMoveCursorRight;originalSetCursorByOffset;originalMoveUpVisual;originalMoveDownVisual;originalDeleteCharBackward;originalDeleteChar;originalInsertText;originalInsertChar;originalDeleteRange;originalSetText;originalReplaceText;originalClear;originalNewLine;originalDeleteLine;originalEditorViewDeleteSelectedText;originalUndo;originalRedo;constructor(A,q){this.editBuffer=A,this.editorView=q,this.originalMoveCursorLeft=A.moveCursorLeft.bind(A),this.originalMoveCursorRight=A.moveCursorRight.bind(A),this.originalSetCursorByOffset=A.setCursorByOffset.bind(A),this.originalMoveUpVisual=q.moveUpVisual.bind(q),this.originalMoveDownVisual=q.moveDownVisual.bind(q),this.originalDeleteCharBackward=A.deleteCharBackward.bind(A),this.originalDeleteChar=A.deleteChar.bind(A),this.originalInsertText=A.insertText.bind(A),this.originalInsertChar=A.insertChar.bind(A),this.originalDeleteRange=A.deleteRange.bind(A),this.originalSetText=A.setText.bind(A),this.originalReplaceText=A.replaceText.bind(A),this.originalClear=A.clear.bind(A),this.originalNewLine=A.newLine.bind(A),this.originalDeleteLine=A.deleteLine.bind(A),this.originalEditorViewDeleteSelectedText=q.deleteSelectedText.bind(q),this.originalUndo=A.undo.bind(A),this.originalRedo=A.redo.bind(A),this.wrapCursorMovement(),this.wrapDeletion(),this.wrapInsertion(),this.wrapEditorViewDeleteSelectedText(),this.wrapUndoRedo(),this.setupContentChangeListener()}wrapCursorMovement(){this.editBuffer.moveCursorLeft=()=>{if(this.destroyed){this.originalMoveCursorLeft();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorLeft();return}let g=A-1;if(g<0){this.originalMoveCursorLeft();return}let E=this.findVirtualExtmarkContaining(g);if(E&&A>=E.end){this.editBuffer.setCursorByOffset(E.start-1);return}this.originalMoveCursorLeft()},this.editBuffer.moveCursorRight=()=>{if(this.destroyed){this.originalMoveCursorRight();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorRight();return}let g=A+1,E=this.editBuffer.getText().length;if(g>E){this.originalMoveCursorRight();return}let a=this.findVirtualExtmarkContaining(g);if(a&&A<=a.start){this.editBuffer.setCursorByOffset(a.end);return}this.originalMoveCursorRight()},this.editorView.moveUpVisual=()=>{if(this.destroyed){this.originalMoveUpVisual();return}if(this.editorView.hasSelection()){this.originalMoveUpVisual();return}let q=this.editorView.getVisualCursor().offset;this.originalMoveUpVisual();let g=this.editorView.getVisualCursor().offset,E=this.findVirtualExtmarkContaining(g);if(E){let a=g-E.start,F=E.end-g;if(a<F)this.editorView.setCursorByOffset(E.start-1);else this.editorView.setCursorByOffset(E.end)}},this.editorView.moveDownVisual=()=>{if(this.destroyed){this.originalMoveDownVisual();return}if(this.editorView.hasSelection()){this.originalMoveDownVisual();return}let q=this.editorView.getVisualCursor().offset;this.originalMoveDownVisual();let g=this.editorView.getVisualCursor().offset,E=this.findVirtualExtmarkContaining(g);if(E){let a=g-E.start,F=E.end-g;if(a<F){let K=E.start-1,Z=K<=q?E.end:K;this.editorView.setCursorByOffset(Z)}else this.editorView.setCursorByOffset(E.end)}},this.editBuffer.setCursorByOffset=(A)=>{if(this.destroyed){this.originalSetCursorByOffset(A);return}let q=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalSetCursorByOffset(A);return}if(A>q){let a=this.findVirtualExtmarkContaining(A);if(a&&q<=a.start){this.originalSetCursorByOffset(a.end);return}}else for(let a of this.extmarks.values())if(a.virtual&&q>=a.end&&A<a.end&&A>=a.start){this.originalSetCursorByOffset(a.start-1);return}this.originalSetCursorByOffset(A)}}wrapDeletion(){this.editBuffer.deleteCharBackward=()=>{if(this.destroyed){this.originalDeleteCharBackward();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset,q=this.editorView.hasSelection();if(A===0){this.originalDeleteCharBackward();return}if(q){this.originalDeleteCharBackward();return}let g=A-1,E=this.findVirtualExtmarkContaining(g);if(E&&A===E.end){let a=this.offsetToPosition(E.start),F=this.offsetToPosition(E.end),K=E.start,Z=E.end-E.start;this.deleteExtmarkById(E.id),this.originalDeleteRange(a.row,a.col,F.row,F.col),this.adjustExtmarksAfterDeletion(K,Z),this.updateHighlights();return}this.originalDeleteCharBackward(),this.adjustExtmarksAfterDeletion(g,1)},this.editBuffer.deleteChar=()=>{if(this.destroyed){this.originalDeleteChar();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset,q=this.editBuffer.getText().length,g=this.editorView.hasSelection();if(A>=q){this.originalDeleteChar();return}if(g){this.originalDeleteChar();return}let E=A,a=this.findVirtualExtmarkContaining(E);if(a&&A===a.start){let F=this.offsetToPosition(a.start),K=this.offsetToPosition(a.end),Z=a.start,j=a.end-a.start;this.deleteExtmarkById(a.id),this.originalDeleteRange(F.row,F.col,K.row,K.col),this.adjustExtmarksAfterDeletion(Z,j),this.updateHighlights();return}this.originalDeleteChar(),this.adjustExtmarksAfterDeletion(E,1)},this.editBuffer.deleteRange=(A,q,g,E)=>{if(this.destroyed){this.originalDeleteRange(A,q,g,E);return}this.saveSnapshot();let a=this.positionToOffset(A,q),K=this.positionToOffset(g,E)-a;this.originalDeleteRange(A,q,g,E),this.adjustExtmarksAfterDeletion(a,K)},this.editBuffer.deleteLine=()=>{if(this.destroyed){this.originalDeleteLine();return}this.saveSnapshot();let A=this.editBuffer.getText(),q=this.editorView.getVisualCursor().offset,g=0;for(let F=q-1;F>=0;F--)if(A[F]===`
9
+ `)}function Gg(A){return JSON.stringify(A,null,2)}var Aq=()=>{if(process.env.NO_COLOR!==void 0)return!1;if(globalThis.__CLI_NO_COLOR)return!1;if(!process.stdout.isTTY)return!1;return!0},l;var AE=e(()=>{l={bold:(A)=>Aq()?`\x1B[1m${A}\x1B[0m`:A,cyan:(A)=>Aq()?`\x1B[36m${A}\x1B[0m`:A,green:(A)=>Aq()?`\x1B[32m${A}\x1B[0m`:A,yellow:(A)=>Aq()?`\x1B[33m${A}\x1B[0m`:A,dim:(A)=>Aq()?`\x1B[2m${A}\x1B[0m`:A,red:(A)=>Aq()?`\x1B[31m${A}\x1B[0m`:A,blueBold:(A)=>Aq()?`\x1B[1m\x1B[34m${A}\x1B[0m`:A}});function Qg(A){let q=[],g=new Set,E=new Map,a=[];for(let j of A){let U=E.get(j.realPath);if(U){if(j.isSymlink)continue;if(U.isSymlink)a[a.indexOf(U)]=j,E.set(j.realPath,j);else a.push(j)}else E.set(j.realPath,j),a.push(j)}let F=new Map;for(let j of a){let U=F.get(j.dirName)??[];U.push(j),F.set(j.dirName,U)}for(let[j,U]of F)if(new Set(U.map((Q)=>Q.location)).size>=2){q.push({key:j,reason:"same-dirName",instances:U});for(let Q of U)g.add(Q.path)}let K=new Map;for(let j of a){if(!j.name)continue;let U=K.get(j.name)??[];U.push(j),K.set(j.name,U)}for(let[j,U]of K){if(new Set(U.map((L)=>L.dirName)).size<2)continue;let Q=U.filter((L)=>!g.has(L.path));if(Q.length<2)continue;if(new Set(Q.map((L)=>L.dirName)).size<2)continue;q.push({key:j,reason:"same-frontmatterName",instances:Q})}q.sort((j,U)=>{if(j.reason!==U.reason)return j.reason==="same-dirName"?-1:1;return j.key.localeCompare(U.key)});let Z=q.reduce((j,U)=>j+U.instances.length,0);return{scannedAt:new Date().toISOString(),totalSkills:A.length,duplicateGroups:q,totalDuplicateInstances:Z}}function Yg(A){return[...A].sort((q,g)=>{if(q.scope!==g.scope)return q.scope==="global"?-1:1;let E=q.providerLabel.localeCompare(g.providerLabel);if(E!==0)return E;return q.path.localeCompare(g.path)})}function ng(A){return A==="same-dirName"?"same dirName":"same name"}function ba(A){if(A.duplicateGroups.length===0)return l.green("No duplicate skills found.");let q=[];q.push(l.bold(`Found ${A.duplicateGroups.length} duplicate group(s) (${A.totalDuplicateInstances} total instances):`)),q.push("");for(let g of A.duplicateGroups){q.push(l.yellow(` Group: "${g.key}" (${ng(g.reason)})`));let E=Yg(g.instances);for(let a=0;a<E.length;a++){let F=E[a],K=a===0?l.green(" (recommended keep)"):"";q.push(` ${l.dim("\u2022")} ${F.path} [${F.providerLabel}/${F.scope}]${K}`)}q.push("")}return q.join(`
10
+ `)}function ca(A){return JSON.stringify(A,null,2)}var og=e(()=>{AE()});import{resolve as LZ}from"path";var va="1.3.0",qE="4f6404d",$Z,XZ,Mg;var gE=e(async()=>{try{va=(await Bun.file(LZ(import.meta.dir,"../../package.json")).json()).version}catch{}try{let A=Bun.spawn(["git","rev-parse","--short","HEAD"],{stdout:"pipe",stderr:"pipe"});qE=(await new Response(A.stdout).text()).trim()||qE}catch{}$Z=va,XZ=qE,Mg=`v${$Z} (${XZ})`});var ua="./highlights-ghv9g403.scm";var ta=()=>{};var sa="./tree-sitter-javascript-nd0q4pe9.wasm";var la=()=>{};var ra="./highlights-eq9cgrbb.scm";var ia=()=>{};var oa="./tree-sitter-typescript-zxjzwt75.wasm";var na=()=>{};var AF="./highlights-r812a2qc.scm";var ea=()=>{};var gF="./tree-sitter-markdown-411r6y9b.wasm";var qF=()=>{};var aF="./injections-73j83es3.scm";var EF=()=>{};var KF="./highlights-x6tmsnaa.scm";var FF=()=>{};var ZF="./tree-sitter-markdown_inline-j5349f42.wasm";var jF=()=>{};var _F="./highlights-hk7bwhj4.scm";var UF=()=>{};var GF="./tree-sitter-zig-e78zbjpm.wasm";var OF=()=>{};import{EventEmitter as gU}from"events";import{Buffer as GU}from"buffer";import{Buffer as Y6}from"buffer";import{EventEmitter as mU}from"events";import{resolve as DA,dirname as wA}from"path";import{fileURLToPath as yA}from"url";import{resolve as LF,isAbsolute as pU,parse as fU}from"path";import{existsSync as dU}from"fs";import{basename as tU,join as uU}from"path";import $F from"os";import Lq from"path";import{EventEmitter as nU}from"events";import{dlopen as A_,toArrayBuffer as Jg,JSCallback as ZE,ptr as v}from"bun:ffi";import{existsSync as q_,writeFileSync as g_}from"fs";import{EventEmitter as E_}from"events";import{toArrayBuffer as q6,ptr as TF}from"bun:ffi";import{ptr as Nq,toArrayBuffer as UE}from"bun:ffi";import{ptr as U_,toArrayBuffer as __}from"bun:ffi";import{EventEmitter as I_}from"events";import x_ from"util";import{EventEmitter as XK}from"events";import{Console as W_}from"console";import h_ from"fs";import S_ from"path";import vF from"util";import{Writable as z_}from"stream";import{EventEmitter as B_}from"events";import{EventEmitter as y_}from"events";function sZ(A,q){this[A]=lZ.bind(null,q)}function AU(A){function q(a,F,K){let Z=a[F];a[F]=function(){for(var j=arguments.length,U=Array(j),O=0;O<j;O++)U[O]=arguments[O];return K.call(this,Z,...U)}}for(let a of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){let F={[bA.Point]:A.Node.prototype[a],[bA.Percent]:A.Node.prototype[`${a}Percent`],[bA.Auto]:A.Node.prototype[`${a}Auto`]};q(A.Node.prototype,a,function(K){for(var Z=arguments.length,j=Array(Z>1?Z-1:0),U=1;U<Z;U++)j[U-1]=arguments[U];let O=j.pop(),Q,M;if(O==="auto")Q=bA.Auto,M=void 0;else if(typeof O==="object")Q=O.unit,M=O.valueOf();else if(Q=typeof O==="string"&&O.endsWith("%")?bA.Percent:bA.Point,M=parseFloat(O),O!==void 0&&!Number.isNaN(O)&&Number.isNaN(M))throw Error(`Invalid value ${O} for ${a}`);if(!F[Q])throw Error(`Failed to execute "${a}": Unsupported unit '${O}'`);if(M!==void 0)return F[Q].call(this,...j,M);else return F[Q].call(this,...j)})}function g(a){return A.MeasureCallback.implement({measure:function(){let{width:F,height:K}=a(...arguments);return{width:F??NaN,height:K??NaN}}})}q(A.Node.prototype,"setMeasureFunc",function(a,F){if(F)return a.call(this,g(F));else return this.unsetMeasureFunc()});function E(a){return A.DirtiedCallback.implement({dirtied:a})}return q(A.Node.prototype,"setDirtiedFunc",function(a,F){a.call(this,E(F))}),q(A.Config.prototype,"free",function(){A.Config.destroy(this)}),q(A.Node,"create",(a,F)=>{return F?A.Node.createWithConfig(F):A.Node.createDefault()}),q(A.Node.prototype,"free",function(){A.Node.destroy(this)}),q(A.Node.prototype,"freeRecursive",function(){for(let a=0,F=this.getChildCount();a<F;++a)this.getChild(0).freeRecursive();this.free()}),q(A.Node.prototype,"calculateLayout",function(a){let F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,Z=arguments.length>3&&arguments[3]!==void 0?arguments[3]:lq.LTR;return a.call(this,F,K,Z)}),{Config:A.Config,Node:A.Node,...eZ}}function uF(A){return typeof A==="string"&&tF.includes(A)}function iq(A,q="single"){if(uF(A))return A;if(A!==void 0&&A!==null)console.warn(`Invalid borderStyle "${A}", falling back to "${q}". Valid values are: ${tF.join(", ")}`);return q}function G6(A){return A===!0?{top:!0,right:!0,bottom:!0,left:!0}:Array.isArray(A)?{top:A.includes("top"),right:A.includes("right"),bottom:A.includes("bottom"),left:A.includes("left")}:{top:!1,right:!1,bottom:!1,left:!1}}function Bq(A){let q=new Uint32Array(11);return q[0]=A.topLeft.codePointAt(0),q[1]=A.topRight.codePointAt(0),q[2]=A.bottomLeft.codePointAt(0),q[3]=A.bottomRight.codePointAt(0),q[4]=A.horizontal.codePointAt(0),q[5]=A.vertical.codePointAt(0),q[6]=A.topT.codePointAt(0),q[7]=A.bottomT.codePointAt(0),q[8]=A.leftT.codePointAt(0),q[9]=A.rightT.codePointAt(0),q[10]=A.cross.codePointAt(0),q}class Xg{name;ctrl;meta;shift;option;sequence;number;raw;eventType;source;code;super;hyper;capsLock;numLock;baseCode;repeated;_defaultPrevented=!1;_propagationStopped=!1;constructor(A){this.name=A.name,this.ctrl=A.ctrl,this.meta=A.meta,this.shift=A.shift,this.option=A.option,this.sequence=A.sequence,this.number=A.number,this.raw=A.raw,this.eventType=A.eventType,this.source=A.source,this.code=A.code,this.super=A.super,this.hyper=A.hyper,this.capsLock=A.capsLock,this.numLock=A.numLock,this.baseCode=A.baseCode,this.repeated=A.repeated}get defaultPrevented(){return this._defaultPrevented}get propagationStopped(){return this._propagationStopped}preventDefault(){this._defaultPrevented=!0}stopPropagation(){this._propagationStopped=!0}}class hE{text;_defaultPrevented=!1;_propagationStopped=!1;constructor(A){this.text=A}get defaultPrevented(){return this._defaultPrevented}get propagationStopped(){return this._propagationStopped}preventDefault(){this._defaultPrevented=!0}stopPropagation(){this._propagationStopped=!0}}class AA{buffer;constructor(A){this.buffer=A}static fromArray(A){return new AA(A)}static fromValues(A,q,g,E=1){return new AA(new Float32Array([A,q,g,E]))}static fromInts(A,q,g,E=255){return new AA(new Float32Array([A/255,q/255,g/255,E/255]))}static fromHex(A){return Z6(A)}toInts(){return[Math.round(this.r*255),Math.round(this.g*255),Math.round(this.b*255),Math.round(this.a*255)]}get r(){return this.buffer[0]}set r(A){this.buffer[0]=A}get g(){return this.buffer[1]}set g(A){this.buffer[1]=A}get b(){return this.buffer[2]}set b(A){this.buffer[2]=A}get a(){return this.buffer[3]}set a(A){this.buffer[3]=A}map(A){return[A(this.r),A(this.g),A(this.b),A(this.a)]}toString(){return`rgba(${this.r.toFixed(2)}, ${this.g.toFixed(2)}, ${this.b.toFixed(2)}, ${this.a.toFixed(2)})`}equals(A){if(!A)return!1;return this.r===A.r&&this.g===A.g&&this.b===A.b&&this.a===A.a}}function Z6(A){if(A=A.replace(/^#/,""),A.length===3)A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2];else if(A.length===4)A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2]+A[3]+A[3];if(!/^[0-9A-Fa-f]{6}$/.test(A)&&!/^[0-9A-Fa-f]{8}$/.test(A))return console.warn(`Invalid hex color: ${A}, defaulting to magenta`),AA.fromValues(1,0,1,1);let q=parseInt(A.substring(0,2),16)/255,g=parseInt(A.substring(2,4),16)/255,E=parseInt(A.substring(4,6),16)/255,a=A.length===8?parseInt(A.substring(6,8),16)/255:1;return AA.fromValues(q,g,E,a)}function R(A){if(typeof A==="string"){let q=A.toLowerCase();if(q==="transparent")return AA.fromValues(0,0,0,0);if(QF[q])return Z6(QF[q]);return Z6(A)}return A}function _U(A){let q=[],g=0,E=/<c(\d+)>(.*?)<\/c\d+>/g,a=0,F;while((F=E.exec(A))!==null){if(F.index>a){let j=A.slice(a,F.index);if(j)q.push({text:j,colorIndex:0})}let K=parseInt(F[1])-1,Z=F[2];q.push({text:Z,colorIndex:Math.max(0,K)}),a=F.index+F[0].length}if(a<A.length){let K=A.slice(a);if(K)q.push({text:K,colorIndex:0})}return q}function BE(A){if(!EE[A]){let q=lF[A],g={};for(let[E,a]of Object.entries(q.chars))g[E]=a.map((F)=>_U(F));EE[A]={...q,colors:q.colors||1,chars:g}}return EE[A]}function rq({text:A,font:q="tiny"}){let g=BE(q);if(!g)return console.warn(`Font '${q}' not found`),{width:0,height:0};let E=0;for(let a=0;a<A.length;a++){let F=A[a].toUpperCase(),K=g.chars[F];if(!K){let j=g.chars[" "];if(j&&j[0]){let U=0;for(let O of j[0])U+=O.text.length;E+=U}else E+=1;continue}let Z=0;if(K[0])for(let j of K[0])Z+=j.text.length;if(E+=Z,a<A.length-1)E+=g.letterspace_size}return{width:E,height:g.lines}}function CE(A,q="tiny"){let g=BE(q);if(!g)return[0];let E=[0],a=0;for(let F=0;F<A.length;F++){let K=A[F].toUpperCase(),Z=g.chars[K],j=0;if(!Z){let U=g.chars[" "];if(U&&U[0])for(let O of U[0])j+=O.text.length;else j=1}else if(Z[0])for(let U of Z[0])j+=U.text.length;if(a+=j,F<A.length-1)a+=g.letterspace_size;E.push(a)}return E}function K6(A,q,g="tiny"){let E=CE(q,g);if(A<0)return 0;for(let a=0;a<E.length-1;a++){let F=E[a],K=E[a+1];if(A>=F&&A<K){let Z=F+(K-F)/2;return A<Z?a:a+1}}if(E.length>0&&A>=E[E.length-1])return q.length;return 0}function Q6(A,{text:q,x:g=0,y:E=0,color:a=[AA.fromInts(255,255,255,255)],backgroundColor:F=AA.fromInts(0,0,0,255),font:K="tiny"}){let{width:Z,height:j}=A,U=BE(K);if(!U)return console.warn(`Font '${K}' not found`),{width:0,height:0};let O=Array.isArray(a)?a:[a];if(E<0||E+U.lines>j)return{width:0,height:U.lines};let Q=g,M=g;for(let L=0;L<q.length;L++){let $=q[L].toUpperCase(),V=U.chars[$];if(!V){let X=U.chars[" "];if(X&&X[0]){let T=0;for(let x of X[0])T+=x.text.length;Q+=T}else Q+=1;continue}let H=0;if(V[0])for(let X of V[0])H+=X.text.length;if(Q>=Z)break;if(Q+H<0){Q+=H+U.letterspace_size;continue}for(let X=0;X<U.lines&&X<V.length;X++){let T=V[X],x=E+X;if(x>=0&&x<j){let z=Q;for(let m of T){let D=O[m.colorIndex]||O[0];for(let N=0;N<m.text.length;N++){let h=z+N;if(h>=0&&h<Z){let b=m.text[N];if(b!==" ")A.setCellWithAlphaBlending(h,x,b,R(D),R(F))}}z+=m.text.length}}}if(Q+=H,L<q.length-1)Q+=U.letterspace_size}return{width:Q-M,height:U.lines}}function Tg({bold:A=!1,italic:q=!1,underline:g=!1,dim:E=!1,blink:a=!1,inverse:F=!1,hidden:K=!1,strikethrough:Z=!1}={}){let j=tA.NONE;if(A)j|=tA.BOLD;if(q)j|=tA.ITALIC;if(g)j|=tA.UNDERLINE;if(E)j|=tA.DIM;if(a)j|=tA.BLINK;if(F)j|=tA.INVERSE;if(K)j|=tA.HIDDEN;if(Z)j|=tA.STRIKETHROUGH;return j}function rF(A){return A&&A[iF]}function oq(A){return new nq([{__isChunk:!0,text:A}])}function OU(A,q){if(typeof A==="object"&&"__isChunk"in A){let g=A,E=q.fg?R(q.fg):g.fg,a=q.bg?R(q.bg):g.bg,F=Tg(q),K=g.attributes?g.attributes|F:F;return{__isChunk:!0,text:g.text,fg:E,bg:a,attributes:K,link:g.link}}else{let g=String(A),E=q.fg?R(q.fg):void 0,a=q.bg?R(q.bg):void 0,F=Tg(q);return{__isChunk:!0,text:g,fg:E,bg:a,attributes:F}}}class kE{now(){return Date.now()}setTimeout(A,q){return globalThis.setTimeout(A,q)}clearTimeout(A){globalThis.clearTimeout(A)}}function oF(A){return{shift:!!(A&1),alt:!!(A&2),ctrl:!!(A&4),super:!!(A&8),hyper:!!(A&16),meta:!!(A&32),capsLock:!!(A&64),numLock:!!(A&128)}}function MU(A){let g=/^\x1b\[(\d+);(\d+):(\d+)([A-Z~])$/.exec(A);if(!g)return null;let E=g[1],a=g[2],F=g[3],K=g[4],Z;if(K==="~")Z=YU[E];else{if(E!=="1")return null;Z=QU[K]}if(!Z)return null;let j={name:Z,ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"kitty",super:!1,hyper:!1,capsLock:!1,numLock:!1};if(a){let U=parseInt(a,10);if(!isNaN(U)&&U>1){let O=oF(U-1);j.shift=O.shift,j.ctrl=O.ctrl,j.meta=O.alt||O.meta,j.option=O.alt,j.super=O.super,j.hyper=O.hyper,j.capsLock=O.capsLock,j.numLock=O.numLock}}if(F==="1"||!F)j.eventType="press";else if(F==="2")j.eventType="press",j.repeated=!0;else if(F==="3")j.eventType="release";return j}function JU(A){let q=MU(A);if(q)return q;let E=/^\x1b\[([^\x1b]+)u$/.exec(A);if(!E)return null;let F=E[1].split(";");if(F.length<1)return null;let K={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"kitty",super:!1,hyper:!1,capsLock:!1,numLock:!1},Z="",j=F[0]?.split(":")||[],U=j[0];if(!U)return null;let O=parseInt(U,10);if(isNaN(O))return null;let Q,M;if(j[1]){let $=parseInt(j[1],10);if(!isNaN($)&&$>0&&$<=1114111)Q=$}if(j[2]){let $=parseInt(j[2],10);if(!isNaN($)&&$>0&&$<=1114111)M=$}let L=YF[O];if(L)K.name=L,K.code=`[${O}u`;else if(O>0&&O<=1114111){let $=String.fromCodePoint(O);if(K.name=$,M)K.baseCode=M}else return null;if(F[1]){let $=F[1].split(":"),V=$[0],H=$[1];if(V){let X=parseInt(V,10);if(!isNaN(X)&&X>1){let T=oF(X-1);K.shift=T.shift,K.ctrl=T.ctrl,K.meta=T.alt||T.meta,K.option=T.alt,K.super=T.super,K.hyper=T.hyper,K.capsLock=T.capsLock,K.numLock=T.numLock}}if(H==="1"||!H)K.eventType="press";else if(H==="2")K.eventType="press",K.repeated=!0;else if(H==="3")K.eventType="release";else K.eventType="press"}if(F[2]){let $=F[2].split(":");for(let V of $){let H=parseInt(V,10);if(!isNaN(H)&&H>0&&H<=1114111)Z+=String.fromCodePoint(H)}}if(Z===""){if(K.name.length>0&&!YF[O])if(K.shift&&Q)Z=String.fromCodePoint(Q);else if(K.shift&&K.name.length===1)Z=K.name.toLocaleUpperCase();else Z=K.name}if(K.name===" "&&K.shift&&!K.ctrl&&!K.meta)Z=" ";if(Z)K.sequence=Z;return K}function JE(A){if(A==null)return i.Auto;switch(A.toLowerCase()){case"auto":return i.Auto;case"flex-start":return i.FlexStart;case"center":return i.Center;case"flex-end":return i.FlexEnd;case"stretch":return i.Stretch;case"baseline":return i.Baseline;case"space-between":return i.SpaceBetween;case"space-around":return i.SpaceAround;case"space-evenly":return i.SpaceEvenly;default:return i.Auto}}function HE(A){if(A==null)return i.Stretch;switch(A.toLowerCase()){case"auto":return i.Auto;case"flex-start":return i.FlexStart;case"center":return i.Center;case"flex-end":return i.FlexEnd;case"stretch":return i.Stretch;case"baseline":return i.Baseline;case"space-between":return i.SpaceBetween;case"space-around":return i.SpaceAround;case"space-evenly":return i.SpaceEvenly;default:return i.Stretch}}function LE(A){if(A==null)return hA.Column;switch(A.toLowerCase()){case"column":return hA.Column;case"column-reverse":return hA.ColumnReverse;case"row":return hA.Row;case"row-reverse":return hA.RowReverse;default:return hA.Column}}function $E(A){if(A==null)return MA.FlexStart;switch(A.toLowerCase()){case"flex-start":return MA.FlexStart;case"center":return MA.Center;case"flex-end":return MA.FlexEnd;case"space-between":return MA.SpaceBetween;case"space-around":return MA.SpaceAround;case"space-evenly":return MA.SpaceEvenly;default:return MA.FlexStart}}function XE(A){if(A==null)return Fq.Visible;switch(A.toLowerCase()){case"visible":return Fq.Visible;case"hidden":return Fq.Hidden;case"scroll":return Fq.Scroll;default:return Fq.Visible}}function IE(A){if(A==null)return Kq.Relative;switch(A.toLowerCase()){case"static":return Kq.Static;case"relative":return Kq.Relative;case"absolute":return Kq.Absolute;default:return Kq.Static}}function TE(A){if(A==null)return jq.NoWrap;switch(A.toLowerCase()){case"no-wrap":return jq.NoWrap;case"wrap":return jq.Wrap;case"wrap-reverse":return jq.WrapReverse;default:return jq.NoWrap}}class AK{renderable;relativeX;relativeY;constructor(A,q,g){this.renderable=A,this.relativeX=q-this.renderable.x,this.relativeY=g-this.renderable.y}get x(){return this.renderable.x+this.relativeX}get y(){return this.renderable.y+this.relativeY}}class DE{_anchor;_focus;_selectedRenderables=[];_touchedRenderables=[];_isActive=!0;_isDragging=!0;_isStart=!1;constructor(A,q,g){this._anchor=new AK(A,q.x,q.y),this._focus={...g}}get isStart(){return this._isStart}set isStart(A){this._isStart=A}get anchor(){return{x:this._anchor.x,y:this._anchor.y}}get focus(){return{...this._focus}}set focus(A){this._focus={...A}}get isActive(){return this._isActive}set isActive(A){this._isActive=A}get isDragging(){return this._isDragging}set isDragging(A){this._isDragging=A}get bounds(){let A=Math.min(this._anchor.x,this._focus.x),q=Math.max(this._anchor.x,this._focus.x),g=Math.min(this._anchor.y,this._focus.y),E=Math.max(this._anchor.y,this._focus.y),a=q-A+1,F=E-g+1;return{x:A,y:g,width:a,height:F}}updateSelectedRenderables(A){this._selectedRenderables=A}get selectedRenderables(){return this._selectedRenderables}updateTouchedRenderables(A){this._touchedRenderables=A}get touchedRenderables(){return this._touchedRenderables}getSelectedText(){return this._selectedRenderables.sort((q,g)=>{let E=q.y,a=g.y;if(E!==a)return E-a;return q.x-g.x}).filter((q)=>!q.isDestroyed).map((q)=>q.getSelectedText()).filter((q)=>q).join(`
11
+ `)}}function Vg(A,q,g){if(!A?.isActive)return null;return{anchorX:A.anchor.x-q,anchorY:A.anchor.y-g,focusX:A.focus.x-q,focusY:A.focus.y-g,isActive:!0}}class wE{getText;getFont;localSelection=null;constructor(A,q){this.getText=A,this.getFont=q}hasSelection(){return this.localSelection!==null}getSelection(){return this.localSelection}shouldStartSelection(A,q,g,E){if(A<0||A>=g||q<0||q>=E)return!1;let a=this.getText(),F=this.getFont(),K=K6(A,a,F);return K>=0&&K<=a.length}onLocalSelectionChanged(A,q,g){let E=this.localSelection;if(!A?.isActive)return this.localSelection=null,E!==null;let a=this.getText(),F=this.getFont(),K={x:A.anchorX,y:A.anchorY},Z={x:A.focusX,y:A.focusY};if(g-1<K.y||0>Z.y)return this.localSelection=null,E!==null;let j=0,U=a.length;if(K.y>g-1)return this.localSelection=null,E!==null;else if(K.y>=0&&K.y<=g-1){if(K.x>0)j=K6(K.x,a,F)}if(Z.y<0)return this.localSelection=null,E!==null;else if(Z.y>=0&&Z.y<=g-1)if(Z.x>=0)U=K6(Z.x,a,F);else U=0;if(j<U&&j>=0&&U<=a.length)this.localSelection={start:j,end:U};else this.localSelection=null;return E?.start!==this.localSelection?.start||E?.end!==this.localSelection?.end}}function kq(A,q){let g=globalThis[yE]??={};if(!(A in g))g[A]=q();return g[A]}function PU(A){let q=globalThis[yE];if(q&&A in q)delete q[A]}function VU(A){let q=globalThis[yE];return q&&A in q}function ZA(A){let q=Cq[A.name];if(q){if(q.description!==A.description||q.type!==A.type||q.default!==A.default)throw Error(`Environment variable "${A.name}" is already registered with different configuration. Existing: ${JSON.stringify(q)}, New: ${JSON.stringify(A)}`);return}Cq[A.name]=A}function xU(A){let q=A.toLowerCase();return["true","1","on","yes"].includes(q)}function RU(A){let q=process.env[A.name];if(q===void 0&&A.default!==void 0)return A.default;if(q===void 0)throw Error(`Required environment variable ${A.name} is not set. ${A.description}`);switch(A.type){case"boolean":return typeof q==="boolean"?q:xU(q);case"number":let g=Number(q);if(isNaN(g))throw Error(`Environment variable ${A.name} must be a valid number, got: ${q}`);return g;case"string":default:return q}}class qK{parsedValues=new Map;get(A){if(this.parsedValues.has(A))return this.parsedValues.get(A);if(!(A in Cq))throw Error(`Environment variable ${A} is not registered.`);try{let q=RU(Cq[A]);return this.parsedValues.set(A,q),q}catch(q){throw Error(`Failed to parse env var ${A}: ${q instanceof Error?q.message:String(q)}`)}}has(A){return A in Cq}clearCache(){this.parsedValues.clear()}}class EK{buf;start=0;end=0;constructor(A=U6){this.buf=new Uint8Array(A)}get length(){return this.end-this.start}get capacity(){return this.buf.length}view(){return this.buf.subarray(this.start,this.end)}take(){let A=this.view();return this.start=0,this.end=0,A}append(A){if(A.length===0)return;this.ensureCapacity(this.length+A.length),this.buf.set(A,this.end),this.end+=A.length}consume(A){if(A<=0)return;if(A>=this.length){this.start=0,this.end=0;return}if(this.start+=A,this.start>=this.buf.length/2)this.buf.copyWithin(0,this.start,this.end),this.end-=this.start,this.start=0}clear(){this.start=0,this.end=0}reset(A=U6){this.buf=new Uint8Array(A),this.start=0,this.end=0}ensureCapacity(A){let q=this.length;if(A<=this.buf.length){if(this.buf.length-this.end>=A-q)return;if(this.buf.copyWithin(0,this.start,this.end),this.end=q,this.start=0,A<=this.buf.length)return}let g=this.buf.length;while(g<A)g*=2;let E=new Uint8Array(g);E.set(this.view(),0),this.buf=E,this.start=0,this.end=q}}function MF(A,q){if(typeof A!=="number"||!Number.isFinite(A)||A<=0)return q;return Math.floor(A)}function CU(A){if(A<128)return 1;if(A>=194&&A<=223)return 2;if(A>=224&&A<=239)return 3;if(A>=240&&A<=244)return 4;return 0}function kU(A,q){if(A.length!==q.length)return!1;for(let g=0;g<A.length;g+=1)if(A[g]!==q[g])return!1;return!0}function DU(A){if(A.length<7)return!1;if(A[0]!==Eq||A[1]!==91||A[2]!==60)return!1;let q=A[A.length-1];if(q!==77&&q!==109)return!1;let g=0,E=!1;for(let a=3;a<A.length-1;a+=1){let F=A[a];if(F>=48&&F<=57){E=!0;continue}if(F===59&&E&&g<2){g+=1,E=!1;continue}return!1}return g===2&&E}function wU(A,q){if(A.length===0)return q;if(q.length===0)return A;let g=new Uint8Array(A.length+q.length);return g.set(A,0),g.set(q,A.length),g}function JF(A,q){if(q.length===0)return 0;let g=A.length-q.length;for(let E=0;E<=g;E+=1){let a=!0;for(let F=0;F<q.length;F+=1)if(A[E+F]!==q[F]){a=!1;break}if(a)return E}return-1}function HF(A){return Y6.from(A.buffer,A.byteOffset,A.byteLength).toString("latin1")}function qq(A){return SU.decode(A)}function yU(){return{tail:gK,decoder:new TextDecoder,parts:[]}}class mE{pending=new EK(U6);events=[];timeoutMs;maxPendingBytes;armTimeouts;onTimeoutFlush;useKittyKeyboard;mouseParser=new Pg;clock;timeoutId=null;destroyed=!1;pendingSinceMs=null;forceFlush=!1;justFlushedEsc=!1;state={tag:"ground"};cursor=0;unitStart=0;paste=null;constructor(A={}){this.timeoutMs=MF(A.timeoutMs,NU),this.maxPendingBytes=MF(A.maxPendingBytes,WU),this.armTimeouts=A.armTimeouts??!0,this.onTimeoutFlush=A.onTimeoutFlush??null,this.useKittyKeyboard=A.useKittyKeyboard??!0,this.clock=A.clock??BU}get bufferCapacity(){return this.pending.capacity}push(A){if(this.ensureAlive(),A.length===0){this.emitKeyOrResponse("unknown","");return}let q=A;while(q.length>0){if(this.paste){q=this.consumePasteBytes(q);continue}let g=this.state.tag==="ground"&&this.pending.length===0?JF(q,aE):-1,E=g===-1?q.length:g+aE.length;if(this.pending.append(q.subarray(0,E)),q=q.subarray(E),this.scanPending(),this.paste&&this.pending.length>0){q=this.consumePasteBytes(this.takePendingBytes());continue}if(!this.paste&&this.pending.length>this.maxPendingBytes){if(this.flushPendingOverflow(),this.scanPending(),this.paste&&this.pending.length>0)q=this.consumePasteBytes(this.takePendingBytes())}}this.reconcileTimeoutState()}read(){if(this.ensureAlive(),this.events.length===0&&this.forceFlush)this.scanPending(),this.reconcileTimeoutState();return this.events.shift()??null}drain(A){this.ensureAlive();while(!0){if(this.destroyed)return;let q=this.read();if(!q)return;A(q)}}flushTimeout(A=this.clock.now()){if(this.ensureAlive(),this.paste||this.pendingSinceMs===null||this.pending.length===0)return;if(A<this.pendingSinceMs||A-this.pendingSinceMs<this.timeoutMs)return;this.forceFlush=!0}reset(){if(this.destroyed)return;this.clearTimeout(),this.resetState()}resetMouseState(){this.ensureAlive(),this.mouseParser.reset()}destroy(){if(this.destroyed)return;this.clearTimeout(),this.destroyed=!0,this.resetState()}ensureAlive(){if(this.destroyed)throw Error("StdinParser has been destroyed")}scanPending(){while(!this.paste){let A=this.pending.view();if(this.state.tag==="ground"&&this.cursor>=A.length){this.pending.clear(),this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1;return}let q=this.cursor<A.length?A[this.cursor]:-1;switch(this.state.tag){case"ground":{if(this.unitStart=this.cursor,this.justFlushedEsc){if(q===91){this.justFlushedEsc=!1,this.cursor+=1,this.state={tag:"esc_recovery"};continue}this.justFlushedEsc=!1}if(q===Eq){this.cursor+=1,this.state={tag:"esc"};continue}if(q<128){this.emitKeyOrResponse("unknown",qq(A.subarray(this.cursor,this.cursor+1))),this.consumePrefix(this.cursor+1);continue}let g=CU(q);if(g===0){if(!this.forceFlush&&this.cursor+1===A.length){this.markPending();return}this.emitLegacyHighByte(q),this.consumePrefix(this.cursor+1);continue}this.cursor+=1,this.state={tag:"utf8",expected:g,seen:1};continue}case"utf8":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitLegacyHighByte(A[this.unitStart]),this.state={tag:"ground"},this.consumePrefix(this.unitStart+1);continue}if((q&192)!==128){this.emitLegacyHighByte(A[this.unitStart]),this.state={tag:"ground"},this.consumePrefix(this.unitStart+1);continue}let g=this.state.seen+1;if(this.cursor+=1,g<this.state.expected){this.state={tag:"utf8",expected:this.state.expected,seen:g};continue}this.emitKeyOrResponse("unknown",qq(A.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"esc":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}let g=this.cursor===this.unitStart+1&&A[this.unitStart]===Eq;this.emitKeyOrResponse("unknown",qq(A.subarray(this.unitStart,this.cursor))),this.justFlushedEsc=g,this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}switch(q){case 91:this.cursor+=1,this.state={tag:"csi"};continue;case 79:this.cursor+=1,this.state={tag:"ss3"};continue;case 93:this.cursor+=1,this.state={tag:"osc",sawEsc:!1};continue;case 80:this.cursor+=1,this.state={tag:"dcs",sawEsc:!1};continue;case 95:this.cursor+=1,this.state={tag:"apc",sawEsc:!1};continue;case Eq:this.cursor+=1;continue;default:this.cursor+=1,this.emitKeyOrResponse("unknown",qq(A.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}}case"ss3":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===Eq){this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}this.cursor+=1,this.emitKeyOrResponse("unknown",qq(A.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"esc_recovery":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitKeyOrResponse("unknown",qq(A.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===60){this.cursor+=1,this.state={tag:"esc_less_mouse"};continue}if(q===77){this.cursor+=1,this.state={tag:"esc_less_x10_mouse"};continue}this.emitKeyOrResponse("unknown",qq(A.subarray(this.unitStart,this.unitStart+1))),this.state={tag:"ground"},this.consumePrefix(this.unitStart+1);continue}case"csi":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===Eq){this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===77&&this.cursor===this.unitStart+2){let g=this.cursor+4;if(A.length<g){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,A.length)),this.state={tag:"ground"},this.consumePrefix(A.length);continue}this.emitMouse(A.subarray(this.unitStart,g),"x10"),this.state={tag:"ground"},this.consumePrefix(g);continue}if(q===36){let g=this.cursor+1,E=qq(A.subarray(this.unitStart,g));if(zU.test(E)){this.emitKeyOrResponse("csi",E),this.state={tag:"ground"},this.consumePrefix(g);continue}if(!this.forceFlush&&g>=A.length){this.markPending();return}}if(q===91&&this.cursor===this.unitStart+2){this.cursor+=1;continue}if(q>=64&&q<=126){let g=this.cursor+1,E=A.subarray(this.unitStart,g);if(kU(E,aE)){this.state={tag:"ground"},this.consumePrefix(g),this.paste=yU();continue}if(DU(E)){this.emitMouse(E,"sgr"),this.state={tag:"ground"},this.consumePrefix(g);continue}this.emitKeyOrResponse("csi",qq(E)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.cursor+=1;continue}case"osc":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(this.state.sawEsc){if(q===92){let g=this.cursor+1;this.emitOpaqueResponse("osc",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.state={tag:"osc",sawEsc:!1};continue}if(q===hU){let g=this.cursor+1;this.emitOpaqueResponse("osc",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}if(q===Eq){this.cursor+=1,this.state={tag:"osc",sawEsc:!0};continue}this.cursor+=1;continue}case"dcs":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(this.state.sawEsc){if(q===92){let g=this.cursor+1;this.emitOpaqueResponse("dcs",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.state={tag:"dcs",sawEsc:!1};continue}if(q===Eq){this.cursor+=1,this.state={tag:"dcs",sawEsc:!0};continue}this.cursor+=1;continue}case"apc":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(this.state.sawEsc){if(q===92){let g=this.cursor+1;this.emitOpaqueResponse("apc",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.state={tag:"apc",sawEsc:!1};continue}if(q===Eq){this.cursor+=1,this.state={tag:"apc",sawEsc:!0};continue}this.cursor+=1;continue}case"esc_less_mouse":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q>=48&&q<=57||q===59){this.cursor+=1;continue}if(q===77||q===109){let g=this.cursor+1;this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"esc_less_x10_mouse":{let g=this.unitStart+5;if(A.length<g){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,A.length)),this.state={tag:"ground"},this.consumePrefix(A.length);continue}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}}}}emitKeyOrResponse(A,q){let g=ME(q,{useKittyKeyboard:this.useKittyKeyboard});if(g){this.events.push({type:"key",raw:g.raw,key:g});return}this.events.push({type:"response",protocol:A,sequence:q})}emitMouse(A,q){let g=this.mouseParser.parseMouseEvent(A);if(!g){this.emitOpaqueResponse("unknown",A);return}this.events.push({type:"mouse",raw:HF(A),encoding:q,event:g})}emitLegacyHighByte(A){let q=ME(Y6.from([A]),{useKittyKeyboard:this.useKittyKeyboard});if(q){this.events.push({type:"key",raw:q.raw,key:q});return}this.events.push({type:"response",protocol:"unknown",sequence:String.fromCharCode(A)})}emitOpaqueResponse(A,q){this.events.push({type:"response",protocol:A,sequence:HF(q)})}consumePrefix(A){this.pending.consume(A),this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1}takePendingBytes(){let A=this.pending.take();return this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1,A}flushPendingOverflow(){if(this.pending.length===0)return;this.emitOpaqueResponse("unknown",this.pending.view()),this.pending.clear(),this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1,this.state={tag:"ground"}}markPending(){this.pendingSinceMs=this.clock.now()}consumePasteBytes(A){let q=this.paste,g=wU(q.tail,A),E=JF(g,FE);if(E!==-1){this.pushPasteText(g.subarray(0,E));let K=q.decoder.decode();if(K.length>0)q.parts.push(K);return this.events.push({type:"paste",text:q.parts.join("")}),this.paste=null,g.subarray(E+FE.length)}let a=Math.min(FE.length-1,g.length),F=g.length-a;if(F>0)this.pushPasteText(g.subarray(0,F));return q.tail=g.slice(F),gK}pushPasteText(A){if(A.length===0)return;let q=this.paste.decoder.decode(A,{stream:!0});if(q.length>0)this.paste.parts.push(q)}reconcileTimeoutState(){if(!this.armTimeouts)return;if(this.paste||this.pendingSinceMs===null||this.pending.length===0){this.clearTimeout();return}this.clearTimeout(),this.timeoutId=this.clock.setTimeout(()=>{if(this.timeoutId=null,this.destroyed)return;try{this.flushTimeout(this.clock.now()),this.onTimeoutFlush?.()}catch(A){console.error("stdin parser timeout flush failed",A)}},this.timeoutMs)}clearTimeout(){if(!this.timeoutId)return;this.clock.clearTimeout(this.timeoutId),this.timeoutId=null}resetState(){this.pending.reset(U6),this.events.length=0,this.pendingSinceMs=null,this.forceFlush=!1,this.justFlushedEsc=!1,this.state={tag:"ground"},this.cursor=0,this.unitStart=0,this.paste=null,this.mouseParser.reset()}}class aK{scopeId;constructor(A){if(this.scopeId=A,!dq.has(this.scopeId))dq.set(this.scopeId,new Map)}debounce(A,q,g){let E=dq.get(this.scopeId);return new Promise((a,F)=>{if(E.has(A))clearTimeout(E.get(A));let K=setTimeout(()=>{try{a(g())}catch(Z){F(Z)}E.delete(A)},q);E.set(A,K)})}clearDebounce(A){let q=dq.get(this.scopeId);if(q&&q.has(A))clearTimeout(q.get(A)),q.delete(A)}clear(){let A=dq.get(this.scopeId);if(A)A.forEach((q)=>clearTimeout(q)),A.clear()}}function bU(A){return new aK(A)}function cU(A){let q=dq.get(A);if(q)q.forEach((g)=>clearTimeout(g)),q.clear()}class FK{processor;queue=[];processing=!1;autoProcess=!0;constructor(A,q=!0){this.processor=A,this.autoProcess=q}enqueue(A){if(this.queue.push(A),!this.processing&&this.autoProcess)this.processQueue()}processQueue(){if(this.queue.length===0)return;this.processing=!0,queueMicrotask(async()=>{if(this.queue.length===0){this.processing=!1;return}let A=this.queue.shift();try{await this.processor(A)}catch(q){console.error("Error processing queue item:",q)}if(this.queue.length>0)this.processQueue();else this.processing=!1})}clear(){this.queue=[]}isProcessing(){return this.processing}size(){return this.queue.length}}function vU(){if(!KE)KE=[{filetype:"javascript",queries:{highlights:[DA(wA(yA(import.meta.url)),ua)]},wasm:DA(wA(yA(import.meta.url)),sa)},{filetype:"typescript",queries:{highlights:[DA(wA(yA(import.meta.url)),ra)]},wasm:DA(wA(yA(import.meta.url)),oa)},{filetype:"markdown",queries:{highlights:[DA(wA(yA(import.meta.url)),AF)],injections:[DA(wA(yA(import.meta.url)),aF)]},wasm:DA(wA(yA(import.meta.url)),gF),injectionMapping:{nodeTypes:{inline:"markdown_inline",pipe_table_cell:"markdown_inline"},infoStringMap:{javascript:"javascript",js:"javascript",typescript:"typescript",ts:"typescript",markdown:"markdown",md:"markdown"}}},{filetype:"markdown_inline",queries:{highlights:[DA(wA(yA(import.meta.url)),KF)]},wasm:DA(wA(yA(import.meta.url)),ZF)},{filetype:"zig",queries:{highlights:[DA(wA(yA(import.meta.url)),_F)]},wasm:DA(wA(yA(import.meta.url)),GF)}];return KE}function KK(A){return A.includes("$bunfs")||/^B:[\\/]~BUN/i.test(A)}function lU(){return process.platform==="win32"?"B:\\~BUN\\root":"/$bunfs/root"}function sU(A){return uU(lU(),tU(A))}function oU(A){if(!A||typeof A!=="string")return!1;if(A.trim().length===0)return!1;if(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"].includes(A.toUpperCase()))return!1;if(/[<>:"|?*\/\\\x00-\x1f]/.test(A))return!1;if(A.endsWith(".")||A.endsWith(" "))return!1;if(A==="."||A==="..")return!1;return!0}function jK(){return kq("data-paths-opentui",()=>new cE)}function ZK(){let A=jK(),q={dataPath:A.globalDataPath};return kq("tree-sitter-client",()=>{let g=new bE(q);return A.on("paths:changed",(E)=>{g.setDataPath(E.globalDataPath)}),g})}class UK{undoStack=[];redoStack=[];saveSnapshot(A,q){let g={extmarks:new Map(Array.from(A.entries()).map(([E,a])=>[E,{...a}])),nextId:q};this.undoStack.push(g),this.redoStack=[]}undo(){if(this.undoStack.length===0)return null;return this.undoStack.pop()}redo(){if(this.redoStack.length===0)return null;return this.redoStack.pop()}pushRedo(A){this.redoStack.push(A)}pushUndo(A){this.undoStack.push(A)}clear(){this.undoStack=[],this.redoStack=[]}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}}class vE{editBuffer;editorView;extmarks=new Map;extmarksByTypeId=new Map;metadata=new Map;nextId=1;destroyed=!1;history=new UK;typeNameToId=new Map;typeIdToName=new Map;nextTypeId=1;originalMoveCursorLeft;originalMoveCursorRight;originalSetCursorByOffset;originalMoveUpVisual;originalMoveDownVisual;originalDeleteCharBackward;originalDeleteChar;originalInsertText;originalInsertChar;originalDeleteRange;originalSetText;originalReplaceText;originalClear;originalNewLine;originalDeleteLine;originalEditorViewDeleteSelectedText;originalUndo;originalRedo;constructor(A,q){this.editBuffer=A,this.editorView=q,this.originalMoveCursorLeft=A.moveCursorLeft.bind(A),this.originalMoveCursorRight=A.moveCursorRight.bind(A),this.originalSetCursorByOffset=A.setCursorByOffset.bind(A),this.originalMoveUpVisual=q.moveUpVisual.bind(q),this.originalMoveDownVisual=q.moveDownVisual.bind(q),this.originalDeleteCharBackward=A.deleteCharBackward.bind(A),this.originalDeleteChar=A.deleteChar.bind(A),this.originalInsertText=A.insertText.bind(A),this.originalInsertChar=A.insertChar.bind(A),this.originalDeleteRange=A.deleteRange.bind(A),this.originalSetText=A.setText.bind(A),this.originalReplaceText=A.replaceText.bind(A),this.originalClear=A.clear.bind(A),this.originalNewLine=A.newLine.bind(A),this.originalDeleteLine=A.deleteLine.bind(A),this.originalEditorViewDeleteSelectedText=q.deleteSelectedText.bind(q),this.originalUndo=A.undo.bind(A),this.originalRedo=A.redo.bind(A),this.wrapCursorMovement(),this.wrapDeletion(),this.wrapInsertion(),this.wrapEditorViewDeleteSelectedText(),this.wrapUndoRedo(),this.setupContentChangeListener()}wrapCursorMovement(){this.editBuffer.moveCursorLeft=()=>{if(this.destroyed){this.originalMoveCursorLeft();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorLeft();return}let g=A-1;if(g<0){this.originalMoveCursorLeft();return}let E=this.findVirtualExtmarkContaining(g);if(E&&A>=E.end){this.editBuffer.setCursorByOffset(E.start-1);return}this.originalMoveCursorLeft()},this.editBuffer.moveCursorRight=()=>{if(this.destroyed){this.originalMoveCursorRight();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorRight();return}let g=A+1,E=this.editBuffer.getText().length;if(g>E){this.originalMoveCursorRight();return}let a=this.findVirtualExtmarkContaining(g);if(a&&A<=a.start){this.editBuffer.setCursorByOffset(a.end);return}this.originalMoveCursorRight()},this.editorView.moveUpVisual=()=>{if(this.destroyed){this.originalMoveUpVisual();return}if(this.editorView.hasSelection()){this.originalMoveUpVisual();return}let q=this.editorView.getVisualCursor().offset;this.originalMoveUpVisual();let g=this.editorView.getVisualCursor().offset,E=this.findVirtualExtmarkContaining(g);if(E){let a=g-E.start,F=E.end-g;if(a<F)this.editorView.setCursorByOffset(E.start-1);else this.editorView.setCursorByOffset(E.end)}},this.editorView.moveDownVisual=()=>{if(this.destroyed){this.originalMoveDownVisual();return}if(this.editorView.hasSelection()){this.originalMoveDownVisual();return}let q=this.editorView.getVisualCursor().offset;this.originalMoveDownVisual();let g=this.editorView.getVisualCursor().offset,E=this.findVirtualExtmarkContaining(g);if(E){let a=g-E.start,F=E.end-g;if(a<F){let K=E.start-1,Z=K<=q?E.end:K;this.editorView.setCursorByOffset(Z)}else this.editorView.setCursorByOffset(E.end)}},this.editBuffer.setCursorByOffset=(A)=>{if(this.destroyed){this.originalSetCursorByOffset(A);return}let q=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalSetCursorByOffset(A);return}if(A>q){let a=this.findVirtualExtmarkContaining(A);if(a&&q<=a.start){this.originalSetCursorByOffset(a.end);return}}else for(let a of this.extmarks.values())if(a.virtual&&q>=a.end&&A<a.end&&A>=a.start){this.originalSetCursorByOffset(a.start-1);return}this.originalSetCursorByOffset(A)}}wrapDeletion(){this.editBuffer.deleteCharBackward=()=>{if(this.destroyed){this.originalDeleteCharBackward();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset,q=this.editorView.hasSelection();if(A===0){this.originalDeleteCharBackward();return}if(q){this.originalDeleteCharBackward();return}let g=A-1,E=this.findVirtualExtmarkContaining(g);if(E&&A===E.end){let a=this.offsetToPosition(E.start),F=this.offsetToPosition(E.end),K=E.start,Z=E.end-E.start;this.deleteExtmarkById(E.id),this.originalDeleteRange(a.row,a.col,F.row,F.col),this.adjustExtmarksAfterDeletion(K,Z),this.updateHighlights();return}this.originalDeleteCharBackward(),this.adjustExtmarksAfterDeletion(g,1)},this.editBuffer.deleteChar=()=>{if(this.destroyed){this.originalDeleteChar();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset,q=this.editBuffer.getText().length,g=this.editorView.hasSelection();if(A>=q){this.originalDeleteChar();return}if(g){this.originalDeleteChar();return}let E=A,a=this.findVirtualExtmarkContaining(E);if(a&&A===a.start){let F=this.offsetToPosition(a.start),K=this.offsetToPosition(a.end),Z=a.start,j=a.end-a.start;this.deleteExtmarkById(a.id),this.originalDeleteRange(F.row,F.col,K.row,K.col),this.adjustExtmarksAfterDeletion(Z,j),this.updateHighlights();return}this.originalDeleteChar(),this.adjustExtmarksAfterDeletion(E,1)},this.editBuffer.deleteRange=(A,q,g,E)=>{if(this.destroyed){this.originalDeleteRange(A,q,g,E);return}this.saveSnapshot();let a=this.positionToOffset(A,q),K=this.positionToOffset(g,E)-a;this.originalDeleteRange(A,q,g,E),this.adjustExtmarksAfterDeletion(a,K)},this.editBuffer.deleteLine=()=>{if(this.destroyed){this.originalDeleteLine();return}this.saveSnapshot();let A=this.editBuffer.getText(),q=this.editorView.getVisualCursor().offset,g=0;for(let F=q-1;F>=0;F--)if(A[F]===`
12
12
  `){g=F+1;break}let E=A.length;for(let F=q;F<A.length;F++)if(A[F]===`
13
13
  `){E=F+1;break}let a=E-g;this.originalDeleteLine(),this.adjustExtmarksAfterDeletion(g,a)}}wrapInsertion(){this.editBuffer.insertText=(A)=>{if(this.destroyed){this.originalInsertText(A);return}this.saveSnapshot();let q=this.editorView.getVisualCursor().offset;this.originalInsertText(A),this.adjustExtmarksAfterInsertion(q,A.length)},this.editBuffer.insertChar=(A)=>{if(this.destroyed){this.originalInsertChar(A);return}this.saveSnapshot();let q=this.editorView.getVisualCursor().offset;this.originalInsertChar(A),this.adjustExtmarksAfterInsertion(q,1)},this.editBuffer.setText=(A)=>{if(this.destroyed){this.originalSetText(A);return}this.clear(),this.originalSetText(A)},this.editBuffer.replaceText=(A)=>{if(this.destroyed){this.originalReplaceText(A);return}this.saveSnapshot(),this.clear(),this.originalReplaceText(A)},this.editBuffer.clear=()=>{if(this.destroyed){this.originalClear();return}this.saveSnapshot(),this.clear(),this.originalClear()},this.editBuffer.newLine=()=>{if(this.destroyed){this.originalNewLine();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset;this.originalNewLine(),this.adjustExtmarksAfterInsertion(A,1)}}wrapEditorViewDeleteSelectedText(){this.editorView.deleteSelectedText=()=>{if(this.destroyed){this.originalEditorViewDeleteSelectedText();return}this.saveSnapshot();let A=this.editorView.getSelection();if(!A){this.originalEditorViewDeleteSelectedText();return}let q=Math.min(A.start,A.end),g=Math.abs(A.end-A.start);if(this.originalEditorViewDeleteSelectedText(),g>0)this.adjustExtmarksAfterDeletion(q,g)}}setupContentChangeListener(){this.editBuffer.on("content-changed",()=>{if(this.destroyed)return;this.updateHighlights()})}deleteExtmarkById(A){let q=this.extmarks.get(A);if(q)this.extmarks.delete(A),this.extmarksByTypeId.get(q.typeId)?.delete(A),this.metadata.delete(A)}findVirtualExtmarkContaining(A){for(let q of this.extmarks.values())if(q.virtual&&A>=q.start&&A<q.end)return q;return null}adjustExtmarksAfterInsertion(A,q){for(let g of this.extmarks.values())if(g.start>=A)g.start+=q,g.end+=q;else if(g.end>A)g.end+=q;this.updateHighlights()}adjustExtmarksAfterDeletion(A,q){let g=[];for(let E of this.extmarks.values()){if(E.end<=A)continue;if(E.start>=A+q)E.start-=q,E.end-=q;else if(E.start>=A&&E.end<=A+q)g.push(E.id);else if(E.start<A&&E.end>A+q)E.end-=q;else if(E.start<A&&E.end>A)E.end-=Math.min(E.end,A+q)-A;else if(E.start<A+q&&E.end>A+q){let a=A+q-E.start;E.start=A,E.end-=q}}for(let E of g)this.deleteExtmarkById(E);this.updateHighlights()}offsetToPosition(A){let q=this.editBuffer.offsetToPosition(A);if(!q)return{row:0,col:0};return q}positionToOffset(A,q){return this.editBuffer.positionToOffset(A,q)}updateHighlights(){this.editBuffer.clearAllHighlights();for(let A of this.extmarks.values())if(A.styleId!==void 0){let q=this.offsetExcludingNewlines(A.start),g=this.offsetExcludingNewlines(A.end);this.editBuffer.addHighlightByCharRange({start:q,end:g,styleId:A.styleId,priority:A.priority??0,hlRef:A.id})}}offsetExcludingNewlines(A){let q=this.editBuffer.getText(),g=0,E=0,a=0;while(a<q.length&&g<A)if(q[a]===`
14
14
  `)g++,E++,a++;else{let F=a;while(F<q.length&&q[F]!==`
15
- `)F++;let K=q.substring(a,F),Z=Bun.stringWidth(K);if(g+Z<A)g+=Z,a=F;else{for(let j=a;j<F&&g<A;j++){let U=Bun.stringWidth(q[j]);g+=U}break}}return A-E}create(A){if(this.destroyed)throw Error("ExtmarksController is destroyed");let q=this.nextId++,g=A.typeId??0,E={id:q,start:A.start,end:A.end,virtual:A.virtual??!1,styleId:A.styleId,priority:A.priority,data:A.data,typeId:g};if(this.extmarks.set(q,E),!this.extmarksByTypeId.has(g))this.extmarksByTypeId.set(g,new Set);if(this.extmarksByTypeId.get(g).add(q),A.metadata!==void 0)this.metadata.set(q,A.metadata);return this.updateHighlights(),q}delete(A){if(this.destroyed)throw Error("ExtmarksController is destroyed");if(!this.extmarks.get(A))return!1;return this.deleteExtmarkById(A),this.updateHighlights(),!0}get(A){if(this.destroyed)return null;return this.extmarks.get(A)??null}getAll(){if(this.destroyed)return[];return Array.from(this.extmarks.values())}getVirtual(){if(this.destroyed)return[];return Array.from(this.extmarks.values()).filter((A)=>A.virtual)}getAtOffset(A){if(this.destroyed)return[];return Array.from(this.extmarks.values()).filter((q)=>A>=q.start&&A<q.end)}getAllForTypeId(A){if(this.destroyed)return[];let q=this.extmarksByTypeId.get(A);if(!q)return[];return Array.from(q).map((g)=>this.extmarks.get(g)).filter((g)=>g!==void 0)}clear(){if(this.destroyed)return;this.extmarks.clear(),this.extmarksByTypeId.clear(),this.metadata.clear(),this.updateHighlights()}saveSnapshot(){this.history.saveSnapshot(this.extmarks,this.nextId)}restoreSnapshot(A){this.extmarks=new Map(Array.from(A.extmarks.entries()).map(([q,g])=>[q,{...g}])),this.nextId=A.nextId,this.updateHighlights()}wrapUndoRedo(){this.editBuffer.undo=()=>{if(this.destroyed)return this.originalUndo();if(!this.history.canUndo())return this.originalUndo();let A={extmarks:new Map(Array.from(this.extmarks.entries()).map(([g,E])=>[g,{...E}])),nextId:this.nextId};this.history.pushRedo(A);let q=this.history.undo();return this.restoreSnapshot(q),this.originalUndo()},this.editBuffer.redo=()=>{if(this.destroyed)return this.originalRedo();if(!this.history.canRedo())return this.originalRedo();let A={extmarks:new Map(Array.from(this.extmarks.entries()).map(([g,E])=>[g,{...E}])),nextId:this.nextId};this.history.pushUndo(A);let q=this.history.redo();return this.restoreSnapshot(q),this.originalRedo()}}registerType(A){if(this.destroyed)throw Error("ExtmarksController is destroyed");let q=this.typeNameToId.get(A);if(q!==void 0)return q;let g=this.nextTypeId++;return this.typeNameToId.set(A,g),this.typeIdToName.set(g,A),g}getTypeId(A){if(this.destroyed)return null;return this.typeNameToId.get(A)??null}getTypeName(A){if(this.destroyed)return null;return this.typeIdToName.get(A)??null}getMetadataFor(A){if(this.destroyed)return;return this.metadata.get(A)}destroy(){if(this.destroyed)return;this.editBuffer.moveCursorLeft=this.originalMoveCursorLeft,this.editBuffer.moveCursorRight=this.originalMoveCursorRight,this.editBuffer.setCursorByOffset=this.originalSetCursorByOffset,this.editorView.moveUpVisual=this.originalMoveUpVisual,this.editorView.moveDownVisual=this.originalMoveDownVisual,this.editBuffer.deleteCharBackward=this.originalDeleteCharBackward,this.editBuffer.deleteChar=this.originalDeleteChar,this.editBuffer.insertText=this.originalInsertText,this.editBuffer.insertChar=this.originalInsertChar,this.editBuffer.deleteRange=this.originalDeleteRange,this.editBuffer.setText=this.originalSetText,this.editBuffer.replaceText=this.originalReplaceText,this.editBuffer.clear=this.originalClear,this.editBuffer.newLine=this.originalNewLine,this.editBuffer.deleteLine=this.originalDeleteLine,this.editorView.deleteSelectedText=this.originalEditorViewDeleteSelectedText,this.editBuffer.undo=this.originalUndo,this.editBuffer.redo=this.originalRedo,this.extmarks.clear(),this.extmarksByTypeId.clear(),this.metadata.clear(),this.typeNameToId.clear(),this.typeIdToName.clear(),this.history.clear(),this.destroyed=!0}}function _K(A,q){return new vE(A,q)}function jE(A){let q=parseInt(A,16),g=(1<<4*A.length)-1;return Math.round(q/g*255).toString(16).padStart(2,"0")}function IF(A,q,g,E){if(E)return`#${E.toLowerCase()}`;if(A&&q&&g)return`#${jE(A)}${jE(q)}${jE(g)}`;return"#000000"}function oU(A){return`\x1BPtmux;${A.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`}class pE{stdin;stdout;writeFn;activeQuerySessions=[];inLegacyTmux;oscSource;constructor(A,q,g,E,a){this.stdin=A,this.stdout=q,this.writeFn=g||((F)=>q.write(F)),this.inLegacyTmux=E??!1,this.oscSource=a}writeOsc(A){let q=this.inLegacyTmux?oU(A):A;return this.writeFn(q)}cleanup(){for(let A of[...this.activeQuerySessions])A();this.activeQuerySessions=[]}subscribeInput(A){if(this.oscSource)return this.oscSource.subscribeOsc((q)=>{A(q)});return this.stdin.on("data",A),()=>{this.stdin.removeListener("data",A)}}createQuerySession(){let A=new Set,q=new Set,g=!1,E=()=>{if(g)return;g=!0;for(let F of A)clearTimeout(F);A.clear();for(let F of q)F();q.clear();let a=this.activeQuerySessions.indexOf(E);if(a!==-1)this.activeQuerySessions.splice(a,1)};return this.activeQuerySessions.push(E),{setTimer:(a,F)=>{let K=setTimeout(a,F);return A.add(K),K},resetTimer:(a,F,K)=>{if(a)clearTimeout(a),A.delete(a);let Z=setTimeout(F,K);return A.add(Z),Z},subscribeInput:(a)=>{let F=this.subscribeInput(a);return q.add(F),()=>{if(!q.has(F))return;q.delete(F),F()}},cleanup:E}}async detectOSCSupport(A=300){if(!this.stdout.isTTY||!this.stdin.isTTY)return!1;return new Promise((g)=>{let E=this.createQuerySession(),a="",F=!1,K=(j)=>{if(F)return;F=!0,E.cleanup(),g(j)},Z=(j)=>{if(a+=j.toString(),A6.lastIndex=0,A6.test(a))K(!0)};E.setTimer(()=>{K(!1)},A),E.subscribeInput(Z),this.writeOsc("\x1B]4;0;?\x07")})}async queryPalette(A,q=1200){let g=this.stdout,E=new Map;if(A.forEach((a)=>E.set(a,null)),!g.isTTY||!this.stdin.isTTY)return E;return new Promise((a)=>{let F=this.createQuerySession(),K="",Z=null,j=!1,U=()=>{if(j)return;j=!0,F.cleanup(),a(E)},O=(Q)=>{K+=Q.toString();let M;A6.lastIndex=0;while(M=A6.exec(K)){let $=parseInt(M[1],10);if(E.has($))E.set($,IF(M[2],M[3],M[4],M[5]))}if(K.length>8192)K=K.slice(-4096);if([...E.values()].filter(($)=>$!==null).length===E.size){U();return}Z=F.resetTimer(Z,U,150)};F.setTimer(U,q),F.subscribeInput(O),this.writeOsc(A.map((Q)=>`\x1B]4;${Q};?\x07`).join(""))})}async querySpecialColors(A=1200){let q=this.stdout,g={10:null,11:null,12:null,13:null,14:null,15:null,16:null,17:null,19:null};if(!q.isTTY||!this.stdin.isTTY)return g;return new Promise((E)=>{let a=this.createQuerySession(),F="",K=null,Z=!1,j=()=>{if(Z)return;Z=!0,a.cleanup(),E(g)},U=(O)=>{F+=O.toString();let Q=!1,M;XF.lastIndex=0;while(M=XF.exec(F)){let $=parseInt(M[1],10);if($ in g)g[$]=IF(M[2],M[3],M[4],M[5]),Q=!0}if(F.length>8192)F=F.slice(-4096);if(Object.values(g).filter(($)=>$!==null).length===Object.keys(g).length){j();return}if(!Q)return;K=a.resetTimer(K,j,150)};a.setTimer(j,A),a.subscribeInput(U),this.writeOsc(["\x1B]10;?\x07","\x1B]11;?\x07","\x1B]12;?\x07","\x1B]13;?\x07","\x1B]14;?\x07","\x1B]15;?\x07","\x1B]16;?\x07","\x1B]17;?\x07","\x1B]19;?\x07"].join(""))})}async detect(A){let{timeout:q=5000,size:g=16}=A||{};if(!await this.detectOSCSupport())return{palette:Array(g).fill(null),defaultForeground:null,defaultBackground:null,cursorColor:null,mouseForeground:null,mouseBackground:null,tekForeground:null,tekBackground:null,highlightBackground:null,highlightForeground:null};let a=[...Array(g).keys()],[F,K]=await Promise.all([this.queryPalette(a,q),this.querySpecialColors(q)]);return{palette:[...Array(g).keys()].map((Z)=>F.get(Z)??null),defaultForeground:K[10],defaultBackground:K[11],cursorColor:K[12],mouseForeground:K[13],mouseBackground:K[14],tekForeground:K[15],tekBackground:K[16],highlightBackground:K[17],highlightForeground:K[19]}}}function OK(A,q,g,E,a){return new pE(A,q,g,E,a)}function E_(A,q,g){let E=0;if(A===!0)E|=15;else if(Array.isArray(A)){if(A.includes("top"))E|=8;if(A.includes("right"))E|=4;if(A.includes("bottom"))E|=2;if(A.includes("left"))E|=1}if(q)E|=16;let F={left:0,center:1,right:2}[g];return E|=F<<5,E}class Zq{static fbIdCounter=0;id;lib;bufferPtr;_width;_height;_widthMethod;respectAlpha=!1;_rawBuffers=null;_destroyed=!1;get ptr(){return this.bufferPtr}guard(){if(this._destroyed)throw Error(`Buffer ${this.id} is destroyed`)}get buffers(){if(this.guard(),this._rawBuffers===null){let A=this._width*this._height,q=this.lib.bufferGetCharPtr(this.bufferPtr),g=this.lib.bufferGetFgPtr(this.bufferPtr),E=this.lib.bufferGetBgPtr(this.bufferPtr),a=this.lib.bufferGetAttributesPtr(this.bufferPtr);this._rawBuffers={char:new Uint32Array(q6(q,0,A*4)),fg:new Float32Array(q6(g,0,A*4*4)),bg:new Float32Array(q6(E,0,A*4*4)),attributes:new Uint32Array(q6(a,0,A*4))}}return this._rawBuffers}constructor(A,q,g,E,a){this.id=a.id||`fb_${Zq.fbIdCounter++}`,this.lib=A,this.respectAlpha=a.respectAlpha||!1,this._width=g,this._height=E,this._widthMethod=a.widthMethod||"unicode",this.bufferPtr=q}static create(A,q,g,E={}){let a=PA(),F=E.respectAlpha||!1,K=E.id&&E.id.trim()!==""?E.id:"unnamed buffer";return a.createOptimizedBuffer(A,q,g,F,K)}get widthMethod(){return this._widthMethod}get width(){return this._width}get height(){return this._height}setRespectAlpha(A){this.guard(),this.lib.bufferSetRespectAlpha(this.bufferPtr,A),this.respectAlpha=A}getNativeId(){return this.guard(),this.lib.bufferGetId(this.bufferPtr)}getRealCharBytes(A=!1){this.guard();let q=this.lib.bufferGetRealCharSize(this.bufferPtr),g=new Uint8Array(q),E=this.lib.bufferWriteResolvedChars(this.bufferPtr,g,A);return g.slice(0,E)}getSpanLines(){this.guard();let{char:A,fg:q,bg:g,attributes:E}=this.buffers,a=[],F=-1073741824,K=-1073741824,Z=this.getRealCharBytes(!0),j=new TextDecoder().decode(Z).split(`
16
- `);for(let U=0;U<this._height;U++){let O=[],Q=null,M=[...j[U]||""],L=0;for(let $=0;$<this._width;$++){let V=U*this._width+$,H=A[V],X=AA.fromValues(q[V*4],q[V*4+1],q[V*4+2],q[V*4+3]),T=AA.fromValues(g[V*4],g[V*4+1],g[V*4+2],g[V*4+3]),x=E[V]&255,m=(H&K)===F?"":M[L++]??" ";if(Q&&Q.fg.equals(X)&&Q.bg.equals(T)&&Q.attributes===x)Q.text+=m,Q.width+=1;else{if(Q)O.push(Q);Q={text:m,fg:X,bg:T,attributes:x,width:1}}}if(Q)O.push(Q);a.push({spans:O})}return a}clear(A=AA.fromValues(0,0,0,1)){this.guard(),this.lib.bufferClear(this.bufferPtr,A)}setCell(A,q,g,E,a,F=0){this.guard(),this.lib.bufferSetCell(this.bufferPtr,A,q,g,E,a,F)}setCellWithAlphaBlending(A,q,g,E,a,F=0){this.guard(),this.lib.bufferSetCellWithAlphaBlending(this.bufferPtr,A,q,g,E,a,F)}drawText(A,q,g,E,a,F=0,K){if(this.guard(),!K){this.lib.bufferDrawText(this.bufferPtr,A,q,g,E,a,F);return}let{start:Z,end:j}=K,U,O;if(K.bgColor)U=K.bgColor,O=K.fgColor||E;else{let Q=a||AA.fromValues(0,0,0,0);O=Q.a>0?Q:AA.fromValues(0,0,0,1),U=E}if(Z>0){let Q=A.slice(0,Z);this.lib.bufferDrawText(this.bufferPtr,Q,q,g,E,a,F)}if(j>Z){let Q=A.slice(Z,j);this.lib.bufferDrawText(this.bufferPtr,Q,q+Z,g,O,U,F)}if(j<A.length){let Q=A.slice(j);this.lib.bufferDrawText(this.bufferPtr,Q,q+j,g,E,a,F)}}fillRect(A,q,g,E,a){this.lib.bufferFillRect(this.bufferPtr,A,q,g,E,a)}drawFrameBuffer(A,q,g,E,a,F,K){this.guard(),this.lib.drawFrameBuffer(this.bufferPtr,A,q,g.ptr,E,a,F,K)}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyOptimizedBuffer(this.bufferPtr)}drawTextBuffer(A,q,g){this.guard(),this.lib.bufferDrawTextBufferView(this.bufferPtr,A.ptr,q,g)}drawEditorView(A,q,g){this.guard(),this.lib.bufferDrawEditorView(this.bufferPtr,A.ptr,q,g)}drawSuperSampleBuffer(A,q,g,E,a,F){this.guard(),this.lib.bufferDrawSuperSampleBuffer(this.bufferPtr,A,q,g,E,a,F)}drawPackedBuffer(A,q,g,E,a,F){this.guard(),this.lib.bufferDrawPackedBuffer(this.bufferPtr,A,q,g,E,a,F)}drawGrayscaleBuffer(A,q,g,E,a,F=null,K=null){this.guard(),this.lib.bufferDrawGrayscaleBuffer(this.bufferPtr,A,q,TF(g),E,a,F,K)}drawGrayscaleBufferSupersampled(A,q,g,E,a,F=null,K=null){this.guard(),this.lib.bufferDrawGrayscaleBufferSupersampled(this.bufferPtr,A,q,TF(g),E,a,F,K)}resize(A,q){if(this.guard(),this._width===A&&this._height===q)return;this._width=A,this._height=q,this._rawBuffers=null,this.lib.bufferResize(this.bufferPtr,A,q)}drawBox(A){this.guard();let q=iq(A.borderStyle,"single"),g=A.customBorderChars??WE[q],E=E_(A.border,A.shouldFill??!1,A.titleAlignment||"left");this.lib.bufferDrawBox(this.bufferPtr,A.x,A.y,A.width,A.height,g,E,A.borderColor,A.backgroundColor,A.title??null)}pushScissorRect(A,q,g,E){this.guard(),this.lib.bufferPushScissorRect(this.bufferPtr,A,q,g,E)}popScissorRect(){this.guard(),this.lib.bufferPopScissorRect(this.bufferPtr)}clearScissorRects(){this.guard(),this.lib.bufferClearScissorRects(this.bufferPtr)}pushOpacity(A){this.guard(),this.lib.bufferPushOpacity(this.bufferPtr,Math.max(0,Math.min(1,A)))}popOpacity(){this.guard(),this.lib.bufferPopOpacity(this.bufferPtr)}getCurrentOpacity(){return this.guard(),this.lib.bufferGetCurrentOpacity(this.bufferPtr)}clearOpacity(){this.guard(),this.lib.bufferClearOpacity(this.bufferPtr)}encodeUnicode(A){return this.guard(),this.lib.encodeUnicode(A,this._widthMethod)}freeUnicode(A){this.guard(),this.lib.freeUnicode(A)}drawGrid(A){this.guard();let q=Math.max(0,A.columnOffsets.length-1),g=Math.max(0,A.rowOffsets.length-1);this.lib.bufferDrawGrid(this.bufferPtr,A.borderChars,A.borderFg,A.borderBg,A.columnOffsets,q,A.rowOffsets,g,{drawInner:A.drawInner,drawOuter:A.drawOuter})}drawChar(A,q,g,E,a,F=0){this.guard(),this.lib.bufferDrawChar(this.bufferPtr,A,q,g,E,a,F)}}function tq(...A){let q=A.join(" ");throw console.error("FATAL ERROR:",q),Error(q)}function g6(A){return typeof A==="string"&&a_.includes(A)}function VF(A){return typeof A==="object"&&A!==null&&A.__type==="objectPointer"}function xF(A,q){return A+(q-1)&~(q-1)}function RF(A){throw TypeError(`Invalid enum value: ${A}`)}function GK(A,q="u32"){let g=Object.fromEntries(Object.entries(A).map(([E,a])=>[a,E]));return{__type:"enum",type:q,to(E){return typeof E==="number"?E:A[E]??RF(String(E))},from(E){return g[E]??RF(String(E))},enum:A}}function NF(A){return typeof A==="object"&&A.__type==="enum"}function _E(A){return typeof A==="object"&&A.__type==="struct"}function uq(A){let q,g;switch(A){case"u8":q=(E,a,F)=>E.setUint8(a,F),g=(E,a)=>E.getUint8(a);break;case"bool_u8":q=(E,a,F)=>E.setUint8(a,F?1:0),g=(E,a)=>Boolean(E.getUint8(a));break;case"bool_u32":q=(E,a,F)=>E.setUint32(a,F?1:0,!0),g=(E,a)=>Boolean(E.getUint32(a,!0));break;case"u16":q=(E,a,F)=>E.setUint16(a,F,!0),g=(E,a)=>E.getUint16(a,!0);break;case"i16":q=(E,a,F)=>E.setInt16(a,F,!0),g=(E,a)=>E.getInt16(a,!0);break;case"u32":q=(E,a,F)=>E.setUint32(a,F,!0),g=(E,a)=>E.getUint32(a,!0);break;case"i32":q=(E,a,F)=>E.setInt32(a,F,!0),g=(E,a)=>E.getInt32(a,!0);break;case"u64":q=(E,a,F)=>E.setBigUint64(a,BigInt(F),!0),g=(E,a)=>E.getBigUint64(a,!0);break;case"f32":q=(E,a,F)=>E.setFloat32(a,F,!0),g=(E,a)=>E.getFloat32(a,!0);break;case"f64":q=(E,a,F)=>E.setFloat64(a,F,!0),g=(E,a)=>E.getFloat64(a,!0);break;case"pointer":q=(E,a,F)=>{_A===8?E.setBigUint64(a,F?BigInt(F):0n,!0):E.setUint32(a,F?Number(F):0,!0)},g=(E,a)=>{let F=_A===8?E.getBigUint64(a,!0):BigInt(E.getUint32(a,!0));return Number(F)};break;default:tq(`Unsupported primitive type: ${A}`)}return{pack:q,unpack:g}}function K_(A){let q=new ArrayBuffer(A.length*_A),g=new DataView(q);for(let E=0;E<A.length;E++){let F=A[E]?.ptr??null;QA(g,E*_A,F)}return g}function GA(A,q){let g=0,E=1,a=[],F={},K=[],Z={};for(let[M,L,$={}]of A){if($.condition&&!$.condition())continue;let V=0,H=0,X,T,x=!1,z=null;if(g6(L))V=zq[L],H=PF[L],{pack:X,unpack:T}=uq(L);else if(typeof L==="string"&&L==="cstring")V=_A,H=_A,X=(N,h,b)=>{let w=b?Nq(WF.encode(b+"\x00")):null;QA(N,h,w)},T=(N,h)=>{return fq(N,h)};else if(typeof L==="string"&&L==="char*")V=_A,H=_A,X=(N,h,b)=>{let w=b?Nq(WF.encode(b)):null;QA(N,h,w)},T=(N,h)=>{return fq(N,h)},x=!0;else if(NF(L)){let N=L.type;V=zq[N],H=PF[N];let{pack:h}=uq(N);X=(b,w,c)=>{let t=L.to(c);h(b,w,t)},T=(b,w)=>{let c=F_[N](b,w);return L.from(c)}}else if(_E(L))if($.asPointer===!0)V=_A,H=_A,X=(N,h,b,w,c)=>{if(!b){QA(N,h,null);return}let t=L.pack(b,c);QA(N,h,Nq(t))},T=(N,h)=>{throw Error("Not implemented yet")};else V=L.size,H=L.align,X=(N,h,b,w,c)=>{let t=L.pack(b,c),o=new Uint8Array(t);new Uint8Array(N.buffer).set(o,h)},T=(N,h)=>{let b=N.buffer.slice(h,h+V);return L.unpack(b)};else if(VF(L))V=_A,H=_A,X=(N,h,b)=>{let w=b?.ptr??null;if(w===void 0)console.warn(`Field '${M}' expected object with '.ptr' property, but got undefined pointer value from:`,b),QA(N,h,null);else QA(N,h,w)},T=(N,h)=>{return fq(N,h)};else if(Array.isArray(L)&&L.length===1&&L[0]!==void 0){let[N]=L;V=_A,H=_A;let h;if(NF(N))h=zq[N.type],X=(w,c,t,o)=>{if(!t||t.length===0){QA(w,c,null);return}let aA=new ArrayBuffer(t.length*h),LA=new DataView(aA);for(let FA=0;FA<t.length;FA++){let NA=N.to(t[FA]);LA.setUint32(FA*h,NA,!0)}QA(w,c,Nq(aA))},T=null,x=!0,z=N;else if(_E(N))h=N.size,X=(w,c,t,o,aA)=>{if(!t||t.length===0){QA(w,c,null);return}let LA=new ArrayBuffer(t.length*h),FA=new DataView(LA);for(let NA=0;NA<t.length;NA++)N.packInto(t[NA],FA,NA*h,aA);QA(w,c,Nq(LA))},T=(w,c)=>{throw Error("Not implemented yet")};else if(g6(N)){h=zq[N];let{pack:w}=uq(N);X=(c,t,o)=>{if(!o||o.length===0){QA(c,t,null);return}let aA=new ArrayBuffer(o.length*h),LA=new DataView(aA);for(let FA=0;FA<o.length;FA++)w(LA,FA*h,o[FA]);QA(c,t,Nq(aA))},T=null,x=!0,z=N}else if(VF(N))h=_A,X=(w,c,t)=>{if(!t||t.length===0){QA(w,c,null);return}let o=K_(t);QA(w,c,Nq(o.buffer))},T=()=>{throw Error("not implemented yet")};else throw Error(`Unsupported array element type for ${M}: ${JSON.stringify(N)}`);let b=Object.values(F).find((w)=>w.lengthOf===M);if(b&&g6(b.type)){let{pack:w}=uq(b.type);Z[M]={elementSize:h,arrayOffset:g,lengthOffset:b.offset,lengthPack:w}}}else throw Error(`Unsupported field type for ${M}: ${JSON.stringify(L)}`);if(g=xF(g,H),$.unpackTransform){let N=T;T=(h,b)=>$.unpackTransform(N(h,b))}if($.packTransform){let N=X;X=(h,b,w,c,t)=>N(h,b,$.packTransform(w),c,t)}if($.optional){let N=X;if(_E(L)&&!$.asPointer)X=(h,b,w,c,t)=>{if(w||$.mapOptionalInline)N(h,b,w,c,t)};else X=(h,b,w,c,t)=>N(h,b,w??0,c,t)}if($.lengthOf){let N=X;X=(h,b,w,c,t)=>{let o=c[$.lengthOf],aA=0;if(o)if(typeof o==="string")aA=Buffer.byteLength(o);else aA=o.length;return N(h,b,aA,c,t)}}let m;if($.validate)m=Array.isArray($.validate)?$.validate:[$.validate];let D={name:M,offset:g,size:V,align:H,validate:m,optional:!!$.optional||!!$.lengthOf||$.default!==void 0,default:$.default,pack:X,unpack:T,type:L,lengthOf:$.lengthOf};if(a.push(D),$.lengthOf)F[$.lengthOf]=D;if(x){let N=typeof L==="string"&&L==="char*"?"char*":z;if(!N)tq(`Internal error: needsLengthOf=true but def is null for ${M}`);K.push({requester:D,def:N})}g+=V,E=Math.max(E,H)}for(let{requester:M,def:L}of K){let $=F[M.name];if(!$){if(L==="char*")continue;throw Error(`lengthOf field not found for array field ${M.name}`)}if(L==="char*")M.unpack=(V,H)=>{let X=fq(V,H),T=$.unpack(V,$.offset);if(X===0)return null;let x=typeof T==="bigint"?Number(T):T;if(x===0)return"";let z=UE(X,0,x);return j_.decode(z)};else if(g6(L)){let V=zq[L],{unpack:H}=uq(L);M.unpack=(X,T)=>{let x=[],z=$.unpack(X,$.offset),m=fq(X,T);if(m===0n&&z>0)throw Error(`Array field ${M.name} has null pointer but length ${z}.`);if(m===0n||z===0)return[];let D=UE(m,0,z*V),N=new DataView(D);for(let h=0;h<z;h++)x.push(H(N,h*V));return x}}else{let V=L.type==="u32"?4:8;M.unpack=(H,X)=>{let T=[],x=$.unpack(H,$.offset),z=fq(H,X);if(z===0n&&x>0)throw Error(`Array field ${M.name} has null pointer but length ${x}.`);if(z===0n||x===0)return[];let m=UE(z,0,x*V),D=new DataView(m);for(let N=0;N<x;N++)T.push(L.from(D.getUint32(N*V,!0)));return T}}}let j=xF(g,E),U=a.map((M)=>({name:M.name,offset:M.offset,size:M.size,align:M.align,optional:M.optional,type:M.type,lengthOf:M.lengthOf})),O=new Map(U.map((M)=>[M.name,M])),Q=new Map(Object.entries(Z));return{__type:"struct",size:j,align:E,hasMapValue:!!q?.mapValue,layoutByName:O,arrayFields:Q,pack(M,L){let $=new ArrayBuffer(j),V=new DataView($),H=M;if(q?.mapValue)H=q.mapValue(M);for(let X of a){let T=H[X.name]??X.default;if(!X.optional&&T===void 0)tq(`Packing non-optional field '${X.name}' but value is undefined (and no default provided)`);if(X.validate)for(let x of X.validate)x(T,X.name,{hints:L?.validationHints,input:H});X.pack(V,X.offset,T,H,L)}return V.buffer},packInto(M,L,$,V){let H=M;if(q?.mapValue)H=q.mapValue(M);for(let X of a){let T=H[X.name]??X.default;if(!X.optional&&T===void 0)console.warn(`packInto missing value for non-optional field '${X.name}' at offset ${$+X.offset}. Writing default or zero.`);if(X.validate)for(let x of X.validate)x(T,X.name,{hints:V?.validationHints,input:H});X.pack(L,$+X.offset,T,H,V)}},unpack(M){if(M.byteLength<j)tq(`Buffer size (${M.byteLength}) is smaller than struct size (${j}) for unpacking.`);let L=new DataView(M),$=q?.default?{...q.default}:{};for(let V of a){if(!V.unpack)continue;try{$[V.name]=V.unpack(L,V.offset)}catch(H){throw console.error(`Error unpacking field '${V.name}' at offset ${V.offset}:`,H),H}}if(q?.reduceValue)return q.reduceValue($);return $},packList(M,L){if(M.length===0)return new ArrayBuffer(0);let $=new ArrayBuffer(j*M.length),V=new DataView($);for(let H=0;H<M.length;H++){let X=M[H];if(q?.mapValue)X=q.mapValue(M[H]);for(let T of a){let x=X[T.name]??T.default;if(!T.optional&&x===void 0)tq(`Packing non-optional field '${T.name}' at index ${H} but value is undefined (and no default provided)`);if(T.validate)for(let z of T.validate)z(x,T.name,{hints:L?.validationHints,input:X});T.pack(V,H*j+T.offset,x,X,L)}}return $},unpackList(M,L){if(L===0)return[];let $=j*L;if(M.byteLength<$)tq(`Buffer size (${M.byteLength}) is smaller than expected size (${$}) for unpacking ${L} structs.`);let V=new DataView(M),H=[];for(let X=0;X<L;X++){let T=X*j,x=q?.default?{...q.default}:{};for(let z of a){if(!z.unpack)continue;try{x[z.name]=z.unpack(V,T+z.offset)}catch(m){throw console.error(`Error unpacking field '${z.name}' at index ${X}, offset ${T+z.offset}:`,m),m}}if(q?.reduceValue)H.push(q.reduceValue(x));else H.push(x)}return H},describe(){return U}}}function Hg(A){if(typeof A==="bigint"){if(A>BigInt(Number.MAX_SAFE_INTEGER))throw Error("Pointer exceeds safe integer range");return Number(A)}return A}function Lg(A){return typeof A==="bigint"?Number(A):A}function L_(A){let g=eU(A||Ig,{setLogCallback:{args:["ptr"],returns:"void"},setEventCallback:{args:["ptr"],returns:"void"},createRenderer:{args:["u32","u32","bool","bool"],returns:"ptr"},setTerminalEnvVar:{args:["ptr","ptr","usize","ptr","usize"],returns:"bool"},destroyRenderer:{args:["ptr"],returns:"void"},setUseThread:{args:["ptr","bool"],returns:"void"},setBackgroundColor:{args:["ptr","ptr"],returns:"void"},setRenderOffset:{args:["ptr","u32"],returns:"void"},updateStats:{args:["ptr","f64","u32","f64"],returns:"void"},updateMemoryStats:{args:["ptr","u32","u32","u32"],returns:"void"},render:{args:["ptr","bool"],returns:"void"},getNextBuffer:{args:["ptr"],returns:"ptr"},getCurrentBuffer:{args:["ptr"],returns:"ptr"},queryPixelResolution:{args:["ptr"],returns:"void"},createOptimizedBuffer:{args:["u32","u32","bool","u8","ptr","usize"],returns:"ptr"},destroyOptimizedBuffer:{args:["ptr"],returns:"void"},drawFrameBuffer:{args:["ptr","i32","i32","ptr","u32","u32","u32","u32"],returns:"void"},getBufferWidth:{args:["ptr"],returns:"u32"},getBufferHeight:{args:["ptr"],returns:"u32"},bufferClear:{args:["ptr","ptr"],returns:"void"},bufferGetCharPtr:{args:["ptr"],returns:"ptr"},bufferGetFgPtr:{args:["ptr"],returns:"ptr"},bufferGetBgPtr:{args:["ptr"],returns:"ptr"},bufferGetAttributesPtr:{args:["ptr"],returns:"ptr"},bufferGetRespectAlpha:{args:["ptr"],returns:"bool"},bufferSetRespectAlpha:{args:["ptr","bool"],returns:"void"},bufferGetId:{args:["ptr","ptr","usize"],returns:"usize"},bufferGetRealCharSize:{args:["ptr"],returns:"u32"},bufferWriteResolvedChars:{args:["ptr","ptr","usize","bool"],returns:"u32"},bufferDrawText:{args:["ptr","ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferSetCellWithAlphaBlending:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferSetCell:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferFillRect:{args:["ptr","u32","u32","u32","u32","ptr"],returns:"void"},bufferResize:{args:["ptr","u32","u32"],returns:"void"},linkAlloc:{args:["ptr","u32"],returns:"u32"},linkGetUrl:{args:["u32","ptr","u32"],returns:"u32"},attributesWithLink:{args:["u32","u32"],returns:"u32"},attributesGetLinkId:{args:["u32"],returns:"u32"},resizeRenderer:{args:["ptr","u32","u32"],returns:"void"},setCursorPosition:{args:["ptr","i32","i32","bool"],returns:"void"},setCursorColor:{args:["ptr","ptr"],returns:"void"},getCursorState:{args:["ptr","ptr"],returns:"void"},setCursorStyleOptions:{args:["ptr","ptr"],returns:"void"},setDebugOverlay:{args:["ptr","bool","u8"],returns:"void"},clearTerminal:{args:["ptr"],returns:"void"},setTerminalTitle:{args:["ptr","ptr","usize"],returns:"void"},copyToClipboardOSC52:{args:["ptr","u8","ptr","usize"],returns:"bool"},clearClipboardOSC52:{args:["ptr","u8"],returns:"bool"},bufferDrawSuperSampleBuffer:{args:["ptr","u32","u32","ptr","usize","u8","u32"],returns:"void"},bufferDrawPackedBuffer:{args:["ptr","ptr","usize","u32","u32","u32","u32"],returns:"void"},bufferDrawGrayscaleBuffer:{args:["ptr","i32","i32","ptr","u32","u32","ptr","ptr"],returns:"void"},bufferDrawGrayscaleBufferSupersampled:{args:["ptr","i32","i32","ptr","u32","u32","ptr","ptr"],returns:"void"},bufferDrawGrid:{args:["ptr","ptr","ptr","ptr","ptr","u32","ptr","u32","ptr"],returns:"void"},bufferDrawBox:{args:["ptr","i32","i32","u32","u32","ptr","u32","ptr","ptr","ptr","u32"],returns:"void"},bufferPushScissorRect:{args:["ptr","i32","i32","u32","u32"],returns:"void"},bufferPopScissorRect:{args:["ptr"],returns:"void"},bufferClearScissorRects:{args:["ptr"],returns:"void"},bufferPushOpacity:{args:["ptr","f32"],returns:"void"},bufferPopOpacity:{args:["ptr"],returns:"void"},bufferGetCurrentOpacity:{args:["ptr"],returns:"f32"},bufferClearOpacity:{args:["ptr"],returns:"void"},addToHitGrid:{args:["ptr","i32","i32","u32","u32","u32"],returns:"void"},clearCurrentHitGrid:{args:["ptr"],returns:"void"},hitGridPushScissorRect:{args:["ptr","i32","i32","u32","u32"],returns:"void"},hitGridPopScissorRect:{args:["ptr"],returns:"void"},hitGridClearScissorRects:{args:["ptr"],returns:"void"},addToCurrentHitGridClipped:{args:["ptr","i32","i32","u32","u32","u32"],returns:"void"},checkHit:{args:["ptr","u32","u32"],returns:"u32"},getHitGridDirty:{args:["ptr"],returns:"bool"},dumpHitGrid:{args:["ptr"],returns:"void"},dumpBuffers:{args:["ptr","i64"],returns:"void"},dumpStdoutBuffer:{args:["ptr","i64"],returns:"void"},restoreTerminalModes:{args:["ptr"],returns:"void"},enableMouse:{args:["ptr","bool"],returns:"void"},disableMouse:{args:["ptr"],returns:"void"},enableKittyKeyboard:{args:["ptr","u8"],returns:"void"},disableKittyKeyboard:{args:["ptr"],returns:"void"},setKittyKeyboardFlags:{args:["ptr","u8"],returns:"void"},getKittyKeyboardFlags:{args:["ptr"],returns:"u8"},setupTerminal:{args:["ptr","bool"],returns:"void"},suspendRenderer:{args:["ptr"],returns:"void"},resumeRenderer:{args:["ptr"],returns:"void"},writeOut:{args:["ptr","ptr","u64"],returns:"void"},createTextBuffer:{args:["u8"],returns:"ptr"},destroyTextBuffer:{args:["ptr"],returns:"void"},textBufferGetLength:{args:["ptr"],returns:"u32"},textBufferGetByteSize:{args:["ptr"],returns:"u32"},textBufferReset:{args:["ptr"],returns:"void"},textBufferClear:{args:["ptr"],returns:"void"},textBufferSetDefaultFg:{args:["ptr","ptr"],returns:"void"},textBufferSetDefaultBg:{args:["ptr","ptr"],returns:"void"},textBufferSetDefaultAttributes:{args:["ptr","ptr"],returns:"void"},textBufferResetDefaults:{args:["ptr"],returns:"void"},textBufferGetTabWidth:{args:["ptr"],returns:"u8"},textBufferSetTabWidth:{args:["ptr","u8"],returns:"void"},textBufferRegisterMemBuffer:{args:["ptr","ptr","usize","bool"],returns:"u16"},textBufferReplaceMemBuffer:{args:["ptr","u8","ptr","usize","bool"],returns:"bool"},textBufferClearMemRegistry:{args:["ptr"],returns:"void"},textBufferSetTextFromMem:{args:["ptr","u8"],returns:"void"},textBufferAppend:{args:["ptr","ptr","usize"],returns:"void"},textBufferAppendFromMemId:{args:["ptr","u8"],returns:"void"},textBufferLoadFile:{args:["ptr","ptr","usize"],returns:"bool"},textBufferSetStyledText:{args:["ptr","ptr","usize"],returns:"void"},textBufferGetLineCount:{args:["ptr"],returns:"u32"},textBufferGetPlainText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferAddHighlightByCharRange:{args:["ptr","ptr"],returns:"void"},textBufferAddHighlight:{args:["ptr","u32","ptr"],returns:"void"},textBufferRemoveHighlightsByRef:{args:["ptr","u16"],returns:"void"},textBufferClearLineHighlights:{args:["ptr","u32"],returns:"void"},textBufferClearAllHighlights:{args:["ptr"],returns:"void"},textBufferSetSyntaxStyle:{args:["ptr","ptr"],returns:"void"},textBufferGetLineHighlightsPtr:{args:["ptr","u32","ptr"],returns:"ptr"},textBufferFreeLineHighlights:{args:["ptr","usize"],returns:"void"},textBufferGetHighlightCount:{args:["ptr"],returns:"u32"},textBufferGetTextRange:{args:["ptr","u32","u32","ptr","usize"],returns:"usize"},textBufferGetTextRangeByCoords:{args:["ptr","u32","u32","u32","u32","ptr","usize"],returns:"usize"},createTextBufferView:{args:["ptr"],returns:"ptr"},destroyTextBufferView:{args:["ptr"],returns:"void"},textBufferViewSetSelection:{args:["ptr","u32","u32","ptr","ptr"],returns:"void"},textBufferViewResetSelection:{args:["ptr"],returns:"void"},textBufferViewGetSelectionInfo:{args:["ptr"],returns:"u64"},textBufferViewSetLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr"],returns:"bool"},textBufferViewUpdateSelection:{args:["ptr","u32","ptr","ptr"],returns:"void"},textBufferViewUpdateLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr"],returns:"bool"},textBufferViewResetLocalSelection:{args:["ptr"],returns:"void"},textBufferViewSetWrapWidth:{args:["ptr","u32"],returns:"void"},textBufferViewSetWrapMode:{args:["ptr","u8"],returns:"void"},textBufferViewSetViewportSize:{args:["ptr","u32","u32"],returns:"void"},textBufferViewSetViewport:{args:["ptr","u32","u32","u32","u32"],returns:"void"},textBufferViewGetVirtualLineCount:{args:["ptr"],returns:"u32"},textBufferViewGetLineInfoDirect:{args:["ptr","ptr"],returns:"void"},textBufferViewGetLogicalLineInfoDirect:{args:["ptr","ptr"],returns:"void"},textBufferViewGetSelectedText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferViewGetPlainText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferViewSetTabIndicator:{args:["ptr","u32"],returns:"void"},textBufferViewSetTabIndicatorColor:{args:["ptr","ptr"],returns:"void"},textBufferViewSetTruncate:{args:["ptr","bool"],returns:"void"},textBufferViewMeasureForDimensions:{args:["ptr","u32","u32","ptr"],returns:"bool"},bufferDrawTextBufferView:{args:["ptr","ptr","i32","i32"],returns:"void"},bufferDrawEditorView:{args:["ptr","ptr","i32","i32"],returns:"void"},createEditorView:{args:["ptr","u32","u32"],returns:"ptr"},destroyEditorView:{args:["ptr"],returns:"void"},editorViewSetViewportSize:{args:["ptr","u32","u32"],returns:"void"},editorViewSetViewport:{args:["ptr","u32","u32","u32","u32","bool"],returns:"void"},editorViewGetViewport:{args:["ptr","ptr","ptr","ptr","ptr"],returns:"void"},editorViewSetScrollMargin:{args:["ptr","f32"],returns:"void"},editorViewSetWrapMode:{args:["ptr","u8"],returns:"void"},editorViewGetVirtualLineCount:{args:["ptr"],returns:"u32"},editorViewGetTotalVirtualLineCount:{args:["ptr"],returns:"u32"},editorViewGetTextBufferView:{args:["ptr"],returns:"ptr"},editorViewGetLineInfoDirect:{args:["ptr","ptr"],returns:"void"},editorViewGetLogicalLineInfoDirect:{args:["ptr","ptr"],returns:"void"},createEditBuffer:{args:["u8"],returns:"ptr"},destroyEditBuffer:{args:["ptr"],returns:"void"},editBufferSetText:{args:["ptr","ptr","usize"],returns:"void"},editBufferSetTextFromMem:{args:["ptr","u8"],returns:"void"},editBufferReplaceText:{args:["ptr","ptr","usize"],returns:"void"},editBufferReplaceTextFromMem:{args:["ptr","u8"],returns:"void"},editBufferGetText:{args:["ptr","ptr","usize"],returns:"usize"},editBufferInsertChar:{args:["ptr","ptr","usize"],returns:"void"},editBufferInsertText:{args:["ptr","ptr","usize"],returns:"void"},editBufferDeleteChar:{args:["ptr"],returns:"void"},editBufferDeleteCharBackward:{args:["ptr"],returns:"void"},editBufferDeleteRange:{args:["ptr","u32","u32","u32","u32"],returns:"void"},editBufferNewLine:{args:["ptr"],returns:"void"},editBufferDeleteLine:{args:["ptr"],returns:"void"},editBufferMoveCursorLeft:{args:["ptr"],returns:"void"},editBufferMoveCursorRight:{args:["ptr"],returns:"void"},editBufferMoveCursorUp:{args:["ptr"],returns:"void"},editBufferMoveCursorDown:{args:["ptr"],returns:"void"},editBufferGotoLine:{args:["ptr","u32"],returns:"void"},editBufferSetCursor:{args:["ptr","u32","u32"],returns:"void"},editBufferSetCursorToLineCol:{args:["ptr","u32","u32"],returns:"void"},editBufferSetCursorByOffset:{args:["ptr","u32"],returns:"void"},editBufferGetCursorPosition:{args:["ptr","ptr"],returns:"void"},editBufferGetId:{args:["ptr"],returns:"u16"},editBufferGetTextBuffer:{args:["ptr"],returns:"ptr"},editBufferDebugLogRope:{args:["ptr"],returns:"void"},editBufferUndo:{args:["ptr","ptr","usize"],returns:"usize"},editBufferRedo:{args:["ptr","ptr","usize"],returns:"usize"},editBufferCanUndo:{args:["ptr"],returns:"bool"},editBufferCanRedo:{args:["ptr"],returns:"bool"},editBufferClearHistory:{args:["ptr"],returns:"void"},editBufferClear:{args:["ptr"],returns:"void"},editBufferGetNextWordBoundary:{args:["ptr","ptr"],returns:"void"},editBufferGetPrevWordBoundary:{args:["ptr","ptr"],returns:"void"},editBufferGetEOL:{args:["ptr","ptr"],returns:"void"},editBufferOffsetToPosition:{args:["ptr","u32","ptr"],returns:"bool"},editBufferPositionToOffset:{args:["ptr","u32","u32"],returns:"u32"},editBufferGetLineStartOffset:{args:["ptr","u32"],returns:"u32"},editBufferGetTextRange:{args:["ptr","u32","u32","ptr","usize"],returns:"usize"},editBufferGetTextRangeByCoords:{args:["ptr","u32","u32","u32","u32","ptr","usize"],returns:"usize"},editorViewSetSelection:{args:["ptr","u32","u32","ptr","ptr"],returns:"void"},editorViewResetSelection:{args:["ptr"],returns:"void"},editorViewGetSelection:{args:["ptr"],returns:"u64"},editorViewSetLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr","bool","bool"],returns:"bool"},editorViewUpdateSelection:{args:["ptr","u32","ptr","ptr"],returns:"void"},editorViewUpdateLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr","bool","bool"],returns:"bool"},editorViewResetLocalSelection:{args:["ptr"],returns:"void"},editorViewGetSelectedTextBytes:{args:["ptr","ptr","usize"],returns:"usize"},editorViewGetCursor:{args:["ptr","ptr","ptr"],returns:"void"},editorViewGetText:{args:["ptr","ptr","usize"],returns:"usize"},editorViewGetVisualCursor:{args:["ptr","ptr"],returns:"void"},editorViewMoveUpVisual:{args:["ptr"],returns:"void"},editorViewMoveDownVisual:{args:["ptr"],returns:"void"},editorViewDeleteSelectedText:{args:["ptr"],returns:"void"},editorViewSetCursorByOffset:{args:["ptr","u32"],returns:"void"},editorViewGetNextWordBoundary:{args:["ptr","ptr"],returns:"void"},editorViewGetPrevWordBoundary:{args:["ptr","ptr"],returns:"void"},editorViewGetEOL:{args:["ptr","ptr"],returns:"void"},editorViewGetVisualSOL:{args:["ptr","ptr"],returns:"void"},editorViewGetVisualEOL:{args:["ptr","ptr"],returns:"void"},editorViewSetPlaceholderStyledText:{args:["ptr","ptr","usize"],returns:"void"},editorViewSetTabIndicator:{args:["ptr","u32"],returns:"void"},editorViewSetTabIndicatorColor:{args:["ptr","ptr"],returns:"void"},getArenaAllocatedBytes:{args:[],returns:"usize"},getBuildOptions:{args:["ptr"],returns:"void"},getAllocatorStats:{args:["ptr"],returns:"void"},createSyntaxStyle:{args:[],returns:"ptr"},destroySyntaxStyle:{args:["ptr"],returns:"void"},syntaxStyleRegister:{args:["ptr","ptr","usize","ptr","ptr","u8"],returns:"u32"},syntaxStyleResolveByName:{args:["ptr","ptr","usize"],returns:"u32"},syntaxStyleGetStyleCount:{args:["ptr"],returns:"usize"},getTerminalCapabilities:{args:["ptr","ptr"],returns:"void"},processCapabilityResponse:{args:["ptr","ptr","usize"],returns:"void"},encodeUnicode:{args:["ptr","usize","ptr","ptr","u8"],returns:"bool"},freeUnicode:{args:["ptr","usize"],returns:"void"},bufferDrawChar:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},createNativeSpanFeed:{args:["ptr"],returns:"ptr"},attachNativeSpanFeed:{args:["ptr"],returns:"i32"},destroyNativeSpanFeed:{args:["ptr"],returns:"void"},streamWrite:{args:["ptr","ptr","u64"],returns:"i32"},streamCommit:{args:["ptr"],returns:"i32"},streamDrainSpans:{args:["ptr","ptr","u32"],returns:"u32"},streamClose:{args:["ptr"],returns:"i32"},streamReserve:{args:["ptr","u32","ptr"],returns:"i32"},streamCommitReserved:{args:["ptr","u32"],returns:"i32"},streamSetOptions:{args:["ptr","ptr"],returns:"i32"},streamGetStats:{args:["ptr","ptr"],returns:"i32"},streamSetCallback:{args:["ptr","ptr"],returns:"void"}});if(EA.OTUI_DEBUG_FFI||EA.OTUI_TRACE_FFI)return{symbols:$_(g.symbols)};return g}function $_(A){if(!Wq)Wq={};if(EA.OTUI_DEBUG_FFI&&!a6)a6=`ffi_otui_debug_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;let q={},g=!1;if(Object.entries(A).forEach(([E,a])=>{q[E]=a}),EA.OTUI_DEBUG_FFI&&a6){let E=a6,a=(F)=>{q_(E,F+`
15
+ `)F++;let K=q.substring(a,F),Z=Bun.stringWidth(K);if(g+Z<A)g+=Z,a=F;else{for(let j=a;j<F&&g<A;j++){let U=Bun.stringWidth(q[j]);g+=U}break}}return A-E}create(A){if(this.destroyed)throw Error("ExtmarksController is destroyed");let q=this.nextId++,g=A.typeId??0,E={id:q,start:A.start,end:A.end,virtual:A.virtual??!1,styleId:A.styleId,priority:A.priority,data:A.data,typeId:g};if(this.extmarks.set(q,E),!this.extmarksByTypeId.has(g))this.extmarksByTypeId.set(g,new Set);if(this.extmarksByTypeId.get(g).add(q),A.metadata!==void 0)this.metadata.set(q,A.metadata);return this.updateHighlights(),q}delete(A){if(this.destroyed)throw Error("ExtmarksController is destroyed");if(!this.extmarks.get(A))return!1;return this.deleteExtmarkById(A),this.updateHighlights(),!0}get(A){if(this.destroyed)return null;return this.extmarks.get(A)??null}getAll(){if(this.destroyed)return[];return Array.from(this.extmarks.values())}getVirtual(){if(this.destroyed)return[];return Array.from(this.extmarks.values()).filter((A)=>A.virtual)}getAtOffset(A){if(this.destroyed)return[];return Array.from(this.extmarks.values()).filter((q)=>A>=q.start&&A<q.end)}getAllForTypeId(A){if(this.destroyed)return[];let q=this.extmarksByTypeId.get(A);if(!q)return[];return Array.from(q).map((g)=>this.extmarks.get(g)).filter((g)=>g!==void 0)}clear(){if(this.destroyed)return;this.extmarks.clear(),this.extmarksByTypeId.clear(),this.metadata.clear(),this.updateHighlights()}saveSnapshot(){this.history.saveSnapshot(this.extmarks,this.nextId)}restoreSnapshot(A){this.extmarks=new Map(Array.from(A.extmarks.entries()).map(([q,g])=>[q,{...g}])),this.nextId=A.nextId,this.updateHighlights()}wrapUndoRedo(){this.editBuffer.undo=()=>{if(this.destroyed)return this.originalUndo();if(!this.history.canUndo())return this.originalUndo();let A={extmarks:new Map(Array.from(this.extmarks.entries()).map(([g,E])=>[g,{...E}])),nextId:this.nextId};this.history.pushRedo(A);let q=this.history.undo();return this.restoreSnapshot(q),this.originalUndo()},this.editBuffer.redo=()=>{if(this.destroyed)return this.originalRedo();if(!this.history.canRedo())return this.originalRedo();let A={extmarks:new Map(Array.from(this.extmarks.entries()).map(([g,E])=>[g,{...E}])),nextId:this.nextId};this.history.pushUndo(A);let q=this.history.redo();return this.restoreSnapshot(q),this.originalRedo()}}registerType(A){if(this.destroyed)throw Error("ExtmarksController is destroyed");let q=this.typeNameToId.get(A);if(q!==void 0)return q;let g=this.nextTypeId++;return this.typeNameToId.set(A,g),this.typeIdToName.set(g,A),g}getTypeId(A){if(this.destroyed)return null;return this.typeNameToId.get(A)??null}getTypeName(A){if(this.destroyed)return null;return this.typeIdToName.get(A)??null}getMetadataFor(A){if(this.destroyed)return;return this.metadata.get(A)}destroy(){if(this.destroyed)return;this.editBuffer.moveCursorLeft=this.originalMoveCursorLeft,this.editBuffer.moveCursorRight=this.originalMoveCursorRight,this.editBuffer.setCursorByOffset=this.originalSetCursorByOffset,this.editorView.moveUpVisual=this.originalMoveUpVisual,this.editorView.moveDownVisual=this.originalMoveDownVisual,this.editBuffer.deleteCharBackward=this.originalDeleteCharBackward,this.editBuffer.deleteChar=this.originalDeleteChar,this.editBuffer.insertText=this.originalInsertText,this.editBuffer.insertChar=this.originalInsertChar,this.editBuffer.deleteRange=this.originalDeleteRange,this.editBuffer.setText=this.originalSetText,this.editBuffer.replaceText=this.originalReplaceText,this.editBuffer.clear=this.originalClear,this.editBuffer.newLine=this.originalNewLine,this.editBuffer.deleteLine=this.originalDeleteLine,this.editorView.deleteSelectedText=this.originalEditorViewDeleteSelectedText,this.editBuffer.undo=this.originalUndo,this.editBuffer.redo=this.originalRedo,this.extmarks.clear(),this.extmarksByTypeId.clear(),this.metadata.clear(),this.typeNameToId.clear(),this.typeIdToName.clear(),this.history.clear(),this.destroyed=!0}}function _K(A,q){return new vE(A,q)}function jE(A){let q=parseInt(A,16),g=(1<<4*A.length)-1;return Math.round(q/g*255).toString(16).padStart(2,"0")}function IF(A,q,g,E){if(E)return`#${E.toLowerCase()}`;if(A&&q&&g)return`#${jE(A)}${jE(q)}${jE(g)}`;return"#000000"}function eU(A){return`\x1BPtmux;${A.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`}class pE{stdin;stdout;writeFn;activeQuerySessions=[];inLegacyTmux;oscSource;constructor(A,q,g,E,a){this.stdin=A,this.stdout=q,this.writeFn=g||((F)=>q.write(F)),this.inLegacyTmux=E??!1,this.oscSource=a}writeOsc(A){let q=this.inLegacyTmux?eU(A):A;return this.writeFn(q)}cleanup(){for(let A of[...this.activeQuerySessions])A();this.activeQuerySessions=[]}subscribeInput(A){if(this.oscSource)return this.oscSource.subscribeOsc((q)=>{A(q)});return this.stdin.on("data",A),()=>{this.stdin.removeListener("data",A)}}createQuerySession(){let A=new Set,q=new Set,g=!1,E=()=>{if(g)return;g=!0;for(let F of A)clearTimeout(F);A.clear();for(let F of q)F();q.clear();let a=this.activeQuerySessions.indexOf(E);if(a!==-1)this.activeQuerySessions.splice(a,1)};return this.activeQuerySessions.push(E),{setTimer:(a,F)=>{let K=setTimeout(a,F);return A.add(K),K},resetTimer:(a,F,K)=>{if(a)clearTimeout(a),A.delete(a);let Z=setTimeout(F,K);return A.add(Z),Z},subscribeInput:(a)=>{let F=this.subscribeInput(a);return q.add(F),()=>{if(!q.has(F))return;q.delete(F),F()}},cleanup:E}}async detectOSCSupport(A=300){if(!this.stdout.isTTY||!this.stdin.isTTY)return!1;return new Promise((g)=>{let E=this.createQuerySession(),a="",F=!1,K=(j)=>{if(F)return;F=!0,E.cleanup(),g(j)},Z=(j)=>{if(a+=j.toString(),A6.lastIndex=0,A6.test(a))K(!0)};E.setTimer(()=>{K(!1)},A),E.subscribeInput(Z),this.writeOsc("\x1B]4;0;?\x07")})}async queryPalette(A,q=1200){let g=this.stdout,E=new Map;if(A.forEach((a)=>E.set(a,null)),!g.isTTY||!this.stdin.isTTY)return E;return new Promise((a)=>{let F=this.createQuerySession(),K="",Z=null,j=!1,U=()=>{if(j)return;j=!0,F.cleanup(),a(E)},O=(Q)=>{K+=Q.toString();let M;A6.lastIndex=0;while(M=A6.exec(K)){let $=parseInt(M[1],10);if(E.has($))E.set($,IF(M[2],M[3],M[4],M[5]))}if(K.length>8192)K=K.slice(-4096);if([...E.values()].filter(($)=>$!==null).length===E.size){U();return}Z=F.resetTimer(Z,U,150)};F.setTimer(U,q),F.subscribeInput(O),this.writeOsc(A.map((Q)=>`\x1B]4;${Q};?\x07`).join(""))})}async querySpecialColors(A=1200){let q=this.stdout,g={10:null,11:null,12:null,13:null,14:null,15:null,16:null,17:null,19:null};if(!q.isTTY||!this.stdin.isTTY)return g;return new Promise((E)=>{let a=this.createQuerySession(),F="",K=null,Z=!1,j=()=>{if(Z)return;Z=!0,a.cleanup(),E(g)},U=(O)=>{F+=O.toString();let Q=!1,M;XF.lastIndex=0;while(M=XF.exec(F)){let $=parseInt(M[1],10);if($ in g)g[$]=IF(M[2],M[3],M[4],M[5]),Q=!0}if(F.length>8192)F=F.slice(-4096);if(Object.values(g).filter(($)=>$!==null).length===Object.keys(g).length){j();return}if(!Q)return;K=a.resetTimer(K,j,150)};a.setTimer(j,A),a.subscribeInput(U),this.writeOsc(["\x1B]10;?\x07","\x1B]11;?\x07","\x1B]12;?\x07","\x1B]13;?\x07","\x1B]14;?\x07","\x1B]15;?\x07","\x1B]16;?\x07","\x1B]17;?\x07","\x1B]19;?\x07"].join(""))})}async detect(A){let{timeout:q=5000,size:g=16}=A||{};if(!await this.detectOSCSupport())return{palette:Array(g).fill(null),defaultForeground:null,defaultBackground:null,cursorColor:null,mouseForeground:null,mouseBackground:null,tekForeground:null,tekBackground:null,highlightBackground:null,highlightForeground:null};let a=[...Array(g).keys()],[F,K]=await Promise.all([this.queryPalette(a,q),this.querySpecialColors(q)]);return{palette:[...Array(g).keys()].map((Z)=>F.get(Z)??null),defaultForeground:K[10],defaultBackground:K[11],cursorColor:K[12],mouseForeground:K[13],mouseBackground:K[14],tekForeground:K[15],tekBackground:K[16],highlightBackground:K[17],highlightForeground:K[19]}}}function OK(A,q,g,E,a){return new pE(A,q,g,E,a)}function a_(A,q,g){let E=0;if(A===!0)E|=15;else if(Array.isArray(A)){if(A.includes("top"))E|=8;if(A.includes("right"))E|=4;if(A.includes("bottom"))E|=2;if(A.includes("left"))E|=1}if(q)E|=16;let F={left:0,center:1,right:2}[g];return E|=F<<5,E}class Zq{static fbIdCounter=0;id;lib;bufferPtr;_width;_height;_widthMethod;respectAlpha=!1;_rawBuffers=null;_destroyed=!1;get ptr(){return this.bufferPtr}guard(){if(this._destroyed)throw Error(`Buffer ${this.id} is destroyed`)}get buffers(){if(this.guard(),this._rawBuffers===null){let A=this._width*this._height,q=this.lib.bufferGetCharPtr(this.bufferPtr),g=this.lib.bufferGetFgPtr(this.bufferPtr),E=this.lib.bufferGetBgPtr(this.bufferPtr),a=this.lib.bufferGetAttributesPtr(this.bufferPtr);this._rawBuffers={char:new Uint32Array(q6(q,0,A*4)),fg:new Float32Array(q6(g,0,A*4*4)),bg:new Float32Array(q6(E,0,A*4*4)),attributes:new Uint32Array(q6(a,0,A*4))}}return this._rawBuffers}constructor(A,q,g,E,a){this.id=a.id||`fb_${Zq.fbIdCounter++}`,this.lib=A,this.respectAlpha=a.respectAlpha||!1,this._width=g,this._height=E,this._widthMethod=a.widthMethod||"unicode",this.bufferPtr=q}static create(A,q,g,E={}){let a=PA(),F=E.respectAlpha||!1,K=E.id&&E.id.trim()!==""?E.id:"unnamed buffer";return a.createOptimizedBuffer(A,q,g,F,K)}get widthMethod(){return this._widthMethod}get width(){return this._width}get height(){return this._height}setRespectAlpha(A){this.guard(),this.lib.bufferSetRespectAlpha(this.bufferPtr,A),this.respectAlpha=A}getNativeId(){return this.guard(),this.lib.bufferGetId(this.bufferPtr)}getRealCharBytes(A=!1){this.guard();let q=this.lib.bufferGetRealCharSize(this.bufferPtr),g=new Uint8Array(q),E=this.lib.bufferWriteResolvedChars(this.bufferPtr,g,A);return g.slice(0,E)}getSpanLines(){this.guard();let{char:A,fg:q,bg:g,attributes:E}=this.buffers,a=[],F=-1073741824,K=-1073741824,Z=this.getRealCharBytes(!0),j=new TextDecoder().decode(Z).split(`
16
+ `);for(let U=0;U<this._height;U++){let O=[],Q=null,M=[...j[U]||""],L=0;for(let $=0;$<this._width;$++){let V=U*this._width+$,H=A[V],X=AA.fromValues(q[V*4],q[V*4+1],q[V*4+2],q[V*4+3]),T=AA.fromValues(g[V*4],g[V*4+1],g[V*4+2],g[V*4+3]),x=E[V]&255,m=(H&K)===F?"":M[L++]??" ";if(Q&&Q.fg.equals(X)&&Q.bg.equals(T)&&Q.attributes===x)Q.text+=m,Q.width+=1;else{if(Q)O.push(Q);Q={text:m,fg:X,bg:T,attributes:x,width:1}}}if(Q)O.push(Q);a.push({spans:O})}return a}clear(A=AA.fromValues(0,0,0,1)){this.guard(),this.lib.bufferClear(this.bufferPtr,A)}setCell(A,q,g,E,a,F=0){this.guard(),this.lib.bufferSetCell(this.bufferPtr,A,q,g,E,a,F)}setCellWithAlphaBlending(A,q,g,E,a,F=0){this.guard(),this.lib.bufferSetCellWithAlphaBlending(this.bufferPtr,A,q,g,E,a,F)}drawText(A,q,g,E,a,F=0,K){if(this.guard(),!K){this.lib.bufferDrawText(this.bufferPtr,A,q,g,E,a,F);return}let{start:Z,end:j}=K,U,O;if(K.bgColor)U=K.bgColor,O=K.fgColor||E;else{let Q=a||AA.fromValues(0,0,0,0);O=Q.a>0?Q:AA.fromValues(0,0,0,1),U=E}if(Z>0){let Q=A.slice(0,Z);this.lib.bufferDrawText(this.bufferPtr,Q,q,g,E,a,F)}if(j>Z){let Q=A.slice(Z,j);this.lib.bufferDrawText(this.bufferPtr,Q,q+Z,g,O,U,F)}if(j<A.length){let Q=A.slice(j);this.lib.bufferDrawText(this.bufferPtr,Q,q+j,g,E,a,F)}}fillRect(A,q,g,E,a){this.lib.bufferFillRect(this.bufferPtr,A,q,g,E,a)}drawFrameBuffer(A,q,g,E,a,F,K){this.guard(),this.lib.drawFrameBuffer(this.bufferPtr,A,q,g.ptr,E,a,F,K)}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyOptimizedBuffer(this.bufferPtr)}drawTextBuffer(A,q,g){this.guard(),this.lib.bufferDrawTextBufferView(this.bufferPtr,A.ptr,q,g)}drawEditorView(A,q,g){this.guard(),this.lib.bufferDrawEditorView(this.bufferPtr,A.ptr,q,g)}drawSuperSampleBuffer(A,q,g,E,a,F){this.guard(),this.lib.bufferDrawSuperSampleBuffer(this.bufferPtr,A,q,g,E,a,F)}drawPackedBuffer(A,q,g,E,a,F){this.guard(),this.lib.bufferDrawPackedBuffer(this.bufferPtr,A,q,g,E,a,F)}drawGrayscaleBuffer(A,q,g,E,a,F=null,K=null){this.guard(),this.lib.bufferDrawGrayscaleBuffer(this.bufferPtr,A,q,TF(g),E,a,F,K)}drawGrayscaleBufferSupersampled(A,q,g,E,a,F=null,K=null){this.guard(),this.lib.bufferDrawGrayscaleBufferSupersampled(this.bufferPtr,A,q,TF(g),E,a,F,K)}resize(A,q){if(this.guard(),this._width===A&&this._height===q)return;this._width=A,this._height=q,this._rawBuffers=null,this.lib.bufferResize(this.bufferPtr,A,q)}drawBox(A){this.guard();let q=iq(A.borderStyle,"single"),g=A.customBorderChars??WE[q],E=a_(A.border,A.shouldFill??!1,A.titleAlignment||"left");this.lib.bufferDrawBox(this.bufferPtr,A.x,A.y,A.width,A.height,g,E,A.borderColor,A.backgroundColor,A.title??null)}pushScissorRect(A,q,g,E){this.guard(),this.lib.bufferPushScissorRect(this.bufferPtr,A,q,g,E)}popScissorRect(){this.guard(),this.lib.bufferPopScissorRect(this.bufferPtr)}clearScissorRects(){this.guard(),this.lib.bufferClearScissorRects(this.bufferPtr)}pushOpacity(A){this.guard(),this.lib.bufferPushOpacity(this.bufferPtr,Math.max(0,Math.min(1,A)))}popOpacity(){this.guard(),this.lib.bufferPopOpacity(this.bufferPtr)}getCurrentOpacity(){return this.guard(),this.lib.bufferGetCurrentOpacity(this.bufferPtr)}clearOpacity(){this.guard(),this.lib.bufferClearOpacity(this.bufferPtr)}encodeUnicode(A){return this.guard(),this.lib.encodeUnicode(A,this._widthMethod)}freeUnicode(A){this.guard(),this.lib.freeUnicode(A)}drawGrid(A){this.guard();let q=Math.max(0,A.columnOffsets.length-1),g=Math.max(0,A.rowOffsets.length-1);this.lib.bufferDrawGrid(this.bufferPtr,A.borderChars,A.borderFg,A.borderBg,A.columnOffsets,q,A.rowOffsets,g,{drawInner:A.drawInner,drawOuter:A.drawOuter})}drawChar(A,q,g,E,a,F=0){this.guard(),this.lib.bufferDrawChar(this.bufferPtr,A,q,g,E,a,F)}}function tq(...A){let q=A.join(" ");throw console.error("FATAL ERROR:",q),Error(q)}function g6(A){return typeof A==="string"&&F_.includes(A)}function VF(A){return typeof A==="object"&&A!==null&&A.__type==="objectPointer"}function xF(A,q){return A+(q-1)&~(q-1)}function RF(A){throw TypeError(`Invalid enum value: ${A}`)}function GK(A,q="u32"){let g=Object.fromEntries(Object.entries(A).map(([E,a])=>[a,E]));return{__type:"enum",type:q,to(E){return typeof E==="number"?E:A[E]??RF(String(E))},from(E){return g[E]??RF(String(E))},enum:A}}function NF(A){return typeof A==="object"&&A.__type==="enum"}function _E(A){return typeof A==="object"&&A.__type==="struct"}function uq(A){let q,g;switch(A){case"u8":q=(E,a,F)=>E.setUint8(a,F),g=(E,a)=>E.getUint8(a);break;case"bool_u8":q=(E,a,F)=>E.setUint8(a,F?1:0),g=(E,a)=>Boolean(E.getUint8(a));break;case"bool_u32":q=(E,a,F)=>E.setUint32(a,F?1:0,!0),g=(E,a)=>Boolean(E.getUint32(a,!0));break;case"u16":q=(E,a,F)=>E.setUint16(a,F,!0),g=(E,a)=>E.getUint16(a,!0);break;case"i16":q=(E,a,F)=>E.setInt16(a,F,!0),g=(E,a)=>E.getInt16(a,!0);break;case"u32":q=(E,a,F)=>E.setUint32(a,F,!0),g=(E,a)=>E.getUint32(a,!0);break;case"i32":q=(E,a,F)=>E.setInt32(a,F,!0),g=(E,a)=>E.getInt32(a,!0);break;case"u64":q=(E,a,F)=>E.setBigUint64(a,BigInt(F),!0),g=(E,a)=>E.getBigUint64(a,!0);break;case"f32":q=(E,a,F)=>E.setFloat32(a,F,!0),g=(E,a)=>E.getFloat32(a,!0);break;case"f64":q=(E,a,F)=>E.setFloat64(a,F,!0),g=(E,a)=>E.getFloat64(a,!0);break;case"pointer":q=(E,a,F)=>{_A===8?E.setBigUint64(a,F?BigInt(F):0n,!0):E.setUint32(a,F?Number(F):0,!0)},g=(E,a)=>{let F=_A===8?E.getBigUint64(a,!0):BigInt(E.getUint32(a,!0));return Number(F)};break;default:tq(`Unsupported primitive type: ${A}`)}return{pack:q,unpack:g}}function j_(A){let q=new ArrayBuffer(A.length*_A),g=new DataView(q);for(let E=0;E<A.length;E++){let F=A[E]?.ptr??null;QA(g,E*_A,F)}return g}function GA(A,q){let g=0,E=1,a=[],F={},K=[],Z={};for(let[M,L,$={}]of A){if($.condition&&!$.condition())continue;let V=0,H=0,X,T,x=!1,z=null;if(g6(L))V=zq[L],H=PF[L],{pack:X,unpack:T}=uq(L);else if(typeof L==="string"&&L==="cstring")V=_A,H=_A,X=(N,h,b)=>{let w=b?Nq(WF.encode(b+"\x00")):null;QA(N,h,w)},T=(N,h)=>{return fq(N,h)};else if(typeof L==="string"&&L==="char*")V=_A,H=_A,X=(N,h,b)=>{let w=b?Nq(WF.encode(b)):null;QA(N,h,w)},T=(N,h)=>{return fq(N,h)},x=!0;else if(NF(L)){let N=L.type;V=zq[N],H=PF[N];let{pack:h}=uq(N);X=(b,w,c)=>{let t=L.to(c);h(b,w,t)},T=(b,w)=>{let c=K_[N](b,w);return L.from(c)}}else if(_E(L))if($.asPointer===!0)V=_A,H=_A,X=(N,h,b,w,c)=>{if(!b){QA(N,h,null);return}let t=L.pack(b,c);QA(N,h,Nq(t))},T=(N,h)=>{throw Error("Not implemented yet")};else V=L.size,H=L.align,X=(N,h,b,w,c)=>{let t=L.pack(b,c),o=new Uint8Array(t);new Uint8Array(N.buffer).set(o,h)},T=(N,h)=>{let b=N.buffer.slice(h,h+V);return L.unpack(b)};else if(VF(L))V=_A,H=_A,X=(N,h,b)=>{let w=b?.ptr??null;if(w===void 0)console.warn(`Field '${M}' expected object with '.ptr' property, but got undefined pointer value from:`,b),QA(N,h,null);else QA(N,h,w)},T=(N,h)=>{return fq(N,h)};else if(Array.isArray(L)&&L.length===1&&L[0]!==void 0){let[N]=L;V=_A,H=_A;let h;if(NF(N))h=zq[N.type],X=(w,c,t,o)=>{if(!t||t.length===0){QA(w,c,null);return}let aA=new ArrayBuffer(t.length*h),LA=new DataView(aA);for(let FA=0;FA<t.length;FA++){let NA=N.to(t[FA]);LA.setUint32(FA*h,NA,!0)}QA(w,c,Nq(aA))},T=null,x=!0,z=N;else if(_E(N))h=N.size,X=(w,c,t,o,aA)=>{if(!t||t.length===0){QA(w,c,null);return}let LA=new ArrayBuffer(t.length*h),FA=new DataView(LA);for(let NA=0;NA<t.length;NA++)N.packInto(t[NA],FA,NA*h,aA);QA(w,c,Nq(LA))},T=(w,c)=>{throw Error("Not implemented yet")};else if(g6(N)){h=zq[N];let{pack:w}=uq(N);X=(c,t,o)=>{if(!o||o.length===0){QA(c,t,null);return}let aA=new ArrayBuffer(o.length*h),LA=new DataView(aA);for(let FA=0;FA<o.length;FA++)w(LA,FA*h,o[FA]);QA(c,t,Nq(aA))},T=null,x=!0,z=N}else if(VF(N))h=_A,X=(w,c,t)=>{if(!t||t.length===0){QA(w,c,null);return}let o=j_(t);QA(w,c,Nq(o.buffer))},T=()=>{throw Error("not implemented yet")};else throw Error(`Unsupported array element type for ${M}: ${JSON.stringify(N)}`);let b=Object.values(F).find((w)=>w.lengthOf===M);if(b&&g6(b.type)){let{pack:w}=uq(b.type);Z[M]={elementSize:h,arrayOffset:g,lengthOffset:b.offset,lengthPack:w}}}else throw Error(`Unsupported field type for ${M}: ${JSON.stringify(L)}`);if(g=xF(g,H),$.unpackTransform){let N=T;T=(h,b)=>$.unpackTransform(N(h,b))}if($.packTransform){let N=X;X=(h,b,w,c,t)=>N(h,b,$.packTransform(w),c,t)}if($.optional){let N=X;if(_E(L)&&!$.asPointer)X=(h,b,w,c,t)=>{if(w||$.mapOptionalInline)N(h,b,w,c,t)};else X=(h,b,w,c,t)=>N(h,b,w??0,c,t)}if($.lengthOf){let N=X;X=(h,b,w,c,t)=>{let o=c[$.lengthOf],aA=0;if(o)if(typeof o==="string")aA=Buffer.byteLength(o);else aA=o.length;return N(h,b,aA,c,t)}}let m;if($.validate)m=Array.isArray($.validate)?$.validate:[$.validate];let D={name:M,offset:g,size:V,align:H,validate:m,optional:!!$.optional||!!$.lengthOf||$.default!==void 0,default:$.default,pack:X,unpack:T,type:L,lengthOf:$.lengthOf};if(a.push(D),$.lengthOf)F[$.lengthOf]=D;if(x){let N=typeof L==="string"&&L==="char*"?"char*":z;if(!N)tq(`Internal error: needsLengthOf=true but def is null for ${M}`);K.push({requester:D,def:N})}g+=V,E=Math.max(E,H)}for(let{requester:M,def:L}of K){let $=F[M.name];if(!$){if(L==="char*")continue;throw Error(`lengthOf field not found for array field ${M.name}`)}if(L==="char*")M.unpack=(V,H)=>{let X=fq(V,H),T=$.unpack(V,$.offset);if(X===0)return null;let x=typeof T==="bigint"?Number(T):T;if(x===0)return"";let z=UE(X,0,x);return Z_.decode(z)};else if(g6(L)){let V=zq[L],{unpack:H}=uq(L);M.unpack=(X,T)=>{let x=[],z=$.unpack(X,$.offset),m=fq(X,T);if(m===0n&&z>0)throw Error(`Array field ${M.name} has null pointer but length ${z}.`);if(m===0n||z===0)return[];let D=UE(m,0,z*V),N=new DataView(D);for(let h=0;h<z;h++)x.push(H(N,h*V));return x}}else{let V=L.type==="u32"?4:8;M.unpack=(H,X)=>{let T=[],x=$.unpack(H,$.offset),z=fq(H,X);if(z===0n&&x>0)throw Error(`Array field ${M.name} has null pointer but length ${x}.`);if(z===0n||x===0)return[];let m=UE(z,0,x*V),D=new DataView(m);for(let N=0;N<x;N++)T.push(L.from(D.getUint32(N*V,!0)));return T}}}let j=xF(g,E),U=a.map((M)=>({name:M.name,offset:M.offset,size:M.size,align:M.align,optional:M.optional,type:M.type,lengthOf:M.lengthOf})),O=new Map(U.map((M)=>[M.name,M])),Q=new Map(Object.entries(Z));return{__type:"struct",size:j,align:E,hasMapValue:!!q?.mapValue,layoutByName:O,arrayFields:Q,pack(M,L){let $=new ArrayBuffer(j),V=new DataView($),H=M;if(q?.mapValue)H=q.mapValue(M);for(let X of a){let T=H[X.name]??X.default;if(!X.optional&&T===void 0)tq(`Packing non-optional field '${X.name}' but value is undefined (and no default provided)`);if(X.validate)for(let x of X.validate)x(T,X.name,{hints:L?.validationHints,input:H});X.pack(V,X.offset,T,H,L)}return V.buffer},packInto(M,L,$,V){let H=M;if(q?.mapValue)H=q.mapValue(M);for(let X of a){let T=H[X.name]??X.default;if(!X.optional&&T===void 0)console.warn(`packInto missing value for non-optional field '${X.name}' at offset ${$+X.offset}. Writing default or zero.`);if(X.validate)for(let x of X.validate)x(T,X.name,{hints:V?.validationHints,input:H});X.pack(L,$+X.offset,T,H,V)}},unpack(M){if(M.byteLength<j)tq(`Buffer size (${M.byteLength}) is smaller than struct size (${j}) for unpacking.`);let L=new DataView(M),$=q?.default?{...q.default}:{};for(let V of a){if(!V.unpack)continue;try{$[V.name]=V.unpack(L,V.offset)}catch(H){throw console.error(`Error unpacking field '${V.name}' at offset ${V.offset}:`,H),H}}if(q?.reduceValue)return q.reduceValue($);return $},packList(M,L){if(M.length===0)return new ArrayBuffer(0);let $=new ArrayBuffer(j*M.length),V=new DataView($);for(let H=0;H<M.length;H++){let X=M[H];if(q?.mapValue)X=q.mapValue(M[H]);for(let T of a){let x=X[T.name]??T.default;if(!T.optional&&x===void 0)tq(`Packing non-optional field '${T.name}' at index ${H} but value is undefined (and no default provided)`);if(T.validate)for(let z of T.validate)z(x,T.name,{hints:L?.validationHints,input:X});T.pack(V,H*j+T.offset,x,X,L)}}return $},unpackList(M,L){if(L===0)return[];let $=j*L;if(M.byteLength<$)tq(`Buffer size (${M.byteLength}) is smaller than expected size (${$}) for unpacking ${L} structs.`);let V=new DataView(M),H=[];for(let X=0;X<L;X++){let T=X*j,x=q?.default?{...q.default}:{};for(let z of a){if(!z.unpack)continue;try{x[z.name]=z.unpack(V,T+z.offset)}catch(m){throw console.error(`Error unpacking field '${z.name}' at index ${X}, offset ${T+z.offset}:`,m),m}}if(q?.reduceValue)H.push(q.reduceValue(x));else H.push(x)}return H},describe(){return U}}}function Hg(A){if(typeof A==="bigint"){if(A>BigInt(Number.MAX_SAFE_INTEGER))throw Error("Pointer exceeds safe integer range");return Number(A)}return A}function Lg(A){return typeof A==="bigint"?Number(A):A}function $_(A){let g=A_(A||Ig,{setLogCallback:{args:["ptr"],returns:"void"},setEventCallback:{args:["ptr"],returns:"void"},createRenderer:{args:["u32","u32","bool","bool"],returns:"ptr"},setTerminalEnvVar:{args:["ptr","ptr","usize","ptr","usize"],returns:"bool"},destroyRenderer:{args:["ptr"],returns:"void"},setUseThread:{args:["ptr","bool"],returns:"void"},setBackgroundColor:{args:["ptr","ptr"],returns:"void"},setRenderOffset:{args:["ptr","u32"],returns:"void"},updateStats:{args:["ptr","f64","u32","f64"],returns:"void"},updateMemoryStats:{args:["ptr","u32","u32","u32"],returns:"void"},render:{args:["ptr","bool"],returns:"void"},getNextBuffer:{args:["ptr"],returns:"ptr"},getCurrentBuffer:{args:["ptr"],returns:"ptr"},queryPixelResolution:{args:["ptr"],returns:"void"},createOptimizedBuffer:{args:["u32","u32","bool","u8","ptr","usize"],returns:"ptr"},destroyOptimizedBuffer:{args:["ptr"],returns:"void"},drawFrameBuffer:{args:["ptr","i32","i32","ptr","u32","u32","u32","u32"],returns:"void"},getBufferWidth:{args:["ptr"],returns:"u32"},getBufferHeight:{args:["ptr"],returns:"u32"},bufferClear:{args:["ptr","ptr"],returns:"void"},bufferGetCharPtr:{args:["ptr"],returns:"ptr"},bufferGetFgPtr:{args:["ptr"],returns:"ptr"},bufferGetBgPtr:{args:["ptr"],returns:"ptr"},bufferGetAttributesPtr:{args:["ptr"],returns:"ptr"},bufferGetRespectAlpha:{args:["ptr"],returns:"bool"},bufferSetRespectAlpha:{args:["ptr","bool"],returns:"void"},bufferGetId:{args:["ptr","ptr","usize"],returns:"usize"},bufferGetRealCharSize:{args:["ptr"],returns:"u32"},bufferWriteResolvedChars:{args:["ptr","ptr","usize","bool"],returns:"u32"},bufferDrawText:{args:["ptr","ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferSetCellWithAlphaBlending:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferSetCell:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferFillRect:{args:["ptr","u32","u32","u32","u32","ptr"],returns:"void"},bufferResize:{args:["ptr","u32","u32"],returns:"void"},linkAlloc:{args:["ptr","u32"],returns:"u32"},linkGetUrl:{args:["u32","ptr","u32"],returns:"u32"},attributesWithLink:{args:["u32","u32"],returns:"u32"},attributesGetLinkId:{args:["u32"],returns:"u32"},resizeRenderer:{args:["ptr","u32","u32"],returns:"void"},setCursorPosition:{args:["ptr","i32","i32","bool"],returns:"void"},setCursorColor:{args:["ptr","ptr"],returns:"void"},getCursorState:{args:["ptr","ptr"],returns:"void"},setCursorStyleOptions:{args:["ptr","ptr"],returns:"void"},setDebugOverlay:{args:["ptr","bool","u8"],returns:"void"},clearTerminal:{args:["ptr"],returns:"void"},setTerminalTitle:{args:["ptr","ptr","usize"],returns:"void"},copyToClipboardOSC52:{args:["ptr","u8","ptr","usize"],returns:"bool"},clearClipboardOSC52:{args:["ptr","u8"],returns:"bool"},bufferDrawSuperSampleBuffer:{args:["ptr","u32","u32","ptr","usize","u8","u32"],returns:"void"},bufferDrawPackedBuffer:{args:["ptr","ptr","usize","u32","u32","u32","u32"],returns:"void"},bufferDrawGrayscaleBuffer:{args:["ptr","i32","i32","ptr","u32","u32","ptr","ptr"],returns:"void"},bufferDrawGrayscaleBufferSupersampled:{args:["ptr","i32","i32","ptr","u32","u32","ptr","ptr"],returns:"void"},bufferDrawGrid:{args:["ptr","ptr","ptr","ptr","ptr","u32","ptr","u32","ptr"],returns:"void"},bufferDrawBox:{args:["ptr","i32","i32","u32","u32","ptr","u32","ptr","ptr","ptr","u32"],returns:"void"},bufferPushScissorRect:{args:["ptr","i32","i32","u32","u32"],returns:"void"},bufferPopScissorRect:{args:["ptr"],returns:"void"},bufferClearScissorRects:{args:["ptr"],returns:"void"},bufferPushOpacity:{args:["ptr","f32"],returns:"void"},bufferPopOpacity:{args:["ptr"],returns:"void"},bufferGetCurrentOpacity:{args:["ptr"],returns:"f32"},bufferClearOpacity:{args:["ptr"],returns:"void"},addToHitGrid:{args:["ptr","i32","i32","u32","u32","u32"],returns:"void"},clearCurrentHitGrid:{args:["ptr"],returns:"void"},hitGridPushScissorRect:{args:["ptr","i32","i32","u32","u32"],returns:"void"},hitGridPopScissorRect:{args:["ptr"],returns:"void"},hitGridClearScissorRects:{args:["ptr"],returns:"void"},addToCurrentHitGridClipped:{args:["ptr","i32","i32","u32","u32","u32"],returns:"void"},checkHit:{args:["ptr","u32","u32"],returns:"u32"},getHitGridDirty:{args:["ptr"],returns:"bool"},dumpHitGrid:{args:["ptr"],returns:"void"},dumpBuffers:{args:["ptr","i64"],returns:"void"},dumpStdoutBuffer:{args:["ptr","i64"],returns:"void"},restoreTerminalModes:{args:["ptr"],returns:"void"},enableMouse:{args:["ptr","bool"],returns:"void"},disableMouse:{args:["ptr"],returns:"void"},enableKittyKeyboard:{args:["ptr","u8"],returns:"void"},disableKittyKeyboard:{args:["ptr"],returns:"void"},setKittyKeyboardFlags:{args:["ptr","u8"],returns:"void"},getKittyKeyboardFlags:{args:["ptr"],returns:"u8"},setupTerminal:{args:["ptr","bool"],returns:"void"},suspendRenderer:{args:["ptr"],returns:"void"},resumeRenderer:{args:["ptr"],returns:"void"},writeOut:{args:["ptr","ptr","u64"],returns:"void"},createTextBuffer:{args:["u8"],returns:"ptr"},destroyTextBuffer:{args:["ptr"],returns:"void"},textBufferGetLength:{args:["ptr"],returns:"u32"},textBufferGetByteSize:{args:["ptr"],returns:"u32"},textBufferReset:{args:["ptr"],returns:"void"},textBufferClear:{args:["ptr"],returns:"void"},textBufferSetDefaultFg:{args:["ptr","ptr"],returns:"void"},textBufferSetDefaultBg:{args:["ptr","ptr"],returns:"void"},textBufferSetDefaultAttributes:{args:["ptr","ptr"],returns:"void"},textBufferResetDefaults:{args:["ptr"],returns:"void"},textBufferGetTabWidth:{args:["ptr"],returns:"u8"},textBufferSetTabWidth:{args:["ptr","u8"],returns:"void"},textBufferRegisterMemBuffer:{args:["ptr","ptr","usize","bool"],returns:"u16"},textBufferReplaceMemBuffer:{args:["ptr","u8","ptr","usize","bool"],returns:"bool"},textBufferClearMemRegistry:{args:["ptr"],returns:"void"},textBufferSetTextFromMem:{args:["ptr","u8"],returns:"void"},textBufferAppend:{args:["ptr","ptr","usize"],returns:"void"},textBufferAppendFromMemId:{args:["ptr","u8"],returns:"void"},textBufferLoadFile:{args:["ptr","ptr","usize"],returns:"bool"},textBufferSetStyledText:{args:["ptr","ptr","usize"],returns:"void"},textBufferGetLineCount:{args:["ptr"],returns:"u32"},textBufferGetPlainText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferAddHighlightByCharRange:{args:["ptr","ptr"],returns:"void"},textBufferAddHighlight:{args:["ptr","u32","ptr"],returns:"void"},textBufferRemoveHighlightsByRef:{args:["ptr","u16"],returns:"void"},textBufferClearLineHighlights:{args:["ptr","u32"],returns:"void"},textBufferClearAllHighlights:{args:["ptr"],returns:"void"},textBufferSetSyntaxStyle:{args:["ptr","ptr"],returns:"void"},textBufferGetLineHighlightsPtr:{args:["ptr","u32","ptr"],returns:"ptr"},textBufferFreeLineHighlights:{args:["ptr","usize"],returns:"void"},textBufferGetHighlightCount:{args:["ptr"],returns:"u32"},textBufferGetTextRange:{args:["ptr","u32","u32","ptr","usize"],returns:"usize"},textBufferGetTextRangeByCoords:{args:["ptr","u32","u32","u32","u32","ptr","usize"],returns:"usize"},createTextBufferView:{args:["ptr"],returns:"ptr"},destroyTextBufferView:{args:["ptr"],returns:"void"},textBufferViewSetSelection:{args:["ptr","u32","u32","ptr","ptr"],returns:"void"},textBufferViewResetSelection:{args:["ptr"],returns:"void"},textBufferViewGetSelectionInfo:{args:["ptr"],returns:"u64"},textBufferViewSetLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr"],returns:"bool"},textBufferViewUpdateSelection:{args:["ptr","u32","ptr","ptr"],returns:"void"},textBufferViewUpdateLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr"],returns:"bool"},textBufferViewResetLocalSelection:{args:["ptr"],returns:"void"},textBufferViewSetWrapWidth:{args:["ptr","u32"],returns:"void"},textBufferViewSetWrapMode:{args:["ptr","u8"],returns:"void"},textBufferViewSetViewportSize:{args:["ptr","u32","u32"],returns:"void"},textBufferViewSetViewport:{args:["ptr","u32","u32","u32","u32"],returns:"void"},textBufferViewGetVirtualLineCount:{args:["ptr"],returns:"u32"},textBufferViewGetLineInfoDirect:{args:["ptr","ptr"],returns:"void"},textBufferViewGetLogicalLineInfoDirect:{args:["ptr","ptr"],returns:"void"},textBufferViewGetSelectedText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferViewGetPlainText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferViewSetTabIndicator:{args:["ptr","u32"],returns:"void"},textBufferViewSetTabIndicatorColor:{args:["ptr","ptr"],returns:"void"},textBufferViewSetTruncate:{args:["ptr","bool"],returns:"void"},textBufferViewMeasureForDimensions:{args:["ptr","u32","u32","ptr"],returns:"bool"},bufferDrawTextBufferView:{args:["ptr","ptr","i32","i32"],returns:"void"},bufferDrawEditorView:{args:["ptr","ptr","i32","i32"],returns:"void"},createEditorView:{args:["ptr","u32","u32"],returns:"ptr"},destroyEditorView:{args:["ptr"],returns:"void"},editorViewSetViewportSize:{args:["ptr","u32","u32"],returns:"void"},editorViewSetViewport:{args:["ptr","u32","u32","u32","u32","bool"],returns:"void"},editorViewGetViewport:{args:["ptr","ptr","ptr","ptr","ptr"],returns:"void"},editorViewSetScrollMargin:{args:["ptr","f32"],returns:"void"},editorViewSetWrapMode:{args:["ptr","u8"],returns:"void"},editorViewGetVirtualLineCount:{args:["ptr"],returns:"u32"},editorViewGetTotalVirtualLineCount:{args:["ptr"],returns:"u32"},editorViewGetTextBufferView:{args:["ptr"],returns:"ptr"},editorViewGetLineInfoDirect:{args:["ptr","ptr"],returns:"void"},editorViewGetLogicalLineInfoDirect:{args:["ptr","ptr"],returns:"void"},createEditBuffer:{args:["u8"],returns:"ptr"},destroyEditBuffer:{args:["ptr"],returns:"void"},editBufferSetText:{args:["ptr","ptr","usize"],returns:"void"},editBufferSetTextFromMem:{args:["ptr","u8"],returns:"void"},editBufferReplaceText:{args:["ptr","ptr","usize"],returns:"void"},editBufferReplaceTextFromMem:{args:["ptr","u8"],returns:"void"},editBufferGetText:{args:["ptr","ptr","usize"],returns:"usize"},editBufferInsertChar:{args:["ptr","ptr","usize"],returns:"void"},editBufferInsertText:{args:["ptr","ptr","usize"],returns:"void"},editBufferDeleteChar:{args:["ptr"],returns:"void"},editBufferDeleteCharBackward:{args:["ptr"],returns:"void"},editBufferDeleteRange:{args:["ptr","u32","u32","u32","u32"],returns:"void"},editBufferNewLine:{args:["ptr"],returns:"void"},editBufferDeleteLine:{args:["ptr"],returns:"void"},editBufferMoveCursorLeft:{args:["ptr"],returns:"void"},editBufferMoveCursorRight:{args:["ptr"],returns:"void"},editBufferMoveCursorUp:{args:["ptr"],returns:"void"},editBufferMoveCursorDown:{args:["ptr"],returns:"void"},editBufferGotoLine:{args:["ptr","u32"],returns:"void"},editBufferSetCursor:{args:["ptr","u32","u32"],returns:"void"},editBufferSetCursorToLineCol:{args:["ptr","u32","u32"],returns:"void"},editBufferSetCursorByOffset:{args:["ptr","u32"],returns:"void"},editBufferGetCursorPosition:{args:["ptr","ptr"],returns:"void"},editBufferGetId:{args:["ptr"],returns:"u16"},editBufferGetTextBuffer:{args:["ptr"],returns:"ptr"},editBufferDebugLogRope:{args:["ptr"],returns:"void"},editBufferUndo:{args:["ptr","ptr","usize"],returns:"usize"},editBufferRedo:{args:["ptr","ptr","usize"],returns:"usize"},editBufferCanUndo:{args:["ptr"],returns:"bool"},editBufferCanRedo:{args:["ptr"],returns:"bool"},editBufferClearHistory:{args:["ptr"],returns:"void"},editBufferClear:{args:["ptr"],returns:"void"},editBufferGetNextWordBoundary:{args:["ptr","ptr"],returns:"void"},editBufferGetPrevWordBoundary:{args:["ptr","ptr"],returns:"void"},editBufferGetEOL:{args:["ptr","ptr"],returns:"void"},editBufferOffsetToPosition:{args:["ptr","u32","ptr"],returns:"bool"},editBufferPositionToOffset:{args:["ptr","u32","u32"],returns:"u32"},editBufferGetLineStartOffset:{args:["ptr","u32"],returns:"u32"},editBufferGetTextRange:{args:["ptr","u32","u32","ptr","usize"],returns:"usize"},editBufferGetTextRangeByCoords:{args:["ptr","u32","u32","u32","u32","ptr","usize"],returns:"usize"},editorViewSetSelection:{args:["ptr","u32","u32","ptr","ptr"],returns:"void"},editorViewResetSelection:{args:["ptr"],returns:"void"},editorViewGetSelection:{args:["ptr"],returns:"u64"},editorViewSetLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr","bool","bool"],returns:"bool"},editorViewUpdateSelection:{args:["ptr","u32","ptr","ptr"],returns:"void"},editorViewUpdateLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr","bool","bool"],returns:"bool"},editorViewResetLocalSelection:{args:["ptr"],returns:"void"},editorViewGetSelectedTextBytes:{args:["ptr","ptr","usize"],returns:"usize"},editorViewGetCursor:{args:["ptr","ptr","ptr"],returns:"void"},editorViewGetText:{args:["ptr","ptr","usize"],returns:"usize"},editorViewGetVisualCursor:{args:["ptr","ptr"],returns:"void"},editorViewMoveUpVisual:{args:["ptr"],returns:"void"},editorViewMoveDownVisual:{args:["ptr"],returns:"void"},editorViewDeleteSelectedText:{args:["ptr"],returns:"void"},editorViewSetCursorByOffset:{args:["ptr","u32"],returns:"void"},editorViewGetNextWordBoundary:{args:["ptr","ptr"],returns:"void"},editorViewGetPrevWordBoundary:{args:["ptr","ptr"],returns:"void"},editorViewGetEOL:{args:["ptr","ptr"],returns:"void"},editorViewGetVisualSOL:{args:["ptr","ptr"],returns:"void"},editorViewGetVisualEOL:{args:["ptr","ptr"],returns:"void"},editorViewSetPlaceholderStyledText:{args:["ptr","ptr","usize"],returns:"void"},editorViewSetTabIndicator:{args:["ptr","u32"],returns:"void"},editorViewSetTabIndicatorColor:{args:["ptr","ptr"],returns:"void"},getArenaAllocatedBytes:{args:[],returns:"usize"},getBuildOptions:{args:["ptr"],returns:"void"},getAllocatorStats:{args:["ptr"],returns:"void"},createSyntaxStyle:{args:[],returns:"ptr"},destroySyntaxStyle:{args:["ptr"],returns:"void"},syntaxStyleRegister:{args:["ptr","ptr","usize","ptr","ptr","u8"],returns:"u32"},syntaxStyleResolveByName:{args:["ptr","ptr","usize"],returns:"u32"},syntaxStyleGetStyleCount:{args:["ptr"],returns:"usize"},getTerminalCapabilities:{args:["ptr","ptr"],returns:"void"},processCapabilityResponse:{args:["ptr","ptr","usize"],returns:"void"},encodeUnicode:{args:["ptr","usize","ptr","ptr","u8"],returns:"bool"},freeUnicode:{args:["ptr","usize"],returns:"void"},bufferDrawChar:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},createNativeSpanFeed:{args:["ptr"],returns:"ptr"},attachNativeSpanFeed:{args:["ptr"],returns:"i32"},destroyNativeSpanFeed:{args:["ptr"],returns:"void"},streamWrite:{args:["ptr","ptr","u64"],returns:"i32"},streamCommit:{args:["ptr"],returns:"i32"},streamDrainSpans:{args:["ptr","ptr","u32"],returns:"u32"},streamClose:{args:["ptr"],returns:"i32"},streamReserve:{args:["ptr","u32","ptr"],returns:"i32"},streamCommitReserved:{args:["ptr","u32"],returns:"i32"},streamSetOptions:{args:["ptr","ptr"],returns:"i32"},streamGetStats:{args:["ptr","ptr"],returns:"i32"},streamSetCallback:{args:["ptr","ptr"],returns:"void"}});if(EA.OTUI_DEBUG_FFI||EA.OTUI_TRACE_FFI)return{symbols:X_(g.symbols)};return g}function X_(A){if(!Wq)Wq={};if(EA.OTUI_DEBUG_FFI&&!a6)a6=`ffi_otui_debug_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;let q={},g=!1;if(Object.entries(A).forEach(([E,a])=>{q[E]=a}),EA.OTUI_DEBUG_FFI&&a6){let E=a6,a=(F)=>{g_(E,F+`
17
17
  `,{flag:"a"})};Object.entries(A).forEach(([F,K])=>{if(typeof K==="function")q[F]=(...Z)=>{a(`${F}(${Z.map((U)=>String(U)).join(", ")})`);let j=K(...Z);return a(`${F} returned: ${String(j)}`),j}})}if(EA.OTUI_TRACE_FFI)g=!0,Object.entries(A).forEach(([E,a])=>{if(typeof a==="function"){if(!Wq[E])Wq[E]=[];let F=q[E];q[E]=(...K)=>{let Z=performance.now(),j=F(...K),U=performance.now();return Wq[E].push(U-Z),j}}});if((EA.OTUI_DEBUG_FFI||EA.OTUI_TRACE_FFI)&&!bF)bF=!0,process.on("exit",()=>{if(Wq){let E=[];for(let[K,Z]of Object.entries(Wq)){if(!Array.isArray(Z)||Z.length===0)continue;let j=[...Z].sort((z,m)=>z-m),U=j.length,O=j.reduce((z,m)=>z+m,0),Q=O/U,M=j[0],L=j[U-1],$=Math.floor(U/2),V=Math.floor(U*0.9),H=Math.floor(U*0.99),X=j[$],T=j[Math.min(V,U-1)],x=j[Math.min(H,U-1)];E.push({name:K,count:U,total:O,average:Q,min:M,max:L,median:X,p90:T,p99:x})}E.sort((K,Z)=>Z.total-K.total);let a=[];if(a.push(`
18
18
  --- OpenTUI FFI Call Performance ---`),a.push("Sorted by total time spent (descending)"),a.push("-------------------------------------------------------------------------------------------------------------------------"),E.length===0)a.push("No trace data collected or all symbols had zero calls.");else{let V=Math.max(6,...E.map((h)=>h.name.length)),H=Math.max(5,...E.map((h)=>String(h.count).length)),X=Math.max(10,...E.map((h)=>h.total.toFixed(2).length)),T=Math.max(8,...E.map((h)=>h.average.toFixed(2).length)),x=Math.max(8,...E.map((h)=>h.min.toFixed(2).length)),z=Math.max(8,...E.map((h)=>h.max.toFixed(2).length)),m=Math.max(8,...E.map((h)=>h.median.toFixed(2).length)),D=Math.max(8,...E.map((h)=>h.p90.toFixed(2).length)),N=Math.max(8,...E.map((h)=>h.p99.toFixed(2).length));a.push(`${"Symbol".padEnd(V)} | ${"Calls".padStart(H)} | ${"Total (ms)".padStart(X)} | ${"Avg (ms)".padStart(T)} | ${"Min (ms)".padStart(x)} | ${"Max (ms)".padStart(z)} | ${"Med (ms)".padStart(m)} | ${"P90 (ms)".padStart(D)} | ${"P99 (ms)".padStart(N)}`),a.push(`${"-".repeat(V)}-+-${"-".repeat(H)}-+-${"-".repeat(X)}-+-${"-".repeat(T)}-+-${"-".repeat(x)}-+-${"-".repeat(z)}-+-${"-".repeat(m)}-+-${"-".repeat(D)}-+-${"-".repeat(N)}`),E.forEach((h)=>{a.push(`${h.name.padEnd(V)} | ${String(h.count).padStart(H)} | ${h.total.toFixed(2).padStart(X)} | ${h.average.toFixed(2).padStart(T)} | ${h.min.toFixed(2).padStart(x)} | ${h.max.toFixed(2).padStart(z)} | ${h.median.toFixed(2).padStart(m)} | ${h.p90.toFixed(2).padStart(D)} | ${h.p99.toFixed(2).padStart(N)}`)})}a.push("-------------------------------------------------------------------------------------------------------------------------");let F=a.join(`
19
- `);console.log(F);try{let j=`ffi_otui_trace_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;Bun.write(j,F)}catch(K){console.error("Failed to write FFI trace file:",K)}}});return q}class fE{opentui;encoder=new TextEncoder;decoder=new TextDecoder;logCallbackWrapper;eventCallbackWrapper;_nativeEvents=new g_;_anyEventHandlers=[];nativeSpanFeedCallbackWrapper=null;nativeSpanFeedHandlers=new Map;constructor(A){this.opentui=L_(A),this.setupLogging(),this.setupEventBus()}setupLogging(){if(this.logCallbackWrapper)return;let A=new ZE((q,g,E)=>{try{let a=typeof E==="bigint"?Number(E):E;if(a===0||!g)return;let F=Jg(g,0,a),K=new Uint8Array(F),Z=this.decoder.decode(K);switch(q){case 0:console.error(Z);break;case 1:console.warn(Z);break;case 2:console.info(Z);break;case 3:console.debug(Z);break;default:console.log(Z)}}catch(a){console.error("Error in Zig log callback:",a)}},{args:["u8","ptr","usize"],returns:"void"});if(this.logCallbackWrapper=A,!A.ptr)throw Error("Failed to create log callback");this.setLogCallback(A.ptr)}setLogCallback(A){this.opentui.symbols.setLogCallback(A)}setupEventBus(){if(this.eventCallbackWrapper)return;let A=new ZE((q,g,E,a)=>{try{let F=typeof g==="bigint"?Number(g):g,K=typeof a==="bigint"?Number(a):a;if(F===0||!q)return;let Z=Jg(q,0,F),j=new Uint8Array(Z),U=this.decoder.decode(j),O;if(K>0&&E)O=Jg(E,0,K).slice();else O=new ArrayBuffer(0);queueMicrotask(()=>{this._nativeEvents.emit(U,O);for(let Q of this._anyEventHandlers)Q(U,O)})}catch(F){console.error("Error in native event callback:",F)}},{args:["ptr","usize","ptr","usize"],returns:"void"});if(this.eventCallbackWrapper=A,!A.ptr)throw Error("Failed to create event callback");this.setEventCallback(A.ptr)}ensureNativeSpanFeedCallback(){if(this.nativeSpanFeedCallbackWrapper)return this.nativeSpanFeedCallbackWrapper;let A=new ZE((q,g,E,a)=>{let F=this.nativeSpanFeedHandlers.get(Hg(q));if(F)F(g,E,a)},{args:["ptr","u32","ptr","u64"],returns:"void"});if(this.nativeSpanFeedCallbackWrapper=A,!A.ptr)throw Error("Failed to create native span feed callback");return A}setEventCallback(A){this.opentui.symbols.setEventCallback(A)}createRenderer(A,q,g={}){let E=g.testing??!1,a=g.remote??!1;return this.opentui.symbols.createRenderer(A,q,E,a)}setTerminalEnvVar(A,q,g){let E=this.encoder.encode(q),a=this.encoder.encode(g);return this.opentui.symbols.setTerminalEnvVar(A,E,E.length,a,a.length)}destroyRenderer(A){this.opentui.symbols.destroyRenderer(A)}setUseThread(A,q){this.opentui.symbols.setUseThread(A,q)}setBackgroundColor(A,q){this.opentui.symbols.setBackgroundColor(A,q.buffer)}setRenderOffset(A,q){this.opentui.symbols.setRenderOffset(A,q)}updateStats(A,q,g,E){this.opentui.symbols.updateStats(A,q,g,E)}updateMemoryStats(A,q,g,E){this.opentui.symbols.updateMemoryStats(A,q,g,E)}getNextBuffer(A){let q=this.opentui.symbols.getNextBuffer(A);if(!q)throw Error("Failed to get next buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new Zq(this,q,g,E,{id:"next buffer",widthMethod:"unicode"})}getCurrentBuffer(A){let q=this.opentui.symbols.getCurrentBuffer(A);if(!q)throw Error("Failed to get current buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new Zq(this,q,g,E,{id:"current buffer",widthMethod:"unicode"})}bufferGetCharPtr(A){let q=this.opentui.symbols.bufferGetCharPtr(A);if(!q)throw Error("Failed to get char pointer");return q}bufferGetFgPtr(A){let q=this.opentui.symbols.bufferGetFgPtr(A);if(!q)throw Error("Failed to get fg pointer");return q}bufferGetBgPtr(A){let q=this.opentui.symbols.bufferGetBgPtr(A);if(!q)throw Error("Failed to get bg pointer");return q}bufferGetAttributesPtr(A){let q=this.opentui.symbols.bufferGetAttributesPtr(A);if(!q)throw Error("Failed to get attributes pointer");return q}bufferGetRespectAlpha(A){return this.opentui.symbols.bufferGetRespectAlpha(A)}bufferSetRespectAlpha(A,q){this.opentui.symbols.bufferSetRespectAlpha(A,q)}bufferGetId(A){let g=new Uint8Array(256),E=this.opentui.symbols.bufferGetId(A,g,256),a=typeof E==="bigint"?Number(E):E;return this.decoder.decode(g.slice(0,a))}bufferGetRealCharSize(A){return this.opentui.symbols.bufferGetRealCharSize(A)}bufferWriteResolvedChars(A,q,g){let E=this.opentui.symbols.bufferWriteResolvedChars(A,q,q.length,g);return typeof E==="bigint"?Number(E):E}getBufferWidth(A){return this.opentui.symbols.getBufferWidth(A)}getBufferHeight(A){return this.opentui.symbols.getBufferHeight(A)}bufferClear(A,q){this.opentui.symbols.bufferClear(A,q.buffer)}bufferDrawText(A,q,g,E,a,F,K){let Z=this.encoder.encode(q),j=Z.byteLength,U=F?F.buffer:null,O=a.buffer;this.opentui.symbols.bufferDrawText(A,Z,j,g,E,O,U,K??0)}bufferSetCellWithAlphaBlending(A,q,g,E,a,F,K){let Z=E.codePointAt(0)??" ".codePointAt(0),j=F.buffer,U=a.buffer;this.opentui.symbols.bufferSetCellWithAlphaBlending(A,q,g,Z,U,j,K??0)}bufferSetCell(A,q,g,E,a,F,K){let Z=E.codePointAt(0)??" ".codePointAt(0),j=F.buffer,U=a.buffer;this.opentui.symbols.bufferSetCell(A,q,g,Z,U,j,K??0)}bufferFillRect(A,q,g,E,a,F){let K=F.buffer;this.opentui.symbols.bufferFillRect(A,q,g,E,a,K)}bufferDrawSuperSampleBuffer(A,q,g,E,a,F,K){let Z=F==="bgra8unorm"?0:1;this.opentui.symbols.bufferDrawSuperSampleBuffer(A,q,g,E,a,Z,K)}bufferDrawPackedBuffer(A,q,g,E,a,F,K){this.opentui.symbols.bufferDrawPackedBuffer(A,q,g,E,a,F,K)}bufferDrawGrayscaleBuffer(A,q,g,E,a,F,K,Z){this.opentui.symbols.bufferDrawGrayscaleBuffer(A,q,g,E,a,F,K?.buffer??null,Z?.buffer??null)}bufferDrawGrayscaleBufferSupersampled(A,q,g,E,a,F,K,Z){this.opentui.symbols.bufferDrawGrayscaleBufferSupersampled(A,q,g,E,a,F,K?.buffer??null,Z?.buffer??null)}bufferDrawGrid(A,q,g,E,a,F,K,Z,j){let U=G_.pack({drawInner:j.drawInner,drawOuter:j.drawOuter});this.opentui.symbols.bufferDrawGrid(A,q,g.buffer,E.buffer,a,F,K,Z,v(U))}bufferDrawBox(A,q,g,E,a,F,K,Z,j,U){let O=U?this.encoder.encode(U):null,Q=U?O.length:0,M=U?O:null;this.opentui.symbols.bufferDrawBox(A,q,g,E,a,F,K,Z.buffer,j.buffer,M,Q)}bufferResize(A,q,g){this.opentui.symbols.bufferResize(A,q,g)}linkAlloc(A){let q=this.encoder.encode(A);return this.opentui.symbols.linkAlloc(q,q.length)}linkGetUrl(A,q=512){let g=new Uint8Array(q),E=this.opentui.symbols.linkGetUrl(A,g,q);return this.decoder.decode(g.slice(0,E))}attributesWithLink(A,q){return this.opentui.symbols.attributesWithLink(A,q)}attributesGetLinkId(A){return this.opentui.symbols.attributesGetLinkId(A)}resizeRenderer(A,q,g){this.opentui.symbols.resizeRenderer(A,q,g)}setCursorPosition(A,q,g,E){this.opentui.symbols.setCursorPosition(A,q,g,E)}setCursorColor(A,q){this.opentui.symbols.setCursorColor(A,q.buffer)}getCursorState(A){let q=new ArrayBuffer(CF.size);this.opentui.symbols.getCursorState(A,v(q));let g=CF.unpack(q);return{x:g.x,y:g.y,visible:g.visible,style:J_[g.style]??"block",blinking:g.blinking,color:AA.fromValues(g.r,g.g,g.b,g.a)}}setCursorStyleOptions(A,q){let g=q.style!=null?M_[q.style]:255,E=q.blinking!=null?q.blinking?1:0:255,a=q.cursor!=null?H_[q.cursor]:255,F=O_.pack({style:g,blinking:E,color:q.color,cursor:a});this.opentui.symbols.setCursorStyleOptions(A,v(F))}render(A,q){this.opentui.symbols.render(A,q)}createOptimizedBuffer(A,q,g,E=!1,a){if(Number.isNaN(A)||Number.isNaN(q))console.error(Error(`Invalid dimensions for OptimizedBuffer: ${A}x${q}`).stack);let F=g==="wcwidth"?0:1,K=a||"unnamed buffer",Z=this.encoder.encode(K),j=this.opentui.symbols.createOptimizedBuffer(A,q,E,F,Z,Z.length);if(!j)throw Error(`Failed to create optimized buffer: ${A}x${q}`);return new Zq(this,j,A,q,{respectAlpha:E,id:a,widthMethod:g})}destroyOptimizedBuffer(A){this.opentui.symbols.destroyOptimizedBuffer(A)}drawFrameBuffer(A,q,g,E,a,F,K,Z){let j=a??0,U=F??0,O=K??0,Q=Z??0;this.opentui.symbols.drawFrameBuffer(A,q,g,E,j,U,O,Q)}setDebugOverlay(A,q,g){this.opentui.symbols.setDebugOverlay(A,q,g)}clearTerminal(A){this.opentui.symbols.clearTerminal(A)}setTerminalTitle(A,q){let g=this.encoder.encode(q);this.opentui.symbols.setTerminalTitle(A,g,g.length)}copyToClipboardOSC52(A,q,g){return this.opentui.symbols.copyToClipboardOSC52(A,q,g,g.length)}clearClipboardOSC52(A,q){return this.opentui.symbols.clearClipboardOSC52(A,q)}addToHitGrid(A,q,g,E,a,F){this.opentui.symbols.addToHitGrid(A,q,g,E,a,F)}clearCurrentHitGrid(A){this.opentui.symbols.clearCurrentHitGrid(A)}hitGridPushScissorRect(A,q,g,E,a){this.opentui.symbols.hitGridPushScissorRect(A,q,g,E,a)}hitGridPopScissorRect(A){this.opentui.symbols.hitGridPopScissorRect(A)}hitGridClearScissorRects(A){this.opentui.symbols.hitGridClearScissorRects(A)}addToCurrentHitGridClipped(A,q,g,E,a,F){this.opentui.symbols.addToCurrentHitGridClipped(A,q,g,E,a,F)}checkHit(A,q,g){return this.opentui.symbols.checkHit(A,q,g)}getHitGridDirty(A){return this.opentui.symbols.getHitGridDirty(A)}dumpHitGrid(A){this.opentui.symbols.dumpHitGrid(A)}dumpBuffers(A,q){let g=q??Date.now();this.opentui.symbols.dumpBuffers(A,g)}dumpStdoutBuffer(A,q){let g=q??Date.now();this.opentui.symbols.dumpStdoutBuffer(A,g)}restoreTerminalModes(A){this.opentui.symbols.restoreTerminalModes(A)}enableMouse(A,q){this.opentui.symbols.enableMouse(A,q)}disableMouse(A){this.opentui.symbols.disableMouse(A)}enableKittyKeyboard(A,q){this.opentui.symbols.enableKittyKeyboard(A,q)}disableKittyKeyboard(A){this.opentui.symbols.disableKittyKeyboard(A)}setKittyKeyboardFlags(A,q){this.opentui.symbols.setKittyKeyboardFlags(A,q)}getKittyKeyboardFlags(A){return this.opentui.symbols.getKittyKeyboardFlags(A)}setupTerminal(A,q){this.opentui.symbols.setupTerminal(A,q)}suspendRenderer(A){this.opentui.symbols.suspendRenderer(A)}resumeRenderer(A){this.opentui.symbols.resumeRenderer(A)}queryPixelResolution(A){this.opentui.symbols.queryPixelResolution(A)}writeOut(A,q){let g=typeof q==="string"?new TextEncoder().encode(q):q;if(g.length===0)return;this.opentui.symbols.writeOut(A,v(g),g.length)}createTextBuffer(A){let q=A==="wcwidth"?0:1,g=this.opentui.symbols.createTextBuffer(q);if(!g)throw Error("Failed to create TextBuffer");return new xg(this,g)}destroyTextBuffer(A){this.opentui.symbols.destroyTextBuffer(A)}textBufferGetLength(A){return this.opentui.symbols.textBufferGetLength(A)}textBufferGetByteSize(A){return this.opentui.symbols.textBufferGetByteSize(A)}textBufferReset(A){this.opentui.symbols.textBufferReset(A)}textBufferClear(A){this.opentui.symbols.textBufferClear(A)}textBufferSetDefaultFg(A,q){let g=q?q.buffer:null;this.opentui.symbols.textBufferSetDefaultFg(A,g)}textBufferSetDefaultBg(A,q){let g=q?q.buffer:null;this.opentui.symbols.textBufferSetDefaultBg(A,g)}textBufferSetDefaultAttributes(A,q){let g=q===null?null:new Uint8Array([q]);this.opentui.symbols.textBufferSetDefaultAttributes(A,g)}textBufferResetDefaults(A){this.opentui.symbols.textBufferResetDefaults(A)}textBufferGetTabWidth(A){return this.opentui.symbols.textBufferGetTabWidth(A)}textBufferSetTabWidth(A,q){this.opentui.symbols.textBufferSetTabWidth(A,q)}textBufferRegisterMemBuffer(A,q,g=!1){let E=this.opentui.symbols.textBufferRegisterMemBuffer(A,q,q.length,g);if(E===65535)throw Error("Failed to register memory buffer");return E}textBufferReplaceMemBuffer(A,q,g,E=!1){return this.opentui.symbols.textBufferReplaceMemBuffer(A,q,g,g.length,E)}textBufferClearMemRegistry(A){this.opentui.symbols.textBufferClearMemRegistry(A)}textBufferSetTextFromMem(A,q){this.opentui.symbols.textBufferSetTextFromMem(A,q)}textBufferAppend(A,q){this.opentui.symbols.textBufferAppend(A,q,q.length)}textBufferAppendFromMemId(A,q){this.opentui.symbols.textBufferAppendFromMemId(A,q)}textBufferLoadFile(A,q){let g=this.encoder.encode(q);return this.opentui.symbols.textBufferLoadFile(A,g,g.length)}textBufferSetStyledText(A,q){if(q.length===0){this.textBufferClear(A);return}let g=hF.packList(q);this.opentui.symbols.textBufferSetStyledText(A,v(g),q.length)}textBufferGetLineCount(A){return this.opentui.symbols.textBufferGetLineCount(A)}textBufferGetPlainText(A,q,g){let E=this.opentui.symbols.textBufferGetPlainText(A,q,g);return typeof E==="bigint"?Number(E):E}getPlainTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferGetPlainText(A,v(g),q);if(E===0)return null;return g.slice(0,E)}textBufferGetTextRange(A,q,g,E){let a=new Uint8Array(E),F=this.opentui.symbols.textBufferGetTextRange(A,q,g,v(a),E),K=typeof F==="bigint"?Number(F):F;if(K===0)return null;return a.slice(0,K)}textBufferGetTextRangeByCoords(A,q,g,E,a,F){let K=new Uint8Array(F),Z=this.opentui.symbols.textBufferGetTextRangeByCoords(A,q,g,E,a,v(K),F),j=typeof Z==="bigint"?Number(Z):Z;if(j===0)return null;return K.slice(0,j)}createTextBufferView(A){let q=this.opentui.symbols.createTextBufferView(A);if(!q)throw Error("Failed to create TextBufferView");return q}destroyTextBufferView(A){this.opentui.symbols.destroyTextBufferView(A)}textBufferViewSetSelection(A,q,g,E,a){let F=E?E.buffer:null,K=a?a.buffer:null;this.opentui.symbols.textBufferViewSetSelection(A,q,g,F,K)}textBufferViewResetSelection(A){this.opentui.symbols.textBufferViewResetSelection(A)}textBufferViewGetSelection(A){let q=this.textBufferViewGetSelectionInfo(A);if(q===0xffff_ffff_ffff_ffffn)return null;let g=Number(q>>32n),E=Number(q&0xffff_ffffn);return{start:g,end:E}}textBufferViewGetSelectionInfo(A){return this.opentui.symbols.textBufferViewGetSelectionInfo(A)}textBufferViewSetLocalSelection(A,q,g,E,a,F,K){let Z=F?F.buffer:null,j=K?K.buffer:null;return this.opentui.symbols.textBufferViewSetLocalSelection(A,q,g,E,a,Z,j)}textBufferViewUpdateSelection(A,q,g,E){let a=g?g.buffer:null,F=E?E.buffer:null;this.opentui.symbols.textBufferViewUpdateSelection(A,q,a,F)}textBufferViewUpdateLocalSelection(A,q,g,E,a,F,K){let Z=F?F.buffer:null,j=K?K.buffer:null;return this.opentui.symbols.textBufferViewUpdateLocalSelection(A,q,g,E,a,Z,j)}textBufferViewResetLocalSelection(A){this.opentui.symbols.textBufferViewResetLocalSelection(A)}textBufferViewSetWrapWidth(A,q){this.opentui.symbols.textBufferViewSetWrapWidth(A,q)}textBufferViewSetWrapMode(A,q){let g=q==="none"?0:q==="char"?1:2;this.opentui.symbols.textBufferViewSetWrapMode(A,g)}textBufferViewSetViewportSize(A,q,g){this.opentui.symbols.textBufferViewSetViewportSize(A,q,g)}textBufferViewSetViewport(A,q,g,E,a){this.opentui.symbols.textBufferViewSetViewport(A,q,g,E,a)}textBufferViewGetLineInfo(A){let q=new ArrayBuffer($q.size);this.textBufferViewGetLineInfoDirect(A,v(q));let g=$q.unpack(q),E=g.startCols,a=g.widthCols,F=g.widthColsMax;return{lineStartCols:E,lineWidthCols:a,lineWidthColsMax:F,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetLogicalLineInfo(A){let q=new ArrayBuffer($q.size);this.textBufferViewGetLogicalLineInfoDirect(A,v(q));let g=$q.unpack(q),E=g.startCols,a=g.widthCols,F=g.widthColsMax;return{lineStartCols:E,lineWidthCols:a,lineWidthColsMax:F,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetVirtualLineCount(A){return this.opentui.symbols.textBufferViewGetVirtualLineCount(A)}textBufferViewGetLineInfoDirect(A,q){this.opentui.symbols.textBufferViewGetLineInfoDirect(A,q)}textBufferViewGetLogicalLineInfoDirect(A,q){this.opentui.symbols.textBufferViewGetLogicalLineInfoDirect(A,q)}textBufferViewGetSelectedText(A,q,g){let E=this.opentui.symbols.textBufferViewGetSelectedText(A,q,g);return typeof E==="bigint"?Number(E):E}textBufferViewGetPlainText(A,q,g){let E=this.opentui.symbols.textBufferViewGetPlainText(A,q,g);return typeof E==="bigint"?Number(E):E}textBufferViewGetSelectedTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferViewGetSelectedText(A,v(g),q);if(E===0)return null;return g.slice(0,E)}textBufferViewGetPlainTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferViewGetPlainText(A,v(g),q);if(E===0)return null;return g.slice(0,E)}textBufferViewSetTabIndicator(A,q){this.opentui.symbols.textBufferViewSetTabIndicator(A,q)}textBufferViewSetTabIndicatorColor(A,q){this.opentui.symbols.textBufferViewSetTabIndicatorColor(A,q.buffer)}textBufferViewSetTruncate(A,q){this.opentui.symbols.textBufferViewSetTruncate(A,q)}textBufferViewMeasureForDimensions(A,q,g){let E=new ArrayBuffer(BF.size),a=v(new Uint8Array(E));if(!this.opentui.symbols.textBufferViewMeasureForDimensions(A,q,g,a))return null;return BF.unpack(E)}textBufferAddHighlightByCharRange(A,q){let g=E6.pack(q);this.opentui.symbols.textBufferAddHighlightByCharRange(A,v(g))}textBufferAddHighlight(A,q,g){let E=E6.pack(g);this.opentui.symbols.textBufferAddHighlight(A,q,v(E))}textBufferRemoveHighlightsByRef(A,q){this.opentui.symbols.textBufferRemoveHighlightsByRef(A,q)}textBufferClearLineHighlights(A,q){this.opentui.symbols.textBufferClearLineHighlights(A,q)}textBufferClearAllHighlights(A){this.opentui.symbols.textBufferClearAllHighlights(A)}textBufferSetSyntaxStyle(A,q){this.opentui.symbols.textBufferSetSyntaxStyle(A,q)}textBufferGetLineHighlights(A,q){let g=new BigUint64Array(1),E=this.opentui.symbols.textBufferGetLineHighlightsPtr(A,q,v(g));if(!E)return[];let a=Number(g[0]),F=a*E6.size,K=Jg(E,0,F),Z=E6.unpackList(K,a);return this.opentui.symbols.textBufferFreeLineHighlights(E,a),Z}textBufferGetHighlightCount(A){return this.opentui.symbols.textBufferGetHighlightCount(A)}getArenaAllocatedBytes(){let A=this.opentui.symbols.getArenaAllocatedBytes();return typeof A==="bigint"?Number(A):A}getBuildOptions(){let A=new ArrayBuffer(kF.size);this.opentui.symbols.getBuildOptions(v(A));let q=kF.unpack(A);return{gpaSafeStats:!!q.gpaSafeStats,gpaMemoryLimitTracking:!!q.gpaMemoryLimitTracking}}getAllocatorStats(){let A=new ArrayBuffer(DF.size);this.opentui.symbols.getAllocatorStats(v(A));let q=DF.unpack(A);return{totalRequestedBytes:Lg(q.totalRequestedBytes),activeAllocations:Lg(q.activeAllocations),smallAllocations:Lg(q.smallAllocations),largeAllocations:Lg(q.largeAllocations),requestedBytesValid:!!q.requestedBytesValid}}bufferDrawTextBufferView(A,q,g,E){this.opentui.symbols.bufferDrawTextBufferView(A,q,g,E)}bufferDrawEditorView(A,q,g,E){this.opentui.symbols.bufferDrawEditorView(A,q,g,E)}createEditorView(A,q,g){let E=this.opentui.symbols.createEditorView(A,q,g);if(!E)throw Error("Failed to create EditorView");return E}destroyEditorView(A){this.opentui.symbols.destroyEditorView(A)}editorViewSetViewportSize(A,q,g){this.opentui.symbols.editorViewSetViewportSize(A,q,g)}editorViewSetViewport(A,q,g,E,a,F){this.opentui.symbols.editorViewSetViewport(A,q,g,E,a,F)}editorViewGetViewport(A){let q=new Uint32Array(1),g=new Uint32Array(1),E=new Uint32Array(1),a=new Uint32Array(1);return this.opentui.symbols.editorViewGetViewport(A,v(q),v(g),v(E),v(a)),{offsetX:q[0],offsetY:g[0],width:E[0],height:a[0]}}editorViewSetScrollMargin(A,q){this.opentui.symbols.editorViewSetScrollMargin(A,q)}editorViewSetWrapMode(A,q){let g=q==="none"?0:q==="char"?1:2;this.opentui.symbols.editorViewSetWrapMode(A,g)}editorViewGetVirtualLineCount(A){return this.opentui.symbols.editorViewGetVirtualLineCount(A)}editorViewGetTotalVirtualLineCount(A){return this.opentui.symbols.editorViewGetTotalVirtualLineCount(A)}editorViewGetTextBufferView(A){let q=this.opentui.symbols.editorViewGetTextBufferView(A);if(!q)throw Error("Failed to get TextBufferView from EditorView");return q}editorViewGetLineInfo(A){let q=new ArrayBuffer($q.size);this.opentui.symbols.editorViewGetLineInfoDirect(A,v(q));let g=$q.unpack(q),E=g.startCols,a=g.widthCols,F=g.widthColsMax;return{lineStartCols:E,lineWidthCols:a,lineWidthColsMax:F,lineSources:g.sources,lineWraps:g.wraps}}editorViewGetLogicalLineInfo(A){let q=new ArrayBuffer($q.size);this.opentui.symbols.editorViewGetLogicalLineInfoDirect(A,v(q));let g=$q.unpack(q),E=g.startCols,a=g.widthCols,F=g.widthColsMax;return{lineStartCols:E,lineWidthCols:a,lineWidthColsMax:F,lineSources:g.sources,lineWraps:g.wraps}}createEditBuffer(A){let q=A==="wcwidth"?0:1,g=this.opentui.symbols.createEditBuffer(q);if(!g)throw Error("Failed to create EditBuffer");return g}destroyEditBuffer(A){this.opentui.symbols.destroyEditBuffer(A)}editBufferSetText(A,q){this.opentui.symbols.editBufferSetText(A,q,q.length)}editBufferSetTextFromMem(A,q){this.opentui.symbols.editBufferSetTextFromMem(A,q)}editBufferReplaceText(A,q){this.opentui.symbols.editBufferReplaceText(A,q,q.length)}editBufferReplaceTextFromMem(A,q){this.opentui.symbols.editBufferReplaceTextFromMem(A,q)}editBufferGetText(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferGetText(A,v(g),q),a=typeof E==="bigint"?Number(E):E;if(a===0)return null;return g.slice(0,a)}editBufferInsertChar(A,q){let g=this.encoder.encode(q);this.opentui.symbols.editBufferInsertChar(A,g,g.length)}editBufferInsertText(A,q){let g=this.encoder.encode(q);this.opentui.symbols.editBufferInsertText(A,g,g.length)}editBufferDeleteChar(A){this.opentui.symbols.editBufferDeleteChar(A)}editBufferDeleteCharBackward(A){this.opentui.symbols.editBufferDeleteCharBackward(A)}editBufferDeleteRange(A,q,g,E,a){this.opentui.symbols.editBufferDeleteRange(A,q,g,E,a)}editBufferNewLine(A){this.opentui.symbols.editBufferNewLine(A)}editBufferDeleteLine(A){this.opentui.symbols.editBufferDeleteLine(A)}editBufferMoveCursorLeft(A){this.opentui.symbols.editBufferMoveCursorLeft(A)}editBufferMoveCursorRight(A){this.opentui.symbols.editBufferMoveCursorRight(A)}editBufferMoveCursorUp(A){this.opentui.symbols.editBufferMoveCursorUp(A)}editBufferMoveCursorDown(A){this.opentui.symbols.editBufferMoveCursorDown(A)}editBufferGotoLine(A,q){this.opentui.symbols.editBufferGotoLine(A,q)}editBufferSetCursor(A,q,g){this.opentui.symbols.editBufferSetCursor(A,q,g)}editBufferSetCursorToLineCol(A,q,g){this.opentui.symbols.editBufferSetCursorToLineCol(A,q,g)}editBufferSetCursorByOffset(A,q){this.opentui.symbols.editBufferSetCursorByOffset(A,q)}editBufferGetCursorPosition(A){let q=new ArrayBuffer(dA.size);return this.opentui.symbols.editBufferGetCursorPosition(A,v(q)),dA.unpack(q)}editBufferGetId(A){return this.opentui.symbols.editBufferGetId(A)}editBufferGetTextBuffer(A){let q=this.opentui.symbols.editBufferGetTextBuffer(A);if(!q)throw Error("Failed to get TextBuffer from EditBuffer");return q}editBufferDebugLogRope(A){this.opentui.symbols.editBufferDebugLogRope(A)}editBufferUndo(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferUndo(A,v(g),q),a=typeof E==="bigint"?Number(E):E;if(a===0)return null;return g.slice(0,a)}editBufferRedo(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferRedo(A,v(g),q),a=typeof E==="bigint"?Number(E):E;if(a===0)return null;return g.slice(0,a)}editBufferCanUndo(A){return this.opentui.symbols.editBufferCanUndo(A)}editBufferCanRedo(A){return this.opentui.symbols.editBufferCanRedo(A)}editBufferClearHistory(A){this.opentui.symbols.editBufferClearHistory(A)}editBufferClear(A){this.opentui.symbols.editBufferClear(A)}editBufferGetNextWordBoundary(A){let q=new ArrayBuffer(dA.size);return this.opentui.symbols.editBufferGetNextWordBoundary(A,v(q)),dA.unpack(q)}editBufferGetPrevWordBoundary(A){let q=new ArrayBuffer(dA.size);return this.opentui.symbols.editBufferGetPrevWordBoundary(A,v(q)),dA.unpack(q)}editBufferGetEOL(A){let q=new ArrayBuffer(dA.size);return this.opentui.symbols.editBufferGetEOL(A,v(q)),dA.unpack(q)}editBufferOffsetToPosition(A,q){let g=new ArrayBuffer(dA.size);if(!this.opentui.symbols.editBufferOffsetToPosition(A,q,v(g)))return null;return dA.unpack(g)}editBufferPositionToOffset(A,q,g){return this.opentui.symbols.editBufferPositionToOffset(A,q,g)}editBufferGetLineStartOffset(A,q){return this.opentui.symbols.editBufferGetLineStartOffset(A,q)}editBufferGetTextRange(A,q,g,E){let a=new Uint8Array(E),F=this.opentui.symbols.editBufferGetTextRange(A,q,g,v(a),E),K=typeof F==="bigint"?Number(F):F;if(K===0)return null;return a.slice(0,K)}editBufferGetTextRangeByCoords(A,q,g,E,a,F){let K=new Uint8Array(F),Z=this.opentui.symbols.editBufferGetTextRangeByCoords(A,q,g,E,a,v(K),F),j=typeof Z==="bigint"?Number(Z):Z;if(j===0)return null;return K.slice(0,j)}editorViewSetSelection(A,q,g,E,a){let F=E?E.buffer:null,K=a?a.buffer:null;this.opentui.symbols.editorViewSetSelection(A,q,g,F,K)}editorViewResetSelection(A){this.opentui.symbols.editorViewResetSelection(A)}editorViewGetSelection(A){let q=this.opentui.symbols.editorViewGetSelection(A);if(q===0xffff_ffff_ffff_ffffn)return null;let g=Number(q>>32n),E=Number(q&0xffff_ffffn);return{start:g,end:E}}editorViewSetLocalSelection(A,q,g,E,a,F,K,Z,j){let U=F?F.buffer:null,O=K?K.buffer:null;return this.opentui.symbols.editorViewSetLocalSelection(A,q,g,E,a,U,O,Z,j)}editorViewUpdateSelection(A,q,g,E){let a=g?g.buffer:null,F=E?E.buffer:null;this.opentui.symbols.editorViewUpdateSelection(A,q,a,F)}editorViewUpdateLocalSelection(A,q,g,E,a,F,K,Z,j){let U=F?F.buffer:null,O=K?K.buffer:null;return this.opentui.symbols.editorViewUpdateLocalSelection(A,q,g,E,a,U,O,Z,j)}editorViewResetLocalSelection(A){this.opentui.symbols.editorViewResetLocalSelection(A)}editorViewGetSelectedTextBytes(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editorViewGetSelectedTextBytes(A,v(g),q),a=typeof E==="bigint"?Number(E):E;if(a===0)return null;return g.slice(0,a)}editorViewGetCursor(A){let q=new Uint32Array(1),g=new Uint32Array(1);return this.opentui.symbols.editorViewGetCursor(A,v(q),v(g)),{row:q[0],col:g[0]}}editorViewGetText(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editorViewGetText(A,v(g),q),a=typeof E==="bigint"?Number(E):E;if(a===0)return null;return g.slice(0,a)}editorViewGetVisualCursor(A){let q=new ArrayBuffer(WA.size);return this.opentui.symbols.editorViewGetVisualCursor(A,v(q)),WA.unpack(q)}editorViewMoveUpVisual(A){this.opentui.symbols.editorViewMoveUpVisual(A)}editorViewMoveDownVisual(A){this.opentui.symbols.editorViewMoveDownVisual(A)}editorViewDeleteSelectedText(A){this.opentui.symbols.editorViewDeleteSelectedText(A)}editorViewSetCursorByOffset(A,q){this.opentui.symbols.editorViewSetCursorByOffset(A,q)}editorViewGetNextWordBoundary(A){let q=new ArrayBuffer(WA.size);return this.opentui.symbols.editorViewGetNextWordBoundary(A,v(q)),WA.unpack(q)}editorViewGetPrevWordBoundary(A){let q=new ArrayBuffer(WA.size);return this.opentui.symbols.editorViewGetPrevWordBoundary(A,v(q)),WA.unpack(q)}editorViewGetEOL(A){let q=new ArrayBuffer(WA.size);return this.opentui.symbols.editorViewGetEOL(A,v(q)),WA.unpack(q)}editorViewGetVisualSOL(A){let q=new ArrayBuffer(WA.size);return this.opentui.symbols.editorViewGetVisualSOL(A,v(q)),WA.unpack(q)}editorViewGetVisualEOL(A){let q=new ArrayBuffer(WA.size);return this.opentui.symbols.editorViewGetVisualEOL(A,v(q)),WA.unpack(q)}bufferPushScissorRect(A,q,g,E,a){this.opentui.symbols.bufferPushScissorRect(A,q,g,E,a)}bufferPopScissorRect(A){this.opentui.symbols.bufferPopScissorRect(A)}bufferClearScissorRects(A){this.opentui.symbols.bufferClearScissorRects(A)}bufferPushOpacity(A,q){this.opentui.symbols.bufferPushOpacity(A,q)}bufferPopOpacity(A){this.opentui.symbols.bufferPopOpacity(A)}bufferGetCurrentOpacity(A){return this.opentui.symbols.bufferGetCurrentOpacity(A)}bufferClearOpacity(A){this.opentui.symbols.bufferClearOpacity(A)}getTerminalCapabilities(A){let q=new ArrayBuffer(SF.size);this.opentui.symbols.getTerminalCapabilities(A,v(q));let g=SF.unpack(q);return{kitty_keyboard:g.kitty_keyboard,kitty_graphics:g.kitty_graphics,rgb:g.rgb,unicode:g.unicode,sgr_pixels:g.sgr_pixels,color_scheme_updates:g.color_scheme_updates,explicit_width:g.explicit_width,scaled_text:g.scaled_text,sixel:g.sixel,focus_tracking:g.focus_tracking,sync:g.sync,bracketed_paste:g.bracketed_paste,hyperlinks:g.hyperlinks,osc52:g.osc52,explicit_cursor_positioning:g.explicit_cursor_positioning,terminal:{name:g.term_name??"",version:g.term_version??"",from_xtversion:g.term_from_xtversion}}}processCapabilityResponse(A,q){let g=this.encoder.encode(q);this.opentui.symbols.processCapabilityResponse(A,g,g.length)}encodeUnicode(A,q){let g=this.encoder.encode(A),E=q==="wcwidth"?0:1,a=new ArrayBuffer(8),F=new ArrayBuffer(8);if(!this.opentui.symbols.encodeUnicode(g,g.length,v(a),v(F),E))return null;let Z=new BigUint64Array(a),j=new BigUint64Array(F),U=Number(Z[0]),O=Number(j[0]);if(O===0)return{ptr:U,data:[]};let Q=O*zF.size,M=Jg(U,0,Q),L=zF.unpackList(M,O);return{ptr:U,data:L}}freeUnicode(A){this.opentui.symbols.freeUnicode(A.ptr,A.data.length)}bufferDrawChar(A,q,g,E,a,F,K=0){this.opentui.symbols.bufferDrawChar(A,q,g,E,a.buffer,F.buffer,K)}registerNativeSpanFeedStream(A,q){let g=this.ensureNativeSpanFeedCallback();this.nativeSpanFeedHandlers.set(Hg(A),q),this.opentui.symbols.streamSetCallback(A,g.ptr)}unregisterNativeSpanFeedStream(A){this.opentui.symbols.streamSetCallback(A,null),this.nativeSpanFeedHandlers.delete(Hg(A))}createNativeSpanFeed(A){let q=A==null?null:wF.pack(A),g=this.opentui.symbols.createNativeSpanFeed(q?v(q):null);if(!g)throw Error("Failed to create stream");return Hg(g)}attachNativeSpanFeed(A){return this.opentui.symbols.attachNativeSpanFeed(A)}destroyNativeSpanFeed(A){this.opentui.symbols.destroyNativeSpanFeed(A),this.nativeSpanFeedHandlers.delete(Hg(A))}streamWrite(A,q){let g=typeof q==="string"?this.encoder.encode(q):q;return this.opentui.symbols.streamWrite(A,v(g),g.length)}streamCommit(A){return this.opentui.symbols.streamCommit(A)}streamDrainSpans(A,q,g){let E=this.opentui.symbols.streamDrainSpans(A,v(q),g);return Lg(E)}streamClose(A){return this.opentui.symbols.streamClose(A)}streamSetOptions(A,q){let g=wF.pack(q);return this.opentui.symbols.streamSetOptions(A,v(g))}streamGetStats(A){let q=new ArrayBuffer(yF.size);if(this.opentui.symbols.streamGetStats(A,v(q))!==0)return null;let E=yF.unpack(q);return{bytesWritten:typeof E.bytesWritten==="bigint"?E.bytesWritten:BigInt(E.bytesWritten),spansCommitted:typeof E.spansCommitted==="bigint"?E.spansCommitted:BigInt(E.spansCommitted),chunks:E.chunks,pendingSpans:E.pendingSpans}}streamReserve(A,q){let g=new ArrayBuffer(mF.size),E=this.opentui.symbols.streamReserve(A,q,v(g));if(E!==0)return{status:E,info:null};return{status:E,info:mF.unpack(g)}}streamCommitReserved(A,q){return this.opentui.symbols.streamCommitReserved(A,q)}createSyntaxStyle(){let A=this.opentui.symbols.createSyntaxStyle();if(!A)throw Error("Failed to create SyntaxStyle");return A}destroySyntaxStyle(A){this.opentui.symbols.destroySyntaxStyle(A)}syntaxStyleRegister(A,q,g,E,a){let F=this.encoder.encode(q),K=g?g.buffer:null,Z=E?E.buffer:null;return this.opentui.symbols.syntaxStyleRegister(A,F,F.length,K,Z,a)}syntaxStyleResolveByName(A,q){let g=this.encoder.encode(q),E=this.opentui.symbols.syntaxStyleResolveByName(A,g,g.length);return E===0?null:E}syntaxStyleGetStyleCount(A){let q=this.opentui.symbols.syntaxStyleGetStyleCount(A);return typeof q==="bigint"?Number(q):q}editorViewSetPlaceholderStyledText(A,q){let g=q.filter((a)=>a.text.length>0);if(g.length===0){this.opentui.symbols.editorViewSetPlaceholderStyledText(A,null,0);return}let E=hF.packList(g);this.opentui.symbols.editorViewSetPlaceholderStyledText(A,v(E),g.length)}editorViewSetTabIndicator(A,q){this.opentui.symbols.editorViewSetTabIndicator(A,q)}editorViewSetTabIndicatorColor(A,q){this.opentui.symbols.editorViewSetTabIndicatorColor(A,q.buffer)}onNativeEvent(A,q){this._nativeEvents.on(A,q)}onceNativeEvent(A,q){this._nativeEvents.once(A,q)}offNativeEvent(A,q){this._nativeEvents.off(A,q)}onAnyNativeEvent(A){this._anyEventHandlers.push(A)}}function PA(){if(!j6)try{j6=new fE(YK)}catch(A){throw Error(`Failed to initialize OpenTUI render library: ${A instanceof Error?A.message:"Unknown error"}`)}return j6}class xg{lib;bufferPtr;_length=0;_byteSize=0;_lineInfo;_destroyed=!1;_syntaxStyle;_textBytes;_memId;_appendedChunks=[];constructor(A,q){this.lib=A,this.bufferPtr=q}static create(A){return PA().createTextBuffer(A)}guard(){if(this._destroyed)throw Error("TextBuffer is destroyed")}setText(A){if(this.guard(),this._textBytes=this.lib.encoder.encode(A),this._memId===void 0)this._memId=this.lib.textBufferRegisterMemBuffer(this.bufferPtr,this._textBytes,!1);else this.lib.textBufferReplaceMemBuffer(this.bufferPtr,this._memId,this._textBytes,!1);this.lib.textBufferSetTextFromMem(this.bufferPtr,this._memId),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0,this._appendedChunks=[]}append(A){this.guard();let q=this.lib.encoder.encode(A);this._appendedChunks.push(q),this.lib.textBufferAppend(this.bufferPtr,q),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0}loadFile(A){if(this.guard(),!this.lib.textBufferLoadFile(this.bufferPtr,A))throw Error(`Failed to load file: ${A}`);this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0,this._textBytes=void 0}setStyledText(A){this.guard(),this.lib.textBufferSetStyledText(this.bufferPtr,A.chunks),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0}setDefaultFg(A){this.guard(),this.lib.textBufferSetDefaultFg(this.bufferPtr,A)}setDefaultBg(A){this.guard(),this.lib.textBufferSetDefaultBg(this.bufferPtr,A)}setDefaultAttributes(A){this.guard(),this.lib.textBufferSetDefaultAttributes(this.bufferPtr,A)}resetDefaults(){this.guard(),this.lib.textBufferResetDefaults(this.bufferPtr)}getLineCount(){return this.guard(),this.lib.textBufferGetLineCount(this.bufferPtr)}get length(){return this.guard(),this._length}get byteSize(){return this.guard(),this._byteSize}get ptr(){return this.guard(),this.bufferPtr}getPlainText(){if(this.guard(),this._byteSize===0)return"";let A=this.lib.getPlainTextBytes(this.bufferPtr,this._byteSize);if(!A)return"";return this.lib.decoder.decode(A)}getTextRange(A,q){if(this.guard(),A>=q)return"";if(this._byteSize===0)return"";let g=this.lib.textBufferGetTextRange(this.bufferPtr,A,q,this._byteSize);if(!g)return"";return this.lib.decoder.decode(g)}addHighlightByCharRange(A){this.guard(),this.lib.textBufferAddHighlightByCharRange(this.bufferPtr,A)}addHighlight(A,q){this.guard(),this.lib.textBufferAddHighlight(this.bufferPtr,A,q)}removeHighlightsByRef(A){this.guard(),this.lib.textBufferRemoveHighlightsByRef(this.bufferPtr,A)}clearLineHighlights(A){this.guard(),this.lib.textBufferClearLineHighlights(this.bufferPtr,A)}clearAllHighlights(){this.guard(),this.lib.textBufferClearAllHighlights(this.bufferPtr)}getLineHighlights(A){return this.guard(),this.lib.textBufferGetLineHighlights(this.bufferPtr,A)}getHighlightCount(){return this.guard(),this.lib.textBufferGetHighlightCount(this.bufferPtr)}setSyntaxStyle(A){this.guard(),this._syntaxStyle=A??void 0,this.lib.textBufferSetSyntaxStyle(this.bufferPtr,A?.ptr??null)}getSyntaxStyle(){return this.guard(),this._syntaxStyle??null}setTabWidth(A){this.guard(),this.lib.textBufferSetTabWidth(this.bufferPtr,A)}getTabWidth(){return this.guard(),this.lib.textBufferGetTabWidth(this.bufferPtr)}clear(){this.guard(),this.lib.textBufferClear(this.bufferPtr),this._length=0,this._byteSize=0,this._lineInfo=void 0,this._textBytes=void 0,this._appendedChunks=[]}reset(){this.guard(),this.lib.textBufferReset(this.bufferPtr),this._length=0,this._byteSize=0,this._lineInfo=void 0,this._textBytes=void 0,this._memId=void 0,this._appendedChunks=[]}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyTextBuffer(this.bufferPtr)}}function I_(A,q){if(typeof q.width==="number"){if(q.width<0)throw TypeError(`Invalid width for Renderable ${A}: ${q.width}`)}if(typeof q.height==="number"){if(q.height<0)throw TypeError(`Invalid height for Renderable ${A}: ${q.height}`)}}function eq(A){if(typeof A==="string"&&A.endsWith("%")){let q=A.slice(0,-1),g=parseFloat(q);return!Number.isNaN(g)}return!1}function XA(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return eq(A)}function IA(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;return eq(A)}function aq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return eq(A)}function T_(A){return A==="relative"||A==="absolute"}function P_(A){return A==="visible"||A==="hidden"||A==="scroll"}function F6(A){return aq(A)}function cF(A){if(A===void 0||A==="auto")return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return!1}function Xq(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return eq(A)}function sq(A){return!!A?.[MK]}function R_(A){return typeof A==="function"&&A.prototype&&OA.prototype.isPrototypeOf(A.prototype)}function LK(A){let q=[];for(let g of A)if(Array.isArray(g))q.push(...LK(g));else if(g!==null&&g!==void 0&&g!==!1)q.push(g);return q}function $K(A){return A&&A[x_]}function xE(A,q){if(sq(q))return q;if($K(q))return _6(A,q);return console.warn("maybeMakeRenderable received an invalid node",V_.inspect(q,{depth:2})),null}function RE(A,q){if(!q||Object.keys(q).length===0)return A;let g=new Map,E=(F)=>{if(g.has(F)){let Z=g.get(F);if(Z!==void 0)return Z}let K=A.findDescendantById(F);if(K)g.set(F,K);return K};return new Proxy(A,{get(F,K,Z){if(typeof K==="string"&&q[K]){let j=E(q[K]);if(j){let U=j[K];if(typeof U==="function")return U.bind(j);return U}}return Reflect.get(F,K,Z)},set(F,K,Z,j){if(typeof K==="string"&&q[K]){let U=E(q[K]);if(U)return Reflect.set(U,K,Z)}return Reflect.set(F,K,Z,j)}})}function _6(A,q){if(sq(q))return q;if(!q||typeof q!=="object")throw TypeError("mount() received an invalid vnode");let g=q,{type:E,props:a}=g,F=LK(g.children||[]),K=g.__delegateMap;if(R_(E)){let U=new E(A,a||{});for(let M of F)if(sq(M))U.add(M);else{let L=_6(A,M);U.add(L)}let O=RE(U,K),Q=g.__pendingCalls;if(Q)for(let M of Q)if(M.isProperty)O[M.method]=M.args[0];else O[M.method].apply(O,M.args);return O}let Z=E(a||{},F),j=_6(A,Z);return RE(j,K)}function _q(A,q){return{...A,...q}}function xA(A,q){let g=new Map;for(let E of A){let a=Oq(E);g.set(a,E)}for(let E of q){let a=Oq(E);g.set(a,E)}return Array.from(g.values())}function Oq(A){return`${A.name}:${A.ctrl?1:0}:${A.shift?1:0}:${A.meta?1:0}:${A.super?1:0}`}function RA(A,q){let g=new Map,E=q||{};for(let a of A){let F=Oq(a);g.set(F,a.action)}for(let a of A){let F=E[a.name]||a.name;if(F!==a.name){let K=Oq({...a,name:F});g.set(K,a.action)}}return g}function B_(A){let q=[];if(A.ctrl)q.push("ctrl");if(A.shift)q.push("shift");if(A.meta)q.push("meta");if(A.super)q.push("super");return q.push(A.name),q.join("+")}function C_(){let q=Error().stack?.split(`
20
- `).slice(5)||[];if(!q.length)return null;let g=q[0].trim(),E=/at\s+(?:([\w$.<>]+)\s+\()?((?:\/|[A-Za-z]:\\)[^:]+):(\d+):(\d+)\)?/,a=g.match(E);if(!a)return null;let F=a[1]||"<anonymous>",K=a[2],Z=K.split(/[\\/]/).pop()||"<unknown>",j=parseInt(a[3],10)||0,U=parseInt(a[4],10)||0;return{functionName:F,fullPath:K,fileName:Z,lineNumber:j,columnNumber:U}}function D_(A,q=new TextEncoder){let g=Buffer.from(A).toString("base64");return q.encode(g)}class VK{lib;rendererPtr;constructor(A,q){this.lib=A,this.rendererPtr=q}copyToClipboardOSC52(A,q=0){if(!this.isOsc52Supported())return!1;let g=D_(A,this.lib.encoder);return this.lib.copyToClipboardOSC52(this.rendererPtr,q,g)}clearClipboardOSC52(A=0){if(!this.isOsc52Supported())return!1;return this.lib.clearClipboardOSC52(this.rendererPtr,A)}isOsc52Supported(){let A=this.lib.getTerminalCapabilities(this.rendererPtr);return Boolean(A?.osc52)}}function xK(A,q,g="column",E=10,a=16){if(A.width<=0||A.height<=0)return[];if(q.length===0)return[];if(q.length<a)return q;let F=A.y-E,K=A.y+A.height+E,Z=A.x-E,j=A.x+A.width+E,U=g==="row",O=q,Q=O.length;if(Q===0)return[];let M=U?Z:F,L=U?j:K,$=0,V=Q-1,H=-1;while($<=V){let D=$+V>>1,N=O[D],h=U?N.x:N.y;if((U?N.x+N.width:N.y+N.height)<M)$=D+1;else if(h>L)V=D-1;else{H=D;break}}let X=[];if(H===-1)H=$>0?$-1:0;let T=50,x=H,z=0;while(x-1>=0){let D=O[x-1];if((U?D.x+D.width:D.y+D.height)<=M){if(z++,z>=T)break}else z=0;x--}let m=H+1;while(m<Q){let D=O[m];if((U?D.x:D.y)>=L)break;m++}for(let D=x;D<m;D++){let N=O[D],h=U?N.x:N.y;if((U?N.x+N.width:N.y+N.height)<=M)continue;if(h>=L)break;if(U){if(N.y+N.height<F)continue;if(N.y>K)continue}else{if(N.x+N.width<Z)continue;if(N.x>j)continue}X.push(N)}if(X.length>1)X.sort((D,N)=>D.zIndex>N.zIndex?1:D.zIndex<N.zIndex?-1:0);return X}function y_(A){if(/\x1b\[\?\d+(?:;\d+)*\$y/.test(A))return!0;if(/\x1b\[1;(?!1R)\d+R/.test(A))return!0;if(/\x1bP>\|[\s\S]*?\x1b\\/.test(A))return!0;if(/\x1b_G[\s\S]*?\x1b\\/.test(A))return!0;if(/\x1b\[\?\d+(?:;\d+)?u/.test(A))return!0;if(/\x1b\[\?[0-9;]*c/.test(A))return!0;return!1}function m_(A){return/\x1b\[4;\d+;\d+t/.test(A)}function b_(A){let q=A.match(/\x1b\[4;(\d+);(\d+)t/);if(q)return{width:parseInt(q[2]),height:parseInt(q[1])};return null}function WK(A){if(!A)return 0;let q=0;if(A.disambiguate!==!1)q|=RK;if(A.alternateKeys!==!1)q|=NK;if(A.events===!0)q|=v_;if(A.allKeysAsEscapes===!0)q|=p_;if(A.reportText===!0)q|=f_;return q}class YA{type;button;x;y;source;modifiers;scroll;target;isDragging;_propagationStopped=!1;_defaultPrevented=!1;get propagationStopped(){return this._propagationStopped}get defaultPrevented(){return this._defaultPrevented}constructor(A,q){this.target=A,this.type=q.type,this.button=q.button,this.x=q.x,this.y=q.y,this.modifiers=q.modifiers,this.scroll=q.scroll,this.source=q.source,this.isDragging=q.isDragging}stopPropagation(){this._propagationStopped=!0}preventDefault(){this._defaultPrevented=!0}}async function uE(A={}){if(process.argv.includes("--delay-start"))await new Promise((Q)=>setTimeout(Q,5000));let q=A.stdin||process.stdin,g=A.stdout||process.stdout,E=g.columns||80,a=g.rows||24,F=A.experimental_splitHeight&&A.experimental_splitHeight>0?A.experimental_splitHeight:a,K=PA(),Z=K.createRenderer(E,F,{remote:A.remote??!1,testing:A.testing??!1});if(!Z)throw Error("Failed to create renderer");if(A.useThread===void 0)A.useThread=!0;if(process.platform==="linux")A.useThread=!1;K.setUseThread(Z,A.useThread);let j=A.useKittyKeyboard??{},U=WK(j);K.setKittyKeyboardFlags(Z,U);let O=new H6(K,Z,q,g,E,a,A);if(!A.testing)await O.setupTerminal();return O}var tZ,uZ=(A)=>A,sZ=(A,q)=>{for(var g in q)tZ(A,g,{get:q[g],enumerable:!0,configurable:!0,set:lZ.bind(q,g)})},fF,iZ,rZ,i,GE,QE,lq,Tq,p,hq,dF,hA,cA,MA,Sq,SA,YE,Fq,Kq,bA,jq,nZ,oZ,AU,O6,tF,$g,WE,SE,zE,QF,gU,EU,aU,FU,KU,jU,ZU,lF,EE,tA,sF,iF,nq,nF=(A)=>(q)=>_U(q,{fg:A}),YF,GU,QU,JU,HU,eF,LU,$U=(A)=>{return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(A)},XU=(A)=>{return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(A)},IU,ME=(A="",q={})=>{let g;if(OU.isBuffer(A))if(A[0]>127&&A[1]===void 0)A[0]-=128,A="\x1B"+String(A);else A=String(A);else if(A!==void 0&&typeof A!=="string")A=String(A);else if(!A)A="";if(/^\x1b\[<\d+;\d+;\d+[Mm]$/.test(A))return null;if(/^\[<\d+;\d+;\d+[Mm]$/.test(A))return null;if(/^\x1b\[<[\d;]*$/.test(A))return null;if(/^\[<[\d;]*$/.test(A))return null;if(A.startsWith("\x1B[M")&&A.length>=6)return null;if(/^\x1b\[\d+;\d+;\d+t$/.test(A))return null;if(/^\x1b\[\d+;\d+R$/.test(A))return null;if(/^\x1b\[\?[\d;]+c$/.test(A))return null;if(/^\x1b\[\?[\d;]+\$y$/.test(A))return null;if(A==="\x1B[I"||A==="\x1B[O")return null;if(/^\x1b\][\d;].*(\x1b\\|\x07)$/.test(A))return null;if(A==="\x1B[200~"||A==="\x1B[201~")return null;let E={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"raw"};if(E.sequence=E.sequence||A||E.name,q.useKittyKeyboard){let F=MU(A);if(F)return F}let a=IU.exec(A);if(a){let F=parseInt(a[1],10)-1,K=parseInt(a[2],10);if(E.ctrl=!!(F&4),E.meta=!!(F&2),E.shift=!!(F&1),E.option=!!(F&2),E.super=!!(F&8),E.hyper=!!(F&16),K===13)E.name="return";else if(K===27)E.name="escape";else if(K===9)E.name="tab";else if(K===32)E.name="space";else if(K===127||K===8)E.name="backspace";else{let Z=String.fromCharCode(K);if(E.name=Z,E.sequence=Z,K>=48&&K<=57)E.number=!0}return E}if(A==="\r"||A==="\x1B\r")E.name="return",E.meta=A.length===2;else if(A===`
19
+ `);console.log(F);try{let j=`ffi_otui_trace_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;Bun.write(j,F)}catch(K){console.error("Failed to write FFI trace file:",K)}}});return q}class fE{opentui;encoder=new TextEncoder;decoder=new TextDecoder;logCallbackWrapper;eventCallbackWrapper;_nativeEvents=new E_;_anyEventHandlers=[];nativeSpanFeedCallbackWrapper=null;nativeSpanFeedHandlers=new Map;constructor(A){this.opentui=$_(A),this.setupLogging(),this.setupEventBus()}setupLogging(){if(this.logCallbackWrapper)return;let A=new ZE((q,g,E)=>{try{let a=typeof E==="bigint"?Number(E):E;if(a===0||!g)return;let F=Jg(g,0,a),K=new Uint8Array(F),Z=this.decoder.decode(K);switch(q){case 0:console.error(Z);break;case 1:console.warn(Z);break;case 2:console.info(Z);break;case 3:console.debug(Z);break;default:console.log(Z)}}catch(a){console.error("Error in Zig log callback:",a)}},{args:["u8","ptr","usize"],returns:"void"});if(this.logCallbackWrapper=A,!A.ptr)throw Error("Failed to create log callback");this.setLogCallback(A.ptr)}setLogCallback(A){this.opentui.symbols.setLogCallback(A)}setupEventBus(){if(this.eventCallbackWrapper)return;let A=new ZE((q,g,E,a)=>{try{let F=typeof g==="bigint"?Number(g):g,K=typeof a==="bigint"?Number(a):a;if(F===0||!q)return;let Z=Jg(q,0,F),j=new Uint8Array(Z),U=this.decoder.decode(j),O;if(K>0&&E)O=Jg(E,0,K).slice();else O=new ArrayBuffer(0);queueMicrotask(()=>{this._nativeEvents.emit(U,O);for(let Q of this._anyEventHandlers)Q(U,O)})}catch(F){console.error("Error in native event callback:",F)}},{args:["ptr","usize","ptr","usize"],returns:"void"});if(this.eventCallbackWrapper=A,!A.ptr)throw Error("Failed to create event callback");this.setEventCallback(A.ptr)}ensureNativeSpanFeedCallback(){if(this.nativeSpanFeedCallbackWrapper)return this.nativeSpanFeedCallbackWrapper;let A=new ZE((q,g,E,a)=>{let F=this.nativeSpanFeedHandlers.get(Hg(q));if(F)F(g,E,a)},{args:["ptr","u32","ptr","u64"],returns:"void"});if(this.nativeSpanFeedCallbackWrapper=A,!A.ptr)throw Error("Failed to create native span feed callback");return A}setEventCallback(A){this.opentui.symbols.setEventCallback(A)}createRenderer(A,q,g={}){let E=g.testing??!1,a=g.remote??!1;return this.opentui.symbols.createRenderer(A,q,E,a)}setTerminalEnvVar(A,q,g){let E=this.encoder.encode(q),a=this.encoder.encode(g);return this.opentui.symbols.setTerminalEnvVar(A,E,E.length,a,a.length)}destroyRenderer(A){this.opentui.symbols.destroyRenderer(A)}setUseThread(A,q){this.opentui.symbols.setUseThread(A,q)}setBackgroundColor(A,q){this.opentui.symbols.setBackgroundColor(A,q.buffer)}setRenderOffset(A,q){this.opentui.symbols.setRenderOffset(A,q)}updateStats(A,q,g,E){this.opentui.symbols.updateStats(A,q,g,E)}updateMemoryStats(A,q,g,E){this.opentui.symbols.updateMemoryStats(A,q,g,E)}getNextBuffer(A){let q=this.opentui.symbols.getNextBuffer(A);if(!q)throw Error("Failed to get next buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new Zq(this,q,g,E,{id:"next buffer",widthMethod:"unicode"})}getCurrentBuffer(A){let q=this.opentui.symbols.getCurrentBuffer(A);if(!q)throw Error("Failed to get current buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new Zq(this,q,g,E,{id:"current buffer",widthMethod:"unicode"})}bufferGetCharPtr(A){let q=this.opentui.symbols.bufferGetCharPtr(A);if(!q)throw Error("Failed to get char pointer");return q}bufferGetFgPtr(A){let q=this.opentui.symbols.bufferGetFgPtr(A);if(!q)throw Error("Failed to get fg pointer");return q}bufferGetBgPtr(A){let q=this.opentui.symbols.bufferGetBgPtr(A);if(!q)throw Error("Failed to get bg pointer");return q}bufferGetAttributesPtr(A){let q=this.opentui.symbols.bufferGetAttributesPtr(A);if(!q)throw Error("Failed to get attributes pointer");return q}bufferGetRespectAlpha(A){return this.opentui.symbols.bufferGetRespectAlpha(A)}bufferSetRespectAlpha(A,q){this.opentui.symbols.bufferSetRespectAlpha(A,q)}bufferGetId(A){let g=new Uint8Array(256),E=this.opentui.symbols.bufferGetId(A,g,256),a=typeof E==="bigint"?Number(E):E;return this.decoder.decode(g.slice(0,a))}bufferGetRealCharSize(A){return this.opentui.symbols.bufferGetRealCharSize(A)}bufferWriteResolvedChars(A,q,g){let E=this.opentui.symbols.bufferWriteResolvedChars(A,q,q.length,g);return typeof E==="bigint"?Number(E):E}getBufferWidth(A){return this.opentui.symbols.getBufferWidth(A)}getBufferHeight(A){return this.opentui.symbols.getBufferHeight(A)}bufferClear(A,q){this.opentui.symbols.bufferClear(A,q.buffer)}bufferDrawText(A,q,g,E,a,F,K){let Z=this.encoder.encode(q),j=Z.byteLength,U=F?F.buffer:null,O=a.buffer;this.opentui.symbols.bufferDrawText(A,Z,j,g,E,O,U,K??0)}bufferSetCellWithAlphaBlending(A,q,g,E,a,F,K){let Z=E.codePointAt(0)??" ".codePointAt(0),j=F.buffer,U=a.buffer;this.opentui.symbols.bufferSetCellWithAlphaBlending(A,q,g,Z,U,j,K??0)}bufferSetCell(A,q,g,E,a,F,K){let Z=E.codePointAt(0)??" ".codePointAt(0),j=F.buffer,U=a.buffer;this.opentui.symbols.bufferSetCell(A,q,g,Z,U,j,K??0)}bufferFillRect(A,q,g,E,a,F){let K=F.buffer;this.opentui.symbols.bufferFillRect(A,q,g,E,a,K)}bufferDrawSuperSampleBuffer(A,q,g,E,a,F,K){let Z=F==="bgra8unorm"?0:1;this.opentui.symbols.bufferDrawSuperSampleBuffer(A,q,g,E,a,Z,K)}bufferDrawPackedBuffer(A,q,g,E,a,F,K){this.opentui.symbols.bufferDrawPackedBuffer(A,q,g,E,a,F,K)}bufferDrawGrayscaleBuffer(A,q,g,E,a,F,K,Z){this.opentui.symbols.bufferDrawGrayscaleBuffer(A,q,g,E,a,F,K?.buffer??null,Z?.buffer??null)}bufferDrawGrayscaleBufferSupersampled(A,q,g,E,a,F,K,Z){this.opentui.symbols.bufferDrawGrayscaleBufferSupersampled(A,q,g,E,a,F,K?.buffer??null,Z?.buffer??null)}bufferDrawGrid(A,q,g,E,a,F,K,Z,j){let U=Q_.pack({drawInner:j.drawInner,drawOuter:j.drawOuter});this.opentui.symbols.bufferDrawGrid(A,q,g.buffer,E.buffer,a,F,K,Z,v(U))}bufferDrawBox(A,q,g,E,a,F,K,Z,j,U){let O=U?this.encoder.encode(U):null,Q=U?O.length:0,M=U?O:null;this.opentui.symbols.bufferDrawBox(A,q,g,E,a,F,K,Z.buffer,j.buffer,M,Q)}bufferResize(A,q,g){this.opentui.symbols.bufferResize(A,q,g)}linkAlloc(A){let q=this.encoder.encode(A);return this.opentui.symbols.linkAlloc(q,q.length)}linkGetUrl(A,q=512){let g=new Uint8Array(q),E=this.opentui.symbols.linkGetUrl(A,g,q);return this.decoder.decode(g.slice(0,E))}attributesWithLink(A,q){return this.opentui.symbols.attributesWithLink(A,q)}attributesGetLinkId(A){return this.opentui.symbols.attributesGetLinkId(A)}resizeRenderer(A,q,g){this.opentui.symbols.resizeRenderer(A,q,g)}setCursorPosition(A,q,g,E){this.opentui.symbols.setCursorPosition(A,q,g,E)}setCursorColor(A,q){this.opentui.symbols.setCursorColor(A,q.buffer)}getCursorState(A){let q=new ArrayBuffer(CF.size);this.opentui.symbols.getCursorState(A,v(q));let g=CF.unpack(q);return{x:g.x,y:g.y,visible:g.visible,style:H_[g.style]??"block",blinking:g.blinking,color:AA.fromValues(g.r,g.g,g.b,g.a)}}setCursorStyleOptions(A,q){let g=q.style!=null?J_[q.style]:255,E=q.blinking!=null?q.blinking?1:0:255,a=q.cursor!=null?L_[q.cursor]:255,F=G_.pack({style:g,blinking:E,color:q.color,cursor:a});this.opentui.symbols.setCursorStyleOptions(A,v(F))}render(A,q){this.opentui.symbols.render(A,q)}createOptimizedBuffer(A,q,g,E=!1,a){if(Number.isNaN(A)||Number.isNaN(q))console.error(Error(`Invalid dimensions for OptimizedBuffer: ${A}x${q}`).stack);let F=g==="wcwidth"?0:1,K=a||"unnamed buffer",Z=this.encoder.encode(K),j=this.opentui.symbols.createOptimizedBuffer(A,q,E,F,Z,Z.length);if(!j)throw Error(`Failed to create optimized buffer: ${A}x${q}`);return new Zq(this,j,A,q,{respectAlpha:E,id:a,widthMethod:g})}destroyOptimizedBuffer(A){this.opentui.symbols.destroyOptimizedBuffer(A)}drawFrameBuffer(A,q,g,E,a,F,K,Z){let j=a??0,U=F??0,O=K??0,Q=Z??0;this.opentui.symbols.drawFrameBuffer(A,q,g,E,j,U,O,Q)}setDebugOverlay(A,q,g){this.opentui.symbols.setDebugOverlay(A,q,g)}clearTerminal(A){this.opentui.symbols.clearTerminal(A)}setTerminalTitle(A,q){let g=this.encoder.encode(q);this.opentui.symbols.setTerminalTitle(A,g,g.length)}copyToClipboardOSC52(A,q,g){return this.opentui.symbols.copyToClipboardOSC52(A,q,g,g.length)}clearClipboardOSC52(A,q){return this.opentui.symbols.clearClipboardOSC52(A,q)}addToHitGrid(A,q,g,E,a,F){this.opentui.symbols.addToHitGrid(A,q,g,E,a,F)}clearCurrentHitGrid(A){this.opentui.symbols.clearCurrentHitGrid(A)}hitGridPushScissorRect(A,q,g,E,a){this.opentui.symbols.hitGridPushScissorRect(A,q,g,E,a)}hitGridPopScissorRect(A){this.opentui.symbols.hitGridPopScissorRect(A)}hitGridClearScissorRects(A){this.opentui.symbols.hitGridClearScissorRects(A)}addToCurrentHitGridClipped(A,q,g,E,a,F){this.opentui.symbols.addToCurrentHitGridClipped(A,q,g,E,a,F)}checkHit(A,q,g){return this.opentui.symbols.checkHit(A,q,g)}getHitGridDirty(A){return this.opentui.symbols.getHitGridDirty(A)}dumpHitGrid(A){this.opentui.symbols.dumpHitGrid(A)}dumpBuffers(A,q){let g=q??Date.now();this.opentui.symbols.dumpBuffers(A,g)}dumpStdoutBuffer(A,q){let g=q??Date.now();this.opentui.symbols.dumpStdoutBuffer(A,g)}restoreTerminalModes(A){this.opentui.symbols.restoreTerminalModes(A)}enableMouse(A,q){this.opentui.symbols.enableMouse(A,q)}disableMouse(A){this.opentui.symbols.disableMouse(A)}enableKittyKeyboard(A,q){this.opentui.symbols.enableKittyKeyboard(A,q)}disableKittyKeyboard(A){this.opentui.symbols.disableKittyKeyboard(A)}setKittyKeyboardFlags(A,q){this.opentui.symbols.setKittyKeyboardFlags(A,q)}getKittyKeyboardFlags(A){return this.opentui.symbols.getKittyKeyboardFlags(A)}setupTerminal(A,q){this.opentui.symbols.setupTerminal(A,q)}suspendRenderer(A){this.opentui.symbols.suspendRenderer(A)}resumeRenderer(A){this.opentui.symbols.resumeRenderer(A)}queryPixelResolution(A){this.opentui.symbols.queryPixelResolution(A)}writeOut(A,q){let g=typeof q==="string"?new TextEncoder().encode(q):q;if(g.length===0)return;this.opentui.symbols.writeOut(A,v(g),g.length)}createTextBuffer(A){let q=A==="wcwidth"?0:1,g=this.opentui.symbols.createTextBuffer(q);if(!g)throw Error("Failed to create TextBuffer");return new xg(this,g)}destroyTextBuffer(A){this.opentui.symbols.destroyTextBuffer(A)}textBufferGetLength(A){return this.opentui.symbols.textBufferGetLength(A)}textBufferGetByteSize(A){return this.opentui.symbols.textBufferGetByteSize(A)}textBufferReset(A){this.opentui.symbols.textBufferReset(A)}textBufferClear(A){this.opentui.symbols.textBufferClear(A)}textBufferSetDefaultFg(A,q){let g=q?q.buffer:null;this.opentui.symbols.textBufferSetDefaultFg(A,g)}textBufferSetDefaultBg(A,q){let g=q?q.buffer:null;this.opentui.symbols.textBufferSetDefaultBg(A,g)}textBufferSetDefaultAttributes(A,q){let g=q===null?null:new Uint8Array([q]);this.opentui.symbols.textBufferSetDefaultAttributes(A,g)}textBufferResetDefaults(A){this.opentui.symbols.textBufferResetDefaults(A)}textBufferGetTabWidth(A){return this.opentui.symbols.textBufferGetTabWidth(A)}textBufferSetTabWidth(A,q){this.opentui.symbols.textBufferSetTabWidth(A,q)}textBufferRegisterMemBuffer(A,q,g=!1){let E=this.opentui.symbols.textBufferRegisterMemBuffer(A,q,q.length,g);if(E===65535)throw Error("Failed to register memory buffer");return E}textBufferReplaceMemBuffer(A,q,g,E=!1){return this.opentui.symbols.textBufferReplaceMemBuffer(A,q,g,g.length,E)}textBufferClearMemRegistry(A){this.opentui.symbols.textBufferClearMemRegistry(A)}textBufferSetTextFromMem(A,q){this.opentui.symbols.textBufferSetTextFromMem(A,q)}textBufferAppend(A,q){this.opentui.symbols.textBufferAppend(A,q,q.length)}textBufferAppendFromMemId(A,q){this.opentui.symbols.textBufferAppendFromMemId(A,q)}textBufferLoadFile(A,q){let g=this.encoder.encode(q);return this.opentui.symbols.textBufferLoadFile(A,g,g.length)}textBufferSetStyledText(A,q){if(q.length===0){this.textBufferClear(A);return}let g=hF.packList(q);this.opentui.symbols.textBufferSetStyledText(A,v(g),q.length)}textBufferGetLineCount(A){return this.opentui.symbols.textBufferGetLineCount(A)}textBufferGetPlainText(A,q,g){let E=this.opentui.symbols.textBufferGetPlainText(A,q,g);return typeof E==="bigint"?Number(E):E}getPlainTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferGetPlainText(A,v(g),q);if(E===0)return null;return g.slice(0,E)}textBufferGetTextRange(A,q,g,E){let a=new Uint8Array(E),F=this.opentui.symbols.textBufferGetTextRange(A,q,g,v(a),E),K=typeof F==="bigint"?Number(F):F;if(K===0)return null;return a.slice(0,K)}textBufferGetTextRangeByCoords(A,q,g,E,a,F){let K=new Uint8Array(F),Z=this.opentui.symbols.textBufferGetTextRangeByCoords(A,q,g,E,a,v(K),F),j=typeof Z==="bigint"?Number(Z):Z;if(j===0)return null;return K.slice(0,j)}createTextBufferView(A){let q=this.opentui.symbols.createTextBufferView(A);if(!q)throw Error("Failed to create TextBufferView");return q}destroyTextBufferView(A){this.opentui.symbols.destroyTextBufferView(A)}textBufferViewSetSelection(A,q,g,E,a){let F=E?E.buffer:null,K=a?a.buffer:null;this.opentui.symbols.textBufferViewSetSelection(A,q,g,F,K)}textBufferViewResetSelection(A){this.opentui.symbols.textBufferViewResetSelection(A)}textBufferViewGetSelection(A){let q=this.textBufferViewGetSelectionInfo(A);if(q===0xffff_ffff_ffff_ffffn)return null;let g=Number(q>>32n),E=Number(q&0xffff_ffffn);return{start:g,end:E}}textBufferViewGetSelectionInfo(A){return this.opentui.symbols.textBufferViewGetSelectionInfo(A)}textBufferViewSetLocalSelection(A,q,g,E,a,F,K){let Z=F?F.buffer:null,j=K?K.buffer:null;return this.opentui.symbols.textBufferViewSetLocalSelection(A,q,g,E,a,Z,j)}textBufferViewUpdateSelection(A,q,g,E){let a=g?g.buffer:null,F=E?E.buffer:null;this.opentui.symbols.textBufferViewUpdateSelection(A,q,a,F)}textBufferViewUpdateLocalSelection(A,q,g,E,a,F,K){let Z=F?F.buffer:null,j=K?K.buffer:null;return this.opentui.symbols.textBufferViewUpdateLocalSelection(A,q,g,E,a,Z,j)}textBufferViewResetLocalSelection(A){this.opentui.symbols.textBufferViewResetLocalSelection(A)}textBufferViewSetWrapWidth(A,q){this.opentui.symbols.textBufferViewSetWrapWidth(A,q)}textBufferViewSetWrapMode(A,q){let g=q==="none"?0:q==="char"?1:2;this.opentui.symbols.textBufferViewSetWrapMode(A,g)}textBufferViewSetViewportSize(A,q,g){this.opentui.symbols.textBufferViewSetViewportSize(A,q,g)}textBufferViewSetViewport(A,q,g,E,a){this.opentui.symbols.textBufferViewSetViewport(A,q,g,E,a)}textBufferViewGetLineInfo(A){let q=new ArrayBuffer($q.size);this.textBufferViewGetLineInfoDirect(A,v(q));let g=$q.unpack(q),E=g.startCols,a=g.widthCols,F=g.widthColsMax;return{lineStartCols:E,lineWidthCols:a,lineWidthColsMax:F,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetLogicalLineInfo(A){let q=new ArrayBuffer($q.size);this.textBufferViewGetLogicalLineInfoDirect(A,v(q));let g=$q.unpack(q),E=g.startCols,a=g.widthCols,F=g.widthColsMax;return{lineStartCols:E,lineWidthCols:a,lineWidthColsMax:F,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetVirtualLineCount(A){return this.opentui.symbols.textBufferViewGetVirtualLineCount(A)}textBufferViewGetLineInfoDirect(A,q){this.opentui.symbols.textBufferViewGetLineInfoDirect(A,q)}textBufferViewGetLogicalLineInfoDirect(A,q){this.opentui.symbols.textBufferViewGetLogicalLineInfoDirect(A,q)}textBufferViewGetSelectedText(A,q,g){let E=this.opentui.symbols.textBufferViewGetSelectedText(A,q,g);return typeof E==="bigint"?Number(E):E}textBufferViewGetPlainText(A,q,g){let E=this.opentui.symbols.textBufferViewGetPlainText(A,q,g);return typeof E==="bigint"?Number(E):E}textBufferViewGetSelectedTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferViewGetSelectedText(A,v(g),q);if(E===0)return null;return g.slice(0,E)}textBufferViewGetPlainTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferViewGetPlainText(A,v(g),q);if(E===0)return null;return g.slice(0,E)}textBufferViewSetTabIndicator(A,q){this.opentui.symbols.textBufferViewSetTabIndicator(A,q)}textBufferViewSetTabIndicatorColor(A,q){this.opentui.symbols.textBufferViewSetTabIndicatorColor(A,q.buffer)}textBufferViewSetTruncate(A,q){this.opentui.symbols.textBufferViewSetTruncate(A,q)}textBufferViewMeasureForDimensions(A,q,g){let E=new ArrayBuffer(BF.size),a=v(new Uint8Array(E));if(!this.opentui.symbols.textBufferViewMeasureForDimensions(A,q,g,a))return null;return BF.unpack(E)}textBufferAddHighlightByCharRange(A,q){let g=E6.pack(q);this.opentui.symbols.textBufferAddHighlightByCharRange(A,v(g))}textBufferAddHighlight(A,q,g){let E=E6.pack(g);this.opentui.symbols.textBufferAddHighlight(A,q,v(E))}textBufferRemoveHighlightsByRef(A,q){this.opentui.symbols.textBufferRemoveHighlightsByRef(A,q)}textBufferClearLineHighlights(A,q){this.opentui.symbols.textBufferClearLineHighlights(A,q)}textBufferClearAllHighlights(A){this.opentui.symbols.textBufferClearAllHighlights(A)}textBufferSetSyntaxStyle(A,q){this.opentui.symbols.textBufferSetSyntaxStyle(A,q)}textBufferGetLineHighlights(A,q){let g=new BigUint64Array(1),E=this.opentui.symbols.textBufferGetLineHighlightsPtr(A,q,v(g));if(!E)return[];let a=Number(g[0]),F=a*E6.size,K=Jg(E,0,F),Z=E6.unpackList(K,a);return this.opentui.symbols.textBufferFreeLineHighlights(E,a),Z}textBufferGetHighlightCount(A){return this.opentui.symbols.textBufferGetHighlightCount(A)}getArenaAllocatedBytes(){let A=this.opentui.symbols.getArenaAllocatedBytes();return typeof A==="bigint"?Number(A):A}getBuildOptions(){let A=new ArrayBuffer(kF.size);this.opentui.symbols.getBuildOptions(v(A));let q=kF.unpack(A);return{gpaSafeStats:!!q.gpaSafeStats,gpaMemoryLimitTracking:!!q.gpaMemoryLimitTracking}}getAllocatorStats(){let A=new ArrayBuffer(DF.size);this.opentui.symbols.getAllocatorStats(v(A));let q=DF.unpack(A);return{totalRequestedBytes:Lg(q.totalRequestedBytes),activeAllocations:Lg(q.activeAllocations),smallAllocations:Lg(q.smallAllocations),largeAllocations:Lg(q.largeAllocations),requestedBytesValid:!!q.requestedBytesValid}}bufferDrawTextBufferView(A,q,g,E){this.opentui.symbols.bufferDrawTextBufferView(A,q,g,E)}bufferDrawEditorView(A,q,g,E){this.opentui.symbols.bufferDrawEditorView(A,q,g,E)}createEditorView(A,q,g){let E=this.opentui.symbols.createEditorView(A,q,g);if(!E)throw Error("Failed to create EditorView");return E}destroyEditorView(A){this.opentui.symbols.destroyEditorView(A)}editorViewSetViewportSize(A,q,g){this.opentui.symbols.editorViewSetViewportSize(A,q,g)}editorViewSetViewport(A,q,g,E,a,F){this.opentui.symbols.editorViewSetViewport(A,q,g,E,a,F)}editorViewGetViewport(A){let q=new Uint32Array(1),g=new Uint32Array(1),E=new Uint32Array(1),a=new Uint32Array(1);return this.opentui.symbols.editorViewGetViewport(A,v(q),v(g),v(E),v(a)),{offsetX:q[0],offsetY:g[0],width:E[0],height:a[0]}}editorViewSetScrollMargin(A,q){this.opentui.symbols.editorViewSetScrollMargin(A,q)}editorViewSetWrapMode(A,q){let g=q==="none"?0:q==="char"?1:2;this.opentui.symbols.editorViewSetWrapMode(A,g)}editorViewGetVirtualLineCount(A){return this.opentui.symbols.editorViewGetVirtualLineCount(A)}editorViewGetTotalVirtualLineCount(A){return this.opentui.symbols.editorViewGetTotalVirtualLineCount(A)}editorViewGetTextBufferView(A){let q=this.opentui.symbols.editorViewGetTextBufferView(A);if(!q)throw Error("Failed to get TextBufferView from EditorView");return q}editorViewGetLineInfo(A){let q=new ArrayBuffer($q.size);this.opentui.symbols.editorViewGetLineInfoDirect(A,v(q));let g=$q.unpack(q),E=g.startCols,a=g.widthCols,F=g.widthColsMax;return{lineStartCols:E,lineWidthCols:a,lineWidthColsMax:F,lineSources:g.sources,lineWraps:g.wraps}}editorViewGetLogicalLineInfo(A){let q=new ArrayBuffer($q.size);this.opentui.symbols.editorViewGetLogicalLineInfoDirect(A,v(q));let g=$q.unpack(q),E=g.startCols,a=g.widthCols,F=g.widthColsMax;return{lineStartCols:E,lineWidthCols:a,lineWidthColsMax:F,lineSources:g.sources,lineWraps:g.wraps}}createEditBuffer(A){let q=A==="wcwidth"?0:1,g=this.opentui.symbols.createEditBuffer(q);if(!g)throw Error("Failed to create EditBuffer");return g}destroyEditBuffer(A){this.opentui.symbols.destroyEditBuffer(A)}editBufferSetText(A,q){this.opentui.symbols.editBufferSetText(A,q,q.length)}editBufferSetTextFromMem(A,q){this.opentui.symbols.editBufferSetTextFromMem(A,q)}editBufferReplaceText(A,q){this.opentui.symbols.editBufferReplaceText(A,q,q.length)}editBufferReplaceTextFromMem(A,q){this.opentui.symbols.editBufferReplaceTextFromMem(A,q)}editBufferGetText(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferGetText(A,v(g),q),a=typeof E==="bigint"?Number(E):E;if(a===0)return null;return g.slice(0,a)}editBufferInsertChar(A,q){let g=this.encoder.encode(q);this.opentui.symbols.editBufferInsertChar(A,g,g.length)}editBufferInsertText(A,q){let g=this.encoder.encode(q);this.opentui.symbols.editBufferInsertText(A,g,g.length)}editBufferDeleteChar(A){this.opentui.symbols.editBufferDeleteChar(A)}editBufferDeleteCharBackward(A){this.opentui.symbols.editBufferDeleteCharBackward(A)}editBufferDeleteRange(A,q,g,E,a){this.opentui.symbols.editBufferDeleteRange(A,q,g,E,a)}editBufferNewLine(A){this.opentui.symbols.editBufferNewLine(A)}editBufferDeleteLine(A){this.opentui.symbols.editBufferDeleteLine(A)}editBufferMoveCursorLeft(A){this.opentui.symbols.editBufferMoveCursorLeft(A)}editBufferMoveCursorRight(A){this.opentui.symbols.editBufferMoveCursorRight(A)}editBufferMoveCursorUp(A){this.opentui.symbols.editBufferMoveCursorUp(A)}editBufferMoveCursorDown(A){this.opentui.symbols.editBufferMoveCursorDown(A)}editBufferGotoLine(A,q){this.opentui.symbols.editBufferGotoLine(A,q)}editBufferSetCursor(A,q,g){this.opentui.symbols.editBufferSetCursor(A,q,g)}editBufferSetCursorToLineCol(A,q,g){this.opentui.symbols.editBufferSetCursorToLineCol(A,q,g)}editBufferSetCursorByOffset(A,q){this.opentui.symbols.editBufferSetCursorByOffset(A,q)}editBufferGetCursorPosition(A){let q=new ArrayBuffer(dA.size);return this.opentui.symbols.editBufferGetCursorPosition(A,v(q)),dA.unpack(q)}editBufferGetId(A){return this.opentui.symbols.editBufferGetId(A)}editBufferGetTextBuffer(A){let q=this.opentui.symbols.editBufferGetTextBuffer(A);if(!q)throw Error("Failed to get TextBuffer from EditBuffer");return q}editBufferDebugLogRope(A){this.opentui.symbols.editBufferDebugLogRope(A)}editBufferUndo(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferUndo(A,v(g),q),a=typeof E==="bigint"?Number(E):E;if(a===0)return null;return g.slice(0,a)}editBufferRedo(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferRedo(A,v(g),q),a=typeof E==="bigint"?Number(E):E;if(a===0)return null;return g.slice(0,a)}editBufferCanUndo(A){return this.opentui.symbols.editBufferCanUndo(A)}editBufferCanRedo(A){return this.opentui.symbols.editBufferCanRedo(A)}editBufferClearHistory(A){this.opentui.symbols.editBufferClearHistory(A)}editBufferClear(A){this.opentui.symbols.editBufferClear(A)}editBufferGetNextWordBoundary(A){let q=new ArrayBuffer(dA.size);return this.opentui.symbols.editBufferGetNextWordBoundary(A,v(q)),dA.unpack(q)}editBufferGetPrevWordBoundary(A){let q=new ArrayBuffer(dA.size);return this.opentui.symbols.editBufferGetPrevWordBoundary(A,v(q)),dA.unpack(q)}editBufferGetEOL(A){let q=new ArrayBuffer(dA.size);return this.opentui.symbols.editBufferGetEOL(A,v(q)),dA.unpack(q)}editBufferOffsetToPosition(A,q){let g=new ArrayBuffer(dA.size);if(!this.opentui.symbols.editBufferOffsetToPosition(A,q,v(g)))return null;return dA.unpack(g)}editBufferPositionToOffset(A,q,g){return this.opentui.symbols.editBufferPositionToOffset(A,q,g)}editBufferGetLineStartOffset(A,q){return this.opentui.symbols.editBufferGetLineStartOffset(A,q)}editBufferGetTextRange(A,q,g,E){let a=new Uint8Array(E),F=this.opentui.symbols.editBufferGetTextRange(A,q,g,v(a),E),K=typeof F==="bigint"?Number(F):F;if(K===0)return null;return a.slice(0,K)}editBufferGetTextRangeByCoords(A,q,g,E,a,F){let K=new Uint8Array(F),Z=this.opentui.symbols.editBufferGetTextRangeByCoords(A,q,g,E,a,v(K),F),j=typeof Z==="bigint"?Number(Z):Z;if(j===0)return null;return K.slice(0,j)}editorViewSetSelection(A,q,g,E,a){let F=E?E.buffer:null,K=a?a.buffer:null;this.opentui.symbols.editorViewSetSelection(A,q,g,F,K)}editorViewResetSelection(A){this.opentui.symbols.editorViewResetSelection(A)}editorViewGetSelection(A){let q=this.opentui.symbols.editorViewGetSelection(A);if(q===0xffff_ffff_ffff_ffffn)return null;let g=Number(q>>32n),E=Number(q&0xffff_ffffn);return{start:g,end:E}}editorViewSetLocalSelection(A,q,g,E,a,F,K,Z,j){let U=F?F.buffer:null,O=K?K.buffer:null;return this.opentui.symbols.editorViewSetLocalSelection(A,q,g,E,a,U,O,Z,j)}editorViewUpdateSelection(A,q,g,E){let a=g?g.buffer:null,F=E?E.buffer:null;this.opentui.symbols.editorViewUpdateSelection(A,q,a,F)}editorViewUpdateLocalSelection(A,q,g,E,a,F,K,Z,j){let U=F?F.buffer:null,O=K?K.buffer:null;return this.opentui.symbols.editorViewUpdateLocalSelection(A,q,g,E,a,U,O,Z,j)}editorViewResetLocalSelection(A){this.opentui.symbols.editorViewResetLocalSelection(A)}editorViewGetSelectedTextBytes(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editorViewGetSelectedTextBytes(A,v(g),q),a=typeof E==="bigint"?Number(E):E;if(a===0)return null;return g.slice(0,a)}editorViewGetCursor(A){let q=new Uint32Array(1),g=new Uint32Array(1);return this.opentui.symbols.editorViewGetCursor(A,v(q),v(g)),{row:q[0],col:g[0]}}editorViewGetText(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editorViewGetText(A,v(g),q),a=typeof E==="bigint"?Number(E):E;if(a===0)return null;return g.slice(0,a)}editorViewGetVisualCursor(A){let q=new ArrayBuffer(WA.size);return this.opentui.symbols.editorViewGetVisualCursor(A,v(q)),WA.unpack(q)}editorViewMoveUpVisual(A){this.opentui.symbols.editorViewMoveUpVisual(A)}editorViewMoveDownVisual(A){this.opentui.symbols.editorViewMoveDownVisual(A)}editorViewDeleteSelectedText(A){this.opentui.symbols.editorViewDeleteSelectedText(A)}editorViewSetCursorByOffset(A,q){this.opentui.symbols.editorViewSetCursorByOffset(A,q)}editorViewGetNextWordBoundary(A){let q=new ArrayBuffer(WA.size);return this.opentui.symbols.editorViewGetNextWordBoundary(A,v(q)),WA.unpack(q)}editorViewGetPrevWordBoundary(A){let q=new ArrayBuffer(WA.size);return this.opentui.symbols.editorViewGetPrevWordBoundary(A,v(q)),WA.unpack(q)}editorViewGetEOL(A){let q=new ArrayBuffer(WA.size);return this.opentui.symbols.editorViewGetEOL(A,v(q)),WA.unpack(q)}editorViewGetVisualSOL(A){let q=new ArrayBuffer(WA.size);return this.opentui.symbols.editorViewGetVisualSOL(A,v(q)),WA.unpack(q)}editorViewGetVisualEOL(A){let q=new ArrayBuffer(WA.size);return this.opentui.symbols.editorViewGetVisualEOL(A,v(q)),WA.unpack(q)}bufferPushScissorRect(A,q,g,E,a){this.opentui.symbols.bufferPushScissorRect(A,q,g,E,a)}bufferPopScissorRect(A){this.opentui.symbols.bufferPopScissorRect(A)}bufferClearScissorRects(A){this.opentui.symbols.bufferClearScissorRects(A)}bufferPushOpacity(A,q){this.opentui.symbols.bufferPushOpacity(A,q)}bufferPopOpacity(A){this.opentui.symbols.bufferPopOpacity(A)}bufferGetCurrentOpacity(A){return this.opentui.symbols.bufferGetCurrentOpacity(A)}bufferClearOpacity(A){this.opentui.symbols.bufferClearOpacity(A)}getTerminalCapabilities(A){let q=new ArrayBuffer(SF.size);this.opentui.symbols.getTerminalCapabilities(A,v(q));let g=SF.unpack(q);return{kitty_keyboard:g.kitty_keyboard,kitty_graphics:g.kitty_graphics,rgb:g.rgb,unicode:g.unicode,sgr_pixels:g.sgr_pixels,color_scheme_updates:g.color_scheme_updates,explicit_width:g.explicit_width,scaled_text:g.scaled_text,sixel:g.sixel,focus_tracking:g.focus_tracking,sync:g.sync,bracketed_paste:g.bracketed_paste,hyperlinks:g.hyperlinks,osc52:g.osc52,explicit_cursor_positioning:g.explicit_cursor_positioning,terminal:{name:g.term_name??"",version:g.term_version??"",from_xtversion:g.term_from_xtversion}}}processCapabilityResponse(A,q){let g=this.encoder.encode(q);this.opentui.symbols.processCapabilityResponse(A,g,g.length)}encodeUnicode(A,q){let g=this.encoder.encode(A),E=q==="wcwidth"?0:1,a=new ArrayBuffer(8),F=new ArrayBuffer(8);if(!this.opentui.symbols.encodeUnicode(g,g.length,v(a),v(F),E))return null;let Z=new BigUint64Array(a),j=new BigUint64Array(F),U=Number(Z[0]),O=Number(j[0]);if(O===0)return{ptr:U,data:[]};let Q=O*zF.size,M=Jg(U,0,Q),L=zF.unpackList(M,O);return{ptr:U,data:L}}freeUnicode(A){this.opentui.symbols.freeUnicode(A.ptr,A.data.length)}bufferDrawChar(A,q,g,E,a,F,K=0){this.opentui.symbols.bufferDrawChar(A,q,g,E,a.buffer,F.buffer,K)}registerNativeSpanFeedStream(A,q){let g=this.ensureNativeSpanFeedCallback();this.nativeSpanFeedHandlers.set(Hg(A),q),this.opentui.symbols.streamSetCallback(A,g.ptr)}unregisterNativeSpanFeedStream(A){this.opentui.symbols.streamSetCallback(A,null),this.nativeSpanFeedHandlers.delete(Hg(A))}createNativeSpanFeed(A){let q=A==null?null:wF.pack(A),g=this.opentui.symbols.createNativeSpanFeed(q?v(q):null);if(!g)throw Error("Failed to create stream");return Hg(g)}attachNativeSpanFeed(A){return this.opentui.symbols.attachNativeSpanFeed(A)}destroyNativeSpanFeed(A){this.opentui.symbols.destroyNativeSpanFeed(A),this.nativeSpanFeedHandlers.delete(Hg(A))}streamWrite(A,q){let g=typeof q==="string"?this.encoder.encode(q):q;return this.opentui.symbols.streamWrite(A,v(g),g.length)}streamCommit(A){return this.opentui.symbols.streamCommit(A)}streamDrainSpans(A,q,g){let E=this.opentui.symbols.streamDrainSpans(A,v(q),g);return Lg(E)}streamClose(A){return this.opentui.symbols.streamClose(A)}streamSetOptions(A,q){let g=wF.pack(q);return this.opentui.symbols.streamSetOptions(A,v(g))}streamGetStats(A){let q=new ArrayBuffer(yF.size);if(this.opentui.symbols.streamGetStats(A,v(q))!==0)return null;let E=yF.unpack(q);return{bytesWritten:typeof E.bytesWritten==="bigint"?E.bytesWritten:BigInt(E.bytesWritten),spansCommitted:typeof E.spansCommitted==="bigint"?E.spansCommitted:BigInt(E.spansCommitted),chunks:E.chunks,pendingSpans:E.pendingSpans}}streamReserve(A,q){let g=new ArrayBuffer(mF.size),E=this.opentui.symbols.streamReserve(A,q,v(g));if(E!==0)return{status:E,info:null};return{status:E,info:mF.unpack(g)}}streamCommitReserved(A,q){return this.opentui.symbols.streamCommitReserved(A,q)}createSyntaxStyle(){let A=this.opentui.symbols.createSyntaxStyle();if(!A)throw Error("Failed to create SyntaxStyle");return A}destroySyntaxStyle(A){this.opentui.symbols.destroySyntaxStyle(A)}syntaxStyleRegister(A,q,g,E,a){let F=this.encoder.encode(q),K=g?g.buffer:null,Z=E?E.buffer:null;return this.opentui.symbols.syntaxStyleRegister(A,F,F.length,K,Z,a)}syntaxStyleResolveByName(A,q){let g=this.encoder.encode(q),E=this.opentui.symbols.syntaxStyleResolveByName(A,g,g.length);return E===0?null:E}syntaxStyleGetStyleCount(A){let q=this.opentui.symbols.syntaxStyleGetStyleCount(A);return typeof q==="bigint"?Number(q):q}editorViewSetPlaceholderStyledText(A,q){let g=q.filter((a)=>a.text.length>0);if(g.length===0){this.opentui.symbols.editorViewSetPlaceholderStyledText(A,null,0);return}let E=hF.packList(g);this.opentui.symbols.editorViewSetPlaceholderStyledText(A,v(E),g.length)}editorViewSetTabIndicator(A,q){this.opentui.symbols.editorViewSetTabIndicator(A,q)}editorViewSetTabIndicatorColor(A,q){this.opentui.symbols.editorViewSetTabIndicatorColor(A,q.buffer)}onNativeEvent(A,q){this._nativeEvents.on(A,q)}onceNativeEvent(A,q){this._nativeEvents.once(A,q)}offNativeEvent(A,q){this._nativeEvents.off(A,q)}onAnyNativeEvent(A){this._anyEventHandlers.push(A)}}function PA(){if(!j6)try{j6=new fE(YK)}catch(A){throw Error(`Failed to initialize OpenTUI render library: ${A instanceof Error?A.message:"Unknown error"}`)}return j6}class xg{lib;bufferPtr;_length=0;_byteSize=0;_lineInfo;_destroyed=!1;_syntaxStyle;_textBytes;_memId;_appendedChunks=[];constructor(A,q){this.lib=A,this.bufferPtr=q}static create(A){return PA().createTextBuffer(A)}guard(){if(this._destroyed)throw Error("TextBuffer is destroyed")}setText(A){if(this.guard(),this._textBytes=this.lib.encoder.encode(A),this._memId===void 0)this._memId=this.lib.textBufferRegisterMemBuffer(this.bufferPtr,this._textBytes,!1);else this.lib.textBufferReplaceMemBuffer(this.bufferPtr,this._memId,this._textBytes,!1);this.lib.textBufferSetTextFromMem(this.bufferPtr,this._memId),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0,this._appendedChunks=[]}append(A){this.guard();let q=this.lib.encoder.encode(A);this._appendedChunks.push(q),this.lib.textBufferAppend(this.bufferPtr,q),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0}loadFile(A){if(this.guard(),!this.lib.textBufferLoadFile(this.bufferPtr,A))throw Error(`Failed to load file: ${A}`);this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0,this._textBytes=void 0}setStyledText(A){this.guard(),this.lib.textBufferSetStyledText(this.bufferPtr,A.chunks),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0}setDefaultFg(A){this.guard(),this.lib.textBufferSetDefaultFg(this.bufferPtr,A)}setDefaultBg(A){this.guard(),this.lib.textBufferSetDefaultBg(this.bufferPtr,A)}setDefaultAttributes(A){this.guard(),this.lib.textBufferSetDefaultAttributes(this.bufferPtr,A)}resetDefaults(){this.guard(),this.lib.textBufferResetDefaults(this.bufferPtr)}getLineCount(){return this.guard(),this.lib.textBufferGetLineCount(this.bufferPtr)}get length(){return this.guard(),this._length}get byteSize(){return this.guard(),this._byteSize}get ptr(){return this.guard(),this.bufferPtr}getPlainText(){if(this.guard(),this._byteSize===0)return"";let A=this.lib.getPlainTextBytes(this.bufferPtr,this._byteSize);if(!A)return"";return this.lib.decoder.decode(A)}getTextRange(A,q){if(this.guard(),A>=q)return"";if(this._byteSize===0)return"";let g=this.lib.textBufferGetTextRange(this.bufferPtr,A,q,this._byteSize);if(!g)return"";return this.lib.decoder.decode(g)}addHighlightByCharRange(A){this.guard(),this.lib.textBufferAddHighlightByCharRange(this.bufferPtr,A)}addHighlight(A,q){this.guard(),this.lib.textBufferAddHighlight(this.bufferPtr,A,q)}removeHighlightsByRef(A){this.guard(),this.lib.textBufferRemoveHighlightsByRef(this.bufferPtr,A)}clearLineHighlights(A){this.guard(),this.lib.textBufferClearLineHighlights(this.bufferPtr,A)}clearAllHighlights(){this.guard(),this.lib.textBufferClearAllHighlights(this.bufferPtr)}getLineHighlights(A){return this.guard(),this.lib.textBufferGetLineHighlights(this.bufferPtr,A)}getHighlightCount(){return this.guard(),this.lib.textBufferGetHighlightCount(this.bufferPtr)}setSyntaxStyle(A){this.guard(),this._syntaxStyle=A??void 0,this.lib.textBufferSetSyntaxStyle(this.bufferPtr,A?.ptr??null)}getSyntaxStyle(){return this.guard(),this._syntaxStyle??null}setTabWidth(A){this.guard(),this.lib.textBufferSetTabWidth(this.bufferPtr,A)}getTabWidth(){return this.guard(),this.lib.textBufferGetTabWidth(this.bufferPtr)}clear(){this.guard(),this.lib.textBufferClear(this.bufferPtr),this._length=0,this._byteSize=0,this._lineInfo=void 0,this._textBytes=void 0,this._appendedChunks=[]}reset(){this.guard(),this.lib.textBufferReset(this.bufferPtr),this._length=0,this._byteSize=0,this._lineInfo=void 0,this._textBytes=void 0,this._memId=void 0,this._appendedChunks=[]}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyTextBuffer(this.bufferPtr)}}function T_(A,q){if(typeof q.width==="number"){if(q.width<0)throw TypeError(`Invalid width for Renderable ${A}: ${q.width}`)}if(typeof q.height==="number"){if(q.height<0)throw TypeError(`Invalid height for Renderable ${A}: ${q.height}`)}}function eq(A){if(typeof A==="string"&&A.endsWith("%")){let q=A.slice(0,-1),g=parseFloat(q);return!Number.isNaN(g)}return!1}function XA(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return eq(A)}function IA(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;return eq(A)}function aq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return eq(A)}function P_(A){return A==="relative"||A==="absolute"}function V_(A){return A==="visible"||A==="hidden"||A==="scroll"}function F6(A){return aq(A)}function cF(A){if(A===void 0||A==="auto")return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return!1}function Xq(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return eq(A)}function sq(A){return!!A?.[MK]}function N_(A){return typeof A==="function"&&A.prototype&&OA.prototype.isPrototypeOf(A.prototype)}function LK(A){let q=[];for(let g of A)if(Array.isArray(g))q.push(...LK(g));else if(g!==null&&g!==void 0&&g!==!1)q.push(g);return q}function $K(A){return A&&A[R_]}function xE(A,q){if(sq(q))return q;if($K(q))return _6(A,q);return console.warn("maybeMakeRenderable received an invalid node",x_.inspect(q,{depth:2})),null}function RE(A,q){if(!q||Object.keys(q).length===0)return A;let g=new Map,E=(F)=>{if(g.has(F)){let Z=g.get(F);if(Z!==void 0)return Z}let K=A.findDescendantById(F);if(K)g.set(F,K);return K};return new Proxy(A,{get(F,K,Z){if(typeof K==="string"&&q[K]){let j=E(q[K]);if(j){let U=j[K];if(typeof U==="function")return U.bind(j);return U}}return Reflect.get(F,K,Z)},set(F,K,Z,j){if(typeof K==="string"&&q[K]){let U=E(q[K]);if(U)return Reflect.set(U,K,Z)}return Reflect.set(F,K,Z,j)}})}function _6(A,q){if(sq(q))return q;if(!q||typeof q!=="object")throw TypeError("mount() received an invalid vnode");let g=q,{type:E,props:a}=g,F=LK(g.children||[]),K=g.__delegateMap;if(N_(E)){let U=new E(A,a||{});for(let M of F)if(sq(M))U.add(M);else{let L=_6(A,M);U.add(L)}let O=RE(U,K),Q=g.__pendingCalls;if(Q)for(let M of Q)if(M.isProperty)O[M.method]=M.args[0];else O[M.method].apply(O,M.args);return O}let Z=E(a||{},F),j=_6(A,Z);return RE(j,K)}function _q(A,q){return{...A,...q}}function xA(A,q){let g=new Map;for(let E of A){let a=Oq(E);g.set(a,E)}for(let E of q){let a=Oq(E);g.set(a,E)}return Array.from(g.values())}function Oq(A){return`${A.name}:${A.ctrl?1:0}:${A.shift?1:0}:${A.meta?1:0}:${A.super?1:0}`}function RA(A,q){let g=new Map,E=q||{};for(let a of A){let F=Oq(a);g.set(F,a.action)}for(let a of A){let F=E[a.name]||a.name;if(F!==a.name){let K=Oq({...a,name:F});g.set(K,a.action)}}return g}function C_(A){let q=[];if(A.ctrl)q.push("ctrl");if(A.shift)q.push("shift");if(A.meta)q.push("meta");if(A.super)q.push("super");return q.push(A.name),q.join("+")}function k_(){let q=Error().stack?.split(`
20
+ `).slice(5)||[];if(!q.length)return null;let g=q[0].trim(),E=/at\s+(?:([\w$.<>]+)\s+\()?((?:\/|[A-Za-z]:\\)[^:]+):(\d+):(\d+)\)?/,a=g.match(E);if(!a)return null;let F=a[1]||"<anonymous>",K=a[2],Z=K.split(/[\\/]/).pop()||"<unknown>",j=parseInt(a[3],10)||0,U=parseInt(a[4],10)||0;return{functionName:F,fullPath:K,fileName:Z,lineNumber:j,columnNumber:U}}function w_(A,q=new TextEncoder){let g=Buffer.from(A).toString("base64");return q.encode(g)}class VK{lib;rendererPtr;constructor(A,q){this.lib=A,this.rendererPtr=q}copyToClipboardOSC52(A,q=0){if(!this.isOsc52Supported())return!1;let g=w_(A,this.lib.encoder);return this.lib.copyToClipboardOSC52(this.rendererPtr,q,g)}clearClipboardOSC52(A=0){if(!this.isOsc52Supported())return!1;return this.lib.clearClipboardOSC52(this.rendererPtr,A)}isOsc52Supported(){let A=this.lib.getTerminalCapabilities(this.rendererPtr);return Boolean(A?.osc52)}}function xK(A,q,g="column",E=10,a=16){if(A.width<=0||A.height<=0)return[];if(q.length===0)return[];if(q.length<a)return q;let F=A.y-E,K=A.y+A.height+E,Z=A.x-E,j=A.x+A.width+E,U=g==="row",O=q,Q=O.length;if(Q===0)return[];let M=U?Z:F,L=U?j:K,$=0,V=Q-1,H=-1;while($<=V){let D=$+V>>1,N=O[D],h=U?N.x:N.y;if((U?N.x+N.width:N.y+N.height)<M)$=D+1;else if(h>L)V=D-1;else{H=D;break}}let X=[];if(H===-1)H=$>0?$-1:0;let T=50,x=H,z=0;while(x-1>=0){let D=O[x-1];if((U?D.x+D.width:D.y+D.height)<=M){if(z++,z>=T)break}else z=0;x--}let m=H+1;while(m<Q){let D=O[m];if((U?D.x:D.y)>=L)break;m++}for(let D=x;D<m;D++){let N=O[D],h=U?N.x:N.y;if((U?N.x+N.width:N.y+N.height)<=M)continue;if(h>=L)break;if(U){if(N.y+N.height<F)continue;if(N.y>K)continue}else{if(N.x+N.width<Z)continue;if(N.x>j)continue}X.push(N)}if(X.length>1)X.sort((D,N)=>D.zIndex>N.zIndex?1:D.zIndex<N.zIndex?-1:0);return X}function m_(A){if(/\x1b\[\?\d+(?:;\d+)*\$y/.test(A))return!0;if(/\x1b\[1;(?!1R)\d+R/.test(A))return!0;if(/\x1bP>\|[\s\S]*?\x1b\\/.test(A))return!0;if(/\x1b_G[\s\S]*?\x1b\\/.test(A))return!0;if(/\x1b\[\?\d+(?:;\d+)?u/.test(A))return!0;if(/\x1b\[\?[0-9;]*c/.test(A))return!0;return!1}function b_(A){return/\x1b\[4;\d+;\d+t/.test(A)}function c_(A){let q=A.match(/\x1b\[4;(\d+);(\d+)t/);if(q)return{width:parseInt(q[2]),height:parseInt(q[1])};return null}function WK(A){if(!A)return 0;let q=0;if(A.disambiguate!==!1)q|=RK;if(A.alternateKeys!==!1)q|=NK;if(A.events===!0)q|=p_;if(A.allKeysAsEscapes===!0)q|=f_;if(A.reportText===!0)q|=d_;return q}class YA{type;button;x;y;source;modifiers;scroll;target;isDragging;_propagationStopped=!1;_defaultPrevented=!1;get propagationStopped(){return this._propagationStopped}get defaultPrevented(){return this._defaultPrevented}constructor(A,q){this.target=A,this.type=q.type,this.button=q.button,this.x=q.x,this.y=q.y,this.modifiers=q.modifiers,this.scroll=q.scroll,this.source=q.source,this.isDragging=q.isDragging}stopPropagation(){this._propagationStopped=!0}preventDefault(){this._defaultPrevented=!0}}async function uE(A={}){if(process.argv.includes("--delay-start"))await new Promise((Q)=>setTimeout(Q,5000));let q=A.stdin||process.stdin,g=A.stdout||process.stdout,E=g.columns||80,a=g.rows||24,F=A.experimental_splitHeight&&A.experimental_splitHeight>0?A.experimental_splitHeight:a,K=PA(),Z=K.createRenderer(E,F,{remote:A.remote??!1,testing:A.testing??!1});if(!Z)throw Error("Failed to create renderer");if(A.useThread===void 0)A.useThread=!0;if(process.platform==="linux")A.useThread=!1;K.setUseThread(Z,A.useThread);let j=A.useKittyKeyboard??{},U=WK(j);K.setKittyKeyboardFlags(Z,U);let O=new H6(K,Z,q,g,E,a,A);if(!A.testing)await O.setupTerminal();return O}var uZ,lZ=(A)=>A,iZ=(A,q)=>{for(var g in q)uZ(A,g,{get:q[g],enumerable:!0,configurable:!0,set:sZ.bind(q,g)})},fF,rZ,nZ,i,GE,QE,lq,Tq,p,hq,dF,hA,cA,MA,Sq,SA,YE,Fq,Kq,bA,jq,oZ,eZ,qU,O6,tF,$g,WE,SE,zE,QF,EU,aU,FU,KU,jU,ZU,UU,lF,EE,tA,sF,iF,nq,nF=(A)=>(q)=>OU(q,{fg:A}),YF,QU,YU,HU,LU,eF,$U,XU=(A)=>{return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(A)},IU=(A)=>{return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(A)},TU,ME=(A="",q={})=>{let g;if(GU.isBuffer(A))if(A[0]>127&&A[1]===void 0)A[0]-=128,A="\x1B"+String(A);else A=String(A);else if(A!==void 0&&typeof A!=="string")A=String(A);else if(!A)A="";if(/^\x1b\[<\d+;\d+;\d+[Mm]$/.test(A))return null;if(/^\[<\d+;\d+;\d+[Mm]$/.test(A))return null;if(/^\x1b\[<[\d;]*$/.test(A))return null;if(/^\[<[\d;]*$/.test(A))return null;if(A.startsWith("\x1B[M")&&A.length>=6)return null;if(/^\x1b\[\d+;\d+;\d+t$/.test(A))return null;if(/^\x1b\[\d+;\d+R$/.test(A))return null;if(/^\x1b\[\?[\d;]+c$/.test(A))return null;if(/^\x1b\[\?[\d;]+\$y$/.test(A))return null;if(A==="\x1B[I"||A==="\x1B[O")return null;if(/^\x1b\][\d;].*(\x1b\\|\x07)$/.test(A))return null;if(A==="\x1B[200~"||A==="\x1B[201~")return null;let E={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"raw"};if(E.sequence=E.sequence||A||E.name,q.useKittyKeyboard){let F=JU(A);if(F)return F}let a=TU.exec(A);if(a){let F=parseInt(a[1],10)-1,K=parseInt(a[2],10);if(E.ctrl=!!(F&4),E.meta=!!(F&2),E.shift=!!(F&1),E.option=!!(F&2),E.super=!!(F&8),E.hyper=!!(F&16),K===13)E.name="return";else if(K===27)E.name="escape";else if(K===9)E.name="tab";else if(K===32)E.name="space";else if(K===127||K===8)E.name="backspace";else{let Z=String.fromCharCode(K);if(E.name=Z,E.sequence=Z,K>=48&&K<=57)E.number=!0}return E}if(A==="\r"||A==="\x1B\r")E.name="return",E.meta=A.length===2;else if(A===`
21
21
  `||A===`\x1B
22
- `)E.name="linefeed",E.meta=A.length===2;else if(A==="\t")E.name="tab";else if(A==="\b"||A==="\x1B\b"||A==="\x7F"||A==="\x1B\x7F")E.name="backspace",E.meta=A.charAt(0)==="\x1B";else if(A==="\x1B"||A==="\x1B\x1B")E.name="escape",E.meta=A.length===2;else if(A===" "||A==="\x1B ")E.name="space",E.meta=A.length===2;else if(A==="\x00")E.name="space",E.ctrl=!0;else if(A.length===1&&A<="\x1A")E.name=String.fromCharCode(A.charCodeAt(0)+97-1),E.ctrl=!0;else if(A.length===1&&A>="0"&&A<="9")E.name=A,E.number=!0;else if(A.length===1&&A>="a"&&A<="z")E.name=A;else if(A.length===1&&A>="A"&&A<="Z")E.name=A.toLowerCase(),E.shift=!0;else if(A.length===1||A.length===2&&A.codePointAt(0)>65535)E.name=A;else if(g=JU.exec(A)){E.meta=!0;let F=g[1],K=/^[A-Z]$/.test(F);if(F==="F")E.name="right";else if(F==="B")E.name="left";else if(K)E.shift=!0,E.name=F;else E.name=F}else if(A.length===2&&A[0]==="\x1B"&&A[1]<="\x1A")E.meta=!0,E.ctrl=!0,E.name=String.fromCharCode(A.charCodeAt(1)+97-1);else if(g=HU.exec(A)){let F=[...A];if(F[0]==="\x1B"&&F[1]==="\x1B")E.option=!0,E.meta=!0;let K=[g[1],g[2],g[4],g[6]].filter(Boolean).join(""),Z=parseInt(g[3]||g[5]||"1",10)-1;E.ctrl=E.ctrl||!!(Z&4),E.meta=E.meta||!!(Z&2),E.shift=E.shift||!!(Z&1),E.option=E.option||!!(Z&2),E.super=!!(Z&8),E.hyper=!!(Z&16),E.code=K;let j=eF[K];if(j)E.name=j,E.shift=$U(K)||E.shift,E.ctrl=XU(K)||E.ctrl;else E.name="",E.code=void 0}else if(A==="\x1B[3~")E.name="delete",E.meta=!1,E.code="[3~";return E},Pg,yE,Cq,eg,EA,RU=10,NU=65536,U6=256,Eq=27,WU=7,aE,FE,gK,hU,SU,zU,dq,KE,sU,iU=(A)=>A.startsWith("http://")||A.startsWith("https://"),bE,cE,A6,XF,_A,zq,a_,PF,F_,QA,fq,WF,j_,PE=(A)=>A?Z_(A.buffer):null,VE=(A)=>A?AA.fromArray(new Float32Array(U_(A))):void 0,hF,E6,dA,WA,__,SF,zF,$q,BF,CF,O_,G_,kF,DF,Q_,wF,yF,M6,mF,Y_,Ig,M_,J_,H_,Wq=null,a6=null,bF=!1,QK,YK,j6,MK,JK,HK,Rg,J6,OA,dE,x_,IK,NE,Uq,mA,TK,TA,PK,OE,k_,Iq=2,tE,gq,c_,RK=1,v_=2,NK=4,p_=8,f_=16,d_=67108864,hK,pF,SK,zK,H6;var BK=e(async()=>{ta();la();ia();na();ea();qF();EF();FF();jF();UF();OF();tZ=Object.defineProperty;fF={};sZ(fF,{default:()=>O6,Wrap:()=>jq,Unit:()=>bA,PositionType:()=>Kq,Overflow:()=>Fq,NodeType:()=>YE,MeasureMode:()=>SA,LogLevel:()=>Sq,Justify:()=>MA,Gutter:()=>cA,FlexDirection:()=>hA,ExperimentalFeature:()=>dF,Errata:()=>hq,Edge:()=>p,Display:()=>Tq,Direction:()=>lq,Dimension:()=>QE,BoxSizing:()=>GE,Align:()=>i});iZ=(()=>{var A=import.meta.url;return function(q){q=q||{};var g;g||(g=typeof q<"u"?q:{});var E,a;g.ready=new Promise(function(_,G){E=_,a=G});var F=Object.assign({},g),K="";typeof document<"u"&&document.currentScript&&(K=document.currentScript.src),A&&(K=A),K.indexOf("blob:")!==0?K=K.substr(0,K.replace(/[?#].*/,"").lastIndexOf("/")+1):K="";var Z=g.print||console.log.bind(console),j=g.printErr||console.warn.bind(console);Object.assign(g,F),F=null;var U;g.wasmBinary&&(U=g.wasmBinary);var O=g.noExitRuntime||!0;typeof WebAssembly!="object"&&FA("no native wasm support detected");var Q,M=!1;function L(_,G,Y){Y=G+Y;for(var J="";!(G>=Y);){var I=_[G++];if(!I)break;if(I&128){var P=_[G++]&63;if((I&224)==192)J+=String.fromCharCode((I&31)<<6|P);else{var W=_[G++]&63;I=(I&240)==224?(I&15)<<12|P<<6|W:(I&7)<<18|P<<12|W<<6|_[G++]&63,65536>I?J+=String.fromCharCode(I):(I-=65536,J+=String.fromCharCode(55296|I>>10,56320|I&1023))}}else J+=String.fromCharCode(I)}return J}var $,V,H,X,T,x,z,m,D;function N(){var _=Q.buffer;$=_,g.HEAP8=V=new Int8Array(_),g.HEAP16=X=new Int16Array(_),g.HEAP32=x=new Int32Array(_),g.HEAPU8=H=new Uint8Array(_),g.HEAPU16=T=new Uint16Array(_),g.HEAPU32=z=new Uint32Array(_),g.HEAPF32=m=new Float32Array(_),g.HEAPF64=D=new Float64Array(_)}var h,b=[],w=[],c=[];function t(){var _=g.preRun.shift();b.unshift(_)}var o=0,aA=null,LA=null;function FA(_){if(g.onAbort)g.onAbort(_);throw _="Aborted("+_+")",j(_),M=!0,_=new WebAssembly.RuntimeError(_+". Build with -sASSERTIONS for more info."),a(_),_}function NA(_){return _.startsWith("data:application/octet-stream;base64,")}var jA="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";if(!NA(jA)){var Oa=jA;jA=g.locateFile?g.locateFile(Oa,K):K+Oa}function Ga(){var _=jA;try{if(_==jA&&U)return new Uint8Array(U);if(NA(_))try{var G=uj(_.slice(37)),Y=new Uint8Array(G.length);for(_=0;_<G.length;++_)Y[_]=G.charCodeAt(_);var J=Y}catch(P){throw Error("Converting base64 string to bytes failed.")}else J=void 0;var I=J;if(I)return I;throw"both async and sync fetching of the wasm failed"}catch(P){FA(P)}}function xj(){return U||typeof fetch!="function"?Promise.resolve().then(function(){return Ga()}):fetch(jA,{credentials:"same-origin"}).then(function(_){if(!_.ok)throw"failed to load wasm binary file at '"+jA+"'";return _.arrayBuffer()}).catch(function(){return Ga()})}function B6(_){for(;0<_.length;)_.shift()(g)}function Qa(_){if(_===void 0)return"_unknown";_=_.replace(/[^a-zA-Z0-9_]/g,"$");var G=_.charCodeAt(0);return 48<=G&&57>=G?"_"+_:_}function C6(_,G){return _=Qa(_),function(){return G.apply(this,arguments)}}var zA=[{},{value:void 0},{value:null},{value:!0},{value:!1}],k6=[];function Dg(_){var G=Error,Y=C6(_,function(J){this.name=_,this.message=J,J=Error(J).stack,J!==void 0&&(this.stack=this.toString()+`
23
- `+J.replace(/^Error(:[^\n]*)?\n/,""))});return Y.prototype=Object.create(G.prototype),Y.prototype.constructor=Y,Y.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Y}var yq=void 0;function u(_){throw new yq(_)}var Eg=(_)=>{return _||u("Cannot use deleted val. handle = "+_),zA[_].value},wg=(_)=>{switch(_){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var G=k6.length?k6.pop():zA.length;return zA[G]={ga:1,value:_},G}},Ya=void 0,Ma=void 0;function UA(_){for(var G="";H[_];)G+=Ma[H[_++]];return G}var ag=[];function D6(){for(;ag.length;){var _=ag.pop();_.M.$=!1,_.delete()}}var Fg=void 0,sA={};function w6(_,G){for(G===void 0&&u("ptr should not be undefined");_.R;)G=_.ba(G),_=_.R;return G}var xq={};function Ja(_){_=Ra(_);var G=UA(_);return nA(_),G}function Ha(_,G){var Y=xq[_];return Y===void 0&&u(G+" has unknown type "+Ja(_)),Y}function yg(){}var y6=!1;function La(_){--_.count.value,_.count.value===0&&(_.T?_.U.W(_.T):_.P.N.W(_.O))}function $a(_,G,Y){if(G===Y)return _;if(Y.R===void 0)return null;return _=$a(_,G,Y.R),_===null?null:Y.na(_)}var Xa={};function Rj(_,G){return G=w6(_,G),sA[G]}var Ia=void 0;function mg(_){throw new Ia(_)}function bg(_,G){return G.P&&G.O||mg("makeClassHandle requires ptr and ptrType"),!!G.U!==!!G.T&&mg("Both smartPtrType and smartPtr must be specified"),G.count={value:1},mq(Object.create(_,{M:{value:G}}))}function mq(_){if(typeof FinalizationRegistry>"u")return mq=(G)=>G,_;return y6=new FinalizationRegistry((G)=>{La(G.M)}),mq=(G)=>{var Y=G.M;return Y.T&&y6.register(G,{M:Y},G),G},yg=(G)=>{y6.unregister(G)},mq(_)}var cg={};function m6(_){for(;_.length;){var G=_.pop();_.pop()(G)}}function Kg(_){return this.fromWireType(x[_>>2])}var bq={},vg={};function Jq(_,G,Y){function J(S){S=Y(S),S.length!==_.length&&mg("Mismatched type converter count");for(var C=0;C<_.length;++C)iA(_[C],S[C])}_.forEach(function(S){vg[S]=G});var I=Array(G.length),P=[],W=0;G.forEach((S,C)=>{xq.hasOwnProperty(S)?I[C]=xq[S]:(P.push(S),bq.hasOwnProperty(S)||(bq[S]=[]),bq[S].push(()=>{I[C]=xq[S],++W,W===P.length&&J(I)}))}),P.length===0&&J(I)}function b6(_){switch(_){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError("Unknown type size: "+_)}}function iA(_,G,Y={}){if(!("argPackAdvance"in G))throw TypeError("registerType registeredInstance requires argPackAdvance");var J=G.name;if(_||u('type "'+J+'" must have a positive integer typeid pointer'),xq.hasOwnProperty(_)){if(Y.ua)return;u("Cannot register type '"+J+"' twice")}xq[_]=G,delete vg[_],bq.hasOwnProperty(_)&&(G=bq[_],delete bq[_],G.forEach((I)=>I()))}function c6(_){u(_.M.P.N.name+" instance already deleted")}function Hq(){}function v6(_,G,Y){if(_[G].S===void 0){var J=_[G];_[G]=function(){return _[G].S.hasOwnProperty(arguments.length)||u("Function '"+Y+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+_[G].S+")!"),_[G].S[arguments.length].apply(this,arguments)},_[G].S=[],_[G].S[J.Z]=J}}function Nj(_,G){g.hasOwnProperty(_)?(u("Cannot register public name '"+_+"' twice"),v6(g,_,_),g.hasOwnProperty(void 0)&&u("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),g[_].S[void 0]=G):g[_]=G}function Wj(_,G,Y,J,I,P,W,S){this.name=_,this.constructor=G,this.X=Y,this.W=J,this.R=I,this.pa=P,this.ba=W,this.na=S,this.ja=[]}function p6(_,G,Y){for(;G!==Y;)G.ba||u("Expected null or instance of "+Y.name+", got an instance of "+G.name),_=G.ba(_),G=G.R;return _}function hj(_,G){if(G===null)return this.ea&&u("null is not a valid "+this.name),0;return G.M||u('Cannot pass "'+u6(G)+'" as a '+this.name),G.M.O||u("Cannot pass deleted object as a pointer of type "+this.name),p6(G.M.O,G.M.P.N,this.N)}function Sj(_,G){if(G===null){if(this.ea&&u("null is not a valid "+this.name),this.da){var Y=this.fa();return _!==null&&_.push(this.W,Y),Y}return 0}if(G.M||u('Cannot pass "'+u6(G)+'" as a '+this.name),G.M.O||u("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&G.M.P.ca&&u("Cannot convert argument of type "+(G.M.U?G.M.U.name:G.M.P.name)+" to parameter type "+this.name),Y=p6(G.M.O,G.M.P.N,this.N),this.da)switch(G.M.T===void 0&&u("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:G.M.U===this?Y=G.M.T:u("Cannot convert argument of type "+(G.M.U?G.M.U.name:G.M.P.name)+" to parameter type "+this.name);break;case 1:Y=G.M.T;break;case 2:if(G.M.U===this)Y=G.M.T;else{var J=G.clone();Y=this.xa(Y,wg(function(){J.delete()})),_!==null&&_.push(this.W,Y)}break;default:u("Unsupporting sharing policy")}return Y}function zj(_,G){if(G===null)return this.ea&&u("null is not a valid "+this.name),0;return G.M||u('Cannot pass "'+u6(G)+'" as a '+this.name),G.M.O||u("Cannot pass deleted object as a pointer of type "+this.name),G.M.P.ca&&u("Cannot convert argument of type "+G.M.P.name+" to parameter type "+this.name),p6(G.M.O,G.M.P.N,this.N)}function rA(_,G,Y,J){this.name=_,this.N=G,this.ea=Y,this.ca=J,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,G.R!==void 0?this.toWireType=Sj:(this.toWireType=J?hj:zj,this.V=null)}function Bj(_,G){g.hasOwnProperty(_)||mg("Replacing nonexistant public symbol"),g[_]=G,g[_].Z=void 0}function Cj(_,G){var Y=[];return function(){if(Y.length=0,Object.assign(Y,arguments),_.includes("j")){var J=g["dynCall_"+_];J=Y&&Y.length?J.apply(null,[G].concat(Y)):J.call(null,G)}else J=h.get(G).apply(null,Y);return J}}function BA(_,G){_=UA(_);var Y=_.includes("j")?Cj(_,G):h.get(G);return typeof Y!="function"&&u("unknown function pointer with signature "+_+": "+G),Y}var Ta=void 0;function pg(_,G){function Y(P){I[P]||xq[P]||(vg[P]?vg[P].forEach(Y):(J.push(P),I[P]=!0))}var J=[],I={};throw G.forEach(Y),new Ta(_+": "+J.map(Ja).join([", "]))}function f6(_,G,Y,J,I){var P=G.length;2>P&&u("argTypes array size mismatch! Must at least get return value and 'this' types!");var W=G[1]!==null&&Y!==null,S=!1;for(Y=1;Y<G.length;++Y)if(G[Y]!==null&&G[Y].V===void 0){S=!0;break}var C=G[0].name!=="void",B=P-2,k=Array(B),f=[],s=[];return function(){if(arguments.length!==B&&u("function "+_+" called with "+arguments.length+" arguments, expected "+B+" args!"),s.length=0,f.length=W?2:1,f[0]=I,W){var KA=G[1].toWireType(s,this);f[1]=KA}for(var n=0;n<B;++n)k[n]=G[n+2].toWireType(s,arguments[n]),f.push(k[n]);if(n=J.apply(null,f),S)m6(s);else for(var VA=W?1:2;VA<G.length;VA++){var CA=VA===1?KA:k[VA-2];G[VA].V!==null&&G[VA].V(CA)}return KA=C?G[0].fromWireType(n):void 0,KA}}function d6(_,G){for(var Y=[],J=0;J<_;J++)Y.push(z[G+4*J>>2]);return Y}function t6(_){4<_&&--zA[_].ga===0&&(zA[_]=void 0,k6.push(_))}function u6(_){if(_===null)return"null";var G=typeof _;return G==="object"||G==="array"||G==="function"?_.toString():""+_}function kj(_,G){switch(G){case 2:return function(Y){return this.fromWireType(m[Y>>2])};case 3:return function(Y){return this.fromWireType(D[Y>>3])};default:throw TypeError("Unknown float type: "+_)}}function Dj(_,G,Y){switch(G){case 0:return Y?function(J){return V[J]}:function(J){return H[J]};case 1:return Y?function(J){return X[J>>1]}:function(J){return T[J>>1]};case 2:return Y?function(J){return x[J>>2]}:function(J){return z[J>>2]};default:throw TypeError("Unknown integer type: "+_)}}function wj(_,G){for(var Y="",J=0;!(J>=G/2);++J){var I=X[_+2*J>>1];if(I==0)break;Y+=String.fromCharCode(I)}return Y}function yj(_,G,Y){if(Y===void 0&&(Y=2147483647),2>Y)return 0;Y-=2;var J=G;Y=Y<2*_.length?Y/2:_.length;for(var I=0;I<Y;++I)X[G>>1]=_.charCodeAt(I),G+=2;return X[G>>1]=0,G-J}function mj(_){return 2*_.length}function bj(_,G){for(var Y=0,J="";!(Y>=G/4);){var I=x[_+4*Y>>2];if(I==0)break;++Y,65536<=I?(I-=65536,J+=String.fromCharCode(55296|I>>10,56320|I&1023)):J+=String.fromCharCode(I)}return J}function cj(_,G,Y){if(Y===void 0&&(Y=2147483647),4>Y)return 0;var J=G;Y=J+Y-4;for(var I=0;I<_.length;++I){var P=_.charCodeAt(I);if(55296<=P&&57343>=P){var W=_.charCodeAt(++I);P=65536+((P&1023)<<10)|W&1023}if(x[G>>2]=P,G+=4,G+4>Y)break}return x[G>>2]=0,G-J}function vj(_){for(var G=0,Y=0;Y<_.length;++Y){var J=_.charCodeAt(Y);55296<=J&&57343>=J&&++Y,G+=4}return G}var pj={};function Pa(_){var G=pj[_];return G===void 0?UA(_):G}var fg=[];function fj(_){var G=fg.length;return fg.push(_),G}function dj(_,G){for(var Y=Array(_),J=0;J<_;++J)Y[J]=Ha(z[G+4*J>>2],"parameter "+J);return Y}var Va=[],tj=[null,[],[]];yq=g.BindingError=Dg("BindingError"),g.count_emval_handles=function(){for(var _=0,G=5;G<zA.length;++G)zA[G]!==void 0&&++_;return _},g.get_first_emval=function(){for(var _=5;_<zA.length;++_)if(zA[_]!==void 0)return zA[_];return null},Ya=g.PureVirtualError=Dg("PureVirtualError");for(var xa=Array(256),dg=0;256>dg;++dg)xa[dg]=String.fromCharCode(dg);Ma=xa,g.getInheritedInstanceCount=function(){return Object.keys(sA).length},g.getLiveInheritedInstances=function(){var _=[],G;for(G in sA)sA.hasOwnProperty(G)&&_.push(sA[G]);return _},g.flushPendingDeletes=D6,g.setDelayFunction=function(_){Fg=_,ag.length&&Fg&&Fg(D6)},Ia=g.InternalError=Dg("InternalError"),Hq.prototype.isAliasOf=function(_){if(!(this instanceof Hq&&_ instanceof Hq))return!1;var G=this.M.P.N,Y=this.M.O,J=_.M.P.N;for(_=_.M.O;G.R;)Y=G.ba(Y),G=G.R;for(;J.R;)_=J.ba(_),J=J.R;return G===J&&Y===_},Hq.prototype.clone=function(){if(this.M.O||c6(this),this.M.aa)return this.M.count.value+=1,this;var _=mq,G=Object,Y=G.create,J=Object.getPrototypeOf(this),I=this.M;return _=_(Y.call(G,J,{M:{value:{count:I.count,$:I.$,aa:I.aa,O:I.O,P:I.P,T:I.T,U:I.U}}})),_.M.count.value+=1,_.M.$=!1,_},Hq.prototype.delete=function(){this.M.O||c6(this),this.M.$&&!this.M.aa&&u("Object already scheduled for deletion"),yg(this),La(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},Hq.prototype.isDeleted=function(){return!this.M.O},Hq.prototype.deleteLater=function(){return this.M.O||c6(this),this.M.$&&!this.M.aa&&u("Object already scheduled for deletion"),ag.push(this),ag.length===1&&Fg&&Fg(D6),this.M.$=!0,this},rA.prototype.qa=function(_){return this.ka&&(_=this.ka(_)),_},rA.prototype.ha=function(_){this.W&&this.W(_)},rA.prototype.argPackAdvance=8,rA.prototype.readValueFromPointer=Kg,rA.prototype.deleteObject=function(_){if(_!==null)_.delete()},rA.prototype.fromWireType=function(_){function G(){return this.da?bg(this.N.X,{P:this.wa,O:Y,U:this,T:_}):bg(this.N.X,{P:this,O:_})}var Y=this.qa(_);if(!Y)return this.ha(_),null;var J=Rj(this.N,Y);if(J!==void 0){if(J.M.count.value===0)return J.M.O=Y,J.M.T=_,J.clone();return J=J.clone(),this.ha(_),J}if(J=this.N.pa(Y),J=Xa[J],!J)return G.call(this);J=this.ca?J.la:J.pointerType;var I=$a(Y,this.N,J.N);return I===null?G.call(this):this.da?bg(J.N.X,{P:J,O:I,U:this,T:_}):bg(J.N.X,{P:J,O:I})},Ta=g.UnboundTypeError=Dg("UnboundTypeError");var uj=typeof atob=="function"?atob:function(_){var G="",Y=0;_=_.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var J="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(_.charAt(Y++)),I="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(_.charAt(Y++)),P="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(_.charAt(Y++)),W="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(_.charAt(Y++));J=J<<2|I>>4,I=(I&15)<<4|P>>2;var S=(P&3)<<6|W;G+=String.fromCharCode(J),P!==64&&(G+=String.fromCharCode(I)),W!==64&&(G+=String.fromCharCode(S))}while(Y<_.length);return G},lj={l:function(_,G,Y,J){FA("Assertion failed: "+(_?L(H,_):"")+", at: "+[G?G?L(H,G):"":"unknown filename",Y,J?J?L(H,J):"":"unknown function"])},q:function(_,G,Y){_=UA(_),G=Ha(G,"wrapper"),Y=Eg(Y);var J=[].slice,I=G.N,P=I.X,W=I.R.X,S=I.R.constructor;_=C6(_,function(){I.R.ja.forEach(function(B){if(this[B]===W[B])throw new Ya("Pure virtual function "+B+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:P}),this.__construct.apply(this,J.call(arguments))}),P.__construct=function(){this===P&&u("Pass correct 'this' to __construct");var B=S.implement.apply(void 0,[this].concat(J.call(arguments)));yg(B);var k=B.M;B.notifyOnDestruction(),k.aa=!0,Object.defineProperties(this,{M:{value:k}}),mq(this),B=k.O,B=w6(I,B),sA.hasOwnProperty(B)?u("Tried to register registered instance: "+B):sA[B]=this},P.__destruct=function(){this===P&&u("Pass correct 'this' to __destruct"),yg(this);var B=this.M.O;B=w6(I,B),sA.hasOwnProperty(B)?delete sA[B]:u("Tried to unregister unregistered instance: "+B)},_.prototype=Object.create(P);for(var C in Y)_.prototype[C]=Y[C];return wg(_)},j:function(_){var G=cg[_];delete cg[_];var{fa:Y,W:J,ia:I}=G,P=I.map((W)=>W.ta).concat(I.map((W)=>W.za));Jq([_],P,(W)=>{var S={};return I.forEach((C,B)=>{var k=W[B],f=C.ra,s=C.sa,KA=W[B+I.length],n=C.ya,VA=C.Aa;S[C.oa]={read:(CA)=>k.fromWireType(f(s,CA)),write:(CA,jg)=>{var oA=[];n(VA,CA,KA.toWireType(oA,jg)),m6(oA)}}}),[{name:G.name,fromWireType:function(C){var B={},k;for(k in S)B[k]=S[k].read(C);return J(C),B},toWireType:function(C,B){for(var k in S)if(!(k in B))throw TypeError('Missing field: "'+k+'"');var f=Y();for(k in S)S[k].write(f,B[k]);return C!==null&&C.push(J,f),f},argPackAdvance:8,readValueFromPointer:Kg,V:J}]})},v:function(){},B:function(_,G,Y,J,I){var P=b6(Y);G=UA(G),iA(_,{name:G,fromWireType:function(W){return!!W},toWireType:function(W,S){return S?J:I},argPackAdvance:8,readValueFromPointer:function(W){if(Y===1)var S=V;else if(Y===2)S=X;else if(Y===4)S=x;else throw TypeError("Unknown boolean type size: "+G);return this.fromWireType(S[W>>P])},V:null})},f:function(_,G,Y,J,I,P,W,S,C,B,k,f,s){k=UA(k),P=BA(I,P),S&&(S=BA(W,S)),B&&(B=BA(C,B)),s=BA(f,s);var KA=Qa(k);Nj(KA,function(){pg("Cannot construct "+k+" due to unbound types",[J])}),Jq([_,G,Y],J?[J]:[],function(n){if(n=n[0],J)var VA=n.N,CA=VA.X;else CA=Hq.prototype;n=C6(KA,function(){if(Object.getPrototypeOf(this)!==jg)throw new yq("Use 'new' to construct "+k);if(oA.Y===void 0)throw new yq(k+" has no accessible constructor");var ha=oA.Y[arguments.length];if(ha===void 0)throw new yq("Tried to invoke ctor of "+k+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(oA.Y).toString()+") parameters instead!");return ha.apply(this,arguments)});var jg=Object.create(CA,{constructor:{value:n}});n.prototype=jg;var oA=new Wj(k,n,jg,s,VA,P,S,B);VA=new rA(k,oA,!0,!1),CA=new rA(k+"*",oA,!1,!1);var Wa=new rA(k+" const*",oA,!1,!0);return Xa[_]={pointerType:CA,la:Wa},Bj(KA,n),[VA,CA,Wa]})},d:function(_,G,Y,J,I,P,W){var S=d6(Y,J);G=UA(G),P=BA(I,P),Jq([],[_],function(C){function B(){pg("Cannot call "+k+" due to unbound types",S)}C=C[0];var k=C.name+"."+G;G.startsWith("@@")&&(G=Symbol[G.substring(2)]);var f=C.N.constructor;return f[G]===void 0?(B.Z=Y-1,f[G]=B):(v6(f,G,k),f[G].S[Y-1]=B),Jq([],S,function(s){return s=f6(k,[s[0],null].concat(s.slice(1)),null,P,W),f[G].S===void 0?(s.Z=Y-1,f[G]=s):f[G].S[Y-1]=s,[]}),[]})},p:function(_,G,Y,J,I,P){0<G||FA();var W=d6(G,Y);I=BA(J,I),Jq([],[_],function(S){S=S[0];var C="constructor "+S.name;if(S.N.Y===void 0&&(S.N.Y=[]),S.N.Y[G-1]!==void 0)throw new yq("Cannot register multiple constructors with identical number of parameters ("+(G-1)+") for class '"+S.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return S.N.Y[G-1]=()=>{pg("Cannot construct "+S.name+" due to unbound types",W)},Jq([],W,function(B){return B.splice(1,0,null),S.N.Y[G-1]=f6(C,B,null,I,P),[]}),[]})},a:function(_,G,Y,J,I,P,W,S){var C=d6(Y,J);G=UA(G),P=BA(I,P),Jq([],[_],function(B){function k(){pg("Cannot call "+f+" due to unbound types",C)}B=B[0];var f=B.name+"."+G;G.startsWith("@@")&&(G=Symbol[G.substring(2)]),S&&B.N.ja.push(G);var s=B.N.X,KA=s[G];return KA===void 0||KA.S===void 0&&KA.className!==B.name&&KA.Z===Y-2?(k.Z=Y-2,k.className=B.name,s[G]=k):(v6(s,G,f),s[G].S[Y-2]=k),Jq([],C,function(n){return n=f6(f,n,B,P,W),s[G].S===void 0?(n.Z=Y-2,s[G]=n):s[G].S[Y-2]=n,[]}),[]})},A:function(_,G){G=UA(G),iA(_,{name:G,fromWireType:function(Y){var J=Eg(Y);return t6(Y),J},toWireType:function(Y,J){return wg(J)},argPackAdvance:8,readValueFromPointer:Kg,V:null})},n:function(_,G,Y){Y=b6(Y),G=UA(G),iA(_,{name:G,fromWireType:function(J){return J},toWireType:function(J,I){return I},argPackAdvance:8,readValueFromPointer:kj(G,Y),V:null})},e:function(_,G,Y,J,I){G=UA(G),I===-1&&(I=4294967295),I=b6(Y);var P=(S)=>S;if(J===0){var W=32-8*Y;P=(S)=>S<<W>>>W}Y=G.includes("unsigned")?function(S,C){return C>>>0}:function(S,C){return C},iA(_,{name:G,fromWireType:P,toWireType:Y,argPackAdvance:8,readValueFromPointer:Dj(G,I,J!==0),V:null})},b:function(_,G,Y){function J(P){P>>=2;var W=z;return new I($,W[P+1],W[P])}var I=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][G];Y=UA(Y),iA(_,{name:Y,fromWireType:J,argPackAdvance:8,readValueFromPointer:J},{ua:!0})},o:function(_,G){G=UA(G);var Y=G==="std::string";iA(_,{name:G,fromWireType:function(J){var I=z[J>>2],P=J+4;if(Y)for(var W=P,S=0;S<=I;++S){var C=P+S;if(S==I||H[C]==0){if(W=W?L(H,W,C-W):"",B===void 0)var B=W;else B+=String.fromCharCode(0),B+=W;W=C+1}}else{B=Array(I);for(S=0;S<I;++S)B[S]=String.fromCharCode(H[P+S]);B=B.join("")}return nA(J),B},toWireType:function(J,I){I instanceof ArrayBuffer&&(I=new Uint8Array(I));var P,W=typeof I=="string";if(W||I instanceof Uint8Array||I instanceof Uint8ClampedArray||I instanceof Int8Array||u("Cannot pass non-string to std::string"),Y&&W){var S=0;for(P=0;P<I.length;++P){var C=I.charCodeAt(P);127>=C?S++:2047>=C?S+=2:55296<=C&&57343>=C?(S+=4,++P):S+=3}P=S}else P=I.length;if(S=l6(4+P+1),C=S+4,z[S>>2]=P,Y&&W){if(W=C,C=P+1,P=H,0<C){C=W+C-1;for(var B=0;B<I.length;++B){var k=I.charCodeAt(B);if(55296<=k&&57343>=k){var f=I.charCodeAt(++B);k=65536+((k&1023)<<10)|f&1023}if(127>=k){if(W>=C)break;P[W++]=k}else{if(2047>=k){if(W+1>=C)break;P[W++]=192|k>>6}else{if(65535>=k){if(W+2>=C)break;P[W++]=224|k>>12}else{if(W+3>=C)break;P[W++]=240|k>>18,P[W++]=128|k>>12&63}P[W++]=128|k>>6&63}P[W++]=128|k&63}}P[W]=0}}else if(W)for(W=0;W<P;++W)B=I.charCodeAt(W),255<B&&(nA(C),u("String has UTF-16 code units that do not fit in 8 bits")),H[C+W]=B;else for(W=0;W<P;++W)H[C+W]=I[W];return J!==null&&J.push(nA,S),S},argPackAdvance:8,readValueFromPointer:Kg,V:function(J){nA(J)}})},i:function(_,G,Y){if(Y=UA(Y),G===2)var J=wj,I=yj,P=mj,W=()=>T,S=1;else G===4&&(J=bj,I=cj,P=vj,W=()=>z,S=2);iA(_,{name:Y,fromWireType:function(C){for(var B=z[C>>2],k=W(),f,s=C+4,KA=0;KA<=B;++KA){var n=C+4+KA*G;if(KA==B||k[n>>S]==0)s=J(s,n-s),f===void 0?f=s:(f+=String.fromCharCode(0),f+=s),s=n+G}return nA(C),f},toWireType:function(C,B){typeof B!="string"&&u("Cannot pass non-string to C++ string type "+Y);var k=P(B),f=l6(4+k+G);return z[f>>2]=k>>S,I(B,f+4,k+G),C!==null&&C.push(nA,f),f},argPackAdvance:8,readValueFromPointer:Kg,V:function(C){nA(C)}})},k:function(_,G,Y,J,I,P){cg[_]={name:UA(G),fa:BA(Y,J),W:BA(I,P),ia:[]}},h:function(_,G,Y,J,I,P,W,S,C,B){cg[_].ia.push({oa:UA(G),ta:Y,ra:BA(J,I),sa:P,za:W,ya:BA(S,C),Aa:B})},C:function(_,G){G=UA(G),iA(_,{va:!0,name:G,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(_,G,Y,J,I){_=fg[_],G=Eg(G),Y=Pa(Y);var P=[];return z[J>>2]=wg(P),_(G,Y,P,I)},t:function(_,G,Y,J){_=fg[_],G=Eg(G),Y=Pa(Y),_(G,Y,null,J)},g:t6,m:function(_,G){var Y=dj(_,G),J=Y[0];G=J.name+"_$"+Y.slice(1).map(function(W){return W.name}).join("_")+"$";var I=Va[G];if(I!==void 0)return I;var P=Array(_-1);return I=fj((W,S,C,B)=>{for(var k=0,f=0;f<_-1;++f)P[f]=Y[f+1].readValueFromPointer(B+k),k+=Y[f+1].argPackAdvance;W=W[S].apply(W,P);for(f=0;f<_-1;++f)Y[f+1].ma&&Y[f+1].ma(P[f]);if(!J.va)return J.toWireType(C,W)}),Va[G]=I},D:function(_){4<_&&(zA[_].ga+=1)},r:function(_){var G=Eg(_);m6(G),t6(_)},c:function(){FA("")},x:function(_,G,Y){H.copyWithin(_,G,G+Y)},w:function(_){var G=H.length;if(_>>>=0,2147483648<_)return!1;for(var Y=1;4>=Y;Y*=2){var J=G*(1+0.2/Y);J=Math.min(J,_+100663296);var I=Math;J=Math.max(_,J),I=I.min.call(I,2147483648,J+(65536-J%65536)%65536);A:{try{Q.grow(I-$.byteLength+65535>>>16),N();var P=1;break A}catch(W){}P=void 0}if(P)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(_,G,Y,J){for(var I=0,P=0;P<Y;P++){var W=z[G>>2],S=z[G+4>>2];G+=8;for(var C=0;C<S;C++){var B=H[W+C],k=tj[_];B===0||B===10?((_===1?Z:j)(L(k,0)),k.length=0):k.push(B)}I+=S}return z[J>>2]=I,0}};(function(){function _(I){g.asm=I.exports,Q=g.asm.E,N(),h=g.asm.J,w.unshift(g.asm.F),o--,g.monitorRunDependencies&&g.monitorRunDependencies(o),o==0&&(aA!==null&&(clearInterval(aA),aA=null),LA&&(I=LA,LA=null,I()))}function G(I){_(I.instance)}function Y(I){return xj().then(function(P){return WebAssembly.instantiate(P,J)}).then(function(P){return P}).then(I,function(P){j("failed to asynchronously prepare wasm: "+P),FA(P)})}var J={a:lj};if(o++,g.monitorRunDependencies&&g.monitorRunDependencies(o),g.instantiateWasm)try{return g.instantiateWasm(J,_)}catch(I){j("Module.instantiateWasm callback failed with error: "+I),a(I)}return function(){return U||typeof WebAssembly.instantiateStreaming!="function"||NA(jA)||typeof fetch!="function"?Y(G):fetch(jA,{credentials:"same-origin"}).then(function(I){return WebAssembly.instantiateStreaming(I,J).then(G,function(P){return j("wasm streaming compile failed: "+P),j("falling back to ArrayBuffer instantiation"),Y(G)})})}().catch(a),{}})(),g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.F).apply(null,arguments)};var Ra=g.___getTypeName=function(){return(Ra=g.___getTypeName=g.asm.G).apply(null,arguments)};g.__embind_initialize_bindings=function(){return(g.__embind_initialize_bindings=g.asm.H).apply(null,arguments)};var l6=g._malloc=function(){return(l6=g._malloc=g.asm.I).apply(null,arguments)},nA=g._free=function(){return(nA=g._free=g.asm.K).apply(null,arguments)};g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.L).apply(null,arguments)};var tg;LA=function _(){tg||Na(),tg||(LA=_)};function Na(){function _(){if(!tg&&(tg=!0,g.calledRun=!0,!M)){if(B6(w),E(g),g.onRuntimeInitialized)g.onRuntimeInitialized();if(g.postRun)for(typeof g.postRun=="function"&&(g.postRun=[g.postRun]);g.postRun.length;){var G=g.postRun.shift();c.unshift(G)}B6(c)}}if(!(0<o)){if(g.preRun)for(typeof g.preRun=="function"&&(g.preRun=[g.preRun]);g.preRun.length;)t();B6(b),0<o||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1),_()},1)):_())}}if(g.preInit)for(typeof g.preInit=="function"&&(g.preInit=[g.preInit]);0<g.preInit.length;)g.preInit.pop()();return Na(),q.ready}})(),rZ=iZ,i=function(A){return A[A.Auto=0]="Auto",A[A.FlexStart=1]="FlexStart",A[A.Center=2]="Center",A[A.FlexEnd=3]="FlexEnd",A[A.Stretch=4]="Stretch",A[A.Baseline=5]="Baseline",A[A.SpaceBetween=6]="SpaceBetween",A[A.SpaceAround=7]="SpaceAround",A[A.SpaceEvenly=8]="SpaceEvenly",A}({}),GE=function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A}({}),QE=function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A}({}),lq=function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A}({}),Tq=function(A){return A[A.Flex=0]="Flex",A[A.None=1]="None",A[A.Contents=2]="Contents",A}({}),p=function(A){return A[A.Left=0]="Left",A[A.Top=1]="Top",A[A.Right=2]="Right",A[A.Bottom=3]="Bottom",A[A.Start=4]="Start",A[A.End=5]="End",A[A.Horizontal=6]="Horizontal",A[A.Vertical=7]="Vertical",A[A.All=8]="All",A}({}),hq=function(A){return A[A.None=0]="None",A[A.StretchFlexBasis=1]="StretchFlexBasis",A[A.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",A[A.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",A[A.All=2147483647]="All",A[A.Classic=2147483646]="Classic",A}({}),dF=function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A}({}),hA=function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A}({}),cA=function(A){return A[A.Column=0]="Column",A[A.Row=1]="Row",A[A.All=2]="All",A}({}),MA=function(A){return A[A.FlexStart=0]="FlexStart",A[A.Center=1]="Center",A[A.FlexEnd=2]="FlexEnd",A[A.SpaceBetween=3]="SpaceBetween",A[A.SpaceAround=4]="SpaceAround",A[A.SpaceEvenly=5]="SpaceEvenly",A}({}),Sq=function(A){return A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug",A[A.Verbose=4]="Verbose",A[A.Fatal=5]="Fatal",A}({}),SA=function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A}({}),YE=function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A}({}),Fq=function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A}({}),Kq=function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A}({}),bA=function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A}({}),jq=function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A}({}),nZ={ALIGN_AUTO:i.Auto,ALIGN_FLEX_START:i.FlexStart,ALIGN_CENTER:i.Center,ALIGN_FLEX_END:i.FlexEnd,ALIGN_STRETCH:i.Stretch,ALIGN_BASELINE:i.Baseline,ALIGN_SPACE_BETWEEN:i.SpaceBetween,ALIGN_SPACE_AROUND:i.SpaceAround,ALIGN_SPACE_EVENLY:i.SpaceEvenly,BOX_SIZING_BORDER_BOX:GE.BorderBox,BOX_SIZING_CONTENT_BOX:GE.ContentBox,DIMENSION_WIDTH:QE.Width,DIMENSION_HEIGHT:QE.Height,DIRECTION_INHERIT:lq.Inherit,DIRECTION_LTR:lq.LTR,DIRECTION_RTL:lq.RTL,DISPLAY_FLEX:Tq.Flex,DISPLAY_NONE:Tq.None,DISPLAY_CONTENTS:Tq.Contents,EDGE_LEFT:p.Left,EDGE_TOP:p.Top,EDGE_RIGHT:p.Right,EDGE_BOTTOM:p.Bottom,EDGE_START:p.Start,EDGE_END:p.End,EDGE_HORIZONTAL:p.Horizontal,EDGE_VERTICAL:p.Vertical,EDGE_ALL:p.All,ERRATA_NONE:hq.None,ERRATA_STRETCH_FLEX_BASIS:hq.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:hq.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:hq.AbsolutePercentAgainstInnerSize,ERRATA_ALL:hq.All,ERRATA_CLASSIC:hq.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:dF.WebFlexBasis,FLEX_DIRECTION_COLUMN:hA.Column,FLEX_DIRECTION_COLUMN_REVERSE:hA.ColumnReverse,FLEX_DIRECTION_ROW:hA.Row,FLEX_DIRECTION_ROW_REVERSE:hA.RowReverse,GUTTER_COLUMN:cA.Column,GUTTER_ROW:cA.Row,GUTTER_ALL:cA.All,JUSTIFY_FLEX_START:MA.FlexStart,JUSTIFY_CENTER:MA.Center,JUSTIFY_FLEX_END:MA.FlexEnd,JUSTIFY_SPACE_BETWEEN:MA.SpaceBetween,JUSTIFY_SPACE_AROUND:MA.SpaceAround,JUSTIFY_SPACE_EVENLY:MA.SpaceEvenly,LOG_LEVEL_ERROR:Sq.Error,LOG_LEVEL_WARN:Sq.Warn,LOG_LEVEL_INFO:Sq.Info,LOG_LEVEL_DEBUG:Sq.Debug,LOG_LEVEL_VERBOSE:Sq.Verbose,LOG_LEVEL_FATAL:Sq.Fatal,MEASURE_MODE_UNDEFINED:SA.Undefined,MEASURE_MODE_EXACTLY:SA.Exactly,MEASURE_MODE_AT_MOST:SA.AtMost,NODE_TYPE_DEFAULT:YE.Default,NODE_TYPE_TEXT:YE.Text,OVERFLOW_VISIBLE:Fq.Visible,OVERFLOW_HIDDEN:Fq.Hidden,OVERFLOW_SCROLL:Fq.Scroll,POSITION_TYPE_STATIC:Kq.Static,POSITION_TYPE_RELATIVE:Kq.Relative,POSITION_TYPE_ABSOLUTE:Kq.Absolute,UNIT_UNDEFINED:bA.Undefined,UNIT_POINT:bA.Point,UNIT_PERCENT:bA.Percent,UNIT_AUTO:bA.Auto,WRAP_NO_WRAP:jq.NoWrap,WRAP_WRAP:jq.Wrap,WRAP_WRAP_REVERSE:jq.WrapReverse},oZ=nZ;AU=eZ(await rZ()),O6=AU,tF=["single","double","rounded","heavy"];$g={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",topT:"\u252C",bottomT:"\u2534",leftT:"\u251C",rightT:"\u2524",cross:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",topT:"\u2566",bottomT:"\u2569",leftT:"\u2560",rightT:"\u2563",cross:"\u256C"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",topT:"\u252C",bottomT:"\u2534",leftT:"\u251C",rightT:"\u2524",cross:"\u253C"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",topT:"\u2533",bottomT:"\u253B",leftT:"\u2523",rightT:"\u252B",cross:"\u254B"}};WE={single:Bq($g.single),double:Bq($g.double),rounded:Bq($g.rounded),heavy:Bq($g.heavy)};SE=class SE extends qU{processParsedKey(A){try{switch(A.eventType){case"press":this.emit("keypress",new Xg(A));break;case"release":this.emit("keyrelease",new Xg(A));break;default:this.emit("keypress",new Xg(A));break}}catch(q){return console.error("[KeyHandler] Error processing parsed key:",q),!0}return!0}processPaste(A){try{let q=Bun.stripANSI(A);this.emit("paste",new hE(q))}catch(q){console.error("[KeyHandler] Error processing paste:",q)}}};zE=class zE extends SE{renderableHandlers=new Map;emit(A,...q){return this.emitWithPriority(A,...q)}emitWithPriority(A,...q){let g=!1,E=this.listeners(A);if(E.length>0){g=!0;for(let Z of E){try{Z(...q)}catch(j){console.error(`[KeyHandler] Error in global ${A} handler:`,j)}if(A==="keypress"||A==="keyrelease"||A==="paste"){if(q[0].propagationStopped)return g}}}let a=this.renderableHandlers.get(A),F=a&&a.size>0?[...a]:[],K=!1;if(a&&a.size>0){if(K=!0,A==="keypress"||A==="keyrelease"||A==="paste"){let Z=q[0];if(Z.defaultPrevented)return g||K;if(Z.propagationStopped)return g||K}for(let Z of F){try{Z(...q)}catch(j){console.error(`[KeyHandler] Error in renderable ${A} handler:`,j)}if(A==="keypress"||A==="keyrelease"||A==="paste"){if(q[0].propagationStopped)return g||K}}}return g||K}onInternal(A,q){if(!this.renderableHandlers.has(A))this.renderableHandlers.set(A,new Set);this.renderableHandlers.get(A).add(q)}offInternal(A,q){let g=this.renderableHandlers.get(A);if(g)g.delete(q)}};QF={black:"#000000",white:"#FFFFFF",red:"#FF0000",green:"#008000",blue:"#0000FF",yellow:"#FFFF00",cyan:"#00FFFF",magenta:"#FF00FF",silver:"#C0C0C0",gray:"#808080",grey:"#808080",maroon:"#800000",olive:"#808000",lime:"#00FF00",aqua:"#00FFFF",teal:"#008080",navy:"#000080",fuchsia:"#FF00FF",purple:"#800080",orange:"#FFA500",brightblack:"#666666",brightred:"#FF6666",brightgreen:"#66FF66",brightblue:"#6666FF",brightyellow:"#FFFF66",brightcyan:"#66FFFF",brightmagenta:"#FF66FF",brightwhite:"#FFFFFF"};gU={name:"block",version:"0.2.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:6,buffer:["","","","","",""],letterspace:[" "," "," "," "," "," "],letterspace_size:1,chars:{A:[" <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2> ","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],B:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],C:[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],D:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],E:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u255D </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],F:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c2>\u255A\u2550\u255D </c2>"],G:[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],H:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],I:["<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D</c2>"],J:["<c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588 \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u255D </c2>"],K:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],L:["<c1>\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],M:["<c1>\u2588\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551\u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551 \u255A\u2550\u255D</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],N:["<c1>\u2588\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551 \u255A</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D</c2>"],O:[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],P:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c2>\u255A\u2550\u255D </c2>"],Q:[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2584\u2584 \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550</c2><c1>\u2580\u2580</c1><c2>\u2550\u255D </c2>"],R:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],S:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],T:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u255D</c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c2> \u255A\u2550\u255D </c2>"],U:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],V:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c2> \u255A\u2550\u2550\u2550\u255D </c2>"],W:["<c1>\u2588\u2588</c1><c2>\u2557 </c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588\u2588</c1><c2>\u2557</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u255D\u255A\u2550\u2550\u255D </c2>"],X:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A</c2><c1>\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>"," <c1>\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],Y:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c2> \u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c2> \u255A\u2550\u255D </c2>"],Z:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550</c2><c1>\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>"," <c1>\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],"0":[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],"1":[" <c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>"," <c1>\u2588\u2588</c1><c2>\u2551</c2>"," <c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2> \u255A\u2550\u255D</c2>"],"2":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>"," <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u255D </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],"3":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>"," <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],"4":["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2> \u255A\u2550\u255D</c2>"],"5":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],"6":[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],"7":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c2> \u255A\u2550\u255D </c2>"],"8":[" <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u255D </c2>"],"9":[" <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2> \u255A\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>"," <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u255D </c2>"],"!":["<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>"],"?":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1> \u2584\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2580\u2580</c1><c2>\u2550\u2550\u255D </c2>","<c1> \u2588\u2588</c1><c2>\u2557 </c2>","<c2> \u255A\u2550\u255D </c2>"],".":[" "," "," "," ","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>"],"+":[" ","<c1> \u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2> \u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550\u255D</c2>","<c2> \u255A\u2550\u255D </c2>"," "],"-":[" "," ","<c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u255D</c2>"," "," "],_:[" "," "," "," ","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],"=":[" ","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D</c2>"," "],"@":[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u255D\u255A\u2550\u2550\u2550\u255D </c2>"],"#":[" <c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u255D \u255A\u2550\u255D </c2>"],$:["<c1>\u2584\u2584\u2588\u2588\u2588\u2584\u2584</c1><c2>\xB7</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550</c2><c1>\u2580\u2580\u2580</c1><c2>\u2550\u2550\u255D</c2>"],"%":["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D </c2>"," <c1>\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],"&":["<c1> \u2588\u2588</c1><c2>\u2557 </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551 </c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],"(":[" <c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2551 ","<c1>\u2588\u2588</c1><c2>\u2551 ","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2> \u255A\u2550\u255D</c2>"],")":["<c1>\u2588\u2588</c1><c2>\u2557 </c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>"," <c1>\u2588\u2588</c1><c2>\u2551</c2>"," <c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2>\u255A\u2550\u255D </c2>"],"/":["<c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D </c2>"," <c1>\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c2>\u255A\u2550\u255D </c2>"],":":[" ","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>"," "],";":[" "," ","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>","<c1>\u2584\u2588</c1><c2>\u2557</c2>","<c1>\u2580</c1><c2>\u2550\u255D</c2>"],",":[" "," "," "," ","<c1>\u2584\u2588</c1><c2>\u2557</c2>","<c1>\u2580</c1><c2>\u2550\u255D</c2>"],"'":["<c1>\u2588</c1><c2>\u2557</c2> ","<c2>\u255A\u255D</c2> "," "," "," "," "],'"':["<c1>\u2588</c1><c2>\u2557</c2><c1>\u2588</c1><c2>\u2557</c2> ","<c2>\u255A\u255D\u255A\u255D</c2> "," "," "," "," "]," ":[" "," "," "," "," "," "]}},EU={name:"shade",version:"0.2.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:8,buffer:["","","","","","","",""],letterspace:["<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>"],letterspace_size:1,chars:{A:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],B:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],C:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],D:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],E:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],F:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>"," <c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],G:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2> <c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],H:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],I:["<c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c1>\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591</c2>"],J:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>"," <c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>"," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],K:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],L:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],M:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],N:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588</c1><c2>\u2591</c2><c1>\u2588</c1>","<c1>\u2588 \u2588\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2> <c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],O:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],P:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588</c1> ","<c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>"," <c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],Q:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588\u2588\u2588</c1>","<c2>\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],R:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],S:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c1>\u2588</c1> "," <c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2> <c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],T:["<c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591</c2>"],U:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],V:["<c2>\u2591\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1> ","<c2>\u2591</c2> <c1>\u2588</c1> <c2>\u2591</c2>","<c2>\u2591\u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591</c2>"],W:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],X:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],Y:["<c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591</c2>"],Z:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588</c1> <c2>\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],"0":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u258C\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2> <c1>\u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"1":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588</c1><c2>\u2591\u2591</c2>"," <c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>"," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"2":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2590\u2588\u2588</c1><c2>\u2591</c2>"," <c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],"3":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588\u2588</c1>","<c2>\u2591\u2591</c2> <c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],"4":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1>","<c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c2>\u2591\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],"5":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>"," <c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"6":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"7":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c1>\u2588</c1> <c2>\u2591\u2591</c2>"," <c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"8":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>"," <c1>\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"9":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>"," <c1>\u2588\u2588\u2588</c1>","<c2>\u2591</c2> <c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"!":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591 \u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"?":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2590\u2588\u2588</c1><c2>\u2591</c2>"," <c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],".":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"+":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c2>\u2591</c2> <c1>\u2588</c1> ","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"-":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],_:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," "],"=":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"@":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u258C\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1> "," <c1>\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],"#":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u258C\u2590</c1> ","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u258C\u2590</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],$:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u258C</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1> "," <c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u258C\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>"],"%":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1> "," <c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1> <c2>\u2591</c2> "," <c2>\u2591\u2591\u2591</c2>"],"&":["<c2>\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1> ","<c1>\u2588\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c2> </c2> ","<c2>\u2591\u2591\u2591\u2591\u2591</c2>"],"(":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588</c1> <c2>\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>"," <c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2> <c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591 \u2591</c2>"],")":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2> <c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591</c2> <c1>\u2588</c1>","<c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>"],"/":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c1>\u2588</c1> <c2>\u2591\u2591</c2>"," <c2>\u2591\u2591\u2591</c2>"],":":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],";":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>"],",":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>"],"'":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],'"':["<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>"]," ":["<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>"]}},aU={name:"slick",version:"0.1.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:6,buffer:["","","","","",""],letterspace:["<c2>\u2571</c2>","<c2>\u2571</c2>","<c2>\u2571</c2>","<c2>\u2571</c2>","<c2>\u2571</c2>","<c2>\u2571</c2>"],letterspace_size:1,chars:{A:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F</c1><c2>\u2571</c2><c1>\u2570\u256F</c1>"],B:["<c1>\u256D\u2501\u2501\u256E</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2570\u256F\u2570\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],C:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2570\u256F</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],D:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2570\u256E\u256D\u256E\u2503</c1>","<c2>\u2571</c2><c1>\u2503\u2503\u2503\u2503</c1>","<c2>\u2571</c2><c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u256D\u256F\u2570\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],E:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],F:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2503</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2570\u256F</c1><c2>\u2571\u2571\u2571</c2>"],G:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2570\u256F</c1>","<c1>\u2503\u2503\u256D\u2501\u256E</c1>","<c1>\u2503\u2570\u253B\u2501\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],H:["<c1>\u256D\u256E</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2570\u256F</c1><c2>\u2571</c2><c1>\u2570\u256F</c1>"],I:["<c1>\u256D\u2501\u2501\u256E</c1>","<c1>\u2570\u252B\u2523\u256F</c1>","<c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u256D\u252B\u2523\u256E</c1>","<c1>\u2570\u2501\u2501\u256F</c1>"],J:["<c2>\u2571\u2571</c2><c1>\u256D\u256E</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u256D\u256E\u2503\u2503</c1>","<c1>\u2503\u2570\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u256F</c1>"],K:["<c1>\u256D\u256E\u256D\u2501\u256E</c1>","<c1>\u2503\u2503\u2503\u256D\u256F</c1>","<c1>\u2503\u2570\u256F\u256F</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503\u2503\u2570\u256E</c1>","<c1>\u2570\u256F\u2570\u2501\u256F</c1>"],L:["<c1>\u256D\u256E</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],M:["<c1>\u256D\u2501\u256E\u256D\u2501\u256E</c1>","<c1>\u2503\u2503\u2570\u256F\u2503\u2503</c1>","<c1>\u2503\u256D\u256E\u256D\u256E\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2570\u256F\u2570\u256F\u2570\u256F</c1>"],N:["<c1>\u256D\u2501\u256E</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2503\u2570\u256E\u2503\u2503</c1>","<c1>\u2503\u256D\u256E\u2570\u256F\u2503</c1>","<c1>\u2503\u2503\u2570\u256E\u2503\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503\u2503</c1>","<c1>\u2570\u256F</c1><c2>\u2571</c2><c1>\u2570\u2501\u256F</c1>"],O:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],P:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2503</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2570\u256F</c1><c2>\u2571\u2571\u2571</c2>"],Q:["<c1>\u256D\u2501\u2501\u2501\u256E</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u2501\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2570\u2501\u256F\u2503\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u2501\u256F</c1>"],R:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u256E\u256D\u256F</c1>","<c1>\u2503\u2503\u2503\u2570\u256E</c1>","<c1>\u2570\u256F\u2570\u2501\u256F</c1>"],S:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],T:["<c1>\u256D\u2501\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u256E\u256D\u256E\u2503</c1>","<c1>\u2570\u256F\u2503\u2503\u2570\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571\u2571</c2>"],U:["<c1>\u256D\u256E</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],V:["<c1>\u256D\u256E</c1><c2>\u2571\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2570\u256E\u256D\u256F\u2503</c1>","<c1>\u2570\u256E\u2503\u2503\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2503\u2570\u256F\u2503</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2570\u256E\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571\u2571</c2>"],W:["<c1>\u256D\u256E\u256D\u256E\u256D\u256E</c1>","<c1>\u2503\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2570\u256F\u2570\u256F\u2503</c1>","<c1>\u2570\u256E\u256D\u256E\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256F\u2570\u256F</c1><c2>\u2571</c2>"],X:["<c1>\u256D\u2501\u256E\u256D\u2501\u256E</c1>","<c1>\u2570\u256E\u2570\u256F\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256E\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u256D\u256F\u2570\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u256D\u256E\u2570\u256E</c1>","<c1>\u2570\u2501\u256F\u2570\u2501\u256F</c1>"],Y:["<c1>\u256D\u256E</c1><c2>\u2571\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2570\u256E\u256D\u256F\u2503</c1>","<c1>\u2570\u256E\u2570\u256F\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256E\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571\u2571</c2>"],Z:["<c1>\u256D\u2501\u2501\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256E\u2501\u2503</c1>","<c2>\u2571\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u2501\u2570\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u2501\u256F</c1>"],"0":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"1":["<c2>\u2571</c2><c1>\u256D\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u2503</c1><c2>\u2571</c2>","<c1>\u2570\u256E\u2503</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u2570\u256E</c1>","<c1>\u2570\u2501\u2501\u256F</c1>"],"2":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F\u256D\u256F\u2503</c1>","<c1>\u256D\u2501\u256F\u256D\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"3":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F\u256D\u256F\u2503</c1>","<c1>\u256D\u256E\u2570\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"4":["<c1>\u256D\u256E</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c2>\u2571\u2571\u2571</c2><c1>\u2503\u2503</c1>","<c2>\u2571\u2571\u2571</c2><c1>\u2570\u256F</c1>"],"5":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c1>\u256D\u2501\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"6":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"7":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F\u256D\u256F\u2503</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u256D\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571</c2>"],"8":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"9":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c1>\u256D\u2501\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"!":["<c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1>","<c1>\u2570\u256F</c1>","<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>"],"?":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F\u256D\u256F\u2503</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u256D\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u256D\u256E</c1><c2>\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571</c2>"],".":["<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>"],"+":["<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571</c2><c1>\u256D\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u2570\u256E</c1>","<c1>\u2570\u256E\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571</c2>"],"-":["<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c1>\u256D\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256F</c1>","<c2>\u2571\u2571\u2571\u2571</c2>"],_:["<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c1>\u256D\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256F</c1>"],"=":["<c2>\u2571\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571\u2571</c2>","<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>","<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"@":["<c1>\u256D\u2501\u2501\u2501\u2501\u256E</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u2501\u2501\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503\u256D\u2501\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503\u2570\u256F\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2570\u2501\u2501\u256F\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u2501\u2501\u256F</c1>"],"#":["<c2>\u2571</c2><c1>\u256D\u2501\u2501\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u256D\u256E\u2570\u256E</c1>","<c1>\u2570\u256E\u2503\u2503\u256D\u256F</c1>","<c1>\u256D\u256F\u2503\u2503\u2570\u256E</c1>","<c1>\u2570\u256E\u2570\u256F\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u2501\u2501\u256F</c1><c2>\u2571</c2>"],$:["<c2>\u2571\u2571</c2><c1>\u256D\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u2501\u256F\u2570\u256E</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c1>\u2570\u256E\u256D\u2501\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571\u2571</c2>"],"%":["<c1>\u256D\u256E</c1><c2>\u2571\u2571</c2><c1>\u256D\u2501\u256E</c1>","<c1>\u2570\u256F</c1><c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571\u2571</c2>","<c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2570\u2501\u256F</c1><c2>\u2571\u2571</c2><c1>\u2570\u256F</c1>"],"&":["<c2>\u2571</c2><c1>\u256D\u2501\u2501\u256E</c1>","<c2>\u2571</c2><c1>\u2503\u256D\u2501\u256F</c1>","<c1>\u256D\u256F\u2570\u256E</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2570\u256F\u2503\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"(":["<c2>\u2571\u2571</c2><c1>\u256D\u2501\u256E</c1>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c1>\u2570\u256E\u2570\u256E</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2570\u256E\u2570\u256E</c1>","<c2>\u2571\u2571</c2><c1>\u2570\u2501\u256F</c1>"],")":["<c1>\u256D\u2501\u256E</c1><c2>\u2571\u2571</c2>","<c1>\u2570\u256E\u2570\u256E</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2570\u256E\u2570\u256E</c1>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c1>\u2570\u2501\u256F</c1><c2>\u2571\u2571</c2>"],"/":["<c2>\u2571\u2571\u2571\u2571</c2><c1>\u256D\u2501\u256E</c1>","<c2>\u2571\u2571\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571\u2571</c2>","<c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2570\u2501\u256F</c1><c2>\u2571\u2571\u2571\u2571</c2>"],":":["<c2>\u2571\u2571</c2>","<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>","<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>","<c2>\u2571\u2571</c2>"],";":["<c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1>","<c1>\u2570\u256F</c1>","<c1>\u256D\u256E</c1>","<c1>\u2570\u252B</c1>","<c2>\u2571</c2><c1>\u256F</c1>"],",":["<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c1>\u256D\u256E</c1>","<c1>\u2570\u252B</c1>","<c2>\u2571</c2><c1>\u256F</c1>"],"'":["<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>"],'"':["<c1>\u256D\u256E\u256D\u256E</c1>","<c1>\u2570\u256F\u2570\u256F</c1>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>"]," ":["<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>"]}},FU={name:"tiny",version:"0.2.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:1,lines:2,buffer:["",""],letterspace:[" "," "],letterspace_size:1,chars:{A:["\u2584\u2580\u2588","\u2588\u2580\u2588"],B:["\u2588\u2584\u2584","\u2588\u2584\u2588"],C:["\u2588\u2580\u2580","\u2588\u2584\u2584"],D:["\u2588\u2580\u2584","\u2588\u2584\u2580"],E:["\u2588\u2580\u2580","\u2588\u2588\u2584"],F:["\u2588\u2580\u2580","\u2588\u2580 "],G:["\u2588\u2580\u2580","\u2588\u2584\u2588"],H:["\u2588 \u2588","\u2588\u2580\u2588"],I:["\u2588","\u2588"],J:[" \u2588","\u2588\u2584\u2588"],K:["\u2588\u2584\u2580","\u2588 \u2588"],L:["\u2588 ","\u2588\u2584\u2584"],M:["\u2588\u2580\u2584\u2580\u2588","\u2588 \u2580 \u2588"],N:["\u2588\u2584 \u2588","\u2588 \u2580\u2588"],O:["\u2588\u2580\u2588","\u2588\u2584\u2588"],P:["\u2588\u2580\u2588","\u2588\u2580\u2580"],Q:["\u2588\u2580\u2588","\u2580\u2580\u2588"],R:["\u2588\u2580\u2588","\u2588\u2580\u2584"],S:["\u2588\u2580\u2580","\u2584\u2584\u2588"],T:["\u2580\u2588\u2580"," \u2588 "],U:["\u2588 \u2588","\u2588\u2584\u2588"],V:["\u2588 \u2588","\u2580\u2584\u2580"],W:["\u2588 \u2588 \u2588","\u2580\u2584\u2580\u2584\u2580"],X:["\u2580\u2584\u2580","\u2588 \u2588"],Y:["\u2588\u2584\u2588"," \u2588 "],Z:["\u2580\u2588","\u2588\u2584"],"0":["\u259E\u2588\u259A","\u259A\u2588\u259E"],"1":["\u2584\u2588"," \u2588"],"2":["\u2580\u2588","\u2588\u2584"],"3":["\u2580\u2580\u2588","\u2584\u2588\u2588"],"4":["\u2588 \u2588","\u2580\u2580\u2588"],"5":["\u2588\u2580","\u2584\u2588"],"6":["\u2588\u2584\u2584","\u2588\u2584\u2588"],"7":["\u2580\u2580\u2588"," \u2588"],"8":["\u2588\u2588\u2588","\u2588\u2584\u2588"],"9":["\u2588\u2580\u2588","\u2580\u2580\u2588"],"!":["\u2588","\u2584"],"?":["\u2580\u2588"," \u2584"],".":[" ","\u2584"],"+":["\u2584\u2588\u2584"," \u2580 "],"-":["\u2584\u2584"," "],_:[" ","\u2584\u2584"],"=":["\u2580\u2580","\u2580\u2580"],"@":["\u259B\u2588\u259C","\u2599\u259F\u2583"],"#":["\u259F\u2584\u2599","\u259C\u2580\u259B"],$:["\u2596\u2588\u2597","\u2598\u2588\u259D"],"%":["\u2580 \u2584\u2580","\u2584\u2580 \u2584"],"&":["\u2584\u2584\u2588","\u2588\u2584\u2588"],"(":["\u2584\u2580","\u2580\u2584"],")":["\u2580\u2584","\u2584\u2580"],"/":[" \u2584\u2580","\u2584\u2580 "],":":["\u2580","\u2584"],";":[" ","\u2584\u2580"],",":[" ","\u2588"],"'":["\u2580"," "],'"':["\u259B \u259C"," "]," ":[" "," "]}},KU={name:"huge",version:"0.2.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:11,buffer:["","","","","","","","","","",""],letterspace:[" "," "," "," "," "," "," "," "," "," "," "],letterspace_size:1,chars:{A:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],B:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],C:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],D:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],E:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],F:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],G:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],H:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],I:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],J:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],K:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],L:[" <c1>\u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],M:[" <c1>\u2584\u2584 \u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2580 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],N:[" <c1>\u2584\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580\u2580</c1> "],O:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],P:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],Q:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],R:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],S:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],T:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],U:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],V:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],W:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2584 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580 \u2580\u2580</c1> "],X:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],Y:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],Z:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"0":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"1":[" <c1>\u2584\u2584\u2584\u2584</c1> "," <c1>\u2584\u2588</c1><c2>\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580 \u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"2":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"3":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"4":[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580</c1> "],"5":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"6":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"7":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],"8":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"9":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"!":[" <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "],"?":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> "," <c1>\u2584\u2588</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u2588\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580 \u2584\u2584\u2584\u2588</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2588</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u2588</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C\u2580\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580</c1> "," <c1>\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580</c1> "],".":[" "," "," "," "," "," "," "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "],"+":[" "," "," <c1>\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2584\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580</c1> "," "," "],"-":[" "," "," "," "," <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "," "," "," "," "],_:[" "," "," "," "," "," "," "," <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "," "],"=":[" "," "," <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "," "," <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "," "," "],"@":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2584\u2584\u2584\u2584 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2588</c1><c2>\u2591\u2591\u2591\u2591</c2><c1>\u2588 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2591</c2><c1>\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2588</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2584\u2584\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"#":[" <c1>\u2584 \u2584</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580 \u2580</c1> "],$:[" <c1>\u2584</c1> "," <c1>\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> "," <c1>\u2580</c1> "],"%":[" <c1>\u2584</c1> "," <c1>\u2584 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2584</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2580</c1> "," <c1>\u2580</c1> "],"&":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580 \u2580</c1> "],"(":[" <c1>\u2584\u2584\u2584\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u2588\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u2588\u2584\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "],")":[" <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2588</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2588</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "],"/":[" <c1>\u2584</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],":":[" "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "," "," "],";":[" "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u258C</c1> "," <c1>\u2580</c1> "," "],",":[" "," "," "," "," "," "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u258C</c1> "," <c1>\u2580</c1> "],"'":[" <c1>\u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2590</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2590</c1>"," <c1>\u2580</c1> "," "," "," "," "," "," "," "],'"':[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2590\u2590</c1><c2>\u2591</c2><c1>\u2590</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2590\u2590</c1><c2>\u2591</c2><c1>\u2590</c1>"," <c1>\u2580 \u2580</c1> "," "," "," "," "," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "]}},jU={name:"grid",version:"0.1.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:6,buffer:["","","","","",""],letterspace:["<c2>\u254B</c2>","<c2>\u254B</c2>","<c2>\u254B</c2>","<c2>\u254B</c2>","<c2>\u254B</c2>","<c2>\u254B</c2>"],letterspace_size:1,chars:{A:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],B:["<c1>\u250F\u2513</c1><c2>\u254B\u254B</c2>","<c1>\u2503\u2517\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],C:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u251B</c1>","<c1>\u2503\u2517\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],D:["<c2>\u254B\u254B</c2><c1>\u250F\u2513</c1>","<c1>\u250F\u2501\u251B\u2503</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],E:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u2503\u2501\u252B</c1>","<c1>\u2503\u2503\u2501\u252B</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],F:["<c2>\u254B</c2><c1>\u250F\u2501\u2513</c1>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2503\u2503</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"],G:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2513\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>"],H:["<c1>\u250F\u2513</c1><c2>\u254B\u254B</c2>","<c1>\u2503\u2517\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],I:["<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c1>\u250F\u2513</c1>","<c1>\u2503\u2503</c1>","<c1>\u2517\u251B</c1>","<c2>\u254B\u254B</c2>"],J:["<c2>\u254B</c2><c1>\u250F\u2513</c1>","<c2>\u254B</c2><c1>\u2517\u251B</c1>","<c2>\u254B</c2><c1>\u250F\u2513</c1>","<c2>\u254B</c2><c1>\u2503\u2503</c1>","<c1>\u250F\u251B\u2503</c1>","<c1>\u2517\u2501\u251B</c1>"],K:["<c1>\u250F\u2513</c1><c2>\u254B\u254B</c2>","<c1>\u2503\u2503\u250F\u2513</c1>","<c1>\u2503\u2517\u251B\u251B</c1>","<c1>\u2503\u250F\u2513\u2513</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],L:["<c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2517\u2513</c1>","<c1>\u2517\u2501\u251B</c1>","<c2>\u254B\u254B\u254B</c2>"],M:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u2517\u253B\u253B\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],N:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2513</c1><c2>\u254B</c2>","<c1>\u2503\u250F\u2513\u2513</c1>","<c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],O:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],P:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2503\u250F\u2501\u251B</c1>","<c1>\u2517\u251B</c1><c2>\u254B\u254B</c2>"],Q:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2513\u2503</c1>","<c2>\u254B\u254B</c2><c1>\u2517\u251B</c1>"],R:["<c2>\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2513</c1>","<c1>\u2503\u250F\u251B</c1>","<c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B</c2>"],S:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u2501\u2501\u252B</c1>","<c1>\u2523\u2501\u2501\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],T:["<c2>\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2503\u2517\u2513</c1>","<c2>\u254B</c2><c1>\u2517\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],U:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],V:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"],W:["<c2>\u254B\u254B\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513\u250F\u2513</c1>","<c1>\u2503\u2517\u251B\u2517\u251B\u2503</c1>","<c1>\u2517\u2513\u250F\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u251B\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B\u254B\u254B</c2>"],X:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2517\u254B\u254B\u251B</c1>","<c1>\u250F\u254B\u254B\u2513</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],Y:["<c2>\u254B\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513</c1><c2>\u254B</c2><c1>\u250F\u2513</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2513\u250F\u251B</c1>","<c1>\u2517\u2501\u2501\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B\u254B</c2>"],Z:["<c2>\u254B\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2523\u2501\u2501\u2503\u2503</c1>","<c1>\u2503\u2503\u2501\u2501\u252B</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B\u254B</c2>"],"0":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"1":["<c2>\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2503</c1><c2>\u254B</c2>","<c1>\u2517\u2513\u2503</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2517\u2501\u2501\u251B</c1>"],"2":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2517\u251B\u250F\u251B\u2503</c1>","<c1>\u250F\u2501\u251B\u250F\u251B</c1>","<c1>\u2503\u2517\u2501\u253B\u2513</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"3":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2517\u251B\u250F\u251B\u2503</c1>","<c1>\u250F\u2513\u2517\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"4":["<c1>\u250F\u2513</c1><c2>\u254B</c2><c1>\u250F\u2513</c1>","<c1>\u2503\u2503</c1><c2>\u254B</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2513\u2503</c1>","<c2>\u254B\u254B\u254B</c2><c1>\u2503\u2503</c1>","<c2>\u254B\u254B\u254B</c2><c1>\u2517\u251B</c1>"],"5":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2501\u251B</c1>","<c1>\u2503\u2517\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u2513\u2503</c1>","<c1>\u250F\u2501\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"6":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2501\u251B</c1>","<c1>\u2503\u2517\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"7":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2517\u251B\u250F\u251B\u2503</c1>","<c2>\u254B\u254B</c2><c1>\u2503\u250F\u251B</c1>","<c2>\u254B\u254B</c2><c1>\u2503\u2503</c1><c2>\u254B</c2>","<c2>\u254B\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>"],"8":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"9":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2513\u2503</c1>","<c1>\u250F\u2501\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"!":["<c1>\u250F\u2513</c1>","<c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1>","<c1>\u2517\u251B</c1>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>"],"?":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2517\u251B\u250F\u251B\u2503</c1>","<c2>\u254B\u254B</c2><c1>\u2503\u250F\u251B</c1>","<c2>\u254B\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c2>\u254B\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>"],".":["<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>"],"+":["<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"],"-":["<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"],_:["<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u251B</c1>"],"=":["<c2>\u254B\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>","<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B\u254B</c2>"],"@":["<c1>\u250F\u2501\u2501\u2501\u2501\u2513</c1><c2>\u254B</c2>","<c1>\u2503\u250F\u2501\u2501\u2513\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2503\u250F\u2501\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2503\u2517\u251B\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2517\u2501\u2501\u251B\u2517\u2513</c1>","<c1>\u2517\u2501\u2501\u2501\u2501\u2501\u251B</c1>"],"#":["<c2>\u254B</c2><c1>\u250F\u2501\u2501\u2501\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u250F\u2501\u2513\u2517\u2513</c1>","<c1>\u2517\u2513\u2503\u2503\u2503\u250F\u251B</c1>","<c1>\u250F\u251B\u2503\u2503\u2503\u2517\u2513</c1>","<c1>\u2517\u2513\u2517\u2501\u251B\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u2501\u2501\u2501\u251B</c1><c2>\u254B</c2>"],$:["<c2>\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2503\u2501\u2501\u252B</c1>","<c1>\u2523\u2501\u2501\u2503</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>"],"%":["<c1>\u250F\u2513</c1><c2>\u254B\u254B</c2><c1>\u250F\u2501\u2513</c1>","<c1>\u2517\u251B</c1><c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1>","<c2>\u254B\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B\u254B</c2>","<c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2><c1>\u250F\u2513</c1>","<c1>\u2517\u2501\u251B</c1><c2>\u254B\u254B</c2><c1>\u2517\u251B</c1>"],"&":["<c2>\u254B\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c2>\u254B\u254B</c2><c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u250F\u2501\u251B\u2517\u2513</c1>","<c1>\u2503\u250F\u2513\u250F\u251B</c1>","<c1>\u2503\u2517\u251B\u2503</c1><c2>\u254B</c2>","<c1>\u2517\u2501\u2501\u251B</c1><c2>\u254B</c2>"],"(":["<c2>\u254B\u254B</c2><c1>\u250F\u2501\u2513</c1>","<c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1>","<c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2>","<c1>\u2517\u2513\u2517\u2513</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u2517\u2513\u2517\u2513</c1>","<c2>\u254B\u254B</c2><c1>\u2517\u2501\u251B</c1>"],")":["<c1>\u250F\u2501\u2513</c1><c2>\u254B\u254B</c2>","<c1>\u2517\u2513\u2517\u2513</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u2517\u2513\u2517\u2513</c1>","<c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1>","<c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2>","<c1>\u2517\u2501\u251B</c1><c2>\u254B\u254B</c2>"],"/":["<c2>\u254B\u254B\u254B\u254B</c2><c1>\u250F\u2501\u2513</c1>","<c2>\u254B\u254B\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1>","<c2>\u254B\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B\u254B</c2>","<c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B\u254B\u254B</c2>","<c1>\u2517\u2501\u251B</c1><c2>\u254B\u254B\u254B\u254B</c2>"],":":["<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c2>\u254B\u254B</c2>"],";":["<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u252B</c1>"],",":["<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u252B</c1>"],"'":["<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>"],'"':["<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"]," ":["<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>"]}},ZU={name:"pallet",version:"0.1.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:6,buffer:["","","","","",""],letterspace:["<c2>\u2500</c2>","<c2>\u2500</c2>","<c2>\u2500</c2>","<c2>\u2500</c2>","<c2>\u2500</c2>","<c2>\u2500</c2>"],letterspace_size:1,chars:{A:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D</c1><c2>\u2500</c2><c1>\u255A\u255D</c1>"],B:["<c1>\u2554\u2550\u2550\u2557</c1><c2>\u2500</c2>","<c1>\u2551\u2554\u2557\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u255A\u255D\u255A\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],C:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u255A\u255D</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],D:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u255A\u2557\u2554\u2557\u2551</c1>","<c2>\u2500</c2><c1>\u2551\u2551\u2551\u2551</c1>","<c2>\u2500</c2><c1>\u2551\u2551\u2551\u2551</c1>","<c1>\u2554\u255D\u255A\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],E:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],F:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u2551</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u255A\u255D</c1><c2>\u2500\u2500\u2500</c2>"],G:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u255A\u255D</c1>","<c1>\u2551\u2551\u2554\u2550\u2557</c1>","<c1>\u2551\u255A\u2569\u2550\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],H:["<c1>\u2554\u2557</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u255A\u255D</c1><c2>\u2500</c2><c1>\u255A\u255D</c1>"],I:["<c1>\u2554\u2550\u2550\u2557</c1>","<c1>\u255A\u2563\u2560\u255D</c1>","<c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2554\u2563\u2560\u2557</c1>","<c1>\u255A\u2550\u2550\u255D</c1>"],J:["<c2>\u2500\u2500</c2><c1>\u2554\u2557</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2554\u2557\u2551\u2551</c1>","<c1>\u2551\u255A\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u255D</c1>"],K:["<c1>\u2554\u2557\u2554\u2550\u2557</c1>","<c1>\u2551\u2551\u2551\u2554\u255D</c1>","<c1>\u2551\u255A\u255D\u255D</c1><c2>\u2500</c2>","<c1>\u2551\u2554\u2557\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551\u2551\u255A\u2557</c1>","<c1>\u255A\u255D\u255A\u2550\u255D</c1>"],L:["<c1>\u2554\u2557</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],M:["<c1>\u2554\u2550\u2557\u2554\u2550\u2557</c1>","<c1>\u2551\u2551\u255A\u255D\u2551\u2551</c1>","<c1>\u2551\u2554\u2557\u2554\u2557\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u255A\u255D\u255A\u255D\u255A\u255D</c1>"],N:["<c1>\u2554\u2550\u2557</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u2551\u255A\u2557\u2551\u2551</c1>","<c1>\u2551\u2554\u2557\u255A\u255D\u2551</c1>","<c1>\u2551\u2551\u255A\u2557\u2551\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551\u2551</c1>","<c1>\u255A\u255D</c1><c2>\u2500</c2><c1>\u255A\u2550\u255D</c1>"],O:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],P:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u2551</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u255A\u255D</c1><c2>\u2500\u2500\u2500</c2>"],Q:["<c1>\u2554\u2550\u2550\u2550\u2557</c1><c2>\u2500</c2>","<c1>\u2551\u2554\u2550\u2557\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u255A\u2550\u255D\u2560\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u2550\u255D</c1>"],R:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2557\u2554\u255D</c1>","<c1>\u2551\u2551\u2551\u255A\u2557</c1>","<c1>\u255A\u255D\u255A\u2550\u255D</c1>"],S:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],T:["<c1>\u2554\u2550\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2557\u2554\u2557\u2551</c1>","<c1>\u255A\u255D\u2551\u2551\u255A\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500\u2500</c2>"],U:["<c1>\u2554\u2557</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],V:["<c1>\u2554\u2557</c1><c2>\u2500\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u255A\u2557\u2554\u255D\u2551</c1>","<c1>\u255A\u2557\u2551\u2551\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u2551\u255A\u255D\u2551</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u255A\u2557\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500\u2500</c2>"],W:["<c1>\u2554\u2557\u2554\u2557\u2554\u2557</c1>","<c1>\u2551\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u255A\u255D\u255A\u255D\u2551</c1>","<c1>\u255A\u2557\u2554\u2557\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u255D\u255A\u255D</c1><c2>\u2500</c2>"],X:["<c1>\u2554\u2550\u2557\u2554\u2550\u2557</c1>","<c1>\u255A\u2557\u255A\u255D\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u2557\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2554\u255D\u255A\u2557</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u2554\u2557\u255A\u2557</c1>","<c1>\u255A\u2550\u255D\u255A\u2550\u255D</c1>"],Y:["<c1>\u2554\u2557</c1><c2>\u2500\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u255A\u2557\u2554\u255D\u2551</c1>","<c1>\u255A\u2557\u255A\u255D\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u2557\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500\u2500</c2>"],Z:["<c1>\u2554\u2550\u2550\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2557\u2550\u2551</c1>","<c2>\u2500\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u2550\u255A\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u2550\u255D</c1>"],"0":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"1":["<c2>\u2500</c2><c1>\u2554\u2557</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u2551</c1><c2>\u2500</c2>","<c1>\u255A\u2557\u2551</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u255A\u2557</c1>","<c1>\u255A\u2550\u2550\u255D</c1>"],"2":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D\u2554\u255D\u2551</c1>","<c1>\u2554\u2550\u255D\u2554\u255D</c1>","<c1>\u2551\u2551\u255A\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"3":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D\u2554\u255D\u2551</c1>","<c1>\u2554\u2557\u255A\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"4":["<c1>\u2554\u2557</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c2>\u2500\u2500\u2500</c2><c1>\u2551\u2551</c1>","<c2>\u2500\u2500\u2500</c2><c1>\u255A\u255D</c1>"],"5":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c1>\u2554\u2550\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"6":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"7":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D\u2554\u255D\u2551</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2554\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500</c2>"],"8":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"9":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c1>\u2554\u2550\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"!":["<c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1>","<c1>\u2551\u2551</c1>","<c1>\u255A\u255D</c1>","<c1>\u2554\u2557</c1>","<c1>\u255A\u255D</c1>"],"?":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D\u2554\u255D\u2551</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2554\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2554\u2557</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500</c2>"],".":["<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c1>\u2554\u2557</c1>","<c1>\u255A\u255D</c1>"],"+":["<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500</c2><c1>\u2554\u2557</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u255A\u2557</c1>","<c1>\u255A\u2557\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500</c2>"],"-":["<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c1>\u2554\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u255D</c1>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>"],_:["<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c1>\u2554\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u255D</c1>"],"=":["<c2>\u2500\u2500\u2500\u2500\u2500</c2>","<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>","<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>","<c2>\u2500\u2500\u2500\u2500\u2500</c2>"],"@":["<c1>\u2554\u2550\u2550\u2550\u2550\u2557</c1><c2>\u2500</c2>","<c1>\u2551\u2554\u2550\u2550\u2557\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551\u2554\u2550\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551\u255A\u255D\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u255A\u2550\u2550\u255D\u2560\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u2550\u2550\u255D</c1>"],"#":["<c2>\u2500</c2><c1>\u2554\u2569\u2569\u2569\u2557</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u2554\u2550\u2557\u255A\u2557</c1>","<c1>\u255A\u2557\u2560\u2550\u2563\u2554\u255D</c1>","<c1>\u2554\u255D\u2560\u2550\u2563\u255A\u2557</c1>","<c1>\u255A\u2557\u255A\u2550\u255D\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u2566\u2566\u2566\u255D</c1><c2>\u2500</c2>"],$:["<c1>\u2554\u255D\u2569\u255A\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2557\u2566\u2554\u255D</c1>"],"%":["<c1>\u2554\u2557</c1><c2>\u2500\u2500</c2><c1>\u2554\u2550\u2557</c1>","<c1>\u255A\u255D</c1><c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500\u2500</c2>","<c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u255A\u2550\u255D</c1><c2>\u2500\u2500</c2><c1>\u255A\u255D</c1>"],"&":["<c2>\u2500\u2500</c2><c1>\u2554\u2557</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2554\u2550\u255D\u255A\u2557</c1>","<c1>\u2551\u2554\u2557\u2554\u255D</c1>","<c1>\u2551\u255A\u255D\u2551</c1><c2>\u2500</c2>","<c1>\u255A\u2550\u2550\u255D</c1><c2>\u2500</c2>"],"(":["<c2>\u2500\u2500</c2><c1>\u2554\u2550\u2557</c1>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c1>\u255A\u2557\u255A\u2557</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u255A\u2557\u255A\u2557</c1>","<c2>\u2500\u2500</c2><c1>\u255A\u2550\u255D</c1>"],")":["<c1>\u2554\u2550\u2557</c1><c2>\u2500\u2500</c2>","<c1>\u255A\u2557\u255A\u2557</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u255A\u2557\u255A\u2557</c1>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c1>\u255A\u2550\u255D</c1><c2>\u2500\u2500</c2>"],"/":["<c2>\u2500\u2500\u2500\u2500</c2><c1>\u2554\u2550\u2557</c1>","<c2>\u2500\u2500\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500\u2500</c2>","<c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u255A\u2550\u255D</c1><c2>\u2500\u2500\u2500\u2500</c2>"],":":["<c2>\u2500\u2500</c2>","<c1>\u2554\u2557</c1>","<c1>\u255A\u255D</c1>","<c1>\u2554\u2557</c1>","<c1>\u255A\u255D</c1>","<c2>\u2500\u2500</c2>"],";":["<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c1>\u2554\u2557</c1>","<c1>\u255A\u2563</c1>","<c2>\u2500</c2><c1>\u255D</c1>"],",":["<c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1>","<c1>\u255A\u255D</c1>","<c1>\u2554\u2557</c1>","<c1>\u255A\u2563</c1>","<c2>\u2500</c2><c1>\u255D</c1>"],"'":["<c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1>","<c1>\u255A\u255D</c1>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>"],'"':["<c1>\u2554\u2557\u2554\u2557</c1>","<c1>\u2551\u2551\u2551\u2551</c1>","<c1>\u255A\u255D\u255A\u255D</c1>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>"]," ":["<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>"]}},lF={tiny:FU,block:gU,shade:EU,slick:aU,huge:KU,grid:jU,pallet:ZU},EE={};tA={NONE:0,BOLD:1,DIM:2,ITALIC:4,UNDERLINE:8,BLINK:16,INVERSE:32,HIDDEN:64,STRIKETHROUGH:128};((A)=>{A[A.topLeft=0]="topLeft",A[A.topRight=1]="topRight",A[A.bottomLeft=2]="bottomLeft",A[A.bottomRight=3]="bottomRight"})(sF||={});iF=Symbol.for("@opentui/core/StyledText");nq=class nq{[iF]=!0;chunks;constructor(A){this.chunks=A}};YF={27:"escape",9:"tab",13:"return",127:"backspace",57344:"escape",57345:"return",57346:"tab",57347:"backspace",57348:"insert",57349:"delete",57350:"left",57351:"right",57352:"up",57353:"down",57354:"pageup",57355:"pagedown",57356:"home",57357:"end",57364:"f1",57365:"f2",57366:"f3",57367:"f4",57368:"f5",57369:"f6",57370:"f7",57371:"f8",57372:"f9",57373:"f10",57374:"f11",57375:"f12",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24",57388:"f25",57389:"f26",57390:"f27",57391:"f28",57392:"f29",57393:"f30",57394:"f31",57395:"f32",57396:"f33",57397:"f34",57398:"f35",57399:"kp0",57400:"kp1",57401:"kp2",57402:"kp3",57403:"kp4",57404:"kp5",57405:"kp6",57406:"kp7",57407:"kp8",57408:"kp9",57409:"kpdecimal",57410:"kpdivide",57411:"kpmultiply",57412:"kpminus",57413:"kpplus",57414:"kpenter",57415:"kpequal",57428:"mediaplay",57429:"mediapause",57430:"mediaplaypause",57431:"mediareverse",57432:"mediastop",57433:"mediafastforward",57434:"mediarewind",57435:"medianext",57436:"mediaprev",57437:"mediarecord",57438:"volumedown",57439:"volumeup",57440:"mute",57441:"leftshift",57442:"leftctrl",57443:"leftalt",57444:"leftsuper",57445:"lefthyper",57446:"leftmeta",57447:"rightshift",57448:"rightctrl",57449:"rightalt",57450:"rightsuper",57451:"righthyper",57452:"rightmeta",57453:"iso_level3_shift",57454:"iso_level5_shift"};GU={A:"up",B:"down",C:"right",D:"left",H:"home",F:"end",P:"f1",Q:"f2",R:"f3",S:"f4"},QU={"1":"home","2":"insert","3":"delete","4":"end","5":"pageup","6":"pagedown","7":"home","8":"end","11":"f1","12":"f2","13":"f3","14":"f4","15":"f5","17":"f6","18":"f7","19":"f8","20":"f9","21":"f10","23":"f11","24":"f12"};JU=/^(?:\x1b)([a-zA-Z0-9])$/,HU=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,eF={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear",f:"right",b:"left",p:"up",n:"down","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},LU=[...Object.values(eF),"backspace"],IU=/^\x1b\[27;(\d+);(\d+)~$/;Pg=class Pg{mouseButtonsPressed=new Set;static SCROLL_DIRECTIONS={0:"up",1:"down",2:"left",3:"right"};reset(){this.mouseButtonsPressed.clear()}decodeInput(A){return(Buffer.isBuffer(A)?A:Buffer.from(A.buffer,A.byteOffset,A.byteLength)).toString("latin1")}parseMouseEvent(A){let q=this.decodeInput(A);return this.parseMouseSequenceAt(q,0)?.event??null}parseAllMouseEvents(A){let q=this.decodeInput(A),g=[],E=0;while(E<q.length){let a=this.parseMouseSequenceAt(q,E);if(!a)break;g.push(a.event),E+=a.consumed}return g}parseMouseSequenceAt(A,q){if(!A.startsWith("\x1B[",q))return null;let g=A[q+2];if(g==="<")return this.parseSgrSequence(A,q);if(g==="M")return this.parseBasicSequence(A,q);return null}parseSgrSequence(A,q){let g=q+3,E=[0,0,0],a=0,F=!1;while(g<A.length){let K=A[g],Z=A.charCodeAt(g);if(Z>=48&&Z<=57){F=!0,E[a]=E[a]*10+(Z-48),g++;continue}switch(K){case";":{if(!F||a>=2)return null;a++,F=!1,g++;break}case"M":case"m":{if(!F||a!==2)return null;return{event:this.decodeSgrEvent(E[0],E[1],E[2],K),consumed:g-q+1}}default:return null}}return null}parseBasicSequence(A,q){if(q+6>A.length)return null;let g=A.charCodeAt(q+3)-32,E=A.charCodeAt(q+4)-33,a=A.charCodeAt(q+5)-33;return{event:this.decodeBasicEvent(g,E,a),consumed:6}}decodeSgrEvent(A,q,g,E){let a=A&3,F=(A&64)!==0,K=!F?void 0:Pg.SCROLL_DIRECTIONS[a],Z=(A&32)!==0,j={shift:(A&4)!==0,alt:(A&8)!==0,ctrl:(A&16)!==0},U,O;if(F&&E==="M")U="scroll",O={direction:K,delta:1};else if(Z){let Q=this.mouseButtonsPressed.size>0;if(a===3)U="move";else if(Q)U="drag";else U="move"}else if(U=E==="M"?"down":"up",U==="down"&&a!==3)this.mouseButtonsPressed.add(a);else if(U==="up")this.mouseButtonsPressed.clear();return{type:U,button:a===3?0:a,x:q-1,y:g-1,modifiers:j,scroll:O}}decodeBasicEvent(A,q,g){let E=A&3,a=(A&64)!==0,F=(A&32)!==0,K=!a?void 0:Pg.SCROLL_DIRECTIONS[E],Z={shift:(A&4)!==0,alt:(A&8)!==0,ctrl:(A&16)!==0},j,U,O;if(a)j="scroll",U=0,O={direction:K,delta:1};else if(F)j="move",U=E===3?-1:E;else j=E===3?"up":"down",U=E===3?0:E;return{type:j,button:U,x:q,y:g,modifiers:Z,scroll:O}}};yE=Symbol.for("@opentui/core/singleton");Cq=kq("env-registry",()=>({}));eg=kq("env-store",()=>new qK),EA=new Proxy({},{get(A,q){if(typeof q!=="string")return;return eg.get(q)},has(A,q){return eg.has(q)},ownKeys(){return Object.keys(Cq)},getOwnPropertyDescriptor(A,q){if(eg.has(q))return{enumerable:!0,configurable:!0,get:()=>eg.get(q)};return}}),aE=Y6.from("\x1B[200~"),FE=Y6.from("\x1B[201~"),gK=new Uint8Array(0),hU=new TextDecoder,SU=/^\x1b\[\d+\$$/,zU=new kE;ZA({name:"OTUI_TS_STYLE_WARN",default:!1,description:"Enable warnings for missing syntax styles"});dq=new Map;ZA({name:"OTUI_TREE_SITTER_WORKER_PATH",description:"Path to the TreeSitter worker",type:"string",default:""});sU=cU();bE=class bE extends yU{initialized=!1;worker;buffers=new Map;initializePromise;initializeResolvers;messageCallbacks=new Map;messageIdCounter=0;editQueues=new Map;debouncer;options;constructor(A){super();this.options=A,this.debouncer=mU("tree-sitter-client"),this.startWorker()}emitError(A,q){if(this.listenerCount("error")>0)this.emit("error",A,q)}emitWarning(A,q){if(this.listenerCount("warning")>0)this.emit("warning",A,q)}startWorker(){if(this.worker)return;let A;if(EA.OTUI_TREE_SITTER_WORKER_PATH)A=EA.OTUI_TREE_SITTER_WORKER_PATH;else if(typeof OTUI_TREE_SITTER_WORKER_PATH<"u")A=OTUI_TREE_SITTER_WORKER_PATH;else if(this.options.workerPath)A=this.options.workerPath;else if(A=new URL("./parser.worker.js",import.meta.url).href,!fU(LF(import.meta.dirname,"parser.worker.js")))A=new URL("./parser.worker.ts",import.meta.url).href;this.worker=new Worker(A),this.worker.onmessage=this.handleWorkerMessage.bind(this),this.worker.onerror=(q)=>{if(console.error("TreeSitter worker error:",q.message),this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(Error(`Worker error: ${q.message}`)),this.initializeResolvers=void 0;this.emitError(`Worker error: ${q.message}`)}}stopWorker(){if(!this.worker)return;this.worker.terminate(),this.worker=void 0}handleReset(){return this.buffers.clear(),this.stopWorker(),this.startWorker(),this.initializePromise=void 0,this.initializeResolvers=void 0,this.initialize()}async initialize(){if(this.initializePromise)return this.initializePromise;return this.initializePromise=new Promise((A,q)=>{let g=this.options.initTimeout??1e4,E=setTimeout(()=>{let a=Error("Worker initialization timed out");console.error("TreeSitter client:",a.message),this.initializeResolvers=void 0,q(a)},g);this.initializeResolvers={resolve:A,reject:q,timeoutId:E},this.worker?.postMessage({type:"INIT",dataPath:this.options.dataPath})}),await this.initializePromise,await this.registerDefaultParsers(),this.initializePromise}async registerDefaultParsers(){for(let A of sU)this.addFiletypeParser(A)}resolvePath(A){if(iU(A))return A;if(KK(A))return lU(pU(A).base);if(!vU(A))return LF(A);return A}addFiletypeParser(A){let q={...A,wasm:this.resolvePath(A.wasm),queries:{highlights:A.queries.highlights.map((g)=>this.resolvePath(g)),injections:A.queries.injections?.map((g)=>this.resolvePath(g))}};this.worker?.postMessage({type:"ADD_FILETYPE_PARSER",filetypeParser:q})}async getPerformance(){let A=`performance_${this.messageIdCounter++}`;return new Promise((q)=>{this.messageCallbacks.set(A,q),this.worker?.postMessage({type:"GET_PERFORMANCE",messageId:A})})}async highlightOnce(A,q){if(!this.initialized)try{await this.initialize()}catch(E){return{error:"Could not highlight because of initialization error"}}let g=`oneshot_${this.messageIdCounter++}`;return new Promise((E)=>{this.messageCallbacks.set(g,E),this.worker?.postMessage({type:"ONESHOT_HIGHLIGHT",content:A,filetype:q,messageId:g})})}handleWorkerMessage(A){let{type:q,bufferId:g,error:E,highlights:a,warning:F,messageId:K,hasParser:Z,performance:j,version:U}=A.data;if(q==="HIGHLIGHT_RESPONSE"){let O=this.buffers.get(g);if(!O||!O.hasParser)return;if(O.version!==U){this.resetBuffer(g,O.version,O.content);return}this.emit("highlights:response",g,U,a)}if(q==="INIT_RESPONSE"){if(this.initializeResolvers){if(clearTimeout(this.initializeResolvers.timeoutId),E)console.error("TreeSitter client initialization failed:",E),this.initializeResolvers.reject(Error(E));else this.initialized=!0,this.initializeResolvers.resolve();this.initializeResolvers=void 0;return}}if(q==="PARSER_INIT_RESPONSE"){let O=this.messageCallbacks.get(K);if(O)this.messageCallbacks.delete(K),O({hasParser:Z,warning:F,error:E});return}if(q==="PRELOAD_PARSER_RESPONSE"){let O=this.messageCallbacks.get(K);if(O)this.messageCallbacks.delete(K),O({hasParser:Z});return}if(q==="BUFFER_DISPOSED"){let O=this.messageCallbacks.get(`dispose_${g}`);if(O)this.messageCallbacks.delete(`dispose_${g}`),O(!0);this.emit("buffer:disposed",g);return}if(q==="PERFORMANCE_RESPONSE"){let O=this.messageCallbacks.get(K);if(O)this.messageCallbacks.delete(K),O(j);return}if(q==="ONESHOT_HIGHLIGHT_RESPONSE"){let O=this.messageCallbacks.get(K);if(O)this.messageCallbacks.delete(K),O({highlights:a,warning:F,error:E});return}if(q==="UPDATE_DATA_PATH_RESPONSE"){let O=this.messageCallbacks.get(K);if(O)this.messageCallbacks.delete(K),O({error:E});return}if(q==="CLEAR_CACHE_RESPONSE"){let O=this.messageCallbacks.get(K);if(O)this.messageCallbacks.delete(K),O({error:E});return}if(F){this.emitWarning(F,g);return}if(E){this.emitError(E,g);return}if(q==="WORKER_LOG"){let{logType:O,data:Q}=A.data,M=Q.join(" ");if(this.emit("worker:log",O,M),O==="log")console.log("TSWorker:",...Q);else if(O==="error")console.error("TSWorker:",...Q);else if(O==="warn")console.warn("TSWorker:",...Q);return}}async preloadParser(A){let q=`has_parser_${this.messageIdCounter++}`;return(await new Promise((E)=>{this.messageCallbacks.set(q,E),this.worker?.postMessage({type:"PRELOAD_PARSER",filetype:A,messageId:q})})).hasParser}async createBuffer(A,q,g,E=1,a=!0){if(!this.initialized){if(!a)return this.emitError("Could not create buffer because client is not initialized"),!1;try{await this.initialize()}catch(j){return this.emitError("Could not create buffer because of initialization error"),!1}}if(this.buffers.has(A))throw Error(`Buffer with id ${A} already exists`);this.buffers.set(A,{id:A,content:q,filetype:g,version:E,hasParser:!1});let F=`init_${this.messageIdCounter++}`,K=await new Promise((j)=>{this.messageCallbacks.set(F,j),this.worker?.postMessage({type:"INITIALIZE_PARSER",bufferId:A,version:E,content:q,filetype:g,messageId:F})});if(!K.hasParser){if(this.emit("buffer:initialized",A,!1),g!=="plaintext")this.emitWarning(K.warning||K.error||"Buffer has no parser",A);return!1}let Z={id:A,content:q,filetype:g,version:E,hasParser:!0};return this.buffers.set(A,Z),this.emit("buffer:initialized",A,!0),!0}async updateBuffer(A,q,g,E){if(!this.initialized)return;let a=this.buffers.get(A);if(!a||!a.hasParser)return;if(this.buffers.set(A,{...a,content:g,version:E}),!this.editQueues.has(A))this.editQueues.set(A,new FK((K)=>this.processEdit(A,K.edits,K.newContent,K.version,K.isReset)));this.editQueues.get(A).enqueue({edits:q,newContent:g,version:E})}async processEdit(A,q,g,E,a=!1){this.worker?.postMessage({type:a?"RESET_BUFFER":"HANDLE_EDITS",bufferId:A,version:E,content:g,edits:q})}async removeBuffer(A){if(!this.initialized)return;if(this.buffers.delete(A),this.editQueues.has(A))this.editQueues.get(A)?.clear(),this.editQueues.delete(A);if(this.worker)await new Promise((q)=>{let g=`dispose_${A}`;this.messageCallbacks.set(g,q);try{this.worker.postMessage({type:"DISPOSE_BUFFER",bufferId:A})}catch(E){console.error("Error disposing buffer",E),q(!1)}setTimeout(()=>{if(this.messageCallbacks.has(g))this.messageCallbacks.delete(g),console.warn({bufferId:A},"Timed out waiting for buffer to be disposed"),q(!1)},3000)});this.debouncer.clearDebounce(`reset-${A}`)}async destroy(){if(this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(Error("Client destroyed during initialization")),this.initializeResolvers=void 0;for(let[A,q]of this.messageCallbacks.entries())if(typeof q==="function")try{q({error:"Client destroyed"})}catch(g){}this.messageCallbacks.clear(),bU("tree-sitter-client"),this.debouncer.clear(),this.editQueues.clear(),this.buffers.clear(),this.stopWorker(),this.initialized=!1,this.initializePromise=void 0}async resetBuffer(A,q,g){if(!this.initialized)return;let E=this.buffers.get(A);if(!E||!E.hasParser){this.emitError("Cannot reset buffer with no parser",A);return}this.buffers.set(A,{...E,content:g,version:q}),this.debouncer.debounce(`reset-${A}`,10,()=>this.processEdit(A,[],g,q,!0))}getBuffer(A){return this.buffers.get(A)}getAllBuffers(){return Array.from(this.buffers.values())}isInitialized(){return this.initialized}async setDataPath(A){if(this.options.dataPath===A)return;if(this.options.dataPath=A,this.initialized&&this.worker){let q=`update_datapath_${this.messageIdCounter++}`;return new Promise((g,E)=>{this.messageCallbacks.set(q,(a)=>{if(a.error)E(Error(a.error));else g()}),this.worker.postMessage({type:"UPDATE_DATA_PATH",dataPath:A,messageId:q})})}}async clearCache(){if(!this.initialized||!this.worker)throw Error("Cannot clear cache: client is not initialized");let A=`clear_cache_${this.messageIdCounter++}`;return new Promise((q,g)=>{this.messageCallbacks.set(A,(E)=>{if(E.error)g(Error(E.error));else q()}),this.worker.postMessage({type:"CLEAR_CACHE",messageId:A})})}};ZA({name:"XDG_CONFIG_HOME",description:"Base directory for user-specific configuration files",type:"string",default:""});ZA({name:"XDG_DATA_HOME",description:"Base directory for user-specific data files",type:"string",default:""});cE=class cE extends rU{_appName;_globalConfigPath;_globalConfigFile;_localConfigFile;_globalDataPath;constructor(){super();this._appName="opentui"}get appName(){return this._appName}set appName(A){if(!nU(A))throw Error(`Invalid app name "${A}": must be a valid directory name`);if(this._appName!==A)this._appName=A,this._globalConfigPath=void 0,this._globalConfigFile=void 0,this._localConfigFile=void 0,this._globalDataPath=void 0,this.emit("paths:changed",this.toObject())}get globalConfigPath(){if(this._globalConfigPath===void 0){let A=$F.homedir(),g=EA.XDG_CONFIG_HOME||Lq.join(A,".config");this._globalConfigPath=Lq.join(g,this._appName)}return this._globalConfigPath}get globalConfigFile(){if(this._globalConfigFile===void 0)this._globalConfigFile=Lq.join(this.globalConfigPath,"init.ts");return this._globalConfigFile}get localConfigFile(){if(this._localConfigFile===void 0)this._localConfigFile=Lq.join(process.cwd(),`.${this._appName}.ts`);return this._localConfigFile}get globalDataPath(){if(this._globalDataPath===void 0){let A=$F.homedir(),g=EA.XDG_DATA_HOME||Lq.join(A,".local/share");this._globalDataPath=Lq.join(g,this._appName)}return this._globalDataPath}toObject(){return{globalConfigPath:this.globalConfigPath,globalConfigFile:this.globalConfigFile,localConfigFile:this.localConfigFile,globalDataPath:this.globalDataPath}}};A6=/\x1b]4;(\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g,XF=/\x1b](\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g;_A=process.arch==="x64"||process.arch==="arm64"?8:4,zq={u8:1,bool_u8:1,bool_u32:4,u16:2,i16:2,u32:4,u64:8,f32:4,f64:8,pointer:_A,i32:4},a_=Object.keys(zq);PF={...zq},F_={u8:(A,q)=>A.getUint8(q),bool_u8:(A,q)=>Boolean(A.getUint8(q)),bool_u32:(A,q)=>Boolean(A.getUint32(q,!0)),u16:(A,q)=>A.getUint16(q,!0),i16:(A,q)=>A.getInt16(q,!0),u32:(A,q)=>A.getUint32(q,!0),u64:(A,q)=>A.getBigUint64(q,!0),f32:(A,q)=>A.getFloat32(q,!0),f64:(A,q)=>A.getFloat64(q,!0),i32:(A,q)=>A.getInt32(q,!0),pointer:(A,q)=>_A===8?A.getBigUint64(q,!0):BigInt(A.getUint32(q,!0))};({pack:QA,unpack:fq}=uq("pointer"));WF=new TextEncoder,j_=new TextDecoder;hF=GA([["text","char*"],["text_len","u64",{lengthOf:"text"}],["fg","pointer",{optional:!0,packTransform:PE,unpackTransform:VE}],["bg","pointer",{optional:!0,packTransform:PE,unpackTransform:VE}],["attributes","u32",{default:0}],["link","char*",{default:""}],["link_len","u64",{lengthOf:"link"}]],{mapValue:(A)=>{if(!A.link||typeof A.link==="string")return A;return{...A,link:A.link.url}}}),E6=GA([["start","u32"],["end","u32"],["styleId","u32"],["priority","u8",{default:0}],["hlRef","u16",{default:0}]]),dA=GA([["row","u32"],["col","u32"],["offset","u32"]]),WA=GA([["visualRow","u32"],["visualCol","u32"],["logicalRow","u32"],["logicalCol","u32"],["offset","u32"]]),__=GK({wcwidth:0,unicode:1},"u8"),SF=GA([["kitty_keyboard","bool_u8"],["kitty_graphics","bool_u8"],["rgb","bool_u8"],["unicode",__],["sgr_pixels","bool_u8"],["color_scheme_updates","bool_u8"],["explicit_width","bool_u8"],["scaled_text","bool_u8"],["sixel","bool_u8"],["focus_tracking","bool_u8"],["sync","bool_u8"],["bracketed_paste","bool_u8"],["hyperlinks","bool_u8"],["osc52","bool_u8"],["explicit_cursor_positioning","bool_u8"],["term_name","char*"],["term_name_len","u64",{lengthOf:"term_name"}],["term_version","char*"],["term_version_len","u64",{lengthOf:"term_version"}],["term_from_xtversion","bool_u8"]]),zF=GA([["width","u8"],["char","u32"]]),$q=GA([["startCols",["u32"]],["startColsLen","u32",{lengthOf:"startCols"}],["widthCols",["u32"]],["widthColsLen","u32",{lengthOf:"widthCols"}],["sources",["u32"]],["sourcesLen","u32",{lengthOf:"sources"}],["wraps",["u32"]],["wrapsLen","u32",{lengthOf:"wraps"}],["widthColsMax","u32"]]),BF=GA([["lineCount","u32"],["widthColsMax","u32"]]),CF=GA([["x","u32"],["y","u32"],["visible","bool_u8"],["style","u8"],["blinking","bool_u8"],["r","f32"],["g","f32"],["b","f32"],["a","f32"]]),O_=GA([["style","u8",{default:255}],["blinking","u8",{default:255}],["color","pointer",{optional:!0,packTransform:PE,unpackTransform:VE}],["cursor","u8",{default:255}]]),G_=GA([["drawInner","bool_u8",{default:!0}],["drawOuter","bool_u8",{default:!0}]]),kF=GA([["gpaSafeStats","bool_u8"],["gpaMemoryLimitTracking","bool_u8"]]),DF=GA([["totalRequestedBytes","u64"],["activeAllocations","u64"],["smallAllocations","u64"],["largeAllocations","u64"],["requestedBytesValid","bool_u8"]]),Q_=GK({grow:0,block:1},"u8"),wF=GA([["chunkSize","u32",{default:65536}],["initialChunks","u32",{default:2}],["maxBytes","u64",{default:0n}],["growthPolicy",Q_,{default:"grow"}],["autoCommitOnFull","bool_u8",{default:!0}],["spanQueueCapacity","u32",{default:0}]]),yF=GA([["bytesWritten","u64"],["spansCommitted","u64"],["chunks","u32"],["pendingSpans","u32"]]),M6=GA([["chunkPtr","pointer"],["offset","u32"],["len","u32"],["chunkIndex","u32"],["reserved","u32",{default:0}]],{reduceValue:(A)=>({chunkPtr:A.chunkPtr,offset:A.offset,len:A.len,chunkIndex:A.chunkIndex})}),mF=GA([["ptr","pointer"],["len","u32"],["reserved","u32",{default:0}]],{reduceValue:(A)=>({ptr:A.ptr,len:A.len})}),Y_=await import(`@opentui/core-${process.platform}-${process.arch}/index.ts`),Ig=Y_.default;if(KK(Ig))Ig=Ig.replace("../","");if(!A_(Ig))throw Error(`opentui is not supported on the current platform: ${process.platform}-${process.arch}`);ZA({name:"OTUI_DEBUG_FFI",description:"Enable debug logging for the FFI bindings.",type:"boolean",default:!1});ZA({name:"OTUI_TRACE_FFI",description:"Enable tracing for the FFI bindings.",type:"boolean",default:!1});ZA({name:"OPENTUI_FORCE_WCWIDTH",description:"Use wcwidth for character width calculations",type:"boolean",default:!1});ZA({name:"OPENTUI_FORCE_UNICODE",description:"Force Mode 2026 Unicode support in terminal capabilities",type:"boolean",default:!1});ZA({name:"OPENTUI_GRAPHICS",description:"Enable Kitty graphics protocol detection",type:"boolean",default:!0});ZA({name:"OPENTUI_FORCE_NOZWJ",description:"Use no_zwj width method (Unicode without ZWJ joining)",type:"boolean",default:!1});M_={block:0,line:1,underline:2,default:3},J_=["block","line","underline","default"],H_={default:0,pointer:1,text:2,crosshair:3,move:4,"not-allowed":5};((A)=>{A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug"})(QK||={});try{j6=new fE(YK)}catch(A){}MK=Symbol.for("@opentui/core/Renderable");((A)=>{A.LAYOUT_CHANGED="layout-changed",A.ADDED="added",A.REMOVED="removed",A.RESIZED="resized"})(JK||={});((A)=>{A.FOCUSED="focused",A.BLURRED="blurred"})(HK||={});Rg=class Rg extends X_{[MK]=!0;static renderableNumber=1;_id;num;_dirty=!1;parent=null;_visible=!0;constructor(A){super();this.num=Rg.renderableNumber++,this._id=A.id??`renderable-${this.num}`}get id(){return this._id}set id(A){this._id=A}get isDirty(){return this._dirty}markClean(){this._dirty=!1}markDirty(){this._dirty=!0}destroy(){}destroyRecursively(){}get visible(){return this._visible}set visible(A){this._visible=A}};J6=O6.Config.create();J6.setUseWebDefaults(!1);J6.setPointScaleFactor(1);OA=class OA extends Rg{static renderablesByNumber=new Map;_isDestroyed=!1;_ctx;_translateX=0;_translateY=0;_x=0;_y=0;_width;_height;_widthValue=0;_heightValue=0;_zIndex;selectable=!1;buffered;frameBuffer=null;_focusable=!1;_focused=!1;keypressHandler=null;pasteHandler=null;_live=!1;_liveCount=0;_sizeChangeListener=void 0;_mouseListener=null;_mouseListeners={};_pasteListener=void 0;_keyListeners={};yogaNode;_positionType="relative";_overflow="visible";_position={};_opacity=1;_flexShrink=1;renderableMapById=new Map;_childrenInLayoutOrder=[];_childrenInZIndexOrder=[];needsZIndexSort=!1;parent=null;childrenPrimarySortDirty=!0;childrenSortedByPrimaryAxis=[];_shouldUpdateBefore=new Set;onLifecyclePass=null;renderBefore;renderAfter;constructor(A,q){super(q);if(this._ctx=A,OA.renderablesByNumber.set(this.num,this),I_(this.id,q),this.renderBefore=q.renderBefore,this.renderAfter=q.renderAfter,this._width=q.width??"auto",this._height=q.height??"auto",typeof this._width==="number")this._widthValue=this._width;if(typeof this._height==="number")this._heightValue=this._height;if(this._zIndex=q.zIndex??0,this._visible=q.visible!==!1,this.buffered=q.buffered??!1,this._live=q.live??!1,this._liveCount=this._live&&this._visible?1:0,this._opacity=q.opacity!==void 0?Math.max(0,Math.min(1,q.opacity)):1,this.yogaNode=O6.Node.create(J6),this.yogaNode.setDisplay(this._visible?Tq.Flex:Tq.None),this.setupYogaProperties(q),this.applyEventOptions(q),this.buffered)this.createFrameBuffer()}get id(){return this._id}set id(A){if(this.parent)this.parent.renderableMapById.delete(this.id),this.parent.renderableMapById.set(A,this);super.id=A}get focusable(){return this._focusable}set focusable(A){this._focusable=A}get ctx(){return this._ctx}get visible(){return this._visible}get primaryAxis(){let A=this.yogaNode.getFlexDirection();return A===2||A===3?"row":"column"}set visible(A){if(this._visible===A)return;let q=this._visible;if(this._visible=A,this.yogaNode.setDisplay(A?Tq.Flex:Tq.None),this._live){if(!q&&A)this.propagateLiveCount(1);else if(q&&!A)this.propagateLiveCount(-1)}if(this._focused)this.blur();this.requestRender()}get opacity(){return this._opacity}set opacity(A){let q=Math.max(0,Math.min(1,A));if(this._opacity!==q)this._opacity=q,this.requestRender()}hasSelection(){return!1}onSelectionChanged(A){return!1}getSelectedText(){return""}shouldStartSelection(A,q){return!1}focus(){if(this._isDestroyed||this._focused||!this._focusable)return;this._ctx.focusRenderable(this),this._focused=!0,this.requestRender(),this.keypressHandler=(A)=>{if(this._isDestroyed)return;if(this._keyListeners.down?.(A),this._isDestroyed)return;if(!A.defaultPrevented&&this.handleKeyPress)this.handleKeyPress(A)},this.pasteHandler=(A)=>{if(this._isDestroyed)return;if(this._pasteListener?.call(this,A),this._isDestroyed)return;if(!A.defaultPrevented&&this.handlePaste)this.handlePaste(A)},this.ctx._internalKeyInput.onInternal("keypress",this.keypressHandler),this.ctx._internalKeyInput.onInternal("paste",this.pasteHandler),this.emit("focused")}blur(){if(!this._focused||!this._focusable)return;if(this._focused=!1,this.requestRender(),this.keypressHandler)this.ctx._internalKeyInput.offInternal("keypress",this.keypressHandler),this.keypressHandler=null;if(this.pasteHandler)this.ctx._internalKeyInput.offInternal("paste",this.pasteHandler),this.pasteHandler=null;this.emit("blurred")}get focused(){return this._focused}get live(){return this._live}get liveCount(){return this._liveCount}set live(A){if(this._live===A)return;if(this._live=A,this._visible){let q=A?1:-1;this.propagateLiveCount(q)}}propagateLiveCount(A){this._liveCount+=A,this.parent?.propagateLiveCount(A)}findDescendantById(A){for(let q of this._childrenInLayoutOrder){if(q.id===A)return q;if(sq(q)){let g=q.findDescendantById(A);if(g)return g}}return}requestRender(){this.markDirty(),this._ctx.requestRender()}get translateX(){return this._translateX}set translateX(A){if(this._translateX===A)return;if(this._translateX=A,this.parent)this.parent.childrenPrimarySortDirty=!0;this.requestRender()}get translateY(){return this._translateY}set translateY(A){if(this._translateY===A)return;if(this._translateY=A,this.parent)this.parent.childrenPrimarySortDirty=!0;this.requestRender()}get x(){if(this.parent)return this.parent.x+this._x+this._translateX;return this._x+this._translateX}set x(A){this.left=A}get top(){return this._position.top}set top(A){if(aq(A)||A===void 0)this.setPosition({top:A})}get right(){return this._position.right}set right(A){if(aq(A)||A===void 0)this.setPosition({right:A})}get bottom(){return this._position.bottom}set bottom(A){if(aq(A)||A===void 0)this.setPosition({bottom:A})}get left(){return this._position.left}set left(A){if(aq(A)||A===void 0)this.setPosition({left:A})}get y(){if(this.parent)return this.parent.y+this._y+this._translateY;return this._y+this._translateY}set y(A){this.top=A}get width(){return this._widthValue}set width(A){if(F6(A)){if(this._width=A,this.yogaNode.setWidth(A),typeof A==="number"&&this._flexShrink===1)this._flexShrink=0,this.yogaNode.setFlexShrink(0);this.requestRender()}}get height(){return this._heightValue}set height(A){if(F6(A)){if(this._height=A,this.yogaNode.setHeight(A),typeof A==="number"&&this._flexShrink===1)this._flexShrink=0,this.yogaNode.setFlexShrink(0);this.requestRender()}}get zIndex(){return this._zIndex}set zIndex(A){if(this._zIndex!==A)this._zIndex=A,this.parent?.requestZIndexSort(),this.requestRender()}requestZIndexSort(){this.needsZIndexSort=!0}ensureZIndexSorted(){if(this.needsZIndexSort)this._childrenInZIndexOrder.sort((A,q)=>A.zIndex>q.zIndex?1:A.zIndex<q.zIndex?-1:0),this.needsZIndexSort=!1}getChildrenSortedByPrimaryAxis(){if(!this.childrenPrimarySortDirty&&this.childrenSortedByPrimaryAxis.length===this._childrenInLayoutOrder.length)return this.childrenSortedByPrimaryAxis;let A=this.yogaNode.getFlexDirection(),q=A===2||A===3?"x":"y",g=[...this._childrenInLayoutOrder];return g.sort((E,a)=>{let F=q==="y"?E.y:E.x,K=q==="y"?a.y:a.x;return F-K}),this.childrenSortedByPrimaryAxis=g,this.childrenPrimarySortDirty=!1,this.childrenSortedByPrimaryAxis}setupYogaProperties(A){let q=this.yogaNode;if(cF(A.flexBasis))q.setFlexBasis(A.flexBasis);if(Xq(A.minWidth))q.setMinWidth(A.minWidth);if(Xq(A.minHeight))q.setMinHeight(A.minHeight);if(A.flexGrow!==void 0)q.setFlexGrow(A.flexGrow);else q.setFlexGrow(0);if(A.flexShrink!==void 0)this._flexShrink=A.flexShrink,q.setFlexShrink(A.flexShrink);else{let E=typeof A.width==="number",a=typeof A.height==="number";this._flexShrink=E||a?0:1,q.setFlexShrink(this._flexShrink)}if(q.setFlexDirection(LE(A.flexDirection)),q.setFlexWrap(TE(A.flexWrap)),q.setAlignItems(HE(A.alignItems)),q.setJustifyContent($E(A.justifyContent)),q.setAlignSelf(JE(A.alignSelf)),F6(A.width))this._width=A.width,this.yogaNode.setWidth(A.width);if(F6(A.height))this._height=A.height,this.yogaNode.setHeight(A.height);if(this._positionType=A.position==="absolute"?"absolute":"relative",this._positionType!=="relative")q.setPositionType(IE(this._positionType));if(this._overflow=A.overflow==="hidden"?"hidden":A.overflow==="scroll"?"scroll":"visible",this._overflow!=="visible")q.setOverflow(XE(this._overflow));if(A.top!==void 0||A.right!==void 0||A.bottom!==void 0||A.left!==void 0)this._position={top:A.top,right:A.right,bottom:A.bottom,left:A.left},this.updateYogaPosition(this._position);if(Xq(A.maxWidth))q.setMaxWidth(A.maxWidth);if(Xq(A.maxHeight))q.setMaxHeight(A.maxHeight);this.setupMarginAndPadding(A)}setupMarginAndPadding(A){let q=this.yogaNode;if(XA(A.margin))q.setMargin(p.All,A.margin);if(XA(A.marginX))q.setMargin(p.Horizontal,A.marginX);if(XA(A.marginY))q.setMargin(p.Vertical,A.marginY);if(XA(A.marginTop))q.setMargin(p.Top,A.marginTop);if(XA(A.marginRight))q.setMargin(p.Right,A.marginRight);if(XA(A.marginBottom))q.setMargin(p.Bottom,A.marginBottom);if(XA(A.marginLeft))q.setMargin(p.Left,A.marginLeft);if(IA(A.padding))q.setPadding(p.All,A.padding);if(IA(A.paddingX))q.setPadding(p.Horizontal,A.paddingX);if(IA(A.paddingY))q.setPadding(p.Vertical,A.paddingY);if(IA(A.paddingTop))q.setPadding(p.Top,A.paddingTop);if(IA(A.paddingRight))q.setPadding(p.Right,A.paddingRight);if(IA(A.paddingBottom))q.setPadding(p.Bottom,A.paddingBottom);if(IA(A.paddingLeft))q.setPadding(p.Left,A.paddingLeft)}set position(A){if(!T_(A)||this._positionType===A)return;this._positionType=A,this.yogaNode.setPositionType(IE(A)),this.requestRender()}get overflow(){return this._overflow}set overflow(A){if(!P_(A)||this._overflow===A)return;this._overflow=A,this.yogaNode.setOverflow(XE(A)),this.requestRender()}setPosition(A){this._position={...this._position,...A},this.updateYogaPosition(A)}updateYogaPosition(A){let q=this.yogaNode,{top:g,right:E,bottom:a,left:F}=A;if(aq(g))if(g==="auto")q.setPositionAuto(p.Top);else q.setPosition(p.Top,g);if(aq(E))if(E==="auto")q.setPositionAuto(p.Right);else q.setPosition(p.Right,E);if(aq(a))if(a==="auto")q.setPositionAuto(p.Bottom);else q.setPosition(p.Bottom,a);if(aq(F))if(F==="auto")q.setPositionAuto(p.Left);else q.setPosition(p.Left,F);this.requestRender()}set flexGrow(A){if(A==null)this.yogaNode.setFlexGrow(0);else this.yogaNode.setFlexGrow(A);this.requestRender()}set flexShrink(A){let q=A==null?1:A;this._flexShrink=q,this.yogaNode.setFlexShrink(q),this.requestRender()}set flexDirection(A){this.yogaNode.setFlexDirection(LE(A)),this.requestRender()}set flexWrap(A){this.yogaNode.setFlexWrap(TE(A)),this.requestRender()}set alignItems(A){this.yogaNode.setAlignItems(HE(A)),this.requestRender()}set justifyContent(A){this.yogaNode.setJustifyContent($E(A)),this.requestRender()}set alignSelf(A){this.yogaNode.setAlignSelf(JE(A)),this.requestRender()}set flexBasis(A){if(cF(A))this.yogaNode.setFlexBasis(A),this.requestRender()}set minWidth(A){if(Xq(A))this.yogaNode.setMinWidth(A),this.requestRender()}set maxWidth(A){if(Xq(A))this.yogaNode.setMaxWidth(A),this.requestRender()}set minHeight(A){if(Xq(A))this.yogaNode.setMinHeight(A),this.requestRender()}set maxHeight(A){if(Xq(A))this.yogaNode.setMaxHeight(A),this.requestRender()}set margin(A){if(XA(A))this.yogaNode.setMargin(p.All,A),this.requestRender()}set marginX(A){if(XA(A))this.yogaNode.setMargin(p.Horizontal,A),this.requestRender()}set marginY(A){if(XA(A))this.yogaNode.setMargin(p.Vertical,A),this.requestRender()}set marginTop(A){if(XA(A))this.yogaNode.setMargin(p.Top,A),this.requestRender()}set marginRight(A){if(XA(A))this.yogaNode.setMargin(p.Right,A),this.requestRender()}set marginBottom(A){if(XA(A))this.yogaNode.setMargin(p.Bottom,A),this.requestRender()}set marginLeft(A){if(XA(A))this.yogaNode.setMargin(p.Left,A),this.requestRender()}set padding(A){if(IA(A))this.yogaNode.setPadding(p.All,A),this.requestRender()}set paddingX(A){if(IA(A))this.yogaNode.setPadding(p.Horizontal,A),this.requestRender()}set paddingY(A){if(IA(A))this.yogaNode.setPadding(p.Vertical,A),this.requestRender()}set paddingTop(A){if(IA(A))this.yogaNode.setPadding(p.Top,A),this.requestRender()}set paddingRight(A){if(IA(A))this.yogaNode.setPadding(p.Right,A),this.requestRender()}set paddingBottom(A){if(IA(A))this.yogaNode.setPadding(p.Bottom,A),this.requestRender()}set paddingLeft(A){if(IA(A))this.yogaNode.setPadding(p.Left,A),this.requestRender()}getLayoutNode(){return this.yogaNode}updateFromLayout(){let A=this.yogaNode.getComputedLayout(),q=this._x,g=this._y,E=this._widthValue,a=this._heightValue;this._x=A.left,this._y=A.top;let F=Math.max(A.width,1),K=Math.max(A.height,1),Z=E!==F||a!==K;if(this._widthValue=F,this._heightValue=K,Z)this.onLayoutResize(F,K);if(q!==this._x||g!==this._y){if(this.parent)this.parent.childrenPrimarySortDirty=!0}}onLayoutResize(A,q){if(this._visible)this.handleFrameBufferResize(A,q),this.onResize(A,q),this.requestRender()}handleFrameBufferResize(A,q){if(!this.buffered)return;if(A<=0||q<=0)return;if(this.frameBuffer)this.frameBuffer.resize(A,q);else this.createFrameBuffer()}createFrameBuffer(){let A=this.width,q=this.height;if(A<=0||q<=0)return;try{let g=this._ctx.widthMethod;this.frameBuffer=Zq.create(A,q,g,{respectAlpha:!0,id:`framebuffer-${this.id}`})}catch(g){console.error(`Failed to create frame buffer for ${this.id}:`,g),this.frameBuffer=null}}onResize(A,q){this.onSizeChange?.(),this.emit("resize")}replaceParent(A){if(A.parent)A.parent.remove(A.id);A.parent=this}add(A,q){if(!A)return-1;let g=xE(this._ctx,A);if(!g)return-1;if(g.isDestroyed)return console.warn(`Renderable with id ${g.id} was already destroyed, skipping add`),-1;let E=q!==void 0?this._childrenInLayoutOrder[q]:void 0;if(E)return this.insertBefore(g,E);if(g.parent===this)this.yogaNode.removeChild(g.getLayoutNode()),this._childrenInLayoutOrder.splice(this._childrenInLayoutOrder.indexOf(g),1);else{if(this.replaceParent(g),this.needsZIndexSort=!0,this.renderableMapById.set(g.id,g),this._childrenInZIndexOrder.push(g),typeof g.onLifecyclePass==="function")this._ctx.registerLifecyclePass(g);if(g._liveCount>0)this.propagateLiveCount(g._liveCount)}let a=g.getLayoutNode(),F=this._childrenInLayoutOrder.length;return this._childrenInLayoutOrder.push(g),this.yogaNode.insertChild(a,F),this.childrenPrimarySortDirty=!0,this._shouldUpdateBefore.add(g),this.requestRender(),F}insertBefore(A,q){if(!q)return this.add(A);if(!A)return-1;let g=xE(this._ctx,A);if(!g)return-1;if(g.isDestroyed)return console.warn(`Renderable with id ${g.id} was already destroyed, skipping insertBefore`),-1;if(!sq(q))throw Error("Anchor must be a Renderable");if(q.isDestroyed)return console.warn(`Anchor with id ${q.id} was already destroyed, skipping insertBefore`),-1;if(!this.renderableMapById.has(q.id))return console.warn(`Anchor with id ${q.id} does not exist within the parent ${this.id}, skipping insertBefore`),-1;if(g===q||g.id===q.id)return console.warn(`Anchor is the same as the node ${g.id} being inserted, skipping insertBefore`),-1;if(g.parent===this)this.yogaNode.removeChild(g.getLayoutNode()),this._childrenInLayoutOrder.splice(this._childrenInLayoutOrder.indexOf(g),1);else{if(this.replaceParent(g),this.needsZIndexSort=!0,this.renderableMapById.set(g.id,g),this._childrenInZIndexOrder.push(g),typeof g.onLifecyclePass==="function")this._ctx.registerLifecyclePass(g);if(g._liveCount>0)this.propagateLiveCount(g._liveCount)}this.childrenPrimarySortDirty=!0;let E=this._childrenInLayoutOrder.indexOf(q),a=Math.max(0,Math.min(E,this._childrenInLayoutOrder.length));return this._childrenInLayoutOrder.splice(a,0,g),this.yogaNode.insertChild(g.getLayoutNode(),a),this._shouldUpdateBefore.add(g),this.requestRender(),a}getRenderable(A){return this.renderableMapById.get(A)}remove(A){if(!A)return;if(this.renderableMapById.has(A)){let q=this.renderableMapById.get(A);if(q){if(q._liveCount>0)this.propagateLiveCount(-q._liveCount);let g=q.getLayoutNode();this.yogaNode.removeChild(g),this.requestRender(),q.onRemove(),q.parent=null,this._ctx.unregisterLifecyclePass(q),this.renderableMapById.delete(A);let E=this._childrenInLayoutOrder.findIndex((F)=>F.id===A);if(E!==-1)this._childrenInLayoutOrder.splice(E,1);let a=this._childrenInZIndexOrder.findIndex((F)=>F.id===A);if(a!==-1)this._childrenInZIndexOrder.splice(a,1);this.childrenPrimarySortDirty=!0}}}onRemove(){}getChildren(){return[...this._childrenInLayoutOrder]}getChildrenCount(){return this._childrenInLayoutOrder.length}updateLayout(A,q=[]){if(!this.visible)return;if(this.onUpdate(A),this._isDestroyed)return;if(this.updateFromLayout(),this._shouldUpdateBefore.size>0){for(let F of this._shouldUpdateBefore)if(!F.isDestroyed)F.updateFromLayout();this._shouldUpdateBefore.clear()}if(this._isDestroyed)return;let g=this._opacity<1;if(g)q.push({action:"pushOpacity",opacity:this._opacity});q.push({action:"render",renderable:this}),this.ensureZIndexSorted();let E=this._overflow!=="visible"&&this.width>0&&this.height>0;if(E){let F=this.getScissorRect();q.push({action:"pushScissorRect",x:F.x,y:F.y,width:F.width,height:F.height,screenX:this.x,screenY:this.y})}let a=this._getVisibleChildren();for(let F of this._childrenInZIndexOrder){if(!a.includes(F.num)){F.updateFromLayout();continue}F.updateLayout(A,q)}if(E)q.push({action:"popScissorRect"});if(g)q.push({action:"popOpacity"})}render(A,q){let g=A;if(this.buffered&&this.frameBuffer)g=this.frameBuffer;if(this.renderBefore)this.renderBefore.call(this,g,q);if(this.renderSelf(g,q),this.renderAfter)this.renderAfter.call(this,g,q);if(this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.buffered&&this.frameBuffer)A.drawFrameBuffer(this.x,this.y,this.frameBuffer)}_getVisibleChildren(){return this._childrenInZIndexOrder.map((A)=>A.num)}onUpdate(A){}getScissorRect(){return{x:this.buffered?0:this.x,y:this.buffered?0:this.y,width:this.width,height:this.height}}renderSelf(A,q){}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this.parent)this.parent.remove(this.id);if(this.frameBuffer)this.frameBuffer.destroy(),this.frameBuffer=null;for(let A of this._childrenInLayoutOrder)this.remove(A.id);this._childrenInLayoutOrder=[],this.renderableMapById.clear(),OA.renderablesByNumber.delete(this.num),this.blur(),this.removeAllListeners(),this.destroySelf();try{this.yogaNode.free()}catch(A){}}destroyRecursively(){let A=[...this._childrenInLayoutOrder];for(let q of A)q.destroyRecursively();this.destroy()}destroySelf(){}processMouseEvent(A){if(this._mouseListener?.call(this,A),this._mouseListeners[A.type]?.call(this,A),this.onMouseEvent(A),this.parent&&!A.propagationStopped)this.parent.processMouseEvent(A)}onMouseEvent(A){}set onMouse(A){if(A)this._mouseListener=A;else this._mouseListener=null}set onMouseDown(A){if(A)this._mouseListeners.down=A;else delete this._mouseListeners.down}set onMouseUp(A){if(A)this._mouseListeners.up=A;else delete this._mouseListeners.up}set onMouseMove(A){if(A)this._mouseListeners.move=A;else delete this._mouseListeners.move}set onMouseDrag(A){if(A)this._mouseListeners.drag=A;else delete this._mouseListeners.drag}set onMouseDragEnd(A){if(A)this._mouseListeners["drag-end"]=A;else delete this._mouseListeners["drag-end"]}set onMouseDrop(A){if(A)this._mouseListeners.drop=A;else delete this._mouseListeners.drop}set onMouseOver(A){if(A)this._mouseListeners.over=A;else delete this._mouseListeners.over}set onMouseOut(A){if(A)this._mouseListeners.out=A;else delete this._mouseListeners.out}set onMouseScroll(A){if(A)this._mouseListeners.scroll=A;else delete this._mouseListeners.scroll}set onPaste(A){this._pasteListener=A}get onPaste(){return this._pasteListener}set onKeyDown(A){if(A)this._keyListeners.down=A;else delete this._keyListeners.down}get onKeyDown(){return this._keyListeners.down}set onSizeChange(A){this._sizeChangeListener=A}get onSizeChange(){return this._sizeChangeListener}applyEventOptions(A){this.onMouse=A.onMouse,this.onMouseDown=A.onMouseDown,this.onMouseUp=A.onMouseUp,this.onMouseMove=A.onMouseMove,this.onMouseDrag=A.onMouseDrag,this.onMouseDragEnd=A.onMouseDragEnd,this.onMouseDrop=A.onMouseDrop,this.onMouseOver=A.onMouseOver,this.onMouseOut=A.onMouseOut,this.onMouseScroll=A.onMouseScroll,this.onPaste=A.onPaste,this.onKeyDown=A.onKeyDown,this.onSizeChange=A.onSizeChange}};dE=class dE extends OA{renderList=[];constructor(A){super(A,{id:"__root__",zIndex:0,visible:!0,width:A.width,height:A.height,enableLayout:!0});if(this.yogaNode)this.yogaNode.free();this.yogaNode=O6.Node.create(J6),this.yogaNode.setWidth(A.width),this.yogaNode.setHeight(A.height),this.yogaNode.setFlexDirection(hA.Column),this.calculateLayout()}render(A,q){if(!this.visible)return;for(let g of this._ctx.getLifecyclePasses())g.onLifecyclePass?.call(g);if(this.yogaNode.isDirty())this.calculateLayout();this.renderList.length=0,this.updateLayout(q,this.renderList),this._ctx.clearHitGridScissorRects();for(let g=1;g<this.renderList.length;g++){let E=this.renderList[g];switch(E.action){case"render":if(!E.renderable.isDestroyed)E.renderable.render(A,q);break;case"pushScissorRect":A.pushScissorRect(E.x,E.y,E.width,E.height),this._ctx.pushHitGridScissorRect(E.screenX,E.screenY,E.width,E.height);break;case"popScissorRect":A.popScissorRect(),this._ctx.popHitGridScissorRect();break;case"pushOpacity":A.pushOpacity(E.opacity);break;case"popOpacity":A.popOpacity();break}}}propagateLiveCount(A){let q=this._liveCount;if(this._liveCount+=A,q===0&&this._liveCount>0)this._ctx.requestLive();else if(q>0&&this._liveCount===0)this._ctx.dropLive()}calculateLayout(){this.yogaNode.calculateLayout(this.width,this.height,lq.LTR),this.emit("layout-changed")}resize(A,q){this.width=A,this.height=q,this.emit("resized",{width:A,height:q})}};x_=Symbol.for("@opentui/core/VNode");IK=class IK extends z_{output=[];constructor(){super()}get size(){return this.output.length}write(A,q){this.output.push({stream:A,output:q}),this.emit("write",A,q)}claimOutput(){let A=this.output.map((q)=>q.output).join("");return this.clear(),A}clear(){this.output=[]}};NE=class NE extends S_{stream;capture;isTTY=!0;columns=process.stdout.columns||80;rows=process.stdout.rows||24;constructor(A,q){super();this.stream=A,this.capture=q}_write(A,q,g){let E=A.toString();this.capture.write(this.stream,E),g()}getColorDepth(){return process.stdout.getColorDepth?.()||8}};Uq={enter:"return",esc:"escape"};mA=kq("ConsoleCapture",()=>new IK);ZA({name:"OTUI_USE_CONSOLE",description:"Whether to use the console. Will not capture console output if set to false.",type:"boolean",default:!0});ZA({name:"SHOW_CONSOLE",description:"Show the console at startup if set to true.",type:"boolean",default:!1});TK=class TK extends XK{_cachedLogs=[];MAX_CACHE_SIZE=1000;_collectCallerInfo=!1;_cachingEnabled=!0;_originalConsole=null;get cachedLogs(){return this._cachedLogs}constructor(){super()}activate(){if(!this._originalConsole)this._originalConsole=global.console;this.setupConsoleCapture(),this.overrideConsoleMethods()}setupConsoleCapture(){if(!EA.OTUI_USE_CONSOLE)return;let A=new NE("stdout",mA),q=new NE("stderr",mA);global.console=new N_({stdout:A,stderr:q,colorMode:!0,inspectOptions:{compact:!1,breakLength:80,depth:2}})}overrideConsoleMethods(){console.log=(...A)=>{this.appendToConsole("LOG",...A)},console.info=(...A)=>{this.appendToConsole("INFO",...A)},console.warn=(...A)=>{this.appendToConsole("WARN",...A)},console.error=(...A)=>{this.appendToConsole("ERROR",...A)},console.debug=(...A)=>{this.appendToConsole("DEBUG",...A)}}setCollectCallerInfo(A){this._collectCallerInfo=A}clearConsole(){this._cachedLogs=[]}setCachingEnabled(A){this._cachingEnabled=A}deactivate(){this.restoreOriginalConsole()}restoreOriginalConsole(){if(this._originalConsole)global.console=this._originalConsole;this.setupConsoleCapture()}addLogEntry(A,...q){let g=this._collectCallerInfo?C_():null,E=[new Date,A,q,g];if(this._cachingEnabled){if(this._cachedLogs.length>=this.MAX_CACHE_SIZE)this._cachedLogs.shift();this._cachedLogs.push(E)}return E}appendToConsole(A,...q){if(this._cachedLogs.length>=this.MAX_CACHE_SIZE)this._cachedLogs.shift();let g=this.addLogEntry(A,...q);this.emit("entry",g)}destroy(){this.deactivate()}};TA=kq("TerminalConsoleCache",()=>{let A=new TK;return process.on("exit",()=>{A.destroy()}),A});((A)=>{A.TOP="top",A.BOTTOM="bottom",A.LEFT="left",A.RIGHT="right"})(PK||={});OE=[{name:"up",action:"scroll-up"},{name:"down",action:"scroll-down"},{name:"up",shift:!0,action:"scroll-to-top"},{name:"down",shift:!0,action:"scroll-to-bottom"},{name:"p",ctrl:!0,action:"position-previous"},{name:"o",ctrl:!0,action:"position-next"},{name:"+",action:"size-increase"},{name:"=",shift:!0,action:"size-increase"},{name:"-",action:"size-decrease"},{name:"s",ctrl:!0,action:"save-logs"},{name:"c",ctrl:!0,shift:!0,action:"copy-selection"}],k_={position:"bottom",sizePercent:30,zIndex:1/0,colorInfo:"#00FFFF",colorWarn:"#FFFF00",colorError:"#FF0000",colorDebug:"#808080",colorDefault:"#FFFFFF",backgroundColor:AA.fromValues(0.1,0.1,0.1,0.7),startInDebugMode:!1,title:"Console",titleBarColor:AA.fromValues(0.05,0.05,0.05,0.7),titleBarTextColor:"#FFFFFF",cursorColor:"#00A0FF",maxStoredLogs:2000,maxDisplayLines:3000,onCopySelection:void 0,keyBindings:void 0,keyAliasMap:void 0,selectionColor:AA.fromValues(0.3,0.5,0.8,0.5),copyButtonColor:"#00A0FF"};tE=class tE extends XK{isVisible=!1;isFocused=!1;renderer;keyHandler;options;_debugModeEnabled=!1;frameBuffer=null;consoleX=0;consoleY=0;consoleWidth=0;consoleHeight=0;scrollTopIndex=0;isScrolledToBottom=!0;currentLineIndex=0;_displayLines=[];_allLogEntries=[];_needsFrameBufferUpdate=!1;_entryListener;_selectionStart=null;_selectionEnd=null;_isDragging=!1;_copyButtonBounds={x:0,y:0,width:0,height:0};_autoScrollInterval=null;_keyBindingsMap;_keyAliasMap;_keyBindings;_mergedKeyBindings;_actionHandlers;markNeedsRerender(){this._needsFrameBufferUpdate=!0,this.renderer.requestRender()}getCopyButtonLabel(){let A=this._mergedKeyBindings.filter((g)=>g.action==="copy-selection"),q=A[A.length-1];if(q)return`[Copy (${B_(q)})]`;return"[Copy]"}_rgbaInfo;_rgbaWarn;_rgbaError;_rgbaDebug;_rgbaDefault;backgroundColor;_rgbaTitleBar;_rgbaTitleBarText;_title;_rgbaCursor;_rgbaSelection;_rgbaCopyButton;_positions=["top","right","bottom","left"];constructor(A,q={}){super();if(this.renderer=A,this.options={...k_,...q},this.keyHandler=this.handleKeyPress.bind(this),this._debugModeEnabled=this.options.startInDebugMode,TA.setCollectCallerInfo(this._debugModeEnabled),this._rgbaInfo=R(this.options.colorInfo),this._rgbaWarn=R(this.options.colorWarn),this._rgbaError=R(this.options.colorError),this._rgbaDebug=R(this.options.colorDebug),this._rgbaDefault=R(this.options.colorDefault),this.backgroundColor=R(this.options.backgroundColor),this._rgbaTitleBar=R(this.options.titleBarColor),this._rgbaTitleBarText=R(this.options.titleBarTextColor||this.options.colorDefault),this._title=this.options.title,this._rgbaCursor=R(this.options.cursorColor),this._rgbaSelection=R(this.options.selectionColor),this._rgbaCopyButton=R(this.options.copyButtonColor),this._keyAliasMap=_q(Uq,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[],this._mergedKeyBindings=xA(OE,this._keyBindings),this._keyBindingsMap=RA(this._mergedKeyBindings,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._updateConsoleDimensions(),this._scrollToBottom(!0),this._entryListener=(g)=>{this._handleNewLog(g)},TA.on("entry",this._entryListener),EA.SHOW_CONSOLE)this.show()}buildActionHandlers(){return new Map([["scroll-up",()=>this.scrollUp()],["scroll-down",()=>this.scrollDown()],["scroll-to-top",()=>this.scrollToTop()],["scroll-to-bottom",()=>this.scrollToBottomAction()],["position-previous",()=>this.positionPrevious()],["position-next",()=>this.positionNext()],["size-increase",()=>this.sizeIncrease()],["size-decrease",()=>this.sizeDecrease()],["save-logs",()=>this.saveLogsAction()],["copy-selection",()=>this.triggerCopyAction()]])}activate(){TA.activate()}deactivate(){TA.deactivate()}_handleNewLog(A){if(!this.isVisible)return;if(this._allLogEntries.push(A),this._allLogEntries.length>this.options.maxStoredLogs)this._allLogEntries.splice(0,this._allLogEntries.length-this.options.maxStoredLogs);let q=this._processLogEntry(A);if(this._displayLines.push(...q),this._displayLines.length>this.options.maxDisplayLines){this._displayLines.splice(0,this._displayLines.length-this.options.maxDisplayLines);let g=this._displayLines.length-this.options.maxDisplayLines;this.scrollTopIndex=Math.max(0,this.scrollTopIndex-g)}if(this.isScrolledToBottom)this._scrollToBottom();this.markNeedsRerender()}_updateConsoleDimensions(A,q){let g=A??this.renderer.width,E=q??this.renderer.height,a=this.options.sizePercent/100;switch(this.options.position){case"top":this.consoleX=0,this.consoleY=0,this.consoleWidth=g,this.consoleHeight=Math.max(1,Math.floor(E*a));break;case"bottom":this.consoleHeight=Math.max(1,Math.floor(E*a)),this.consoleWidth=g,this.consoleX=0,this.consoleY=E-this.consoleHeight;break;case"left":this.consoleWidth=Math.max(1,Math.floor(g*a)),this.consoleHeight=E,this.consoleX=0,this.consoleY=0;break;case"right":this.consoleWidth=Math.max(1,Math.floor(g*a)),this.consoleHeight=E,this.consoleY=0,this.consoleX=g-this.consoleWidth;break}this.currentLineIndex=Math.max(0,Math.min(this.currentLineIndex,this.consoleHeight-1))}handleKeyPress(A){if(A.name==="escape"){this.blur();return}let q=Oq({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"scroll-up"}),g=this._keyBindingsMap.get(q);if(g){let E=this._actionHandlers.get(g);if(E){E();return}}}scrollUp(){let A=Math.max(1,this.consoleHeight-1);if(this.currentLineIndex>0)this.currentLineIndex--,this.markNeedsRerender();else if(this.scrollTopIndex>0)this.scrollTopIndex--,this.isScrolledToBottom=!1,this.markNeedsRerender();return!0}scrollDown(){let A=this._displayLines.length,q=Math.max(1,this.consoleHeight-1),g=Math.max(0,A-q);if(this.currentLineIndex<q-1&&this.scrollTopIndex+this.currentLineIndex<A-1)this.currentLineIndex++,this.markNeedsRerender();else if(this.scrollTopIndex<g)this.scrollTopIndex++,this.isScrolledToBottom=this.scrollTopIndex===g,this.markNeedsRerender();return!0}scrollToTop(){if(this.scrollTopIndex>0||this.currentLineIndex>0)this.scrollTopIndex=0,this.currentLineIndex=0,this.isScrolledToBottom=this._displayLines.length<=Math.max(1,this.consoleHeight-1),this.markNeedsRerender();return!0}scrollToBottomAction(){let A=Math.max(1,this.consoleHeight-1),q=Math.max(0,this._displayLines.length-A);if(this.scrollTopIndex<q||!this.isScrolledToBottom)this._scrollToBottom(!0),this.markNeedsRerender();return!0}positionPrevious(){let q=(this._positions.indexOf(this.options.position)-1+this._positions.length)%this._positions.length;return this.options.position=this._positions[q],this.resize(this.renderer.width,this.renderer.height),!0}positionNext(){let q=(this._positions.indexOf(this.options.position)+1)%this._positions.length;return this.options.position=this._positions[q],this.resize(this.renderer.width,this.renderer.height),!0}sizeIncrease(){return this.options.sizePercent=Math.min(100,this.options.sizePercent+5),this.resize(this.renderer.width,this.renderer.height),!0}sizeDecrease(){return this.options.sizePercent=Math.max(10,this.options.sizePercent-5),this.resize(this.renderer.width,this.renderer.height),!0}saveLogsAction(){return this.saveLogsToFile(),!0}triggerCopyAction(){return this.triggerCopy(),!0}attachStdin(){if(this.isFocused)return;this.renderer.keyInput.on("keypress",this.keyHandler),this.isFocused=!0}detachStdin(){if(!this.isFocused)return;this.renderer.keyInput.off("keypress",this.keyHandler),this.isFocused=!1}formatTimestamp(A){return new Intl.DateTimeFormat("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(A)}formatArguments(A){return A.map((q)=>{if(q instanceof Error){let g=q;return`Error: ${g.message}
22
+ `)E.name="linefeed",E.meta=A.length===2;else if(A==="\t")E.name="tab";else if(A==="\b"||A==="\x1B\b"||A==="\x7F"||A==="\x1B\x7F")E.name="backspace",E.meta=A.charAt(0)==="\x1B";else if(A==="\x1B"||A==="\x1B\x1B")E.name="escape",E.meta=A.length===2;else if(A===" "||A==="\x1B ")E.name="space",E.meta=A.length===2;else if(A==="\x00")E.name="space",E.ctrl=!0;else if(A.length===1&&A<="\x1A")E.name=String.fromCharCode(A.charCodeAt(0)+97-1),E.ctrl=!0;else if(A.length===1&&A>="0"&&A<="9")E.name=A,E.number=!0;else if(A.length===1&&A>="a"&&A<="z")E.name=A;else if(A.length===1&&A>="A"&&A<="Z")E.name=A.toLowerCase(),E.shift=!0;else if(A.length===1||A.length===2&&A.codePointAt(0)>65535)E.name=A;else if(g=HU.exec(A)){E.meta=!0;let F=g[1],K=/^[A-Z]$/.test(F);if(F==="F")E.name="right";else if(F==="B")E.name="left";else if(K)E.shift=!0,E.name=F;else E.name=F}else if(A.length===2&&A[0]==="\x1B"&&A[1]<="\x1A")E.meta=!0,E.ctrl=!0,E.name=String.fromCharCode(A.charCodeAt(1)+97-1);else if(g=LU.exec(A)){let F=[...A];if(F[0]==="\x1B"&&F[1]==="\x1B")E.option=!0,E.meta=!0;let K=[g[1],g[2],g[4],g[6]].filter(Boolean).join(""),Z=parseInt(g[3]||g[5]||"1",10)-1;E.ctrl=E.ctrl||!!(Z&4),E.meta=E.meta||!!(Z&2),E.shift=E.shift||!!(Z&1),E.option=E.option||!!(Z&2),E.super=!!(Z&8),E.hyper=!!(Z&16),E.code=K;let j=eF[K];if(j)E.name=j,E.shift=XU(K)||E.shift,E.ctrl=IU(K)||E.ctrl;else E.name="",E.code=void 0}else if(A==="\x1B[3~")E.name="delete",E.meta=!1,E.code="[3~";return E},Pg,yE,Cq,eg,EA,NU=10,WU=65536,U6=256,Eq=27,hU=7,aE,FE,gK,SU,zU,BU,dq,KE,iU,rU=(A)=>A.startsWith("http://")||A.startsWith("https://"),bE,cE,A6,XF,_A,zq,F_,PF,K_,QA,fq,WF,Z_,PE=(A)=>A?U_(A.buffer):null,VE=(A)=>A?AA.fromArray(new Float32Array(__(A))):void 0,hF,E6,dA,WA,O_,SF,zF,$q,BF,CF,G_,Q_,kF,DF,Y_,wF,yF,M6,mF,M_,Ig,J_,H_,L_,Wq=null,a6=null,bF=!1,QK,YK,j6,MK,JK,HK,Rg,J6,OA,dE,R_,IK,NE,Uq,mA,TK,TA,PK,OE,D_,Iq=2,tE,gq,v_,RK=1,p_=2,NK=4,f_=8,d_=16,t_=67108864,hK,pF,SK,zK,H6;var BK=e(async()=>{ta();la();ia();na();ea();qF();EF();FF();jF();UF();OF();uZ=Object.defineProperty;fF={};iZ(fF,{default:()=>O6,Wrap:()=>jq,Unit:()=>bA,PositionType:()=>Kq,Overflow:()=>Fq,NodeType:()=>YE,MeasureMode:()=>SA,LogLevel:()=>Sq,Justify:()=>MA,Gutter:()=>cA,FlexDirection:()=>hA,ExperimentalFeature:()=>dF,Errata:()=>hq,Edge:()=>p,Display:()=>Tq,Direction:()=>lq,Dimension:()=>QE,BoxSizing:()=>GE,Align:()=>i});rZ=(()=>{var A=import.meta.url;return function(q){q=q||{};var g;g||(g=typeof q<"u"?q:{});var E,a;g.ready=new Promise(function(_,G){E=_,a=G});var F=Object.assign({},g),K="";typeof document<"u"&&document.currentScript&&(K=document.currentScript.src),A&&(K=A),K.indexOf("blob:")!==0?K=K.substr(0,K.replace(/[?#].*/,"").lastIndexOf("/")+1):K="";var Z=g.print||console.log.bind(console),j=g.printErr||console.warn.bind(console);Object.assign(g,F),F=null;var U;g.wasmBinary&&(U=g.wasmBinary);var O=g.noExitRuntime||!0;typeof WebAssembly!="object"&&FA("no native wasm support detected");var Q,M=!1;function L(_,G,Y){Y=G+Y;for(var J="";!(G>=Y);){var I=_[G++];if(!I)break;if(I&128){var P=_[G++]&63;if((I&224)==192)J+=String.fromCharCode((I&31)<<6|P);else{var W=_[G++]&63;I=(I&240)==224?(I&15)<<12|P<<6|W:(I&7)<<18|P<<12|W<<6|_[G++]&63,65536>I?J+=String.fromCharCode(I):(I-=65536,J+=String.fromCharCode(55296|I>>10,56320|I&1023))}}else J+=String.fromCharCode(I)}return J}var $,V,H,X,T,x,z,m,D;function N(){var _=Q.buffer;$=_,g.HEAP8=V=new Int8Array(_),g.HEAP16=X=new Int16Array(_),g.HEAP32=x=new Int32Array(_),g.HEAPU8=H=new Uint8Array(_),g.HEAPU16=T=new Uint16Array(_),g.HEAPU32=z=new Uint32Array(_),g.HEAPF32=m=new Float32Array(_),g.HEAPF64=D=new Float64Array(_)}var h,b=[],w=[],c=[];function t(){var _=g.preRun.shift();b.unshift(_)}var o=0,aA=null,LA=null;function FA(_){if(g.onAbort)g.onAbort(_);throw _="Aborted("+_+")",j(_),M=!0,_=new WebAssembly.RuntimeError(_+". Build with -sASSERTIONS for more info."),a(_),_}function NA(_){return _.startsWith("data:application/octet-stream;base64,")}var jA="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIAIAELBQBBpDsLaQECfyMAQRBrIgYkACABIAAoAgQiB0EBdWohASAAKAIAIQAgBiABIAIgAyAEIAUgB0EBcQR/IAEoAgAgAGooAgAFIAALERAAQRAQHiIAIAYpAwg3AwggACAGKQMANwMAIAZBEGokACAACwUAQaA7Cx0AIAAoAgAiACAALQAAQfcBcUEIQQAgARtyOgAAC6oBAgJ/AX0jAEEQayICJAAgACgCACEAIAFB/wFxIgNBBkkEQAJ/AkACQAJAIANBBGsOAgABAgsgAEHUA2ogAC0AiANBA3FBAkYNAhogAEHMA2oMAgsgAEHMA2ogAC0AiANBA3FBAkYNARogAEHUA2oMAQsgACABQf8BcUECdGpBzANqCyoCACEEIAJBEGokACAEuw8LIAJB7hA2AgAgAEEFQdglIAIQLBAkAAuqAQICfwF9IwBBEGsiAiQAIAAoAgAhACABQf8BcSIDQQZJBEACfwJAAkACQCADQQRrDgIAAQILIABBxANqIAAtAIgDQQNxQQJGDQIaIABBvANqDAILIABBvANqIAAtAIgDQQNxQQJGDQEaIABBxANqDAELIAAgAUH/AXFBAnRqQbwDagsqAgAhBCACQRBqJAAgBLsPCyACQe4QNgIAIABBBUHYJSACECwQJAALqgECAn8BfSMAQRBrIgIkACAAKAIAIQAgAUH/AXEiA0EGSQRAAn8CQAJAAkAgA0EEaw4CAAECCyAAQbQDaiAALQCIA0EDcUECRg0CGiAAQawDagwCCyAAQawDaiAALQCIA0EDcUECRg0BGiAAQbQDagwBCyAAIAFB/wFxQQJ0akGsA2oLKgIAIQQgAkEQaiQAIAS7DwsgAkHuEDYCACAAQQVB2CUgAhAsECQAC08AIAAgASgCACIBKgKcA7s5AwAgACABKgKkA7s5AwggACABKgKgA7s5AxAgACABKgKoA7s5AxggACABKgKMA7s5AyAgACABKgKQA7s5AygLDAAgACgCACoCkAO7CwwAIAAoAgAqAowDuwsMACAAKAIAKgKoA7sLDAAgACgCACoCoAO7CwwAIAAoAgAqAqQDuwsMACAAKAIAKgKcA7sL6AMCBH0FfyMAQUBqIgokACAAKAIAIQAgCkEIakEAQTgQKhpB8DpB8DooAgBBAWo2AgAgABB4IAAtABRBA3EiCCADQQEgA0H/AXEbIAgbIQkgAEEUaiEIIAG2IQQgACoC+AMhBQJ9AkACQAJAIAAtAPwDQQFrDgIBAAILIAUgBJRDCtcjPJQhBQsgBUMAAAAAYEUNACAAIAlB/wFxQQAgBCAEEDEgCEECQQEgBBAiIAhBAkEBIAQQIZKSDAELIAggCUH/AXFBACAEIAQQLSIFIAVbBEBBAiELIAggCUH/AXFBACAEIAQQLQwBCyAEIARcIQsgBAshByACtiEFIAAqAoAEIQYgACAHAn0CQAJAAkAgAC0AhARBAWsOAgEAAgsgBiAFlEMK1yM8lCEGCyAGQwAAAABgRQ0AIAAgCUH/AXFBASAFIAQQMSAIQQBBASAEECIgCEEAQQEgBBAhkpIMAQsgCCAJQf8BcSIJQQEgBSAEEC0iBiAGWwRAQQIhDCAIIAlBASAFIAQQLQwBCyAFIAVcIQwgBQsgA0H/AXEgCyAMIAQgBUEBQQAgCkEIakEAQfA6KAIAED0EQCAAIAAtAIgDQQNxIAQgBRB2IABEAAAAAAAAAABEAAAAAAAAAAAQcwsgCkFAayQACw0AIAAoAgAtAABBAXELFQAgACgCACIAIAAtAABB/gFxOgAACxAAIAAoAgAtAABBBHFBAnYLegECfyMAQRBrIgEkACAAKAIAIgAoAggEQANAIAAtAAAiAkEEcUUEQCAAIAJBBHI6AAAgACgCECICBEAgACACEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQELCyABQRBqJAAPCyABQYAINgIAIABBBUHYJSABECwQJAALLgEBfyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALIAAoAgBBADYCEAsXACAAKAIEKAIIIgAgACgCACgCCBEAAAsuAQF/IAAoAgghAiAAIAE2AgggAgRAIAIgAigCACgCBBEAAAsgACgCAEEFNgIQCz4BAX8gACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIAIgBBADYCCCAAIAAtAABB7wFxOgAAC0kBAX8jAEEQayIGJAAgBiABKAIEKAIEIgEgAiADIAQgBSABKAIAKAIIERAAIAAgBisDALY4AgAgACAGKwMItjgCBCAGQRBqJAALcwECfyMAQRBrIgIkACAAKAIEIQMgACABNgIEIAMEQCADIAMoAgAoAgQRAAALIAAoAgAiACgC6AMgACgC7ANHBEAgAkH5IzYCACAAQQVB2CUgAhAsECQACyAAQQQ2AgggACAALQAAQRByOgAAIAJBEGokAAs8AQF/AkAgACgCACIAKALsAyAAKALoAyIAa0ECdSABTQ0AIAAgAUECdGooAgAiAEUNACAAKAIEIQILIAILGQAgACgCACgC5AMiAEUEQEEADwsgACgCBAsXACAAKAIAIgAoAuwDIAAoAugDa0ECdQuOAwEDfyMAQdACayICJAACQCAAKAIAIgAoAuwDIAAoAugDRg0AIAEoAgAiAygC5AMhASAAIAMQb0UNACAAIAFGBEAgAkEIakEAQcQCECoaIAJBADoAGCACQgA3AxAgAkGAgID+BzYCDCACQRxqQQBBxAEQKhogAkHgAWohBCACQSBqIQEDQCABQoCAgPyLgIDAv383AhAgAUKBgICAEDcCCCABQoCAgPyLgIDAv383AgAgAUEYaiIBIARHDQALIAJCgICA/IuAgMC/fzcD8AEgAkKBgICAEDcD6AEgAkKAgID8i4CAwL9/NwPgASACQoCAgP6HgIDg/wA3AoQCIAJCgICA/oeAgOD/ADcC/AEgAiACLQD4AUH4AXE6APgBIAJBjAJqQQBBwAAQKhogA0GYAWogAkEIakHEAhArGiADQQA2AuQDCwNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIAJB0AJqJAAL4AcBCH8jAEHQAGsiByQAIAAoAgAhAAJAAkAgASgCACIIKALkA0UEQCAAKAIIDQEgCC0AF0EQdEGAgDBxQYCAIEYEQCAAIAAoAuADQQFqNgLgAwsgACgC6AMiASACQQJ0aiEGAkAgACgC7AMiBCAAQfADaiIDKAIAIgVJBEAgBCAGRgRAIAYgCDYCACAAIAZBBGo2AuwDDAILIAQgBCICQQRrIgFLBEADQCACIAEoAgA2AgAgAkEEaiECIAFBBGoiASAESQ0ACwsgACACNgLsAyAGQQRqIgEgBEcEQCAEIAQgAWsiAUF8cWsgBiABEDMaCyAGIAg2AgAMAQsgBCABa0ECdUEBaiIEQYCAgIAETw0DAkAgB0EgakH/////AyAFIAFrIgFBAXUiBSAEIAQgBUkbIAFB/P///wdPGyACIAMQSiIDKAIIIgIgAygCDEcNACADKAIEIgEgAygCACIESwRAIAMgASABIARrQQJ1QQFqQX5tQQJ0IgRqIAEgAiABayIBEDMgAWoiAjYCCCADIAMoAgQgBGo2AgQMAQsgB0E4akEBIAIgBGtBAXUgAiAERhsiASABQQJ2IAMoAhAQSiIFKAIIIQQCfyADKAIIIgIgAygCBCIBRgRAIAQhAiABDAELIAQgAiABa2ohAgNAIAQgASgCADYCACABQQRqIQEgBEEEaiIEIAJHDQALIAMoAgghASADKAIECyEEIAMoAgAhCSADIAUoAgA2AgAgBSAJNgIAIAMgBSgCBDYCBCAFIAQ2AgQgAyACNgIIIAUgATYCCCADKAIMIQogAyAFKAIMNgIMIAUgCjYCDCABIARHBEAgBSABIAQgAWtBA2pBfHFqNgIICyAJRQ0AIAkQIyADKAIIIQILIAIgCDYCACADIAMoAghBBGo2AgggAyADKAIEIAYgACgC6AMiAWsiAmsgASACEDM2AgQgAygCCCAGIAAoAuwDIAZrIgQQMyEGIAAoAugDIQEgACADKAIENgLoAyADIAE2AgQgACgC7AMhAiAAIAQgBmo2AuwDIAMgAjYCCCAAKALwAyEEIAAgAygCDDYC8AMgAyABNgIAIAMgBDYCDCABIAJHBEAgAyACIAEgAmtBA2pBfHFqNgIICyABRQ0AIAEQIwsgCCAANgLkAwNAIAAtAAAiAUEEcUUEQCAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQELCyAHQdAAaiQADwsgB0HEIzYCECAAQQVB2CUgB0EQahAsECQACyAHQckkNgIAIABBBUHYJSAHECwQJAALEAIACxAAIAAoAgAtAABBAnFBAXYLWQIBfwF9IwBBEGsiAiQAIAJBCGogACgCACIAQfwAaiAAIAFB/wFxQQF0ai8BaBAfQwAAwH8hAwJAAkAgAi0ADA4EAQAAAQALIAIqAgghAwsgAkEQaiQAIAMLTgEBfyMAQRBrIgMkACADQQhqIAEoAgAiAUH8AGogASACQf8BcUEBdGovAUQQHyADLQAMIQEgACADKgIIuzkDCCAAIAE2AgAgA0EQaiQAC14CAX8BfCMAQRBrIgIkACACQQhqIAAoAgAiAEH8AGogACABQf8BcUEBdGovAVYQH0QAAAAAAAD4fyEDAkACQCACLQAMDgQBAAABAAsgAioCCLshAwsgAkEQaiQAIAMLJAEBfUMAAMB/IAAoAgAiAEH8AGogAC8BehAgIgEgASABXBu7C0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXgQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXYQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXQQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXIQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXAQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAW4QHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0gCAX8BfQJ9IAAoAgAiAEH8AGoiASAALwEcECAiAiACXARAQwAAgD9DAAAAACAAKAL0Ay0ACEEBcRsMAQsgASAALwEcECALuws2AgF/AX0gACgCACIAQfwAaiIBIAAvARoQICICIAJcBEBEAAAAAAAAAAAPCyABIAAvARoQILsLRAEBfyMAQRBrIgIkACACQQhqIAEoAgAiAUH8AGogAS8BHhAfIAItAAwhASAAIAIqAgi7OQMIIAAgATYCACACQRBqJAALEAAgACgCAC0AF0ECdkEDcQsNACAAKAIALQAXQQNxC04BAX8jAEEQayIDJAAgA0EIaiABKAIAIgFB/ABqIAEgAkH/AXFBAXRqLwEgEB8gAy0ADCEBIAAgAyoCCLs5AwggACABNgIAIANBEGokAAsQACAAKAIALQAUQQR2QQdxCw0AIAAoAgAvABVBDnYLDQAgACgCAC0AFEEDcQsQACAAKAIALQAUQQJ2QQNxCw0AIAAoAgAvABZBD3ELEAAgACgCAC8AFUEEdkEPcQsNACAAKAIALwAVQQ9xC04BAX8jAEEQayIDJAAgA0EIaiABKAIAIgFB/ABqIAEgAkH/AXFBAXRqLwEyEB8gAy0ADCEBIAAgAyoCCLs5AwggACABNgIAIANBEGokAAsQACAAKAIALwAVQQx2QQNxCxAAIAAoAgAtABdBBHZBAXELgQECA38BfSMAQRBrIgMkACAAKAIAIQQCfSACtiIGIAZcBEBBACEAQwAAwH8MAQtBAEECIAZDAACAf1sgBkMAAID/W3IiBRshAEMAAMB/IAYgBRsLIQYgAyAAOgAMIAMgBjgCCCADIAMpAwg3AwAgBCABQf8BcSADEIgBIANBEGokAAt5AgF9An8jAEEQayIEJAAgACgCACEFIAQCfyACtiIDIANcBEBDAADAfyEDQQAMAQtDAADAfyADIANDAACAf1sgA0MAAID/W3IiABshAyAARQs6AAwgBCADOAIIIAQgBCkDCDcDACAFIAFB/wFxIAQQiAEgBEEQaiQAC3EBAX8CQCAAKAIAIgAtAAAiAkECcUEBdiABRg0AIAAgAkH9AXFBAkEAIAEbcjoAAANAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC4EBAgN/AX0jAEEQayIDJAAgACgCACEEAn0gArYiBiAGXARAQQAhAEMAAMB/DAELQQBBAiAGQwAAgH9bIAZDAACA/1tyIgUbIQBDAADAfyAGIAUbCyEGIAMgADoADCADIAY4AgggAyADKQMINwMAIAQgAUH/AXEgAxCOASADQRBqJAALeQIBfQJ/IwBBEGsiBCQAIAAoAgAhBSAEAn8gArYiAyADXARAQwAAwH8hA0EADAELQwAAwH8gAyADQwAAgH9bIANDAACA/1tyIgAbIQMgAEULOgAMIAQgAzgCCCAEIAQpAwg3AwAgBSABQf8BcSAEEI4BIARBEGokAAv5AQICfQR/IwBBEGsiBSQAIAAoAgAhAAJ/IAK2IgMgA1wEQEMAAMB/IQNBAAwBC0MAAMB/IAMgA0MAAIB/WyADQwAAgP9bciIGGyEDIAZFCyEGQQEhByAFQQhqIABB/ABqIgggACABQf8BcUEBdGpB1gBqIgEvAQAQHwJAAkAgAyAFKgIIIgRcBH8gBCAEWw0BIAMgA1wFIAcLRQ0AIAUtAAwgBkYNAQsgCCABIAMgBhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgBUEQaiQAC7UBAgN/An0CQCAAKAIAIgBB/ABqIgMgAEH6AGoiAi8BABAgIgYgAbYiBVsNACAFIAVbIgRFIAYgBlxxDQACQCAEIAVDAAAAAFsgBYtDAACAf1tyRXFFBEAgAiACLwEAQfj/A3E7AQAMAQsgAyACIAVBAxBMCwNAIAAtAAAiAkEEcQ0BIAAgAkEEcjoAACAAKAIQIgIEQCAAIAIRAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EBIAIQVSACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEBIAMQVSADQRBqJAALfAIDfwF9IwBBEGsiAiQAIAAoAgAhAwJ9IAG2IgUgBVwEQEEAIQBDAADAfwwBC0EAQQIgBUMAAIB/WyAFQwAAgP9bciIEGyEAQwAAwH8gBSAEGwshBSACIAA6AAwgAiAFOAIIIAIgAikDCDcDACADQQAgAhBVIAJBEGokAAt0AgF9An8jAEEQayIDJAAgACgCACEEIAMCfyABtiICIAJcBEBDAADAfyECQQAMAQtDAADAfyACIAJDAACAf1sgAkMAAID/W3IiABshAiAARQs6AAwgAyACOAIIIAMgAykDCDcDACAEQQAgAxBVIANBEGokAAt8AgN/AX0jAEEQayICJAAgACgCACEDAn0gAbYiBSAFXARAQQAhAEMAAMB/DAELQQBBAiAFQwAAgH9bIAVDAACA/1tyIgQbIQBDAADAfyAFIAQbCyEFIAIgADoADCACIAU4AgggAiACKQMINwMAIANBASACEFYgAkEQaiQAC3QCAX0CfyMAQRBrIgMkACAAKAIAIQQgAwJ/IAG2IgIgAlwEQEMAAMB/IQJBAAwBC0MAAMB/IAIgAkMAAIB/WyACQwAAgP9bciIAGyECIABFCzoADCADIAI4AgggAyADKQMINwMAIARBASADEFYgA0EQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EAIAIQViACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEAIAMQViADQRBqJAALPwEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIABBASABEEYgAUEQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EBIAIQRiACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEBIAMQRiADQRBqJAALPwEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIABBACABEEYgAUEQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EAIAIQRiACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEAIAMQRiADQRBqJAALoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRxqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRpqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLPQEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIAAgARBrIAFBEGokAAt6AgN/AX0jAEEQayICJAAgACgCACEDAn0gAbYiBSAFXARAQQAhAEMAAMB/DAELQQBBAiAFQwAAgH9bIAVDAACA/1tyIgQbIQBDAADAfyAFIAQbCyEFIAIgADoADCACIAU4AgggAiACKQMINwMAIAMgAhBrIAJBEGokAAtyAgF9An8jAEEQayIDJAAgACgCACEEIAMCfyABtiICIAJcBEBDAADAfyECQQAMAQtDAADAfyACIAJDAACAf1sgAkMAAID/W3IiABshAiAARQs6AAwgAyACOAIIIAMgAykDCDcDACAEIAMQayADQRBqJAALoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRhqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLkAEBAX8CQCAAKAIAIgBBF2otAAAiAkECdkEDcSABQf8BcUYNACAAIAAvABUgAkEQdHIiAjsAFSAAIAJB///PB3EgAUEDcUESdHJBEHY6ABcDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuNAQEBfwJAIAAoAgAiAEEXai0AACICQQNxIAFB/wFxRg0AIAAgAC8AFSACQRB0ciICOwAVIAAgAkH///MHcSABQQNxQRB0ckEQdjoAFwNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC0MBAX8jAEEQayICJAAgACgCACEAIAJBAzoADCACQYCAgP4HNgIIIAIgAikDCDcDACAAIAFB/wFxIAIQZSACQRBqJAALgAECA38BfSMAQRBrIgMkACAAKAIAIQQCfSACtiIGIAZcBEBBACEAQwAAwH8MAQtBAEECIAZDAACAf1sgBkMAAID/W3IiBRshAEMAAMB/IAYgBRsLIQYgAyAAOgAMIAMgBjgCCCADIAMpAwg3AwAgBCABQf8BcSADEGUgA0EQaiQAC3gCAX0CfyMAQRBrIgQkACAAKAIAIQUgBAJ/IAK2IgMgA1wEQEMAAMB/IQNBAAwBC0MAAMB/IAMgA0MAAIB/WyADQwAAgP9bciIAGyEDIABFCzoADCAEIAM4AgggBCAEKQMINwMAIAUgAUH/AXEgBBBlIARBEGokAAt3AQF/AkAgACgCACIALQAUIgJBBHZBB3EgAUH/AXFGDQAgACACQY8BcSABQQR0QfAAcXI6ABQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuJAQEBfwJAIAFB/wFxIAAoAgAiAC8AFSICQQ52Rg0AIABBF2ogAiAALQAXQRB0ciICQRB2OgAAIAAgAkH//wBxIAFBDnRyOwAVA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLcAEBfwJAIAAoAgAiAC0AFCICQQNxIAFB/wFxRg0AIAAgAkH8AXEgAUEDcXI6ABQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwt2AQF/AkAgACgCACIALQAUIgJBAnZBA3EgAUH/AXFGDQAgACACQfMBcSABQQJ0QQxxcjoAFANAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC48BAQF/AkAgACgCACIALwAVIgJBCHZBD3EgAUH/AXFGDQAgAEEXaiACIAAtABdBEHRyIgJBEHY6AAAgACACQf/hA3EgAUEPcUEIdHI7ABUDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuPAQEBfwJAIAFB/wFxIAAoAgAiAC8AFSAAQRdqLQAAQRB0ciICQfABcUEEdkYNACAAIAJBEHY6ABcgACACQY/+A3EgAUEEdEHwAXFyOwAVA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLhwEBAX8CQCAAKAIAIgAvABUgAEEXai0AAEEQdHIiAkEPcSABQf8BcUYNACAAIAJBEHY6ABcgACACQfD/A3EgAUEPcXI7ABUDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwtDAQF/IwBBEGsiAiQAIAAoAgAhACACQQM6AAwgAkGAgID+BzYCCCACIAIpAwg3AwAgACABQf8BcSACEGcgAkEQaiQAC4ABAgN/AX0jAEEQayIDJAAgACgCACEEAn0gArYiBiAGXARAQQAhAEMAAMB/DAELQQBBAiAGQwAAgH9bIAZDAACA/1tyIgUbIQBDAADAfyAGIAUbCyEGIAMgADoADCADIAY4AgggAyADKQMINwMAIAQgAUH/AXEgAxBnIANBEGokAAt4AgF9An8jAEEQayIEJAAgACgCACEFIAQCfyACtiIDIANcBEBDAADAfyEDQQAMAQtDAADAfyADIANDAACAf1sgA0MAAID/W3IiABshAyAARQs6AAwgBCADOAIIIAQgBCkDCDcDACAFIAFB/wFxIAQQZyAEQRBqJAALjwEBAX8CQCAAKAIAIgAvABUiAkEMdkEDcSABQf8BcUYNACAAQRdqIAIgAC0AF0EQdHIiAkEQdjoAACAAIAJB/58DcSABQQNxQQx0cjsAFQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC5ABAQF/AkAgACgCACIAQRdqLQAAIgJBBHZBAXEgAUH/AXFGDQAgACAALwAVIAJBEHRyIgI7ABUgACACQf//vwdxIAFBAXFBFHRyQRB2OgAXA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsL9g0CCH8CfSMAQRBrIgIkAAJAAkAgASgCACIFLQAUIAAoAgAiAS0AFHNB/wBxDQAgBS8AFSAFLQAXQRB0ciABLwAVIAEtABdBEHRyc0H//z9xDQAgBUH8AGohByABQfwAaiEIAkAgAS8AGCIAQQdxRQRAIAUtABhBB3FFDQELIAggABAgIgogByAFLwAYECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AGiIAQQdxRQRAIAUtABpBB3FFDQELIAggABAgIgogByAFLwAaECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AHCIAQQdxRQRAIAUtABxBB3FFDQELIAggABAgIgogByAFLwAcECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AHiIAQQdxRQRAIAUtAB5BB3FFDQELIAJBCGogCCAAEB8gAiAHIAUvAB4QH0EBIQAgAioCCCIKIAIqAgAiC1wEfyAKIApbDQIgCyALXAUgAAtFDQEgAi0ADCACLQAERw0BCyAFQSBqIQAgAUEgaiEGA0ACQCAGIANBAXRqLwAAIgRBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAQQHyACIAcgAC8AABAfQQEhBCACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSAEC0UNAiACLQAMIAItAARHDQILIABBAmohACADQQFqIgNBCUcNAAsgBUEyaiEAIAFBMmohBkEAIQMDQAJAIAYgA0EBdGovAAAiBEEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBBAfIAIgByAALwAAEB9BASEEIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAQLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAIANBAWoiA0EJRw0ACyAFQcQAaiEAIAFBxABqIQZBACEDA0ACQCAGIANBAXRqLwAAIgRBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAQQHyACIAcgAC8AABAfQQEhBCACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSAEC0UNAiACLQAMIAItAARHDQILIABBAmohACADQQFqIgNBCUcNAAsgBUHWAGohACABQdYAaiEGQQAhAwNAAkAgBiADQQF0ai8AACIEQQdxRQRAIAAtAABBB3FFDQELIAJBCGogCCAEEB8gAiAHIAAvAAAQH0EBIQQgAioCCCIKIAIqAgAiC1wEfyAKIApbDQMgCyALXAUgBAtFDQIgAi0ADCACLQAERw0CCyAAQQJqIQAgA0EBaiIDQQlHDQALIAVB6ABqIQAgAUHoAGohBkEAIQMDQAJAIAYgA0EBdGovAAAiBEEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBBAfIAIgByAALwAAEB9BASEEIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAQLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAIANBAWoiA0EDRw0ACyAFQe4AaiEAIAFB7gBqIQlBACEEQQAhAwNAAkAgCSADQQF0ai8AACIGQQdxRQRAIAAtAABBB3FFDQELIAJBCGogCCAGEB8gAiAHIAAvAAAQH0EBIQMgAioCCCIKIAIqAgAiC1wEfyAKIApbDQMgCyALXAUgAwtFDQIgAi0ADCACLQAERw0CCyAAQQJqIQBBASEDIAQhBkEBIQQgBkUNAAsgBUHyAGohACABQfIAaiEJQQAhBEEAIQMDQAJAIAkgA0EBdGovAAAiBkEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBhAfIAIgByAALwAAEB9BASEDIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAMLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAQQEhAyAEIQZBASEEIAZFDQALIAVB9gBqIQAgAUH2AGohCUEAIQRBACEDA0ACQCAJIANBAXRqLwAAIgZBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";if(!NA(jA)){var Oa=jA;jA=g.locateFile?g.locateFile(Oa,K):K+Oa}function Ga(){var _=jA;try{if(_==jA&&U)return new Uint8Array(U);if(NA(_))try{var G=uj(_.slice(37)),Y=new Uint8Array(G.length);for(_=0;_<G.length;++_)Y[_]=G.charCodeAt(_);var J=Y}catch(P){throw Error("Converting base64 string to bytes failed.")}else J=void 0;var I=J;if(I)return I;throw"both async and sync fetching of the wasm failed"}catch(P){FA(P)}}function xj(){return U||typeof fetch!="function"?Promise.resolve().then(function(){return Ga()}):fetch(jA,{credentials:"same-origin"}).then(function(_){if(!_.ok)throw"failed to load wasm binary file at '"+jA+"'";return _.arrayBuffer()}).catch(function(){return Ga()})}function B6(_){for(;0<_.length;)_.shift()(g)}function Qa(_){if(_===void 0)return"_unknown";_=_.replace(/[^a-zA-Z0-9_]/g,"$");var G=_.charCodeAt(0);return 48<=G&&57>=G?"_"+_:_}function C6(_,G){return _=Qa(_),function(){return G.apply(this,arguments)}}var zA=[{},{value:void 0},{value:null},{value:!0},{value:!1}],k6=[];function Dg(_){var G=Error,Y=C6(_,function(J){this.name=_,this.message=J,J=Error(J).stack,J!==void 0&&(this.stack=this.toString()+`
23
+ `+J.replace(/^Error(:[^\n]*)?\n/,""))});return Y.prototype=Object.create(G.prototype),Y.prototype.constructor=Y,Y.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Y}var yq=void 0;function u(_){throw new yq(_)}var Eg=(_)=>{return _||u("Cannot use deleted val. handle = "+_),zA[_].value},wg=(_)=>{switch(_){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var G=k6.length?k6.pop():zA.length;return zA[G]={ga:1,value:_},G}},Ya=void 0,Ma=void 0;function UA(_){for(var G="";H[_];)G+=Ma[H[_++]];return G}var ag=[];function D6(){for(;ag.length;){var _=ag.pop();_.M.$=!1,_.delete()}}var Fg=void 0,sA={};function w6(_,G){for(G===void 0&&u("ptr should not be undefined");_.R;)G=_.ba(G),_=_.R;return G}var xq={};function Ja(_){_=Ra(_);var G=UA(_);return nA(_),G}function Ha(_,G){var Y=xq[_];return Y===void 0&&u(G+" has unknown type "+Ja(_)),Y}function yg(){}var y6=!1;function La(_){--_.count.value,_.count.value===0&&(_.T?_.U.W(_.T):_.P.N.W(_.O))}function $a(_,G,Y){if(G===Y)return _;if(Y.R===void 0)return null;return _=$a(_,G,Y.R),_===null?null:Y.na(_)}var Xa={};function Rj(_,G){return G=w6(_,G),sA[G]}var Ia=void 0;function mg(_){throw new Ia(_)}function bg(_,G){return G.P&&G.O||mg("makeClassHandle requires ptr and ptrType"),!!G.U!==!!G.T&&mg("Both smartPtrType and smartPtr must be specified"),G.count={value:1},mq(Object.create(_,{M:{value:G}}))}function mq(_){if(typeof FinalizationRegistry>"u")return mq=(G)=>G,_;return y6=new FinalizationRegistry((G)=>{La(G.M)}),mq=(G)=>{var Y=G.M;return Y.T&&y6.register(G,{M:Y},G),G},yg=(G)=>{y6.unregister(G)},mq(_)}var cg={};function m6(_){for(;_.length;){var G=_.pop();_.pop()(G)}}function Kg(_){return this.fromWireType(x[_>>2])}var bq={},vg={};function Jq(_,G,Y){function J(S){S=Y(S),S.length!==_.length&&mg("Mismatched type converter count");for(var C=0;C<_.length;++C)iA(_[C],S[C])}_.forEach(function(S){vg[S]=G});var I=Array(G.length),P=[],W=0;G.forEach((S,C)=>{xq.hasOwnProperty(S)?I[C]=xq[S]:(P.push(S),bq.hasOwnProperty(S)||(bq[S]=[]),bq[S].push(()=>{I[C]=xq[S],++W,W===P.length&&J(I)}))}),P.length===0&&J(I)}function b6(_){switch(_){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError("Unknown type size: "+_)}}function iA(_,G,Y={}){if(!("argPackAdvance"in G))throw TypeError("registerType registeredInstance requires argPackAdvance");var J=G.name;if(_||u('type "'+J+'" must have a positive integer typeid pointer'),xq.hasOwnProperty(_)){if(Y.ua)return;u("Cannot register type '"+J+"' twice")}xq[_]=G,delete vg[_],bq.hasOwnProperty(_)&&(G=bq[_],delete bq[_],G.forEach((I)=>I()))}function c6(_){u(_.M.P.N.name+" instance already deleted")}function Hq(){}function v6(_,G,Y){if(_[G].S===void 0){var J=_[G];_[G]=function(){return _[G].S.hasOwnProperty(arguments.length)||u("Function '"+Y+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+_[G].S+")!"),_[G].S[arguments.length].apply(this,arguments)},_[G].S=[],_[G].S[J.Z]=J}}function Nj(_,G){g.hasOwnProperty(_)?(u("Cannot register public name '"+_+"' twice"),v6(g,_,_),g.hasOwnProperty(void 0)&&u("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),g[_].S[void 0]=G):g[_]=G}function Wj(_,G,Y,J,I,P,W,S){this.name=_,this.constructor=G,this.X=Y,this.W=J,this.R=I,this.pa=P,this.ba=W,this.na=S,this.ja=[]}function p6(_,G,Y){for(;G!==Y;)G.ba||u("Expected null or instance of "+Y.name+", got an instance of "+G.name),_=G.ba(_),G=G.R;return _}function hj(_,G){if(G===null)return this.ea&&u("null is not a valid "+this.name),0;return G.M||u('Cannot pass "'+u6(G)+'" as a '+this.name),G.M.O||u("Cannot pass deleted object as a pointer of type "+this.name),p6(G.M.O,G.M.P.N,this.N)}function Sj(_,G){if(G===null){if(this.ea&&u("null is not a valid "+this.name),this.da){var Y=this.fa();return _!==null&&_.push(this.W,Y),Y}return 0}if(G.M||u('Cannot pass "'+u6(G)+'" as a '+this.name),G.M.O||u("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&G.M.P.ca&&u("Cannot convert argument of type "+(G.M.U?G.M.U.name:G.M.P.name)+" to parameter type "+this.name),Y=p6(G.M.O,G.M.P.N,this.N),this.da)switch(G.M.T===void 0&&u("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:G.M.U===this?Y=G.M.T:u("Cannot convert argument of type "+(G.M.U?G.M.U.name:G.M.P.name)+" to parameter type "+this.name);break;case 1:Y=G.M.T;break;case 2:if(G.M.U===this)Y=G.M.T;else{var J=G.clone();Y=this.xa(Y,wg(function(){J.delete()})),_!==null&&_.push(this.W,Y)}break;default:u("Unsupporting sharing policy")}return Y}function zj(_,G){if(G===null)return this.ea&&u("null is not a valid "+this.name),0;return G.M||u('Cannot pass "'+u6(G)+'" as a '+this.name),G.M.O||u("Cannot pass deleted object as a pointer of type "+this.name),G.M.P.ca&&u("Cannot convert argument of type "+G.M.P.name+" to parameter type "+this.name),p6(G.M.O,G.M.P.N,this.N)}function rA(_,G,Y,J){this.name=_,this.N=G,this.ea=Y,this.ca=J,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,G.R!==void 0?this.toWireType=Sj:(this.toWireType=J?hj:zj,this.V=null)}function Bj(_,G){g.hasOwnProperty(_)||mg("Replacing nonexistant public symbol"),g[_]=G,g[_].Z=void 0}function Cj(_,G){var Y=[];return function(){if(Y.length=0,Object.assign(Y,arguments),_.includes("j")){var J=g["dynCall_"+_];J=Y&&Y.length?J.apply(null,[G].concat(Y)):J.call(null,G)}else J=h.get(G).apply(null,Y);return J}}function BA(_,G){_=UA(_);var Y=_.includes("j")?Cj(_,G):h.get(G);return typeof Y!="function"&&u("unknown function pointer with signature "+_+": "+G),Y}var Ta=void 0;function pg(_,G){function Y(P){I[P]||xq[P]||(vg[P]?vg[P].forEach(Y):(J.push(P),I[P]=!0))}var J=[],I={};throw G.forEach(Y),new Ta(_+": "+J.map(Ja).join([", "]))}function f6(_,G,Y,J,I){var P=G.length;2>P&&u("argTypes array size mismatch! Must at least get return value and 'this' types!");var W=G[1]!==null&&Y!==null,S=!1;for(Y=1;Y<G.length;++Y)if(G[Y]!==null&&G[Y].V===void 0){S=!0;break}var C=G[0].name!=="void",B=P-2,k=Array(B),f=[],s=[];return function(){if(arguments.length!==B&&u("function "+_+" called with "+arguments.length+" arguments, expected "+B+" args!"),s.length=0,f.length=W?2:1,f[0]=I,W){var KA=G[1].toWireType(s,this);f[1]=KA}for(var n=0;n<B;++n)k[n]=G[n+2].toWireType(s,arguments[n]),f.push(k[n]);if(n=J.apply(null,f),S)m6(s);else for(var VA=W?1:2;VA<G.length;VA++){var CA=VA===1?KA:k[VA-2];G[VA].V!==null&&G[VA].V(CA)}return KA=C?G[0].fromWireType(n):void 0,KA}}function d6(_,G){for(var Y=[],J=0;J<_;J++)Y.push(z[G+4*J>>2]);return Y}function t6(_){4<_&&--zA[_].ga===0&&(zA[_]=void 0,k6.push(_))}function u6(_){if(_===null)return"null";var G=typeof _;return G==="object"||G==="array"||G==="function"?_.toString():""+_}function kj(_,G){switch(G){case 2:return function(Y){return this.fromWireType(m[Y>>2])};case 3:return function(Y){return this.fromWireType(D[Y>>3])};default:throw TypeError("Unknown float type: "+_)}}function Dj(_,G,Y){switch(G){case 0:return Y?function(J){return V[J]}:function(J){return H[J]};case 1:return Y?function(J){return X[J>>1]}:function(J){return T[J>>1]};case 2:return Y?function(J){return x[J>>2]}:function(J){return z[J>>2]};default:throw TypeError("Unknown integer type: "+_)}}function wj(_,G){for(var Y="",J=0;!(J>=G/2);++J){var I=X[_+2*J>>1];if(I==0)break;Y+=String.fromCharCode(I)}return Y}function yj(_,G,Y){if(Y===void 0&&(Y=2147483647),2>Y)return 0;Y-=2;var J=G;Y=Y<2*_.length?Y/2:_.length;for(var I=0;I<Y;++I)X[G>>1]=_.charCodeAt(I),G+=2;return X[G>>1]=0,G-J}function mj(_){return 2*_.length}function bj(_,G){for(var Y=0,J="";!(Y>=G/4);){var I=x[_+4*Y>>2];if(I==0)break;++Y,65536<=I?(I-=65536,J+=String.fromCharCode(55296|I>>10,56320|I&1023)):J+=String.fromCharCode(I)}return J}function cj(_,G,Y){if(Y===void 0&&(Y=2147483647),4>Y)return 0;var J=G;Y=J+Y-4;for(var I=0;I<_.length;++I){var P=_.charCodeAt(I);if(55296<=P&&57343>=P){var W=_.charCodeAt(++I);P=65536+((P&1023)<<10)|W&1023}if(x[G>>2]=P,G+=4,G+4>Y)break}return x[G>>2]=0,G-J}function vj(_){for(var G=0,Y=0;Y<_.length;++Y){var J=_.charCodeAt(Y);55296<=J&&57343>=J&&++Y,G+=4}return G}var pj={};function Pa(_){var G=pj[_];return G===void 0?UA(_):G}var fg=[];function fj(_){var G=fg.length;return fg.push(_),G}function dj(_,G){for(var Y=Array(_),J=0;J<_;++J)Y[J]=Ha(z[G+4*J>>2],"parameter "+J);return Y}var Va=[],tj=[null,[],[]];yq=g.BindingError=Dg("BindingError"),g.count_emval_handles=function(){for(var _=0,G=5;G<zA.length;++G)zA[G]!==void 0&&++_;return _},g.get_first_emval=function(){for(var _=5;_<zA.length;++_)if(zA[_]!==void 0)return zA[_];return null},Ya=g.PureVirtualError=Dg("PureVirtualError");for(var xa=Array(256),dg=0;256>dg;++dg)xa[dg]=String.fromCharCode(dg);Ma=xa,g.getInheritedInstanceCount=function(){return Object.keys(sA).length},g.getLiveInheritedInstances=function(){var _=[],G;for(G in sA)sA.hasOwnProperty(G)&&_.push(sA[G]);return _},g.flushPendingDeletes=D6,g.setDelayFunction=function(_){Fg=_,ag.length&&Fg&&Fg(D6)},Ia=g.InternalError=Dg("InternalError"),Hq.prototype.isAliasOf=function(_){if(!(this instanceof Hq&&_ instanceof Hq))return!1;var G=this.M.P.N,Y=this.M.O,J=_.M.P.N;for(_=_.M.O;G.R;)Y=G.ba(Y),G=G.R;for(;J.R;)_=J.ba(_),J=J.R;return G===J&&Y===_},Hq.prototype.clone=function(){if(this.M.O||c6(this),this.M.aa)return this.M.count.value+=1,this;var _=mq,G=Object,Y=G.create,J=Object.getPrototypeOf(this),I=this.M;return _=_(Y.call(G,J,{M:{value:{count:I.count,$:I.$,aa:I.aa,O:I.O,P:I.P,T:I.T,U:I.U}}})),_.M.count.value+=1,_.M.$=!1,_},Hq.prototype.delete=function(){this.M.O||c6(this),this.M.$&&!this.M.aa&&u("Object already scheduled for deletion"),yg(this),La(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},Hq.prototype.isDeleted=function(){return!this.M.O},Hq.prototype.deleteLater=function(){return this.M.O||c6(this),this.M.$&&!this.M.aa&&u("Object already scheduled for deletion"),ag.push(this),ag.length===1&&Fg&&Fg(D6),this.M.$=!0,this},rA.prototype.qa=function(_){return this.ka&&(_=this.ka(_)),_},rA.prototype.ha=function(_){this.W&&this.W(_)},rA.prototype.argPackAdvance=8,rA.prototype.readValueFromPointer=Kg,rA.prototype.deleteObject=function(_){if(_!==null)_.delete()},rA.prototype.fromWireType=function(_){function G(){return this.da?bg(this.N.X,{P:this.wa,O:Y,U:this,T:_}):bg(this.N.X,{P:this,O:_})}var Y=this.qa(_);if(!Y)return this.ha(_),null;var J=Rj(this.N,Y);if(J!==void 0){if(J.M.count.value===0)return J.M.O=Y,J.M.T=_,J.clone();return J=J.clone(),this.ha(_),J}if(J=this.N.pa(Y),J=Xa[J],!J)return G.call(this);J=this.ca?J.la:J.pointerType;var I=$a(Y,this.N,J.N);return I===null?G.call(this):this.da?bg(J.N.X,{P:J,O:I,U:this,T:_}):bg(J.N.X,{P:J,O:I})},Ta=g.UnboundTypeError=Dg("UnboundTypeError");var uj=typeof atob=="function"?atob:function(_){var G="",Y=0;_=_.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var J="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(_.charAt(Y++)),I="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(_.charAt(Y++)),P="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(_.charAt(Y++)),W="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(_.charAt(Y++));J=J<<2|I>>4,I=(I&15)<<4|P>>2;var S=(P&3)<<6|W;G+=String.fromCharCode(J),P!==64&&(G+=String.fromCharCode(I)),W!==64&&(G+=String.fromCharCode(S))}while(Y<_.length);return G},lj={l:function(_,G,Y,J){FA("Assertion failed: "+(_?L(H,_):"")+", at: "+[G?G?L(H,G):"":"unknown filename",Y,J?J?L(H,J):"":"unknown function"])},q:function(_,G,Y){_=UA(_),G=Ha(G,"wrapper"),Y=Eg(Y);var J=[].slice,I=G.N,P=I.X,W=I.R.X,S=I.R.constructor;_=C6(_,function(){I.R.ja.forEach(function(B){if(this[B]===W[B])throw new Ya("Pure virtual function "+B+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:P}),this.__construct.apply(this,J.call(arguments))}),P.__construct=function(){this===P&&u("Pass correct 'this' to __construct");var B=S.implement.apply(void 0,[this].concat(J.call(arguments)));yg(B);var k=B.M;B.notifyOnDestruction(),k.aa=!0,Object.defineProperties(this,{M:{value:k}}),mq(this),B=k.O,B=w6(I,B),sA.hasOwnProperty(B)?u("Tried to register registered instance: "+B):sA[B]=this},P.__destruct=function(){this===P&&u("Pass correct 'this' to __destruct"),yg(this);var B=this.M.O;B=w6(I,B),sA.hasOwnProperty(B)?delete sA[B]:u("Tried to unregister unregistered instance: "+B)},_.prototype=Object.create(P);for(var C in Y)_.prototype[C]=Y[C];return wg(_)},j:function(_){var G=cg[_];delete cg[_];var{fa:Y,W:J,ia:I}=G,P=I.map((W)=>W.ta).concat(I.map((W)=>W.za));Jq([_],P,(W)=>{var S={};return I.forEach((C,B)=>{var k=W[B],f=C.ra,s=C.sa,KA=W[B+I.length],n=C.ya,VA=C.Aa;S[C.oa]={read:(CA)=>k.fromWireType(f(s,CA)),write:(CA,jg)=>{var oA=[];n(VA,CA,KA.toWireType(oA,jg)),m6(oA)}}}),[{name:G.name,fromWireType:function(C){var B={},k;for(k in S)B[k]=S[k].read(C);return J(C),B},toWireType:function(C,B){for(var k in S)if(!(k in B))throw TypeError('Missing field: "'+k+'"');var f=Y();for(k in S)S[k].write(f,B[k]);return C!==null&&C.push(J,f),f},argPackAdvance:8,readValueFromPointer:Kg,V:J}]})},v:function(){},B:function(_,G,Y,J,I){var P=b6(Y);G=UA(G),iA(_,{name:G,fromWireType:function(W){return!!W},toWireType:function(W,S){return S?J:I},argPackAdvance:8,readValueFromPointer:function(W){if(Y===1)var S=V;else if(Y===2)S=X;else if(Y===4)S=x;else throw TypeError("Unknown boolean type size: "+G);return this.fromWireType(S[W>>P])},V:null})},f:function(_,G,Y,J,I,P,W,S,C,B,k,f,s){k=UA(k),P=BA(I,P),S&&(S=BA(W,S)),B&&(B=BA(C,B)),s=BA(f,s);var KA=Qa(k);Nj(KA,function(){pg("Cannot construct "+k+" due to unbound types",[J])}),Jq([_,G,Y],J?[J]:[],function(n){if(n=n[0],J)var VA=n.N,CA=VA.X;else CA=Hq.prototype;n=C6(KA,function(){if(Object.getPrototypeOf(this)!==jg)throw new yq("Use 'new' to construct "+k);if(oA.Y===void 0)throw new yq(k+" has no accessible constructor");var ha=oA.Y[arguments.length];if(ha===void 0)throw new yq("Tried to invoke ctor of "+k+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(oA.Y).toString()+") parameters instead!");return ha.apply(this,arguments)});var jg=Object.create(CA,{constructor:{value:n}});n.prototype=jg;var oA=new Wj(k,n,jg,s,VA,P,S,B);VA=new rA(k,oA,!0,!1),CA=new rA(k+"*",oA,!1,!1);var Wa=new rA(k+" const*",oA,!1,!0);return Xa[_]={pointerType:CA,la:Wa},Bj(KA,n),[VA,CA,Wa]})},d:function(_,G,Y,J,I,P,W){var S=d6(Y,J);G=UA(G),P=BA(I,P),Jq([],[_],function(C){function B(){pg("Cannot call "+k+" due to unbound types",S)}C=C[0];var k=C.name+"."+G;G.startsWith("@@")&&(G=Symbol[G.substring(2)]);var f=C.N.constructor;return f[G]===void 0?(B.Z=Y-1,f[G]=B):(v6(f,G,k),f[G].S[Y-1]=B),Jq([],S,function(s){return s=f6(k,[s[0],null].concat(s.slice(1)),null,P,W),f[G].S===void 0?(s.Z=Y-1,f[G]=s):f[G].S[Y-1]=s,[]}),[]})},p:function(_,G,Y,J,I,P){0<G||FA();var W=d6(G,Y);I=BA(J,I),Jq([],[_],function(S){S=S[0];var C="constructor "+S.name;if(S.N.Y===void 0&&(S.N.Y=[]),S.N.Y[G-1]!==void 0)throw new yq("Cannot register multiple constructors with identical number of parameters ("+(G-1)+") for class '"+S.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return S.N.Y[G-1]=()=>{pg("Cannot construct "+S.name+" due to unbound types",W)},Jq([],W,function(B){return B.splice(1,0,null),S.N.Y[G-1]=f6(C,B,null,I,P),[]}),[]})},a:function(_,G,Y,J,I,P,W,S){var C=d6(Y,J);G=UA(G),P=BA(I,P),Jq([],[_],function(B){function k(){pg("Cannot call "+f+" due to unbound types",C)}B=B[0];var f=B.name+"."+G;G.startsWith("@@")&&(G=Symbol[G.substring(2)]),S&&B.N.ja.push(G);var s=B.N.X,KA=s[G];return KA===void 0||KA.S===void 0&&KA.className!==B.name&&KA.Z===Y-2?(k.Z=Y-2,k.className=B.name,s[G]=k):(v6(s,G,f),s[G].S[Y-2]=k),Jq([],C,function(n){return n=f6(f,n,B,P,W),s[G].S===void 0?(n.Z=Y-2,s[G]=n):s[G].S[Y-2]=n,[]}),[]})},A:function(_,G){G=UA(G),iA(_,{name:G,fromWireType:function(Y){var J=Eg(Y);return t6(Y),J},toWireType:function(Y,J){return wg(J)},argPackAdvance:8,readValueFromPointer:Kg,V:null})},n:function(_,G,Y){Y=b6(Y),G=UA(G),iA(_,{name:G,fromWireType:function(J){return J},toWireType:function(J,I){return I},argPackAdvance:8,readValueFromPointer:kj(G,Y),V:null})},e:function(_,G,Y,J,I){G=UA(G),I===-1&&(I=4294967295),I=b6(Y);var P=(S)=>S;if(J===0){var W=32-8*Y;P=(S)=>S<<W>>>W}Y=G.includes("unsigned")?function(S,C){return C>>>0}:function(S,C){return C},iA(_,{name:G,fromWireType:P,toWireType:Y,argPackAdvance:8,readValueFromPointer:Dj(G,I,J!==0),V:null})},b:function(_,G,Y){function J(P){P>>=2;var W=z;return new I($,W[P+1],W[P])}var I=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][G];Y=UA(Y),iA(_,{name:Y,fromWireType:J,argPackAdvance:8,readValueFromPointer:J},{ua:!0})},o:function(_,G){G=UA(G);var Y=G==="std::string";iA(_,{name:G,fromWireType:function(J){var I=z[J>>2],P=J+4;if(Y)for(var W=P,S=0;S<=I;++S){var C=P+S;if(S==I||H[C]==0){if(W=W?L(H,W,C-W):"",B===void 0)var B=W;else B+=String.fromCharCode(0),B+=W;W=C+1}}else{B=Array(I);for(S=0;S<I;++S)B[S]=String.fromCharCode(H[P+S]);B=B.join("")}return nA(J),B},toWireType:function(J,I){I instanceof ArrayBuffer&&(I=new Uint8Array(I));var P,W=typeof I=="string";if(W||I instanceof Uint8Array||I instanceof Uint8ClampedArray||I instanceof Int8Array||u("Cannot pass non-string to std::string"),Y&&W){var S=0;for(P=0;P<I.length;++P){var C=I.charCodeAt(P);127>=C?S++:2047>=C?S+=2:55296<=C&&57343>=C?(S+=4,++P):S+=3}P=S}else P=I.length;if(S=l6(4+P+1),C=S+4,z[S>>2]=P,Y&&W){if(W=C,C=P+1,P=H,0<C){C=W+C-1;for(var B=0;B<I.length;++B){var k=I.charCodeAt(B);if(55296<=k&&57343>=k){var f=I.charCodeAt(++B);k=65536+((k&1023)<<10)|f&1023}if(127>=k){if(W>=C)break;P[W++]=k}else{if(2047>=k){if(W+1>=C)break;P[W++]=192|k>>6}else{if(65535>=k){if(W+2>=C)break;P[W++]=224|k>>12}else{if(W+3>=C)break;P[W++]=240|k>>18,P[W++]=128|k>>12&63}P[W++]=128|k>>6&63}P[W++]=128|k&63}}P[W]=0}}else if(W)for(W=0;W<P;++W)B=I.charCodeAt(W),255<B&&(nA(C),u("String has UTF-16 code units that do not fit in 8 bits")),H[C+W]=B;else for(W=0;W<P;++W)H[C+W]=I[W];return J!==null&&J.push(nA,S),S},argPackAdvance:8,readValueFromPointer:Kg,V:function(J){nA(J)}})},i:function(_,G,Y){if(Y=UA(Y),G===2)var J=wj,I=yj,P=mj,W=()=>T,S=1;else G===4&&(J=bj,I=cj,P=vj,W=()=>z,S=2);iA(_,{name:Y,fromWireType:function(C){for(var B=z[C>>2],k=W(),f,s=C+4,KA=0;KA<=B;++KA){var n=C+4+KA*G;if(KA==B||k[n>>S]==0)s=J(s,n-s),f===void 0?f=s:(f+=String.fromCharCode(0),f+=s),s=n+G}return nA(C),f},toWireType:function(C,B){typeof B!="string"&&u("Cannot pass non-string to C++ string type "+Y);var k=P(B),f=l6(4+k+G);return z[f>>2]=k>>S,I(B,f+4,k+G),C!==null&&C.push(nA,f),f},argPackAdvance:8,readValueFromPointer:Kg,V:function(C){nA(C)}})},k:function(_,G,Y,J,I,P){cg[_]={name:UA(G),fa:BA(Y,J),W:BA(I,P),ia:[]}},h:function(_,G,Y,J,I,P,W,S,C,B){cg[_].ia.push({oa:UA(G),ta:Y,ra:BA(J,I),sa:P,za:W,ya:BA(S,C),Aa:B})},C:function(_,G){G=UA(G),iA(_,{va:!0,name:G,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(_,G,Y,J,I){_=fg[_],G=Eg(G),Y=Pa(Y);var P=[];return z[J>>2]=wg(P),_(G,Y,P,I)},t:function(_,G,Y,J){_=fg[_],G=Eg(G),Y=Pa(Y),_(G,Y,null,J)},g:t6,m:function(_,G){var Y=dj(_,G),J=Y[0];G=J.name+"_$"+Y.slice(1).map(function(W){return W.name}).join("_")+"$";var I=Va[G];if(I!==void 0)return I;var P=Array(_-1);return I=fj((W,S,C,B)=>{for(var k=0,f=0;f<_-1;++f)P[f]=Y[f+1].readValueFromPointer(B+k),k+=Y[f+1].argPackAdvance;W=W[S].apply(W,P);for(f=0;f<_-1;++f)Y[f+1].ma&&Y[f+1].ma(P[f]);if(!J.va)return J.toWireType(C,W)}),Va[G]=I},D:function(_){4<_&&(zA[_].ga+=1)},r:function(_){var G=Eg(_);m6(G),t6(_)},c:function(){FA("")},x:function(_,G,Y){H.copyWithin(_,G,G+Y)},w:function(_){var G=H.length;if(_>>>=0,2147483648<_)return!1;for(var Y=1;4>=Y;Y*=2){var J=G*(1+0.2/Y);J=Math.min(J,_+100663296);var I=Math;J=Math.max(_,J),I=I.min.call(I,2147483648,J+(65536-J%65536)%65536);A:{try{Q.grow(I-$.byteLength+65535>>>16),N();var P=1;break A}catch(W){}P=void 0}if(P)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(_,G,Y,J){for(var I=0,P=0;P<Y;P++){var W=z[G>>2],S=z[G+4>>2];G+=8;for(var C=0;C<S;C++){var B=H[W+C],k=tj[_];B===0||B===10?((_===1?Z:j)(L(k,0)),k.length=0):k.push(B)}I+=S}return z[J>>2]=I,0}};(function(){function _(I){g.asm=I.exports,Q=g.asm.E,N(),h=g.asm.J,w.unshift(g.asm.F),o--,g.monitorRunDependencies&&g.monitorRunDependencies(o),o==0&&(aA!==null&&(clearInterval(aA),aA=null),LA&&(I=LA,LA=null,I()))}function G(I){_(I.instance)}function Y(I){return xj().then(function(P){return WebAssembly.instantiate(P,J)}).then(function(P){return P}).then(I,function(P){j("failed to asynchronously prepare wasm: "+P),FA(P)})}var J={a:lj};if(o++,g.monitorRunDependencies&&g.monitorRunDependencies(o),g.instantiateWasm)try{return g.instantiateWasm(J,_)}catch(I){j("Module.instantiateWasm callback failed with error: "+I),a(I)}return function(){return U||typeof WebAssembly.instantiateStreaming!="function"||NA(jA)||typeof fetch!="function"?Y(G):fetch(jA,{credentials:"same-origin"}).then(function(I){return WebAssembly.instantiateStreaming(I,J).then(G,function(P){return j("wasm streaming compile failed: "+P),j("falling back to ArrayBuffer instantiation"),Y(G)})})}().catch(a),{}})(),g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.F).apply(null,arguments)};var Ra=g.___getTypeName=function(){return(Ra=g.___getTypeName=g.asm.G).apply(null,arguments)};g.__embind_initialize_bindings=function(){return(g.__embind_initialize_bindings=g.asm.H).apply(null,arguments)};var l6=g._malloc=function(){return(l6=g._malloc=g.asm.I).apply(null,arguments)},nA=g._free=function(){return(nA=g._free=g.asm.K).apply(null,arguments)};g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.L).apply(null,arguments)};var tg;LA=function _(){tg||Na(),tg||(LA=_)};function Na(){function _(){if(!tg&&(tg=!0,g.calledRun=!0,!M)){if(B6(w),E(g),g.onRuntimeInitialized)g.onRuntimeInitialized();if(g.postRun)for(typeof g.postRun=="function"&&(g.postRun=[g.postRun]);g.postRun.length;){var G=g.postRun.shift();c.unshift(G)}B6(c)}}if(!(0<o)){if(g.preRun)for(typeof g.preRun=="function"&&(g.preRun=[g.preRun]);g.preRun.length;)t();B6(b),0<o||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1),_()},1)):_())}}if(g.preInit)for(typeof g.preInit=="function"&&(g.preInit=[g.preInit]);0<g.preInit.length;)g.preInit.pop()();return Na(),q.ready}})(),nZ=rZ,i=function(A){return A[A.Auto=0]="Auto",A[A.FlexStart=1]="FlexStart",A[A.Center=2]="Center",A[A.FlexEnd=3]="FlexEnd",A[A.Stretch=4]="Stretch",A[A.Baseline=5]="Baseline",A[A.SpaceBetween=6]="SpaceBetween",A[A.SpaceAround=7]="SpaceAround",A[A.SpaceEvenly=8]="SpaceEvenly",A}({}),GE=function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A}({}),QE=function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A}({}),lq=function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A}({}),Tq=function(A){return A[A.Flex=0]="Flex",A[A.None=1]="None",A[A.Contents=2]="Contents",A}({}),p=function(A){return A[A.Left=0]="Left",A[A.Top=1]="Top",A[A.Right=2]="Right",A[A.Bottom=3]="Bottom",A[A.Start=4]="Start",A[A.End=5]="End",A[A.Horizontal=6]="Horizontal",A[A.Vertical=7]="Vertical",A[A.All=8]="All",A}({}),hq=function(A){return A[A.None=0]="None",A[A.StretchFlexBasis=1]="StretchFlexBasis",A[A.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",A[A.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",A[A.All=2147483647]="All",A[A.Classic=2147483646]="Classic",A}({}),dF=function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A}({}),hA=function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A}({}),cA=function(A){return A[A.Column=0]="Column",A[A.Row=1]="Row",A[A.All=2]="All",A}({}),MA=function(A){return A[A.FlexStart=0]="FlexStart",A[A.Center=1]="Center",A[A.FlexEnd=2]="FlexEnd",A[A.SpaceBetween=3]="SpaceBetween",A[A.SpaceAround=4]="SpaceAround",A[A.SpaceEvenly=5]="SpaceEvenly",A}({}),Sq=function(A){return A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug",A[A.Verbose=4]="Verbose",A[A.Fatal=5]="Fatal",A}({}),SA=function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A}({}),YE=function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A}({}),Fq=function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A}({}),Kq=function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A}({}),bA=function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A}({}),jq=function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A}({}),oZ={ALIGN_AUTO:i.Auto,ALIGN_FLEX_START:i.FlexStart,ALIGN_CENTER:i.Center,ALIGN_FLEX_END:i.FlexEnd,ALIGN_STRETCH:i.Stretch,ALIGN_BASELINE:i.Baseline,ALIGN_SPACE_BETWEEN:i.SpaceBetween,ALIGN_SPACE_AROUND:i.SpaceAround,ALIGN_SPACE_EVENLY:i.SpaceEvenly,BOX_SIZING_BORDER_BOX:GE.BorderBox,BOX_SIZING_CONTENT_BOX:GE.ContentBox,DIMENSION_WIDTH:QE.Width,DIMENSION_HEIGHT:QE.Height,DIRECTION_INHERIT:lq.Inherit,DIRECTION_LTR:lq.LTR,DIRECTION_RTL:lq.RTL,DISPLAY_FLEX:Tq.Flex,DISPLAY_NONE:Tq.None,DISPLAY_CONTENTS:Tq.Contents,EDGE_LEFT:p.Left,EDGE_TOP:p.Top,EDGE_RIGHT:p.Right,EDGE_BOTTOM:p.Bottom,EDGE_START:p.Start,EDGE_END:p.End,EDGE_HORIZONTAL:p.Horizontal,EDGE_VERTICAL:p.Vertical,EDGE_ALL:p.All,ERRATA_NONE:hq.None,ERRATA_STRETCH_FLEX_BASIS:hq.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:hq.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:hq.AbsolutePercentAgainstInnerSize,ERRATA_ALL:hq.All,ERRATA_CLASSIC:hq.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:dF.WebFlexBasis,FLEX_DIRECTION_COLUMN:hA.Column,FLEX_DIRECTION_COLUMN_REVERSE:hA.ColumnReverse,FLEX_DIRECTION_ROW:hA.Row,FLEX_DIRECTION_ROW_REVERSE:hA.RowReverse,GUTTER_COLUMN:cA.Column,GUTTER_ROW:cA.Row,GUTTER_ALL:cA.All,JUSTIFY_FLEX_START:MA.FlexStart,JUSTIFY_CENTER:MA.Center,JUSTIFY_FLEX_END:MA.FlexEnd,JUSTIFY_SPACE_BETWEEN:MA.SpaceBetween,JUSTIFY_SPACE_AROUND:MA.SpaceAround,JUSTIFY_SPACE_EVENLY:MA.SpaceEvenly,LOG_LEVEL_ERROR:Sq.Error,LOG_LEVEL_WARN:Sq.Warn,LOG_LEVEL_INFO:Sq.Info,LOG_LEVEL_DEBUG:Sq.Debug,LOG_LEVEL_VERBOSE:Sq.Verbose,LOG_LEVEL_FATAL:Sq.Fatal,MEASURE_MODE_UNDEFINED:SA.Undefined,MEASURE_MODE_EXACTLY:SA.Exactly,MEASURE_MODE_AT_MOST:SA.AtMost,NODE_TYPE_DEFAULT:YE.Default,NODE_TYPE_TEXT:YE.Text,OVERFLOW_VISIBLE:Fq.Visible,OVERFLOW_HIDDEN:Fq.Hidden,OVERFLOW_SCROLL:Fq.Scroll,POSITION_TYPE_STATIC:Kq.Static,POSITION_TYPE_RELATIVE:Kq.Relative,POSITION_TYPE_ABSOLUTE:Kq.Absolute,UNIT_UNDEFINED:bA.Undefined,UNIT_POINT:bA.Point,UNIT_PERCENT:bA.Percent,UNIT_AUTO:bA.Auto,WRAP_NO_WRAP:jq.NoWrap,WRAP_WRAP:jq.Wrap,WRAP_WRAP_REVERSE:jq.WrapReverse},eZ=oZ;qU=AU(await nZ()),O6=qU,tF=["single","double","rounded","heavy"];$g={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",topT:"\u252C",bottomT:"\u2534",leftT:"\u251C",rightT:"\u2524",cross:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",topT:"\u2566",bottomT:"\u2569",leftT:"\u2560",rightT:"\u2563",cross:"\u256C"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",topT:"\u252C",bottomT:"\u2534",leftT:"\u251C",rightT:"\u2524",cross:"\u253C"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",topT:"\u2533",bottomT:"\u253B",leftT:"\u2523",rightT:"\u252B",cross:"\u254B"}};WE={single:Bq($g.single),double:Bq($g.double),rounded:Bq($g.rounded),heavy:Bq($g.heavy)};SE=class SE extends gU{processParsedKey(A){try{switch(A.eventType){case"press":this.emit("keypress",new Xg(A));break;case"release":this.emit("keyrelease",new Xg(A));break;default:this.emit("keypress",new Xg(A));break}}catch(q){return console.error("[KeyHandler] Error processing parsed key:",q),!0}return!0}processPaste(A){try{let q=Bun.stripANSI(A);this.emit("paste",new hE(q))}catch(q){console.error("[KeyHandler] Error processing paste:",q)}}};zE=class zE extends SE{renderableHandlers=new Map;emit(A,...q){return this.emitWithPriority(A,...q)}emitWithPriority(A,...q){let g=!1,E=this.listeners(A);if(E.length>0){g=!0;for(let Z of E){try{Z(...q)}catch(j){console.error(`[KeyHandler] Error in global ${A} handler:`,j)}if(A==="keypress"||A==="keyrelease"||A==="paste"){if(q[0].propagationStopped)return g}}}let a=this.renderableHandlers.get(A),F=a&&a.size>0?[...a]:[],K=!1;if(a&&a.size>0){if(K=!0,A==="keypress"||A==="keyrelease"||A==="paste"){let Z=q[0];if(Z.defaultPrevented)return g||K;if(Z.propagationStopped)return g||K}for(let Z of F){try{Z(...q)}catch(j){console.error(`[KeyHandler] Error in renderable ${A} handler:`,j)}if(A==="keypress"||A==="keyrelease"||A==="paste"){if(q[0].propagationStopped)return g||K}}}return g||K}onInternal(A,q){if(!this.renderableHandlers.has(A))this.renderableHandlers.set(A,new Set);this.renderableHandlers.get(A).add(q)}offInternal(A,q){let g=this.renderableHandlers.get(A);if(g)g.delete(q)}};QF={black:"#000000",white:"#FFFFFF",red:"#FF0000",green:"#008000",blue:"#0000FF",yellow:"#FFFF00",cyan:"#00FFFF",magenta:"#FF00FF",silver:"#C0C0C0",gray:"#808080",grey:"#808080",maroon:"#800000",olive:"#808000",lime:"#00FF00",aqua:"#00FFFF",teal:"#008080",navy:"#000080",fuchsia:"#FF00FF",purple:"#800080",orange:"#FFA500",brightblack:"#666666",brightred:"#FF6666",brightgreen:"#66FF66",brightblue:"#6666FF",brightyellow:"#FFFF66",brightcyan:"#66FFFF",brightmagenta:"#FF66FF",brightwhite:"#FFFFFF"};EU={name:"block",version:"0.2.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:6,buffer:["","","","","",""],letterspace:[" "," "," "," "," "," "],letterspace_size:1,chars:{A:[" <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2> ","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],B:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],C:[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],D:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],E:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u255D </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],F:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c2>\u255A\u2550\u255D </c2>"],G:[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],H:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],I:["<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D</c2>"],J:["<c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588 \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u255D </c2>"],K:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],L:["<c1>\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],M:["<c1>\u2588\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551\u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551 \u255A\u2550\u255D</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],N:["<c1>\u2588\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551 \u255A</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D</c2>"],O:[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],P:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c2>\u255A\u2550\u255D </c2>"],Q:[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2584\u2584 \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550</c2><c1>\u2580\u2580</c1><c2>\u2550\u255D </c2>"],R:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],S:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],T:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u255D</c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c2> \u255A\u2550\u255D </c2>"],U:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],V:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c2> \u255A\u2550\u2550\u2550\u255D </c2>"],W:["<c1>\u2588\u2588</c1><c2>\u2557 </c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588\u2588</c1><c2>\u2557</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u255D\u255A\u2550\u2550\u255D </c2>"],X:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A</c2><c1>\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>"," <c1>\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],Y:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c2> \u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c2> \u255A\u2550\u255D </c2>"],Z:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550</c2><c1>\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>"," <c1>\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],"0":[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],"1":[" <c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>"," <c1>\u2588\u2588</c1><c2>\u2551</c2>"," <c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2> \u255A\u2550\u255D</c2>"],"2":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>"," <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u255D </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],"3":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>"," <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],"4":["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2> \u255A\u2550\u255D</c2>"],"5":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],"6":[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],"7":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c2> \u255A\u2550\u255D </c2>"],"8":[" <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u255D </c2>"],"9":[" <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2> \u255A\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>"," <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u255D </c2>"],"!":["<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>"],"?":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1> \u2584\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2580\u2580</c1><c2>\u2550\u2550\u255D </c2>","<c1> \u2588\u2588</c1><c2>\u2557 </c2>","<c2> \u255A\u2550\u255D </c2>"],".":[" "," "," "," ","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>"],"+":[" ","<c1> \u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2> \u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550\u255D</c2>","<c2> \u255A\u2550\u255D </c2>"," "],"-":[" "," ","<c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u255D</c2>"," "," "],_:[" "," "," "," ","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],"=":[" ","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D</c2>"," "],"@":[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u255D\u255A\u2550\u2550\u2550\u255D </c2>"],"#":[" <c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u255D \u255A\u2550\u255D </c2>"],$:["<c1>\u2584\u2584\u2588\u2588\u2588\u2584\u2584</c1><c2>\xB7</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550</c2><c1>\u2580\u2580\u2580</c1><c2>\u2550\u2550\u255D</c2>"],"%":["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D </c2>"," <c1>\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],"&":["<c1> \u2588\u2588</c1><c2>\u2557 </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551 </c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],"(":[" <c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2551 ","<c1>\u2588\u2588</c1><c2>\u2551 ","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2> \u255A\u2550\u255D</c2>"],")":["<c1>\u2588\u2588</c1><c2>\u2557 </c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>"," <c1>\u2588\u2588</c1><c2>\u2551</c2>"," <c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2>\u255A\u2550\u255D </c2>"],"/":["<c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D </c2>"," <c1>\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c2>\u255A\u2550\u255D </c2>"],":":[" ","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>"," "],";":[" "," ","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>","<c1>\u2584\u2588</c1><c2>\u2557</c2>","<c1>\u2580</c1><c2>\u2550\u255D</c2>"],",":[" "," "," "," ","<c1>\u2584\u2588</c1><c2>\u2557</c2>","<c1>\u2580</c1><c2>\u2550\u255D</c2>"],"'":["<c1>\u2588</c1><c2>\u2557</c2> ","<c2>\u255A\u255D</c2> "," "," "," "," "],'"':["<c1>\u2588</c1><c2>\u2557</c2><c1>\u2588</c1><c2>\u2557</c2> ","<c2>\u255A\u255D\u255A\u255D</c2> "," "," "," "," "]," ":[" "," "," "," "," "," "]}},aU={name:"shade",version:"0.2.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:8,buffer:["","","","","","","",""],letterspace:["<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>"],letterspace_size:1,chars:{A:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],B:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],C:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],D:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],E:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],F:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>"," <c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],G:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2> <c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],H:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],I:["<c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c1>\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591</c2>"],J:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>"," <c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>"," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],K:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],L:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],M:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],N:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588</c1><c2>\u2591</c2><c1>\u2588</c1>","<c1>\u2588 \u2588\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2> <c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],O:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],P:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588</c1> ","<c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>"," <c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],Q:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588\u2588\u2588</c1>","<c2>\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],R:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],S:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c1>\u2588</c1> "," <c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2> <c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],T:["<c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591</c2>"],U:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],V:["<c2>\u2591\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1> ","<c2>\u2591</c2> <c1>\u2588</c1> <c2>\u2591</c2>","<c2>\u2591\u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591</c2>"],W:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],X:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],Y:["<c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591</c2>"],Z:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588</c1> <c2>\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],"0":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u258C\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2> <c1>\u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"1":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588</c1><c2>\u2591\u2591</c2>"," <c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>"," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"2":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2590\u2588\u2588</c1><c2>\u2591</c2>"," <c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],"3":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588\u2588</c1>","<c2>\u2591\u2591</c2> <c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],"4":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1>","<c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c2>\u2591\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],"5":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>"," <c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"6":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"7":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c1>\u2588</c1> <c2>\u2591\u2591</c2>"," <c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"8":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>"," <c1>\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"9":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>"," <c1>\u2588\u2588\u2588</c1>","<c2>\u2591</c2> <c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"!":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591 \u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"?":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2590\u2588\u2588</c1><c2>\u2591</c2>"," <c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],".":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"+":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c2>\u2591</c2> <c1>\u2588</c1> ","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"-":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],_:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," "],"=":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"@":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u258C\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1> "," <c1>\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],"#":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u258C\u2590</c1> ","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u258C\u2590</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],$:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u258C</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1> "," <c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u258C\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>"],"%":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1> "," <c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1> <c2>\u2591</c2> "," <c2>\u2591\u2591\u2591</c2>"],"&":["<c2>\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1> ","<c1>\u2588\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c2> </c2> ","<c2>\u2591\u2591\u2591\u2591\u2591</c2>"],"(":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588</c1> <c2>\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>"," <c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2> <c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591 \u2591</c2>"],")":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2> <c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591</c2> <c1>\u2588</c1>","<c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>"],"/":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c1>\u2588</c1> <c2>\u2591\u2591</c2>"," <c2>\u2591\u2591\u2591</c2>"],":":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],";":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>"],",":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>"],"'":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],'"':["<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>"]," ":["<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>"]}},FU={name:"slick",version:"0.1.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:6,buffer:["","","","","",""],letterspace:["<c2>\u2571</c2>","<c2>\u2571</c2>","<c2>\u2571</c2>","<c2>\u2571</c2>","<c2>\u2571</c2>","<c2>\u2571</c2>"],letterspace_size:1,chars:{A:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F</c1><c2>\u2571</c2><c1>\u2570\u256F</c1>"],B:["<c1>\u256D\u2501\u2501\u256E</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2570\u256F\u2570\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],C:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2570\u256F</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],D:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2570\u256E\u256D\u256E\u2503</c1>","<c2>\u2571</c2><c1>\u2503\u2503\u2503\u2503</c1>","<c2>\u2571</c2><c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u256D\u256F\u2570\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],E:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],F:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2503</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2570\u256F</c1><c2>\u2571\u2571\u2571</c2>"],G:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2570\u256F</c1>","<c1>\u2503\u2503\u256D\u2501\u256E</c1>","<c1>\u2503\u2570\u253B\u2501\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],H:["<c1>\u256D\u256E</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2570\u256F</c1><c2>\u2571</c2><c1>\u2570\u256F</c1>"],I:["<c1>\u256D\u2501\u2501\u256E</c1>","<c1>\u2570\u252B\u2523\u256F</c1>","<c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u256D\u252B\u2523\u256E</c1>","<c1>\u2570\u2501\u2501\u256F</c1>"],J:["<c2>\u2571\u2571</c2><c1>\u256D\u256E</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u256D\u256E\u2503\u2503</c1>","<c1>\u2503\u2570\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u256F</c1>"],K:["<c1>\u256D\u256E\u256D\u2501\u256E</c1>","<c1>\u2503\u2503\u2503\u256D\u256F</c1>","<c1>\u2503\u2570\u256F\u256F</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503\u2503\u2570\u256E</c1>","<c1>\u2570\u256F\u2570\u2501\u256F</c1>"],L:["<c1>\u256D\u256E</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],M:["<c1>\u256D\u2501\u256E\u256D\u2501\u256E</c1>","<c1>\u2503\u2503\u2570\u256F\u2503\u2503</c1>","<c1>\u2503\u256D\u256E\u256D\u256E\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2570\u256F\u2570\u256F\u2570\u256F</c1>"],N:["<c1>\u256D\u2501\u256E</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2503\u2570\u256E\u2503\u2503</c1>","<c1>\u2503\u256D\u256E\u2570\u256F\u2503</c1>","<c1>\u2503\u2503\u2570\u256E\u2503\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503\u2503</c1>","<c1>\u2570\u256F</c1><c2>\u2571</c2><c1>\u2570\u2501\u256F</c1>"],O:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],P:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2503</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2570\u256F</c1><c2>\u2571\u2571\u2571</c2>"],Q:["<c1>\u256D\u2501\u2501\u2501\u256E</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u2501\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2570\u2501\u256F\u2503\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u2501\u256F</c1>"],R:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u256E\u256D\u256F</c1>","<c1>\u2503\u2503\u2503\u2570\u256E</c1>","<c1>\u2570\u256F\u2570\u2501\u256F</c1>"],S:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],T:["<c1>\u256D\u2501\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u256E\u256D\u256E\u2503</c1>","<c1>\u2570\u256F\u2503\u2503\u2570\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571\u2571</c2>"],U:["<c1>\u256D\u256E</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],V:["<c1>\u256D\u256E</c1><c2>\u2571\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2570\u256E\u256D\u256F\u2503</c1>","<c1>\u2570\u256E\u2503\u2503\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2503\u2570\u256F\u2503</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2570\u256E\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571\u2571</c2>"],W:["<c1>\u256D\u256E\u256D\u256E\u256D\u256E</c1>","<c1>\u2503\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2570\u256F\u2570\u256F\u2503</c1>","<c1>\u2570\u256E\u256D\u256E\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256F\u2570\u256F</c1><c2>\u2571</c2>"],X:["<c1>\u256D\u2501\u256E\u256D\u2501\u256E</c1>","<c1>\u2570\u256E\u2570\u256F\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256E\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u256D\u256F\u2570\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u256D\u256E\u2570\u256E</c1>","<c1>\u2570\u2501\u256F\u2570\u2501\u256F</c1>"],Y:["<c1>\u256D\u256E</c1><c2>\u2571\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2570\u256E\u256D\u256F\u2503</c1>","<c1>\u2570\u256E\u2570\u256F\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256E\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571\u2571</c2>"],Z:["<c1>\u256D\u2501\u2501\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256E\u2501\u2503</c1>","<c2>\u2571\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u2501\u2570\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u2501\u256F</c1>"],"0":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"1":["<c2>\u2571</c2><c1>\u256D\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u2503</c1><c2>\u2571</c2>","<c1>\u2570\u256E\u2503</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u2570\u256E</c1>","<c1>\u2570\u2501\u2501\u256F</c1>"],"2":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F\u256D\u256F\u2503</c1>","<c1>\u256D\u2501\u256F\u256D\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"3":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F\u256D\u256F\u2503</c1>","<c1>\u256D\u256E\u2570\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"4":["<c1>\u256D\u256E</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c2>\u2571\u2571\u2571</c2><c1>\u2503\u2503</c1>","<c2>\u2571\u2571\u2571</c2><c1>\u2570\u256F</c1>"],"5":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c1>\u256D\u2501\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"6":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"7":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F\u256D\u256F\u2503</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u256D\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571</c2>"],"8":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"9":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c1>\u256D\u2501\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"!":["<c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1>","<c1>\u2570\u256F</c1>","<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>"],"?":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F\u256D\u256F\u2503</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u256D\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u256D\u256E</c1><c2>\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571</c2>"],".":["<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>"],"+":["<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571</c2><c1>\u256D\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u2570\u256E</c1>","<c1>\u2570\u256E\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571</c2>"],"-":["<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c1>\u256D\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256F</c1>","<c2>\u2571\u2571\u2571\u2571</c2>"],_:["<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c1>\u256D\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256F</c1>"],"=":["<c2>\u2571\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571\u2571</c2>","<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>","<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"@":["<c1>\u256D\u2501\u2501\u2501\u2501\u256E</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u2501\u2501\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503\u256D\u2501\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503\u2570\u256F\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2570\u2501\u2501\u256F\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u2501\u2501\u256F</c1>"],"#":["<c2>\u2571</c2><c1>\u256D\u2501\u2501\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u256D\u256E\u2570\u256E</c1>","<c1>\u2570\u256E\u2503\u2503\u256D\u256F</c1>","<c1>\u256D\u256F\u2503\u2503\u2570\u256E</c1>","<c1>\u2570\u256E\u2570\u256F\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u2501\u2501\u256F</c1><c2>\u2571</c2>"],$:["<c2>\u2571\u2571</c2><c1>\u256D\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u2501\u256F\u2570\u256E</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c1>\u2570\u256E\u256D\u2501\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571\u2571</c2>"],"%":["<c1>\u256D\u256E</c1><c2>\u2571\u2571</c2><c1>\u256D\u2501\u256E</c1>","<c1>\u2570\u256F</c1><c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571\u2571</c2>","<c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2570\u2501\u256F</c1><c2>\u2571\u2571</c2><c1>\u2570\u256F</c1>"],"&":["<c2>\u2571</c2><c1>\u256D\u2501\u2501\u256E</c1>","<c2>\u2571</c2><c1>\u2503\u256D\u2501\u256F</c1>","<c1>\u256D\u256F\u2570\u256E</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2570\u256F\u2503\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"(":["<c2>\u2571\u2571</c2><c1>\u256D\u2501\u256E</c1>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c1>\u2570\u256E\u2570\u256E</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2570\u256E\u2570\u256E</c1>","<c2>\u2571\u2571</c2><c1>\u2570\u2501\u256F</c1>"],")":["<c1>\u256D\u2501\u256E</c1><c2>\u2571\u2571</c2>","<c1>\u2570\u256E\u2570\u256E</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2570\u256E\u2570\u256E</c1>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c1>\u2570\u2501\u256F</c1><c2>\u2571\u2571</c2>"],"/":["<c2>\u2571\u2571\u2571\u2571</c2><c1>\u256D\u2501\u256E</c1>","<c2>\u2571\u2571\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571\u2571</c2>","<c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2570\u2501\u256F</c1><c2>\u2571\u2571\u2571\u2571</c2>"],":":["<c2>\u2571\u2571</c2>","<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>","<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>","<c2>\u2571\u2571</c2>"],";":["<c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1>","<c1>\u2570\u256F</c1>","<c1>\u256D\u256E</c1>","<c1>\u2570\u252B</c1>","<c2>\u2571</c2><c1>\u256F</c1>"],",":["<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c1>\u256D\u256E</c1>","<c1>\u2570\u252B</c1>","<c2>\u2571</c2><c1>\u256F</c1>"],"'":["<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>"],'"':["<c1>\u256D\u256E\u256D\u256E</c1>","<c1>\u2570\u256F\u2570\u256F</c1>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>"]," ":["<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>"]}},KU={name:"tiny",version:"0.2.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:1,lines:2,buffer:["",""],letterspace:[" "," "],letterspace_size:1,chars:{A:["\u2584\u2580\u2588","\u2588\u2580\u2588"],B:["\u2588\u2584\u2584","\u2588\u2584\u2588"],C:["\u2588\u2580\u2580","\u2588\u2584\u2584"],D:["\u2588\u2580\u2584","\u2588\u2584\u2580"],E:["\u2588\u2580\u2580","\u2588\u2588\u2584"],F:["\u2588\u2580\u2580","\u2588\u2580 "],G:["\u2588\u2580\u2580","\u2588\u2584\u2588"],H:["\u2588 \u2588","\u2588\u2580\u2588"],I:["\u2588","\u2588"],J:[" \u2588","\u2588\u2584\u2588"],K:["\u2588\u2584\u2580","\u2588 \u2588"],L:["\u2588 ","\u2588\u2584\u2584"],M:["\u2588\u2580\u2584\u2580\u2588","\u2588 \u2580 \u2588"],N:["\u2588\u2584 \u2588","\u2588 \u2580\u2588"],O:["\u2588\u2580\u2588","\u2588\u2584\u2588"],P:["\u2588\u2580\u2588","\u2588\u2580\u2580"],Q:["\u2588\u2580\u2588","\u2580\u2580\u2588"],R:["\u2588\u2580\u2588","\u2588\u2580\u2584"],S:["\u2588\u2580\u2580","\u2584\u2584\u2588"],T:["\u2580\u2588\u2580"," \u2588 "],U:["\u2588 \u2588","\u2588\u2584\u2588"],V:["\u2588 \u2588","\u2580\u2584\u2580"],W:["\u2588 \u2588 \u2588","\u2580\u2584\u2580\u2584\u2580"],X:["\u2580\u2584\u2580","\u2588 \u2588"],Y:["\u2588\u2584\u2588"," \u2588 "],Z:["\u2580\u2588","\u2588\u2584"],"0":["\u259E\u2588\u259A","\u259A\u2588\u259E"],"1":["\u2584\u2588"," \u2588"],"2":["\u2580\u2588","\u2588\u2584"],"3":["\u2580\u2580\u2588","\u2584\u2588\u2588"],"4":["\u2588 \u2588","\u2580\u2580\u2588"],"5":["\u2588\u2580","\u2584\u2588"],"6":["\u2588\u2584\u2584","\u2588\u2584\u2588"],"7":["\u2580\u2580\u2588"," \u2588"],"8":["\u2588\u2588\u2588","\u2588\u2584\u2588"],"9":["\u2588\u2580\u2588","\u2580\u2580\u2588"],"!":["\u2588","\u2584"],"?":["\u2580\u2588"," \u2584"],".":[" ","\u2584"],"+":["\u2584\u2588\u2584"," \u2580 "],"-":["\u2584\u2584"," "],_:[" ","\u2584\u2584"],"=":["\u2580\u2580","\u2580\u2580"],"@":["\u259B\u2588\u259C","\u2599\u259F\u2583"],"#":["\u259F\u2584\u2599","\u259C\u2580\u259B"],$:["\u2596\u2588\u2597","\u2598\u2588\u259D"],"%":["\u2580 \u2584\u2580","\u2584\u2580 \u2584"],"&":["\u2584\u2584\u2588","\u2588\u2584\u2588"],"(":["\u2584\u2580","\u2580\u2584"],")":["\u2580\u2584","\u2584\u2580"],"/":[" \u2584\u2580","\u2584\u2580 "],":":["\u2580","\u2584"],";":[" ","\u2584\u2580"],",":[" ","\u2588"],"'":["\u2580"," "],'"':["\u259B \u259C"," "]," ":[" "," "]}},jU={name:"huge",version:"0.2.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:11,buffer:["","","","","","","","","","",""],letterspace:[" "," "," "," "," "," "," "," "," "," "," "],letterspace_size:1,chars:{A:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],B:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],C:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],D:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],E:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],F:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],G:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],H:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],I:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],J:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],K:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],L:[" <c1>\u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],M:[" <c1>\u2584\u2584 \u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2580 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],N:[" <c1>\u2584\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580\u2580</c1> "],O:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],P:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],Q:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],R:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],S:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],T:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],U:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],V:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],W:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2584 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580 \u2580\u2580</c1> "],X:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],Y:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],Z:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"0":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"1":[" <c1>\u2584\u2584\u2584\u2584</c1> "," <c1>\u2584\u2588</c1><c2>\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580 \u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"2":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"3":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"4":[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580</c1> "],"5":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"6":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"7":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],"8":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"9":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"!":[" <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "],"?":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> "," <c1>\u2584\u2588</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u2588\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580 \u2584\u2584\u2584\u2588</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2588</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u2588</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C\u2580\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580</c1> "," <c1>\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580</c1> "],".":[" "," "," "," "," "," "," "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "],"+":[" "," "," <c1>\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2584\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580</c1> "," "," "],"-":[" "," "," "," "," <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "," "," "," "," "],_:[" "," "," "," "," "," "," "," <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "," "],"=":[" "," "," <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "," "," <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "," "," "],"@":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2584\u2584\u2584\u2584 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2588</c1><c2>\u2591\u2591\u2591\u2591</c2><c1>\u2588 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2591</c2><c1>\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2588</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2584\u2584\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"#":[" <c1>\u2584 \u2584</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580 \u2580</c1> "],$:[" <c1>\u2584</c1> "," <c1>\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> "," <c1>\u2580</c1> "],"%":[" <c1>\u2584</c1> "," <c1>\u2584 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2584</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2580</c1> "," <c1>\u2580</c1> "],"&":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580 \u2580</c1> "],"(":[" <c1>\u2584\u2584\u2584\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u2588\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u2588\u2584\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "],")":[" <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2588</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2588</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "],"/":[" <c1>\u2584</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],":":[" "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "," "," "],";":[" "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u258C</c1> "," <c1>\u2580</c1> "," "],",":[" "," "," "," "," "," "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u258C</c1> "," <c1>\u2580</c1> "],"'":[" <c1>\u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2590</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2590</c1>"," <c1>\u2580</c1> "," "," "," "," "," "," "," "],'"':[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2590\u2590</c1><c2>\u2591</c2><c1>\u2590</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2590\u2590</c1><c2>\u2591</c2><c1>\u2590</c1>"," <c1>\u2580 \u2580</c1> "," "," "," "," "," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "]}},ZU={name:"grid",version:"0.1.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:6,buffer:["","","","","",""],letterspace:["<c2>\u254B</c2>","<c2>\u254B</c2>","<c2>\u254B</c2>","<c2>\u254B</c2>","<c2>\u254B</c2>","<c2>\u254B</c2>"],letterspace_size:1,chars:{A:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],B:["<c1>\u250F\u2513</c1><c2>\u254B\u254B</c2>","<c1>\u2503\u2517\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],C:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u251B</c1>","<c1>\u2503\u2517\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],D:["<c2>\u254B\u254B</c2><c1>\u250F\u2513</c1>","<c1>\u250F\u2501\u251B\u2503</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],E:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u2503\u2501\u252B</c1>","<c1>\u2503\u2503\u2501\u252B</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],F:["<c2>\u254B</c2><c1>\u250F\u2501\u2513</c1>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2503\u2503</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"],G:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2513\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>"],H:["<c1>\u250F\u2513</c1><c2>\u254B\u254B</c2>","<c1>\u2503\u2517\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],I:["<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c1>\u250F\u2513</c1>","<c1>\u2503\u2503</c1>","<c1>\u2517\u251B</c1>","<c2>\u254B\u254B</c2>"],J:["<c2>\u254B</c2><c1>\u250F\u2513</c1>","<c2>\u254B</c2><c1>\u2517\u251B</c1>","<c2>\u254B</c2><c1>\u250F\u2513</c1>","<c2>\u254B</c2><c1>\u2503\u2503</c1>","<c1>\u250F\u251B\u2503</c1>","<c1>\u2517\u2501\u251B</c1>"],K:["<c1>\u250F\u2513</c1><c2>\u254B\u254B</c2>","<c1>\u2503\u2503\u250F\u2513</c1>","<c1>\u2503\u2517\u251B\u251B</c1>","<c1>\u2503\u250F\u2513\u2513</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],L:["<c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2517\u2513</c1>","<c1>\u2517\u2501\u251B</c1>","<c2>\u254B\u254B\u254B</c2>"],M:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u2517\u253B\u253B\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],N:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2513</c1><c2>\u254B</c2>","<c1>\u2503\u250F\u2513\u2513</c1>","<c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],O:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],P:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2503\u250F\u2501\u251B</c1>","<c1>\u2517\u251B</c1><c2>\u254B\u254B</c2>"],Q:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2513\u2503</c1>","<c2>\u254B\u254B</c2><c1>\u2517\u251B</c1>"],R:["<c2>\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2513</c1>","<c1>\u2503\u250F\u251B</c1>","<c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B</c2>"],S:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u2501\u2501\u252B</c1>","<c1>\u2523\u2501\u2501\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],T:["<c2>\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2503\u2517\u2513</c1>","<c2>\u254B</c2><c1>\u2517\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],U:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],V:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"],W:["<c2>\u254B\u254B\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513\u250F\u2513</c1>","<c1>\u2503\u2517\u251B\u2517\u251B\u2503</c1>","<c1>\u2517\u2513\u250F\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u251B\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B\u254B\u254B</c2>"],X:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2517\u254B\u254B\u251B</c1>","<c1>\u250F\u254B\u254B\u2513</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],Y:["<c2>\u254B\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513</c1><c2>\u254B</c2><c1>\u250F\u2513</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2513\u250F\u251B</c1>","<c1>\u2517\u2501\u2501\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B\u254B</c2>"],Z:["<c2>\u254B\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2523\u2501\u2501\u2503\u2503</c1>","<c1>\u2503\u2503\u2501\u2501\u252B</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B\u254B</c2>"],"0":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"1":["<c2>\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2503</c1><c2>\u254B</c2>","<c1>\u2517\u2513\u2503</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2517\u2501\u2501\u251B</c1>"],"2":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2517\u251B\u250F\u251B\u2503</c1>","<c1>\u250F\u2501\u251B\u250F\u251B</c1>","<c1>\u2503\u2517\u2501\u253B\u2513</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"3":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2517\u251B\u250F\u251B\u2503</c1>","<c1>\u250F\u2513\u2517\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"4":["<c1>\u250F\u2513</c1><c2>\u254B</c2><c1>\u250F\u2513</c1>","<c1>\u2503\u2503</c1><c2>\u254B</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2513\u2503</c1>","<c2>\u254B\u254B\u254B</c2><c1>\u2503\u2503</c1>","<c2>\u254B\u254B\u254B</c2><c1>\u2517\u251B</c1>"],"5":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2501\u251B</c1>","<c1>\u2503\u2517\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u2513\u2503</c1>","<c1>\u250F\u2501\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"6":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2501\u251B</c1>","<c1>\u2503\u2517\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"7":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2517\u251B\u250F\u251B\u2503</c1>","<c2>\u254B\u254B</c2><c1>\u2503\u250F\u251B</c1>","<c2>\u254B\u254B</c2><c1>\u2503\u2503</c1><c2>\u254B</c2>","<c2>\u254B\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>"],"8":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"9":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2513\u2503</c1>","<c1>\u250F\u2501\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"!":["<c1>\u250F\u2513</c1>","<c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1>","<c1>\u2517\u251B</c1>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>"],"?":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2517\u251B\u250F\u251B\u2503</c1>","<c2>\u254B\u254B</c2><c1>\u2503\u250F\u251B</c1>","<c2>\u254B\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c2>\u254B\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>"],".":["<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>"],"+":["<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"],"-":["<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"],_:["<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u251B</c1>"],"=":["<c2>\u254B\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>","<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B\u254B</c2>"],"@":["<c1>\u250F\u2501\u2501\u2501\u2501\u2513</c1><c2>\u254B</c2>","<c1>\u2503\u250F\u2501\u2501\u2513\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2503\u250F\u2501\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2503\u2517\u251B\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2517\u2501\u2501\u251B\u2517\u2513</c1>","<c1>\u2517\u2501\u2501\u2501\u2501\u2501\u251B</c1>"],"#":["<c2>\u254B</c2><c1>\u250F\u2501\u2501\u2501\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u250F\u2501\u2513\u2517\u2513</c1>","<c1>\u2517\u2513\u2503\u2503\u2503\u250F\u251B</c1>","<c1>\u250F\u251B\u2503\u2503\u2503\u2517\u2513</c1>","<c1>\u2517\u2513\u2517\u2501\u251B\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u2501\u2501\u2501\u251B</c1><c2>\u254B</c2>"],$:["<c2>\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2503\u2501\u2501\u252B</c1>","<c1>\u2523\u2501\u2501\u2503</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>"],"%":["<c1>\u250F\u2513</c1><c2>\u254B\u254B</c2><c1>\u250F\u2501\u2513</c1>","<c1>\u2517\u251B</c1><c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1>","<c2>\u254B\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B\u254B</c2>","<c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2><c1>\u250F\u2513</c1>","<c1>\u2517\u2501\u251B</c1><c2>\u254B\u254B</c2><c1>\u2517\u251B</c1>"],"&":["<c2>\u254B\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c2>\u254B\u254B</c2><c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u250F\u2501\u251B\u2517\u2513</c1>","<c1>\u2503\u250F\u2513\u250F\u251B</c1>","<c1>\u2503\u2517\u251B\u2503</c1><c2>\u254B</c2>","<c1>\u2517\u2501\u2501\u251B</c1><c2>\u254B</c2>"],"(":["<c2>\u254B\u254B</c2><c1>\u250F\u2501\u2513</c1>","<c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1>","<c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2>","<c1>\u2517\u2513\u2517\u2513</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u2517\u2513\u2517\u2513</c1>","<c2>\u254B\u254B</c2><c1>\u2517\u2501\u251B</c1>"],")":["<c1>\u250F\u2501\u2513</c1><c2>\u254B\u254B</c2>","<c1>\u2517\u2513\u2517\u2513</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u2517\u2513\u2517\u2513</c1>","<c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1>","<c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2>","<c1>\u2517\u2501\u251B</c1><c2>\u254B\u254B</c2>"],"/":["<c2>\u254B\u254B\u254B\u254B</c2><c1>\u250F\u2501\u2513</c1>","<c2>\u254B\u254B\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1>","<c2>\u254B\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B\u254B</c2>","<c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B\u254B\u254B</c2>","<c1>\u2517\u2501\u251B</c1><c2>\u254B\u254B\u254B\u254B</c2>"],":":["<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c2>\u254B\u254B</c2>"],";":["<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u252B</c1>"],",":["<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u252B</c1>"],"'":["<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>"],'"':["<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"]," ":["<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>"]}},UU={name:"pallet",version:"0.1.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:6,buffer:["","","","","",""],letterspace:["<c2>\u2500</c2>","<c2>\u2500</c2>","<c2>\u2500</c2>","<c2>\u2500</c2>","<c2>\u2500</c2>","<c2>\u2500</c2>"],letterspace_size:1,chars:{A:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D</c1><c2>\u2500</c2><c1>\u255A\u255D</c1>"],B:["<c1>\u2554\u2550\u2550\u2557</c1><c2>\u2500</c2>","<c1>\u2551\u2554\u2557\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u255A\u255D\u255A\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],C:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u255A\u255D</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],D:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u255A\u2557\u2554\u2557\u2551</c1>","<c2>\u2500</c2><c1>\u2551\u2551\u2551\u2551</c1>","<c2>\u2500</c2><c1>\u2551\u2551\u2551\u2551</c1>","<c1>\u2554\u255D\u255A\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],E:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],F:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u2551</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u255A\u255D</c1><c2>\u2500\u2500\u2500</c2>"],G:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u255A\u255D</c1>","<c1>\u2551\u2551\u2554\u2550\u2557</c1>","<c1>\u2551\u255A\u2569\u2550\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],H:["<c1>\u2554\u2557</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u255A\u255D</c1><c2>\u2500</c2><c1>\u255A\u255D</c1>"],I:["<c1>\u2554\u2550\u2550\u2557</c1>","<c1>\u255A\u2563\u2560\u255D</c1>","<c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2554\u2563\u2560\u2557</c1>","<c1>\u255A\u2550\u2550\u255D</c1>"],J:["<c2>\u2500\u2500</c2><c1>\u2554\u2557</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2554\u2557\u2551\u2551</c1>","<c1>\u2551\u255A\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u255D</c1>"],K:["<c1>\u2554\u2557\u2554\u2550\u2557</c1>","<c1>\u2551\u2551\u2551\u2554\u255D</c1>","<c1>\u2551\u255A\u255D\u255D</c1><c2>\u2500</c2>","<c1>\u2551\u2554\u2557\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551\u2551\u255A\u2557</c1>","<c1>\u255A\u255D\u255A\u2550\u255D</c1>"],L:["<c1>\u2554\u2557</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],M:["<c1>\u2554\u2550\u2557\u2554\u2550\u2557</c1>","<c1>\u2551\u2551\u255A\u255D\u2551\u2551</c1>","<c1>\u2551\u2554\u2557\u2554\u2557\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u255A\u255D\u255A\u255D\u255A\u255D</c1>"],N:["<c1>\u2554\u2550\u2557</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u2551\u255A\u2557\u2551\u2551</c1>","<c1>\u2551\u2554\u2557\u255A\u255D\u2551</c1>","<c1>\u2551\u2551\u255A\u2557\u2551\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551\u2551</c1>","<c1>\u255A\u255D</c1><c2>\u2500</c2><c1>\u255A\u2550\u255D</c1>"],O:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],P:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u2551</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u255A\u255D</c1><c2>\u2500\u2500\u2500</c2>"],Q:["<c1>\u2554\u2550\u2550\u2550\u2557</c1><c2>\u2500</c2>","<c1>\u2551\u2554\u2550\u2557\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u255A\u2550\u255D\u2560\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u2550\u255D</c1>"],R:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2557\u2554\u255D</c1>","<c1>\u2551\u2551\u2551\u255A\u2557</c1>","<c1>\u255A\u255D\u255A\u2550\u255D</c1>"],S:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],T:["<c1>\u2554\u2550\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2557\u2554\u2557\u2551</c1>","<c1>\u255A\u255D\u2551\u2551\u255A\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500\u2500</c2>"],U:["<c1>\u2554\u2557</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],V:["<c1>\u2554\u2557</c1><c2>\u2500\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u255A\u2557\u2554\u255D\u2551</c1>","<c1>\u255A\u2557\u2551\u2551\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u2551\u255A\u255D\u2551</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u255A\u2557\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500\u2500</c2>"],W:["<c1>\u2554\u2557\u2554\u2557\u2554\u2557</c1>","<c1>\u2551\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u255A\u255D\u255A\u255D\u2551</c1>","<c1>\u255A\u2557\u2554\u2557\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u255D\u255A\u255D</c1><c2>\u2500</c2>"],X:["<c1>\u2554\u2550\u2557\u2554\u2550\u2557</c1>","<c1>\u255A\u2557\u255A\u255D\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u2557\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2554\u255D\u255A\u2557</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u2554\u2557\u255A\u2557</c1>","<c1>\u255A\u2550\u255D\u255A\u2550\u255D</c1>"],Y:["<c1>\u2554\u2557</c1><c2>\u2500\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u255A\u2557\u2554\u255D\u2551</c1>","<c1>\u255A\u2557\u255A\u255D\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u2557\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500\u2500</c2>"],Z:["<c1>\u2554\u2550\u2550\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2557\u2550\u2551</c1>","<c2>\u2500\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u2550\u255A\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u2550\u255D</c1>"],"0":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"1":["<c2>\u2500</c2><c1>\u2554\u2557</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u2551</c1><c2>\u2500</c2>","<c1>\u255A\u2557\u2551</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u255A\u2557</c1>","<c1>\u255A\u2550\u2550\u255D</c1>"],"2":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D\u2554\u255D\u2551</c1>","<c1>\u2554\u2550\u255D\u2554\u255D</c1>","<c1>\u2551\u2551\u255A\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"3":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D\u2554\u255D\u2551</c1>","<c1>\u2554\u2557\u255A\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"4":["<c1>\u2554\u2557</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c2>\u2500\u2500\u2500</c2><c1>\u2551\u2551</c1>","<c2>\u2500\u2500\u2500</c2><c1>\u255A\u255D</c1>"],"5":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c1>\u2554\u2550\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"6":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"7":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D\u2554\u255D\u2551</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2554\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500</c2>"],"8":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"9":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c1>\u2554\u2550\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"!":["<c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1>","<c1>\u2551\u2551</c1>","<c1>\u255A\u255D</c1>","<c1>\u2554\u2557</c1>","<c1>\u255A\u255D</c1>"],"?":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D\u2554\u255D\u2551</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2554\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2554\u2557</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500</c2>"],".":["<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c1>\u2554\u2557</c1>","<c1>\u255A\u255D</c1>"],"+":["<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500</c2><c1>\u2554\u2557</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u255A\u2557</c1>","<c1>\u255A\u2557\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500</c2>"],"-":["<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c1>\u2554\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u255D</c1>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>"],_:["<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c1>\u2554\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u255D</c1>"],"=":["<c2>\u2500\u2500\u2500\u2500\u2500</c2>","<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>","<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>","<c2>\u2500\u2500\u2500\u2500\u2500</c2>"],"@":["<c1>\u2554\u2550\u2550\u2550\u2550\u2557</c1><c2>\u2500</c2>","<c1>\u2551\u2554\u2550\u2550\u2557\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551\u2554\u2550\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551\u255A\u255D\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u255A\u2550\u2550\u255D\u2560\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u2550\u2550\u255D</c1>"],"#":["<c2>\u2500</c2><c1>\u2554\u2569\u2569\u2569\u2557</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u2554\u2550\u2557\u255A\u2557</c1>","<c1>\u255A\u2557\u2560\u2550\u2563\u2554\u255D</c1>","<c1>\u2554\u255D\u2560\u2550\u2563\u255A\u2557</c1>","<c1>\u255A\u2557\u255A\u2550\u255D\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u2566\u2566\u2566\u255D</c1><c2>\u2500</c2>"],$:["<c1>\u2554\u255D\u2569\u255A\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2557\u2566\u2554\u255D</c1>"],"%":["<c1>\u2554\u2557</c1><c2>\u2500\u2500</c2><c1>\u2554\u2550\u2557</c1>","<c1>\u255A\u255D</c1><c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500\u2500</c2>","<c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u255A\u2550\u255D</c1><c2>\u2500\u2500</c2><c1>\u255A\u255D</c1>"],"&":["<c2>\u2500\u2500</c2><c1>\u2554\u2557</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2554\u2550\u255D\u255A\u2557</c1>","<c1>\u2551\u2554\u2557\u2554\u255D</c1>","<c1>\u2551\u255A\u255D\u2551</c1><c2>\u2500</c2>","<c1>\u255A\u2550\u2550\u255D</c1><c2>\u2500</c2>"],"(":["<c2>\u2500\u2500</c2><c1>\u2554\u2550\u2557</c1>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c1>\u255A\u2557\u255A\u2557</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u255A\u2557\u255A\u2557</c1>","<c2>\u2500\u2500</c2><c1>\u255A\u2550\u255D</c1>"],")":["<c1>\u2554\u2550\u2557</c1><c2>\u2500\u2500</c2>","<c1>\u255A\u2557\u255A\u2557</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u255A\u2557\u255A\u2557</c1>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c1>\u255A\u2550\u255D</c1><c2>\u2500\u2500</c2>"],"/":["<c2>\u2500\u2500\u2500\u2500</c2><c1>\u2554\u2550\u2557</c1>","<c2>\u2500\u2500\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500\u2500</c2>","<c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u255A\u2550\u255D</c1><c2>\u2500\u2500\u2500\u2500</c2>"],":":["<c2>\u2500\u2500</c2>","<c1>\u2554\u2557</c1>","<c1>\u255A\u255D</c1>","<c1>\u2554\u2557</c1>","<c1>\u255A\u255D</c1>","<c2>\u2500\u2500</c2>"],";":["<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c1>\u2554\u2557</c1>","<c1>\u255A\u2563</c1>","<c2>\u2500</c2><c1>\u255D</c1>"],",":["<c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1>","<c1>\u255A\u255D</c1>","<c1>\u2554\u2557</c1>","<c1>\u255A\u2563</c1>","<c2>\u2500</c2><c1>\u255D</c1>"],"'":["<c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1>","<c1>\u255A\u255D</c1>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>"],'"':["<c1>\u2554\u2557\u2554\u2557</c1>","<c1>\u2551\u2551\u2551\u2551</c1>","<c1>\u255A\u255D\u255A\u255D</c1>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>"]," ":["<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>"]}},lF={tiny:KU,block:EU,shade:aU,slick:FU,huge:jU,grid:ZU,pallet:UU},EE={};tA={NONE:0,BOLD:1,DIM:2,ITALIC:4,UNDERLINE:8,BLINK:16,INVERSE:32,HIDDEN:64,STRIKETHROUGH:128};((A)=>{A[A.topLeft=0]="topLeft",A[A.topRight=1]="topRight",A[A.bottomLeft=2]="bottomLeft",A[A.bottomRight=3]="bottomRight"})(sF||={});iF=Symbol.for("@opentui/core/StyledText");nq=class nq{[iF]=!0;chunks;constructor(A){this.chunks=A}};YF={27:"escape",9:"tab",13:"return",127:"backspace",57344:"escape",57345:"return",57346:"tab",57347:"backspace",57348:"insert",57349:"delete",57350:"left",57351:"right",57352:"up",57353:"down",57354:"pageup",57355:"pagedown",57356:"home",57357:"end",57364:"f1",57365:"f2",57366:"f3",57367:"f4",57368:"f5",57369:"f6",57370:"f7",57371:"f8",57372:"f9",57373:"f10",57374:"f11",57375:"f12",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24",57388:"f25",57389:"f26",57390:"f27",57391:"f28",57392:"f29",57393:"f30",57394:"f31",57395:"f32",57396:"f33",57397:"f34",57398:"f35",57399:"kp0",57400:"kp1",57401:"kp2",57402:"kp3",57403:"kp4",57404:"kp5",57405:"kp6",57406:"kp7",57407:"kp8",57408:"kp9",57409:"kpdecimal",57410:"kpdivide",57411:"kpmultiply",57412:"kpminus",57413:"kpplus",57414:"kpenter",57415:"kpequal",57428:"mediaplay",57429:"mediapause",57430:"mediaplaypause",57431:"mediareverse",57432:"mediastop",57433:"mediafastforward",57434:"mediarewind",57435:"medianext",57436:"mediaprev",57437:"mediarecord",57438:"volumedown",57439:"volumeup",57440:"mute",57441:"leftshift",57442:"leftctrl",57443:"leftalt",57444:"leftsuper",57445:"lefthyper",57446:"leftmeta",57447:"rightshift",57448:"rightctrl",57449:"rightalt",57450:"rightsuper",57451:"righthyper",57452:"rightmeta",57453:"iso_level3_shift",57454:"iso_level5_shift"};QU={A:"up",B:"down",C:"right",D:"left",H:"home",F:"end",P:"f1",Q:"f2",R:"f3",S:"f4"},YU={"1":"home","2":"insert","3":"delete","4":"end","5":"pageup","6":"pagedown","7":"home","8":"end","11":"f1","12":"f2","13":"f3","14":"f4","15":"f5","17":"f6","18":"f7","19":"f8","20":"f9","21":"f10","23":"f11","24":"f12"};HU=/^(?:\x1b)([a-zA-Z0-9])$/,LU=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,eF={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear",f:"right",b:"left",p:"up",n:"down","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},$U=[...Object.values(eF),"backspace"],TU=/^\x1b\[27;(\d+);(\d+)~$/;Pg=class Pg{mouseButtonsPressed=new Set;static SCROLL_DIRECTIONS={0:"up",1:"down",2:"left",3:"right"};reset(){this.mouseButtonsPressed.clear()}decodeInput(A){return(Buffer.isBuffer(A)?A:Buffer.from(A.buffer,A.byteOffset,A.byteLength)).toString("latin1")}parseMouseEvent(A){let q=this.decodeInput(A);return this.parseMouseSequenceAt(q,0)?.event??null}parseAllMouseEvents(A){let q=this.decodeInput(A),g=[],E=0;while(E<q.length){let a=this.parseMouseSequenceAt(q,E);if(!a)break;g.push(a.event),E+=a.consumed}return g}parseMouseSequenceAt(A,q){if(!A.startsWith("\x1B[",q))return null;let g=A[q+2];if(g==="<")return this.parseSgrSequence(A,q);if(g==="M")return this.parseBasicSequence(A,q);return null}parseSgrSequence(A,q){let g=q+3,E=[0,0,0],a=0,F=!1;while(g<A.length){let K=A[g],Z=A.charCodeAt(g);if(Z>=48&&Z<=57){F=!0,E[a]=E[a]*10+(Z-48),g++;continue}switch(K){case";":{if(!F||a>=2)return null;a++,F=!1,g++;break}case"M":case"m":{if(!F||a!==2)return null;return{event:this.decodeSgrEvent(E[0],E[1],E[2],K),consumed:g-q+1}}default:return null}}return null}parseBasicSequence(A,q){if(q+6>A.length)return null;let g=A.charCodeAt(q+3)-32,E=A.charCodeAt(q+4)-33,a=A.charCodeAt(q+5)-33;return{event:this.decodeBasicEvent(g,E,a),consumed:6}}decodeSgrEvent(A,q,g,E){let a=A&3,F=(A&64)!==0,K=!F?void 0:Pg.SCROLL_DIRECTIONS[a],Z=(A&32)!==0,j={shift:(A&4)!==0,alt:(A&8)!==0,ctrl:(A&16)!==0},U,O;if(F&&E==="M")U="scroll",O={direction:K,delta:1};else if(Z){let Q=this.mouseButtonsPressed.size>0;if(a===3)U="move";else if(Q)U="drag";else U="move"}else if(U=E==="M"?"down":"up",U==="down"&&a!==3)this.mouseButtonsPressed.add(a);else if(U==="up")this.mouseButtonsPressed.clear();return{type:U,button:a===3?0:a,x:q-1,y:g-1,modifiers:j,scroll:O}}decodeBasicEvent(A,q,g){let E=A&3,a=(A&64)!==0,F=(A&32)!==0,K=!a?void 0:Pg.SCROLL_DIRECTIONS[E],Z={shift:(A&4)!==0,alt:(A&8)!==0,ctrl:(A&16)!==0},j,U,O;if(a)j="scroll",U=0,O={direction:K,delta:1};else if(F)j="move",U=E===3?-1:E;else j=E===3?"up":"down",U=E===3?0:E;return{type:j,button:U,x:q,y:g,modifiers:Z,scroll:O}}};yE=Symbol.for("@opentui/core/singleton");Cq=kq("env-registry",()=>({}));eg=kq("env-store",()=>new qK),EA=new Proxy({},{get(A,q){if(typeof q!=="string")return;return eg.get(q)},has(A,q){return eg.has(q)},ownKeys(){return Object.keys(Cq)},getOwnPropertyDescriptor(A,q){if(eg.has(q))return{enumerable:!0,configurable:!0,get:()=>eg.get(q)};return}}),aE=Y6.from("\x1B[200~"),FE=Y6.from("\x1B[201~"),gK=new Uint8Array(0),SU=new TextDecoder,zU=/^\x1b\[\d+\$$/,BU=new kE;ZA({name:"OTUI_TS_STYLE_WARN",default:!1,description:"Enable warnings for missing syntax styles"});dq=new Map;ZA({name:"OTUI_TREE_SITTER_WORKER_PATH",description:"Path to the TreeSitter worker",type:"string",default:""});iU=vU();bE=class bE extends mU{initialized=!1;worker;buffers=new Map;initializePromise;initializeResolvers;messageCallbacks=new Map;messageIdCounter=0;editQueues=new Map;debouncer;options;constructor(A){super();this.options=A,this.debouncer=bU("tree-sitter-client"),this.startWorker()}emitError(A,q){if(this.listenerCount("error")>0)this.emit("error",A,q)}emitWarning(A,q){if(this.listenerCount("warning")>0)this.emit("warning",A,q)}startWorker(){if(this.worker)return;let A;if(EA.OTUI_TREE_SITTER_WORKER_PATH)A=EA.OTUI_TREE_SITTER_WORKER_PATH;else if(typeof OTUI_TREE_SITTER_WORKER_PATH<"u")A=OTUI_TREE_SITTER_WORKER_PATH;else if(this.options.workerPath)A=this.options.workerPath;else if(A=new URL("./parser.worker.js",import.meta.url).href,!dU(LF(import.meta.dirname,"parser.worker.js")))A=new URL("./parser.worker.ts",import.meta.url).href;this.worker=new Worker(A),this.worker.onmessage=this.handleWorkerMessage.bind(this),this.worker.onerror=(q)=>{if(console.error("TreeSitter worker error:",q.message),this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(Error(`Worker error: ${q.message}`)),this.initializeResolvers=void 0;this.emitError(`Worker error: ${q.message}`)}}stopWorker(){if(!this.worker)return;this.worker.terminate(),this.worker=void 0}handleReset(){return this.buffers.clear(),this.stopWorker(),this.startWorker(),this.initializePromise=void 0,this.initializeResolvers=void 0,this.initialize()}async initialize(){if(this.initializePromise)return this.initializePromise;return this.initializePromise=new Promise((A,q)=>{let g=this.options.initTimeout??1e4,E=setTimeout(()=>{let a=Error("Worker initialization timed out");console.error("TreeSitter client:",a.message),this.initializeResolvers=void 0,q(a)},g);this.initializeResolvers={resolve:A,reject:q,timeoutId:E},this.worker?.postMessage({type:"INIT",dataPath:this.options.dataPath})}),await this.initializePromise,await this.registerDefaultParsers(),this.initializePromise}async registerDefaultParsers(){for(let A of iU)this.addFiletypeParser(A)}resolvePath(A){if(rU(A))return A;if(KK(A))return sU(fU(A).base);if(!pU(A))return LF(A);return A}addFiletypeParser(A){let q={...A,wasm:this.resolvePath(A.wasm),queries:{highlights:A.queries.highlights.map((g)=>this.resolvePath(g)),injections:A.queries.injections?.map((g)=>this.resolvePath(g))}};this.worker?.postMessage({type:"ADD_FILETYPE_PARSER",filetypeParser:q})}async getPerformance(){let A=`performance_${this.messageIdCounter++}`;return new Promise((q)=>{this.messageCallbacks.set(A,q),this.worker?.postMessage({type:"GET_PERFORMANCE",messageId:A})})}async highlightOnce(A,q){if(!this.initialized)try{await this.initialize()}catch(E){return{error:"Could not highlight because of initialization error"}}let g=`oneshot_${this.messageIdCounter++}`;return new Promise((E)=>{this.messageCallbacks.set(g,E),this.worker?.postMessage({type:"ONESHOT_HIGHLIGHT",content:A,filetype:q,messageId:g})})}handleWorkerMessage(A){let{type:q,bufferId:g,error:E,highlights:a,warning:F,messageId:K,hasParser:Z,performance:j,version:U}=A.data;if(q==="HIGHLIGHT_RESPONSE"){let O=this.buffers.get(g);if(!O||!O.hasParser)return;if(O.version!==U){this.resetBuffer(g,O.version,O.content);return}this.emit("highlights:response",g,U,a)}if(q==="INIT_RESPONSE"){if(this.initializeResolvers){if(clearTimeout(this.initializeResolvers.timeoutId),E)console.error("TreeSitter client initialization failed:",E),this.initializeResolvers.reject(Error(E));else this.initialized=!0,this.initializeResolvers.resolve();this.initializeResolvers=void 0;return}}if(q==="PARSER_INIT_RESPONSE"){let O=this.messageCallbacks.get(K);if(O)this.messageCallbacks.delete(K),O({hasParser:Z,warning:F,error:E});return}if(q==="PRELOAD_PARSER_RESPONSE"){let O=this.messageCallbacks.get(K);if(O)this.messageCallbacks.delete(K),O({hasParser:Z});return}if(q==="BUFFER_DISPOSED"){let O=this.messageCallbacks.get(`dispose_${g}`);if(O)this.messageCallbacks.delete(`dispose_${g}`),O(!0);this.emit("buffer:disposed",g);return}if(q==="PERFORMANCE_RESPONSE"){let O=this.messageCallbacks.get(K);if(O)this.messageCallbacks.delete(K),O(j);return}if(q==="ONESHOT_HIGHLIGHT_RESPONSE"){let O=this.messageCallbacks.get(K);if(O)this.messageCallbacks.delete(K),O({highlights:a,warning:F,error:E});return}if(q==="UPDATE_DATA_PATH_RESPONSE"){let O=this.messageCallbacks.get(K);if(O)this.messageCallbacks.delete(K),O({error:E});return}if(q==="CLEAR_CACHE_RESPONSE"){let O=this.messageCallbacks.get(K);if(O)this.messageCallbacks.delete(K),O({error:E});return}if(F){this.emitWarning(F,g);return}if(E){this.emitError(E,g);return}if(q==="WORKER_LOG"){let{logType:O,data:Q}=A.data,M=Q.join(" ");if(this.emit("worker:log",O,M),O==="log")console.log("TSWorker:",...Q);else if(O==="error")console.error("TSWorker:",...Q);else if(O==="warn")console.warn("TSWorker:",...Q);return}}async preloadParser(A){let q=`has_parser_${this.messageIdCounter++}`;return(await new Promise((E)=>{this.messageCallbacks.set(q,E),this.worker?.postMessage({type:"PRELOAD_PARSER",filetype:A,messageId:q})})).hasParser}async createBuffer(A,q,g,E=1,a=!0){if(!this.initialized){if(!a)return this.emitError("Could not create buffer because client is not initialized"),!1;try{await this.initialize()}catch(j){return this.emitError("Could not create buffer because of initialization error"),!1}}if(this.buffers.has(A))throw Error(`Buffer with id ${A} already exists`);this.buffers.set(A,{id:A,content:q,filetype:g,version:E,hasParser:!1});let F=`init_${this.messageIdCounter++}`,K=await new Promise((j)=>{this.messageCallbacks.set(F,j),this.worker?.postMessage({type:"INITIALIZE_PARSER",bufferId:A,version:E,content:q,filetype:g,messageId:F})});if(!K.hasParser){if(this.emit("buffer:initialized",A,!1),g!=="plaintext")this.emitWarning(K.warning||K.error||"Buffer has no parser",A);return!1}let Z={id:A,content:q,filetype:g,version:E,hasParser:!0};return this.buffers.set(A,Z),this.emit("buffer:initialized",A,!0),!0}async updateBuffer(A,q,g,E){if(!this.initialized)return;let a=this.buffers.get(A);if(!a||!a.hasParser)return;if(this.buffers.set(A,{...a,content:g,version:E}),!this.editQueues.has(A))this.editQueues.set(A,new FK((K)=>this.processEdit(A,K.edits,K.newContent,K.version,K.isReset)));this.editQueues.get(A).enqueue({edits:q,newContent:g,version:E})}async processEdit(A,q,g,E,a=!1){this.worker?.postMessage({type:a?"RESET_BUFFER":"HANDLE_EDITS",bufferId:A,version:E,content:g,edits:q})}async removeBuffer(A){if(!this.initialized)return;if(this.buffers.delete(A),this.editQueues.has(A))this.editQueues.get(A)?.clear(),this.editQueues.delete(A);if(this.worker)await new Promise((q)=>{let g=`dispose_${A}`;this.messageCallbacks.set(g,q);try{this.worker.postMessage({type:"DISPOSE_BUFFER",bufferId:A})}catch(E){console.error("Error disposing buffer",E),q(!1)}setTimeout(()=>{if(this.messageCallbacks.has(g))this.messageCallbacks.delete(g),console.warn({bufferId:A},"Timed out waiting for buffer to be disposed"),q(!1)},3000)});this.debouncer.clearDebounce(`reset-${A}`)}async destroy(){if(this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(Error("Client destroyed during initialization")),this.initializeResolvers=void 0;for(let[A,q]of this.messageCallbacks.entries())if(typeof q==="function")try{q({error:"Client destroyed"})}catch(g){}this.messageCallbacks.clear(),cU("tree-sitter-client"),this.debouncer.clear(),this.editQueues.clear(),this.buffers.clear(),this.stopWorker(),this.initialized=!1,this.initializePromise=void 0}async resetBuffer(A,q,g){if(!this.initialized)return;let E=this.buffers.get(A);if(!E||!E.hasParser){this.emitError("Cannot reset buffer with no parser",A);return}this.buffers.set(A,{...E,content:g,version:q}),this.debouncer.debounce(`reset-${A}`,10,()=>this.processEdit(A,[],g,q,!0))}getBuffer(A){return this.buffers.get(A)}getAllBuffers(){return Array.from(this.buffers.values())}isInitialized(){return this.initialized}async setDataPath(A){if(this.options.dataPath===A)return;if(this.options.dataPath=A,this.initialized&&this.worker){let q=`update_datapath_${this.messageIdCounter++}`;return new Promise((g,E)=>{this.messageCallbacks.set(q,(a)=>{if(a.error)E(Error(a.error));else g()}),this.worker.postMessage({type:"UPDATE_DATA_PATH",dataPath:A,messageId:q})})}}async clearCache(){if(!this.initialized||!this.worker)throw Error("Cannot clear cache: client is not initialized");let A=`clear_cache_${this.messageIdCounter++}`;return new Promise((q,g)=>{this.messageCallbacks.set(A,(E)=>{if(E.error)g(Error(E.error));else q()}),this.worker.postMessage({type:"CLEAR_CACHE",messageId:A})})}};ZA({name:"XDG_CONFIG_HOME",description:"Base directory for user-specific configuration files",type:"string",default:""});ZA({name:"XDG_DATA_HOME",description:"Base directory for user-specific data files",type:"string",default:""});cE=class cE extends nU{_appName;_globalConfigPath;_globalConfigFile;_localConfigFile;_globalDataPath;constructor(){super();this._appName="opentui"}get appName(){return this._appName}set appName(A){if(!oU(A))throw Error(`Invalid app name "${A}": must be a valid directory name`);if(this._appName!==A)this._appName=A,this._globalConfigPath=void 0,this._globalConfigFile=void 0,this._localConfigFile=void 0,this._globalDataPath=void 0,this.emit("paths:changed",this.toObject())}get globalConfigPath(){if(this._globalConfigPath===void 0){let A=$F.homedir(),g=EA.XDG_CONFIG_HOME||Lq.join(A,".config");this._globalConfigPath=Lq.join(g,this._appName)}return this._globalConfigPath}get globalConfigFile(){if(this._globalConfigFile===void 0)this._globalConfigFile=Lq.join(this.globalConfigPath,"init.ts");return this._globalConfigFile}get localConfigFile(){if(this._localConfigFile===void 0)this._localConfigFile=Lq.join(process.cwd(),`.${this._appName}.ts`);return this._localConfigFile}get globalDataPath(){if(this._globalDataPath===void 0){let A=$F.homedir(),g=EA.XDG_DATA_HOME||Lq.join(A,".local/share");this._globalDataPath=Lq.join(g,this._appName)}return this._globalDataPath}toObject(){return{globalConfigPath:this.globalConfigPath,globalConfigFile:this.globalConfigFile,localConfigFile:this.localConfigFile,globalDataPath:this.globalDataPath}}};A6=/\x1b]4;(\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g,XF=/\x1b](\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g;_A=process.arch==="x64"||process.arch==="arm64"?8:4,zq={u8:1,bool_u8:1,bool_u32:4,u16:2,i16:2,u32:4,u64:8,f32:4,f64:8,pointer:_A,i32:4},F_=Object.keys(zq);PF={...zq},K_={u8:(A,q)=>A.getUint8(q),bool_u8:(A,q)=>Boolean(A.getUint8(q)),bool_u32:(A,q)=>Boolean(A.getUint32(q,!0)),u16:(A,q)=>A.getUint16(q,!0),i16:(A,q)=>A.getInt16(q,!0),u32:(A,q)=>A.getUint32(q,!0),u64:(A,q)=>A.getBigUint64(q,!0),f32:(A,q)=>A.getFloat32(q,!0),f64:(A,q)=>A.getFloat64(q,!0),i32:(A,q)=>A.getInt32(q,!0),pointer:(A,q)=>_A===8?A.getBigUint64(q,!0):BigInt(A.getUint32(q,!0))};({pack:QA,unpack:fq}=uq("pointer"));WF=new TextEncoder,Z_=new TextDecoder;hF=GA([["text","char*"],["text_len","u64",{lengthOf:"text"}],["fg","pointer",{optional:!0,packTransform:PE,unpackTransform:VE}],["bg","pointer",{optional:!0,packTransform:PE,unpackTransform:VE}],["attributes","u32",{default:0}],["link","char*",{default:""}],["link_len","u64",{lengthOf:"link"}]],{mapValue:(A)=>{if(!A.link||typeof A.link==="string")return A;return{...A,link:A.link.url}}}),E6=GA([["start","u32"],["end","u32"],["styleId","u32"],["priority","u8",{default:0}],["hlRef","u16",{default:0}]]),dA=GA([["row","u32"],["col","u32"],["offset","u32"]]),WA=GA([["visualRow","u32"],["visualCol","u32"],["logicalRow","u32"],["logicalCol","u32"],["offset","u32"]]),O_=GK({wcwidth:0,unicode:1},"u8"),SF=GA([["kitty_keyboard","bool_u8"],["kitty_graphics","bool_u8"],["rgb","bool_u8"],["unicode",O_],["sgr_pixels","bool_u8"],["color_scheme_updates","bool_u8"],["explicit_width","bool_u8"],["scaled_text","bool_u8"],["sixel","bool_u8"],["focus_tracking","bool_u8"],["sync","bool_u8"],["bracketed_paste","bool_u8"],["hyperlinks","bool_u8"],["osc52","bool_u8"],["explicit_cursor_positioning","bool_u8"],["term_name","char*"],["term_name_len","u64",{lengthOf:"term_name"}],["term_version","char*"],["term_version_len","u64",{lengthOf:"term_version"}],["term_from_xtversion","bool_u8"]]),zF=GA([["width","u8"],["char","u32"]]),$q=GA([["startCols",["u32"]],["startColsLen","u32",{lengthOf:"startCols"}],["widthCols",["u32"]],["widthColsLen","u32",{lengthOf:"widthCols"}],["sources",["u32"]],["sourcesLen","u32",{lengthOf:"sources"}],["wraps",["u32"]],["wrapsLen","u32",{lengthOf:"wraps"}],["widthColsMax","u32"]]),BF=GA([["lineCount","u32"],["widthColsMax","u32"]]),CF=GA([["x","u32"],["y","u32"],["visible","bool_u8"],["style","u8"],["blinking","bool_u8"],["r","f32"],["g","f32"],["b","f32"],["a","f32"]]),G_=GA([["style","u8",{default:255}],["blinking","u8",{default:255}],["color","pointer",{optional:!0,packTransform:PE,unpackTransform:VE}],["cursor","u8",{default:255}]]),Q_=GA([["drawInner","bool_u8",{default:!0}],["drawOuter","bool_u8",{default:!0}]]),kF=GA([["gpaSafeStats","bool_u8"],["gpaMemoryLimitTracking","bool_u8"]]),DF=GA([["totalRequestedBytes","u64"],["activeAllocations","u64"],["smallAllocations","u64"],["largeAllocations","u64"],["requestedBytesValid","bool_u8"]]),Y_=GK({grow:0,block:1},"u8"),wF=GA([["chunkSize","u32",{default:65536}],["initialChunks","u32",{default:2}],["maxBytes","u64",{default:0n}],["growthPolicy",Y_,{default:"grow"}],["autoCommitOnFull","bool_u8",{default:!0}],["spanQueueCapacity","u32",{default:0}]]),yF=GA([["bytesWritten","u64"],["spansCommitted","u64"],["chunks","u32"],["pendingSpans","u32"]]),M6=GA([["chunkPtr","pointer"],["offset","u32"],["len","u32"],["chunkIndex","u32"],["reserved","u32",{default:0}]],{reduceValue:(A)=>({chunkPtr:A.chunkPtr,offset:A.offset,len:A.len,chunkIndex:A.chunkIndex})}),mF=GA([["ptr","pointer"],["len","u32"],["reserved","u32",{default:0}]],{reduceValue:(A)=>({ptr:A.ptr,len:A.len})}),M_=await import(`@opentui/core-${process.platform}-${process.arch}/index.ts`),Ig=M_.default;if(KK(Ig))Ig=Ig.replace("../","");if(!q_(Ig))throw Error(`opentui is not supported on the current platform: ${process.platform}-${process.arch}`);ZA({name:"OTUI_DEBUG_FFI",description:"Enable debug logging for the FFI bindings.",type:"boolean",default:!1});ZA({name:"OTUI_TRACE_FFI",description:"Enable tracing for the FFI bindings.",type:"boolean",default:!1});ZA({name:"OPENTUI_FORCE_WCWIDTH",description:"Use wcwidth for character width calculations",type:"boolean",default:!1});ZA({name:"OPENTUI_FORCE_UNICODE",description:"Force Mode 2026 Unicode support in terminal capabilities",type:"boolean",default:!1});ZA({name:"OPENTUI_GRAPHICS",description:"Enable Kitty graphics protocol detection",type:"boolean",default:!0});ZA({name:"OPENTUI_FORCE_NOZWJ",description:"Use no_zwj width method (Unicode without ZWJ joining)",type:"boolean",default:!1});J_={block:0,line:1,underline:2,default:3},H_=["block","line","underline","default"],L_={default:0,pointer:1,text:2,crosshair:3,move:4,"not-allowed":5};((A)=>{A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug"})(QK||={});try{j6=new fE(YK)}catch(A){}MK=Symbol.for("@opentui/core/Renderable");((A)=>{A.LAYOUT_CHANGED="layout-changed",A.ADDED="added",A.REMOVED="removed",A.RESIZED="resized"})(JK||={});((A)=>{A.FOCUSED="focused",A.BLURRED="blurred"})(HK||={});Rg=class Rg extends I_{[MK]=!0;static renderableNumber=1;_id;num;_dirty=!1;parent=null;_visible=!0;constructor(A){super();this.num=Rg.renderableNumber++,this._id=A.id??`renderable-${this.num}`}get id(){return this._id}set id(A){this._id=A}get isDirty(){return this._dirty}markClean(){this._dirty=!1}markDirty(){this._dirty=!0}destroy(){}destroyRecursively(){}get visible(){return this._visible}set visible(A){this._visible=A}};J6=O6.Config.create();J6.setUseWebDefaults(!1);J6.setPointScaleFactor(1);OA=class OA extends Rg{static renderablesByNumber=new Map;_isDestroyed=!1;_ctx;_translateX=0;_translateY=0;_x=0;_y=0;_width;_height;_widthValue=0;_heightValue=0;_zIndex;selectable=!1;buffered;frameBuffer=null;_focusable=!1;_focused=!1;keypressHandler=null;pasteHandler=null;_live=!1;_liveCount=0;_sizeChangeListener=void 0;_mouseListener=null;_mouseListeners={};_pasteListener=void 0;_keyListeners={};yogaNode;_positionType="relative";_overflow="visible";_position={};_opacity=1;_flexShrink=1;renderableMapById=new Map;_childrenInLayoutOrder=[];_childrenInZIndexOrder=[];needsZIndexSort=!1;parent=null;childrenPrimarySortDirty=!0;childrenSortedByPrimaryAxis=[];_shouldUpdateBefore=new Set;onLifecyclePass=null;renderBefore;renderAfter;constructor(A,q){super(q);if(this._ctx=A,OA.renderablesByNumber.set(this.num,this),T_(this.id,q),this.renderBefore=q.renderBefore,this.renderAfter=q.renderAfter,this._width=q.width??"auto",this._height=q.height??"auto",typeof this._width==="number")this._widthValue=this._width;if(typeof this._height==="number")this._heightValue=this._height;if(this._zIndex=q.zIndex??0,this._visible=q.visible!==!1,this.buffered=q.buffered??!1,this._live=q.live??!1,this._liveCount=this._live&&this._visible?1:0,this._opacity=q.opacity!==void 0?Math.max(0,Math.min(1,q.opacity)):1,this.yogaNode=O6.Node.create(J6),this.yogaNode.setDisplay(this._visible?Tq.Flex:Tq.None),this.setupYogaProperties(q),this.applyEventOptions(q),this.buffered)this.createFrameBuffer()}get id(){return this._id}set id(A){if(this.parent)this.parent.renderableMapById.delete(this.id),this.parent.renderableMapById.set(A,this);super.id=A}get focusable(){return this._focusable}set focusable(A){this._focusable=A}get ctx(){return this._ctx}get visible(){return this._visible}get primaryAxis(){let A=this.yogaNode.getFlexDirection();return A===2||A===3?"row":"column"}set visible(A){if(this._visible===A)return;let q=this._visible;if(this._visible=A,this.yogaNode.setDisplay(A?Tq.Flex:Tq.None),this._live){if(!q&&A)this.propagateLiveCount(1);else if(q&&!A)this.propagateLiveCount(-1)}if(this._focused)this.blur();this.requestRender()}get opacity(){return this._opacity}set opacity(A){let q=Math.max(0,Math.min(1,A));if(this._opacity!==q)this._opacity=q,this.requestRender()}hasSelection(){return!1}onSelectionChanged(A){return!1}getSelectedText(){return""}shouldStartSelection(A,q){return!1}focus(){if(this._isDestroyed||this._focused||!this._focusable)return;this._ctx.focusRenderable(this),this._focused=!0,this.requestRender(),this.keypressHandler=(A)=>{if(this._isDestroyed)return;if(this._keyListeners.down?.(A),this._isDestroyed)return;if(!A.defaultPrevented&&this.handleKeyPress)this.handleKeyPress(A)},this.pasteHandler=(A)=>{if(this._isDestroyed)return;if(this._pasteListener?.call(this,A),this._isDestroyed)return;if(!A.defaultPrevented&&this.handlePaste)this.handlePaste(A)},this.ctx._internalKeyInput.onInternal("keypress",this.keypressHandler),this.ctx._internalKeyInput.onInternal("paste",this.pasteHandler),this.emit("focused")}blur(){if(!this._focused||!this._focusable)return;if(this._focused=!1,this.requestRender(),this.keypressHandler)this.ctx._internalKeyInput.offInternal("keypress",this.keypressHandler),this.keypressHandler=null;if(this.pasteHandler)this.ctx._internalKeyInput.offInternal("paste",this.pasteHandler),this.pasteHandler=null;this.emit("blurred")}get focused(){return this._focused}get live(){return this._live}get liveCount(){return this._liveCount}set live(A){if(this._live===A)return;if(this._live=A,this._visible){let q=A?1:-1;this.propagateLiveCount(q)}}propagateLiveCount(A){this._liveCount+=A,this.parent?.propagateLiveCount(A)}findDescendantById(A){for(let q of this._childrenInLayoutOrder){if(q.id===A)return q;if(sq(q)){let g=q.findDescendantById(A);if(g)return g}}return}requestRender(){this.markDirty(),this._ctx.requestRender()}get translateX(){return this._translateX}set translateX(A){if(this._translateX===A)return;if(this._translateX=A,this.parent)this.parent.childrenPrimarySortDirty=!0;this.requestRender()}get translateY(){return this._translateY}set translateY(A){if(this._translateY===A)return;if(this._translateY=A,this.parent)this.parent.childrenPrimarySortDirty=!0;this.requestRender()}get x(){if(this.parent)return this.parent.x+this._x+this._translateX;return this._x+this._translateX}set x(A){this.left=A}get top(){return this._position.top}set top(A){if(aq(A)||A===void 0)this.setPosition({top:A})}get right(){return this._position.right}set right(A){if(aq(A)||A===void 0)this.setPosition({right:A})}get bottom(){return this._position.bottom}set bottom(A){if(aq(A)||A===void 0)this.setPosition({bottom:A})}get left(){return this._position.left}set left(A){if(aq(A)||A===void 0)this.setPosition({left:A})}get y(){if(this.parent)return this.parent.y+this._y+this._translateY;return this._y+this._translateY}set y(A){this.top=A}get width(){return this._widthValue}set width(A){if(F6(A)){if(this._width=A,this.yogaNode.setWidth(A),typeof A==="number"&&this._flexShrink===1)this._flexShrink=0,this.yogaNode.setFlexShrink(0);this.requestRender()}}get height(){return this._heightValue}set height(A){if(F6(A)){if(this._height=A,this.yogaNode.setHeight(A),typeof A==="number"&&this._flexShrink===1)this._flexShrink=0,this.yogaNode.setFlexShrink(0);this.requestRender()}}get zIndex(){return this._zIndex}set zIndex(A){if(this._zIndex!==A)this._zIndex=A,this.parent?.requestZIndexSort(),this.requestRender()}requestZIndexSort(){this.needsZIndexSort=!0}ensureZIndexSorted(){if(this.needsZIndexSort)this._childrenInZIndexOrder.sort((A,q)=>A.zIndex>q.zIndex?1:A.zIndex<q.zIndex?-1:0),this.needsZIndexSort=!1}getChildrenSortedByPrimaryAxis(){if(!this.childrenPrimarySortDirty&&this.childrenSortedByPrimaryAxis.length===this._childrenInLayoutOrder.length)return this.childrenSortedByPrimaryAxis;let A=this.yogaNode.getFlexDirection(),q=A===2||A===3?"x":"y",g=[...this._childrenInLayoutOrder];return g.sort((E,a)=>{let F=q==="y"?E.y:E.x,K=q==="y"?a.y:a.x;return F-K}),this.childrenSortedByPrimaryAxis=g,this.childrenPrimarySortDirty=!1,this.childrenSortedByPrimaryAxis}setupYogaProperties(A){let q=this.yogaNode;if(cF(A.flexBasis))q.setFlexBasis(A.flexBasis);if(Xq(A.minWidth))q.setMinWidth(A.minWidth);if(Xq(A.minHeight))q.setMinHeight(A.minHeight);if(A.flexGrow!==void 0)q.setFlexGrow(A.flexGrow);else q.setFlexGrow(0);if(A.flexShrink!==void 0)this._flexShrink=A.flexShrink,q.setFlexShrink(A.flexShrink);else{let E=typeof A.width==="number",a=typeof A.height==="number";this._flexShrink=E||a?0:1,q.setFlexShrink(this._flexShrink)}if(q.setFlexDirection(LE(A.flexDirection)),q.setFlexWrap(TE(A.flexWrap)),q.setAlignItems(HE(A.alignItems)),q.setJustifyContent($E(A.justifyContent)),q.setAlignSelf(JE(A.alignSelf)),F6(A.width))this._width=A.width,this.yogaNode.setWidth(A.width);if(F6(A.height))this._height=A.height,this.yogaNode.setHeight(A.height);if(this._positionType=A.position==="absolute"?"absolute":"relative",this._positionType!=="relative")q.setPositionType(IE(this._positionType));if(this._overflow=A.overflow==="hidden"?"hidden":A.overflow==="scroll"?"scroll":"visible",this._overflow!=="visible")q.setOverflow(XE(this._overflow));if(A.top!==void 0||A.right!==void 0||A.bottom!==void 0||A.left!==void 0)this._position={top:A.top,right:A.right,bottom:A.bottom,left:A.left},this.updateYogaPosition(this._position);if(Xq(A.maxWidth))q.setMaxWidth(A.maxWidth);if(Xq(A.maxHeight))q.setMaxHeight(A.maxHeight);this.setupMarginAndPadding(A)}setupMarginAndPadding(A){let q=this.yogaNode;if(XA(A.margin))q.setMargin(p.All,A.margin);if(XA(A.marginX))q.setMargin(p.Horizontal,A.marginX);if(XA(A.marginY))q.setMargin(p.Vertical,A.marginY);if(XA(A.marginTop))q.setMargin(p.Top,A.marginTop);if(XA(A.marginRight))q.setMargin(p.Right,A.marginRight);if(XA(A.marginBottom))q.setMargin(p.Bottom,A.marginBottom);if(XA(A.marginLeft))q.setMargin(p.Left,A.marginLeft);if(IA(A.padding))q.setPadding(p.All,A.padding);if(IA(A.paddingX))q.setPadding(p.Horizontal,A.paddingX);if(IA(A.paddingY))q.setPadding(p.Vertical,A.paddingY);if(IA(A.paddingTop))q.setPadding(p.Top,A.paddingTop);if(IA(A.paddingRight))q.setPadding(p.Right,A.paddingRight);if(IA(A.paddingBottom))q.setPadding(p.Bottom,A.paddingBottom);if(IA(A.paddingLeft))q.setPadding(p.Left,A.paddingLeft)}set position(A){if(!P_(A)||this._positionType===A)return;this._positionType=A,this.yogaNode.setPositionType(IE(A)),this.requestRender()}get overflow(){return this._overflow}set overflow(A){if(!V_(A)||this._overflow===A)return;this._overflow=A,this.yogaNode.setOverflow(XE(A)),this.requestRender()}setPosition(A){this._position={...this._position,...A},this.updateYogaPosition(A)}updateYogaPosition(A){let q=this.yogaNode,{top:g,right:E,bottom:a,left:F}=A;if(aq(g))if(g==="auto")q.setPositionAuto(p.Top);else q.setPosition(p.Top,g);if(aq(E))if(E==="auto")q.setPositionAuto(p.Right);else q.setPosition(p.Right,E);if(aq(a))if(a==="auto")q.setPositionAuto(p.Bottom);else q.setPosition(p.Bottom,a);if(aq(F))if(F==="auto")q.setPositionAuto(p.Left);else q.setPosition(p.Left,F);this.requestRender()}set flexGrow(A){if(A==null)this.yogaNode.setFlexGrow(0);else this.yogaNode.setFlexGrow(A);this.requestRender()}set flexShrink(A){let q=A==null?1:A;this._flexShrink=q,this.yogaNode.setFlexShrink(q),this.requestRender()}set flexDirection(A){this.yogaNode.setFlexDirection(LE(A)),this.requestRender()}set flexWrap(A){this.yogaNode.setFlexWrap(TE(A)),this.requestRender()}set alignItems(A){this.yogaNode.setAlignItems(HE(A)),this.requestRender()}set justifyContent(A){this.yogaNode.setJustifyContent($E(A)),this.requestRender()}set alignSelf(A){this.yogaNode.setAlignSelf(JE(A)),this.requestRender()}set flexBasis(A){if(cF(A))this.yogaNode.setFlexBasis(A),this.requestRender()}set minWidth(A){if(Xq(A))this.yogaNode.setMinWidth(A),this.requestRender()}set maxWidth(A){if(Xq(A))this.yogaNode.setMaxWidth(A),this.requestRender()}set minHeight(A){if(Xq(A))this.yogaNode.setMinHeight(A),this.requestRender()}set maxHeight(A){if(Xq(A))this.yogaNode.setMaxHeight(A),this.requestRender()}set margin(A){if(XA(A))this.yogaNode.setMargin(p.All,A),this.requestRender()}set marginX(A){if(XA(A))this.yogaNode.setMargin(p.Horizontal,A),this.requestRender()}set marginY(A){if(XA(A))this.yogaNode.setMargin(p.Vertical,A),this.requestRender()}set marginTop(A){if(XA(A))this.yogaNode.setMargin(p.Top,A),this.requestRender()}set marginRight(A){if(XA(A))this.yogaNode.setMargin(p.Right,A),this.requestRender()}set marginBottom(A){if(XA(A))this.yogaNode.setMargin(p.Bottom,A),this.requestRender()}set marginLeft(A){if(XA(A))this.yogaNode.setMargin(p.Left,A),this.requestRender()}set padding(A){if(IA(A))this.yogaNode.setPadding(p.All,A),this.requestRender()}set paddingX(A){if(IA(A))this.yogaNode.setPadding(p.Horizontal,A),this.requestRender()}set paddingY(A){if(IA(A))this.yogaNode.setPadding(p.Vertical,A),this.requestRender()}set paddingTop(A){if(IA(A))this.yogaNode.setPadding(p.Top,A),this.requestRender()}set paddingRight(A){if(IA(A))this.yogaNode.setPadding(p.Right,A),this.requestRender()}set paddingBottom(A){if(IA(A))this.yogaNode.setPadding(p.Bottom,A),this.requestRender()}set paddingLeft(A){if(IA(A))this.yogaNode.setPadding(p.Left,A),this.requestRender()}getLayoutNode(){return this.yogaNode}updateFromLayout(){let A=this.yogaNode.getComputedLayout(),q=this._x,g=this._y,E=this._widthValue,a=this._heightValue;this._x=A.left,this._y=A.top;let F=Math.max(A.width,1),K=Math.max(A.height,1),Z=E!==F||a!==K;if(this._widthValue=F,this._heightValue=K,Z)this.onLayoutResize(F,K);if(q!==this._x||g!==this._y){if(this.parent)this.parent.childrenPrimarySortDirty=!0}}onLayoutResize(A,q){if(this._visible)this.handleFrameBufferResize(A,q),this.onResize(A,q),this.requestRender()}handleFrameBufferResize(A,q){if(!this.buffered)return;if(A<=0||q<=0)return;if(this.frameBuffer)this.frameBuffer.resize(A,q);else this.createFrameBuffer()}createFrameBuffer(){let A=this.width,q=this.height;if(A<=0||q<=0)return;try{let g=this._ctx.widthMethod;this.frameBuffer=Zq.create(A,q,g,{respectAlpha:!0,id:`framebuffer-${this.id}`})}catch(g){console.error(`Failed to create frame buffer for ${this.id}:`,g),this.frameBuffer=null}}onResize(A,q){this.onSizeChange?.(),this.emit("resize")}replaceParent(A){if(A.parent)A.parent.remove(A.id);A.parent=this}add(A,q){if(!A)return-1;let g=xE(this._ctx,A);if(!g)return-1;if(g.isDestroyed)return console.warn(`Renderable with id ${g.id} was already destroyed, skipping add`),-1;let E=q!==void 0?this._childrenInLayoutOrder[q]:void 0;if(E)return this.insertBefore(g,E);if(g.parent===this)this.yogaNode.removeChild(g.getLayoutNode()),this._childrenInLayoutOrder.splice(this._childrenInLayoutOrder.indexOf(g),1);else{if(this.replaceParent(g),this.needsZIndexSort=!0,this.renderableMapById.set(g.id,g),this._childrenInZIndexOrder.push(g),typeof g.onLifecyclePass==="function")this._ctx.registerLifecyclePass(g);if(g._liveCount>0)this.propagateLiveCount(g._liveCount)}let a=g.getLayoutNode(),F=this._childrenInLayoutOrder.length;return this._childrenInLayoutOrder.push(g),this.yogaNode.insertChild(a,F),this.childrenPrimarySortDirty=!0,this._shouldUpdateBefore.add(g),this.requestRender(),F}insertBefore(A,q){if(!q)return this.add(A);if(!A)return-1;let g=xE(this._ctx,A);if(!g)return-1;if(g.isDestroyed)return console.warn(`Renderable with id ${g.id} was already destroyed, skipping insertBefore`),-1;if(!sq(q))throw Error("Anchor must be a Renderable");if(q.isDestroyed)return console.warn(`Anchor with id ${q.id} was already destroyed, skipping insertBefore`),-1;if(!this.renderableMapById.has(q.id))return console.warn(`Anchor with id ${q.id} does not exist within the parent ${this.id}, skipping insertBefore`),-1;if(g===q||g.id===q.id)return console.warn(`Anchor is the same as the node ${g.id} being inserted, skipping insertBefore`),-1;if(g.parent===this)this.yogaNode.removeChild(g.getLayoutNode()),this._childrenInLayoutOrder.splice(this._childrenInLayoutOrder.indexOf(g),1);else{if(this.replaceParent(g),this.needsZIndexSort=!0,this.renderableMapById.set(g.id,g),this._childrenInZIndexOrder.push(g),typeof g.onLifecyclePass==="function")this._ctx.registerLifecyclePass(g);if(g._liveCount>0)this.propagateLiveCount(g._liveCount)}this.childrenPrimarySortDirty=!0;let E=this._childrenInLayoutOrder.indexOf(q),a=Math.max(0,Math.min(E,this._childrenInLayoutOrder.length));return this._childrenInLayoutOrder.splice(a,0,g),this.yogaNode.insertChild(g.getLayoutNode(),a),this._shouldUpdateBefore.add(g),this.requestRender(),a}getRenderable(A){return this.renderableMapById.get(A)}remove(A){if(!A)return;if(this.renderableMapById.has(A)){let q=this.renderableMapById.get(A);if(q){if(q._liveCount>0)this.propagateLiveCount(-q._liveCount);let g=q.getLayoutNode();this.yogaNode.removeChild(g),this.requestRender(),q.onRemove(),q.parent=null,this._ctx.unregisterLifecyclePass(q),this.renderableMapById.delete(A);let E=this._childrenInLayoutOrder.findIndex((F)=>F.id===A);if(E!==-1)this._childrenInLayoutOrder.splice(E,1);let a=this._childrenInZIndexOrder.findIndex((F)=>F.id===A);if(a!==-1)this._childrenInZIndexOrder.splice(a,1);this.childrenPrimarySortDirty=!0}}}onRemove(){}getChildren(){return[...this._childrenInLayoutOrder]}getChildrenCount(){return this._childrenInLayoutOrder.length}updateLayout(A,q=[]){if(!this.visible)return;if(this.onUpdate(A),this._isDestroyed)return;if(this.updateFromLayout(),this._shouldUpdateBefore.size>0){for(let F of this._shouldUpdateBefore)if(!F.isDestroyed)F.updateFromLayout();this._shouldUpdateBefore.clear()}if(this._isDestroyed)return;let g=this._opacity<1;if(g)q.push({action:"pushOpacity",opacity:this._opacity});q.push({action:"render",renderable:this}),this.ensureZIndexSorted();let E=this._overflow!=="visible"&&this.width>0&&this.height>0;if(E){let F=this.getScissorRect();q.push({action:"pushScissorRect",x:F.x,y:F.y,width:F.width,height:F.height,screenX:this.x,screenY:this.y})}let a=this._getVisibleChildren();for(let F of this._childrenInZIndexOrder){if(!a.includes(F.num)){F.updateFromLayout();continue}F.updateLayout(A,q)}if(E)q.push({action:"popScissorRect"});if(g)q.push({action:"popOpacity"})}render(A,q){let g=A;if(this.buffered&&this.frameBuffer)g=this.frameBuffer;if(this.renderBefore)this.renderBefore.call(this,g,q);if(this.renderSelf(g,q),this.renderAfter)this.renderAfter.call(this,g,q);if(this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.buffered&&this.frameBuffer)A.drawFrameBuffer(this.x,this.y,this.frameBuffer)}_getVisibleChildren(){return this._childrenInZIndexOrder.map((A)=>A.num)}onUpdate(A){}getScissorRect(){return{x:this.buffered?0:this.x,y:this.buffered?0:this.y,width:this.width,height:this.height}}renderSelf(A,q){}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this.parent)this.parent.remove(this.id);if(this.frameBuffer)this.frameBuffer.destroy(),this.frameBuffer=null;for(let A of this._childrenInLayoutOrder)this.remove(A.id);this._childrenInLayoutOrder=[],this.renderableMapById.clear(),OA.renderablesByNumber.delete(this.num),this.blur(),this.removeAllListeners(),this.destroySelf();try{this.yogaNode.free()}catch(A){}}destroyRecursively(){let A=[...this._childrenInLayoutOrder];for(let q of A)q.destroyRecursively();this.destroy()}destroySelf(){}processMouseEvent(A){if(this._mouseListener?.call(this,A),this._mouseListeners[A.type]?.call(this,A),this.onMouseEvent(A),this.parent&&!A.propagationStopped)this.parent.processMouseEvent(A)}onMouseEvent(A){}set onMouse(A){if(A)this._mouseListener=A;else this._mouseListener=null}set onMouseDown(A){if(A)this._mouseListeners.down=A;else delete this._mouseListeners.down}set onMouseUp(A){if(A)this._mouseListeners.up=A;else delete this._mouseListeners.up}set onMouseMove(A){if(A)this._mouseListeners.move=A;else delete this._mouseListeners.move}set onMouseDrag(A){if(A)this._mouseListeners.drag=A;else delete this._mouseListeners.drag}set onMouseDragEnd(A){if(A)this._mouseListeners["drag-end"]=A;else delete this._mouseListeners["drag-end"]}set onMouseDrop(A){if(A)this._mouseListeners.drop=A;else delete this._mouseListeners.drop}set onMouseOver(A){if(A)this._mouseListeners.over=A;else delete this._mouseListeners.over}set onMouseOut(A){if(A)this._mouseListeners.out=A;else delete this._mouseListeners.out}set onMouseScroll(A){if(A)this._mouseListeners.scroll=A;else delete this._mouseListeners.scroll}set onPaste(A){this._pasteListener=A}get onPaste(){return this._pasteListener}set onKeyDown(A){if(A)this._keyListeners.down=A;else delete this._keyListeners.down}get onKeyDown(){return this._keyListeners.down}set onSizeChange(A){this._sizeChangeListener=A}get onSizeChange(){return this._sizeChangeListener}applyEventOptions(A){this.onMouse=A.onMouse,this.onMouseDown=A.onMouseDown,this.onMouseUp=A.onMouseUp,this.onMouseMove=A.onMouseMove,this.onMouseDrag=A.onMouseDrag,this.onMouseDragEnd=A.onMouseDragEnd,this.onMouseDrop=A.onMouseDrop,this.onMouseOver=A.onMouseOver,this.onMouseOut=A.onMouseOut,this.onMouseScroll=A.onMouseScroll,this.onPaste=A.onPaste,this.onKeyDown=A.onKeyDown,this.onSizeChange=A.onSizeChange}};dE=class dE extends OA{renderList=[];constructor(A){super(A,{id:"__root__",zIndex:0,visible:!0,width:A.width,height:A.height,enableLayout:!0});if(this.yogaNode)this.yogaNode.free();this.yogaNode=O6.Node.create(J6),this.yogaNode.setWidth(A.width),this.yogaNode.setHeight(A.height),this.yogaNode.setFlexDirection(hA.Column),this.calculateLayout()}render(A,q){if(!this.visible)return;for(let g of this._ctx.getLifecyclePasses())g.onLifecyclePass?.call(g);if(this.yogaNode.isDirty())this.calculateLayout();this.renderList.length=0,this.updateLayout(q,this.renderList),this._ctx.clearHitGridScissorRects();for(let g=1;g<this.renderList.length;g++){let E=this.renderList[g];switch(E.action){case"render":if(!E.renderable.isDestroyed)E.renderable.render(A,q);break;case"pushScissorRect":A.pushScissorRect(E.x,E.y,E.width,E.height),this._ctx.pushHitGridScissorRect(E.screenX,E.screenY,E.width,E.height);break;case"popScissorRect":A.popScissorRect(),this._ctx.popHitGridScissorRect();break;case"pushOpacity":A.pushOpacity(E.opacity);break;case"popOpacity":A.popOpacity();break}}}propagateLiveCount(A){let q=this._liveCount;if(this._liveCount+=A,q===0&&this._liveCount>0)this._ctx.requestLive();else if(q>0&&this._liveCount===0)this._ctx.dropLive()}calculateLayout(){this.yogaNode.calculateLayout(this.width,this.height,lq.LTR),this.emit("layout-changed")}resize(A,q){this.width=A,this.height=q,this.emit("resized",{width:A,height:q})}};R_=Symbol.for("@opentui/core/VNode");IK=class IK extends B_{output=[];constructor(){super()}get size(){return this.output.length}write(A,q){this.output.push({stream:A,output:q}),this.emit("write",A,q)}claimOutput(){let A=this.output.map((q)=>q.output).join("");return this.clear(),A}clear(){this.output=[]}};NE=class NE extends z_{stream;capture;isTTY=!0;columns=process.stdout.columns||80;rows=process.stdout.rows||24;constructor(A,q){super();this.stream=A,this.capture=q}_write(A,q,g){let E=A.toString();this.capture.write(this.stream,E),g()}getColorDepth(){return process.stdout.getColorDepth?.()||8}};Uq={enter:"return",esc:"escape"};mA=kq("ConsoleCapture",()=>new IK);ZA({name:"OTUI_USE_CONSOLE",description:"Whether to use the console. Will not capture console output if set to false.",type:"boolean",default:!0});ZA({name:"SHOW_CONSOLE",description:"Show the console at startup if set to true.",type:"boolean",default:!1});TK=class TK extends XK{_cachedLogs=[];MAX_CACHE_SIZE=1000;_collectCallerInfo=!1;_cachingEnabled=!0;_originalConsole=null;get cachedLogs(){return this._cachedLogs}constructor(){super()}activate(){if(!this._originalConsole)this._originalConsole=global.console;this.setupConsoleCapture(),this.overrideConsoleMethods()}setupConsoleCapture(){if(!EA.OTUI_USE_CONSOLE)return;let A=new NE("stdout",mA),q=new NE("stderr",mA);global.console=new W_({stdout:A,stderr:q,colorMode:!0,inspectOptions:{compact:!1,breakLength:80,depth:2}})}overrideConsoleMethods(){console.log=(...A)=>{this.appendToConsole("LOG",...A)},console.info=(...A)=>{this.appendToConsole("INFO",...A)},console.warn=(...A)=>{this.appendToConsole("WARN",...A)},console.error=(...A)=>{this.appendToConsole("ERROR",...A)},console.debug=(...A)=>{this.appendToConsole("DEBUG",...A)}}setCollectCallerInfo(A){this._collectCallerInfo=A}clearConsole(){this._cachedLogs=[]}setCachingEnabled(A){this._cachingEnabled=A}deactivate(){this.restoreOriginalConsole()}restoreOriginalConsole(){if(this._originalConsole)global.console=this._originalConsole;this.setupConsoleCapture()}addLogEntry(A,...q){let g=this._collectCallerInfo?k_():null,E=[new Date,A,q,g];if(this._cachingEnabled){if(this._cachedLogs.length>=this.MAX_CACHE_SIZE)this._cachedLogs.shift();this._cachedLogs.push(E)}return E}appendToConsole(A,...q){if(this._cachedLogs.length>=this.MAX_CACHE_SIZE)this._cachedLogs.shift();let g=this.addLogEntry(A,...q);this.emit("entry",g)}destroy(){this.deactivate()}};TA=kq("TerminalConsoleCache",()=>{let A=new TK;return process.on("exit",()=>{A.destroy()}),A});((A)=>{A.TOP="top",A.BOTTOM="bottom",A.LEFT="left",A.RIGHT="right"})(PK||={});OE=[{name:"up",action:"scroll-up"},{name:"down",action:"scroll-down"},{name:"up",shift:!0,action:"scroll-to-top"},{name:"down",shift:!0,action:"scroll-to-bottom"},{name:"p",ctrl:!0,action:"position-previous"},{name:"o",ctrl:!0,action:"position-next"},{name:"+",action:"size-increase"},{name:"=",shift:!0,action:"size-increase"},{name:"-",action:"size-decrease"},{name:"s",ctrl:!0,action:"save-logs"},{name:"c",ctrl:!0,shift:!0,action:"copy-selection"}],D_={position:"bottom",sizePercent:30,zIndex:1/0,colorInfo:"#00FFFF",colorWarn:"#FFFF00",colorError:"#FF0000",colorDebug:"#808080",colorDefault:"#FFFFFF",backgroundColor:AA.fromValues(0.1,0.1,0.1,0.7),startInDebugMode:!1,title:"Console",titleBarColor:AA.fromValues(0.05,0.05,0.05,0.7),titleBarTextColor:"#FFFFFF",cursorColor:"#00A0FF",maxStoredLogs:2000,maxDisplayLines:3000,onCopySelection:void 0,keyBindings:void 0,keyAliasMap:void 0,selectionColor:AA.fromValues(0.3,0.5,0.8,0.5),copyButtonColor:"#00A0FF"};tE=class tE extends XK{isVisible=!1;isFocused=!1;renderer;keyHandler;options;_debugModeEnabled=!1;frameBuffer=null;consoleX=0;consoleY=0;consoleWidth=0;consoleHeight=0;scrollTopIndex=0;isScrolledToBottom=!0;currentLineIndex=0;_displayLines=[];_allLogEntries=[];_needsFrameBufferUpdate=!1;_entryListener;_selectionStart=null;_selectionEnd=null;_isDragging=!1;_copyButtonBounds={x:0,y:0,width:0,height:0};_autoScrollInterval=null;_keyBindingsMap;_keyAliasMap;_keyBindings;_mergedKeyBindings;_actionHandlers;markNeedsRerender(){this._needsFrameBufferUpdate=!0,this.renderer.requestRender()}getCopyButtonLabel(){let A=this._mergedKeyBindings.filter((g)=>g.action==="copy-selection"),q=A[A.length-1];if(q)return`[Copy (${C_(q)})]`;return"[Copy]"}_rgbaInfo;_rgbaWarn;_rgbaError;_rgbaDebug;_rgbaDefault;backgroundColor;_rgbaTitleBar;_rgbaTitleBarText;_title;_rgbaCursor;_rgbaSelection;_rgbaCopyButton;_positions=["top","right","bottom","left"];constructor(A,q={}){super();if(this.renderer=A,this.options={...D_,...q},this.keyHandler=this.handleKeyPress.bind(this),this._debugModeEnabled=this.options.startInDebugMode,TA.setCollectCallerInfo(this._debugModeEnabled),this._rgbaInfo=R(this.options.colorInfo),this._rgbaWarn=R(this.options.colorWarn),this._rgbaError=R(this.options.colorError),this._rgbaDebug=R(this.options.colorDebug),this._rgbaDefault=R(this.options.colorDefault),this.backgroundColor=R(this.options.backgroundColor),this._rgbaTitleBar=R(this.options.titleBarColor),this._rgbaTitleBarText=R(this.options.titleBarTextColor||this.options.colorDefault),this._title=this.options.title,this._rgbaCursor=R(this.options.cursorColor),this._rgbaSelection=R(this.options.selectionColor),this._rgbaCopyButton=R(this.options.copyButtonColor),this._keyAliasMap=_q(Uq,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[],this._mergedKeyBindings=xA(OE,this._keyBindings),this._keyBindingsMap=RA(this._mergedKeyBindings,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._updateConsoleDimensions(),this._scrollToBottom(!0),this._entryListener=(g)=>{this._handleNewLog(g)},TA.on("entry",this._entryListener),EA.SHOW_CONSOLE)this.show()}buildActionHandlers(){return new Map([["scroll-up",()=>this.scrollUp()],["scroll-down",()=>this.scrollDown()],["scroll-to-top",()=>this.scrollToTop()],["scroll-to-bottom",()=>this.scrollToBottomAction()],["position-previous",()=>this.positionPrevious()],["position-next",()=>this.positionNext()],["size-increase",()=>this.sizeIncrease()],["size-decrease",()=>this.sizeDecrease()],["save-logs",()=>this.saveLogsAction()],["copy-selection",()=>this.triggerCopyAction()]])}activate(){TA.activate()}deactivate(){TA.deactivate()}_handleNewLog(A){if(!this.isVisible)return;if(this._allLogEntries.push(A),this._allLogEntries.length>this.options.maxStoredLogs)this._allLogEntries.splice(0,this._allLogEntries.length-this.options.maxStoredLogs);let q=this._processLogEntry(A);if(this._displayLines.push(...q),this._displayLines.length>this.options.maxDisplayLines){this._displayLines.splice(0,this._displayLines.length-this.options.maxDisplayLines);let g=this._displayLines.length-this.options.maxDisplayLines;this.scrollTopIndex=Math.max(0,this.scrollTopIndex-g)}if(this.isScrolledToBottom)this._scrollToBottom();this.markNeedsRerender()}_updateConsoleDimensions(A,q){let g=A??this.renderer.width,E=q??this.renderer.height,a=this.options.sizePercent/100;switch(this.options.position){case"top":this.consoleX=0,this.consoleY=0,this.consoleWidth=g,this.consoleHeight=Math.max(1,Math.floor(E*a));break;case"bottom":this.consoleHeight=Math.max(1,Math.floor(E*a)),this.consoleWidth=g,this.consoleX=0,this.consoleY=E-this.consoleHeight;break;case"left":this.consoleWidth=Math.max(1,Math.floor(g*a)),this.consoleHeight=E,this.consoleX=0,this.consoleY=0;break;case"right":this.consoleWidth=Math.max(1,Math.floor(g*a)),this.consoleHeight=E,this.consoleY=0,this.consoleX=g-this.consoleWidth;break}this.currentLineIndex=Math.max(0,Math.min(this.currentLineIndex,this.consoleHeight-1))}handleKeyPress(A){if(A.name==="escape"){this.blur();return}let q=Oq({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"scroll-up"}),g=this._keyBindingsMap.get(q);if(g){let E=this._actionHandlers.get(g);if(E){E();return}}}scrollUp(){let A=Math.max(1,this.consoleHeight-1);if(this.currentLineIndex>0)this.currentLineIndex--,this.markNeedsRerender();else if(this.scrollTopIndex>0)this.scrollTopIndex--,this.isScrolledToBottom=!1,this.markNeedsRerender();return!0}scrollDown(){let A=this._displayLines.length,q=Math.max(1,this.consoleHeight-1),g=Math.max(0,A-q);if(this.currentLineIndex<q-1&&this.scrollTopIndex+this.currentLineIndex<A-1)this.currentLineIndex++,this.markNeedsRerender();else if(this.scrollTopIndex<g)this.scrollTopIndex++,this.isScrolledToBottom=this.scrollTopIndex===g,this.markNeedsRerender();return!0}scrollToTop(){if(this.scrollTopIndex>0||this.currentLineIndex>0)this.scrollTopIndex=0,this.currentLineIndex=0,this.isScrolledToBottom=this._displayLines.length<=Math.max(1,this.consoleHeight-1),this.markNeedsRerender();return!0}scrollToBottomAction(){let A=Math.max(1,this.consoleHeight-1),q=Math.max(0,this._displayLines.length-A);if(this.scrollTopIndex<q||!this.isScrolledToBottom)this._scrollToBottom(!0),this.markNeedsRerender();return!0}positionPrevious(){let q=(this._positions.indexOf(this.options.position)-1+this._positions.length)%this._positions.length;return this.options.position=this._positions[q],this.resize(this.renderer.width,this.renderer.height),!0}positionNext(){let q=(this._positions.indexOf(this.options.position)+1)%this._positions.length;return this.options.position=this._positions[q],this.resize(this.renderer.width,this.renderer.height),!0}sizeIncrease(){return this.options.sizePercent=Math.min(100,this.options.sizePercent+5),this.resize(this.renderer.width,this.renderer.height),!0}sizeDecrease(){return this.options.sizePercent=Math.max(10,this.options.sizePercent-5),this.resize(this.renderer.width,this.renderer.height),!0}saveLogsAction(){return this.saveLogsToFile(),!0}triggerCopyAction(){return this.triggerCopy(),!0}attachStdin(){if(this.isFocused)return;this.renderer.keyInput.on("keypress",this.keyHandler),this.isFocused=!0}detachStdin(){if(!this.isFocused)return;this.renderer.keyInput.off("keypress",this.keyHandler),this.isFocused=!1}formatTimestamp(A){return new Intl.DateTimeFormat("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(A)}formatArguments(A){return A.map((q)=>{if(q instanceof Error){let g=q;return`Error: ${g.message}
24
24
  `+(g.stack?`${g.stack}
25
25
  `:"")}if(typeof q==="object"&&q!==null)try{return vF.inspect(q,{depth:2})}catch(g){return String(q)}try{return vF.inspect(q,{depth:2})}catch(g){return String(q)}}).join(" ")}resize(A,q){if(this._updateConsoleDimensions(A,q),this.frameBuffer){this.frameBuffer.resize(this.consoleWidth,this.consoleHeight);let g=this._displayLines.length,E=Math.max(1,this.consoleHeight-1),a=Math.max(0,g-E);this.scrollTopIndex=Math.min(this.scrollTopIndex,a),this.isScrolledToBottom=this.scrollTopIndex===a;let F=Math.min(E,g-this.scrollTopIndex);if(this.currentLineIndex=Math.max(0,Math.min(this.currentLineIndex,F-1)),this.isVisible)this.markNeedsRerender()}}clear(){TA.clearConsole(),this._allLogEntries=[],this._displayLines=[],this.markNeedsRerender()}toggle(){if(this.isVisible)if(this.isFocused)this.hide();else this.focus();else this.show();if(!this.renderer.isRunning)this.renderer.requestRender()}focus(){this.attachStdin(),this._scrollToBottom(!0),this.markNeedsRerender()}blur(){this.detachStdin(),this.markNeedsRerender()}show(){if(!this.isVisible){if(this.isVisible=!0,this._processCachedLogs(),TA.setCachingEnabled(!1),!this.frameBuffer)this.frameBuffer=Zq.create(this.consoleWidth,this.consoleHeight,this.renderer.widthMethod,{respectAlpha:this.backgroundColor.a<1,id:"console framebuffer"});let A=TA.cachedLogs.length,q=Math.min(this.consoleHeight,A);this.currentLineIndex=Math.max(0,q-1),this.scrollTopIndex=0,this._scrollToBottom(!0),this.focus(),this.markNeedsRerender()}}hide(){if(this.isVisible)this.isVisible=!1,this.blur(),TA.setCachingEnabled(!0)}destroy(){this.stopAutoScroll(),this.hide(),this.deactivate(),TA.off("entry",this._entryListener)}getCachedLogs(){return TA.cachedLogs.map((A)=>A[0].toISOString()+" "+A.slice(1).join(" ")).join(`
26
26
  `)}updateFrameBuffer(){if(!this.frameBuffer)return;this.frameBuffer.clear(this.backgroundColor);let A=this._displayLines,q=A.length,g=Math.max(1,this.consoleHeight-1);this.frameBuffer.fillRect(0,0,this.consoleWidth,1,this._rgbaTitleBar);let E=`${this._title}${this.isFocused?" (Focused)":""}`,a=Math.max(0,Math.floor((this.consoleWidth-E.length)/2));this.frameBuffer.drawText(E,a,0,this._rgbaTitleBarText,this._rgbaTitleBar);let F=this.getCopyButtonLabel(),K=this.consoleWidth-F.length-1;if(K>=0){let Q=this.hasSelection(),M=AA.fromInts(100,100,100,255),L=Q?this._rgbaCopyButton:M;this.frameBuffer.drawText(F,K,0,L,this._rgbaTitleBar),this._copyButtonBounds={x:K,y:0,width:F.length,height:1}}else this._copyButtonBounds={x:-1,y:-1,width:0,height:0};let Z=this.scrollTopIndex,j=Math.min(Z+g,q),U=A.slice(Z,j),O=1;for(let Q=0;Q<U.length;Q++){if(O>=this.consoleHeight)break;let M=U[Q],L=Z+Q,$=this._rgbaDefault;switch(M.level){case"INFO":$=this._rgbaInfo;break;case"WARN":$=this._rgbaWarn;break;case"ERROR":$=this._rgbaError;break;case"DEBUG":$=this._rgbaDebug;break}let V=M.indent?" ".repeat(Iq):"",H=M.text,X=this.consoleWidth-1-(M.indent?Iq:0);if(this.isFocused&&O-1===this.currentLineIndex)this.frameBuffer.drawText(">",0,O,this._rgbaCursor,this.backgroundColor);else this.frameBuffer.drawText(" ",0,O,this._rgbaDefault,this.backgroundColor);let x=`${V}${H.substring(0,X)}`,z=this.getLineSelectionRange(L);if(z){let m=Math.max(0,z.start),D=Math.min(x.length,z.end);if(m>0)this.frameBuffer.drawText(x.substring(0,m),1,O,$);if(m<D)this.frameBuffer.fillRect(1+m,O,D-m,1,this._rgbaSelection),this.frameBuffer.drawText(x.substring(m,D),1+m,O,$,this._rgbaSelection);if(D<x.length)this.frameBuffer.drawText(x.substring(D),1+D,O,$)}else this.frameBuffer.drawText(x,1,O,$);O++}}renderToBuffer(A){if(!this.isVisible||!this.frameBuffer)return;if(this._needsFrameBufferUpdate)this.updateFrameBuffer(),this._needsFrameBufferUpdate=!1;A.drawFrameBuffer(this.consoleX,this.consoleY,this.frameBuffer)}setDebugMode(A){if(this._debugModeEnabled=A,TA.setCollectCallerInfo(A),this.isVisible)this.markNeedsRerender()}toggleDebugMode(){this.setDebugMode(!this._debugModeEnabled)}set keyBindings(A){this._keyBindings=A,this._mergedKeyBindings=xA(OE,A),this._keyBindingsMap=RA(this._mergedKeyBindings,this._keyAliasMap),this.markNeedsRerender()}set keyAliasMap(A){this._keyAliasMap=_q(Uq,A),this._mergedKeyBindings=xA(OE,this._keyBindings),this._keyBindingsMap=RA(this._mergedKeyBindings,this._keyAliasMap),this.markNeedsRerender()}set onCopySelection(A){this.options.onCopySelection=A}get onCopySelection(){return this.options.onCopySelection}_scrollToBottom(A=!1){let q=this._displayLines.length,g=Math.max(1,this.consoleHeight-1),E=Math.max(0,q-g);this.scrollTopIndex=E,this.isScrolledToBottom=!0;let a=Math.min(g,q-this.scrollTopIndex);if(A||this.currentLineIndex>=a)this.currentLineIndex=Math.max(0,a-1)}_processLogEntry(A){let[q,g,E,a]=A,F=[],K=this.formatTimestamp(q),Z=a?`${a.fileName}:${a.lineNumber}`:"unknown",j=`[${K}] [${g}]`+(this._debugModeEnabled?` [${Z}]`:"")+" ",O=this.formatArguments(E).split(`
27
27
  `);for(let Q=0;Q<O.length;Q++){let M=O[Q],L=Q===0,$=this.consoleWidth-1-(L?0:Iq),V=L?j:" ".repeat(Iq),H=L?V+M:M,X=0;while(X<H.length||L&&X===0&&H.length===0){let T=H.substring(X,X+$),x=X===0;if(F.push({text:x&&!L?V+T:T,level:g,indent:!L||!x}),X+=$,L&&X===0&&H.length===0)break}}return F}_processCachedLogs(){let A=[...TA.cachedLogs];if(TA.clearConsole(),this._allLogEntries.push(...A),this._allLogEntries.length>this.options.maxStoredLogs)this._allLogEntries.splice(0,this._allLogEntries.length-this.options.maxStoredLogs);for(let q of A){let g=this._processLogEntry(q);this._displayLines.push(...g)}if(this._displayLines.length>this.options.maxDisplayLines)this._displayLines.splice(0,this._displayLines.length-this.options.maxDisplayLines)}hasSelection(){if(this._selectionStart===null||this._selectionEnd===null)return!1;return this._selectionStart.line!==this._selectionEnd.line||this._selectionStart.col!==this._selectionEnd.col}normalizeSelection(){if(!this._selectionStart||!this._selectionEnd)return null;let A=this._selectionStart,q=this._selectionEnd;if(A.line<q.line||A.line===q.line&&A.col<=q.col)return{startLine:A.line,startCol:A.col,endLine:q.line,endCol:q.col};else return{startLine:q.line,startCol:q.col,endLine:A.line,endCol:A.col}}getSelectedText(){let A=this.normalizeSelection();if(!A)return"";let q=[];for(let g=A.startLine;g<=A.endLine;g++){if(g<0||g>=this._displayLines.length)continue;let E=this._displayLines[g],a=E.indent?" ".repeat(Iq):"",F=this.consoleWidth-1-(E.indent?Iq:0),K=a+E.text.substring(0,F),Z=K;if(g===A.startLine&&g===A.endLine)Z=K.substring(A.startCol,A.endCol);else if(g===A.startLine)Z=K.substring(A.startCol);else if(g===A.endLine)Z=K.substring(0,A.endCol);q.push(Z)}return q.join(`
28
- `)}clearSelection(){this._selectionStart=null,this._selectionEnd=null,this._isDragging=!1,this.stopAutoScroll()}stopAutoScroll(){if(this._autoScrollInterval!==null)clearInterval(this._autoScrollInterval),this._autoScrollInterval=null}startAutoScroll(A){this.stopAutoScroll(),this._autoScrollInterval=setInterval(()=>{if(A==="up")if(this.scrollTopIndex>0){if(this.scrollTopIndex--,this.isScrolledToBottom=!1,this._selectionEnd)this._selectionEnd={line:this.scrollTopIndex,col:this._selectionEnd.col};this.markNeedsRerender()}else this.stopAutoScroll();else{let q=this._displayLines.length,g=Math.max(1,this.consoleHeight-1),E=Math.max(0,q-g);if(this.scrollTopIndex<E){if(this.scrollTopIndex++,this.isScrolledToBottom=this.scrollTopIndex===E,this._selectionEnd){let a=this.scrollTopIndex+g-1;this._selectionEnd={line:Math.min(a,q-1),col:this._selectionEnd.col}}this.markNeedsRerender()}else this.stopAutoScroll()}},50)}triggerCopy(){if(!this.hasSelection())return;let A=this.getSelectedText();if(A&&this.options.onCopySelection){try{this.options.onCopySelection(A)}catch{}this.clearSelection(),this.markNeedsRerender()}}getLineSelectionRange(A){let q=this.normalizeSelection();if(!q)return null;if(A<q.startLine||A>q.endLine)return null;let g=this._displayLines[A];if(!g)return null;let E=g.indent?" ".repeat(Iq):"",a=this.consoleWidth-1-(g.indent?Iq:0),F=E.length+Math.min(g.text.length,a),K=0,Z=F;if(A===q.startLine)K=Math.max(0,q.startCol);if(A===q.endLine)Z=Math.min(F,q.endCol);if(K>=Z)return null;return{start:K,end:Z}}handleMouse(A){if(!this.isVisible)return!1;let q=A.x-this.consoleX,g=A.y-this.consoleY;if(q<0||q>=this.consoleWidth||g<0||g>=this.consoleHeight)return!1;if(A.type==="scroll"&&A.scroll){if(A.scroll.direction==="up")this.scrollUp();else if(A.scroll.direction==="down")this.scrollDown();return!0}if(g===0){if(A.type==="down"&&A.button===0&&q>=this._copyButtonBounds.x&&q<this._copyButtonBounds.x+this._copyButtonBounds.width)return this.triggerCopy(),!0;return!0}let E=this.scrollTopIndex+(g-1),a=Math.max(0,q-1);if(A.type==="down"&&A.button===0)return this.clearSelection(),this._selectionStart={line:E,col:a},this._selectionEnd={line:E,col:a},this._isDragging=!0,this.markNeedsRerender(),!0;if(A.type==="drag"&&this._isDragging){this._selectionEnd={line:E,col:a};let F=Math.max(1,this.consoleHeight-1),K=g-1;if(K<=0)this.startAutoScroll("up");else if(K>=F-1)this.startAutoScroll("down");else this.stopAutoScroll();return this.markNeedsRerender(),!0}if(A.type==="up"){if(this._isDragging)this._selectionEnd={line:E,col:a},this._isDragging=!1,this.stopAutoScroll(),this.markNeedsRerender();return!0}return!0}get visible(){return this.isVisible}get bounds(){return{x:this.consoleX,y:this.consoleY,width:this.consoleWidth,height:this.consoleHeight}}saveLogsToFile(){try{let q=`_console_${Date.now()}.log`,g=h_.join(process.cwd(),q),E=[...this._allLogEntries,...TA.cachedLogs],a=[];for(let[K,Z,j,U]of E){let O=this.formatTimestamp(K),Q=U?`${U.fileName}:${U.lineNumber}`:"unknown",M=`[${O}] [${Z}]`+(this._debugModeEnabled?` [${Q}]`:"")+" ",L=this.formatArguments(j);a.push(M+L)}let F=a.join(`
29
- `);W_.writeFileSync(g,F,"utf8"),console.info(`Console logs saved to: ${q}`)}catch(A){console.error("Failed to save console logs:",A)}}};gq={switchToAlternateScreen:"\x1B[?1049h",switchToMainScreen:"\x1B[?1049l",reset:"\x1B[0m",scrollDown:(A)=>`\x1B[${A}T`,scrollUp:(A)=>`\x1B[${A}S`,moveCursor:(A,q)=>`\x1B[${A};${q}H`,moveCursorAndClear:(A,q)=>`\x1B[${A};${q}H\x1B[J`,setRgbBackground:(A,q,g)=>`\x1B[48;2;${A};${q};${g}m`,resetBackground:"\x1B[49m",bracketedPasteStart:"\x1B[200~",bracketedPasteEnd:"\x1B[201~"};ZA({name:"OTUI_DUMP_CAPTURES",description:"Dump captured output when the renderer exits.",type:"boolean",default:!1});ZA({name:"OTUI_NO_NATIVE_RENDER",description:"Disable native rendering. This will not actually output ansi and is useful for debugging.",type:"boolean",default:!1});ZA({name:"OTUI_USE_ALTERNATE_SCREEN",description:"Whether to use the console. Will not capture console output if set to false.",type:"boolean",default:!0});ZA({name:"OTUI_OVERRIDE_STDOUT",description:"Override the stdout stream. This is useful for debugging.",type:"boolean",default:!0});ZA({name:"OTUI_DEBUG",description:"Enable debug mode to capture all raw input for debugging purposes.",type:"boolean",default:!1});ZA({name:"OTUI_SHOW_STATS",description:"Show the debug overlay at startup.",type:"boolean",default:!1});c_=["TMUX","TERM","OPENTUI_GRAPHICS","TERM_PROGRAM","TERM_PROGRAM_VERSION","ALACRITTY_SOCKET","ALACRITTY_LOG","COLORTERM","TERMUX_VERSION","VHS_RECORD","OPENTUI_FORCE_WCWIDTH","OPENTUI_FORCE_UNICODE","OPENTUI_FORCE_NOZWJ","OPENTUI_FORCE_EXPLICIT_WIDTH","WT_SESSION","STY"];((A)=>{A[A.LEFT=0]="LEFT",A[A.MIDDLE=1]="MIDDLE",A[A.RIGHT=2]="RIGHT",A[A.WHEEL_UP=4]="WHEEL_UP",A[A.WHEEL_DOWN=5]="WHEEL_DOWN"})(hK||={});pF=kq("RendererTracker",()=>{let A=new Set;return{addRenderer:(q)=>{A.add(q)},removeRenderer:(q)=>{if(A.delete(q),A.size===0){if(process.stdin.pause(),PU("tree-sitter-client"))ZK().destroy(),TU("tree-sitter-client")}}}});((A)=>{A.DEBUG_OVERLAY_TOGGLE="debugOverlay:toggle",A.DESTROY="destroy"})(SK||={});((A)=>{A.IDLE="idle",A.AUTO_STARTED="auto_started",A.EXPLICIT_STARTED="explicit_started",A.EXPLICIT_PAUSED="explicit_paused",A.EXPLICIT_SUSPENDED="explicit_suspended",A.EXPLICIT_STOPPED="explicit_stopped"})(zK||={});H6=class H6 extends w_{static animationFrameId=0;lib;rendererPtr;stdin;stdout;exitOnCtrlC;exitSignals;_exitListenersAdded=!1;_isDestroyed=!1;_destroyPending=!1;_destroyFinalized=!1;nextRenderBuffer;currentRenderBuffer;_isRunning=!1;targetFps=30;maxFps=60;automaticMemorySnapshot=!1;memorySnapshotInterval;memorySnapshotTimer=null;lastMemorySnapshot={heapUsed:0,heapTotal:0,arrayBuffers:0};root;width;height;_useThread=!1;gatherStats=!1;frameTimes=[];maxStatSamples=300;postProcessFns=[];backgroundColor=AA.fromInts(0,0,0,0);waitingForPixelResolution=!1;rendering=!1;renderingNative=!1;renderTimeout=null;lastTime=0;frameCount=0;lastFpsTime=0;currentFps=0;targetFrameTime=1000/this.targetFps;minTargetFrameTime=1000/this.maxFps;immediateRerenderRequested=!1;updateScheduled=!1;liveRequestCounter=0;_controlState="idle";frameCallbacks=[];renderStats={frameCount:0,fps:0,renderTime:0,frameCallbackTime:0};debugOverlay={enabled:EA.OTUI_SHOW_STATS,corner:3};_console;_resolution=null;_keyHandler;stdinParser=null;oscSubscribers=new Set;hasLoggedStdinParserError=!1;animationRequest=new Map;resizeTimeoutId=null;capabilityTimeoutId=null;resizeDebounceDelay=100;enableMouseMovement=!1;_useMouse=!0;autoFocus=!0;_useAlternateScreen=EA.OTUI_USE_ALTERNATE_SCREEN;_suspendedMouseEnabled=!1;_previousControlState="idle";capturedRenderable;lastOverRenderableNum=0;lastOverRenderable;currentSelection=null;selectionContainers=[];clipboard;_splitHeight=0;renderOffset=0;_terminalWidth=0;_terminalHeight=0;_terminalIsSetup=!1;realStdoutWrite;captureCallback=()=>{if(this._splitHeight>0)this.requestRender()};_useConsole=!0;sigwinchHandler=(()=>{let A=this.stdout.columns||80,q=this.stdout.rows||24;this.handleResize(A,q)}).bind(this);_capabilities=null;_latestPointer={x:0,y:0};_hasPointer=!1;_lastPointerModifiers={shift:!1,alt:!1,ctrl:!1};_currentMousePointerStyle=void 0;_currentFocusedRenderable=null;lifecyclePasses=new Set;_openConsoleOnError=!0;_paletteDetector=null;_cachedPalette=null;_paletteDetectionPromise=null;_onDestroy;_themeMode=null;sequenceHandlers=[];prependedInputHandlers=[];shouldRestoreModesOnNextFocus=!1;idleResolvers=[];_debugInputs=[];_debugModeEnabled=EA.OTUI_DEBUG;handleError=((A)=>{if(console.error(A),this._openConsoleOnError)this.console.show()}).bind(this);dumpOutputCache(A=""){let q=this.console.getCachedLogs(),g=mA.claimOutput();if(g.length>0||q.length>0)this.realStdoutWrite.call(this.stdout,A);if(q.length>0)this.realStdoutWrite.call(this.stdout,`Console cache:
28
+ `)}clearSelection(){this._selectionStart=null,this._selectionEnd=null,this._isDragging=!1,this.stopAutoScroll()}stopAutoScroll(){if(this._autoScrollInterval!==null)clearInterval(this._autoScrollInterval),this._autoScrollInterval=null}startAutoScroll(A){this.stopAutoScroll(),this._autoScrollInterval=setInterval(()=>{if(A==="up")if(this.scrollTopIndex>0){if(this.scrollTopIndex--,this.isScrolledToBottom=!1,this._selectionEnd)this._selectionEnd={line:this.scrollTopIndex,col:this._selectionEnd.col};this.markNeedsRerender()}else this.stopAutoScroll();else{let q=this._displayLines.length,g=Math.max(1,this.consoleHeight-1),E=Math.max(0,q-g);if(this.scrollTopIndex<E){if(this.scrollTopIndex++,this.isScrolledToBottom=this.scrollTopIndex===E,this._selectionEnd){let a=this.scrollTopIndex+g-1;this._selectionEnd={line:Math.min(a,q-1),col:this._selectionEnd.col}}this.markNeedsRerender()}else this.stopAutoScroll()}},50)}triggerCopy(){if(!this.hasSelection())return;let A=this.getSelectedText();if(A&&this.options.onCopySelection){try{this.options.onCopySelection(A)}catch{}this.clearSelection(),this.markNeedsRerender()}}getLineSelectionRange(A){let q=this.normalizeSelection();if(!q)return null;if(A<q.startLine||A>q.endLine)return null;let g=this._displayLines[A];if(!g)return null;let E=g.indent?" ".repeat(Iq):"",a=this.consoleWidth-1-(g.indent?Iq:0),F=E.length+Math.min(g.text.length,a),K=0,Z=F;if(A===q.startLine)K=Math.max(0,q.startCol);if(A===q.endLine)Z=Math.min(F,q.endCol);if(K>=Z)return null;return{start:K,end:Z}}handleMouse(A){if(!this.isVisible)return!1;let q=A.x-this.consoleX,g=A.y-this.consoleY;if(q<0||q>=this.consoleWidth||g<0||g>=this.consoleHeight)return!1;if(A.type==="scroll"&&A.scroll){if(A.scroll.direction==="up")this.scrollUp();else if(A.scroll.direction==="down")this.scrollDown();return!0}if(g===0){if(A.type==="down"&&A.button===0&&q>=this._copyButtonBounds.x&&q<this._copyButtonBounds.x+this._copyButtonBounds.width)return this.triggerCopy(),!0;return!0}let E=this.scrollTopIndex+(g-1),a=Math.max(0,q-1);if(A.type==="down"&&A.button===0)return this.clearSelection(),this._selectionStart={line:E,col:a},this._selectionEnd={line:E,col:a},this._isDragging=!0,this.markNeedsRerender(),!0;if(A.type==="drag"&&this._isDragging){this._selectionEnd={line:E,col:a};let F=Math.max(1,this.consoleHeight-1),K=g-1;if(K<=0)this.startAutoScroll("up");else if(K>=F-1)this.startAutoScroll("down");else this.stopAutoScroll();return this.markNeedsRerender(),!0}if(A.type==="up"){if(this._isDragging)this._selectionEnd={line:E,col:a},this._isDragging=!1,this.stopAutoScroll(),this.markNeedsRerender();return!0}return!0}get visible(){return this.isVisible}get bounds(){return{x:this.consoleX,y:this.consoleY,width:this.consoleWidth,height:this.consoleHeight}}saveLogsToFile(){try{let q=`_console_${Date.now()}.log`,g=S_.join(process.cwd(),q),E=[...this._allLogEntries,...TA.cachedLogs],a=[];for(let[K,Z,j,U]of E){let O=this.formatTimestamp(K),Q=U?`${U.fileName}:${U.lineNumber}`:"unknown",M=`[${O}] [${Z}]`+(this._debugModeEnabled?` [${Q}]`:"")+" ",L=this.formatArguments(j);a.push(M+L)}let F=a.join(`
29
+ `);h_.writeFileSync(g,F,"utf8"),console.info(`Console logs saved to: ${q}`)}catch(A){console.error("Failed to save console logs:",A)}}};gq={switchToAlternateScreen:"\x1B[?1049h",switchToMainScreen:"\x1B[?1049l",reset:"\x1B[0m",scrollDown:(A)=>`\x1B[${A}T`,scrollUp:(A)=>`\x1B[${A}S`,moveCursor:(A,q)=>`\x1B[${A};${q}H`,moveCursorAndClear:(A,q)=>`\x1B[${A};${q}H\x1B[J`,setRgbBackground:(A,q,g)=>`\x1B[48;2;${A};${q};${g}m`,resetBackground:"\x1B[49m",bracketedPasteStart:"\x1B[200~",bracketedPasteEnd:"\x1B[201~"};ZA({name:"OTUI_DUMP_CAPTURES",description:"Dump captured output when the renderer exits.",type:"boolean",default:!1});ZA({name:"OTUI_NO_NATIVE_RENDER",description:"Disable native rendering. This will not actually output ansi and is useful for debugging.",type:"boolean",default:!1});ZA({name:"OTUI_USE_ALTERNATE_SCREEN",description:"Whether to use the console. Will not capture console output if set to false.",type:"boolean",default:!0});ZA({name:"OTUI_OVERRIDE_STDOUT",description:"Override the stdout stream. This is useful for debugging.",type:"boolean",default:!0});ZA({name:"OTUI_DEBUG",description:"Enable debug mode to capture all raw input for debugging purposes.",type:"boolean",default:!1});ZA({name:"OTUI_SHOW_STATS",description:"Show the debug overlay at startup.",type:"boolean",default:!1});v_=["TMUX","TERM","OPENTUI_GRAPHICS","TERM_PROGRAM","TERM_PROGRAM_VERSION","ALACRITTY_SOCKET","ALACRITTY_LOG","COLORTERM","TERMUX_VERSION","VHS_RECORD","OPENTUI_FORCE_WCWIDTH","OPENTUI_FORCE_UNICODE","OPENTUI_FORCE_NOZWJ","OPENTUI_FORCE_EXPLICIT_WIDTH","WT_SESSION","STY"];((A)=>{A[A.LEFT=0]="LEFT",A[A.MIDDLE=1]="MIDDLE",A[A.RIGHT=2]="RIGHT",A[A.WHEEL_UP=4]="WHEEL_UP",A[A.WHEEL_DOWN=5]="WHEEL_DOWN"})(hK||={});pF=kq("RendererTracker",()=>{let A=new Set;return{addRenderer:(q)=>{A.add(q)},removeRenderer:(q)=>{if(A.delete(q),A.size===0){if(process.stdin.pause(),VU("tree-sitter-client"))ZK().destroy(),PU("tree-sitter-client")}}}});((A)=>{A.DEBUG_OVERLAY_TOGGLE="debugOverlay:toggle",A.DESTROY="destroy"})(SK||={});((A)=>{A.IDLE="idle",A.AUTO_STARTED="auto_started",A.EXPLICIT_STARTED="explicit_started",A.EXPLICIT_PAUSED="explicit_paused",A.EXPLICIT_SUSPENDED="explicit_suspended",A.EXPLICIT_STOPPED="explicit_stopped"})(zK||={});H6=class H6 extends y_{static animationFrameId=0;lib;rendererPtr;stdin;stdout;exitOnCtrlC;exitSignals;_exitListenersAdded=!1;_isDestroyed=!1;_destroyPending=!1;_destroyFinalized=!1;nextRenderBuffer;currentRenderBuffer;_isRunning=!1;targetFps=30;maxFps=60;automaticMemorySnapshot=!1;memorySnapshotInterval;memorySnapshotTimer=null;lastMemorySnapshot={heapUsed:0,heapTotal:0,arrayBuffers:0};root;width;height;_useThread=!1;gatherStats=!1;frameTimes=[];maxStatSamples=300;postProcessFns=[];backgroundColor=AA.fromInts(0,0,0,0);waitingForPixelResolution=!1;rendering=!1;renderingNative=!1;renderTimeout=null;lastTime=0;frameCount=0;lastFpsTime=0;currentFps=0;targetFrameTime=1000/this.targetFps;minTargetFrameTime=1000/this.maxFps;immediateRerenderRequested=!1;updateScheduled=!1;liveRequestCounter=0;_controlState="idle";frameCallbacks=[];renderStats={frameCount:0,fps:0,renderTime:0,frameCallbackTime:0};debugOverlay={enabled:EA.OTUI_SHOW_STATS,corner:3};_console;_resolution=null;_keyHandler;stdinParser=null;oscSubscribers=new Set;hasLoggedStdinParserError=!1;animationRequest=new Map;resizeTimeoutId=null;capabilityTimeoutId=null;resizeDebounceDelay=100;enableMouseMovement=!1;_useMouse=!0;autoFocus=!0;_useAlternateScreen=EA.OTUI_USE_ALTERNATE_SCREEN;_suspendedMouseEnabled=!1;_previousControlState="idle";capturedRenderable;lastOverRenderableNum=0;lastOverRenderable;currentSelection=null;selectionContainers=[];clipboard;_splitHeight=0;renderOffset=0;_terminalWidth=0;_terminalHeight=0;_terminalIsSetup=!1;realStdoutWrite;captureCallback=()=>{if(this._splitHeight>0)this.requestRender()};_useConsole=!0;sigwinchHandler=(()=>{let A=this.stdout.columns||80,q=this.stdout.rows||24;this.handleResize(A,q)}).bind(this);_capabilities=null;_latestPointer={x:0,y:0};_hasPointer=!1;_lastPointerModifiers={shift:!1,alt:!1,ctrl:!1};_currentMousePointerStyle=void 0;_currentFocusedRenderable=null;lifecyclePasses=new Set;_openConsoleOnError=!0;_paletteDetector=null;_cachedPalette=null;_paletteDetectionPromise=null;_onDestroy;_themeMode=null;sequenceHandlers=[];prependedInputHandlers=[];shouldRestoreModesOnNextFocus=!1;idleResolvers=[];_debugInputs=[];_debugModeEnabled=EA.OTUI_DEBUG;handleError=((A)=>{if(console.error(A),this._openConsoleOnError)this.console.show()}).bind(this);dumpOutputCache(A=""){let q=this.console.getCachedLogs(),g=mA.claimOutput();if(g.length>0||q.length>0)this.realStdoutWrite.call(this.stdout,A);if(q.length>0)this.realStdoutWrite.call(this.stdout,`Console cache:
30
30
  `),this.realStdoutWrite.call(this.stdout,q);if(g.length>0)this.realStdoutWrite.call(this.stdout,`
31
31
  Captured output:
32
32
  `),this.realStdoutWrite.call(this.stdout,g+`
33
33
  `);this.realStdoutWrite.call(this.stdout,gq.reset)}exitHandler=(()=>{if(this.destroy(),EA.OTUI_DUMP_CAPTURES)Bun.sleep(100).then(()=>{this.dumpOutputCache(`=== CAPTURED OUTPUT ===
34
- `)})}).bind(this);warningHandler=((A)=>{console.warn(JSON.stringify(A.message,null,2))}).bind(this);get controlState(){return this._controlState}constructor(A,q,g,E,a,F,K={}){super();if(pF.addRenderer(this),this.stdin=g,this.stdout=E,this.realStdoutWrite=E.write,this.lib=A,this._terminalWidth=E.columns??a,this._terminalHeight=E.rows??F,this.width=a,this.height=F,this._useThread=K.useThread===void 0?!1:K.useThread,this._splitHeight=K.experimental_splitHeight||0,this._splitHeight>0)mA.on("write",this.captureCallback),this.renderOffset=F-this._splitHeight,this.height=this._splitHeight,A.setRenderOffset(q,this.renderOffset);this.rendererPtr=q;let Z=K.forwardEnvKeys??[...c_];for(let M of Z){let L=process.env[M];if(L===void 0)continue;this.lib.setTerminalEnvVar(this.rendererPtr,M,L)}if(this.exitOnCtrlC=K.exitOnCtrlC===void 0?!0:K.exitOnCtrlC,this.exitSignals=K.exitSignals||["SIGINT","SIGTERM","SIGQUIT","SIGABRT","SIGHUP","SIGBREAK","SIGPIPE","SIGBUS","SIGFPE"],this.clipboard=new VK(this.lib,this.rendererPtr),this.resizeDebounceDelay=K.debounceDelay||100,this.targetFps=K.targetFps||30,this.maxFps=K.maxFps||60,this.targetFrameTime=1000/this.targetFps,this.minTargetFrameTime=1000/this.maxFps,this.memorySnapshotInterval=K.memorySnapshotInterval??0,this.gatherStats=K.gatherStats||!1,this.maxStatSamples=K.maxStatSamples||300,this.enableMouseMovement=K.enableMouseMovement??!0,this._useMouse=K.useMouse??!0,this.autoFocus=K.autoFocus??!0,this._useAlternateScreen=K.useAlternateScreen??EA.OTUI_USE_ALTERNATE_SCREEN,this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this.currentRenderBuffer=this.lib.getCurrentBuffer(this.rendererPtr),this.postProcessFns=K.postProcessFns||[],this.prependedInputHandlers=K.prependInputHandlers||[],this.root=new dE(this),this.memorySnapshotInterval>0)this.startMemorySnapshotTimer();if(EA.OTUI_OVERRIDE_STDOUT)this.stdout.write=this.interceptStdoutWrite.bind(this);process.on("SIGWINCH",this.sigwinchHandler),process.on("warning",this.warningHandler),process.on("uncaughtException",this.handleError),process.on("unhandledRejection",this.handleError),process.on("beforeExit",this.exitHandler);let U=(K.useKittyKeyboard??{})!==null;this._keyHandler=new zE,this._keyHandler.on("keypress",(M)=>{if(this.exitOnCtrlC&&M.name==="c"&&M.ctrl){process.nextTick(()=>{this.destroy()});return}}),this.addExitListeners();let O=K.stdinParserMaxBufferBytes??d_;if(this.stdinParser=new mE({timeoutMs:10,maxPendingBytes:O,armTimeouts:!0,onTimeoutFlush:()=>{this.drainStdinParser()},useKittyKeyboard:U,clock:K.stdinParserClock}),this._console=new tE(this,K.consoleOptions),this.useConsole=K.useConsole??!0,this._openConsoleOnError=K.openConsoleOnError??!0,this._onDestroy=K.onDestroy,global.requestAnimationFrame=(M)=>{let L=H6.animationFrameId++;return this.animationRequest.set(L,M),this.requestLive(),L},global.cancelAnimationFrame=(M)=>{this.animationRequest.delete(M)},!global.window)global.window={};if(global.window.requestAnimationFrame=requestAnimationFrame,EA.OTUI_NO_NATIVE_RENDER)this.renderNative=()=>{if(this._splitHeight>0)this.flushStdoutCache(this._splitHeight)};this.setupInput()}addExitListeners(){if(this._exitListenersAdded||this.exitSignals.length===0)return;this.exitSignals.forEach((A)=>{process.addListener(A,this.exitHandler)}),this._exitListenersAdded=!0}removeExitListeners(){if(!this._exitListenersAdded||this.exitSignals.length===0)return;this.exitSignals.forEach((A)=>{process.removeListener(A,this.exitHandler)}),this._exitListenersAdded=!1}get isDestroyed(){return this._isDestroyed}registerLifecyclePass(A){this.lifecyclePasses.add(A)}unregisterLifecyclePass(A){this.lifecyclePasses.delete(A)}getLifecyclePasses(){return this.lifecyclePasses}get currentFocusedRenderable(){return this._currentFocusedRenderable}focusRenderable(A){if(this._currentFocusedRenderable===A)return;if(this._currentFocusedRenderable)this._currentFocusedRenderable.blur();this._currentFocusedRenderable=A}setCapturedRenderable(A){if(this.capturedRenderable===A)return;this.capturedRenderable=A}addToHitGrid(A,q,g,E,a){if(a!==this.capturedRenderable?.num)this.lib.addToHitGrid(this.rendererPtr,A,q,g,E,a)}pushHitGridScissorRect(A,q,g,E){this.lib.hitGridPushScissorRect(this.rendererPtr,A,q,g,E)}popHitGridScissorRect(){this.lib.hitGridPopScissorRect(this.rendererPtr)}clearHitGridScissorRects(){this.lib.hitGridClearScissorRects(this.rendererPtr)}get widthMethod(){return this.capabilities?.unicode==="wcwidth"?"wcwidth":"unicode"}writeOut(A,q,g){if(this.rendererPtr&&this._useThread){let E=typeof A==="string"?A:A?.toString()??"";if(this.lib.writeOut(this.rendererPtr,E),typeof g==="function")process.nextTick(g);return!0}return this.realStdoutWrite.call(this.stdout,A,q,g)}requestRender(){if(this._controlState==="explicit_suspended")return;if(this._isRunning)return;if(this.rendering){this.immediateRerenderRequested=!0;return}if(!this.updateScheduled&&!this.renderTimeout){this.updateScheduled=!0;let q=Date.now()-this.lastTime,g=Math.max(this.minTargetFrameTime-q,0);if(g===0){process.nextTick(()=>this.activateFrame());return}setTimeout(()=>this.activateFrame(),g)}}async activateFrame(){await this.loop(),this.updateScheduled=!1,this.resolveIdleIfNeeded()}get useConsole(){return this._useConsole}set useConsole(A){if(this._useConsole=A,A)this.console.activate();else this.console.deactivate()}get isRunning(){return this._isRunning}isIdleNow(){return!this._isRunning&&!this.rendering&&!this.renderTimeout&&!this.updateScheduled&&!this.immediateRerenderRequested}resolveIdleIfNeeded(){if(!this.isIdleNow())return;let A=this.idleResolvers.splice(0);for(let q of A)q()}idle(){if(this._isDestroyed)return Promise.resolve();if(this.isIdleNow())return Promise.resolve();return new Promise((A)=>{this.idleResolvers.push(A)})}get resolution(){return this._resolution}get console(){return this._console}get keyInput(){return this._keyHandler}get _internalKeyInput(){return this._keyHandler}get terminalWidth(){return this._terminalWidth}get terminalHeight(){return this._terminalHeight}get useThread(){return this._useThread}get useMouse(){return this._useMouse}set useMouse(A){if(this._useMouse===A)return;if(this._useMouse=A,A)this.enableMouse();else this.disableMouse()}get experimental_splitHeight(){return this._splitHeight}get liveRequestCount(){return this.liveRequestCounter}get currentControlState(){return this._controlState}get capabilities(){return this._capabilities}get themeMode(){return this._themeMode}getDebugInputs(){return[...this._debugInputs]}get useKittyKeyboard(){return this.lib.getKittyKeyboardFlags(this.rendererPtr)>0}set useKittyKeyboard(A){let q=A?RK|NK:0;this.lib.setKittyKeyboardFlags(this.rendererPtr,q)}set experimental_splitHeight(A){if(A<0)A=0;let q=this._splitHeight;if(A>0){if(this._splitHeight=A,this.renderOffset=this._terminalHeight-this._splitHeight,this.height=this._splitHeight,q===0){this.useConsole=!1,mA.on("write",this.captureCallback);let g=this._terminalHeight-this._splitHeight,E=gq.scrollDown(g);this.writeOut(E)}else if(q>this._splitHeight){let g=q-this._splitHeight,E=gq.scrollDown(g);this.writeOut(E)}else if(q<this._splitHeight){let g=this._splitHeight-q,E=gq.scrollUp(g);this.writeOut(E)}}else{if(q>0)this.flushStdoutCache(this._terminalHeight,!0),mA.off("write",this.captureCallback),this.useConsole=!0;this._splitHeight=0,this.renderOffset=0,this.height=this._terminalHeight}this.width=this._terminalWidth,this.lib.setRenderOffset(this.rendererPtr,this.renderOffset),this.lib.resizeRenderer(this.rendererPtr,this.width,this.height),this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this._console.resize(this.width,this.height),this.root.resize(this.width,this.height),this.emit("resize",this.width,this.height),this.requestRender()}interceptStdoutWrite=(A,q,g)=>{let E=A.toString();if(mA.write("stdout",E),this._splitHeight>0)this.requestRender();if(typeof g==="function")process.nextTick(g);return!0};disableStdoutInterception(){this.stdout.write=this.realStdoutWrite}flushStdoutCache(A,q=!1){if(mA.size===0&&!q)return!1;let g=mA.claimOutput(),E=this._terminalHeight-this._splitHeight,a=gq.moveCursorAndClear(E,1),F=this._terminalHeight-this._splitHeight,K=gq.moveCursor(F,1),Z="";if(A>0){let j=this.backgroundColor.toInts(),U=" ".repeat(this.width)+`
35
- `.repeat(A);if(j[3]===0)Z=U;else Z=gq.setRgbBackground(j[0],j[1],j[2])+U+gq.resetBackground}return this.writeOut(a+K+g+Z),!0}enableMouse(){this._useMouse=!0,this.lib.enableMouse(this.rendererPtr,this.enableMouseMovement)}disableMouse(){this._useMouse=!1,this.setCapturedRenderable(void 0),this.stdinParser?.resetMouseState(),this.lib.disableMouse(this.rendererPtr)}enableKittyKeyboard(A=3){this.lib.enableKittyKeyboard(this.rendererPtr,A)}disableKittyKeyboard(){this.lib.disableKittyKeyboard(this.rendererPtr)}set useThread(A){this._useThread=A,this.lib.setUseThread(this.rendererPtr,A)}async setupTerminal(){if(this._terminalIsSetup)return;if(this._terminalIsSetup=!0,this.lib.setupTerminal(this.rendererPtr,this._useAlternateScreen),this._capabilities=this.lib.getTerminalCapabilities(this.rendererPtr),this.debugOverlay.enabled){if(this.lib.setDebugOverlay(this.rendererPtr,!0,this.debugOverlay.corner),!this.memorySnapshotInterval)this.memorySnapshotInterval=3000,this.startMemorySnapshotTimer(),this.automaticMemorySnapshot=!0}if(this.capabilityTimeoutId=setTimeout(()=>{this.capabilityTimeoutId=null,this.removeInputHandler(this.capabilityHandler)},5000),this._useMouse)this.enableMouse();this.queryPixelResolution()}stdinListener=((A)=>{let q=Buffer.isBuffer(A)?A:Buffer.from(A);if(!this.stdinParser)return;try{this.stdinParser.push(q),this.drainStdinParser()}catch(g){this.handleStdinParserFailure(g)}}).bind(this);addInputHandler(A){this.sequenceHandlers.push(A)}prependInputHandler(A){this.sequenceHandlers.unshift(A)}removeInputHandler(A){this.sequenceHandlers=this.sequenceHandlers.filter((q)=>q!==A)}subscribeOsc(A){return this.oscSubscribers.add(A),()=>{this.oscSubscribers.delete(A)}}capabilityHandler=((A)=>{if(y_(A))return this.lib.processCapabilityResponse(this.rendererPtr,A),this._capabilities=this.lib.getTerminalCapabilities(this.rendererPtr),this.emit("capabilities",this._capabilities),!0;return!1}).bind(this);focusHandler=((A)=>{if(A==="\x1B[I"){if(this.shouldRestoreModesOnNextFocus)this.lib.restoreTerminalModes(this.rendererPtr),this.shouldRestoreModesOnNextFocus=!1;return this.emit("focus"),!0}if(A==="\x1B[O")return this.shouldRestoreModesOnNextFocus=!0,this.emit("blur"),!0;return!1}).bind(this);themeModeHandler=((A)=>{if(A==="\x1B[?997;1n"){if(this._themeMode!=="dark")this._themeMode="dark",this.emit("theme_mode","dark");return!0}if(A==="\x1B[?997;2n"){if(this._themeMode!=="light")this._themeMode="light",this.emit("theme_mode","light");return!0}return!1}).bind(this);dispatchSequenceHandlers(A){if(this._debugModeEnabled)this._debugInputs.push({timestamp:new Date().toISOString(),sequence:A});for(let q of this.sequenceHandlers)if(q(A))return!0;return!1}drainStdinParser(){if(!this.stdinParser)return;this.stdinParser.drain((A)=>{this.handleStdinEvent(A)})}handleStdinEvent(A){switch(A.type){case"key":if(this.dispatchSequenceHandlers(A.raw))return;this._keyHandler.processParsedKey(A.key);return;case"mouse":if(this._useMouse&&this.processSingleMouseEvent(A.event))return;this.dispatchSequenceHandlers(A.raw);return;case"paste":this._keyHandler.processPaste(A.text);return;case"response":if(A.protocol==="osc")for(let q of this.oscSubscribers)q(A.sequence);this.dispatchSequenceHandlers(A.sequence);return}}handleStdinParserFailure(A){if(!this.hasLoggedStdinParserError)this.hasLoggedStdinParserError=!0,console.error("[stdin-parser-error] parser failure, resetting parser",A);try{this.stdinParser?.reset()}catch(q){console.error("stdin parser reset failed after parser error",q)}}setupInput(){for(let A of this.prependedInputHandlers)this.addInputHandler(A);if(this.addInputHandler((A)=>{if(m_(A)&&this.waitingForPixelResolution){let q=b_(A);if(q)this._resolution=q,this.waitingForPixelResolution=!1;return!0}return!1}),this.addInputHandler(this.capabilityHandler),this.addInputHandler(this.focusHandler),this.addInputHandler(this.themeModeHandler),this.stdin.setRawMode)this.stdin.setRawMode(!0);this.stdin.resume(),this.stdin.on("data",this.stdinListener)}dispatchMouseEvent(A,q){let g=new YA(A,q);if(A.processMouseEvent(g),this.autoFocus&&g.type==="down"&&g.button===0&&!g.defaultPrevented){let E=A;while(E){if(E.focusable){E.focus();break}E=E.parent}}return g}processSingleMouseEvent(A){if(this._splitHeight>0){if(A.y<this.renderOffset)return!1;A.y-=this.renderOffset}if(this._latestPointer.x=A.x,this._latestPointer.y=A.y,this._hasPointer=!0,this._lastPointerModifiers=A.modifiers,this._console.visible){let F=this._console.bounds;if(A.x>=F.x&&A.x<F.x+F.width&&A.y>=F.y&&A.y<F.y+F.height){let K=new YA(null,A);if(this._console.handleMouse(K))return!0}}if(A.type==="scroll"){let F=this.hitTest(A.x,A.y),K=OA.renderablesByNumber.get(F),Z=this._currentFocusedRenderable&&!this._currentFocusedRenderable.isDestroyed&&this._currentFocusedRenderable.focused?this._currentFocusedRenderable:null,j=K??Z;if(j){let U=new YA(j,A);j.processMouseEvent(U)}return!0}let q=this.hitTest(A.x,A.y),g=q===this.lastOverRenderableNum;this.lastOverRenderableNum=q;let E=OA.renderablesByNumber.get(q);if(A.type==="down"&&A.button===0&&!this.currentSelection?.isDragging&&!A.modifiers.ctrl){if(Boolean(E&&E.selectable&&!E.isDestroyed&&E.shouldStartSelection(A.x,A.y))&&E)return this.startSelection(E,A.x,A.y),this.dispatchMouseEvent(E,A),!0}if(A.type==="drag"&&this.currentSelection?.isDragging){if(this.updateSelection(E,A.x,A.y),E){let F=new YA(E,{...A,isDragging:!0});E.processMouseEvent(F)}return!0}if(A.type==="up"&&this.currentSelection?.isDragging){if(E){let F=new YA(E,{...A,isDragging:!0});E.processMouseEvent(F)}return this.finishSelection(),!0}if(A.type==="down"&&A.button===0&&this.currentSelection){if(A.modifiers.ctrl)return this.currentSelection.isDragging=!0,this.updateSelection(E,A.x,A.y),!0}if(!g&&(A.type==="drag"||A.type==="move")){if(this.lastOverRenderable&&this.lastOverRenderable!==this.capturedRenderable&&!this.lastOverRenderable.isDestroyed){let F=new YA(this.lastOverRenderable,{...A,type:"out"});this.lastOverRenderable.processMouseEvent(F)}if(this.lastOverRenderable=E,E){let F=new YA(E,{...A,type:"over",source:this.capturedRenderable});E.processMouseEvent(F)}}if(this.capturedRenderable&&A.type!=="up"){let F=new YA(this.capturedRenderable,A);return this.capturedRenderable.processMouseEvent(F),!0}if(this.capturedRenderable&&A.type==="up"){let F=new YA(this.capturedRenderable,{...A,type:"drag-end"});if(this.capturedRenderable.processMouseEvent(F),this.capturedRenderable.processMouseEvent(new YA(this.capturedRenderable,A)),E){let K=new YA(E,{...A,type:"drop",source:this.capturedRenderable});E.processMouseEvent(K)}this.lastOverRenderable=this.capturedRenderable,this.lastOverRenderableNum=this.capturedRenderable.num,this.setCapturedRenderable(void 0),this.requestRender()}let a;if(E){if(A.type==="drag"&&A.button===0)this.setCapturedRenderable(E);else this.setCapturedRenderable(void 0);a=this.dispatchMouseEvent(E,A)}else this.setCapturedRenderable(void 0),this.lastOverRenderable=void 0;if(!a?.defaultPrevented&&A.type==="down"&&this.currentSelection)this.clearSelection();return!0}recheckHoverState(){if(this._isDestroyed||!this._hasPointer)return;if(this.capturedRenderable)return;let A=this.hitTest(this._latestPointer.x,this._latestPointer.y),q=OA.renderablesByNumber.get(A),g=this.lastOverRenderable;if(g?.num===A){this.lastOverRenderableNum=A;return}let E={type:"move",button:0,x:this._latestPointer.x,y:this._latestPointer.y,modifiers:this._lastPointerModifiers};if(g&&!g.isDestroyed){let a=new YA(g,{...E,type:"out"});g.processMouseEvent(a)}if(this.lastOverRenderable=q,this.lastOverRenderableNum=A,q){let a=new YA(q,{...E,type:"over"});q.processMouseEvent(a)}}setMousePointer(A){this._currentMousePointerStyle=A,this.lib.setCursorStyleOptions(this.rendererPtr,{cursor:A})}hitTest(A,q){return this.lib.checkHit(this.rendererPtr,A,q)}takeMemorySnapshot(){if(this._isDestroyed)return;let A=process.memoryUsage();this.lastMemorySnapshot={heapUsed:A.heapUsed,heapTotal:A.heapTotal,arrayBuffers:A.arrayBuffers},this.lib.updateMemoryStats(this.rendererPtr,this.lastMemorySnapshot.heapUsed,this.lastMemorySnapshot.heapTotal,this.lastMemorySnapshot.arrayBuffers),this.emit("memory:snapshot",this.lastMemorySnapshot)}startMemorySnapshotTimer(){this.stopMemorySnapshotTimer(),this.memorySnapshotTimer=setInterval(()=>{this.takeMemorySnapshot()},this.memorySnapshotInterval)}stopMemorySnapshotTimer(){if(this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}setMemorySnapshotInterval(A){if(this.memorySnapshotInterval=A,this._isRunning&&A>0)this.startMemorySnapshotTimer();else if(A<=0&&this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}handleResize(A,q){if(this._isDestroyed)return;if(this._splitHeight>0){this.processResize(A,q);return}if(this.resizeTimeoutId!==null)clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;this.resizeTimeoutId=setTimeout(()=>{this.resizeTimeoutId=null,this.processResize(A,q)},this.resizeDebounceDelay)}queryPixelResolution(){this.waitingForPixelResolution=!0,this.lib.queryPixelResolution(this.rendererPtr)}processResize(A,q){if(A===this._terminalWidth&&q===this._terminalHeight)return;let g=this._terminalWidth;if(this._terminalWidth=A,this._terminalHeight=q,this.queryPixelResolution(),this.setCapturedRenderable(void 0),this.stdinParser?.resetMouseState(),this._splitHeight>0){if(A<g){let E=this._terminalHeight-this._splitHeight*2,a=gq.moveCursorAndClear(E,1);this.writeOut(a)}this.renderOffset=q-this._splitHeight,this.width=A,this.height=this._splitHeight,this.currentRenderBuffer.clear(this.backgroundColor),this.lib.setRenderOffset(this.rendererPtr,this.renderOffset)}else this.width=A,this.height=q;this.lib.resizeRenderer(this.rendererPtr,this.width,this.height),this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this.currentRenderBuffer=this.lib.getCurrentBuffer(this.rendererPtr),this._console.resize(this.width,this.height),this.root.resize(this.width,this.height),this.emit("resize",this.width,this.height),this.requestRender()}setBackgroundColor(A){let q=R(A);this.lib.setBackgroundColor(this.rendererPtr,q),this.backgroundColor=q,this.nextRenderBuffer.clear(q),this.requestRender()}toggleDebugOverlay(){let A=!this.debugOverlay.enabled;if(A&&!this.memorySnapshotInterval)this.memorySnapshotInterval=3000,this.startMemorySnapshotTimer(),this.automaticMemorySnapshot=!0;else if(!A&&this.automaticMemorySnapshot)this.stopMemorySnapshotTimer(),this.memorySnapshotInterval=0,this.automaticMemorySnapshot=!1;this.debugOverlay.enabled=!this.debugOverlay.enabled,this.lib.setDebugOverlay(this.rendererPtr,this.debugOverlay.enabled,this.debugOverlay.corner),this.emit("debugOverlay:toggle",this.debugOverlay.enabled),this.requestRender()}configureDebugOverlay(A){this.debugOverlay.enabled=A.enabled??this.debugOverlay.enabled,this.debugOverlay.corner=A.corner??this.debugOverlay.corner,this.lib.setDebugOverlay(this.rendererPtr,this.debugOverlay.enabled,this.debugOverlay.corner),this.requestRender()}setTerminalTitle(A){this.lib.setTerminalTitle(this.rendererPtr,A)}copyToClipboardOSC52(A,q){return this.clipboard.copyToClipboardOSC52(A,q)}clearClipboardOSC52(A){return this.clipboard.clearClipboardOSC52(A)}isOsc52Supported(){return this._capabilities?.osc52??this.clipboard.isOsc52Supported()}dumpHitGrid(){this.lib.dumpHitGrid(this.rendererPtr)}dumpBuffers(A){this.lib.dumpBuffers(this.rendererPtr,A)}dumpStdoutBuffer(A){this.lib.dumpStdoutBuffer(this.rendererPtr,A)}static setCursorPosition(A,q,g,E=!0){PA().setCursorPosition(A.rendererPtr,q,g,E)}static setCursorStyle(A,q){if(PA().setCursorStyleOptions(A.rendererPtr,q),q.cursor!==void 0)A._currentMousePointerStyle=q.cursor}static setCursorColor(A,q){PA().setCursorColor(A.rendererPtr,q)}setCursorPosition(A,q,g=!0){this.lib.setCursorPosition(this.rendererPtr,A,q,g)}setCursorStyle(A){if(this.lib.setCursorStyleOptions(this.rendererPtr,A),A.cursor!==void 0)this._currentMousePointerStyle=A.cursor}setCursorColor(A){this.lib.setCursorColor(this.rendererPtr,A)}getCursorState(){return this.lib.getCursorState(this.rendererPtr)}addPostProcessFn(A){this.postProcessFns.push(A)}removePostProcessFn(A){this.postProcessFns=this.postProcessFns.filter((q)=>q!==A)}clearPostProcessFns(){this.postProcessFns=[]}setFrameCallback(A){this.frameCallbacks.push(A)}removeFrameCallback(A){this.frameCallbacks=this.frameCallbacks.filter((q)=>q!==A)}clearFrameCallbacks(){this.frameCallbacks=[]}requestLive(){if(this.liveRequestCounter++,this._controlState==="idle"&&this.liveRequestCounter>0)this._controlState="auto_started",this.internalStart()}dropLive(){if(this.liveRequestCounter=Math.max(0,this.liveRequestCounter-1),this._controlState==="auto_started"&&this.liveRequestCounter===0)this._controlState="idle",this.internalPause()}start(){this._controlState="explicit_started",this.internalStart()}auto(){this._controlState=this._isRunning?"auto_started":"idle"}internalStart(){if(!this._isRunning&&!this._isDestroyed){if(this._isRunning=!0,this.memorySnapshotInterval>0)this.startMemorySnapshotTimer();this.startRenderLoop()}}pause(){this._controlState="explicit_paused",this.internalPause()}suspend(){if(this._previousControlState=this._controlState,this._controlState="explicit_suspended",this.internalPause(),this._suspendedMouseEnabled=this._useMouse,this.disableMouse(),this.removeExitListeners(),this.stdinParser?.reset(),this.stdin.removeListener("data",this.stdinListener),this.lib.suspendRenderer(this.rendererPtr),this.stdin.setRawMode)this.stdin.setRawMode(!1);this.stdin.pause()}resume(){if(this.stdin.setRawMode)this.stdin.setRawMode(!0);if(this.stdin.resume(),this.addExitListeners(),setImmediate(()=>{while(this.stdin.read()!==null);this.stdin.on("data",this.stdinListener)}),this.lib.resumeRenderer(this.rendererPtr),this._suspendedMouseEnabled)this.enableMouse();if(this.currentRenderBuffer.clear(this.backgroundColor),this._controlState=this._previousControlState,this._previousControlState==="auto_started"||this._previousControlState==="explicit_started")this.internalStart();else this.requestRender()}internalPause(){if(this._isRunning=!1,this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;if(!this.rendering)this.resolveIdleIfNeeded()}stop(){this._controlState="explicit_stopped",this.internalStop()}internalStop(){if(this.isRunning&&!this._isDestroyed){if(this._isRunning=!1,this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null;if(this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;if(!this.rendering)this.resolveIdleIfNeeded()}}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this._destroyPending=!0,this.rendering)return;this.finalizeDestroy()}finalizeDestroy(){if(this._destroyFinalized)return;if(this._destroyFinalized=!0,this._destroyPending=!1,process.removeListener("SIGWINCH",this.sigwinchHandler),process.removeListener("uncaughtException",this.handleError),process.removeListener("unhandledRejection",this.handleError),process.removeListener("warning",this.warningHandler),process.removeListener("beforeExit",this.exitHandler),mA.removeListener("write",this.captureCallback),this.removeExitListeners(),this.resizeTimeoutId!==null)clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;if(this.capabilityTimeoutId!==null)clearTimeout(this.capabilityTimeoutId),this.capabilityTimeoutId=null;if(this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer);if(this._paletteDetector)this._paletteDetector.cleanup(),this._paletteDetector=null;if(this._paletteDetectionPromise=null,this._cachedPalette=null,this.emit("destroy"),this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;this._isRunning=!1,this.waitingForPixelResolution=!1,this.setCapturedRenderable(void 0);try{this.root.destroyRecursively()}catch(A){console.error("Error destroying root renderable:",A instanceof Error?A.stack:String(A))}if(this.stdin.removeListener("data",this.stdinListener),this.stdin.setRawMode)this.stdin.setRawMode(!1);if(this.stdinParser?.destroy(),this.stdinParser=null,this.oscSubscribers.clear(),this._console.destroy(),this.disableStdoutInterception(),this._splitHeight>0)this.flushStdoutCache(this._splitHeight,!0);if(this.lib.destroyRenderer(this.rendererPtr),pF.removeRenderer(this),this._onDestroy)try{this._onDestroy()}catch(A){console.error("Error in onDestroy callback:",A instanceof Error?A.stack:String(A))}this.resolveIdleIfNeeded()}startRenderLoop(){if(!this._isRunning)return;this.lastTime=Date.now(),this.frameCount=0,this.lastFpsTime=this.lastTime,this.currentFps=0,this.loop()}async loop(){if(this.rendering||this._isDestroyed)return;if(this.renderTimeout=null,this.rendering=!0,this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;try{let A=Date.now(),g=A-this.lastTime;if(this.lastTime=A,this.frameCount++,A-this.lastFpsTime>=1000)this.currentFps=this.frameCount,this.frameCount=0,this.lastFpsTime=A;this.renderStats.frameCount++,this.renderStats.fps=this.currentFps;let E=performance.now(),a=Array.from(this.animationRequest.values());this.animationRequest.clear();let F=performance.now();for(let O of a)O(g),this.dropLive();let Z=performance.now()-F,j=performance.now();for(let O of this.frameCallbacks)try{await O(g)}catch(Q){console.error("Error in frame callback:",Q)}let U=performance.now();this.renderStats.frameCallbackTime=U-j,this.root.render(this.nextRenderBuffer,g);for(let O of this.postProcessFns)O(this.nextRenderBuffer,g);if(this._console.renderToBuffer(this.nextRenderBuffer),!this._isDestroyed){if(this.renderNative(),this._useMouse&&this.lib.getHitGridDirty(this.rendererPtr))this.recheckHoverState();let O=performance.now()-E;if(this.lib.updateStats(this.rendererPtr,O,this.renderStats.fps,this.renderStats.frameCallbackTime),this.gatherStats)this.collectStatSample(O);if(this._isRunning||this.immediateRerenderRequested){let Q=this.immediateRerenderRequested?this.minTargetFrameTime:this.targetFrameTime,M=Math.max(1,Q-Math.floor(O));this.immediateRerenderRequested=!1,this.renderTimeout=setTimeout(()=>{this.renderTimeout=null,this.loop()},M)}else clearTimeout(this.renderTimeout),this.renderTimeout=null}}finally{if(this.rendering=!1,this._destroyPending)this.finalizeDestroy();this.resolveIdleIfNeeded()}}intermediateRender(){this.immediateRerenderRequested=!0,this.loop()}renderNative(){if(this.renderingNative)throw console.error("Rendering called concurrently"),Error("Rendering called concurrently");let A=!1;if(this._splitHeight>0)A=this.flushStdoutCache(this._splitHeight);this.renderingNative=!0,this.lib.render(this.rendererPtr,A),this.renderingNative=!1}collectStatSample(A){if(this.frameTimes.push(A),this.frameTimes.length>this.maxStatSamples)this.frameTimes.shift()}getStats(){let A=[...this.frameTimes],q=A.reduce((F,K)=>F+K,0),g=A.length?q/A.length:0,E=A.length?Math.min(...A):0,a=A.length?Math.max(...A):0;return{fps:this.renderStats.fps,frameCount:this.renderStats.frameCount,frameTimes:A,averageFrameTime:g,minFrameTime:E,maxFrameTime:a}}resetStats(){this.frameTimes=[],this.renderStats.frameCount=0}setGatherStats(A){if(this.gatherStats=A,!A)this.frameTimes=[]}getSelection(){return this.currentSelection}get hasSelection(){return!!this.currentSelection}getSelectionContainer(){return this.selectionContainers.length>0?this.selectionContainers[this.selectionContainers.length-1]:null}clearSelection(){if(this.currentSelection){for(let A of this.currentSelection.touchedRenderables)if(A.selectable&&!A.isDestroyed)A.onSelectionChanged(null);this.currentSelection=null}this.selectionContainers=[]}startSelection(A,q,g){if(!A.selectable)return;this.clearSelection(),this.selectionContainers.push(A.parent||this.root),this.currentSelection=new DE(A,{x:q,y:g},{x:q,y:g}),this.currentSelection.isStart=!0,this.notifySelectablesOfSelectionChange()}updateSelection(A,q,g,E){if(this.currentSelection){if(this.currentSelection.isStart=!1,this.currentSelection.focus={x:q,y:g},E?.finishDragging)this.currentSelection.isDragging=!1;if(this.selectionContainers.length>0){let a=this.selectionContainers[this.selectionContainers.length-1];if(!A||!this.isWithinContainer(A,a)){let F=a.parent||this.root;this.selectionContainers.push(F)}else if(A&&this.selectionContainers.length>1){let F=this.selectionContainers.indexOf(A);if(F===-1){let K=A.parent||this.root;F=this.selectionContainers.indexOf(K)}if(F!==-1&&F<this.selectionContainers.length-1)this.selectionContainers=this.selectionContainers.slice(0,F+1)}}this.notifySelectablesOfSelectionChange()}}requestSelectionUpdate(){if(this.currentSelection?.isDragging){let A=this._latestPointer,q=this.hitTest(A.x,A.y),g=OA.renderablesByNumber.get(q);this.updateSelection(g,A.x,A.y)}}isWithinContainer(A,q){let g=A;while(g){if(g===q)return!0;g=g.parent}return!1}finishSelection(){if(this.currentSelection)this.currentSelection.isDragging=!1,this.emit("selection",this.currentSelection),this.notifySelectablesOfSelectionChange()}notifySelectablesOfSelectionChange(){let A=[],q=[],g=this.selectionContainers.length>0?this.selectionContainers[this.selectionContainers.length-1]:this.root;if(this.currentSelection){this.walkSelectableRenderables(g,this.currentSelection.bounds,A,q);for(let E of this.currentSelection.touchedRenderables)if(!q.includes(E)&&!E.isDestroyed)E.onSelectionChanged(null);this.currentSelection.updateSelectedRenderables(A),this.currentSelection.updateTouchedRenderables(q)}}walkSelectableRenderables(A,q,g,E){let a=xK(q,A.getChildrenSortedByPrimaryAxis(),A.primaryAxis,0,0);for(let F of a){if(F.selectable){if(F.onSelectionChanged(this.currentSelection))g.push(F);E.push(F)}if(F.getChildrenCount()>0)this.walkSelectableRenderables(F,q,g,E)}}get paletteDetectionStatus(){if(this._cachedPalette)return"cached";if(this._paletteDetectionPromise)return"detecting";return"idle"}clearPaletteCache(){this._cachedPalette=null}async getPalette(A){if(this._controlState==="explicit_suspended")throw Error("Cannot detect palette while renderer is suspended");let q=A?.size??16;if(this._cachedPalette&&this._cachedPalette.palette.length!==q)this._cachedPalette=null;if(this._cachedPalette)return this._cachedPalette;if(this._paletteDetectionPromise)return this._paletteDetectionPromise;if(!this._paletteDetector){let g=this.capabilities?.terminal?.name?.toLowerCase()?.includes("tmux")&&this.capabilities?.terminal?.version?.localeCompare("3.6")<0;this._paletteDetector=OK(this.stdin,this.stdout,this.writeOut.bind(this),g,{subscribeOsc:this.subscribeOsc.bind(this)})}return this._paletteDetectionPromise=this._paletteDetector.detect(A).then((g)=>{return this._cachedPalette=g,this._paletteDetectionPromise=null,g}),this._paletteDetectionPromise}}});import{EventEmitter as t_}from"events";import{toArrayBuffer as lE}from"bun:ffi";class P6{lib;viewPtr;textBuffer;_destroyed=!1;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.textBuffer=g}static create(A){let q=PA(),g=q.createTextBufferView(A.ptr);return new P6(q,g,A)}guard(){if(this._destroyed)throw Error("TextBufferView is destroyed")}get ptr(){return this.guard(),this.viewPtr}setSelection(A,q,g,E){this.guard(),this.lib.textBufferViewSetSelection(this.viewPtr,A,q,g||null,E||null)}updateSelection(A,q,g){this.guard(),this.lib.textBufferViewUpdateSelection(this.viewPtr,A,q||null,g||null)}resetSelection(){this.guard(),this.lib.textBufferViewResetSelection(this.viewPtr)}getSelection(){return this.guard(),this.lib.textBufferViewGetSelection(this.viewPtr)}hasSelection(){return this.guard(),this.getSelection()!==null}setLocalSelection(A,q,g,E,a,F){return this.guard(),this.lib.textBufferViewSetLocalSelection(this.viewPtr,A,q,g,E,a||null,F||null)}updateLocalSelection(A,q,g,E,a,F){return this.guard(),this.lib.textBufferViewUpdateLocalSelection(this.viewPtr,A,q,g,E,a||null,F||null)}resetLocalSelection(){this.guard(),this.lib.textBufferViewResetLocalSelection(this.viewPtr)}setWrapWidth(A){this.guard(),this.lib.textBufferViewSetWrapWidth(this.viewPtr,A??0)}setWrapMode(A){this.guard(),this.lib.textBufferViewSetWrapMode(this.viewPtr,A)}setViewportSize(A,q){this.guard(),this.lib.textBufferViewSetViewportSize(this.viewPtr,A,q)}setViewport(A,q,g,E){this.guard(),this.lib.textBufferViewSetViewport(this.viewPtr,A,q,g,E)}get lineInfo(){return this.guard(),this.lib.textBufferViewGetLineInfo(this.viewPtr)}get logicalLineInfo(){return this.guard(),this.lib.textBufferViewGetLogicalLineInfo(this.viewPtr)}getSelectedText(){this.guard();let A=this.textBuffer.byteSize;if(A===0)return"";let q=this.lib.textBufferViewGetSelectedTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getPlainText(){this.guard();let A=this.textBuffer.byteSize;if(A===0)return"";let q=this.lib.textBufferViewGetPlainTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}setTabIndicator(A){this.guard();let q=typeof A==="string"?A.codePointAt(0)??0:A;this.lib.textBufferViewSetTabIndicator(this.viewPtr,q)}setTabIndicatorColor(A){this.guard(),this.lib.textBufferViewSetTabIndicatorColor(this.viewPtr,A)}setTruncate(A){this.guard(),this.lib.textBufferViewSetTruncate(this.viewPtr,A)}measureForDimensions(A,q){return this.guard(),this.lib.textBufferViewMeasureForDimensions(this.viewPtr,A,q)}getVirtualLineCount(){return this.guard(),this.lib.textBufferViewGetVirtualLineCount(this.viewPtr)}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyTextBufferView(this.viewPtr)}}class eE{lib;viewPtr;editBuffer;_destroyed=!1;_extmarksController;_textBufferViewPtr;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.editBuffer=g}static create(A,q,g){let E=PA(),a=E.createEditorView(A.ptr,q,g);return new eE(E,a,A)}guard(){if(this._destroyed)throw Error("EditorView is destroyed")}get ptr(){return this.guard(),this.viewPtr}setViewportSize(A,q){this.guard(),this.lib.editorViewSetViewportSize(this.viewPtr,A,q)}setViewport(A,q,g,E,a=!0){this.guard(),this.lib.editorViewSetViewport(this.viewPtr,A,q,g,E,a)}getViewport(){return this.guard(),this.lib.editorViewGetViewport(this.viewPtr)}setScrollMargin(A){this.guard(),this.lib.editorViewSetScrollMargin(this.viewPtr,A)}setWrapMode(A){this.guard(),this.lib.editorViewSetWrapMode(this.viewPtr,A)}getVirtualLineCount(){return this.guard(),this.lib.editorViewGetVirtualLineCount(this.viewPtr)}getTotalVirtualLineCount(){return this.guard(),this.lib.editorViewGetTotalVirtualLineCount(this.viewPtr)}setSelection(A,q,g,E){this.guard(),this.lib.editorViewSetSelection(this.viewPtr,A,q,g||null,E||null)}updateSelection(A,q,g){this.guard(),this.lib.editorViewUpdateSelection(this.viewPtr,A,q||null,g||null)}resetSelection(){this.guard(),this.lib.editorViewResetSelection(this.viewPtr)}getSelection(){return this.guard(),this.lib.editorViewGetSelection(this.viewPtr)}hasSelection(){return this.guard(),this.getSelection()!==null}setLocalSelection(A,q,g,E,a,F,K,Z){return this.guard(),this.lib.editorViewSetLocalSelection(this.viewPtr,A,q,g,E,a||null,F||null,K??!1,Z??!1)}updateLocalSelection(A,q,g,E,a,F,K,Z){return this.guard(),this.lib.editorViewUpdateLocalSelection(this.viewPtr,A,q,g,E,a||null,F||null,K??!1,Z??!1)}resetLocalSelection(){this.guard(),this.lib.editorViewResetLocalSelection(this.viewPtr)}getSelectedText(){this.guard();let A=1048576,q=this.lib.editorViewGetSelectedTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getCursor(){return this.guard(),this.lib.editorViewGetCursor(this.viewPtr)}getText(){this.guard();let A=1048576,q=this.lib.editorViewGetText(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getVisualCursor(){return this.guard(),this.lib.editorViewGetVisualCursor(this.viewPtr)}moveUpVisual(){this.guard(),this.lib.editorViewMoveUpVisual(this.viewPtr)}moveDownVisual(){this.guard(),this.lib.editorViewMoveDownVisual(this.viewPtr)}deleteSelectedText(){this.guard(),this.lib.editorViewDeleteSelectedText(this.viewPtr)}setCursorByOffset(A){this.guard(),this.lib.editorViewSetCursorByOffset(this.viewPtr,A)}getNextWordBoundary(){return this.guard(),this.lib.editorViewGetNextWordBoundary(this.viewPtr)}getPrevWordBoundary(){return this.guard(),this.lib.editorViewGetPrevWordBoundary(this.viewPtr)}getEOL(){return this.guard(),this.lib.editorViewGetEOL(this.viewPtr)}getVisualSOL(){return this.guard(),this.lib.editorViewGetVisualSOL(this.viewPtr)}getVisualEOL(){return this.guard(),this.lib.editorViewGetVisualEOL(this.viewPtr)}getLineInfo(){return this.guard(),this.lib.editorViewGetLineInfo(this.viewPtr)}getLogicalLineInfo(){return this.guard(),this.lib.editorViewGetLogicalLineInfo(this.viewPtr)}get extmarks(){if(!this._extmarksController)this._extmarksController=_K(this.editBuffer,this);return this._extmarksController}setPlaceholderStyledText(A){this.guard(),this.lib.editorViewSetPlaceholderStyledText(this.viewPtr,A)}setTabIndicator(A){this.guard();let q=typeof A==="string"?A.codePointAt(0)??0:A;this.lib.editorViewSetTabIndicator(this.viewPtr,q)}setTabIndicatorColor(A){this.guard(),this.lib.editorViewSetTabIndicatorColor(this.viewPtr,A)}measureForDimensions(A,q){if(this.guard(),!this._textBufferViewPtr)this._textBufferViewPtr=this.lib.editorViewGetTextBufferView(this.viewPtr);return this.lib.textBufferViewMeasureForDimensions(this._textBufferViewPtr,A,q)}destroy(){if(this._destroyed)return;if(this._extmarksController)this._extmarksController.destroy(),this._extmarksController=void 0;this._destroyed=!0,this.lib.destroyEditorView(this.viewPtr)}}function u_(A){let q={};for(let g of A){let E={};if(g.style.foreground)E.fg=R(g.style.foreground);if(g.style.background)E.bg=R(g.style.background);if(g.style.bold!==void 0)E.bold=g.style.bold;if(g.style.italic!==void 0)E.italic=g.style.italic;if(g.style.underline!==void 0)E.underline=g.style.underline;if(g.style.dim!==void 0)E.dim=g.style.dim;for(let a of g.scope)q[a]=E}return q}class qg{lib;stylePtr;_destroyed=!1;nameCache=new Map;styleDefs=new Map;mergedCache=new Map;constructor(A,q){this.lib=A,this.stylePtr=q}static create(){let A=PA(),q=A.createSyntaxStyle();return new qg(A,q)}static fromTheme(A){let q=qg.create(),g=u_(A);for(let[E,a]of Object.entries(g))q.registerStyle(E,a);return q}static fromStyles(A){let q=qg.create();for(let[g,E]of Object.entries(A))q.registerStyle(g,E);return q}guard(){if(this._destroyed)throw Error("NativeSyntaxStyle is destroyed")}registerStyle(A,q){this.guard();let g=Tg({bold:q.bold,italic:q.italic,underline:q.underline,dim:q.dim}),E=this.lib.syntaxStyleRegister(this.stylePtr,A,q.fg||null,q.bg||null,g);return this.nameCache.set(A,E),this.styleDefs.set(A,q),E}resolveStyleId(A){this.guard();let q=this.nameCache.get(A);if(q!==void 0)return q;let g=this.lib.syntaxStyleResolveByName(this.stylePtr,A);if(g!==null)this.nameCache.set(A,g);return g}getStyleId(A){this.guard();let q=this.resolveStyleId(A);if(q!==null)return q;if(A.includes(".")){let g=A.split(".")[0];return this.resolveStyleId(g)}return null}get ptr(){return this.guard(),this.stylePtr}getStyleCount(){return this.guard(),this.lib.syntaxStyleGetStyleCount(this.stylePtr)}clearNameCache(){this.nameCache.clear()}getStyle(A){if(this.guard(),Object.prototype.hasOwnProperty.call(this.styleDefs,A))return;let q=this.styleDefs.get(A);if(q)return q;if(A.includes(".")){let g=A.split(".")[0];if(Object.prototype.hasOwnProperty.call(this.styleDefs,g))return;return this.styleDefs.get(g)}return}mergeStyles(...A){this.guard();let q=A.join(":"),g=this.mergedCache.get(q);if(g)return g;let E={};for(let K of A){let Z=this.getStyle(K);if(!Z)continue;if(Z.fg)E.fg=Z.fg;if(Z.bg)E.bg=Z.bg;if(Z.bold!==void 0)E.bold=Z.bold;if(Z.italic!==void 0)E.italic=Z.italic;if(Z.underline!==void 0)E.underline=Z.underline;if(Z.dim!==void 0)E.dim=Z.dim}let a=Tg({bold:E.bold,italic:E.italic,underline:E.underline,dim:E.dim}),F={fg:E.fg,bg:E.bg,attributes:a};return this.mergedCache.set(q,F),F}clearCache(){this.guard(),this.mergedCache.clear()}getCacheSize(){return this.guard(),this.mergedCache.size}getAllStyles(){return this.guard(),new Map(this.styleDefs)}getRegisteredNames(){return this.guard(),Array.from(this.styleDefs.keys())}destroy(){if(this._destroyed)return;this._destroyed=!0,this.nameCache.clear(),this.styleDefs.clear(),this.mergedCache.clear(),this.lib.destroySyntaxStyle(this.stylePtr)}}class fK{timelines=new Set;renderer=null;frameCallback=null;isLive=!1;defaults={frameRate:60};attach(A){if(this.renderer)this.detach();this.renderer=A,this.frameCallback=async(q)=>{this.update(q)},A.setFrameCallback(this.frameCallback)}detach(){if(this.renderer&&this.frameCallback){if(this.renderer.removeFrameCallback(this.frameCallback),this.isLive)this.renderer.dropLive(),this.isLive=!1}this.renderer=null,this.frameCallback=null}updateLiveState(){if(!this.renderer)return;let A=Array.from(this.timelines).some((q)=>!q.synced&&q.isPlaying&&!q.isComplete);if(A&&!this.isLive)this.renderer.requestLive(),this.isLive=!0;else if(!A&&this.isLive)this.renderer.dropLive(),this.isLive=!1}onTimelineStateChange=(A)=>{this.updateLiveState()};register(A){if(!this.timelines.has(A))this.timelines.add(A),A.addStateChangeListener(this.onTimelineStateChange),this.updateLiveState()}unregister(A){if(this.timelines.has(A))this.timelines.delete(A),A.removeStateChangeListener(this.onTimelineStateChange),this.updateLiveState()}clear(){for(let A of this.timelines)A.removeStateChangeListener(this.onTimelineStateChange);this.timelines.clear(),this.updateLiveState()}update(A){for(let q of this.timelines)if(!q.synced)q.update(A)}}function l_(A){if(typeof A==="bigint"){if(A>BigInt(Number.MAX_SAFE_INTEGER))throw Error("Pointer exceeds safe integer range");return Number(A)}return A}function CK(A){return typeof A==="bigint"?Number(A):A}class nE{static create(A){let q=PA(),g=q.createNativeSpanFeed(A),E=new nE(g);q.registerNativeSpanFeedStream(g,E.eventHandler);let a=q.attachNativeSpanFeed(g);if(a!==0)throw q.unregisterNativeSpanFeedStream(g),q.destroyNativeSpanFeed(g),Error(`Failed to attach stream: ${a}`);return E}static attach(A,q){let g=PA(),E=l_(A),a=new nE(E);g.registerNativeSpanFeedStream(E,a.eventHandler);let F=g.attachNativeSpanFeed(E);if(F!==0)throw g.unregisterNativeSpanFeedStream(E),Error(`Failed to attach stream: ${F}`);return a}streamPtr;lib=PA();eventHandler;chunkMap=new Map;chunkSizes=new Map;dataHandlers=new Set;errorHandlers=new Set;drainBuffer=null;stateBuffer=null;closed=!1;destroyed=!1;draining=!1;pendingDataAvailable=!1;pendingClose=!1;closing=!1;pendingAsyncHandlers=0;inCallback=!1;closeQueued=!1;constructor(A){this.streamPtr=A,this.eventHandler=(q,g,E)=>{this.handleEvent(q,g,E)},this.ensureDrainBuffer()}ensureDrainBuffer(){if(this.drainBuffer)return;let A=256;this.drainBuffer=new Uint8Array(A*M6.size)}onData(A){if(this.dataHandlers.add(A),this.pendingDataAvailable)this.pendingDataAvailable=!1,this.drainAll();return()=>this.dataHandlers.delete(A)}onError(A){return this.errorHandlers.add(A),()=>this.errorHandlers.delete(A)}close(){if(this.destroyed)return;if(this.inCallback||this.draining||this.pendingAsyncHandlers>0){if(this.pendingClose=!0,!this.closeQueued)this.closeQueued=!0,queueMicrotask(()=>{this.closeQueued=!1,this.processPendingClose()});return}this.performClose()}processPendingClose(){if(!this.pendingClose||this.destroyed)return;if(this.inCallback||this.draining||this.pendingAsyncHandlers>0)return;this.pendingClose=!1,this.performClose()}performClose(){if(this.closing)return;if(this.closing=!0,!this.closed){if(this.lib.streamClose(this.streamPtr)!==0){this.closing=!1;return}this.closed=!0}this.finalizeDestroy()}finalizeDestroy(){if(this.destroyed)return;this.lib.unregisterNativeSpanFeedStream(this.streamPtr),this.lib.destroyNativeSpanFeed(this.streamPtr),this.destroyed=!0,this.chunkMap.clear(),this.chunkSizes.clear(),this.stateBuffer=null,this.drainBuffer=null,this.dataHandlers.clear(),this.errorHandlers.clear(),this.pendingDataAvailable=!1}handleEvent(A,q,g){this.inCallback=!0;try{switch(A){case 8:{let E=CK(g);if(E>0&&q){let a=lE(q,0,E);this.stateBuffer=new Uint8Array(a)}break}case 7:{if(this.closing)break;if(this.dataHandlers.size===0){this.pendingDataAvailable=!0;break}this.drainAll();break}case 2:{let E=CK(g);if(E>0&&q){if(!this.chunkMap.has(q)){let a=lE(q,0,E);this.chunkMap.set(q,a)}this.chunkSizes.set(q,E)}break}case 6:{let E=q;for(let a of this.errorHandlers)a(E);break}case 5:{this.closed=!0;break}default:break}}finally{this.inCallback=!1}}decrementRefcount(A){if(this.stateBuffer&&A<this.stateBuffer.length){let q=this.stateBuffer[A];this.stateBuffer[A]=q>0?q-1:0}}drainOnce(){if(!this.drainBuffer||this.draining||this.pendingClose)return 0;let A=Math.floor(this.drainBuffer.byteLength/M6.size);if(A===0)return 0;let q=this.lib.streamDrainSpans(this.streamPtr,this.drainBuffer,A);if(q===0)return 0;this.draining=!0;let g=M6.unpackList(this.drainBuffer.buffer,q),E=null;try{for(let a of g){if(a.len===0)continue;let F=this.chunkMap.get(a.chunkPtr);if(!F){let U=this.chunkSizes.get(a.chunkPtr);if(!U)continue;F=lE(a.chunkPtr,0,U),this.chunkMap.set(a.chunkPtr,F)}if(a.offset+a.len>F.byteLength)continue;let K=new Uint8Array(F,a.offset,a.len),Z=null;for(let U of this.dataHandlers)try{let O=U(K);if(O&&typeof O.then==="function")Z??=[],Z.push(O)}catch(O){E??=O}let j=this.pendingClose;if(Z){let U=a.chunkIndex;this.pendingAsyncHandlers+=1,Promise.allSettled(Z).then(()=>{this.decrementRefcount(U),this.pendingAsyncHandlers-=1,this.processPendingClose()})}else this.decrementRefcount(a.chunkIndex);if(j)break}}finally{this.draining=!1}if(E)throw E;return q}drainAll(){let A=this.drainOnce();while(A>0)A=this.drainOnce()}}function Ag(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return eq(A)}function L6(A){return!!A?.[uK]}function kK(A){return A.chunks.map((q)=>{let g=new zg({fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});return g.add(q.text),g})}function Aa(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function iK(A){wq=A}function r(A,q=""){let g=typeof A=="string"?A:A.source,E={replace:(a,F)=>{let K=typeof F=="string"?F:F.source;return K=K.replace(JA.caret,"$1"),g=g.replace(a,K),E},getRegex:()=>new RegExp(g,q)};return E}function Gq(A,q){if(q){if(JA.escapeTest.test(A))return A.replace(JA.escapeReplace,mK)}else if(JA.escapeTestNoEncode.test(A))return A.replace(JA.escapeReplaceNoEncode,mK);return A}function bK(A){try{A=encodeURI(A).replace(JA.percentDecode,"%")}catch{return null}return A}function cK(A,q){let g=A.replace(JA.findPipe,(F,K,Z)=>{let j=!1,U=K;for(;--U>=0&&Z[U]==="\\";)j=!j;return j?"|":" |"}),E=g.split(JA.splitPipe),a=0;if(E[0].trim()||E.shift(),E.length>0&&!E.at(-1)?.trim()&&E.pop(),q)if(E.length>q)E.splice(q);else for(;E.length<q;)E.push("");for(;a<E.length;a++)E[a]=E[a].trim().replace(JA.slashPipe,"|");return E}function Wg(A,q,g){let E=A.length;if(E===0)return"";let a=0;for(;a<E;){let F=A.charAt(E-a-1);if(F===q&&!g)a++;else if(F!==q&&g)a++;else break}return A.slice(0,E-a)}function SO(A,q){if(A.indexOf(q[1])===-1)return-1;let g=0;for(let E=0;E<A.length;E++)if(A[E]==="\\")E++;else if(A[E]===q[0])g++;else if(A[E]===q[1]&&(g--,g<0))return E;return g>0?-2:-1}function vK(A,q,g,E,a){let F=q.href,K=q.title||null,Z=A[1].replace(a.other.outputLinkReplace,"$1");E.state.inLink=!0;let j={type:A[0].charAt(0)==="!"?"image":"link",raw:g,href:F,title:K,text:Z,tokens:E.inlineTokens(Z)};return E.state.inLink=!1,j}function zO(A,q,g){let E=A.match(g.other.indentCodeCompensation);if(E===null)return q;let a=E[1];return q.split(`
34
+ `)})}).bind(this);warningHandler=((A)=>{console.warn(JSON.stringify(A.message,null,2))}).bind(this);get controlState(){return this._controlState}constructor(A,q,g,E,a,F,K={}){super();if(pF.addRenderer(this),this.stdin=g,this.stdout=E,this.realStdoutWrite=E.write,this.lib=A,this._terminalWidth=E.columns??a,this._terminalHeight=E.rows??F,this.width=a,this.height=F,this._useThread=K.useThread===void 0?!1:K.useThread,this._splitHeight=K.experimental_splitHeight||0,this._splitHeight>0)mA.on("write",this.captureCallback),this.renderOffset=F-this._splitHeight,this.height=this._splitHeight,A.setRenderOffset(q,this.renderOffset);this.rendererPtr=q;let Z=K.forwardEnvKeys??[...v_];for(let M of Z){let L=process.env[M];if(L===void 0)continue;this.lib.setTerminalEnvVar(this.rendererPtr,M,L)}if(this.exitOnCtrlC=K.exitOnCtrlC===void 0?!0:K.exitOnCtrlC,this.exitSignals=K.exitSignals||["SIGINT","SIGTERM","SIGQUIT","SIGABRT","SIGHUP","SIGBREAK","SIGPIPE","SIGBUS","SIGFPE"],this.clipboard=new VK(this.lib,this.rendererPtr),this.resizeDebounceDelay=K.debounceDelay||100,this.targetFps=K.targetFps||30,this.maxFps=K.maxFps||60,this.targetFrameTime=1000/this.targetFps,this.minTargetFrameTime=1000/this.maxFps,this.memorySnapshotInterval=K.memorySnapshotInterval??0,this.gatherStats=K.gatherStats||!1,this.maxStatSamples=K.maxStatSamples||300,this.enableMouseMovement=K.enableMouseMovement??!0,this._useMouse=K.useMouse??!0,this.autoFocus=K.autoFocus??!0,this._useAlternateScreen=K.useAlternateScreen??EA.OTUI_USE_ALTERNATE_SCREEN,this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this.currentRenderBuffer=this.lib.getCurrentBuffer(this.rendererPtr),this.postProcessFns=K.postProcessFns||[],this.prependedInputHandlers=K.prependInputHandlers||[],this.root=new dE(this),this.memorySnapshotInterval>0)this.startMemorySnapshotTimer();if(EA.OTUI_OVERRIDE_STDOUT)this.stdout.write=this.interceptStdoutWrite.bind(this);process.on("SIGWINCH",this.sigwinchHandler),process.on("warning",this.warningHandler),process.on("uncaughtException",this.handleError),process.on("unhandledRejection",this.handleError),process.on("beforeExit",this.exitHandler);let U=(K.useKittyKeyboard??{})!==null;this._keyHandler=new zE,this._keyHandler.on("keypress",(M)=>{if(this.exitOnCtrlC&&M.name==="c"&&M.ctrl){process.nextTick(()=>{this.destroy()});return}}),this.addExitListeners();let O=K.stdinParserMaxBufferBytes??t_;if(this.stdinParser=new mE({timeoutMs:10,maxPendingBytes:O,armTimeouts:!0,onTimeoutFlush:()=>{this.drainStdinParser()},useKittyKeyboard:U,clock:K.stdinParserClock}),this._console=new tE(this,K.consoleOptions),this.useConsole=K.useConsole??!0,this._openConsoleOnError=K.openConsoleOnError??!0,this._onDestroy=K.onDestroy,global.requestAnimationFrame=(M)=>{let L=H6.animationFrameId++;return this.animationRequest.set(L,M),this.requestLive(),L},global.cancelAnimationFrame=(M)=>{this.animationRequest.delete(M)},!global.window)global.window={};if(global.window.requestAnimationFrame=requestAnimationFrame,EA.OTUI_NO_NATIVE_RENDER)this.renderNative=()=>{if(this._splitHeight>0)this.flushStdoutCache(this._splitHeight)};this.setupInput()}addExitListeners(){if(this._exitListenersAdded||this.exitSignals.length===0)return;this.exitSignals.forEach((A)=>{process.addListener(A,this.exitHandler)}),this._exitListenersAdded=!0}removeExitListeners(){if(!this._exitListenersAdded||this.exitSignals.length===0)return;this.exitSignals.forEach((A)=>{process.removeListener(A,this.exitHandler)}),this._exitListenersAdded=!1}get isDestroyed(){return this._isDestroyed}registerLifecyclePass(A){this.lifecyclePasses.add(A)}unregisterLifecyclePass(A){this.lifecyclePasses.delete(A)}getLifecyclePasses(){return this.lifecyclePasses}get currentFocusedRenderable(){return this._currentFocusedRenderable}focusRenderable(A){if(this._currentFocusedRenderable===A)return;if(this._currentFocusedRenderable)this._currentFocusedRenderable.blur();this._currentFocusedRenderable=A}setCapturedRenderable(A){if(this.capturedRenderable===A)return;this.capturedRenderable=A}addToHitGrid(A,q,g,E,a){if(a!==this.capturedRenderable?.num)this.lib.addToHitGrid(this.rendererPtr,A,q,g,E,a)}pushHitGridScissorRect(A,q,g,E){this.lib.hitGridPushScissorRect(this.rendererPtr,A,q,g,E)}popHitGridScissorRect(){this.lib.hitGridPopScissorRect(this.rendererPtr)}clearHitGridScissorRects(){this.lib.hitGridClearScissorRects(this.rendererPtr)}get widthMethod(){return this.capabilities?.unicode==="wcwidth"?"wcwidth":"unicode"}writeOut(A,q,g){if(this.rendererPtr&&this._useThread){let E=typeof A==="string"?A:A?.toString()??"";if(this.lib.writeOut(this.rendererPtr,E),typeof g==="function")process.nextTick(g);return!0}return this.realStdoutWrite.call(this.stdout,A,q,g)}requestRender(){if(this._controlState==="explicit_suspended")return;if(this._isRunning)return;if(this.rendering){this.immediateRerenderRequested=!0;return}if(!this.updateScheduled&&!this.renderTimeout){this.updateScheduled=!0;let q=Date.now()-this.lastTime,g=Math.max(this.minTargetFrameTime-q,0);if(g===0){process.nextTick(()=>this.activateFrame());return}setTimeout(()=>this.activateFrame(),g)}}async activateFrame(){await this.loop(),this.updateScheduled=!1,this.resolveIdleIfNeeded()}get useConsole(){return this._useConsole}set useConsole(A){if(this._useConsole=A,A)this.console.activate();else this.console.deactivate()}get isRunning(){return this._isRunning}isIdleNow(){return!this._isRunning&&!this.rendering&&!this.renderTimeout&&!this.updateScheduled&&!this.immediateRerenderRequested}resolveIdleIfNeeded(){if(!this.isIdleNow())return;let A=this.idleResolvers.splice(0);for(let q of A)q()}idle(){if(this._isDestroyed)return Promise.resolve();if(this.isIdleNow())return Promise.resolve();return new Promise((A)=>{this.idleResolvers.push(A)})}get resolution(){return this._resolution}get console(){return this._console}get keyInput(){return this._keyHandler}get _internalKeyInput(){return this._keyHandler}get terminalWidth(){return this._terminalWidth}get terminalHeight(){return this._terminalHeight}get useThread(){return this._useThread}get useMouse(){return this._useMouse}set useMouse(A){if(this._useMouse===A)return;if(this._useMouse=A,A)this.enableMouse();else this.disableMouse()}get experimental_splitHeight(){return this._splitHeight}get liveRequestCount(){return this.liveRequestCounter}get currentControlState(){return this._controlState}get capabilities(){return this._capabilities}get themeMode(){return this._themeMode}getDebugInputs(){return[...this._debugInputs]}get useKittyKeyboard(){return this.lib.getKittyKeyboardFlags(this.rendererPtr)>0}set useKittyKeyboard(A){let q=A?RK|NK:0;this.lib.setKittyKeyboardFlags(this.rendererPtr,q)}set experimental_splitHeight(A){if(A<0)A=0;let q=this._splitHeight;if(A>0){if(this._splitHeight=A,this.renderOffset=this._terminalHeight-this._splitHeight,this.height=this._splitHeight,q===0){this.useConsole=!1,mA.on("write",this.captureCallback);let g=this._terminalHeight-this._splitHeight,E=gq.scrollDown(g);this.writeOut(E)}else if(q>this._splitHeight){let g=q-this._splitHeight,E=gq.scrollDown(g);this.writeOut(E)}else if(q<this._splitHeight){let g=this._splitHeight-q,E=gq.scrollUp(g);this.writeOut(E)}}else{if(q>0)this.flushStdoutCache(this._terminalHeight,!0),mA.off("write",this.captureCallback),this.useConsole=!0;this._splitHeight=0,this.renderOffset=0,this.height=this._terminalHeight}this.width=this._terminalWidth,this.lib.setRenderOffset(this.rendererPtr,this.renderOffset),this.lib.resizeRenderer(this.rendererPtr,this.width,this.height),this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this._console.resize(this.width,this.height),this.root.resize(this.width,this.height),this.emit("resize",this.width,this.height),this.requestRender()}interceptStdoutWrite=(A,q,g)=>{let E=A.toString();if(mA.write("stdout",E),this._splitHeight>0)this.requestRender();if(typeof g==="function")process.nextTick(g);return!0};disableStdoutInterception(){this.stdout.write=this.realStdoutWrite}flushStdoutCache(A,q=!1){if(mA.size===0&&!q)return!1;let g=mA.claimOutput(),E=this._terminalHeight-this._splitHeight,a=gq.moveCursorAndClear(E,1),F=this._terminalHeight-this._splitHeight,K=gq.moveCursor(F,1),Z="";if(A>0){let j=this.backgroundColor.toInts(),U=" ".repeat(this.width)+`
35
+ `.repeat(A);if(j[3]===0)Z=U;else Z=gq.setRgbBackground(j[0],j[1],j[2])+U+gq.resetBackground}return this.writeOut(a+K+g+Z),!0}enableMouse(){this._useMouse=!0,this.lib.enableMouse(this.rendererPtr,this.enableMouseMovement)}disableMouse(){this._useMouse=!1,this.setCapturedRenderable(void 0),this.stdinParser?.resetMouseState(),this.lib.disableMouse(this.rendererPtr)}enableKittyKeyboard(A=3){this.lib.enableKittyKeyboard(this.rendererPtr,A)}disableKittyKeyboard(){this.lib.disableKittyKeyboard(this.rendererPtr)}set useThread(A){this._useThread=A,this.lib.setUseThread(this.rendererPtr,A)}async setupTerminal(){if(this._terminalIsSetup)return;if(this._terminalIsSetup=!0,this.lib.setupTerminal(this.rendererPtr,this._useAlternateScreen),this._capabilities=this.lib.getTerminalCapabilities(this.rendererPtr),this.debugOverlay.enabled){if(this.lib.setDebugOverlay(this.rendererPtr,!0,this.debugOverlay.corner),!this.memorySnapshotInterval)this.memorySnapshotInterval=3000,this.startMemorySnapshotTimer(),this.automaticMemorySnapshot=!0}if(this.capabilityTimeoutId=setTimeout(()=>{this.capabilityTimeoutId=null,this.removeInputHandler(this.capabilityHandler)},5000),this._useMouse)this.enableMouse();this.queryPixelResolution()}stdinListener=((A)=>{let q=Buffer.isBuffer(A)?A:Buffer.from(A);if(!this.stdinParser)return;try{this.stdinParser.push(q),this.drainStdinParser()}catch(g){this.handleStdinParserFailure(g)}}).bind(this);addInputHandler(A){this.sequenceHandlers.push(A)}prependInputHandler(A){this.sequenceHandlers.unshift(A)}removeInputHandler(A){this.sequenceHandlers=this.sequenceHandlers.filter((q)=>q!==A)}subscribeOsc(A){return this.oscSubscribers.add(A),()=>{this.oscSubscribers.delete(A)}}capabilityHandler=((A)=>{if(m_(A))return this.lib.processCapabilityResponse(this.rendererPtr,A),this._capabilities=this.lib.getTerminalCapabilities(this.rendererPtr),this.emit("capabilities",this._capabilities),!0;return!1}).bind(this);focusHandler=((A)=>{if(A==="\x1B[I"){if(this.shouldRestoreModesOnNextFocus)this.lib.restoreTerminalModes(this.rendererPtr),this.shouldRestoreModesOnNextFocus=!1;return this.emit("focus"),!0}if(A==="\x1B[O")return this.shouldRestoreModesOnNextFocus=!0,this.emit("blur"),!0;return!1}).bind(this);themeModeHandler=((A)=>{if(A==="\x1B[?997;1n"){if(this._themeMode!=="dark")this._themeMode="dark",this.emit("theme_mode","dark");return!0}if(A==="\x1B[?997;2n"){if(this._themeMode!=="light")this._themeMode="light",this.emit("theme_mode","light");return!0}return!1}).bind(this);dispatchSequenceHandlers(A){if(this._debugModeEnabled)this._debugInputs.push({timestamp:new Date().toISOString(),sequence:A});for(let q of this.sequenceHandlers)if(q(A))return!0;return!1}drainStdinParser(){if(!this.stdinParser)return;this.stdinParser.drain((A)=>{this.handleStdinEvent(A)})}handleStdinEvent(A){switch(A.type){case"key":if(this.dispatchSequenceHandlers(A.raw))return;this._keyHandler.processParsedKey(A.key);return;case"mouse":if(this._useMouse&&this.processSingleMouseEvent(A.event))return;this.dispatchSequenceHandlers(A.raw);return;case"paste":this._keyHandler.processPaste(A.text);return;case"response":if(A.protocol==="osc")for(let q of this.oscSubscribers)q(A.sequence);this.dispatchSequenceHandlers(A.sequence);return}}handleStdinParserFailure(A){if(!this.hasLoggedStdinParserError)this.hasLoggedStdinParserError=!0,console.error("[stdin-parser-error] parser failure, resetting parser",A);try{this.stdinParser?.reset()}catch(q){console.error("stdin parser reset failed after parser error",q)}}setupInput(){for(let A of this.prependedInputHandlers)this.addInputHandler(A);if(this.addInputHandler((A)=>{if(b_(A)&&this.waitingForPixelResolution){let q=c_(A);if(q)this._resolution=q,this.waitingForPixelResolution=!1;return!0}return!1}),this.addInputHandler(this.capabilityHandler),this.addInputHandler(this.focusHandler),this.addInputHandler(this.themeModeHandler),this.stdin.setRawMode)this.stdin.setRawMode(!0);this.stdin.resume(),this.stdin.on("data",this.stdinListener)}dispatchMouseEvent(A,q){let g=new YA(A,q);if(A.processMouseEvent(g),this.autoFocus&&g.type==="down"&&g.button===0&&!g.defaultPrevented){let E=A;while(E){if(E.focusable){E.focus();break}E=E.parent}}return g}processSingleMouseEvent(A){if(this._splitHeight>0){if(A.y<this.renderOffset)return!1;A.y-=this.renderOffset}if(this._latestPointer.x=A.x,this._latestPointer.y=A.y,this._hasPointer=!0,this._lastPointerModifiers=A.modifiers,this._console.visible){let F=this._console.bounds;if(A.x>=F.x&&A.x<F.x+F.width&&A.y>=F.y&&A.y<F.y+F.height){let K=new YA(null,A);if(this._console.handleMouse(K))return!0}}if(A.type==="scroll"){let F=this.hitTest(A.x,A.y),K=OA.renderablesByNumber.get(F),Z=this._currentFocusedRenderable&&!this._currentFocusedRenderable.isDestroyed&&this._currentFocusedRenderable.focused?this._currentFocusedRenderable:null,j=K??Z;if(j){let U=new YA(j,A);j.processMouseEvent(U)}return!0}let q=this.hitTest(A.x,A.y),g=q===this.lastOverRenderableNum;this.lastOverRenderableNum=q;let E=OA.renderablesByNumber.get(q);if(A.type==="down"&&A.button===0&&!this.currentSelection?.isDragging&&!A.modifiers.ctrl){if(Boolean(E&&E.selectable&&!E.isDestroyed&&E.shouldStartSelection(A.x,A.y))&&E)return this.startSelection(E,A.x,A.y),this.dispatchMouseEvent(E,A),!0}if(A.type==="drag"&&this.currentSelection?.isDragging){if(this.updateSelection(E,A.x,A.y),E){let F=new YA(E,{...A,isDragging:!0});E.processMouseEvent(F)}return!0}if(A.type==="up"&&this.currentSelection?.isDragging){if(E){let F=new YA(E,{...A,isDragging:!0});E.processMouseEvent(F)}return this.finishSelection(),!0}if(A.type==="down"&&A.button===0&&this.currentSelection){if(A.modifiers.ctrl)return this.currentSelection.isDragging=!0,this.updateSelection(E,A.x,A.y),!0}if(!g&&(A.type==="drag"||A.type==="move")){if(this.lastOverRenderable&&this.lastOverRenderable!==this.capturedRenderable&&!this.lastOverRenderable.isDestroyed){let F=new YA(this.lastOverRenderable,{...A,type:"out"});this.lastOverRenderable.processMouseEvent(F)}if(this.lastOverRenderable=E,E){let F=new YA(E,{...A,type:"over",source:this.capturedRenderable});E.processMouseEvent(F)}}if(this.capturedRenderable&&A.type!=="up"){let F=new YA(this.capturedRenderable,A);return this.capturedRenderable.processMouseEvent(F),!0}if(this.capturedRenderable&&A.type==="up"){let F=new YA(this.capturedRenderable,{...A,type:"drag-end"});if(this.capturedRenderable.processMouseEvent(F),this.capturedRenderable.processMouseEvent(new YA(this.capturedRenderable,A)),E){let K=new YA(E,{...A,type:"drop",source:this.capturedRenderable});E.processMouseEvent(K)}this.lastOverRenderable=this.capturedRenderable,this.lastOverRenderableNum=this.capturedRenderable.num,this.setCapturedRenderable(void 0),this.requestRender()}let a;if(E){if(A.type==="drag"&&A.button===0)this.setCapturedRenderable(E);else this.setCapturedRenderable(void 0);a=this.dispatchMouseEvent(E,A)}else this.setCapturedRenderable(void 0),this.lastOverRenderable=void 0;if(!a?.defaultPrevented&&A.type==="down"&&this.currentSelection)this.clearSelection();return!0}recheckHoverState(){if(this._isDestroyed||!this._hasPointer)return;if(this.capturedRenderable)return;let A=this.hitTest(this._latestPointer.x,this._latestPointer.y),q=OA.renderablesByNumber.get(A),g=this.lastOverRenderable;if(g?.num===A){this.lastOverRenderableNum=A;return}let E={type:"move",button:0,x:this._latestPointer.x,y:this._latestPointer.y,modifiers:this._lastPointerModifiers};if(g&&!g.isDestroyed){let a=new YA(g,{...E,type:"out"});g.processMouseEvent(a)}if(this.lastOverRenderable=q,this.lastOverRenderableNum=A,q){let a=new YA(q,{...E,type:"over"});q.processMouseEvent(a)}}setMousePointer(A){this._currentMousePointerStyle=A,this.lib.setCursorStyleOptions(this.rendererPtr,{cursor:A})}hitTest(A,q){return this.lib.checkHit(this.rendererPtr,A,q)}takeMemorySnapshot(){if(this._isDestroyed)return;let A=process.memoryUsage();this.lastMemorySnapshot={heapUsed:A.heapUsed,heapTotal:A.heapTotal,arrayBuffers:A.arrayBuffers},this.lib.updateMemoryStats(this.rendererPtr,this.lastMemorySnapshot.heapUsed,this.lastMemorySnapshot.heapTotal,this.lastMemorySnapshot.arrayBuffers),this.emit("memory:snapshot",this.lastMemorySnapshot)}startMemorySnapshotTimer(){this.stopMemorySnapshotTimer(),this.memorySnapshotTimer=setInterval(()=>{this.takeMemorySnapshot()},this.memorySnapshotInterval)}stopMemorySnapshotTimer(){if(this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}setMemorySnapshotInterval(A){if(this.memorySnapshotInterval=A,this._isRunning&&A>0)this.startMemorySnapshotTimer();else if(A<=0&&this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}handleResize(A,q){if(this._isDestroyed)return;if(this._splitHeight>0){this.processResize(A,q);return}if(this.resizeTimeoutId!==null)clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;this.resizeTimeoutId=setTimeout(()=>{this.resizeTimeoutId=null,this.processResize(A,q)},this.resizeDebounceDelay)}queryPixelResolution(){this.waitingForPixelResolution=!0,this.lib.queryPixelResolution(this.rendererPtr)}processResize(A,q){if(A===this._terminalWidth&&q===this._terminalHeight)return;let g=this._terminalWidth;if(this._terminalWidth=A,this._terminalHeight=q,this.queryPixelResolution(),this.setCapturedRenderable(void 0),this.stdinParser?.resetMouseState(),this._splitHeight>0){if(A<g){let E=this._terminalHeight-this._splitHeight*2,a=gq.moveCursorAndClear(E,1);this.writeOut(a)}this.renderOffset=q-this._splitHeight,this.width=A,this.height=this._splitHeight,this.currentRenderBuffer.clear(this.backgroundColor),this.lib.setRenderOffset(this.rendererPtr,this.renderOffset)}else this.width=A,this.height=q;this.lib.resizeRenderer(this.rendererPtr,this.width,this.height),this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this.currentRenderBuffer=this.lib.getCurrentBuffer(this.rendererPtr),this._console.resize(this.width,this.height),this.root.resize(this.width,this.height),this.emit("resize",this.width,this.height),this.requestRender()}setBackgroundColor(A){let q=R(A);this.lib.setBackgroundColor(this.rendererPtr,q),this.backgroundColor=q,this.nextRenderBuffer.clear(q),this.requestRender()}toggleDebugOverlay(){let A=!this.debugOverlay.enabled;if(A&&!this.memorySnapshotInterval)this.memorySnapshotInterval=3000,this.startMemorySnapshotTimer(),this.automaticMemorySnapshot=!0;else if(!A&&this.automaticMemorySnapshot)this.stopMemorySnapshotTimer(),this.memorySnapshotInterval=0,this.automaticMemorySnapshot=!1;this.debugOverlay.enabled=!this.debugOverlay.enabled,this.lib.setDebugOverlay(this.rendererPtr,this.debugOverlay.enabled,this.debugOverlay.corner),this.emit("debugOverlay:toggle",this.debugOverlay.enabled),this.requestRender()}configureDebugOverlay(A){this.debugOverlay.enabled=A.enabled??this.debugOverlay.enabled,this.debugOverlay.corner=A.corner??this.debugOverlay.corner,this.lib.setDebugOverlay(this.rendererPtr,this.debugOverlay.enabled,this.debugOverlay.corner),this.requestRender()}setTerminalTitle(A){this.lib.setTerminalTitle(this.rendererPtr,A)}copyToClipboardOSC52(A,q){return this.clipboard.copyToClipboardOSC52(A,q)}clearClipboardOSC52(A){return this.clipboard.clearClipboardOSC52(A)}isOsc52Supported(){return this._capabilities?.osc52??this.clipboard.isOsc52Supported()}dumpHitGrid(){this.lib.dumpHitGrid(this.rendererPtr)}dumpBuffers(A){this.lib.dumpBuffers(this.rendererPtr,A)}dumpStdoutBuffer(A){this.lib.dumpStdoutBuffer(this.rendererPtr,A)}static setCursorPosition(A,q,g,E=!0){PA().setCursorPosition(A.rendererPtr,q,g,E)}static setCursorStyle(A,q){if(PA().setCursorStyleOptions(A.rendererPtr,q),q.cursor!==void 0)A._currentMousePointerStyle=q.cursor}static setCursorColor(A,q){PA().setCursorColor(A.rendererPtr,q)}setCursorPosition(A,q,g=!0){this.lib.setCursorPosition(this.rendererPtr,A,q,g)}setCursorStyle(A){if(this.lib.setCursorStyleOptions(this.rendererPtr,A),A.cursor!==void 0)this._currentMousePointerStyle=A.cursor}setCursorColor(A){this.lib.setCursorColor(this.rendererPtr,A)}getCursorState(){return this.lib.getCursorState(this.rendererPtr)}addPostProcessFn(A){this.postProcessFns.push(A)}removePostProcessFn(A){this.postProcessFns=this.postProcessFns.filter((q)=>q!==A)}clearPostProcessFns(){this.postProcessFns=[]}setFrameCallback(A){this.frameCallbacks.push(A)}removeFrameCallback(A){this.frameCallbacks=this.frameCallbacks.filter((q)=>q!==A)}clearFrameCallbacks(){this.frameCallbacks=[]}requestLive(){if(this.liveRequestCounter++,this._controlState==="idle"&&this.liveRequestCounter>0)this._controlState="auto_started",this.internalStart()}dropLive(){if(this.liveRequestCounter=Math.max(0,this.liveRequestCounter-1),this._controlState==="auto_started"&&this.liveRequestCounter===0)this._controlState="idle",this.internalPause()}start(){this._controlState="explicit_started",this.internalStart()}auto(){this._controlState=this._isRunning?"auto_started":"idle"}internalStart(){if(!this._isRunning&&!this._isDestroyed){if(this._isRunning=!0,this.memorySnapshotInterval>0)this.startMemorySnapshotTimer();this.startRenderLoop()}}pause(){this._controlState="explicit_paused",this.internalPause()}suspend(){if(this._previousControlState=this._controlState,this._controlState="explicit_suspended",this.internalPause(),this._suspendedMouseEnabled=this._useMouse,this.disableMouse(),this.removeExitListeners(),this.stdinParser?.reset(),this.stdin.removeListener("data",this.stdinListener),this.lib.suspendRenderer(this.rendererPtr),this.stdin.setRawMode)this.stdin.setRawMode(!1);this.stdin.pause()}resume(){if(this.stdin.setRawMode)this.stdin.setRawMode(!0);if(this.stdin.resume(),this.addExitListeners(),setImmediate(()=>{while(this.stdin.read()!==null);this.stdin.on("data",this.stdinListener)}),this.lib.resumeRenderer(this.rendererPtr),this._suspendedMouseEnabled)this.enableMouse();if(this.currentRenderBuffer.clear(this.backgroundColor),this._controlState=this._previousControlState,this._previousControlState==="auto_started"||this._previousControlState==="explicit_started")this.internalStart();else this.requestRender()}internalPause(){if(this._isRunning=!1,this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;if(!this.rendering)this.resolveIdleIfNeeded()}stop(){this._controlState="explicit_stopped",this.internalStop()}internalStop(){if(this.isRunning&&!this._isDestroyed){if(this._isRunning=!1,this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null;if(this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;if(!this.rendering)this.resolveIdleIfNeeded()}}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this._destroyPending=!0,this.rendering)return;this.finalizeDestroy()}finalizeDestroy(){if(this._destroyFinalized)return;if(this._destroyFinalized=!0,this._destroyPending=!1,process.removeListener("SIGWINCH",this.sigwinchHandler),process.removeListener("uncaughtException",this.handleError),process.removeListener("unhandledRejection",this.handleError),process.removeListener("warning",this.warningHandler),process.removeListener("beforeExit",this.exitHandler),mA.removeListener("write",this.captureCallback),this.removeExitListeners(),this.resizeTimeoutId!==null)clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;if(this.capabilityTimeoutId!==null)clearTimeout(this.capabilityTimeoutId),this.capabilityTimeoutId=null;if(this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer);if(this._paletteDetector)this._paletteDetector.cleanup(),this._paletteDetector=null;if(this._paletteDetectionPromise=null,this._cachedPalette=null,this.emit("destroy"),this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;this._isRunning=!1,this.waitingForPixelResolution=!1,this.setCapturedRenderable(void 0);try{this.root.destroyRecursively()}catch(A){console.error("Error destroying root renderable:",A instanceof Error?A.stack:String(A))}if(this.stdin.removeListener("data",this.stdinListener),this.stdin.setRawMode)this.stdin.setRawMode(!1);if(this.stdinParser?.destroy(),this.stdinParser=null,this.oscSubscribers.clear(),this._console.destroy(),this.disableStdoutInterception(),this._splitHeight>0)this.flushStdoutCache(this._splitHeight,!0);if(this.lib.destroyRenderer(this.rendererPtr),pF.removeRenderer(this),this._onDestroy)try{this._onDestroy()}catch(A){console.error("Error in onDestroy callback:",A instanceof Error?A.stack:String(A))}this.resolveIdleIfNeeded()}startRenderLoop(){if(!this._isRunning)return;this.lastTime=Date.now(),this.frameCount=0,this.lastFpsTime=this.lastTime,this.currentFps=0,this.loop()}async loop(){if(this.rendering||this._isDestroyed)return;if(this.renderTimeout=null,this.rendering=!0,this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;try{let A=Date.now(),g=A-this.lastTime;if(this.lastTime=A,this.frameCount++,A-this.lastFpsTime>=1000)this.currentFps=this.frameCount,this.frameCount=0,this.lastFpsTime=A;this.renderStats.frameCount++,this.renderStats.fps=this.currentFps;let E=performance.now(),a=Array.from(this.animationRequest.values());this.animationRequest.clear();let F=performance.now();for(let O of a)O(g),this.dropLive();let Z=performance.now()-F,j=performance.now();for(let O of this.frameCallbacks)try{await O(g)}catch(Q){console.error("Error in frame callback:",Q)}let U=performance.now();this.renderStats.frameCallbackTime=U-j,this.root.render(this.nextRenderBuffer,g);for(let O of this.postProcessFns)O(this.nextRenderBuffer,g);if(this._console.renderToBuffer(this.nextRenderBuffer),!this._isDestroyed){if(this.renderNative(),this._useMouse&&this.lib.getHitGridDirty(this.rendererPtr))this.recheckHoverState();let O=performance.now()-E;if(this.lib.updateStats(this.rendererPtr,O,this.renderStats.fps,this.renderStats.frameCallbackTime),this.gatherStats)this.collectStatSample(O);if(this._isRunning||this.immediateRerenderRequested){let Q=this.immediateRerenderRequested?this.minTargetFrameTime:this.targetFrameTime,M=Math.max(1,Q-Math.floor(O));this.immediateRerenderRequested=!1,this.renderTimeout=setTimeout(()=>{this.renderTimeout=null,this.loop()},M)}else clearTimeout(this.renderTimeout),this.renderTimeout=null}}finally{if(this.rendering=!1,this._destroyPending)this.finalizeDestroy();this.resolveIdleIfNeeded()}}intermediateRender(){this.immediateRerenderRequested=!0,this.loop()}renderNative(){if(this.renderingNative)throw console.error("Rendering called concurrently"),Error("Rendering called concurrently");let A=!1;if(this._splitHeight>0)A=this.flushStdoutCache(this._splitHeight);this.renderingNative=!0,this.lib.render(this.rendererPtr,A),this.renderingNative=!1}collectStatSample(A){if(this.frameTimes.push(A),this.frameTimes.length>this.maxStatSamples)this.frameTimes.shift()}getStats(){let A=[...this.frameTimes],q=A.reduce((F,K)=>F+K,0),g=A.length?q/A.length:0,E=A.length?Math.min(...A):0,a=A.length?Math.max(...A):0;return{fps:this.renderStats.fps,frameCount:this.renderStats.frameCount,frameTimes:A,averageFrameTime:g,minFrameTime:E,maxFrameTime:a}}resetStats(){this.frameTimes=[],this.renderStats.frameCount=0}setGatherStats(A){if(this.gatherStats=A,!A)this.frameTimes=[]}getSelection(){return this.currentSelection}get hasSelection(){return!!this.currentSelection}getSelectionContainer(){return this.selectionContainers.length>0?this.selectionContainers[this.selectionContainers.length-1]:null}clearSelection(){if(this.currentSelection){for(let A of this.currentSelection.touchedRenderables)if(A.selectable&&!A.isDestroyed)A.onSelectionChanged(null);this.currentSelection=null}this.selectionContainers=[]}startSelection(A,q,g){if(!A.selectable)return;this.clearSelection(),this.selectionContainers.push(A.parent||this.root),this.currentSelection=new DE(A,{x:q,y:g},{x:q,y:g}),this.currentSelection.isStart=!0,this.notifySelectablesOfSelectionChange()}updateSelection(A,q,g,E){if(this.currentSelection){if(this.currentSelection.isStart=!1,this.currentSelection.focus={x:q,y:g},E?.finishDragging)this.currentSelection.isDragging=!1;if(this.selectionContainers.length>0){let a=this.selectionContainers[this.selectionContainers.length-1];if(!A||!this.isWithinContainer(A,a)){let F=a.parent||this.root;this.selectionContainers.push(F)}else if(A&&this.selectionContainers.length>1){let F=this.selectionContainers.indexOf(A);if(F===-1){let K=A.parent||this.root;F=this.selectionContainers.indexOf(K)}if(F!==-1&&F<this.selectionContainers.length-1)this.selectionContainers=this.selectionContainers.slice(0,F+1)}}this.notifySelectablesOfSelectionChange()}}requestSelectionUpdate(){if(this.currentSelection?.isDragging){let A=this._latestPointer,q=this.hitTest(A.x,A.y),g=OA.renderablesByNumber.get(q);this.updateSelection(g,A.x,A.y)}}isWithinContainer(A,q){let g=A;while(g){if(g===q)return!0;g=g.parent}return!1}finishSelection(){if(this.currentSelection)this.currentSelection.isDragging=!1,this.emit("selection",this.currentSelection),this.notifySelectablesOfSelectionChange()}notifySelectablesOfSelectionChange(){let A=[],q=[],g=this.selectionContainers.length>0?this.selectionContainers[this.selectionContainers.length-1]:this.root;if(this.currentSelection){this.walkSelectableRenderables(g,this.currentSelection.bounds,A,q);for(let E of this.currentSelection.touchedRenderables)if(!q.includes(E)&&!E.isDestroyed)E.onSelectionChanged(null);this.currentSelection.updateSelectedRenderables(A),this.currentSelection.updateTouchedRenderables(q)}}walkSelectableRenderables(A,q,g,E){let a=xK(q,A.getChildrenSortedByPrimaryAxis(),A.primaryAxis,0,0);for(let F of a){if(F.selectable){if(F.onSelectionChanged(this.currentSelection))g.push(F);E.push(F)}if(F.getChildrenCount()>0)this.walkSelectableRenderables(F,q,g,E)}}get paletteDetectionStatus(){if(this._cachedPalette)return"cached";if(this._paletteDetectionPromise)return"detecting";return"idle"}clearPaletteCache(){this._cachedPalette=null}async getPalette(A){if(this._controlState==="explicit_suspended")throw Error("Cannot detect palette while renderer is suspended");let q=A?.size??16;if(this._cachedPalette&&this._cachedPalette.palette.length!==q)this._cachedPalette=null;if(this._cachedPalette)return this._cachedPalette;if(this._paletteDetectionPromise)return this._paletteDetectionPromise;if(!this._paletteDetector){let g=this.capabilities?.terminal?.name?.toLowerCase()?.includes("tmux")&&this.capabilities?.terminal?.version?.localeCompare("3.6")<0;this._paletteDetector=OK(this.stdin,this.stdout,this.writeOut.bind(this),g,{subscribeOsc:this.subscribeOsc.bind(this)})}return this._paletteDetectionPromise=this._paletteDetector.detect(A).then((g)=>{return this._cachedPalette=g,this._paletteDetectionPromise=null,g}),this._paletteDetectionPromise}}});import{EventEmitter as u_}from"events";import{toArrayBuffer as lE}from"bun:ffi";class P6{lib;viewPtr;textBuffer;_destroyed=!1;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.textBuffer=g}static create(A){let q=PA(),g=q.createTextBufferView(A.ptr);return new P6(q,g,A)}guard(){if(this._destroyed)throw Error("TextBufferView is destroyed")}get ptr(){return this.guard(),this.viewPtr}setSelection(A,q,g,E){this.guard(),this.lib.textBufferViewSetSelection(this.viewPtr,A,q,g||null,E||null)}updateSelection(A,q,g){this.guard(),this.lib.textBufferViewUpdateSelection(this.viewPtr,A,q||null,g||null)}resetSelection(){this.guard(),this.lib.textBufferViewResetSelection(this.viewPtr)}getSelection(){return this.guard(),this.lib.textBufferViewGetSelection(this.viewPtr)}hasSelection(){return this.guard(),this.getSelection()!==null}setLocalSelection(A,q,g,E,a,F){return this.guard(),this.lib.textBufferViewSetLocalSelection(this.viewPtr,A,q,g,E,a||null,F||null)}updateLocalSelection(A,q,g,E,a,F){return this.guard(),this.lib.textBufferViewUpdateLocalSelection(this.viewPtr,A,q,g,E,a||null,F||null)}resetLocalSelection(){this.guard(),this.lib.textBufferViewResetLocalSelection(this.viewPtr)}setWrapWidth(A){this.guard(),this.lib.textBufferViewSetWrapWidth(this.viewPtr,A??0)}setWrapMode(A){this.guard(),this.lib.textBufferViewSetWrapMode(this.viewPtr,A)}setViewportSize(A,q){this.guard(),this.lib.textBufferViewSetViewportSize(this.viewPtr,A,q)}setViewport(A,q,g,E){this.guard(),this.lib.textBufferViewSetViewport(this.viewPtr,A,q,g,E)}get lineInfo(){return this.guard(),this.lib.textBufferViewGetLineInfo(this.viewPtr)}get logicalLineInfo(){return this.guard(),this.lib.textBufferViewGetLogicalLineInfo(this.viewPtr)}getSelectedText(){this.guard();let A=this.textBuffer.byteSize;if(A===0)return"";let q=this.lib.textBufferViewGetSelectedTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getPlainText(){this.guard();let A=this.textBuffer.byteSize;if(A===0)return"";let q=this.lib.textBufferViewGetPlainTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}setTabIndicator(A){this.guard();let q=typeof A==="string"?A.codePointAt(0)??0:A;this.lib.textBufferViewSetTabIndicator(this.viewPtr,q)}setTabIndicatorColor(A){this.guard(),this.lib.textBufferViewSetTabIndicatorColor(this.viewPtr,A)}setTruncate(A){this.guard(),this.lib.textBufferViewSetTruncate(this.viewPtr,A)}measureForDimensions(A,q){return this.guard(),this.lib.textBufferViewMeasureForDimensions(this.viewPtr,A,q)}getVirtualLineCount(){return this.guard(),this.lib.textBufferViewGetVirtualLineCount(this.viewPtr)}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyTextBufferView(this.viewPtr)}}class eE{lib;viewPtr;editBuffer;_destroyed=!1;_extmarksController;_textBufferViewPtr;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.editBuffer=g}static create(A,q,g){let E=PA(),a=E.createEditorView(A.ptr,q,g);return new eE(E,a,A)}guard(){if(this._destroyed)throw Error("EditorView is destroyed")}get ptr(){return this.guard(),this.viewPtr}setViewportSize(A,q){this.guard(),this.lib.editorViewSetViewportSize(this.viewPtr,A,q)}setViewport(A,q,g,E,a=!0){this.guard(),this.lib.editorViewSetViewport(this.viewPtr,A,q,g,E,a)}getViewport(){return this.guard(),this.lib.editorViewGetViewport(this.viewPtr)}setScrollMargin(A){this.guard(),this.lib.editorViewSetScrollMargin(this.viewPtr,A)}setWrapMode(A){this.guard(),this.lib.editorViewSetWrapMode(this.viewPtr,A)}getVirtualLineCount(){return this.guard(),this.lib.editorViewGetVirtualLineCount(this.viewPtr)}getTotalVirtualLineCount(){return this.guard(),this.lib.editorViewGetTotalVirtualLineCount(this.viewPtr)}setSelection(A,q,g,E){this.guard(),this.lib.editorViewSetSelection(this.viewPtr,A,q,g||null,E||null)}updateSelection(A,q,g){this.guard(),this.lib.editorViewUpdateSelection(this.viewPtr,A,q||null,g||null)}resetSelection(){this.guard(),this.lib.editorViewResetSelection(this.viewPtr)}getSelection(){return this.guard(),this.lib.editorViewGetSelection(this.viewPtr)}hasSelection(){return this.guard(),this.getSelection()!==null}setLocalSelection(A,q,g,E,a,F,K,Z){return this.guard(),this.lib.editorViewSetLocalSelection(this.viewPtr,A,q,g,E,a||null,F||null,K??!1,Z??!1)}updateLocalSelection(A,q,g,E,a,F,K,Z){return this.guard(),this.lib.editorViewUpdateLocalSelection(this.viewPtr,A,q,g,E,a||null,F||null,K??!1,Z??!1)}resetLocalSelection(){this.guard(),this.lib.editorViewResetLocalSelection(this.viewPtr)}getSelectedText(){this.guard();let A=1048576,q=this.lib.editorViewGetSelectedTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getCursor(){return this.guard(),this.lib.editorViewGetCursor(this.viewPtr)}getText(){this.guard();let A=1048576,q=this.lib.editorViewGetText(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getVisualCursor(){return this.guard(),this.lib.editorViewGetVisualCursor(this.viewPtr)}moveUpVisual(){this.guard(),this.lib.editorViewMoveUpVisual(this.viewPtr)}moveDownVisual(){this.guard(),this.lib.editorViewMoveDownVisual(this.viewPtr)}deleteSelectedText(){this.guard(),this.lib.editorViewDeleteSelectedText(this.viewPtr)}setCursorByOffset(A){this.guard(),this.lib.editorViewSetCursorByOffset(this.viewPtr,A)}getNextWordBoundary(){return this.guard(),this.lib.editorViewGetNextWordBoundary(this.viewPtr)}getPrevWordBoundary(){return this.guard(),this.lib.editorViewGetPrevWordBoundary(this.viewPtr)}getEOL(){return this.guard(),this.lib.editorViewGetEOL(this.viewPtr)}getVisualSOL(){return this.guard(),this.lib.editorViewGetVisualSOL(this.viewPtr)}getVisualEOL(){return this.guard(),this.lib.editorViewGetVisualEOL(this.viewPtr)}getLineInfo(){return this.guard(),this.lib.editorViewGetLineInfo(this.viewPtr)}getLogicalLineInfo(){return this.guard(),this.lib.editorViewGetLogicalLineInfo(this.viewPtr)}get extmarks(){if(!this._extmarksController)this._extmarksController=_K(this.editBuffer,this);return this._extmarksController}setPlaceholderStyledText(A){this.guard(),this.lib.editorViewSetPlaceholderStyledText(this.viewPtr,A)}setTabIndicator(A){this.guard();let q=typeof A==="string"?A.codePointAt(0)??0:A;this.lib.editorViewSetTabIndicator(this.viewPtr,q)}setTabIndicatorColor(A){this.guard(),this.lib.editorViewSetTabIndicatorColor(this.viewPtr,A)}measureForDimensions(A,q){if(this.guard(),!this._textBufferViewPtr)this._textBufferViewPtr=this.lib.editorViewGetTextBufferView(this.viewPtr);return this.lib.textBufferViewMeasureForDimensions(this._textBufferViewPtr,A,q)}destroy(){if(this._destroyed)return;if(this._extmarksController)this._extmarksController.destroy(),this._extmarksController=void 0;this._destroyed=!0,this.lib.destroyEditorView(this.viewPtr)}}function l_(A){let q={};for(let g of A){let E={};if(g.style.foreground)E.fg=R(g.style.foreground);if(g.style.background)E.bg=R(g.style.background);if(g.style.bold!==void 0)E.bold=g.style.bold;if(g.style.italic!==void 0)E.italic=g.style.italic;if(g.style.underline!==void 0)E.underline=g.style.underline;if(g.style.dim!==void 0)E.dim=g.style.dim;for(let a of g.scope)q[a]=E}return q}class qg{lib;stylePtr;_destroyed=!1;nameCache=new Map;styleDefs=new Map;mergedCache=new Map;constructor(A,q){this.lib=A,this.stylePtr=q}static create(){let A=PA(),q=A.createSyntaxStyle();return new qg(A,q)}static fromTheme(A){let q=qg.create(),g=l_(A);for(let[E,a]of Object.entries(g))q.registerStyle(E,a);return q}static fromStyles(A){let q=qg.create();for(let[g,E]of Object.entries(A))q.registerStyle(g,E);return q}guard(){if(this._destroyed)throw Error("NativeSyntaxStyle is destroyed")}registerStyle(A,q){this.guard();let g=Tg({bold:q.bold,italic:q.italic,underline:q.underline,dim:q.dim}),E=this.lib.syntaxStyleRegister(this.stylePtr,A,q.fg||null,q.bg||null,g);return this.nameCache.set(A,E),this.styleDefs.set(A,q),E}resolveStyleId(A){this.guard();let q=this.nameCache.get(A);if(q!==void 0)return q;let g=this.lib.syntaxStyleResolveByName(this.stylePtr,A);if(g!==null)this.nameCache.set(A,g);return g}getStyleId(A){this.guard();let q=this.resolveStyleId(A);if(q!==null)return q;if(A.includes(".")){let g=A.split(".")[0];return this.resolveStyleId(g)}return null}get ptr(){return this.guard(),this.stylePtr}getStyleCount(){return this.guard(),this.lib.syntaxStyleGetStyleCount(this.stylePtr)}clearNameCache(){this.nameCache.clear()}getStyle(A){if(this.guard(),Object.prototype.hasOwnProperty.call(this.styleDefs,A))return;let q=this.styleDefs.get(A);if(q)return q;if(A.includes(".")){let g=A.split(".")[0];if(Object.prototype.hasOwnProperty.call(this.styleDefs,g))return;return this.styleDefs.get(g)}return}mergeStyles(...A){this.guard();let q=A.join(":"),g=this.mergedCache.get(q);if(g)return g;let E={};for(let K of A){let Z=this.getStyle(K);if(!Z)continue;if(Z.fg)E.fg=Z.fg;if(Z.bg)E.bg=Z.bg;if(Z.bold!==void 0)E.bold=Z.bold;if(Z.italic!==void 0)E.italic=Z.italic;if(Z.underline!==void 0)E.underline=Z.underline;if(Z.dim!==void 0)E.dim=Z.dim}let a=Tg({bold:E.bold,italic:E.italic,underline:E.underline,dim:E.dim}),F={fg:E.fg,bg:E.bg,attributes:a};return this.mergedCache.set(q,F),F}clearCache(){this.guard(),this.mergedCache.clear()}getCacheSize(){return this.guard(),this.mergedCache.size}getAllStyles(){return this.guard(),new Map(this.styleDefs)}getRegisteredNames(){return this.guard(),Array.from(this.styleDefs.keys())}destroy(){if(this._destroyed)return;this._destroyed=!0,this.nameCache.clear(),this.styleDefs.clear(),this.mergedCache.clear(),this.lib.destroySyntaxStyle(this.stylePtr)}}class fK{timelines=new Set;renderer=null;frameCallback=null;isLive=!1;defaults={frameRate:60};attach(A){if(this.renderer)this.detach();this.renderer=A,this.frameCallback=async(q)=>{this.update(q)},A.setFrameCallback(this.frameCallback)}detach(){if(this.renderer&&this.frameCallback){if(this.renderer.removeFrameCallback(this.frameCallback),this.isLive)this.renderer.dropLive(),this.isLive=!1}this.renderer=null,this.frameCallback=null}updateLiveState(){if(!this.renderer)return;let A=Array.from(this.timelines).some((q)=>!q.synced&&q.isPlaying&&!q.isComplete);if(A&&!this.isLive)this.renderer.requestLive(),this.isLive=!0;else if(!A&&this.isLive)this.renderer.dropLive(),this.isLive=!1}onTimelineStateChange=(A)=>{this.updateLiveState()};register(A){if(!this.timelines.has(A))this.timelines.add(A),A.addStateChangeListener(this.onTimelineStateChange),this.updateLiveState()}unregister(A){if(this.timelines.has(A))this.timelines.delete(A),A.removeStateChangeListener(this.onTimelineStateChange),this.updateLiveState()}clear(){for(let A of this.timelines)A.removeStateChangeListener(this.onTimelineStateChange);this.timelines.clear(),this.updateLiveState()}update(A){for(let q of this.timelines)if(!q.synced)q.update(A)}}function s_(A){if(typeof A==="bigint"){if(A>BigInt(Number.MAX_SAFE_INTEGER))throw Error("Pointer exceeds safe integer range");return Number(A)}return A}function CK(A){return typeof A==="bigint"?Number(A):A}class nE{static create(A){let q=PA(),g=q.createNativeSpanFeed(A),E=new nE(g);q.registerNativeSpanFeedStream(g,E.eventHandler);let a=q.attachNativeSpanFeed(g);if(a!==0)throw q.unregisterNativeSpanFeedStream(g),q.destroyNativeSpanFeed(g),Error(`Failed to attach stream: ${a}`);return E}static attach(A,q){let g=PA(),E=s_(A),a=new nE(E);g.registerNativeSpanFeedStream(E,a.eventHandler);let F=g.attachNativeSpanFeed(E);if(F!==0)throw g.unregisterNativeSpanFeedStream(E),Error(`Failed to attach stream: ${F}`);return a}streamPtr;lib=PA();eventHandler;chunkMap=new Map;chunkSizes=new Map;dataHandlers=new Set;errorHandlers=new Set;drainBuffer=null;stateBuffer=null;closed=!1;destroyed=!1;draining=!1;pendingDataAvailable=!1;pendingClose=!1;closing=!1;pendingAsyncHandlers=0;inCallback=!1;closeQueued=!1;constructor(A){this.streamPtr=A,this.eventHandler=(q,g,E)=>{this.handleEvent(q,g,E)},this.ensureDrainBuffer()}ensureDrainBuffer(){if(this.drainBuffer)return;let A=256;this.drainBuffer=new Uint8Array(A*M6.size)}onData(A){if(this.dataHandlers.add(A),this.pendingDataAvailable)this.pendingDataAvailable=!1,this.drainAll();return()=>this.dataHandlers.delete(A)}onError(A){return this.errorHandlers.add(A),()=>this.errorHandlers.delete(A)}close(){if(this.destroyed)return;if(this.inCallback||this.draining||this.pendingAsyncHandlers>0){if(this.pendingClose=!0,!this.closeQueued)this.closeQueued=!0,queueMicrotask(()=>{this.closeQueued=!1,this.processPendingClose()});return}this.performClose()}processPendingClose(){if(!this.pendingClose||this.destroyed)return;if(this.inCallback||this.draining||this.pendingAsyncHandlers>0)return;this.pendingClose=!1,this.performClose()}performClose(){if(this.closing)return;if(this.closing=!0,!this.closed){if(this.lib.streamClose(this.streamPtr)!==0){this.closing=!1;return}this.closed=!0}this.finalizeDestroy()}finalizeDestroy(){if(this.destroyed)return;this.lib.unregisterNativeSpanFeedStream(this.streamPtr),this.lib.destroyNativeSpanFeed(this.streamPtr),this.destroyed=!0,this.chunkMap.clear(),this.chunkSizes.clear(),this.stateBuffer=null,this.drainBuffer=null,this.dataHandlers.clear(),this.errorHandlers.clear(),this.pendingDataAvailable=!1}handleEvent(A,q,g){this.inCallback=!0;try{switch(A){case 8:{let E=CK(g);if(E>0&&q){let a=lE(q,0,E);this.stateBuffer=new Uint8Array(a)}break}case 7:{if(this.closing)break;if(this.dataHandlers.size===0){this.pendingDataAvailable=!0;break}this.drainAll();break}case 2:{let E=CK(g);if(E>0&&q){if(!this.chunkMap.has(q)){let a=lE(q,0,E);this.chunkMap.set(q,a)}this.chunkSizes.set(q,E)}break}case 6:{let E=q;for(let a of this.errorHandlers)a(E);break}case 5:{this.closed=!0;break}default:break}}finally{this.inCallback=!1}}decrementRefcount(A){if(this.stateBuffer&&A<this.stateBuffer.length){let q=this.stateBuffer[A];this.stateBuffer[A]=q>0?q-1:0}}drainOnce(){if(!this.drainBuffer||this.draining||this.pendingClose)return 0;let A=Math.floor(this.drainBuffer.byteLength/M6.size);if(A===0)return 0;let q=this.lib.streamDrainSpans(this.streamPtr,this.drainBuffer,A);if(q===0)return 0;this.draining=!0;let g=M6.unpackList(this.drainBuffer.buffer,q),E=null;try{for(let a of g){if(a.len===0)continue;let F=this.chunkMap.get(a.chunkPtr);if(!F){let U=this.chunkSizes.get(a.chunkPtr);if(!U)continue;F=lE(a.chunkPtr,0,U),this.chunkMap.set(a.chunkPtr,F)}if(a.offset+a.len>F.byteLength)continue;let K=new Uint8Array(F,a.offset,a.len),Z=null;for(let U of this.dataHandlers)try{let O=U(K);if(O&&typeof O.then==="function")Z??=[],Z.push(O)}catch(O){E??=O}let j=this.pendingClose;if(Z){let U=a.chunkIndex;this.pendingAsyncHandlers+=1,Promise.allSettled(Z).then(()=>{this.decrementRefcount(U),this.pendingAsyncHandlers-=1,this.processPendingClose()})}else this.decrementRefcount(a.chunkIndex);if(j)break}}finally{this.draining=!1}if(E)throw E;return q}drainAll(){let A=this.drainOnce();while(A>0)A=this.drainOnce()}}function Ag(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return eq(A)}function L6(A){return!!A?.[uK]}function kK(A){return A.chunks.map((q)=>{let g=new zg({fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});return g.add(q.text),g})}function Aa(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function iK(A){wq=A}function r(A,q=""){let g=typeof A=="string"?A:A.source,E={replace:(a,F)=>{let K=typeof F=="string"?F:F.source;return K=K.replace(JA.caret,"$1"),g=g.replace(a,K),E},getRegex:()=>new RegExp(g,q)};return E}function Gq(A,q){if(q){if(JA.escapeTest.test(A))return A.replace(JA.escapeReplace,mK)}else if(JA.escapeTestNoEncode.test(A))return A.replace(JA.escapeReplaceNoEncode,mK);return A}function bK(A){try{A=encodeURI(A).replace(JA.percentDecode,"%")}catch{return null}return A}function cK(A,q){let g=A.replace(JA.findPipe,(F,K,Z)=>{let j=!1,U=K;for(;--U>=0&&Z[U]==="\\";)j=!j;return j?"|":" |"}),E=g.split(JA.splitPipe),a=0;if(E[0].trim()||E.shift(),E.length>0&&!E.at(-1)?.trim()&&E.pop(),q)if(E.length>q)E.splice(q);else for(;E.length<q;)E.push("");for(;a<E.length;a++)E[a]=E[a].trim().replace(JA.slashPipe,"|");return E}function Wg(A,q,g){let E=A.length;if(E===0)return"";let a=0;for(;a<E;){let F=A.charAt(E-a-1);if(F===q&&!g)a++;else if(F!==q&&g)a++;else break}return A.slice(0,E-a)}function zO(A,q){if(A.indexOf(q[1])===-1)return-1;let g=0;for(let E=0;E<A.length;E++)if(A[E]==="\\")E++;else if(A[E]===q[0])g++;else if(A[E]===q[1]&&(g--,g<0))return E;return g>0?-2:-1}function vK(A,q,g,E,a){let F=q.href,K=q.title||null,Z=A[1].replace(a.other.outputLinkReplace,"$1");E.state.inLink=!0;let j={type:A[0].charAt(0)==="!"?"image":"link",raw:g,href:F,title:K,text:Z,tokens:E.inlineTokens(Z)};return E.state.inLink=!1,j}function BO(A,q,g){let E=A.match(g.other.indentCodeCompensation);if(E===null)return q;let a=E[1];return q.split(`
36
36
  `).map((F)=>{let K=F.match(g.other.beginningSpace);if(K===null)return F;let[Z]=K;return Z.length>=a.length?F.slice(a.length):F}).join(`
37
- `)}function qA(A,q){return Dq.parse(A,q)}function pK(A,q){let g=1;if(A)g+=1;if(q)g+=1;return g}var Qq,RY,dK,V6,gA,tK,uK,zg,lK,d,sK,sE,Yq,s_,DK=1e4,i_,wq,Sg,r_,JA,n_,o_,e_,Bg,AO,qa,rK,nK,qO,ga,gO,Ea,EO,aO,x6="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",aa,FO,oK,KO,Fa,wK,jO,ZO,UO,_O,eK,OO,R6,Ka,Aj,GO,qj,QO,YO,MO,gj,JO,HO,Ej="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",LO,$O,XO,IO,TO,PO,VO,X6,xO,aj,Fj,RO,yK,ja,NO,oE,WO,$6,Ng,hO,mK=(A)=>hO[A],I6=class{options;rules;lexer;constructor(A){this.options=A||wq}space(A){let q=this.rules.block.newline.exec(A);if(q&&q[0].length>0)return{type:"space",raw:q[0]}}code(A){let q=this.rules.block.code.exec(A);if(q){let g=q[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:q[0],codeBlockStyle:"indented",text:this.options.pedantic?g:Wg(g,`
38
- `)}}}fences(A){let q=this.rules.block.fences.exec(A);if(q){let g=q[0],E=zO(g,q[3]||"",this.rules);return{type:"code",raw:g,lang:q[2]?q[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):q[2],text:E}}}heading(A){let q=this.rules.block.heading.exec(A);if(q){let g=q[2].trim();if(this.rules.other.endingHash.test(g)){let E=Wg(g,"#");(this.options.pedantic||!E||this.rules.other.endingSpaceChar.test(E))&&(g=E.trim())}return{type:"heading",raw:q[0],depth:q[1].length,text:g,tokens:this.lexer.inline(g)}}}hr(A){let q=this.rules.block.hr.exec(A);if(q)return{type:"hr",raw:Wg(q[0],`
37
+ `)}function qA(A,q){return Dq.parse(A,q)}function pK(A,q){let g=1;if(A)g+=1;if(q)g+=1;return g}var Qq,NY,dK,V6,gA,tK,uK,zg,lK,d,sK,sE,Yq,i_,DK=1e4,r_,wq,Sg,n_,JA,o_,e_,AO,Bg,qO,qa,rK,nK,gO,ga,EO,Ea,aO,FO,x6="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",aa,KO,oK,jO,Fa,wK,ZO,UO,_O,OO,eK,GO,R6,Ka,Aj,QO,qj,YO,MO,JO,gj,HO,LO,Ej="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",$O,XO,IO,TO,PO,VO,xO,X6,RO,aj,Fj,NO,yK,ja,WO,oE,hO,$6,Ng,SO,mK=(A)=>SO[A],I6=class{options;rules;lexer;constructor(A){this.options=A||wq}space(A){let q=this.rules.block.newline.exec(A);if(q&&q[0].length>0)return{type:"space",raw:q[0]}}code(A){let q=this.rules.block.code.exec(A);if(q){let g=q[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:q[0],codeBlockStyle:"indented",text:this.options.pedantic?g:Wg(g,`
38
+ `)}}}fences(A){let q=this.rules.block.fences.exec(A);if(q){let g=q[0],E=BO(g,q[3]||"",this.rules);return{type:"code",raw:g,lang:q[2]?q[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):q[2],text:E}}}heading(A){let q=this.rules.block.heading.exec(A);if(q){let g=q[2].trim();if(this.rules.other.endingHash.test(g)){let E=Wg(g,"#");(this.options.pedantic||!E||this.rules.other.endingSpaceChar.test(E))&&(g=E.trim())}return{type:"heading",raw:q[0],depth:q[1].length,text:g,tokens:this.lexer.inline(g)}}}hr(A){let q=this.rules.block.hr.exec(A);if(q)return{type:"hr",raw:Wg(q[0],`
39
39
  `)}}blockquote(A){let q=this.rules.block.blockquote.exec(A);if(q){let g=Wg(q[0],`
40
40
  `).split(`
41
41
  `),E="",a="",F=[];for(;g.length>0;){let K=!1,Z=[],j;for(j=0;j<g.length;j++)if(this.rules.other.blockquoteStart.test(g[j]))Z.push(g[j]),K=!0;else if(!K)Z.push(g[j]);else break;g=g.slice(j);let U=Z.join(`
@@ -56,7 +56,7 @@ ${O}`:O;let Q=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTo
56
56
  `+M}!L&&!M.trim()&&(L=!0),U+=z+`
57
57
  `,A=A.substring(z.length+1),Q=m.slice($)}}a.loose||(K?a.loose=!0:this.rules.other.doubleBlankLine.test(U)&&(K=!0)),a.items.push({type:"list_item",raw:U,task:!!this.options.gfm&&this.rules.other.listIsTask.test(O),loose:!1,text:O,tokens:[]}),a.raw+=U}let Z=a.items.at(-1);if(Z)Z.raw=Z.raw.trimEnd(),Z.text=Z.text.trimEnd();else return;a.raw=a.raw.trimEnd();for(let j of a.items){if(this.lexer.state.top=!1,j.tokens=this.lexer.blockTokens(j.text,[]),j.task){if(j.text=j.text.replace(this.rules.other.listReplaceTask,""),j.tokens[0]?.type==="text"||j.tokens[0]?.type==="paragraph"){j.tokens[0].raw=j.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),j.tokens[0].text=j.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let O=this.lexer.inlineQueue.length-1;O>=0;O--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[O].src)){this.lexer.inlineQueue[O].src=this.lexer.inlineQueue[O].src.replace(this.rules.other.listReplaceTask,"");break}}let U=this.rules.other.listTaskCheckbox.exec(j.raw);if(U){let O={type:"checkbox",raw:U[0]+" ",checked:U[0]!=="[ ]"};j.checked=O.checked,a.loose?j.tokens[0]&&["paragraph","text"].includes(j.tokens[0].type)&&"tokens"in j.tokens[0]&&j.tokens[0].tokens?(j.tokens[0].raw=O.raw+j.tokens[0].raw,j.tokens[0].text=O.raw+j.tokens[0].text,j.tokens[0].tokens.unshift(O)):j.tokens.unshift({type:"paragraph",raw:O.raw,text:O.raw,tokens:[O]}):j.tokens.unshift(O)}}if(!a.loose){let U=j.tokens.filter((Q)=>Q.type==="space"),O=U.length>0&&U.some((Q)=>this.rules.other.anyLine.test(Q.raw));a.loose=O}}if(a.loose)for(let j of a.items){j.loose=!0;for(let U of j.tokens)U.type==="text"&&(U.type="paragraph")}return a}}html(A){let q=this.rules.block.html.exec(A);if(q)return{type:"html",block:!0,raw:q[0],pre:q[1]==="pre"||q[1]==="script"||q[1]==="style",text:q[0]}}def(A){let q=this.rules.block.def.exec(A);if(q){let g=q[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),E=q[2]?q[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",a=q[3]?q[3].substring(1,q[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):q[3];return{type:"def",tag:g,raw:q[0],href:E,title:a}}}table(A){let q=this.rules.block.table.exec(A);if(!q||!this.rules.other.tableDelimiter.test(q[2]))return;let g=cK(q[1]),E=q[2].replace(this.rules.other.tableAlignChars,"").split("|"),a=q[3]?.trim()?q[3].replace(this.rules.other.tableRowBlankLine,"").split(`
58
58
  `):[],F={type:"table",raw:q[0],header:[],align:[],rows:[]};if(g.length===E.length){for(let K of E)this.rules.other.tableAlignRight.test(K)?F.align.push("right"):this.rules.other.tableAlignCenter.test(K)?F.align.push("center"):this.rules.other.tableAlignLeft.test(K)?F.align.push("left"):F.align.push(null);for(let K=0;K<g.length;K++)F.header.push({text:g[K],tokens:this.lexer.inline(g[K]),header:!0,align:F.align[K]});for(let K of a)F.rows.push(cK(K,F.header.length).map((Z,j)=>({text:Z,tokens:this.lexer.inline(Z),header:!1,align:F.align[j]})));return F}}lheading(A){let q=this.rules.block.lheading.exec(A);if(q)return{type:"heading",raw:q[0],depth:q[2].charAt(0)==="="?1:2,text:q[1],tokens:this.lexer.inline(q[1])}}paragraph(A){let q=this.rules.block.paragraph.exec(A);if(q){let g=q[1].charAt(q[1].length-1)===`
59
- `?q[1].slice(0,-1):q[1];return{type:"paragraph",raw:q[0],text:g,tokens:this.lexer.inline(g)}}}text(A){let q=this.rules.block.text.exec(A);if(q)return{type:"text",raw:q[0],text:q[0],tokens:this.lexer.inline(q[0])}}escape(A){let q=this.rules.inline.escape.exec(A);if(q)return{type:"escape",raw:q[0],text:q[1]}}tag(A){let q=this.rules.inline.tag.exec(A);if(q)return!this.lexer.state.inLink&&this.rules.other.startATag.test(q[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(q[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(q[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(q[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:q[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:q[0]}}link(A){let q=this.rules.inline.link.exec(A);if(q){let g=q[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(g)){if(!this.rules.other.endAngleBracket.test(g))return;let F=Wg(g.slice(0,-1),"\\");if((g.length-F.length)%2===0)return}else{let F=SO(q[2],"()");if(F===-2)return;if(F>-1){let K=(q[0].indexOf("!")===0?5:4)+q[1].length+F;q[2]=q[2].substring(0,F),q[0]=q[0].substring(0,K).trim(),q[3]=""}}let E=q[2],a="";if(this.options.pedantic){let F=this.rules.other.pedanticHrefTitle.exec(E);F&&(E=F[1],a=F[3])}else a=q[3]?q[3].slice(1,-1):"";return E=E.trim(),this.rules.other.startAngleBracket.test(E)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(g)?E=E.slice(1):E=E.slice(1,-1)),vK(q,{href:E&&E.replace(this.rules.inline.anyPunctuation,"$1"),title:a&&a.replace(this.rules.inline.anyPunctuation,"$1")},q[0],this.lexer,this.rules)}}reflink(A,q){let g;if((g=this.rules.inline.reflink.exec(A))||(g=this.rules.inline.nolink.exec(A))){let E=(g[2]||g[1]).replace(this.rules.other.multipleSpaceGlobal," "),a=q[E.toLowerCase()];if(!a){let F=g[0].charAt(0);return{type:"text",raw:F,text:F}}return vK(g,a,g[0],this.lexer,this.rules)}}emStrong(A,q,g=""){let E=this.rules.inline.emStrongLDelim.exec(A);if(!E||E[3]&&g.match(this.rules.other.unicodeAlphaNumeric))return;if(!(E[1]||E[2])||!g||this.rules.inline.punctuation.exec(g)){let a=[...E[0]].length-1,F,K,Z=a,j=0,U=E[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(U.lastIndex=0,q=q.slice(-1*A.length+a);(E=U.exec(q))!=null;){if(F=E[1]||E[2]||E[3]||E[4]||E[5]||E[6],!F)continue;if(K=[...F].length,E[3]||E[4]){Z+=K;continue}else if((E[5]||E[6])&&a%3&&!((a+K)%3)){j+=K;continue}if(Z-=K,Z>0)continue;K=Math.min(K,K+Z+j);let O=[...E[0]][0].length,Q=A.slice(0,a+E.index+O+K);if(Math.min(a,K)%2){let L=Q.slice(1,-1);return{type:"em",raw:Q,text:L,tokens:this.lexer.inlineTokens(L)}}let M=Q.slice(2,-2);return{type:"strong",raw:Q,text:M,tokens:this.lexer.inlineTokens(M)}}}}codespan(A){let q=this.rules.inline.code.exec(A);if(q){let g=q[2].replace(this.rules.other.newLineCharGlobal," "),E=this.rules.other.nonSpaceChar.test(g),a=this.rules.other.startingSpaceChar.test(g)&&this.rules.other.endingSpaceChar.test(g);return E&&a&&(g=g.substring(1,g.length-1)),{type:"codespan",raw:q[0],text:g}}}br(A){let q=this.rules.inline.br.exec(A);if(q)return{type:"br",raw:q[0]}}del(A){let q=this.rules.inline.del.exec(A);if(q)return{type:"del",raw:q[0],text:q[2],tokens:this.lexer.inlineTokens(q[2])}}autolink(A){let q=this.rules.inline.autolink.exec(A);if(q){let g,E;return q[2]==="@"?(g=q[1],E="mailto:"+g):(g=q[1],E=g),{type:"link",raw:q[0],text:g,href:E,tokens:[{type:"text",raw:g,text:g}]}}}url(A){let q;if(q=this.rules.inline.url.exec(A)){let g,E;if(q[2]==="@")g=q[0],E="mailto:"+g;else{let a;do a=q[0],q[0]=this.rules.inline._backpedal.exec(q[0])?.[0]??"";while(a!==q[0]);g=q[0],q[1]==="www."?E="http://"+q[0]:E=q[0]}return{type:"link",raw:q[0],text:g,href:E,tokens:[{type:"text",raw:g,text:g}]}}}inlineText(A){let q=this.rules.inline.text.exec(A);if(q){let g=this.lexer.state.inRawBlock;return{type:"text",raw:q[0],text:q[0],escaped:g}}}},vA=class A{tokens;options;state;inlineQueue;tokenizer;constructor(q){this.tokens=[],this.tokens.links=Object.create(null),this.options=q||wq,this.options.tokenizer=this.options.tokenizer||new I6,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let g={other:JA,block:$6.normal,inline:Ng.normal};this.options.pedantic?(g.block=$6.pedantic,g.inline=Ng.pedantic):this.options.gfm&&(g.block=$6.gfm,this.options.breaks?g.inline=Ng.breaks:g.inline=Ng.gfm),this.tokenizer.rules=g}static get rules(){return{block:$6,inline:Ng}}static lex(q,g){return new A(g).lex(q)}static lexInline(q,g){return new A(g).inlineTokens(q)}lex(q){q=q.replace(JA.carriageReturn,`
59
+ `?q[1].slice(0,-1):q[1];return{type:"paragraph",raw:q[0],text:g,tokens:this.lexer.inline(g)}}}text(A){let q=this.rules.block.text.exec(A);if(q)return{type:"text",raw:q[0],text:q[0],tokens:this.lexer.inline(q[0])}}escape(A){let q=this.rules.inline.escape.exec(A);if(q)return{type:"escape",raw:q[0],text:q[1]}}tag(A){let q=this.rules.inline.tag.exec(A);if(q)return!this.lexer.state.inLink&&this.rules.other.startATag.test(q[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(q[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(q[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(q[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:q[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:q[0]}}link(A){let q=this.rules.inline.link.exec(A);if(q){let g=q[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(g)){if(!this.rules.other.endAngleBracket.test(g))return;let F=Wg(g.slice(0,-1),"\\");if((g.length-F.length)%2===0)return}else{let F=zO(q[2],"()");if(F===-2)return;if(F>-1){let K=(q[0].indexOf("!")===0?5:4)+q[1].length+F;q[2]=q[2].substring(0,F),q[0]=q[0].substring(0,K).trim(),q[3]=""}}let E=q[2],a="";if(this.options.pedantic){let F=this.rules.other.pedanticHrefTitle.exec(E);F&&(E=F[1],a=F[3])}else a=q[3]?q[3].slice(1,-1):"";return E=E.trim(),this.rules.other.startAngleBracket.test(E)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(g)?E=E.slice(1):E=E.slice(1,-1)),vK(q,{href:E&&E.replace(this.rules.inline.anyPunctuation,"$1"),title:a&&a.replace(this.rules.inline.anyPunctuation,"$1")},q[0],this.lexer,this.rules)}}reflink(A,q){let g;if((g=this.rules.inline.reflink.exec(A))||(g=this.rules.inline.nolink.exec(A))){let E=(g[2]||g[1]).replace(this.rules.other.multipleSpaceGlobal," "),a=q[E.toLowerCase()];if(!a){let F=g[0].charAt(0);return{type:"text",raw:F,text:F}}return vK(g,a,g[0],this.lexer,this.rules)}}emStrong(A,q,g=""){let E=this.rules.inline.emStrongLDelim.exec(A);if(!E||E[3]&&g.match(this.rules.other.unicodeAlphaNumeric))return;if(!(E[1]||E[2])||!g||this.rules.inline.punctuation.exec(g)){let a=[...E[0]].length-1,F,K,Z=a,j=0,U=E[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(U.lastIndex=0,q=q.slice(-1*A.length+a);(E=U.exec(q))!=null;){if(F=E[1]||E[2]||E[3]||E[4]||E[5]||E[6],!F)continue;if(K=[...F].length,E[3]||E[4]){Z+=K;continue}else if((E[5]||E[6])&&a%3&&!((a+K)%3)){j+=K;continue}if(Z-=K,Z>0)continue;K=Math.min(K,K+Z+j);let O=[...E[0]][0].length,Q=A.slice(0,a+E.index+O+K);if(Math.min(a,K)%2){let L=Q.slice(1,-1);return{type:"em",raw:Q,text:L,tokens:this.lexer.inlineTokens(L)}}let M=Q.slice(2,-2);return{type:"strong",raw:Q,text:M,tokens:this.lexer.inlineTokens(M)}}}}codespan(A){let q=this.rules.inline.code.exec(A);if(q){let g=q[2].replace(this.rules.other.newLineCharGlobal," "),E=this.rules.other.nonSpaceChar.test(g),a=this.rules.other.startingSpaceChar.test(g)&&this.rules.other.endingSpaceChar.test(g);return E&&a&&(g=g.substring(1,g.length-1)),{type:"codespan",raw:q[0],text:g}}}br(A){let q=this.rules.inline.br.exec(A);if(q)return{type:"br",raw:q[0]}}del(A){let q=this.rules.inline.del.exec(A);if(q)return{type:"del",raw:q[0],text:q[2],tokens:this.lexer.inlineTokens(q[2])}}autolink(A){let q=this.rules.inline.autolink.exec(A);if(q){let g,E;return q[2]==="@"?(g=q[1],E="mailto:"+g):(g=q[1],E=g),{type:"link",raw:q[0],text:g,href:E,tokens:[{type:"text",raw:g,text:g}]}}}url(A){let q;if(q=this.rules.inline.url.exec(A)){let g,E;if(q[2]==="@")g=q[0],E="mailto:"+g;else{let a;do a=q[0],q[0]=this.rules.inline._backpedal.exec(q[0])?.[0]??"";while(a!==q[0]);g=q[0],q[1]==="www."?E="http://"+q[0]:E=q[0]}return{type:"link",raw:q[0],text:g,href:E,tokens:[{type:"text",raw:g,text:g}]}}}inlineText(A){let q=this.rules.inline.text.exec(A);if(q){let g=this.lexer.state.inRawBlock;return{type:"text",raw:q[0],text:q[0],escaped:g}}}},vA=class A{tokens;options;state;inlineQueue;tokenizer;constructor(q){this.tokens=[],this.tokens.links=Object.create(null),this.options=q||wq,this.options.tokenizer=this.options.tokenizer||new I6,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let g={other:JA,block:$6.normal,inline:Ng.normal};this.options.pedantic?(g.block=$6.pedantic,g.inline=Ng.pedantic):this.options.gfm&&(g.block=$6.gfm,this.options.breaks?g.inline=Ng.breaks:g.inline=Ng.gfm),this.tokenizer.rules=g}static get rules(){return{block:$6,inline:Ng}}static lex(q,g){return new A(g).lex(q)}static lexInline(q,g){return new A(g).inlineTokens(q)}lex(q){q=q.replace(JA.carriageReturn,`
60
60
  `),this.blockTokens(q,this.tokens);for(let g=0;g<this.inlineQueue.length;g++){let E=this.inlineQueue[g];this.inlineTokens(E.src,E.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(q,g=[],E=!1){for(this.options.pedantic&&(q=q.replace(JA.tabCharGlobal," ").replace(JA.spaceLine,""));q;){let a;if(this.options.extensions?.block?.some((K)=>(a=K.call({lexer:this},q,g))?(q=q.substring(a.raw.length),g.push(a),!0):!1))continue;if(a=this.tokenizer.space(q)){q=q.substring(a.raw.length);let K=g.at(-1);a.raw.length===1&&K!==void 0?K.raw+=`
61
61
  `:g.push(a);continue}if(a=this.tokenizer.code(q)){q=q.substring(a.raw.length);let K=g.at(-1);K?.type==="paragraph"||K?.type==="text"?(K.raw+=(K.raw.endsWith(`
62
62
  `)?"":`
@@ -88,15 +88,15 @@ ${this.parser.parse(A)}</blockquote>
88
88
  `}tablerow({text:A}){return`<tr>
89
89
  ${A}</tr>
90
90
  `}tablecell(A){let q=this.parser.parseInline(A.tokens),g=A.header?"th":"td";return(A.align?`<${g} align="${A.align}">`:`<${g}>`)+q+`</${g}>
91
- `}strong({tokens:A}){return`<strong>${this.parser.parseInline(A)}</strong>`}em({tokens:A}){return`<em>${this.parser.parseInline(A)}</em>`}codespan({text:A}){return`<code>${Gq(A,!0)}</code>`}br(A){return"<br>"}del({tokens:A}){return`<del>${this.parser.parseInline(A)}</del>`}link({href:A,title:q,tokens:g}){let E=this.parser.parseInline(g),a=bK(A);if(a===null)return E;A=a;let F='<a href="'+A+'"';return q&&(F+=' title="'+Gq(q)+'"'),F+=">"+E+"</a>",F}image({href:A,title:q,text:g,tokens:E}){E&&(g=this.parser.parseInline(E,this.parser.textRenderer));let a=bK(A);if(a===null)return Gq(g);A=a;let F=`<img src="${A}" alt="${g}"`;return q&&(F+=` title="${Gq(q)}"`),F+=">",F}text(A){return"tokens"in A&&A.tokens?this.parser.parseInline(A.tokens):("escaped"in A)&&A.escaped?A.text:Gq(A.text)}},Za=class{strong({text:A}){return A}em({text:A}){return A}codespan({text:A}){return A}del({text:A}){return A}html({text:A}){return A}text({text:A}){return A}link({text:A}){return""+A}image({text:A}){return""+A}br(){return""}checkbox({raw:A}){return A}},pA=class A{options;renderer;textRenderer;constructor(q){this.options=q||wq,this.options.renderer=this.options.renderer||new T6,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Za}static parse(q,g){return new A(g).parse(q)}static parseInline(q,g){return new A(g).parseInline(q)}parse(q){let g="";for(let E=0;E<q.length;E++){let a=q[E];if(this.options.extensions?.renderers?.[a.type]){let K=a,Z=this.options.extensions.renderers[K.type].call({parser:this},K);if(Z!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(K.type)){g+=Z||"";continue}}let F=a;switch(F.type){case"space":{g+=this.renderer.space(F);break}case"hr":{g+=this.renderer.hr(F);break}case"heading":{g+=this.renderer.heading(F);break}case"code":{g+=this.renderer.code(F);break}case"table":{g+=this.renderer.table(F);break}case"blockquote":{g+=this.renderer.blockquote(F);break}case"list":{g+=this.renderer.list(F);break}case"checkbox":{g+=this.renderer.checkbox(F);break}case"html":{g+=this.renderer.html(F);break}case"def":{g+=this.renderer.def(F);break}case"paragraph":{g+=this.renderer.paragraph(F);break}case"text":{g+=this.renderer.text(F);break}default:{let K='Token with "'+F.type+'" type was not found.';if(this.options.silent)return console.error(K),"";throw Error(K)}}}return g}parseInline(q,g=this.renderer){let E="";for(let a=0;a<q.length;a++){let F=q[a];if(this.options.extensions?.renderers?.[F.type]){let Z=this.options.extensions.renderers[F.type].call({parser:this},F);if(Z!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(F.type)){E+=Z||"";continue}}let K=F;switch(K.type){case"escape":{E+=g.text(K);break}case"html":{E+=g.html(K);break}case"link":{E+=g.link(K);break}case"image":{E+=g.image(K);break}case"checkbox":{E+=g.checkbox(K);break}case"strong":{E+=g.strong(K);break}case"em":{E+=g.em(K);break}case"codespan":{E+=g.codespan(K);break}case"br":{E+=g.br(K);break}case"del":{E+=g.del(K);break}case"text":{E+=g.text(K);break}default:{let Z='Token with "'+K.type+'" type was not found.';if(this.options.silent)return console.error(Z),"";throw Error(Z)}}}return E}},hg,BO=class{defaults=Aa();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=pA;Renderer=T6;TextRenderer=Za;Lexer=vA;Tokenizer=I6;Hooks=hg;constructor(...A){this.use(...A)}walkTokens(A,q){let g=[];for(let E of A)switch(g=g.concat(q.call(this,E)),E.type){case"table":{let a=E;for(let F of a.header)g=g.concat(this.walkTokens(F.tokens,q));for(let F of a.rows)for(let K of F)g=g.concat(this.walkTokens(K.tokens,q));break}case"list":{let a=E;g=g.concat(this.walkTokens(a.items,q));break}default:{let a=E;this.defaults.extensions?.childTokens?.[a.type]?this.defaults.extensions.childTokens[a.type].forEach((F)=>{let K=a[F].flat(1/0);g=g.concat(this.walkTokens(K,q))}):a.tokens&&(g=g.concat(this.walkTokens(a.tokens,q)))}}return g}use(...A){let q=this.defaults.extensions||{renderers:{},childTokens:{}};return A.forEach((g)=>{let E={...g};if(E.async=this.defaults.async||E.async||!1,g.extensions&&(g.extensions.forEach((a)=>{if(!a.name)throw Error("extension name required");if("renderer"in a){let F=q.renderers[a.name];F?q.renderers[a.name]=function(...K){let Z=a.renderer.apply(this,K);return Z===!1&&(Z=F.apply(this,K)),Z}:q.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw Error("extension level must be 'block' or 'inline'");let F=q[a.level];F?F.unshift(a.tokenizer):q[a.level]=[a.tokenizer],a.start&&(a.level==="block"?q.startBlock?q.startBlock.push(a.start):q.startBlock=[a.start]:a.level==="inline"&&(q.startInline?q.startInline.push(a.start):q.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(q.childTokens[a.name]=a.childTokens)}),E.extensions=q),g.renderer){let a=this.defaults.renderer||new T6(this.defaults);for(let F in g.renderer){if(!(F in a))throw Error(`renderer '${F}' does not exist`);if(["options","parser"].includes(F))continue;let K=F,Z=g.renderer[K],j=a[K];a[K]=(...U)=>{let O=Z.apply(a,U);return O===!1&&(O=j.apply(a,U)),O||""}}E.renderer=a}if(g.tokenizer){let a=this.defaults.tokenizer||new I6(this.defaults);for(let F in g.tokenizer){if(!(F in a))throw Error(`tokenizer '${F}' does not exist`);if(["options","rules","lexer"].includes(F))continue;let K=F,Z=g.tokenizer[K],j=a[K];a[K]=(...U)=>{let O=Z.apply(a,U);return O===!1&&(O=j.apply(a,U)),O}}E.tokenizer=a}if(g.hooks){let a=this.defaults.hooks||new hg;for(let F in g.hooks){if(!(F in a))throw Error(`hook '${F}' does not exist`);if(["options","block"].includes(F))continue;let K=F,Z=g.hooks[K],j=a[K];hg.passThroughHooks.has(F)?a[K]=(U)=>{if(this.defaults.async&&hg.passThroughHooksRespectAsync.has(F))return(async()=>{let Q=await Z.call(a,U);return j.call(a,Q)})();let O=Z.call(a,U);return j.call(a,O)}:a[K]=(...U)=>{if(this.defaults.async)return(async()=>{let Q=await Z.apply(a,U);return Q===!1&&(Q=await j.apply(a,U)),Q})();let O=Z.apply(a,U);return O===!1&&(O=j.apply(a,U)),O}}E.hooks=a}if(g.walkTokens){let a=this.defaults.walkTokens,F=g.walkTokens;E.walkTokens=function(K){let Z=[];return Z.push(F.call(this,K)),a&&(Z=Z.concat(a.call(this,K))),Z}}this.defaults={...this.defaults,...E}}),this}setOptions(A){return this.defaults={...this.defaults,...A},this}lexer(A,q){return vA.lex(A,q??this.defaults)}parser(A,q){return pA.parse(A,q??this.defaults)}parseMarkdown(A){return(q,g)=>{let E={...g},a={...this.defaults,...E},F=this.onError(!!a.silent,!!a.async);if(this.defaults.async===!0&&E.async===!1)return F(Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof q>"u"||q===null)return F(Error("marked(): input parameter is undefined or null"));if(typeof q!="string")return F(Error("marked(): input parameter is of type "+Object.prototype.toString.call(q)+", string expected"));if(a.hooks&&(a.hooks.options=a,a.hooks.block=A),a.async)return(async()=>{let K=a.hooks?await a.hooks.preprocess(q):q,Z=await(a.hooks?await a.hooks.provideLexer():A?vA.lex:vA.lexInline)(K,a),j=a.hooks?await a.hooks.processAllTokens(Z):Z;a.walkTokens&&await Promise.all(this.walkTokens(j,a.walkTokens));let U=await(a.hooks?await a.hooks.provideParser():A?pA.parse:pA.parseInline)(j,a);return a.hooks?await a.hooks.postprocess(U):U})().catch(F);try{a.hooks&&(q=a.hooks.preprocess(q));let K=(a.hooks?a.hooks.provideLexer():A?vA.lex:vA.lexInline)(q,a);a.hooks&&(K=a.hooks.processAllTokens(K)),a.walkTokens&&this.walkTokens(K,a.walkTokens);let Z=(a.hooks?a.hooks.provideParser():A?pA.parse:pA.parseInline)(K,a);return a.hooks&&(Z=a.hooks.postprocess(Z)),Z}catch(K){return F(K)}}}onError(A,q){return(g)=>{if(g.message+=`
92
- Please report this to https://github.com/markedjs/marked.`,A){let E="<p>An error occurred:</p><pre>"+Gq(g.message+"",!0)+"</pre>";return q?Promise.resolve(E):E}if(q)return Promise.reject(g);throw g}}},Dq,WY,hY,SY,zY,BY,CY,kY,DY,wY,iE,uA,lA,rE,Ua,_a;var Mq=e(async()=>{await BK();Qq=class Qq extends t_{static registry=new Map;static nativeEventsSubscribed=!1;lib;bufferPtr;textBufferPtr;id;_destroyed=!1;_textBytes=[];_singleTextBytes=null;_singleTextMemId=null;_syntaxStyle;constructor(A,q){super();this.lib=A,this.bufferPtr=q,this.textBufferPtr=A.editBufferGetTextBuffer(q),this.id=A.editBufferGetId(q),Qq.registry.set(this.id,this),Qq.subscribeToNativeEvents(A)}static create(A){let q=PA(),g=q.createEditBuffer(A);return new Qq(q,g)}static subscribeToNativeEvents(A){if(Qq.nativeEventsSubscribed)return;Qq.nativeEventsSubscribed=!0,A.onAnyNativeEvent((q,g)=>{let E=new Uint16Array(g);if(q.startsWith("eb_")&&E.length>=1){let a=E[0],F=Qq.registry.get(a);if(F){let K=q.slice(3),Z=g.slice(2);F.emit(K,Z)}}})}guard(){if(this._destroyed)throw Error("EditBuffer is destroyed")}get ptr(){return this.guard(),this.bufferPtr}setText(A){this.guard();let q=this.lib.encoder.encode(A);if(this._singleTextMemId!==null)this.lib.textBufferReplaceMemBuffer(this.textBufferPtr,this._singleTextMemId,q,!1);else this._singleTextMemId=this.lib.textBufferRegisterMemBuffer(this.textBufferPtr,q,!1);this._singleTextBytes=q,this.lib.editBufferSetTextFromMem(this.bufferPtr,this._singleTextMemId)}setTextOwned(A){this.guard();let q=this.lib.encoder.encode(A);this.lib.editBufferSetText(this.bufferPtr,q)}replaceText(A){this.guard();let q=this.lib.encoder.encode(A);this._textBytes.push(q);let g=this.lib.textBufferRegisterMemBuffer(this.textBufferPtr,q,!1);this.lib.editBufferReplaceTextFromMem(this.bufferPtr,g)}replaceTextOwned(A){this.guard();let q=this.lib.encoder.encode(A);this.lib.editBufferReplaceText(this.bufferPtr,q)}getLineCount(){return this.guard(),this.lib.textBufferGetLineCount(this.textBufferPtr)}getText(){this.guard();let A=1048576,q=this.lib.editBufferGetText(this.bufferPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}insertChar(A){this.guard(),this.lib.editBufferInsertChar(this.bufferPtr,A)}insertText(A){this.guard(),this.lib.editBufferInsertText(this.bufferPtr,A)}deleteChar(){this.guard(),this.lib.editBufferDeleteChar(this.bufferPtr)}deleteCharBackward(){this.guard(),this.lib.editBufferDeleteCharBackward(this.bufferPtr)}deleteRange(A,q,g,E){this.guard(),this.lib.editBufferDeleteRange(this.bufferPtr,A,q,g,E)}newLine(){this.guard(),this.lib.editBufferNewLine(this.bufferPtr)}deleteLine(){this.guard(),this.lib.editBufferDeleteLine(this.bufferPtr)}moveCursorLeft(){this.guard(),this.lib.editBufferMoveCursorLeft(this.bufferPtr)}moveCursorRight(){this.guard(),this.lib.editBufferMoveCursorRight(this.bufferPtr)}moveCursorUp(){this.guard(),this.lib.editBufferMoveCursorUp(this.bufferPtr)}moveCursorDown(){this.guard(),this.lib.editBufferMoveCursorDown(this.bufferPtr)}gotoLine(A){this.guard(),this.lib.editBufferGotoLine(this.bufferPtr,A)}setCursor(A,q){this.guard(),this.lib.editBufferSetCursor(this.bufferPtr,A,q)}setCursorToLineCol(A,q){this.guard(),this.lib.editBufferSetCursorToLineCol(this.bufferPtr,A,q)}setCursorByOffset(A){this.guard(),this.lib.editBufferSetCursorByOffset(this.bufferPtr,A)}getCursorPosition(){return this.guard(),this.lib.editBufferGetCursorPosition(this.bufferPtr)}getNextWordBoundary(){this.guard();let A=this.lib.editBufferGetNextWordBoundary(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}getPrevWordBoundary(){this.guard();let A=this.lib.editBufferGetPrevWordBoundary(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}getEOL(){this.guard();let A=this.lib.editBufferGetEOL(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}offsetToPosition(A){this.guard();let q=this.lib.editBufferOffsetToPosition(this.bufferPtr,A);if(!q)return null;return{row:q.row,col:q.col}}positionToOffset(A,q){return this.guard(),this.lib.editBufferPositionToOffset(this.bufferPtr,A,q)}getLineStartOffset(A){return this.guard(),this.lib.editBufferGetLineStartOffset(this.bufferPtr,A)}getTextRange(A,q){if(this.guard(),A>=q)return"";let g=1048576,E=this.lib.editBufferGetTextRange(this.bufferPtr,A,q,g);if(!E)return"";return this.lib.decoder.decode(E)}getTextRangeByCoords(A,q,g,E){this.guard();let a=1048576,F=this.lib.editBufferGetTextRangeByCoords(this.bufferPtr,A,q,g,E,a);if(!F)return"";return this.lib.decoder.decode(F)}debugLogRope(){this.guard(),this.lib.editBufferDebugLogRope(this.bufferPtr)}undo(){this.guard();let A=256,q=this.lib.editBufferUndo(this.bufferPtr,A);if(!q)return null;return this.lib.decoder.decode(q)}redo(){this.guard();let A=256,q=this.lib.editBufferRedo(this.bufferPtr,A);if(!q)return null;return this.lib.decoder.decode(q)}canUndo(){return this.guard(),this.lib.editBufferCanUndo(this.bufferPtr)}canRedo(){return this.guard(),this.lib.editBufferCanRedo(this.bufferPtr)}clearHistory(){this.guard(),this.lib.editBufferClearHistory(this.bufferPtr)}setDefaultFg(A){this.guard(),this.lib.textBufferSetDefaultFg(this.textBufferPtr,A)}setDefaultBg(A){this.guard(),this.lib.textBufferSetDefaultBg(this.textBufferPtr,A)}setDefaultAttributes(A){this.guard(),this.lib.textBufferSetDefaultAttributes(this.textBufferPtr,A)}resetDefaults(){this.guard(),this.lib.textBufferResetDefaults(this.textBufferPtr)}setSyntaxStyle(A){this.guard(),this._syntaxStyle=A??void 0,this.lib.textBufferSetSyntaxStyle(this.textBufferPtr,A?.ptr??null)}getSyntaxStyle(){return this.guard(),this._syntaxStyle??null}addHighlight(A,q){this.guard(),this.lib.textBufferAddHighlight(this.textBufferPtr,A,q)}addHighlightByCharRange(A){this.guard(),this.lib.textBufferAddHighlightByCharRange(this.textBufferPtr,A)}removeHighlightsByRef(A){this.guard(),this.lib.textBufferRemoveHighlightsByRef(this.textBufferPtr,A)}clearLineHighlights(A){this.guard(),this.lib.textBufferClearLineHighlights(this.textBufferPtr,A)}clearAllHighlights(){this.guard(),this.lib.textBufferClearAllHighlights(this.textBufferPtr)}getLineHighlights(A){return this.guard(),this.lib.textBufferGetLineHighlights(this.textBufferPtr,A)}clear(){this.guard(),this.lib.editBufferClear(this.bufferPtr)}destroy(){if(this._destroyed)return;this._destroyed=!0,Qq.registry.delete(this.id),this.lib.destroyEditBuffer(this.bufferPtr)}};RY=new fK;dK=class dK extends OA{frameBuffer;respectAlpha;constructor(A,q){super(A,q);this.respectAlpha=q.respectAlpha||!1,this.frameBuffer=Zq.create(q.width,q.height,this._ctx.widthMethod,{respectAlpha:this.respectAlpha,id:q.id||`framebufferrenderable-${this.id}`})}onResize(A,q){if(A<=0||q<=0)throw Error(`Invalid resize dimensions for FrameBufferRenderable ${this.id}: ${A}x${q}`);this.frameBuffer.resize(A,q),super.onResize(A,q),this.requestRender()}renderSelf(A){if(!this.visible||this.isDestroyed)return;A.drawFrameBuffer(this.x,this.y,this.frameBuffer)}destroySelf(){this.frameBuffer?.destroy(),super.destroySelf()}};V6=class V6 extends dK{selectable=!0;static _defaultOptions={text:"",font:"tiny",color:"#FFFFFF",backgroundColor:"transparent",selectionBg:void 0,selectionFg:void 0,selectable:!0};_text;_font;_color;_backgroundColor;_selectionBg;_selectionFg;lastLocalSelection=null;selectionHelper;constructor(A,q){let g=V6._defaultOptions,E=q.font||g.font,a=q.text||g.text,F=rq({text:a,font:E});super(A,{flexShrink:0,...q,width:F.width||1,height:F.height||1,respectAlpha:!0});this._text=a,this._font=E,this._color=q.color||g.color,this._backgroundColor=q.backgroundColor||g.backgroundColor,this._selectionBg=q.selectionBg?R(q.selectionBg):void 0,this._selectionFg=q.selectionFg?R(q.selectionFg):void 0,this.selectable=q.selectable??!0,this.selectionHelper=new wE(()=>this._text,()=>this._font),this.renderFontToBuffer()}get text(){return this._text}set text(A){if(this._text=A,this.updateDimensions(),this.lastLocalSelection)this.selectionHelper.onLocalSelectionChanged(this.lastLocalSelection,this.width,this.height);this.renderFontToBuffer(),this.requestRender()}get font(){return this._font}set font(A){if(this._font=A,this.updateDimensions(),this.lastLocalSelection)this.selectionHelper.onLocalSelectionChanged(this.lastLocalSelection,this.width,this.height);this.renderFontToBuffer(),this.requestRender()}get color(){return this._color}set color(A){this._color=A,this.renderFontToBuffer(),this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){this._backgroundColor=A,this.renderFontToBuffer(),this.requestRender()}updateDimensions(){let A=rq({text:this._text,font:this._font});this.width=A.width,this.height=A.height}shouldStartSelection(A,q){let g=A-this.x,E=q-this.y;return this.selectionHelper.shouldStartSelection(g,E,this.width,this.height)}onSelectionChanged(A){let q=Vg(A,this.x,this.y);this.lastLocalSelection=q;let g=this.selectionHelper.onLocalSelectionChanged(q,this.width,this.height);if(g)this.renderFontToBuffer(),this.requestRender();return g}getSelectedText(){let A=this.selectionHelper.getSelection();if(!A)return"";return this._text.slice(A.start,A.end)}hasSelection(){return this.selectionHelper.hasSelection()}onResize(A,q){super.onResize(A,q),this.renderFontToBuffer()}renderFontToBuffer(){if(this.isDestroyed)return;this.frameBuffer.clear(R(this._backgroundColor)),Q6(this.frameBuffer,{text:this._text,x:0,y:0,color:this.color,backgroundColor:this._backgroundColor,font:this._font});let A=this.selectionHelper.getSelection();if(A&&(this._selectionBg||this._selectionFg))this.renderSelectionHighlight(A)}renderSelectionHighlight(A){if(!this._selectionBg&&!this._selectionFg)return;let q=this._text.slice(A.start,A.end);if(!q)return;let g=CE(this._text,this._font),E=g[A.start]||0,a=A.end<g.length?g[A.end]:rq({text:this._text,font:this._font}).width;if(this._selectionBg)this.frameBuffer.fillRect(E,0,a-E,this.height,R(this._selectionBg));if(this._selectionFg||this._selectionBg)Q6(this.frameBuffer,{text:q,x:E,y:0,color:this._selectionFg?this._selectionFg:this._color,backgroundColor:this._selectionBg?this._selectionBg:this._backgroundColor,font:this._font})}};gA=class gA extends OA{_backgroundColor;_border;_borderStyle;_borderColor;_focusedBorderColor;_customBorderCharsObj;_customBorderChars;borderSides;shouldFill;_title;_titleAlignment;_defaultOptions={backgroundColor:"transparent",borderStyle:"single",border:!1,borderColor:"#FFFFFF",shouldFill:!0,titleAlignment:"left",focusedBorderColor:"#00AAFF"};constructor(A,q){super(A,q);if(q.focusable===!0)this._focusable=!0;if(this._backgroundColor=R(q.backgroundColor||this._defaultOptions.backgroundColor),this._border=q.border??this._defaultOptions.border,!q.border&&(q.borderStyle||q.borderColor||q.focusedBorderColor||q.customBorderChars))this._border=!0;if(this._borderStyle=iq(q.borderStyle,this._defaultOptions.borderStyle),this._borderColor=R(q.borderColor||this._defaultOptions.borderColor),this._focusedBorderColor=R(q.focusedBorderColor||this._defaultOptions.focusedBorderColor),this._customBorderCharsObj=q.customBorderChars,this._customBorderChars=this._customBorderCharsObj?Bq(this._customBorderCharsObj):void 0,this.borderSides=G6(this._border),this.shouldFill=q.shouldFill??this._defaultOptions.shouldFill,this._title=q.title,this._titleAlignment=q.titleAlignment||this._defaultOptions.titleAlignment,this.applyYogaBorders(),q.gap!==void 0||q.rowGap!==void 0||q.columnGap!==void 0)this.applyYogaGap(q)}initializeBorder(){if(this._border===!1)this._border=!0,this.borderSides=G6(this._border),this.applyYogaBorders()}get customBorderChars(){return this._customBorderCharsObj}set customBorderChars(A){this._customBorderCharsObj=A,this._customBorderChars=A?Bq(A):void 0,this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){let q=R(A??this._defaultOptions.backgroundColor);if(this._backgroundColor!==q)this._backgroundColor=q,this.requestRender()}get border(){return this._border}set border(A){if(this._border!==A)this._border=A,this.borderSides=G6(A),this.applyYogaBorders(),this.requestRender()}get borderStyle(){return this._borderStyle}set borderStyle(A){let q=iq(A,this._defaultOptions.borderStyle);if(this._borderStyle!==q||!this._border)this._borderStyle=q,this._customBorderChars=void 0,this.initializeBorder(),this.requestRender()}get borderColor(){return this._borderColor}set borderColor(A){let q=R(A??this._defaultOptions.borderColor);if(this._borderColor!==q)this._borderColor=q,this.initializeBorder(),this.requestRender()}get focusedBorderColor(){return this._focusedBorderColor}set focusedBorderColor(A){let q=R(A??this._defaultOptions.focusedBorderColor);if(this._focusedBorderColor!==q){if(this._focusedBorderColor=q,this.initializeBorder(),this._focused)this.requestRender()}}get title(){return this._title}set title(A){if(this._title!==A)this._title=A,this.requestRender()}get titleAlignment(){return this._titleAlignment}set titleAlignment(A){if(this._titleAlignment!==A)this._titleAlignment=A,this.requestRender()}renderSelf(A){let q=this._focused?this._focusedBorderColor:this._borderColor;A.drawBox({x:this.x,y:this.y,width:this.width,height:this.height,borderStyle:this._borderStyle,customBorderChars:this._customBorderChars,border:this._border,borderColor:q,backgroundColor:this._backgroundColor,shouldFill:this.shouldFill,title:this._title,titleAlignment:this._titleAlignment})}getScissorRect(){let A=super.getScissorRect();if(!this.borderSides.top&&!this.borderSides.right&&!this.borderSides.bottom&&!this.borderSides.left)return A;let q=this.borderSides.left?1:0,g=this.borderSides.right?1:0,E=this.borderSides.top?1:0,a=this.borderSides.bottom?1:0;return{x:A.x+q,y:A.y+E,width:Math.max(0,A.width-q-g),height:Math.max(0,A.height-E-a)}}applyYogaBorders(){let A=this.yogaNode;A.setBorder(p.Left,this.borderSides.left?1:0),A.setBorder(p.Right,this.borderSides.right?1:0),A.setBorder(p.Top,this.borderSides.top?1:0),A.setBorder(p.Bottom,this.borderSides.bottom?1:0),this.requestRender()}applyYogaGap(A){let q=this.yogaNode;if(Ag(A.gap))q.setGap(cA.All,A.gap);if(Ag(A.rowGap))q.setGap(cA.Row,A.rowGap);if(Ag(A.columnGap))q.setGap(cA.Column,A.columnGap)}set gap(A){if(Ag(A))this.yogaNode.setGap(cA.All,A),this.requestRender()}set rowGap(A){if(Ag(A))this.yogaNode.setGap(cA.Row,A),this.requestRender()}set columnGap(A){if(Ag(A))this.yogaNode.setGap(cA.Column,A),this.requestRender()}};tK=class tK extends OA{selectable=!0;_defaultFg;_defaultBg;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_scrollX=0;_scrollY=0;_truncate=!1;textBuffer;textBufferView;_textBufferSyntaxStyle;_defaultOptions={fg:AA.fromValues(1,1,1,1),bg:AA.fromValues(0,0,0,0),selectionBg:void 0,selectionFg:void 0,selectable:!0,attributes:0,wrapMode:"word",tabIndicator:void 0,tabIndicatorColor:void 0,truncate:!1};constructor(A,q){super(A,q);if(this._defaultFg=R(q.fg??this._defaultOptions.fg),this._defaultBg=R(q.bg??this._defaultOptions.bg),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?R(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?R(q.selectionFg):this._defaultOptions.selectionFg,this.selectable=q.selectable??this._defaultOptions.selectable,this._wrapMode=q.wrapMode??this._defaultOptions.wrapMode,this._tabIndicator=q.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=q.tabIndicatorColor?R(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this._truncate=q.truncate??this._defaultOptions.truncate,this.textBuffer=xg.create(this._ctx.widthMethod),this.textBufferView=P6.create(this.textBuffer),this._textBufferSyntaxStyle=qg.create(),this.textBuffer.setSyntaxStyle(this._textBufferSyntaxStyle),this.textBufferView.setWrapMode(this._wrapMode),this.setupMeasureFunc(),this.textBuffer.setDefaultFg(this._defaultFg),this.textBuffer.setDefaultBg(this._defaultBg),this.textBuffer.setDefaultAttributes(this._defaultAttributes),this._tabIndicator!==void 0)this.textBufferView.setTabIndicator(this._tabIndicator);if(this._tabIndicatorColor!==void 0)this.textBufferView.setTabIndicatorColor(this._tabIndicatorColor);if(this._wrapMode!=="none"&&this.width>0)this.textBufferView.setWrapWidth(this.width);if(this.width>0&&this.height>0)this.textBufferView.setViewport(this._scrollX,this._scrollY,this.width,this.height);this.textBufferView.setTruncate(this._truncate),this.updateTextInfo()}onMouseEvent(A){if(A.type==="scroll")this.handleScroll(A)}handleScroll(A){if(!A.scroll)return;let{direction:q,delta:g}=A.scroll;if(q==="up")this.scrollY-=g;else if(q==="down")this.scrollY+=g;if(this._wrapMode==="none"){if(q==="left")this.scrollX-=g;else if(q==="right")this.scrollX+=g}}get lineInfo(){return this.textBufferView.logicalLineInfo}get lineCount(){return this.textBuffer.getLineCount()}get virtualLineCount(){return this.textBufferView.getVirtualLineCount()}get scrollY(){return this._scrollY}set scrollY(A){let q=Math.max(0,this.scrollHeight-this.height),g=Math.max(0,Math.min(A,q));if(this._scrollY!==g)this._scrollY=g,this.updateViewportOffset(),this.requestRender()}get scrollX(){return this._scrollX}set scrollX(A){let q=Math.max(0,this.scrollWidth-this.width),g=Math.max(0,Math.min(A,q));if(this._scrollX!==g)this._scrollX=g,this.updateViewportOffset(),this.requestRender()}get scrollWidth(){return this.lineInfo.lineWidthColsMax}get scrollHeight(){return this.lineInfo.lineStartCols.length}get maxScrollY(){return Math.max(0,this.scrollHeight-this.height)}get maxScrollX(){return Math.max(0,this.scrollWidth-this.width)}updateViewportOffset(){if(this.width>0&&this.height>0)this.textBufferView.setViewport(this._scrollX,this._scrollY,this.width,this.height)}get plainText(){return this.textBuffer.getPlainText()}get textLength(){return this.textBuffer.length}get fg(){return this._defaultFg}set fg(A){let q=R(A??this._defaultOptions.fg);if(this._defaultFg!==q)this._defaultFg=q,this.textBuffer.setDefaultFg(this._defaultFg),this.onFgChanged(q),this.requestRender()}get selectionBg(){return this._selectionBg}set selectionBg(A){let q=A?R(A):this._defaultOptions.selectionBg;if(this._selectionBg!==q){if(this._selectionBg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get selectionFg(){return this._selectionFg}set selectionFg(A){let q=A?R(A):this._defaultOptions.selectionFg;if(this._selectionFg!==q){if(this._selectionFg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get bg(){return this._defaultBg}set bg(A){let q=R(A??this._defaultOptions.bg);if(this._defaultBg!==q)this._defaultBg=q,this.textBuffer.setDefaultBg(this._defaultBg),this.onBgChanged(q),this.requestRender()}get attributes(){return this._defaultAttributes}set attributes(A){if(this._defaultAttributes!==A)this._defaultAttributes=A,this.textBuffer.setDefaultAttributes(this._defaultAttributes),this.onAttributesChanged(A),this.requestRender()}get wrapMode(){return this._wrapMode}set wrapMode(A){if(this._wrapMode!==A){if(this._wrapMode=A,this.textBufferView.setWrapMode(this._wrapMode),A!=="none"&&this.width>0)this.textBufferView.setWrapWidth(this.width);this.yogaNode.markDirty(),this.requestRender()}}get tabIndicator(){return this._tabIndicator}set tabIndicator(A){if(this._tabIndicator!==A){if(this._tabIndicator=A,A!==void 0)this.textBufferView.setTabIndicator(A);this.requestRender()}}get tabIndicatorColor(){return this._tabIndicatorColor}set tabIndicatorColor(A){let q=A?R(A):void 0;if(this._tabIndicatorColor!==q){if(this._tabIndicatorColor=q,q!==void 0)this.textBufferView.setTabIndicatorColor(q);this.requestRender()}}get truncate(){return this._truncate}set truncate(A){if(this._truncate!==A)this._truncate=A,this.textBufferView.setTruncate(A),this.requestRender()}onResize(A,q){this.textBufferView.setViewport(this._scrollX,this._scrollY,A,q),this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change")}refreshLocalSelection(){if(this.lastLocalSelection)return this.updateLocalSelection(this.lastLocalSelection);return!1}updateLocalSelection(A){if(!A?.isActive)return this.textBufferView.resetLocalSelection(),!0;return this.textBufferView.setLocalSelection(A.anchorX,A.anchorY,A.focusX,A.focusY,this._selectionBg,this._selectionFg)}updateTextInfo(){if(this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change")}setupMeasureFunc(){let A=(q,g,E,a)=>{let F;if(g===SA.Undefined||isNaN(q))F=0;else F=q;let K=isNaN(E)?1:E,Z=this.textBufferView.measureForDimensions(Math.floor(F),Math.floor(K)),j=Z?Math.max(1,Z.widthColsMax):1,U=Z?Math.max(1,Z.lineCount):1;if(g===SA.AtMost&&this._positionType!=="absolute")return{width:Math.min(F,j),height:Math.min(K,U)};return{width:j,height:U}};this.yogaNode.setMeasureFunc(A)}shouldStartSelection(A,q){if(!this.selectable)return!1;let g=A-this.x,E=q-this.y;return g>=0&&g<this.width&&E>=0&&E<this.height}onSelectionChanged(A){let q=Vg(A,this.x,this.y);this.lastLocalSelection=q;let g;if(!q?.isActive)this.textBufferView.resetLocalSelection(),g=!0;else if(A?.isStart)g=this.textBufferView.setLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg);else g=this.textBufferView.updateLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg);if(g)this.requestRender();return this.hasSelection()}getSelectedText(){return this.textBufferView.getSelectedText()}hasSelection(){return this.textBufferView.hasSelection()}getSelection(){return this.textBufferView.getSelection()}render(A,q){if(!this.visible)return;if(this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.renderSelf(A),this.buffered&&this.frameBuffer)A.drawFrameBuffer(this.x,this.y,this.frameBuffer)}renderSelf(A){if(this.textBuffer.ptr)A.drawTextBuffer(this.textBufferView,this.x,this.y)}destroy(){if(this.isDestroyed)return;this.textBuffer.setSyntaxStyle(null),this._textBufferSyntaxStyle.destroy(),this.textBufferView.destroy(),this.textBuffer.destroy(),super.destroy()}onFgChanged(A){}onBgChanged(A){}onAttributesChanged(A){}};uK=Symbol.for("@opentui/core/TextNodeRenderable");zg=class zg extends Rg{[uK]=!0;_fg;_bg;_attributes;_link;_children=[];parent=null;constructor(A){super(A);this._fg=A.fg?R(A.fg):void 0,this._bg=A.bg?R(A.bg):void 0,this._attributes=A.attributes??0,this._link=A.link}get children(){return this._children}set children(A){this._children=A,this.requestRender()}requestRender(){this.markDirty(),this.parent?.requestRender()}add(A,q){if(typeof A==="string"){if(q!==void 0)return this._children.splice(q,0,A),this.requestRender(),q;let g=this._children.length;return this._children.push(A),this.requestRender(),g}if(L6(A)){if(q!==void 0)return this._children.splice(q,0,A),A.parent=this,this.requestRender(),q;let g=this._children.length;return this._children.push(A),A.parent=this,this.requestRender(),g}if(rF(A)){let g=kK(A);if(q!==void 0)return this._children.splice(q,0,...g),g.forEach((a)=>a.parent=this),this.requestRender(),q;let E=this._children.length;return this._children.push(...g),g.forEach((a)=>a.parent=this),this.requestRender(),E}throw Error("TextNodeRenderable only accepts strings, TextNodeRenderable instances, or StyledText instances")}replace(A,q){if(this._children[q]=A,typeof A!=="string")A.parent=this;this.requestRender()}insertBefore(A,q){if(!q||!L6(q))throw Error("Anchor must be a TextNodeRenderable");let g=this._children.indexOf(q);if(g===-1)throw Error("Anchor node not found in children");if(typeof A==="string")this._children.splice(g,0,A);else if(L6(A))this._children.splice(g,0,A),A.parent=this;else if(A instanceof nq){let E=kK(A);this._children.splice(g,0,...E),E.forEach((a)=>a.parent=this)}else throw Error("Child must be a string, TextNodeRenderable, or StyledText instance");return this.requestRender(),this}remove(A){let q=this.getRenderableIndex(A);if(q===-1)throw Error("Child not found in children");let g=this._children[q];return this._children.splice(q,1),g.parent=null,this.requestRender(),this}clear(){this._children=[],this.requestRender()}mergeStyles(A){return{fg:this._fg??A.fg,bg:this._bg??A.bg,attributes:this._attributes|A.attributes,link:this._link??A.link}}gatherWithInheritedStyle(A={fg:void 0,bg:void 0,attributes:0}){let q=this.mergeStyles(A),g=[];for(let E of this._children)if(typeof E==="string")g.push({__isChunk:!0,text:E,fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});else{let a=E.gatherWithInheritedStyle(q);g.push(...a)}return this.markClean(),g}static fromString(A,q={}){let g=new zg(q);return g.add(A),g}static fromNodes(A,q={}){let g=new zg(q);for(let E of A)g.add(E);return g}toChunks(A={fg:void 0,bg:void 0,attributes:0}){return this.gatherWithInheritedStyle(A)}getChildren(){return this._children.filter((A)=>typeof A!=="string")}getChildrenCount(){return this._children.length}getRenderable(A){return this._children.find((q)=>typeof q!=="string"&&q.id===A)}getRenderableIndex(A){return this._children.findIndex((q)=>L6(q)&&q.id===A)}get fg(){return this._fg}set fg(A){if(!A){this._fg=void 0,this.requestRender();return}this._fg=R(A),this.requestRender()}set bg(A){if(!A){this._bg=void 0,this.requestRender();return}this._bg=R(A),this.requestRender()}get bg(){return this._bg}set attributes(A){this._attributes=A,this.requestRender()}get attributes(){return this._attributes}set link(A){this._link=A,this.requestRender()}get link(){return this._link}findDescendantById(A){return}};lK=class lK extends zg{ctx;textParent;constructor(A,q,g){super(q);this.ctx=A,this.textParent=g}requestRender(){this.markDirty(),this.ctx.requestRender()}};d=class d extends tK{_text;_hasManualStyledText=!1;rootTextNode;_contentDefaultOptions={content:""};constructor(A,q){super(A,q);let g=q.content??this._contentDefaultOptions.content,E=typeof g==="string"?oq(g):g;this._text=E,this._hasManualStyledText=q.content!==void 0&&g!=="",this.rootTextNode=new lK(A,{id:`${this.id}-root`,fg:this._defaultFg,bg:this._defaultBg,attributes:this._defaultAttributes},this),this.updateTextBuffer(E)}updateTextBuffer(A){this.textBuffer.setStyledText(A),this.clearChunks(A)}clearChunks(A){}get content(){return this._text}get chunks(){return this._text.chunks}get textNode(){return this.rootTextNode}set content(A){this._hasManualStyledText=!0;let q=typeof A==="string"?oq(A):A;if(this._text!==q)this._text=q,this.updateTextBuffer(q),this.updateTextInfo()}updateTextFromNodes(){if(this.rootTextNode.isDirty&&!this._hasManualStyledText){let A=this.rootTextNode.gatherWithInheritedStyle({fg:this._defaultFg,bg:this._defaultBg,attributes:this._defaultAttributes,link:void 0});this.textBuffer.setStyledText(new nq(A)),this.refreshLocalSelection(),this.yogaNode.markDirty()}}add(A,q){return this.rootTextNode.add(A,q)}remove(A){this.rootTextNode.remove(A)}insertBefore(A,q){return this.rootTextNode.insertBefore(A,q),this.rootTextNode.children.indexOf(A)}getTextChildren(){return this.rootTextNode.getChildren()}clear(){this.rootTextNode.clear();let A=oq("");this._text=A,this.updateTextBuffer(A),this.updateTextInfo(),this.requestRender()}onLifecyclePass=()=>{this.updateTextFromNodes()};onFgChanged(A){this.rootTextNode.fg=A}onBgChanged(A){this.rootTextNode.bg=A}onAttributesChanged(A){this.rootTextNode.attributes=A}destroy(){this.rootTextNode.children.length=0,super.destroy()}};sK=class sK extends OA{_focusable=!0;selectable=!0;_textColor;_backgroundColor;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";_scrollMargin=0.2;_showCursor=!0;_cursorColor;_cursorStyle;lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_cursorChangeListener=void 0;_contentChangeListener=void 0;_autoScrollVelocity=0;_autoScrollAccumulator=0;_scrollSpeed=16;_keyboardSelectionActive=!1;editBuffer;editorView;_defaultOptions={textColor:AA.fromValues(1,1,1,1),backgroundColor:"transparent",selectionBg:void 0,selectionFg:void 0,selectable:!0,attributes:0,wrapMode:"word",scrollMargin:0.2,scrollSpeed:16,showCursor:!0,cursorColor:AA.fromValues(1,1,1,1),cursorStyle:{style:"block",blinking:!0},tabIndicator:void 0,tabIndicatorColor:void 0};constructor(A,q){super(A,q);if(this._textColor=R(q.textColor??this._defaultOptions.textColor),this._backgroundColor=R(q.backgroundColor??this._defaultOptions.backgroundColor),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?R(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?R(q.selectionFg):this._defaultOptions.selectionFg,this.selectable=q.selectable??this._defaultOptions.selectable,this._wrapMode=q.wrapMode??this._defaultOptions.wrapMode,this._scrollMargin=q.scrollMargin??this._defaultOptions.scrollMargin,this._scrollSpeed=q.scrollSpeed??this._defaultOptions.scrollSpeed,this._showCursor=q.showCursor??this._defaultOptions.showCursor,this._cursorColor=R(q.cursorColor??this._defaultOptions.cursorColor),this._cursorStyle=q.cursorStyle??this._defaultOptions.cursorStyle,this._tabIndicator=q.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=q.tabIndicatorColor?R(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this.editBuffer=Qq.create(this._ctx.widthMethod),this.editorView=eE.create(this.editBuffer,this.width||80,this.height||24),this.editorView.setWrapMode(this._wrapMode),this.editorView.setScrollMargin(this._scrollMargin),this.editBuffer.setDefaultFg(this._textColor),this.editBuffer.setDefaultBg(this._backgroundColor),this.editBuffer.setDefaultAttributes(this._defaultAttributes),q.syntaxStyle)this.editBuffer.setSyntaxStyle(q.syntaxStyle);if(this._tabIndicator!==void 0)this.editorView.setTabIndicator(this._tabIndicator);if(this._tabIndicatorColor!==void 0)this.editorView.setTabIndicatorColor(this._tabIndicatorColor);this.setupMeasureFunc(),this.setupEventListeners(q)}get lineInfo(){return this.editorView.getLogicalLineInfo()}setupEventListeners(A){this._cursorChangeListener=A.onCursorChange,this._contentChangeListener=A.onContentChange,this.editBuffer.on("cursor-changed",()=>{if(this._cursorChangeListener){let q=this.editBuffer.getCursorPosition();this._cursorChangeListener({line:q.row,visualColumn:q.col})}}),this.editBuffer.on("content-changed",()=>{if(this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change"),this._contentChangeListener)this._contentChangeListener({})})}get lineCount(){return this.editBuffer.getLineCount()}get virtualLineCount(){return this.editorView.getVirtualLineCount()}get scrollY(){return this.editorView.getViewport().offsetY}get plainText(){return this.editBuffer.getText()}get logicalCursor(){return this.editBuffer.getCursorPosition()}get visualCursor(){return this.editorView.getVisualCursor()}get cursorOffset(){return this.editorView.getVisualCursor().offset}set cursorOffset(A){this.editorView.setCursorByOffset(A),this.requestRender()}get textColor(){return this._textColor}set textColor(A){let q=R(A??this._defaultOptions.textColor);if(this._textColor!==q)this._textColor=q,this.editBuffer.setDefaultFg(q),this.requestRender()}get selectionBg(){return this._selectionBg}set selectionBg(A){let q=A?R(A):this._defaultOptions.selectionBg;if(this._selectionBg!==q){if(this._selectionBg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get selectionFg(){return this._selectionFg}set selectionFg(A){let q=A?R(A):this._defaultOptions.selectionFg;if(this._selectionFg!==q){if(this._selectionFg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){let q=R(A??this._defaultOptions.backgroundColor);if(this._backgroundColor!==q)this._backgroundColor=q,this.editBuffer.setDefaultBg(q),this.requestRender()}get attributes(){return this._defaultAttributes}set attributes(A){if(this._defaultAttributes!==A)this._defaultAttributes=A,this.editBuffer.setDefaultAttributes(A),this.requestRender()}get wrapMode(){return this._wrapMode}set wrapMode(A){if(this._wrapMode!==A)this._wrapMode=A,this.editorView.setWrapMode(A),this.yogaNode.markDirty(),this.requestRender()}get showCursor(){return this._showCursor}set showCursor(A){if(this._showCursor!==A){if(this._showCursor=A,!A&&this._focused)this._ctx.setCursorPosition(0,0,!1);this.requestRender()}}get cursorColor(){return this._cursorColor}set cursorColor(A){let q=R(A);if(this._cursorColor!==q){if(this._cursorColor=q,this._focused)this.requestRender()}}get cursorStyle(){return this._cursorStyle}set cursorStyle(A){let q=A;if(this.cursorStyle.style!==q.style||this.cursorStyle.blinking!==q.blinking){if(this._cursorStyle=q,this._focused)this.requestRender()}}get tabIndicator(){return this._tabIndicator}set tabIndicator(A){if(this._tabIndicator!==A){if(this._tabIndicator=A,A!==void 0)this.editorView.setTabIndicator(A);this.requestRender()}}get tabIndicatorColor(){return this._tabIndicatorColor}set tabIndicatorColor(A){let q=A?R(A):void 0;if(this._tabIndicatorColor!==q){if(this._tabIndicatorColor=q,q!==void 0)this.editorView.setTabIndicatorColor(q);this.requestRender()}}get scrollSpeed(){return this._scrollSpeed}set scrollSpeed(A){this._scrollSpeed=Math.max(0,A)}onMouseEvent(A){if(A.type==="scroll")this.handleScroll(A)}handleScroll(A){if(!A.scroll)return;let{direction:q,delta:g}=A.scroll,E=this.editorView.getViewport();if(q==="up"){let a=Math.max(0,E.offsetY-g);this.editorView.setViewport(E.offsetX,a,E.width,E.height,!0),this.requestRender()}else if(q==="down"){let a=this.editorView.getTotalVirtualLineCount(),F=Math.max(0,a-E.height),K=Math.min(E.offsetY+g,F);this.editorView.setViewport(E.offsetX,K,E.width,E.height,!0),this.requestRender()}if(this._wrapMode==="none"){if(q==="left"){let a=Math.max(0,E.offsetX-g);this.editorView.setViewport(a,E.offsetY,E.width,E.height,!0),this.requestRender()}else if(q==="right"){let a=E.offsetX+g;this.editorView.setViewport(a,E.offsetY,E.width,E.height,!0),this.requestRender()}}}onResize(A,q){this.editorView.setViewportSize(A,q)}refreshLocalSelection(){if(this.lastLocalSelection)return this.updateLocalSelection(this.lastLocalSelection);return!1}updateLocalSelection(A){if(!A?.isActive)return this.editorView.resetLocalSelection(),!0;return this.editorView.setLocalSelection(A.anchorX,A.anchorY,A.focusX,A.focusY,this._selectionBg,this._selectionFg,!1)}shouldStartSelection(A,q){if(!this.selectable)return!1;let g=A-this.x,E=q-this.y;return g>=0&&g<this.width&&E>=0&&E<this.height}onSelectionChanged(A){let q=Vg(A,this.x,this.y);this.lastLocalSelection=q;let g=!0,E=this._keyboardSelectionActive,a;if(!q?.isActive)this._keyboardSelectionActive=!1,this.editorView.resetLocalSelection(),a=!0;else if(A?.isStart)a=this.editorView.setLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg,g,E);else a=this.editorView.updateLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg,g,E);if(a&&q?.isActive&&A?.isDragging){let F=this.editorView.getViewport(),K=q.focusY,Z=Math.max(1,Math.floor(F.height*this._scrollMargin));if(K<Z)this._autoScrollVelocity=-this._scrollSpeed;else if(K>=F.height-Z)this._autoScrollVelocity=this._scrollSpeed;else this._autoScrollVelocity=0}else this._keyboardSelectionActive=!1,this._autoScrollVelocity=0,this._autoScrollAccumulator=0;if(a)this.requestRender();return this.hasSelection()}onUpdate(A){if(super.onUpdate(A),this._autoScrollVelocity!==0&&this.hasSelection()){let q=A/1000;this._autoScrollAccumulator+=this._autoScrollVelocity*q;let g=Math.floor(Math.abs(this._autoScrollAccumulator));if(g>0){let E=this._autoScrollVelocity>0?1:-1,a=this.editorView.getViewport(),F=this.editorView.getTotalVirtualLineCount(),K=Math.max(0,F-a.height),Z=Math.max(0,Math.min(a.offsetY+E*g,K));if(Z!==a.offsetY)this.editorView.setViewport(a.offsetX,Z,a.width,a.height,!1),this._ctx.requestSelectionUpdate();this._autoScrollAccumulator-=E*g}}}getSelectedText(){return this.editorView.getSelectedText()}hasSelection(){return this.editorView.hasSelection()}getSelection(){return this.editorView.getSelection()}setupMeasureFunc(){let A=(q,g,E,a)=>{let F;if(g===SA.Undefined||isNaN(q))F=0;else F=q;let K=isNaN(E)?1:E,Z=this.editorView.measureForDimensions(Math.floor(F),Math.floor(K)),j=Z?Math.max(1,Z.widthColsMax):1,U=Z?Math.max(1,Z.lineCount):1;if(g===SA.AtMost&&this._positionType!=="absolute")return{width:Math.min(F,j),height:Math.min(K,U)};return{width:j,height:U}};this.yogaNode.setMeasureFunc(A)}render(A,q){if(!this.visible)return;if(this.isDestroyed)return;this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.renderSelf(A),this.renderCursor(A)}renderSelf(A){A.drawEditorView(this.editorView,this.x,this.y)}renderCursor(A){if(!this._showCursor||!this._focused)return;let q=this.editorView.getVisualCursor(),g=this.x+q.visualCol+1,E=this.y+q.visualRow+1;this._ctx.setCursorPosition(g,E,!0),this._ctx.setCursorStyle({...this._cursorStyle,color:this._cursorColor})}focus(){super.focus(),this._ctx.setCursorStyle({...this._cursorStyle,color:this._cursorColor}),this.requestRender()}blur(){super.blur(),this._ctx.setCursorPosition(0,0,!1),this.requestRender()}onRemove(){if(this._focused)this._ctx.setCursorPosition(0,0,!1)}destroy(){if(this.isDestroyed)return;if(this._focused)this._ctx.setCursorPosition(0,0,!1),this.blur();this.editorView.destroy(),this.editBuffer.destroy(),super.destroy()}set onCursorChange(A){this._cursorChangeListener=A}get onCursorChange(){return this._cursorChangeListener}set onContentChange(A){this._contentChangeListener=A}get onContentChange(){return this._contentChangeListener}get syntaxStyle(){return this.editBuffer.getSyntaxStyle()}set syntaxStyle(A){this.editBuffer.setSyntaxStyle(A),this.requestRender()}addHighlight(A,q){this.editBuffer.addHighlight(A,q),this.requestRender()}addHighlightByCharRange(A){this.editBuffer.addHighlightByCharRange(A),this.requestRender()}removeHighlightsByRef(A){this.editBuffer.removeHighlightsByRef(A),this.requestRender()}clearLineHighlights(A){this.editBuffer.clearLineHighlights(A),this.requestRender()}clearAllHighlights(){this.editBuffer.clearAllHighlights(),this.requestRender()}getLineHighlights(A){return this.editBuffer.getLineHighlights(A)}setText(A){this.editBuffer.setText(A),this.yogaNode.markDirty(),this.requestRender()}replaceText(A){this.editBuffer.replaceText(A),this.yogaNode.markDirty(),this.requestRender()}clear(){this.editBuffer.clear(),this.editBuffer.clearAllHighlights(),this.yogaNode.markDirty(),this.requestRender()}deleteRange(A,q,g,E){this.editBuffer.deleteRange(A,q,g,E),this.yogaNode.markDirty(),this.requestRender()}insertText(A){this.editBuffer.insertText(A),this.yogaNode.markDirty(),this.requestRender()}getTextRange(A,q){return this.editBuffer.getTextRange(A,q)}getTextRangeByCoords(A,q,g,E){return this.editBuffer.getTextRangeByCoords(A,q,g,E)}updateSelectionForMovement(A,q){if(!this.selectable)return;if(!A){this._keyboardSelectionActive=!1,this._ctx.clearSelection();return}this._keyboardSelectionActive=!0;let g=this.editorView.getVisualCursor(),E=this.x+g.visualCol,a=this.y+g.visualRow;if(q){if(!this._ctx.hasSelection)this._ctx.startSelection(this,E,a);return}this._ctx.updateSelection(this,E,a,{finishDragging:!0})}};sE=[{name:"left",action:"move-left"},{name:"right",action:"move-right"},{name:"up",action:"move-up"},{name:"down",action:"move-down"},{name:"left",shift:!0,action:"select-left"},{name:"right",shift:!0,action:"select-right"},{name:"up",shift:!0,action:"select-up"},{name:"down",shift:!0,action:"select-down"},{name:"home",action:"buffer-home"},{name:"end",action:"buffer-end"},{name:"home",shift:!0,action:"select-buffer-home"},{name:"end",shift:!0,action:"select-buffer-end"},{name:"a",ctrl:!0,action:"line-home"},{name:"e",ctrl:!0,action:"line-end"},{name:"a",ctrl:!0,shift:!0,action:"select-line-home"},{name:"e",ctrl:!0,shift:!0,action:"select-line-end"},{name:"a",meta:!0,action:"visual-line-home"},{name:"e",meta:!0,action:"visual-line-end"},{name:"a",meta:!0,shift:!0,action:"select-visual-line-home"},{name:"e",meta:!0,shift:!0,action:"select-visual-line-end"},{name:"f",ctrl:!0,action:"move-right"},{name:"b",ctrl:!0,action:"move-left"},{name:"w",ctrl:!0,action:"delete-word-backward"},{name:"backspace",ctrl:!0,action:"delete-word-backward"},{name:"d",meta:!0,action:"delete-word-forward"},{name:"delete",meta:!0,action:"delete-word-forward"},{name:"delete",ctrl:!0,action:"delete-word-forward"},{name:"d",ctrl:!0,shift:!0,action:"delete-line"},{name:"k",ctrl:!0,action:"delete-to-line-end"},{name:"u",ctrl:!0,action:"delete-to-line-start"},{name:"backspace",action:"backspace"},{name:"backspace",shift:!0,action:"backspace"},{name:"d",ctrl:!0,action:"delete"},{name:"delete",action:"delete"},{name:"delete",shift:!0,action:"delete"},{name:"return",action:"newline"},{name:"linefeed",action:"newline"},{name:"return",meta:!0,action:"submit"},{name:"-",ctrl:!0,action:"undo"},{name:".",ctrl:!0,action:"redo"},{name:"z",super:!0,action:"undo"},{name:"z",super:!0,shift:!0,action:"redo"},{name:"f",meta:!0,action:"word-forward"},{name:"b",meta:!0,action:"word-backward"},{name:"right",meta:!0,action:"word-forward"},{name:"left",meta:!0,action:"word-backward"},{name:"right",ctrl:!0,action:"word-forward"},{name:"left",ctrl:!0,action:"word-backward"},{name:"f",meta:!0,shift:!0,action:"select-word-forward"},{name:"b",meta:!0,shift:!0,action:"select-word-backward"},{name:"right",meta:!0,shift:!0,action:"select-word-forward"},{name:"left",meta:!0,shift:!0,action:"select-word-backward"},{name:"backspace",meta:!0,action:"delete-word-backward"},{name:"left",super:!0,action:"visual-line-home"},{name:"right",super:!0,action:"visual-line-end"},{name:"up",super:!0,action:"buffer-home"},{name:"down",super:!0,action:"buffer-end"},{name:"left",super:!0,shift:!0,action:"select-visual-line-home"},{name:"right",super:!0,shift:!0,action:"select-visual-line-end"},{name:"up",super:!0,shift:!0,action:"select-buffer-home"},{name:"down",super:!0,shift:!0,action:"select-buffer-end"},{name:"a",super:!0,action:"select-all"}];Yq=class Yq extends sK{_placeholder;_placeholderColor;_unfocusedBackgroundColor;_unfocusedTextColor;_focusedBackgroundColor;_focusedTextColor;_keyBindingsMap;_keyAliasMap;_keyBindings;_actionHandlers;_initialValueSet=!1;_submitListener=void 0;static defaults={backgroundColor:"transparent",textColor:"#FFFFFF",focusedBackgroundColor:"transparent",focusedTextColor:"#FFFFFF",placeholder:null,placeholderColor:"#666666"};constructor(A,q){let g=Yq.defaults,E={...q,backgroundColor:q.backgroundColor||g.backgroundColor,textColor:q.textColor||g.textColor};super(A,E);this._unfocusedBackgroundColor=R(q.backgroundColor||g.backgroundColor),this._unfocusedTextColor=R(q.textColor||g.textColor),this._focusedBackgroundColor=R(q.focusedBackgroundColor||q.backgroundColor||g.focusedBackgroundColor),this._focusedTextColor=R(q.focusedTextColor||q.textColor||g.focusedTextColor),this._placeholder=q.placeholder??g.placeholder,this._placeholderColor=R(q.placeholderColor??g.placeholderColor),this._keyAliasMap=_q(Uq,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[];let a=xA(sE,this._keyBindings);if(this._keyBindingsMap=RA(a,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._submitListener=q.onSubmit,q.initialValue)this.setText(q.initialValue),this._initialValueSet=!0;this.updateColors(),this.applyPlaceholder(this._placeholder)}applyPlaceholder(A){if(A===null){this.editorView.setPlaceholderStyledText([]);return}if(typeof A==="string"){let g=[nF(this._placeholderColor)(A)];this.editorView.setPlaceholderStyledText(g)}else this.editorView.setPlaceholderStyledText(A.chunks)}buildActionHandlers(){return new Map([["move-left",()=>this.moveCursorLeft()],["move-right",()=>this.moveCursorRight()],["move-up",()=>this.moveCursorUp()],["move-down",()=>this.moveCursorDown()],["select-left",()=>this.moveCursorLeft({select:!0})],["select-right",()=>this.moveCursorRight({select:!0})],["select-up",()=>this.moveCursorUp({select:!0})],["select-down",()=>this.moveCursorDown({select:!0})],["line-home",()=>this.gotoLineHome()],["line-end",()=>this.gotoLineEnd()],["select-line-home",()=>this.gotoLineHome({select:!0})],["select-line-end",()=>this.gotoLineEnd({select:!0})],["visual-line-home",()=>this.gotoVisualLineHome()],["visual-line-end",()=>this.gotoVisualLineEnd()],["select-visual-line-home",()=>this.gotoVisualLineHome({select:!0})],["select-visual-line-end",()=>this.gotoVisualLineEnd({select:!0})],["select-buffer-home",()=>this.gotoBufferHome({select:!0})],["select-buffer-end",()=>this.gotoBufferEnd({select:!0})],["buffer-home",()=>this.gotoBufferHome()],["buffer-end",()=>this.gotoBufferEnd()],["delete-line",()=>this.deleteLine()],["delete-to-line-end",()=>this.deleteToLineEnd()],["delete-to-line-start",()=>this.deleteToLineStart()],["backspace",()=>this.deleteCharBackward()],["delete",()=>this.deleteChar()],["newline",()=>this.newLine()],["undo",()=>this.undo()],["redo",()=>this.redo()],["word-forward",()=>this.moveWordForward()],["word-backward",()=>this.moveWordBackward()],["select-word-forward",()=>this.moveWordForward({select:!0})],["select-word-backward",()=>this.moveWordBackward({select:!0})],["delete-word-forward",()=>this.deleteWordForward()],["delete-word-backward",()=>this.deleteWordBackward()],["select-all",()=>this.selectAll()],["submit",()=>this.submit()]])}handlePaste(A){this.insertText(A.text)}handleKeyPress(A){let q=Oq({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"move-left"}),g=this._keyBindingsMap.get(q);if(g){let E=this._actionHandlers.get(g);if(E)return E()}if(!A.ctrl&&!A.meta&&!A.super&&!A.hyper){if(A.name==="space")return this.insertText(" "),!0;if(A.sequence){let E=A.sequence.charCodeAt(0);if(E<32)return!1;if(E===127)return!1;return this.insertText(A.sequence),!0}}return!1}updateColors(){let A=this._focused?this._focusedBackgroundColor:this._unfocusedBackgroundColor,q=this._focused?this._focusedTextColor:this._unfocusedTextColor;super.backgroundColor=A,super.textColor=q}insertChar(A){if(this.hasSelection())this.deleteSelectedText();this.editBuffer.insertChar(A),this.requestRender()}insertText(A){if(this.hasSelection())this.deleteSelectedText();this.editBuffer.insertText(A),this.requestRender()}deleteChar(){if(this.hasSelection())return this.deleteSelectedText(),!0;return this._ctx.clearSelection(),this.editBuffer.deleteChar(),this.requestRender(),!0}deleteCharBackward(){if(this.hasSelection())return this.deleteSelectedText(),!0;return this._ctx.clearSelection(),this.editBuffer.deleteCharBackward(),this.requestRender(),!0}deleteSelectedText(){this.editorView.deleteSelectedText(),this._ctx.clearSelection(),this.requestRender()}newLine(){return this._ctx.clearSelection(),this.editBuffer.newLine(),this.requestRender(),!0}deleteLine(){return this._ctx.clearSelection(),this.editBuffer.deleteLine(),this.requestRender(),!0}moveCursorLeft(A){let q=A?.select??!1;if(!q&&this.hasSelection()){let g=this.getSelection();return this.editBuffer.setCursorByOffset(g.start),this._ctx.clearSelection(),this.requestRender(),!0}return this.updateSelectionForMovement(q,!0),this.editBuffer.moveCursorLeft(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorRight(A){let q=A?.select??!1;if(!q&&this.hasSelection()){let g=this.getSelection(),E=this.cursorOffset===g.start?g.end-1:g.end;return this.editBuffer.setCursorByOffset(E),this._ctx.clearSelection(),this.requestRender(),!0}return this.updateSelectionForMovement(q,!0),this.editBuffer.moveCursorRight(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorUp(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editorView.moveUpVisual(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorDown(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editorView.moveDownVisual(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoLine(A){this.editBuffer.gotoLine(A),this.requestRender()}gotoLineHome(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getCursor();if(g.col===0&&g.row>0){this.editBuffer.setCursor(g.row-1,0);let E=this.editBuffer.getEOL();this.editBuffer.setCursor(E.row,E.col)}else this.editBuffer.setCursor(g.row,0);return this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoLineEnd(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getCursor(),E=this.editBuffer.getEOL(),a=this.editBuffer.getLineCount();if(g.col===E.col&&g.row<a-1)this.editBuffer.setCursor(g.row+1,0);else this.editBuffer.setCursor(E.row,E.col);return this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoVisualLineHome(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getVisualSOL();return this.editBuffer.setCursor(g.logicalRow,g.logicalCol),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoVisualLineEnd(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getVisualEOL();return this.editBuffer.setCursor(g.logicalRow,g.logicalCol),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoBufferHome(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.setCursor(0,0),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoBufferEnd(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.gotoLine(999999),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}selectAll(){return this.updateSelectionForMovement(!1,!0),this.editBuffer.setCursor(0,0),this.gotoBufferEnd({select:!0})}deleteToLineEnd(){let A=this.editorView.getCursor(),q=this.editBuffer.getEOL();if(q.col>A.col)this.editBuffer.deleteRange(A.row,A.col,q.row,q.col);return this.requestRender(),!0}deleteToLineStart(){let A=this.editorView.getCursor();if(A.col>0)this.editBuffer.deleteRange(A.row,0,A.row,A.col);return this.requestRender(),!0}undo(){return this._ctx.clearSelection(),this.editBuffer.undo(),this.requestRender(),!0}redo(){return this._ctx.clearSelection(),this.editBuffer.redo(),this.requestRender(),!0}moveWordForward(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editBuffer.getNextWordBoundary();return this.editBuffer.setCursorByOffset(g.offset),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveWordBackward(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editBuffer.getPrevWordBoundary();return this.editBuffer.setCursorByOffset(g.offset),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}deleteWordForward(){if(this.hasSelection())return this.deleteSelectedText(),!0;let A=this.editBuffer.getCursorPosition(),q=this.editBuffer.getNextWordBoundary();if(q.offset>A.offset)this.editBuffer.deleteRange(A.row,A.col,q.row,q.col);return this._ctx.clearSelection(),this.requestRender(),!0}deleteWordBackward(){if(this.hasSelection())return this.deleteSelectedText(),!0;let A=this.editBuffer.getCursorPosition(),q=this.editBuffer.getPrevWordBoundary();if(q.offset<A.offset)this.editBuffer.deleteRange(q.row,q.col,A.row,A.col);return this._ctx.clearSelection(),this.requestRender(),!0}focus(){super.focus(),this.updateColors()}blur(){if(super.blur(),!this.isDestroyed)this.updateColors()}get placeholder(){return this._placeholder}set placeholder(A){let q=A??null;if(this._placeholder!==q)this._placeholder=q,this.applyPlaceholder(q),this.requestRender()}get placeholderColor(){return this._placeholderColor}set placeholderColor(A){let q=R(A??Yq.defaults.placeholderColor);if(this._placeholderColor!==q)this._placeholderColor=q,this.applyPlaceholder(this._placeholder),this.requestRender()}get backgroundColor(){return this._unfocusedBackgroundColor}set backgroundColor(A){let q=R(A??Yq.defaults.backgroundColor);if(this._unfocusedBackgroundColor!==q)this._unfocusedBackgroundColor=q,this.updateColors()}get textColor(){return this._unfocusedTextColor}set textColor(A){let q=R(A??Yq.defaults.textColor);if(this._unfocusedTextColor!==q)this._unfocusedTextColor=q,this.updateColors()}set focusedBackgroundColor(A){let q=R(A??Yq.defaults.focusedBackgroundColor);if(this._focusedBackgroundColor!==q)this._focusedBackgroundColor=q,this.updateColors()}set focusedTextColor(A){let q=R(A??Yq.defaults.focusedTextColor);if(this._focusedTextColor!==q)this._focusedTextColor=q,this.updateColors()}set initialValue(A){if(!this._initialValueSet)this.setText(A),this._initialValueSet=!0}submit(){if(this._submitListener)this._submitListener({});return!0}set onSubmit(A){this._submitListener=A}get onSubmit(){return this._submitListener}set keyBindings(A){this._keyBindings=A;let q=xA(sE,A);this._keyBindingsMap=RA(q,this._keyAliasMap)}set keyAliasMap(A){this._keyAliasMap=_q(Uq,A);let q=xA(sE,this._keyBindings);this._keyBindingsMap=RA(q,this._keyAliasMap)}get extmarks(){return this.editorView.extmarks}};((A)=>{A.INPUT="input",A.CHANGE="change",A.ENTER="enter"})(s_||={});i_=class i_ extends OA{_content;_wrapMode;_columnWidthMode;_columnFitter;_cellPadding;_showBorders;_border;_outerBorder;_hasExplicitOuterBorder;_borderStyle;_borderColor;_borderBackgroundColor;_backgroundColor;_defaultFg;_defaultBg;_defaultAttributes;_selectionBg;_selectionFg;_lastLocalSelection=null;_lastSelectionMode=null;_cells=[];_prevCellContent=[];_rowCount=0;_columnCount=0;_layout=this.createEmptyLayout();_layoutDirty=!0;_rasterDirty=!0;_cachedMeasureLayout=null;_cachedMeasureWidth=void 0;_defaultOptions={content:[],wrapMode:"word",columnWidthMode:"full",columnFitter:"proportional",cellPadding:0,showBorders:!0,border:!0,outerBorder:!0,selectable:!0,selectionBg:void 0,selectionFg:void 0,borderStyle:"single",borderColor:"#FFFFFF",borderBackgroundColor:"transparent",backgroundColor:"transparent",fg:"#FFFFFF",bg:"transparent",attributes:0};constructor(A,q={}){super(A,{...q,flexShrink:q.flexShrink??0,buffered:!0});this._content=q.content??this._defaultOptions.content,this._wrapMode=q.wrapMode??this._defaultOptions.wrapMode,this._columnWidthMode=q.columnWidthMode??this._defaultOptions.columnWidthMode,this._columnFitter=this.resolveColumnFitter(q.columnFitter),this._cellPadding=this.resolveCellPadding(q.cellPadding),this._showBorders=q.showBorders??this._defaultOptions.showBorders,this._border=q.border??this._defaultOptions.border,this._hasExplicitOuterBorder=q.outerBorder!==void 0,this._outerBorder=q.outerBorder??this._border,this.selectable=q.selectable??this._defaultOptions.selectable,this._selectionBg=q.selectionBg?R(q.selectionBg):void 0,this._selectionFg=q.selectionFg?R(q.selectionFg):void 0,this._borderStyle=iq(q.borderStyle,this._defaultOptions.borderStyle),this._borderColor=R(q.borderColor??this._defaultOptions.borderColor),this._borderBackgroundColor=R(q.borderBackgroundColor??this._defaultOptions.borderBackgroundColor),this._backgroundColor=R(q.backgroundColor??this._defaultOptions.backgroundColor),this._defaultFg=R(q.fg??this._defaultOptions.fg),this._defaultBg=R(q.bg??this._defaultOptions.bg),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this.setupMeasureFunc(),this.rebuildCells()}get content(){return this._content}set content(A){this._content=A??[],this.rebuildCells()}get wrapMode(){return this._wrapMode}set wrapMode(A){if(this._wrapMode===A)return;this._wrapMode=A;for(let q of this._cells)for(let g of q)g.textBufferView.setWrapMode(A);this.invalidateLayoutAndRaster()}get columnWidthMode(){return this._columnWidthMode}set columnWidthMode(A){if(this._columnWidthMode===A)return;this._columnWidthMode=A,this.invalidateLayoutAndRaster()}get columnFitter(){return this._columnFitter}set columnFitter(A){let q=this.resolveColumnFitter(A);if(this._columnFitter===q)return;this._columnFitter=q,this.invalidateLayoutAndRaster()}get cellPadding(){return this._cellPadding}set cellPadding(A){let q=this.resolveCellPadding(A);if(this._cellPadding===q)return;this._cellPadding=q,this.invalidateLayoutAndRaster()}get showBorders(){return this._showBorders}set showBorders(A){if(this._showBorders===A)return;this._showBorders=A,this.invalidateRasterOnly()}get outerBorder(){return this._outerBorder}set outerBorder(A){if(this._outerBorder===A)return;this._hasExplicitOuterBorder=!0,this._outerBorder=A,this.invalidateLayoutAndRaster()}get border(){return this._border}set border(A){if(this._border===A)return;if(this._border=A,!this._hasExplicitOuterBorder)this._outerBorder=A;this.invalidateLayoutAndRaster()}get borderStyle(){return this._borderStyle}set borderStyle(A){let q=iq(A,this._defaultOptions.borderStyle);if(this._borderStyle===q)return;this._borderStyle=q,this.invalidateRasterOnly()}get borderColor(){return this._borderColor}set borderColor(A){let q=R(A);if(this._borderColor===q)return;this._borderColor=q,this.invalidateRasterOnly()}shouldStartSelection(A,q){if(!this.selectable)return!1;this.ensureLayoutReady();let g=A-this.x,E=q-this.y;return this.getCellAtLocalPosition(g,E)!==null}onSelectionChanged(A){this.ensureLayoutReady();let q=this._lastLocalSelection,g=Vg(A,this.x,this.y);this._lastLocalSelection=g;let E=this.getDirtySelectionRowRange(q,g);if(!g?.isActive)this.resetCellSelections(),this._lastSelectionMode=null;else this.applySelectionToCells(g,A?.isStart??!1);if(E!==null)this.redrawSelectionRows(E.firstRow,E.lastRow);return this.hasSelection()}hasSelection(){for(let A of this._cells)for(let q of A)if(q.textBufferView.hasSelection())return!0;return!1}getSelection(){for(let A of this._cells)for(let q of A){let g=q.textBufferView.getSelection();if(g)return g}return null}getSelectedText(){let A=[];for(let q=0;q<this._rowCount;q++){let g=[];for(let E=0;E<this._columnCount;E++){let a=this._cells[q]?.[E];if(!a||!a.textBufferView.hasSelection())continue;let F=a.textBufferView.getSelectedText();if(F.length>0)g.push(F)}if(g.length>0)A.push(g.join("\t"))}return A.join(`
93
- `)}onResize(A,q){this.invalidateLayoutAndRaster(!1),super.onResize(A,q)}renderSelf(A){if(!this.visible||this.isDestroyed)return;if(this._layoutDirty)this.rebuildLayoutForCurrentWidth();if(!this._rasterDirty)return;if(A.clear(this._backgroundColor),this._rowCount===0||this._columnCount===0){this._rasterDirty=!1;return}this.drawBorders(A),this.drawCells(A),this._rasterDirty=!1}destroySelf(){this.destroyCells(),super.destroySelf()}setupMeasureFunc(){let A=(q,g,E,a)=>{let K=g!==SA.Undefined&&Number.isFinite(q)?Math.max(1,Math.floor(q)):void 0,Z=this.resolveLayoutWidthConstraint(K),j=this.computeLayout(Z);this._cachedMeasureLayout=j,this._cachedMeasureWidth=Z;let U=j.tableWidth>0?j.tableWidth:1,O=j.tableHeight>0?j.tableHeight:1;if(g===SA.AtMost&&K!==void 0&&this._positionType!=="absolute")U=Math.min(K,U);return{width:U,height:O}};this.yogaNode.setMeasureFunc(A)}rebuildCells(){let A=this._content.length,q=this._content.reduce((g,E)=>Math.max(g,E.length),0);if(this._cells.length===0){this._rowCount=A,this._columnCount=q,this._cells=[],this._prevCellContent=[];for(let g=0;g<A;g++){let E=this._content[g]??[],a=[],F=[];for(let K=0;K<q;K++){let Z=E[K];a.push(this.createCell(Z)),F.push(Z)}this._cells.push(a),this._prevCellContent.push(F)}this.invalidateLayoutAndRaster();return}this.updateCellsDiff(A,q),this.invalidateLayoutAndRaster()}updateCellsDiff(A,q){let g=this._rowCount,E=this._columnCount,a=Math.min(g,A),F=Math.min(E,q);for(let K=0;K<a;K++){let Z=this._content[K]??[],j=this._cells[K],U=this._prevCellContent[K];for(let O=0;O<F;O++){let Q=Z[O];if(Q===U[O])continue;let M=j[O];M.textBufferView.destroy(),M.textBuffer.destroy(),M.syntaxStyle.destroy(),j[O]=this.createCell(Q),U[O]=Q}if(q>E)for(let O=E;O<q;O++){let Q=Z[O];j.push(this.createCell(Q)),U.push(Q)}else if(q<E){for(let O=q;O<E;O++){let Q=j[O];Q.textBufferView.destroy(),Q.textBuffer.destroy(),Q.syntaxStyle.destroy()}j.length=q,U.length=q}}if(A>g)for(let K=g;K<A;K++){let Z=this._content[K]??[],j=[],U=[];for(let O=0;O<q;O++){let Q=Z[O];j.push(this.createCell(Q)),U.push(Q)}this._cells.push(j),this._prevCellContent.push(U)}else if(A<g){for(let K=A;K<g;K++){let Z=this._cells[K];for(let j of Z)j.textBufferView.destroy(),j.textBuffer.destroy(),j.syntaxStyle.destroy()}this._cells.length=A,this._prevCellContent.length=A}this._rowCount=A,this._columnCount=q}createCell(A){let q=this.toStyledText(A),g=xg.create(this._ctx.widthMethod),E=qg.create();g.setDefaultFg(this._defaultFg),g.setDefaultBg(this._defaultBg),g.setDefaultAttributes(this._defaultAttributes),g.setSyntaxStyle(E),g.setStyledText(q);let a=P6.create(g);return a.setWrapMode(this._wrapMode),{textBuffer:g,textBufferView:a,syntaxStyle:E}}toStyledText(A){if(Array.isArray(A))return new nq(A);if(A===null||A===void 0)return oq("");return oq(String(A))}destroyCells(){for(let A of this._cells)for(let q of A)q.textBufferView.destroy(),q.textBuffer.destroy(),q.syntaxStyle.destroy();this._cells=[],this._prevCellContent=[],this._rowCount=0,this._columnCount=0,this._layout=this.createEmptyLayout()}rebuildLayoutForCurrentWidth(){let A=this.resolveLayoutWidthConstraint(this.width),q;if(this._cachedMeasureLayout!==null&&this._cachedMeasureWidth===A)q=this._cachedMeasureLayout;else q=this.computeLayout(A);if(this._cachedMeasureLayout=null,this._cachedMeasureWidth=void 0,this._layout=q,this.applyLayoutToViews(q),this._layoutDirty=!1,this._lastLocalSelection?.isActive)this.applySelectionToCells(this._lastLocalSelection,!0)}computeLayout(A){if(this._rowCount===0||this._columnCount===0)return this.createEmptyLayout();let q=this.resolveBorderLayout(),g=this.computeColumnWidths(A,q),E=this.computeRowHeights(g),a=this.computeOffsets(g,q.left,q.right,q.innerVertical),F=this.computeOffsets(E,q.top,q.bottom,q.innerHorizontal);return{columnWidths:g,rowHeights:E,columnOffsets:a,rowOffsets:F,columnOffsetsI32:new Int32Array(a),rowOffsetsI32:new Int32Array(F),tableWidth:(a[a.length-1]??0)+1,tableHeight:(F[F.length-1]??0)+1}}isFullWidthMode(){return this._columnWidthMode==="full"}computeColumnWidths(A,q){let g=this.getHorizontalCellPadding(),E=Array(this._columnCount).fill(1+g);for(let K=0;K<this._rowCount;K++)for(let Z=0;Z<this._columnCount;Z++){let j=this._cells[K]?.[Z];if(!j)continue;let U=j.textBufferView.measureForDimensions(0,DK),O=Math.max(1,U?.widthColsMax??0)+g;E[Z]=Math.max(E[Z],O)}if(A===void 0||!Number.isFinite(A)||A<=0)return E;let a=Math.max(1,Math.floor(A)-this.getVerticalBorderCount(q)),F=E.reduce((K,Z)=>K+Z,0);if(F===a)return E;if(F<a){if(this.isFullWidthMode())return this.expandColumnWidths(E,a);return E}if(this._wrapMode==="none")return E;return this.fitColumnWidths(E,a)}expandColumnWidths(A,q){let g=A.map((U)=>Math.max(1,Math.floor(U))),E=g.reduce((U,O)=>U+O,0);if(E>=q)return g;let a=[...g],F=a.length,K=q-E,Z=Math.floor(K/F),j=K%F;for(let U=0;U<F;U++)if(a[U]+=Z,U<j)a[U]+=1;return a}fitColumnWidths(A,q){if(this._columnFitter==="balanced")return this.fitColumnWidthsBalanced(A,q);return this.fitColumnWidthsProportional(A,q)}fitColumnWidthsProportional(A,q){let g=1+this.getHorizontalCellPadding(),E=Array(A.length).fill(g),a=A.map((T)=>Math.max(1,Math.floor(T))),F=a.map((T)=>Math.min(T,g+1)),Z=F.reduce((T,x)=>T+x,0)<=q?F:E,j=Z.reduce((T,x)=>T+x,0),U=Math.max(j,q),O=a.reduce((T,x)=>T+x,0);if(O<=U)return a;let Q=a.map((T,x)=>T-Z[x]),M=Q.reduce((T,x)=>T+x,0);if(M<=0)return[...Z];let L=O-U,$=Array(a.length).fill(0),V=Array(a.length).fill(0),H=0;for(let T=0;T<a.length;T++){if(Q[T]<=0)continue;let x=Q[T]/M*L,z=Math.min(Q[T],Math.floor(x));$[T]=z,V[T]=x-z,H+=z}let X=L-H;while(X>0){let T=-1,x=-1;for(let z=0;z<a.length;z++){if(Q[z]-$[z]<=0)continue;if(V[z]>x)x=V[z],T=z}if(T===-1)break;$[T]+=1,V[T]=0,X-=1}return a.map((T,x)=>Math.max(Z[x],T-$[x]))}fitColumnWidthsBalanced(A,q){let g=1+this.getHorizontalCellPadding(),E=Array(A.length).fill(g),a=A.map((X)=>Math.max(1,Math.floor(X))),F=a.reduce((X,T)=>X+T,0),K=a.length;if(K===0||F<=q)return a;let Z=Math.max(g,Math.floor(q/K)),j=a.map((X)=>Math.min(X,Z)),O=j.reduce((X,T)=>X+T,0)<=q?j:E,Q=O.reduce((X,T)=>X+T,0),M=Math.max(Q,q);if(F<=M)return a;let L=a.map((X,T)=>X-O[T]);if(L.reduce((X,T)=>X+T,0)<=0)return[...O];let V=F-M,H=this.allocateShrinkByWeight(L,V,"sqrt");return a.map((X,T)=>Math.max(O[T],X-H[T]))}allocateShrinkByWeight(A,q,g){let E=Array(A.length).fill(0);if(q<=0)return E;let a=A.map((U)=>{if(U<=0)return 0;return g==="sqrt"?Math.sqrt(U):U}),F=a.reduce((U,O)=>U+O,0);if(F<=0)return E;let K=Array(A.length).fill(0),Z=0;for(let U=0;U<A.length;U++){if(A[U]<=0||a[U]<=0)continue;let O=a[U]/F*q,Q=Math.min(A[U],Math.floor(O));E[U]=Q,K[U]=O-Q,Z+=Q}let j=q-Z;while(j>0){let U=-1,O=-1;for(let Q=0;Q<A.length;Q++){if(A[Q]-E[Q]<=0)continue;if(U===-1||K[Q]>O||K[Q]===O&&A[Q]>A[U])U=Q,O=K[Q]}if(U===-1)break;E[U]+=1,K[U]=0,j-=1}return E}computeRowHeights(A){let q=this.getHorizontalCellPadding(),g=this.getVerticalCellPadding(),E=Array(this._rowCount).fill(1+g);for(let a=0;a<this._rowCount;a++)for(let F=0;F<this._columnCount;F++){let K=this._cells[a]?.[F];if(!K)continue;let Z=Math.max(1,(A[F]??1)-q),j=K.textBufferView.measureForDimensions(Z,DK),U=Math.max(1,j?.lineCount??1);E[a]=Math.max(E[a],U+g)}return E}computeOffsets(A,q,g,E){let a=[q?0:-1],F=a[0]??0;for(let K=0;K<A.length;K++){let Z=A[K]??1,j=K<A.length-1?E:g;F+=Z+(j?1:0),a.push(F)}return a}applyLayoutToViews(A){let q=this.getHorizontalCellPadding(),g=this.getVerticalCellPadding();for(let E=0;E<this._rowCount;E++)for(let a=0;a<this._columnCount;a++){let F=this._cells[E]?.[a];if(!F)continue;let K=A.columnWidths[a]??1,Z=A.rowHeights[E]??1,j=Math.max(1,K-q),U=Math.max(1,Z-g);if(this._wrapMode==="none")F.textBufferView.setWrapWidth(null);else F.textBufferView.setWrapWidth(j);F.textBufferView.setViewport(0,0,j,U)}}resolveBorderLayout(){return{left:this._outerBorder,right:this._outerBorder,top:this._outerBorder,bottom:this._outerBorder,innerVertical:this._border&&this._columnCount>1,innerHorizontal:this._border&&this._rowCount>1}}getVerticalBorderCount(A){return(A.left?1:0)+(A.right?1:0)+(A.innerVertical?Math.max(0,this._columnCount-1):0)}getHorizontalBorderCount(A){return(A.top?1:0)+(A.bottom?1:0)+(A.innerHorizontal?Math.max(0,this._rowCount-1):0)}drawBorders(A){if(!this._showBorders)return;let q=this.resolveBorderLayout();if(this.getVerticalBorderCount(q)===0&&this.getHorizontalBorderCount(q)===0)return;A.drawGrid({borderChars:WE[this._borderStyle],borderFg:this._borderColor,borderBg:this._borderBackgroundColor,columnOffsets:this._layout.columnOffsetsI32,rowOffsets:this._layout.rowOffsetsI32,drawInner:this._border,drawOuter:this._outerBorder})}drawCells(A){this.drawCellRange(A,0,this._rowCount-1)}drawCellRange(A,q,g){let E=this._layout.columnOffsets,a=this._layout.rowOffsets,F=this._cellPadding;for(let K=q;K<=g;K++){let Z=(a[K]??0)+1+F;for(let j=0;j<this._columnCount;j++){let U=this._cells[K]?.[j];if(!U)continue;A.drawTextBuffer(U.textBufferView,(E[j]??0)+1+F,Z)}}}redrawSelectionRows(A,q){if(A>q)return;if(this._backgroundColor.a<1){this.invalidateRasterOnly();return}let g=this.frameBuffer;if(!g)return;this.clearCellRange(g,A,q),this.drawCellRange(g,A,q),this.requestRender()}clearCellRange(A,q,g){let E=this._layout.columnWidths,a=this._layout.rowHeights,F=this._layout.columnOffsets,K=this._layout.rowOffsets;for(let Z=q;Z<=g;Z++){let j=(K[Z]??0)+1,U=a[Z]??1;for(let O=0;O<this._columnCount;O++){let Q=(F[O]??0)+1,M=E[O]??1;A.fillRect(Q,j,M,U,this._backgroundColor)}}}ensureLayoutReady(){if(!this._layoutDirty)return;this.rebuildLayoutForCurrentWidth()}getCellAtLocalPosition(A,q){if(this._rowCount===0||this._columnCount===0)return null;if(A<0||q<0||A>=this._layout.tableWidth||q>=this._layout.tableHeight)return null;let g=-1;for(let a=0;a<this._rowCount;a++){let F=(this._layout.rowOffsets[a]??0)+1,K=F+(this._layout.rowHeights[a]??1)-1;if(q>=F&&q<=K){g=a;break}}if(g<0)return null;let E=-1;for(let a=0;a<this._columnCount;a++){let F=(this._layout.columnOffsets[a]??0)+1,K=F+(this._layout.columnWidths[a]??1)-1;if(A>=F&&A<=K){E=a;break}}if(E<0)return null;return{rowIdx:g,colIdx:E}}applySelectionToCells(A,q){let g=Math.min(A.anchorY,A.focusY),E=Math.max(A.anchorY,A.focusY),a=this.findRowForLocalY(g),F=this.findRowForLocalY(E),K=this.resolveSelectionResolution(A),Z=this._lastSelectionMode!==K.mode;this._lastSelectionMode=K.mode;let j=K.mode==="column-locked"&&K.anchorColumn!==null;for(let U=0;U<this._rowCount;U++){if(U<a||U>F){this.resetRowSelection(U);continue}let O=(this._layout.rowOffsets[U]??0)+1+this._cellPadding;for(let Q=0;Q<this._columnCount;Q++){let M=this._cells[U]?.[Q];if(!M)continue;if(j&&Q!==K.anchorColumn){M.textBufferView.resetLocalSelection();continue}let L=(this._layout.columnOffsets[Q]??0)+1+this._cellPadding,$={anchorX:A.anchorX-L,anchorY:A.anchorY-O,focusX:A.focusX-L,focusY:A.focusY-O},H=K.anchorCell!==null&&K.anchorCell.rowIdx===U&&K.anchorCell.colIdx===Q&&K.mode!=="single-cell";if(H)$=this.getFullCellSelectionCoords(U,Q);if(q||Z||H)M.textBufferView.setLocalSelection($.anchorX,$.anchorY,$.focusX,$.focusY,this._selectionBg,this._selectionFg);else M.textBufferView.updateLocalSelection($.anchorX,$.anchorY,$.focusX,$.focusY,this._selectionBg,this._selectionFg)}}}resolveSelectionResolution(A){let q=this.getCellAtLocalPosition(A.anchorX,A.anchorY),g=this.getCellAtLocalPosition(A.focusX,A.focusY),E=q?.colIdx??this.getColumnAtLocalX(A.anchorX);if(q!==null&&g!==null&&q.rowIdx===g.rowIdx&&q.colIdx===g.colIdx)return{mode:"single-cell",anchorCell:q,anchorColumn:E};let a=this.getColumnAtLocalX(A.focusX);if(E!==null&&a===E)return{mode:"column-locked",anchorCell:q,anchorColumn:E};return{mode:"grid",anchorCell:q,anchorColumn:E}}getColumnAtLocalX(A){if(this._columnCount===0)return null;if(A<0||A>=this._layout.tableWidth)return null;for(let q=0;q<this._columnCount;q++){let g=(this._layout.columnOffsets[q]??0)+1,E=g+(this._layout.columnWidths[q]??1)-1;if(A>=g&&A<=E)return q}return null}getFullCellSelectionCoords(A,q){let g=this._layout.columnWidths[q]??1,E=this._layout.rowHeights[A]??1,a=Math.max(1,g-this.getHorizontalCellPadding()),F=Math.max(1,E-this.getVerticalCellPadding());return{anchorX:-1,anchorY:0,focusX:a,focusY:F}}findRowForLocalY(A){if(this._rowCount===0)return 0;if(A<0)return 0;for(let q=0;q<this._rowCount;q++){let E=(this._layout.rowOffsets[q]??0)+1+(this._layout.rowHeights[q]??1)-1;if(A<=E)return q}return this._rowCount-1}getSelectionRowRange(A){if(!A?.isActive||this._rowCount===0)return null;let q=Math.min(A.anchorY,A.focusY),g=Math.max(A.anchorY,A.focusY);return{firstRow:this.findRowForLocalY(q),lastRow:this.findRowForLocalY(g)}}getDirtySelectionRowRange(A,q){let g=this.getSelectionRowRange(A),E=this.getSelectionRowRange(q);if(g===null)return E;if(E===null)return g;return{firstRow:Math.min(g.firstRow,E.firstRow),lastRow:Math.max(g.lastRow,E.lastRow)}}resetRowSelection(A){let q=this._cells[A];if(!q)return;for(let g of q)g.textBufferView.resetLocalSelection()}resetCellSelections(){for(let A=0;A<this._rowCount;A++)this.resetRowSelection(A)}createEmptyLayout(){return{columnWidths:[],rowHeights:[],columnOffsets:[0],rowOffsets:[0],columnOffsetsI32:new Int32Array([0]),rowOffsetsI32:new Int32Array([0]),tableWidth:0,tableHeight:0}}resolveLayoutWidthConstraint(A){if(A===void 0||!Number.isFinite(A)||A<=0)return;if(this._wrapMode!=="none"||this.isFullWidthMode())return Math.max(1,Math.floor(A));return}getHorizontalCellPadding(){return this._cellPadding*2}getVerticalCellPadding(){return this._cellPadding*2}resolveColumnFitter(A){if(A===void 0)return this._defaultOptions.columnFitter;return A==="balanced"?"balanced":"proportional"}resolveCellPadding(A){if(A===void 0||!Number.isFinite(A))return this._defaultOptions.cellPadding;return Math.max(0,Math.floor(A))}invalidateLayoutAndRaster(A=!0){if(this._layoutDirty=!0,this._rasterDirty=!0,this._cachedMeasureLayout=null,this._cachedMeasureWidth=void 0,A)this.yogaNode.markDirty();this.requestRender()}invalidateRasterOnly(){this._rasterDirty=!0,this.requestRender()}};wq=Aa();Sg={exec:()=>null};r_=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),JA={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:(A)=>new RegExp(`^( {0,3}${A})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}#`),htmlBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}<(?:[a-z].*>|!--)`,"i")},n_=/^(?:[ \t]*(?:\n|$))+/,o_=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,e_=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Bg=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,AO=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,qa=/(?:[*+-]|\d{1,9}[.)])/,rK=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,nK=r(rK).replace(/bull/g,qa).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),qO=r(rK).replace(/bull/g,qa).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),ga=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,gO=/^[^\n]+/,Ea=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,EO=r(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Ea).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),aO=r(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,qa).getRegex(),aa=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,FO=r("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",aa).replace("tag",x6).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),oK=r(ga).replace("hr",Bg).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",x6).getRegex(),KO=r(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",oK).getRegex(),Fa={blockquote:KO,code:o_,def:EO,fences:e_,heading:AO,hr:Bg,html:FO,lheading:nK,list:aO,newline:n_,paragraph:oK,table:Sg,text:gO},wK=r("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Bg).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",x6).getRegex(),jO={...Fa,lheading:qO,table:wK,paragraph:r(ga).replace("hr",Bg).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",wK).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",x6).getRegex()},ZO={...Fa,html:r(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",aa).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Sg,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:r(ga).replace("hr",Bg).replace("heading",` *#{1,6} *[^
94
- ]`).replace("lheading",nK).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},UO=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,_O=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,eK=/^( {2,}|\\)\n(?!\s*$)/,OO=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,R6=/[\p{P}\p{S}]/u,Ka=/[\s\p{P}\p{S}]/u,Aj=/[^\s\p{P}\p{S}]/u,GO=r(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Ka).getRegex(),qj=/(?!~)[\p{P}\p{S}]/u,QO=/(?!~)[\s\p{P}\p{S}]/u,YO=/(?:[^\s\p{P}\p{S}]|~)/u,MO=r(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",r_?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),gj=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,JO=r(gj,"u").replace(/punct/g,R6).getRegex(),HO=r(gj,"u").replace(/punct/g,qj).getRegex(),LO=r(Ej,"gu").replace(/notPunctSpace/g,Aj).replace(/punctSpace/g,Ka).replace(/punct/g,R6).getRegex(),$O=r(Ej,"gu").replace(/notPunctSpace/g,YO).replace(/punctSpace/g,QO).replace(/punct/g,qj).getRegex(),XO=r("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Aj).replace(/punctSpace/g,Ka).replace(/punct/g,R6).getRegex(),IO=r(/\\(punct)/,"gu").replace(/punct/g,R6).getRegex(),TO=r(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),PO=r(aa).replace("(?:-->|$)","-->").getRegex(),VO=r("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",PO).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),X6=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,xO=r(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",X6).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),aj=r(/^!?\[(label)\]\[(ref)\]/).replace("label",X6).replace("ref",Ea).getRegex(),Fj=r(/^!?\[(ref)\](?:\[\])?/).replace("ref",Ea).getRegex(),RO=r("reflink|nolink(?!\\()","g").replace("reflink",aj).replace("nolink",Fj).getRegex(),yK=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,ja={_backpedal:Sg,anyPunctuation:IO,autolink:TO,blockSkip:MO,br:eK,code:_O,del:Sg,emStrongLDelim:JO,emStrongRDelimAst:LO,emStrongRDelimUnd:XO,escape:UO,link:xO,nolink:Fj,punctuation:GO,reflink:aj,reflinkSearch:RO,tag:VO,text:OO,url:Sg},NO={...ja,link:r(/^!?\[(label)\]\((.*?)\)/).replace("label",X6).getRegex(),reflink:r(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",X6).getRegex()},oE={...ja,emStrongRDelimAst:$O,emStrongLDelim:HO,url:r(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",yK).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:r(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",yK).getRegex()},WO={...oE,br:r(eK).replace("{2,}","*").getRegex(),text:r(oE.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},$6={normal:Fa,gfm:jO,pedantic:ZO},Ng={normal:ja,gfm:oE,breaks:WO,pedantic:NO},hO={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};hg=class{options;block;constructor(A){this.options=A||wq}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(A){return A}postprocess(A){return A}processAllTokens(A){return A}emStrongMask(A){return A}provideLexer(){return this.block?vA.lex:vA.lexInline}provideParser(){return this.block?pA.parse:pA.parseInline}},Dq=new BO;qA.options=qA.setOptions=function(A){return Dq.setOptions(A),qA.defaults=Dq.defaults,iK(qA.defaults),qA};qA.getDefaults=Aa;qA.defaults=wq;qA.use=function(...A){return Dq.use(...A),qA.defaults=Dq.defaults,iK(qA.defaults),qA};qA.walkTokens=function(A,q){return Dq.walkTokens(A,q)};qA.parseInline=Dq.parseInline;qA.Parser=pA;qA.parser=pA.parse;qA.Renderer=T6;qA.TextRenderer=Za;qA.Lexer=vA;qA.lexer=vA.lex;qA.Tokenizer=I6;qA.Hooks=hg;qA.parse=qA;WY=qA.options,hY=qA.setOptions,SY=qA.use,zY=qA.walkTokens,BY=qA.parseInline,CY=pA.parse,kY=vA.lex,DY=AA.fromHex("#9a9ea3"),wY=AA.fromHex("#252527"),iE=[{name:"up",action:"move-up"},{name:"k",action:"move-up"},{name:"down",action:"move-down"},{name:"j",action:"move-down"},{name:"up",shift:!0,action:"move-up-fast"},{name:"down",shift:!0,action:"move-down-fast"},{name:"return",action:"select-current"},{name:"linefeed",action:"select-current"}];((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(uA||={});lA=class lA extends OA{_focusable=!0;_options=[];_selectedIndex=0;scrollOffset=0;maxVisibleItems;_backgroundColor;_textColor;_focusedBackgroundColor;_focusedTextColor;_selectedBackgroundColor;_selectedTextColor;_descriptionColor;_selectedDescriptionColor;_showScrollIndicator;_wrapSelection;_showDescription;_font;_itemSpacing;linesPerItem;fontHeight;_fastScrollStep;_keyBindingsMap;_keyAliasMap;_keyBindings;_defaultOptions={backgroundColor:"transparent",textColor:"#FFFFFF",focusedBackgroundColor:"#1a1a1a",focusedTextColor:"#FFFFFF",selectedBackgroundColor:"#334455",selectedTextColor:"#FFFF00",selectedIndex:0,descriptionColor:"#888888",selectedDescriptionColor:"#CCCCCC",showScrollIndicator:!1,wrapSelection:!1,showDescription:!0,itemSpacing:0,fastScrollStep:5};constructor(A,q){super(A,{...q,buffered:!0});this._options=q.options||[];let g=q.selectedIndex??this._defaultOptions.selectedIndex;this._selectedIndex=this._options.length>0?Math.min(g,this._options.length-1):0,this._backgroundColor=R(q.backgroundColor||this._defaultOptions.backgroundColor),this._textColor=R(q.textColor||this._defaultOptions.textColor),this._focusedBackgroundColor=R(q.focusedBackgroundColor||this._defaultOptions.focusedBackgroundColor),this._focusedTextColor=R(q.focusedTextColor||this._defaultOptions.focusedTextColor),this._showScrollIndicator=q.showScrollIndicator??this._defaultOptions.showScrollIndicator,this._wrapSelection=q.wrapSelection??this._defaultOptions.wrapSelection,this._showDescription=q.showDescription??this._defaultOptions.showDescription,this._font=q.font,this._itemSpacing=q.itemSpacing||this._defaultOptions.itemSpacing,this.fontHeight=this._font?rq({text:"A",font:this._font}).height:1,this.linesPerItem=this._showDescription?this._font?this.fontHeight+1:2:this._font?this.fontHeight:1,this.linesPerItem+=this._itemSpacing,this.maxVisibleItems=Math.max(1,Math.floor(this.height/this.linesPerItem)),this._selectedBackgroundColor=R(q.selectedBackgroundColor||this._defaultOptions.selectedBackgroundColor),this._selectedTextColor=R(q.selectedTextColor||this._defaultOptions.selectedTextColor),this._descriptionColor=R(q.descriptionColor||this._defaultOptions.descriptionColor),this._selectedDescriptionColor=R(q.selectedDescriptionColor||this._defaultOptions.selectedDescriptionColor),this._fastScrollStep=q.fastScrollStep||this._defaultOptions.fastScrollStep,this._keyAliasMap=_q(Uq,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[];let E=xA(iE,this._keyBindings);this._keyBindingsMap=RA(E,this._keyAliasMap),this.requestRender()}renderSelf(A,q){if(!this.visible||!this.frameBuffer)return;if(this.isDirty)this.refreshFrameBuffer()}refreshFrameBuffer(){if(!this.frameBuffer||this._options.length===0)return;let A=this._focused?this._focusedBackgroundColor:this._backgroundColor;this.frameBuffer.clear(A);let q=0,g=0,E=this.width,a=this.height,F=this._options.slice(this.scrollOffset,this.scrollOffset+this.maxVisibleItems);for(let K=0;K<F.length;K++){let Z=this.scrollOffset+K,j=F[K],U=Z===this._selectedIndex,O=g+K*this.linesPerItem;if(O+this.linesPerItem-1>=g+a)break;if(U){let V=this.linesPerItem-this._itemSpacing;this.frameBuffer.fillRect(q,O,E,V,this._selectedBackgroundColor)}let Q=`${U?"\u25B6 ":" "}${j.name}`,M=this._focused?this._focusedTextColor:this._textColor,L=U?this._selectedTextColor:M,$=q+3;if(this._font){let V=U?"\u25B6 ":" ";this.frameBuffer.drawText(V,q+1,O,L);let H=2;Q6(this.frameBuffer,{text:j.name,x:q+1+H,y:O,color:L,backgroundColor:U?this._selectedBackgroundColor:A,font:this._font}),$=q+1+H}else this.frameBuffer.drawText(Q,q+1,O,L);if(this._showDescription&&O+this.fontHeight<g+a){let V=U?this._selectedDescriptionColor:this._descriptionColor;this.frameBuffer.drawText(j.description,$,O+this.fontHeight,V)}}if(this._showScrollIndicator&&this._options.length>this.maxVisibleItems)this.renderScrollIndicatorToFrameBuffer(q,g,E,a)}renderScrollIndicatorToFrameBuffer(A,q,g,E){if(!this.frameBuffer)return;let a=this._selectedIndex/Math.max(1,this._options.length-1),F=Math.max(1,E-2),K=q+1+Math.floor(a*F),Z=A+g-1;this.frameBuffer.drawText("\u2588",Z,K,R("#666666"))}get options(){return this._options}set options(A){this._options=A,this._selectedIndex=Math.min(this._selectedIndex,Math.max(0,A.length-1)),this.updateScrollOffset(),this.requestRender()}getSelectedOption(){return this._options[this._selectedIndex]||null}getSelectedIndex(){return this._selectedIndex}moveUp(A=1){let q=this._selectedIndex-A;if(q>=0)this._selectedIndex=q;else if(this._wrapSelection&&this._options.length>0)this._selectedIndex=this._options.length-1;else this._selectedIndex=0;this.updateScrollOffset(),this.requestRender(),this.emit("selectionChanged",this._selectedIndex,this.getSelectedOption())}moveDown(A=1){let q=this._selectedIndex+A;if(q<this._options.length)this._selectedIndex=q;else if(this._wrapSelection&&this._options.length>0)this._selectedIndex=0;else this._selectedIndex=this._options.length-1;this.updateScrollOffset(),this.requestRender(),this.emit("selectionChanged",this._selectedIndex,this.getSelectedOption())}selectCurrent(){let A=this.getSelectedOption();if(A)this.emit("itemSelected",this._selectedIndex,A)}setSelectedIndex(A){if(A>=0&&A<this._options.length)this._selectedIndex=A,this.updateScrollOffset(),this.requestRender(),this.emit("selectionChanged",this._selectedIndex,this.getSelectedOption())}updateScrollOffset(){if(!this._options)return;let A=Math.floor(this.maxVisibleItems/2),q=Math.max(0,Math.min(this._selectedIndex-A,this._options.length-this.maxVisibleItems));if(q!==this.scrollOffset)this.scrollOffset=q,this.requestRender()}onResize(A,q){this.maxVisibleItems=Math.max(1,Math.floor(q/this.linesPerItem)),this.updateScrollOffset(),this.requestRender()}handleKeyPress(A){let q=Oq({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"move-up"}),g=this._keyBindingsMap.get(q);if(g)switch(g){case"move-up":return this.moveUp(1),!0;case"move-down":return this.moveDown(1),!0;case"move-up-fast":return this.moveUp(this._fastScrollStep),!0;case"move-down-fast":return this.moveDown(this._fastScrollStep),!0;case"select-current":return this.selectCurrent(),!0}return!1}get showScrollIndicator(){return this._showScrollIndicator}set showScrollIndicator(A){this._showScrollIndicator=A,this.requestRender()}get showDescription(){return this._showDescription}set showDescription(A){if(this._showDescription!==A)this._showDescription=A,this.linesPerItem=this._showDescription?this._font?this.fontHeight+1:2:this._font?this.fontHeight:1,this.linesPerItem+=this._itemSpacing,this.maxVisibleItems=Math.max(1,Math.floor(this.height/this.linesPerItem)),this.updateScrollOffset(),this.requestRender()}get wrapSelection(){return this._wrapSelection}set wrapSelection(A){this._wrapSelection=A}set backgroundColor(A){let q=R(A??this._defaultOptions.backgroundColor);if(this._backgroundColor!==q)this._backgroundColor=q,this.requestRender()}set textColor(A){let q=R(A??this._defaultOptions.textColor);if(this._textColor!==q)this._textColor=q,this.requestRender()}set focusedBackgroundColor(A){let q=R(A??this._defaultOptions.focusedBackgroundColor);if(this._focusedBackgroundColor!==q)this._focusedBackgroundColor=q,this.requestRender()}set focusedTextColor(A){let q=R(A??this._defaultOptions.focusedTextColor);if(this._focusedTextColor!==q)this._focusedTextColor=q,this.requestRender()}set selectedBackgroundColor(A){let q=R(A??this._defaultOptions.selectedBackgroundColor);if(this._selectedBackgroundColor!==q)this._selectedBackgroundColor=q,this.requestRender()}set selectedTextColor(A){let q=R(A??this._defaultOptions.selectedTextColor);if(this._selectedTextColor!==q)this._selectedTextColor=q,this.requestRender()}set descriptionColor(A){let q=R(A??this._defaultOptions.descriptionColor);if(this._descriptionColor!==q)this._descriptionColor=q,this.requestRender()}set selectedDescriptionColor(A){let q=R(A??this._defaultOptions.selectedDescriptionColor);if(this._selectedDescriptionColor!==q)this._selectedDescriptionColor=q,this.requestRender()}set font(A){this._font=A,this.fontHeight=rq({text:"A",font:this._font}).height,this.linesPerItem=this._showDescription?this._font?this.fontHeight+1:2:this._font?this.fontHeight:1,this.linesPerItem+=this._itemSpacing,this.maxVisibleItems=Math.max(1,Math.floor(this.height/this.linesPerItem)),this.updateScrollOffset(),this.requestRender()}set itemSpacing(A){this._itemSpacing=A,this.linesPerItem=this._showDescription?this._font?this.fontHeight+1:2:this._font?this.fontHeight:1,this.linesPerItem+=this._itemSpacing,this.maxVisibleItems=Math.max(1,Math.floor(this.height/this.linesPerItem)),this.updateScrollOffset(),this.requestRender()}set fastScrollStep(A){this._fastScrollStep=A}set keyBindings(A){this._keyBindings=A;let q=xA(iE,A);this._keyBindingsMap=RA(q,this._keyAliasMap)}set keyAliasMap(A){this._keyAliasMap=_q(Uq,A);let q=xA(iE,this._keyBindings);this._keyBindingsMap=RA(q,this._keyAliasMap)}set selectedIndex(A){let q=A??this._defaultOptions.selectedIndex,g=this._options.length>0?Math.min(Math.max(0,q),this._options.length-1):0;if(this._selectedIndex!==g)this._selectedIndex=g,this.updateScrollOffset(),this.requestRender()}};rE=[{name:"left",action:"move-left"},{name:"[",action:"move-left"},{name:"right",action:"move-right"},{name:"]",action:"move-right"},{name:"return",action:"select-current"},{name:"linefeed",action:"select-current"}];((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(Ua||={});_a=class _a extends OA{_focusable=!0;_options=[];selectedIndex=0;scrollOffset=0;_tabWidth;maxVisibleTabs;_backgroundColor;_textColor;_focusedBackgroundColor;_focusedTextColor;_selectedBackgroundColor;_selectedTextColor;_selectedDescriptionColor;_showScrollArrows;_showDescription;_showUnderline;_wrapSelection;_keyBindingsMap;_keyAliasMap;_keyBindings;constructor(A,q){let g=pK(q.showUnderline??!0,q.showDescription??!0);super(A,{...q,height:g,buffered:!0});this._backgroundColor=R(q.backgroundColor||"transparent"),this._textColor=R(q.textColor||"#FFFFFF"),this._focusedBackgroundColor=R(q.focusedBackgroundColor||q.backgroundColor||"#1a1a1a"),this._focusedTextColor=R(q.focusedTextColor||q.textColor||"#FFFFFF"),this._options=q.options||[],this._tabWidth=q.tabWidth||20,this._showDescription=q.showDescription??!0,this._showUnderline=q.showUnderline??!0,this._showScrollArrows=q.showScrollArrows??!0,this._wrapSelection=q.wrapSelection??!1,this.maxVisibleTabs=Math.max(1,Math.floor(this.width/this._tabWidth)),this._selectedBackgroundColor=R(q.selectedBackgroundColor||"#334455"),this._selectedTextColor=R(q.selectedTextColor||"#FFFF00"),this._selectedDescriptionColor=R(q.selectedDescriptionColor||"#CCCCCC"),this._keyAliasMap=_q(Uq,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[];let E=xA(rE,this._keyBindings);this._keyBindingsMap=RA(E,this._keyAliasMap)}calculateDynamicHeight(){return pK(this._showUnderline,this._showDescription)}renderSelf(A,q){if(!this.visible||!this.frameBuffer)return;if(this.isDirty)this.refreshFrameBuffer()}refreshFrameBuffer(){if(!this.frameBuffer)return;let A=this._focused?this._focusedBackgroundColor:this._backgroundColor;if(this.frameBuffer.clear(A),this._options.length===0)return;let q=0,g=0,E=this.width,a=this.height,F=this._options.slice(this.scrollOffset,this.scrollOffset+this.maxVisibleTabs);for(let K=0;K<F.length;K++){let Z=this.scrollOffset+K,j=F[K],U=Z===this.selectedIndex,O=q+K*this._tabWidth;if(O>=q+E)break;let Q=Math.min(this._tabWidth,E-K*this._tabWidth);if(U)this.frameBuffer.fillRect(O,g,Q,1,this._selectedBackgroundColor);let M=this._focused?this._focusedTextColor:this._textColor,L=U?this._selectedTextColor:M,$=this.truncateText(j.name,Q-2);if(this.frameBuffer.drawText($,O+1,g,L),U&&this._showUnderline&&a>=2){let V=g+1,H=U?this._selectedBackgroundColor:A;this.frameBuffer.drawText("\u25AC".repeat(Q),O,V,L,H)}}if(this._showDescription&&a>=(this._showUnderline?3:2)){let K=this.getSelectedOption();if(K){let Z=g+(this._showUnderline?2:1),j=this._selectedDescriptionColor,U=this.truncateText(K.description,E-2);this.frameBuffer.drawText(U,q+1,Z,j)}}if(this._showScrollArrows&&this._options.length>this.maxVisibleTabs)this.renderScrollArrowsToFrameBuffer(q,g,E,a)}truncateText(A,q){if(A.length<=q)return A;return A.substring(0,Math.max(0,q-1))+"\u2026"}renderScrollArrowsToFrameBuffer(A,q,g,E){if(!this.frameBuffer)return;let a=this.scrollOffset>0,F=this.scrollOffset+this.maxVisibleTabs<this._options.length;if(a)this.frameBuffer.drawText("\u2039",A,q,R("#AAAAAA"));if(F)this.frameBuffer.drawText("\u203A",A+g-1,q,R("#AAAAAA"))}setOptions(A){this._options=A,this.selectedIndex=Math.min(this.selectedIndex,Math.max(0,A.length-1)),this.updateScrollOffset(),this.requestRender()}getSelectedOption(){return this._options[this.selectedIndex]||null}getSelectedIndex(){return this.selectedIndex}moveLeft(){if(this.selectedIndex>0)this.selectedIndex--;else if(this._wrapSelection&&this._options.length>0)this.selectedIndex=this._options.length-1;else return;this.updateScrollOffset(),this.requestRender(),this.emit("selectionChanged",this.selectedIndex,this.getSelectedOption())}moveRight(){if(this.selectedIndex<this._options.length-1)this.selectedIndex++;else if(this._wrapSelection&&this._options.length>0)this.selectedIndex=0;else return;this.updateScrollOffset(),this.requestRender(),this.emit("selectionChanged",this.selectedIndex,this.getSelectedOption())}selectCurrent(){let A=this.getSelectedOption();if(A)this.emit("itemSelected",this.selectedIndex,A)}setSelectedIndex(A){if(A>=0&&A<this._options.length)this.selectedIndex=A,this.updateScrollOffset(),this.requestRender(),this.emit("selectionChanged",this.selectedIndex,this.getSelectedOption())}updateScrollOffset(){let A=Math.floor(this.maxVisibleTabs/2),q=Math.max(0,Math.min(this.selectedIndex-A,this._options.length-this.maxVisibleTabs));if(q!==this.scrollOffset)this.scrollOffset=q,this.requestRender()}onResize(A,q){this.maxVisibleTabs=Math.max(1,Math.floor(A/this._tabWidth)),this.updateScrollOffset(),this.requestRender()}setTabWidth(A){if(this._tabWidth===A)return;this._tabWidth=A,this.maxVisibleTabs=Math.max(1,Math.floor(this.width/this._tabWidth)),this.updateScrollOffset(),this.requestRender()}getTabWidth(){return this._tabWidth}handleKeyPress(A){let q=Oq({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"move-left"}),g=this._keyBindingsMap.get(q);if(g)switch(g){case"move-left":return this.moveLeft(),!0;case"move-right":return this.moveRight(),!0;case"select-current":return this.selectCurrent(),!0}return!1}get options(){return this._options}set options(A){this._options=A,this.selectedIndex=Math.min(this.selectedIndex,Math.max(0,A.length-1)),this.updateScrollOffset(),this.requestRender()}set backgroundColor(A){this._backgroundColor=R(A),this.requestRender()}set textColor(A){this._textColor=R(A),this.requestRender()}set focusedBackgroundColor(A){this._focusedBackgroundColor=R(A),this.requestRender()}set focusedTextColor(A){this._focusedTextColor=R(A),this.requestRender()}set selectedBackgroundColor(A){this._selectedBackgroundColor=R(A),this.requestRender()}set selectedTextColor(A){this._selectedTextColor=R(A),this.requestRender()}set selectedDescriptionColor(A){this._selectedDescriptionColor=R(A),this.requestRender()}get showDescription(){return this._showDescription}set showDescription(A){if(this._showDescription!==A){this._showDescription=A;let q=this.calculateDynamicHeight();this.height=q,this.requestRender()}}get showUnderline(){return this._showUnderline}set showUnderline(A){if(this._showUnderline!==A){this._showUnderline=A;let q=this.calculateDynamicHeight();this.height=q,this.requestRender()}}get showScrollArrows(){return this._showScrollArrows}set showScrollArrows(A){if(this._showScrollArrows!==A)this._showScrollArrows=A,this.requestRender()}get wrapSelection(){return this._wrapSelection}set wrapSelection(A){this._wrapSelection=A}get tabWidth(){return this._tabWidth}set tabWidth(A){if(this._tabWidth===A)return;this._tabWidth=A,this.maxVisibleTabs=Math.max(1,Math.floor(this.width/this._tabWidth)),this.updateScrollOffset(),this.requestRender()}set keyBindings(A){this._keyBindings=A;let q=xA(rE,A);this._keyBindingsMap=RA(q,this._keyAliasMap)}set keyAliasMap(A){this._keyAliasMap=_q(Uq,A);let q=xA(rE,this._keyBindings);this._keyBindingsMap=RA(q,this._keyAliasMap)}}});var y;var Pq=e(()=>{y={bg:"#1a1b26",bgAlt:"#24283b",fg:"#c0caf5",fgDim:"#565f89",accent:"#7aa2f7",accentAlt:"#bb9af7",green:"#9ece6a",red:"#f7768e",yellow:"#e0af68",cyan:"#7dcfff",orange:"#ff9e64",border:"#3b4261",borderFocus:"#7aa2f7",white:"#FFFFFF"}});function N6(A,q){let g=A.providers.filter((E)=>E.enabled).map((E)=>E.label);if(g.length<=3)return g.join(", ");return g.slice(0,2).join(", ")+` +${g.length-2}`}function Kj(A,q,g){let E=new gA(A,{id:"dashboard-root",flexDirection:"column",width:"100%",height:"100%",padding:1,gap:0}),a=new V6(A,{id:"banner",text:"agent-skill-manager",color:y.accent});E.add(a);let F=new gA(A,{id:"stats-bar",border:!0,borderStyle:"rounded",borderColor:y.border,title:" Stats ",titleAlignment:"left",flexDirection:"row",width:"100%",height:3,paddingLeft:1,paddingRight:1,gap:3}),K=new d(A,{id:"stat-total",content:"Total: 0",fg:y.fg}),Z=new d(A,{id:"stat-global",content:"Global: 0",fg:y.cyan}),j=new d(A,{id:"stat-project",content:"Project: 0",fg:y.green}),U=new d(A,{id:"stat-symlinks",content:"Symlinks: 0",fg:y.yellow}),O=new d(A,{id:"stat-providers",content:"Providers: 0",fg:y.accentAlt}),Q=new d(A,{id:"stat-duplicates",content:"Dupes: 0",fg:y.orange}),M=new d(A,{id:"sort-sep",content:"\u2502",fg:y.border}),L=new d(A,{id:"sort-label",content:D("name"),fg:y.fgDim});F.add(K),F.add(Z),F.add(j),F.add(U),F.add(O),F.add(Q),F.add(M),F.add(L),E.add(F);let $=new gA(A,{id:"tab-row",flexDirection:"row",width:"100%",height:1,alignItems:"center",gap:2}),V=N6(q,"global"),H=N6(q,"project"),X=new _a(A,{id:"scope-tabs",options:[{name:"Global",description:V,value:"global"},{name:"Project",description:H,value:"project"},{name:"Both",description:"All locations",value:"both"}],tabWidth:12,showUnderline:!1,wrapSelection:!0,height:1,width:42});X.on(Ua.ITEM_SELECTED,(w,c)=>{g(c.value)}),$.add(X),E.add($);let T=new gA(A,{id:"search-box",border:!0,borderStyle:"rounded",borderColor:y.border,title:" Filter ",titleAlignment:"left",width:"100%",height:3}),x=new Yq(A,{id:"search-input",width:"100%",height:1,placeholder:"type to search...",placeholderColor:y.fgDim});T.add(x),E.add(T);let z=new gA(A,{id:"content-area",flexDirection:"column",width:"100%",flexGrow:1,minHeight:6});E.add(z);let m=new d(A,{id:"footer",content:" \u2191/\u2193 Navigate Enter View d Uninstall a Audit / Filter Tab Scope s Sort r Refresh c Config q Quit ? Help",fg:y.fgDim,height:1,width:"100%"});E.add(m);function D(w){return"(s) Sort: "+CO.map((c)=>c===w?`[${c}]`:c).join(" ")}function N(w,c=0){let t=w.length,o=new Set(w.map((jA)=>jA.dirName)).size,aA=w.filter((jA)=>jA.scope==="global").length,LA=w.filter((jA)=>jA.scope==="project").length,FA=w.filter((jA)=>jA.isSymlink).length,NA=new Set(w.map((jA)=>jA.provider)).size;K.content=`Total: ${t} (${o} unique)`,Z.content=`Global: ${aA}`,j.content=`Project: ${LA}`,U.content=`Symlinks: ${FA}`,O.content=`Providers: ${NA}`,Q.content=c>0?`Dupes: ${c}`:"Dupes: 0"}function h(w){L.content=D(w)}function b(w){let c=N6(w,"global"),t=N6(w,"project");X.options=[{name:"Global",description:c,value:"global"},{name:"Project",description:t,value:"project"},{name:"Both",description:"All locations",value:"both"}]}return{root:E,banner:a,scopeTabs:X,searchInput:x,statsBar:F,contentArea:z,footerText:m,updateStats:N,updateSortLabel:h,updateProviderInfo:b}}var CO;var jj=e(async()=>{Pq();await Mq();CO=["name","version","location"]});function kO(A,q,g){let E=String(A).padStart(3),a=q.isSymlink?"~ ":" ",F=24-a.length,K=q.name.length>F?q.name.slice(0,F-3)+"...":q.name,Z=a+K,j=q.version.length>7?q.version.slice(0,7):q.version,U=q.providerLabel.length>11?q.providerLabel.slice(0,11):q.providerLabel,O=q.scope,Q=q.isSymlink?"\u2192link":" dir ",M=g>0?" "+(q.description||"").slice(0,g):"";return`${E} ${Z.padEnd(24)} ${j.padEnd(8)} ${U.padEnd(12)} ${O.padEnd(8)} ${Q.padEnd(6)}${M}`}function Zj(A,q){if(A.length===0)return[{name:" (no skills found)",description:"",value:"__none__"}];return A.map((g,E)=>({name:kO(E+1,g,q),description:"",value:g.dirName}))}function Uj(A){return Math.max(0,A-72)}function _j(A,q,g,E=80){let a=Uj(E),F=new gA(A,{id:"skill-list-box",border:!0,borderStyle:"rounded",borderColor:y.border,title:` Skills (${q.length}) `,titleAlignment:"left",flexDirection:"column",width:"100%",flexGrow:1,minHeight:6}),K=a>0?" Description":"",Z=new d(A,{id:"skill-list-header",content:`${"#".padStart(3)} ${"Name".padEnd(26)} ${"Ver".padEnd(8)} ${"Provider".padEnd(12)} ${"Scope".padEnd(8)} ${"Type".padEnd(6)}${K}`,fg:y.fgDim,height:1}),j=new lA(A,{id:"skill-select",width:"100%",flexGrow:1,options:Zj(q,a),wrapSelection:!0,showScrollIndicator:!0,fastScrollStep:5,showDescription:!1}),U=q;j.on(uA.ITEM_SELECTED,(Q)=>{if(U[Q])g(U[Q])}),F.add(Z),F.add(j);function O(Q,M){if(M!==void 0)a=Uj(M);U=Q,j.options=Zj(Q,a),F.title=` Skills (${Q.length}) `}return{container:F,select:j,update:O}}var Oj=e(async()=>{Pq();await Mq()});function Vq(A,q,g,E,a=y.fg){let F=new gA(A,{id:`detail-row-${q}`,flexDirection:"row",width:"100%",height:1}),K=new d(A,{content:`${g}:`.padEnd(15),fg:y.fgDim,width:16}),Z=new d(A,{content:E,fg:a});return F.add(K),F.add(Z),F}function Gj(A,q){let a=Math.max(0,Math.floor((A.height-20)/2)),F=Math.max(0,Math.floor((A.width-64)/2)),K=new gA(A,{id:"detail-overlay",border:!0,borderStyle:"rounded",borderColor:y.accent,backgroundColor:y.bgAlt,title:` ${q.name} `,titleAlignment:"center",padding:1,flexDirection:"column",gap:0,width:64,height:20,position:"absolute",top:a,left:F,zIndex:100});K.add(Vq(A,"name","Name",q.name,y.accent)),K.add(Vq(A,"version","Version",q.version,y.green)),K.add(Vq(A,"provider","Provider",q.providerLabel,y.accentAlt)),K.add(Vq(A,"location","Location",q.location,y.cyan)),K.add(Vq(A,"path","Path",q.path)),K.add(Vq(A,"symlink","Symlink",q.isSymlink?`yes \u2192 ${q.symlinkTarget}`:"no",q.isSymlink?y.yellow:y.fgDim)),K.add(Vq(A,"files","Files",String(q.fileCount))),K.add(Vq(A,"scope","Scope",q.scope,y.accentAlt));let Z=new d(A,{content:`
91
+ `}strong({tokens:A}){return`<strong>${this.parser.parseInline(A)}</strong>`}em({tokens:A}){return`<em>${this.parser.parseInline(A)}</em>`}codespan({text:A}){return`<code>${Gq(A,!0)}</code>`}br(A){return"<br>"}del({tokens:A}){return`<del>${this.parser.parseInline(A)}</del>`}link({href:A,title:q,tokens:g}){let E=this.parser.parseInline(g),a=bK(A);if(a===null)return E;A=a;let F='<a href="'+A+'"';return q&&(F+=' title="'+Gq(q)+'"'),F+=">"+E+"</a>",F}image({href:A,title:q,text:g,tokens:E}){E&&(g=this.parser.parseInline(E,this.parser.textRenderer));let a=bK(A);if(a===null)return Gq(g);A=a;let F=`<img src="${A}" alt="${g}"`;return q&&(F+=` title="${Gq(q)}"`),F+=">",F}text(A){return"tokens"in A&&A.tokens?this.parser.parseInline(A.tokens):("escaped"in A)&&A.escaped?A.text:Gq(A.text)}},Za=class{strong({text:A}){return A}em({text:A}){return A}codespan({text:A}){return A}del({text:A}){return A}html({text:A}){return A}text({text:A}){return A}link({text:A}){return""+A}image({text:A}){return""+A}br(){return""}checkbox({raw:A}){return A}},pA=class A{options;renderer;textRenderer;constructor(q){this.options=q||wq,this.options.renderer=this.options.renderer||new T6,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Za}static parse(q,g){return new A(g).parse(q)}static parseInline(q,g){return new A(g).parseInline(q)}parse(q){let g="";for(let E=0;E<q.length;E++){let a=q[E];if(this.options.extensions?.renderers?.[a.type]){let K=a,Z=this.options.extensions.renderers[K.type].call({parser:this},K);if(Z!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(K.type)){g+=Z||"";continue}}let F=a;switch(F.type){case"space":{g+=this.renderer.space(F);break}case"hr":{g+=this.renderer.hr(F);break}case"heading":{g+=this.renderer.heading(F);break}case"code":{g+=this.renderer.code(F);break}case"table":{g+=this.renderer.table(F);break}case"blockquote":{g+=this.renderer.blockquote(F);break}case"list":{g+=this.renderer.list(F);break}case"checkbox":{g+=this.renderer.checkbox(F);break}case"html":{g+=this.renderer.html(F);break}case"def":{g+=this.renderer.def(F);break}case"paragraph":{g+=this.renderer.paragraph(F);break}case"text":{g+=this.renderer.text(F);break}default:{let K='Token with "'+F.type+'" type was not found.';if(this.options.silent)return console.error(K),"";throw Error(K)}}}return g}parseInline(q,g=this.renderer){let E="";for(let a=0;a<q.length;a++){let F=q[a];if(this.options.extensions?.renderers?.[F.type]){let Z=this.options.extensions.renderers[F.type].call({parser:this},F);if(Z!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(F.type)){E+=Z||"";continue}}let K=F;switch(K.type){case"escape":{E+=g.text(K);break}case"html":{E+=g.html(K);break}case"link":{E+=g.link(K);break}case"image":{E+=g.image(K);break}case"checkbox":{E+=g.checkbox(K);break}case"strong":{E+=g.strong(K);break}case"em":{E+=g.em(K);break}case"codespan":{E+=g.codespan(K);break}case"br":{E+=g.br(K);break}case"del":{E+=g.del(K);break}case"text":{E+=g.text(K);break}default:{let Z='Token with "'+K.type+'" type was not found.';if(this.options.silent)return console.error(Z),"";throw Error(Z)}}}return E}},hg,CO=class{defaults=Aa();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=pA;Renderer=T6;TextRenderer=Za;Lexer=vA;Tokenizer=I6;Hooks=hg;constructor(...A){this.use(...A)}walkTokens(A,q){let g=[];for(let E of A)switch(g=g.concat(q.call(this,E)),E.type){case"table":{let a=E;for(let F of a.header)g=g.concat(this.walkTokens(F.tokens,q));for(let F of a.rows)for(let K of F)g=g.concat(this.walkTokens(K.tokens,q));break}case"list":{let a=E;g=g.concat(this.walkTokens(a.items,q));break}default:{let a=E;this.defaults.extensions?.childTokens?.[a.type]?this.defaults.extensions.childTokens[a.type].forEach((F)=>{let K=a[F].flat(1/0);g=g.concat(this.walkTokens(K,q))}):a.tokens&&(g=g.concat(this.walkTokens(a.tokens,q)))}}return g}use(...A){let q=this.defaults.extensions||{renderers:{},childTokens:{}};return A.forEach((g)=>{let E={...g};if(E.async=this.defaults.async||E.async||!1,g.extensions&&(g.extensions.forEach((a)=>{if(!a.name)throw Error("extension name required");if("renderer"in a){let F=q.renderers[a.name];F?q.renderers[a.name]=function(...K){let Z=a.renderer.apply(this,K);return Z===!1&&(Z=F.apply(this,K)),Z}:q.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw Error("extension level must be 'block' or 'inline'");let F=q[a.level];F?F.unshift(a.tokenizer):q[a.level]=[a.tokenizer],a.start&&(a.level==="block"?q.startBlock?q.startBlock.push(a.start):q.startBlock=[a.start]:a.level==="inline"&&(q.startInline?q.startInline.push(a.start):q.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(q.childTokens[a.name]=a.childTokens)}),E.extensions=q),g.renderer){let a=this.defaults.renderer||new T6(this.defaults);for(let F in g.renderer){if(!(F in a))throw Error(`renderer '${F}' does not exist`);if(["options","parser"].includes(F))continue;let K=F,Z=g.renderer[K],j=a[K];a[K]=(...U)=>{let O=Z.apply(a,U);return O===!1&&(O=j.apply(a,U)),O||""}}E.renderer=a}if(g.tokenizer){let a=this.defaults.tokenizer||new I6(this.defaults);for(let F in g.tokenizer){if(!(F in a))throw Error(`tokenizer '${F}' does not exist`);if(["options","rules","lexer"].includes(F))continue;let K=F,Z=g.tokenizer[K],j=a[K];a[K]=(...U)=>{let O=Z.apply(a,U);return O===!1&&(O=j.apply(a,U)),O}}E.tokenizer=a}if(g.hooks){let a=this.defaults.hooks||new hg;for(let F in g.hooks){if(!(F in a))throw Error(`hook '${F}' does not exist`);if(["options","block"].includes(F))continue;let K=F,Z=g.hooks[K],j=a[K];hg.passThroughHooks.has(F)?a[K]=(U)=>{if(this.defaults.async&&hg.passThroughHooksRespectAsync.has(F))return(async()=>{let Q=await Z.call(a,U);return j.call(a,Q)})();let O=Z.call(a,U);return j.call(a,O)}:a[K]=(...U)=>{if(this.defaults.async)return(async()=>{let Q=await Z.apply(a,U);return Q===!1&&(Q=await j.apply(a,U)),Q})();let O=Z.apply(a,U);return O===!1&&(O=j.apply(a,U)),O}}E.hooks=a}if(g.walkTokens){let a=this.defaults.walkTokens,F=g.walkTokens;E.walkTokens=function(K){let Z=[];return Z.push(F.call(this,K)),a&&(Z=Z.concat(a.call(this,K))),Z}}this.defaults={...this.defaults,...E}}),this}setOptions(A){return this.defaults={...this.defaults,...A},this}lexer(A,q){return vA.lex(A,q??this.defaults)}parser(A,q){return pA.parse(A,q??this.defaults)}parseMarkdown(A){return(q,g)=>{let E={...g},a={...this.defaults,...E},F=this.onError(!!a.silent,!!a.async);if(this.defaults.async===!0&&E.async===!1)return F(Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof q>"u"||q===null)return F(Error("marked(): input parameter is undefined or null"));if(typeof q!="string")return F(Error("marked(): input parameter is of type "+Object.prototype.toString.call(q)+", string expected"));if(a.hooks&&(a.hooks.options=a,a.hooks.block=A),a.async)return(async()=>{let K=a.hooks?await a.hooks.preprocess(q):q,Z=await(a.hooks?await a.hooks.provideLexer():A?vA.lex:vA.lexInline)(K,a),j=a.hooks?await a.hooks.processAllTokens(Z):Z;a.walkTokens&&await Promise.all(this.walkTokens(j,a.walkTokens));let U=await(a.hooks?await a.hooks.provideParser():A?pA.parse:pA.parseInline)(j,a);return a.hooks?await a.hooks.postprocess(U):U})().catch(F);try{a.hooks&&(q=a.hooks.preprocess(q));let K=(a.hooks?a.hooks.provideLexer():A?vA.lex:vA.lexInline)(q,a);a.hooks&&(K=a.hooks.processAllTokens(K)),a.walkTokens&&this.walkTokens(K,a.walkTokens);let Z=(a.hooks?a.hooks.provideParser():A?pA.parse:pA.parseInline)(K,a);return a.hooks&&(Z=a.hooks.postprocess(Z)),Z}catch(K){return F(K)}}}onError(A,q){return(g)=>{if(g.message+=`
92
+ Please report this to https://github.com/markedjs/marked.`,A){let E="<p>An error occurred:</p><pre>"+Gq(g.message+"",!0)+"</pre>";return q?Promise.resolve(E):E}if(q)return Promise.reject(g);throw g}}},Dq,hY,SY,zY,BY,CY,kY,DY,wY,yY,iE,uA,lA,rE,Ua,_a;var Mq=e(async()=>{await BK();Qq=class Qq extends u_{static registry=new Map;static nativeEventsSubscribed=!1;lib;bufferPtr;textBufferPtr;id;_destroyed=!1;_textBytes=[];_singleTextBytes=null;_singleTextMemId=null;_syntaxStyle;constructor(A,q){super();this.lib=A,this.bufferPtr=q,this.textBufferPtr=A.editBufferGetTextBuffer(q),this.id=A.editBufferGetId(q),Qq.registry.set(this.id,this),Qq.subscribeToNativeEvents(A)}static create(A){let q=PA(),g=q.createEditBuffer(A);return new Qq(q,g)}static subscribeToNativeEvents(A){if(Qq.nativeEventsSubscribed)return;Qq.nativeEventsSubscribed=!0,A.onAnyNativeEvent((q,g)=>{let E=new Uint16Array(g);if(q.startsWith("eb_")&&E.length>=1){let a=E[0],F=Qq.registry.get(a);if(F){let K=q.slice(3),Z=g.slice(2);F.emit(K,Z)}}})}guard(){if(this._destroyed)throw Error("EditBuffer is destroyed")}get ptr(){return this.guard(),this.bufferPtr}setText(A){this.guard();let q=this.lib.encoder.encode(A);if(this._singleTextMemId!==null)this.lib.textBufferReplaceMemBuffer(this.textBufferPtr,this._singleTextMemId,q,!1);else this._singleTextMemId=this.lib.textBufferRegisterMemBuffer(this.textBufferPtr,q,!1);this._singleTextBytes=q,this.lib.editBufferSetTextFromMem(this.bufferPtr,this._singleTextMemId)}setTextOwned(A){this.guard();let q=this.lib.encoder.encode(A);this.lib.editBufferSetText(this.bufferPtr,q)}replaceText(A){this.guard();let q=this.lib.encoder.encode(A);this._textBytes.push(q);let g=this.lib.textBufferRegisterMemBuffer(this.textBufferPtr,q,!1);this.lib.editBufferReplaceTextFromMem(this.bufferPtr,g)}replaceTextOwned(A){this.guard();let q=this.lib.encoder.encode(A);this.lib.editBufferReplaceText(this.bufferPtr,q)}getLineCount(){return this.guard(),this.lib.textBufferGetLineCount(this.textBufferPtr)}getText(){this.guard();let A=1048576,q=this.lib.editBufferGetText(this.bufferPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}insertChar(A){this.guard(),this.lib.editBufferInsertChar(this.bufferPtr,A)}insertText(A){this.guard(),this.lib.editBufferInsertText(this.bufferPtr,A)}deleteChar(){this.guard(),this.lib.editBufferDeleteChar(this.bufferPtr)}deleteCharBackward(){this.guard(),this.lib.editBufferDeleteCharBackward(this.bufferPtr)}deleteRange(A,q,g,E){this.guard(),this.lib.editBufferDeleteRange(this.bufferPtr,A,q,g,E)}newLine(){this.guard(),this.lib.editBufferNewLine(this.bufferPtr)}deleteLine(){this.guard(),this.lib.editBufferDeleteLine(this.bufferPtr)}moveCursorLeft(){this.guard(),this.lib.editBufferMoveCursorLeft(this.bufferPtr)}moveCursorRight(){this.guard(),this.lib.editBufferMoveCursorRight(this.bufferPtr)}moveCursorUp(){this.guard(),this.lib.editBufferMoveCursorUp(this.bufferPtr)}moveCursorDown(){this.guard(),this.lib.editBufferMoveCursorDown(this.bufferPtr)}gotoLine(A){this.guard(),this.lib.editBufferGotoLine(this.bufferPtr,A)}setCursor(A,q){this.guard(),this.lib.editBufferSetCursor(this.bufferPtr,A,q)}setCursorToLineCol(A,q){this.guard(),this.lib.editBufferSetCursorToLineCol(this.bufferPtr,A,q)}setCursorByOffset(A){this.guard(),this.lib.editBufferSetCursorByOffset(this.bufferPtr,A)}getCursorPosition(){return this.guard(),this.lib.editBufferGetCursorPosition(this.bufferPtr)}getNextWordBoundary(){this.guard();let A=this.lib.editBufferGetNextWordBoundary(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}getPrevWordBoundary(){this.guard();let A=this.lib.editBufferGetPrevWordBoundary(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}getEOL(){this.guard();let A=this.lib.editBufferGetEOL(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}offsetToPosition(A){this.guard();let q=this.lib.editBufferOffsetToPosition(this.bufferPtr,A);if(!q)return null;return{row:q.row,col:q.col}}positionToOffset(A,q){return this.guard(),this.lib.editBufferPositionToOffset(this.bufferPtr,A,q)}getLineStartOffset(A){return this.guard(),this.lib.editBufferGetLineStartOffset(this.bufferPtr,A)}getTextRange(A,q){if(this.guard(),A>=q)return"";let g=1048576,E=this.lib.editBufferGetTextRange(this.bufferPtr,A,q,g);if(!E)return"";return this.lib.decoder.decode(E)}getTextRangeByCoords(A,q,g,E){this.guard();let a=1048576,F=this.lib.editBufferGetTextRangeByCoords(this.bufferPtr,A,q,g,E,a);if(!F)return"";return this.lib.decoder.decode(F)}debugLogRope(){this.guard(),this.lib.editBufferDebugLogRope(this.bufferPtr)}undo(){this.guard();let A=256,q=this.lib.editBufferUndo(this.bufferPtr,A);if(!q)return null;return this.lib.decoder.decode(q)}redo(){this.guard();let A=256,q=this.lib.editBufferRedo(this.bufferPtr,A);if(!q)return null;return this.lib.decoder.decode(q)}canUndo(){return this.guard(),this.lib.editBufferCanUndo(this.bufferPtr)}canRedo(){return this.guard(),this.lib.editBufferCanRedo(this.bufferPtr)}clearHistory(){this.guard(),this.lib.editBufferClearHistory(this.bufferPtr)}setDefaultFg(A){this.guard(),this.lib.textBufferSetDefaultFg(this.textBufferPtr,A)}setDefaultBg(A){this.guard(),this.lib.textBufferSetDefaultBg(this.textBufferPtr,A)}setDefaultAttributes(A){this.guard(),this.lib.textBufferSetDefaultAttributes(this.textBufferPtr,A)}resetDefaults(){this.guard(),this.lib.textBufferResetDefaults(this.textBufferPtr)}setSyntaxStyle(A){this.guard(),this._syntaxStyle=A??void 0,this.lib.textBufferSetSyntaxStyle(this.textBufferPtr,A?.ptr??null)}getSyntaxStyle(){return this.guard(),this._syntaxStyle??null}addHighlight(A,q){this.guard(),this.lib.textBufferAddHighlight(this.textBufferPtr,A,q)}addHighlightByCharRange(A){this.guard(),this.lib.textBufferAddHighlightByCharRange(this.textBufferPtr,A)}removeHighlightsByRef(A){this.guard(),this.lib.textBufferRemoveHighlightsByRef(this.textBufferPtr,A)}clearLineHighlights(A){this.guard(),this.lib.textBufferClearLineHighlights(this.textBufferPtr,A)}clearAllHighlights(){this.guard(),this.lib.textBufferClearAllHighlights(this.textBufferPtr)}getLineHighlights(A){return this.guard(),this.lib.textBufferGetLineHighlights(this.textBufferPtr,A)}clear(){this.guard(),this.lib.editBufferClear(this.bufferPtr)}destroy(){if(this._destroyed)return;this._destroyed=!0,Qq.registry.delete(this.id),this.lib.destroyEditBuffer(this.bufferPtr)}};NY=new fK;dK=class dK extends OA{frameBuffer;respectAlpha;constructor(A,q){super(A,q);this.respectAlpha=q.respectAlpha||!1,this.frameBuffer=Zq.create(q.width,q.height,this._ctx.widthMethod,{respectAlpha:this.respectAlpha,id:q.id||`framebufferrenderable-${this.id}`})}onResize(A,q){if(A<=0||q<=0)throw Error(`Invalid resize dimensions for FrameBufferRenderable ${this.id}: ${A}x${q}`);this.frameBuffer.resize(A,q),super.onResize(A,q),this.requestRender()}renderSelf(A){if(!this.visible||this.isDestroyed)return;A.drawFrameBuffer(this.x,this.y,this.frameBuffer)}destroySelf(){this.frameBuffer?.destroy(),super.destroySelf()}};V6=class V6 extends dK{selectable=!0;static _defaultOptions={text:"",font:"tiny",color:"#FFFFFF",backgroundColor:"transparent",selectionBg:void 0,selectionFg:void 0,selectable:!0};_text;_font;_color;_backgroundColor;_selectionBg;_selectionFg;lastLocalSelection=null;selectionHelper;constructor(A,q){let g=V6._defaultOptions,E=q.font||g.font,a=q.text||g.text,F=rq({text:a,font:E});super(A,{flexShrink:0,...q,width:F.width||1,height:F.height||1,respectAlpha:!0});this._text=a,this._font=E,this._color=q.color||g.color,this._backgroundColor=q.backgroundColor||g.backgroundColor,this._selectionBg=q.selectionBg?R(q.selectionBg):void 0,this._selectionFg=q.selectionFg?R(q.selectionFg):void 0,this.selectable=q.selectable??!0,this.selectionHelper=new wE(()=>this._text,()=>this._font),this.renderFontToBuffer()}get text(){return this._text}set text(A){if(this._text=A,this.updateDimensions(),this.lastLocalSelection)this.selectionHelper.onLocalSelectionChanged(this.lastLocalSelection,this.width,this.height);this.renderFontToBuffer(),this.requestRender()}get font(){return this._font}set font(A){if(this._font=A,this.updateDimensions(),this.lastLocalSelection)this.selectionHelper.onLocalSelectionChanged(this.lastLocalSelection,this.width,this.height);this.renderFontToBuffer(),this.requestRender()}get color(){return this._color}set color(A){this._color=A,this.renderFontToBuffer(),this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){this._backgroundColor=A,this.renderFontToBuffer(),this.requestRender()}updateDimensions(){let A=rq({text:this._text,font:this._font});this.width=A.width,this.height=A.height}shouldStartSelection(A,q){let g=A-this.x,E=q-this.y;return this.selectionHelper.shouldStartSelection(g,E,this.width,this.height)}onSelectionChanged(A){let q=Vg(A,this.x,this.y);this.lastLocalSelection=q;let g=this.selectionHelper.onLocalSelectionChanged(q,this.width,this.height);if(g)this.renderFontToBuffer(),this.requestRender();return g}getSelectedText(){let A=this.selectionHelper.getSelection();if(!A)return"";return this._text.slice(A.start,A.end)}hasSelection(){return this.selectionHelper.hasSelection()}onResize(A,q){super.onResize(A,q),this.renderFontToBuffer()}renderFontToBuffer(){if(this.isDestroyed)return;this.frameBuffer.clear(R(this._backgroundColor)),Q6(this.frameBuffer,{text:this._text,x:0,y:0,color:this.color,backgroundColor:this._backgroundColor,font:this._font});let A=this.selectionHelper.getSelection();if(A&&(this._selectionBg||this._selectionFg))this.renderSelectionHighlight(A)}renderSelectionHighlight(A){if(!this._selectionBg&&!this._selectionFg)return;let q=this._text.slice(A.start,A.end);if(!q)return;let g=CE(this._text,this._font),E=g[A.start]||0,a=A.end<g.length?g[A.end]:rq({text:this._text,font:this._font}).width;if(this._selectionBg)this.frameBuffer.fillRect(E,0,a-E,this.height,R(this._selectionBg));if(this._selectionFg||this._selectionBg)Q6(this.frameBuffer,{text:q,x:E,y:0,color:this._selectionFg?this._selectionFg:this._color,backgroundColor:this._selectionBg?this._selectionBg:this._backgroundColor,font:this._font})}};gA=class gA extends OA{_backgroundColor;_border;_borderStyle;_borderColor;_focusedBorderColor;_customBorderCharsObj;_customBorderChars;borderSides;shouldFill;_title;_titleAlignment;_defaultOptions={backgroundColor:"transparent",borderStyle:"single",border:!1,borderColor:"#FFFFFF",shouldFill:!0,titleAlignment:"left",focusedBorderColor:"#00AAFF"};constructor(A,q){super(A,q);if(q.focusable===!0)this._focusable=!0;if(this._backgroundColor=R(q.backgroundColor||this._defaultOptions.backgroundColor),this._border=q.border??this._defaultOptions.border,!q.border&&(q.borderStyle||q.borderColor||q.focusedBorderColor||q.customBorderChars))this._border=!0;if(this._borderStyle=iq(q.borderStyle,this._defaultOptions.borderStyle),this._borderColor=R(q.borderColor||this._defaultOptions.borderColor),this._focusedBorderColor=R(q.focusedBorderColor||this._defaultOptions.focusedBorderColor),this._customBorderCharsObj=q.customBorderChars,this._customBorderChars=this._customBorderCharsObj?Bq(this._customBorderCharsObj):void 0,this.borderSides=G6(this._border),this.shouldFill=q.shouldFill??this._defaultOptions.shouldFill,this._title=q.title,this._titleAlignment=q.titleAlignment||this._defaultOptions.titleAlignment,this.applyYogaBorders(),q.gap!==void 0||q.rowGap!==void 0||q.columnGap!==void 0)this.applyYogaGap(q)}initializeBorder(){if(this._border===!1)this._border=!0,this.borderSides=G6(this._border),this.applyYogaBorders()}get customBorderChars(){return this._customBorderCharsObj}set customBorderChars(A){this._customBorderCharsObj=A,this._customBorderChars=A?Bq(A):void 0,this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){let q=R(A??this._defaultOptions.backgroundColor);if(this._backgroundColor!==q)this._backgroundColor=q,this.requestRender()}get border(){return this._border}set border(A){if(this._border!==A)this._border=A,this.borderSides=G6(A),this.applyYogaBorders(),this.requestRender()}get borderStyle(){return this._borderStyle}set borderStyle(A){let q=iq(A,this._defaultOptions.borderStyle);if(this._borderStyle!==q||!this._border)this._borderStyle=q,this._customBorderChars=void 0,this.initializeBorder(),this.requestRender()}get borderColor(){return this._borderColor}set borderColor(A){let q=R(A??this._defaultOptions.borderColor);if(this._borderColor!==q)this._borderColor=q,this.initializeBorder(),this.requestRender()}get focusedBorderColor(){return this._focusedBorderColor}set focusedBorderColor(A){let q=R(A??this._defaultOptions.focusedBorderColor);if(this._focusedBorderColor!==q){if(this._focusedBorderColor=q,this.initializeBorder(),this._focused)this.requestRender()}}get title(){return this._title}set title(A){if(this._title!==A)this._title=A,this.requestRender()}get titleAlignment(){return this._titleAlignment}set titleAlignment(A){if(this._titleAlignment!==A)this._titleAlignment=A,this.requestRender()}renderSelf(A){let q=this._focused?this._focusedBorderColor:this._borderColor;A.drawBox({x:this.x,y:this.y,width:this.width,height:this.height,borderStyle:this._borderStyle,customBorderChars:this._customBorderChars,border:this._border,borderColor:q,backgroundColor:this._backgroundColor,shouldFill:this.shouldFill,title:this._title,titleAlignment:this._titleAlignment})}getScissorRect(){let A=super.getScissorRect();if(!this.borderSides.top&&!this.borderSides.right&&!this.borderSides.bottom&&!this.borderSides.left)return A;let q=this.borderSides.left?1:0,g=this.borderSides.right?1:0,E=this.borderSides.top?1:0,a=this.borderSides.bottom?1:0;return{x:A.x+q,y:A.y+E,width:Math.max(0,A.width-q-g),height:Math.max(0,A.height-E-a)}}applyYogaBorders(){let A=this.yogaNode;A.setBorder(p.Left,this.borderSides.left?1:0),A.setBorder(p.Right,this.borderSides.right?1:0),A.setBorder(p.Top,this.borderSides.top?1:0),A.setBorder(p.Bottom,this.borderSides.bottom?1:0),this.requestRender()}applyYogaGap(A){let q=this.yogaNode;if(Ag(A.gap))q.setGap(cA.All,A.gap);if(Ag(A.rowGap))q.setGap(cA.Row,A.rowGap);if(Ag(A.columnGap))q.setGap(cA.Column,A.columnGap)}set gap(A){if(Ag(A))this.yogaNode.setGap(cA.All,A),this.requestRender()}set rowGap(A){if(Ag(A))this.yogaNode.setGap(cA.Row,A),this.requestRender()}set columnGap(A){if(Ag(A))this.yogaNode.setGap(cA.Column,A),this.requestRender()}};tK=class tK extends OA{selectable=!0;_defaultFg;_defaultBg;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_scrollX=0;_scrollY=0;_truncate=!1;textBuffer;textBufferView;_textBufferSyntaxStyle;_defaultOptions={fg:AA.fromValues(1,1,1,1),bg:AA.fromValues(0,0,0,0),selectionBg:void 0,selectionFg:void 0,selectable:!0,attributes:0,wrapMode:"word",tabIndicator:void 0,tabIndicatorColor:void 0,truncate:!1};constructor(A,q){super(A,q);if(this._defaultFg=R(q.fg??this._defaultOptions.fg),this._defaultBg=R(q.bg??this._defaultOptions.bg),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?R(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?R(q.selectionFg):this._defaultOptions.selectionFg,this.selectable=q.selectable??this._defaultOptions.selectable,this._wrapMode=q.wrapMode??this._defaultOptions.wrapMode,this._tabIndicator=q.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=q.tabIndicatorColor?R(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this._truncate=q.truncate??this._defaultOptions.truncate,this.textBuffer=xg.create(this._ctx.widthMethod),this.textBufferView=P6.create(this.textBuffer),this._textBufferSyntaxStyle=qg.create(),this.textBuffer.setSyntaxStyle(this._textBufferSyntaxStyle),this.textBufferView.setWrapMode(this._wrapMode),this.setupMeasureFunc(),this.textBuffer.setDefaultFg(this._defaultFg),this.textBuffer.setDefaultBg(this._defaultBg),this.textBuffer.setDefaultAttributes(this._defaultAttributes),this._tabIndicator!==void 0)this.textBufferView.setTabIndicator(this._tabIndicator);if(this._tabIndicatorColor!==void 0)this.textBufferView.setTabIndicatorColor(this._tabIndicatorColor);if(this._wrapMode!=="none"&&this.width>0)this.textBufferView.setWrapWidth(this.width);if(this.width>0&&this.height>0)this.textBufferView.setViewport(this._scrollX,this._scrollY,this.width,this.height);this.textBufferView.setTruncate(this._truncate),this.updateTextInfo()}onMouseEvent(A){if(A.type==="scroll")this.handleScroll(A)}handleScroll(A){if(!A.scroll)return;let{direction:q,delta:g}=A.scroll;if(q==="up")this.scrollY-=g;else if(q==="down")this.scrollY+=g;if(this._wrapMode==="none"){if(q==="left")this.scrollX-=g;else if(q==="right")this.scrollX+=g}}get lineInfo(){return this.textBufferView.logicalLineInfo}get lineCount(){return this.textBuffer.getLineCount()}get virtualLineCount(){return this.textBufferView.getVirtualLineCount()}get scrollY(){return this._scrollY}set scrollY(A){let q=Math.max(0,this.scrollHeight-this.height),g=Math.max(0,Math.min(A,q));if(this._scrollY!==g)this._scrollY=g,this.updateViewportOffset(),this.requestRender()}get scrollX(){return this._scrollX}set scrollX(A){let q=Math.max(0,this.scrollWidth-this.width),g=Math.max(0,Math.min(A,q));if(this._scrollX!==g)this._scrollX=g,this.updateViewportOffset(),this.requestRender()}get scrollWidth(){return this.lineInfo.lineWidthColsMax}get scrollHeight(){return this.lineInfo.lineStartCols.length}get maxScrollY(){return Math.max(0,this.scrollHeight-this.height)}get maxScrollX(){return Math.max(0,this.scrollWidth-this.width)}updateViewportOffset(){if(this.width>0&&this.height>0)this.textBufferView.setViewport(this._scrollX,this._scrollY,this.width,this.height)}get plainText(){return this.textBuffer.getPlainText()}get textLength(){return this.textBuffer.length}get fg(){return this._defaultFg}set fg(A){let q=R(A??this._defaultOptions.fg);if(this._defaultFg!==q)this._defaultFg=q,this.textBuffer.setDefaultFg(this._defaultFg),this.onFgChanged(q),this.requestRender()}get selectionBg(){return this._selectionBg}set selectionBg(A){let q=A?R(A):this._defaultOptions.selectionBg;if(this._selectionBg!==q){if(this._selectionBg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get selectionFg(){return this._selectionFg}set selectionFg(A){let q=A?R(A):this._defaultOptions.selectionFg;if(this._selectionFg!==q){if(this._selectionFg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get bg(){return this._defaultBg}set bg(A){let q=R(A??this._defaultOptions.bg);if(this._defaultBg!==q)this._defaultBg=q,this.textBuffer.setDefaultBg(this._defaultBg),this.onBgChanged(q),this.requestRender()}get attributes(){return this._defaultAttributes}set attributes(A){if(this._defaultAttributes!==A)this._defaultAttributes=A,this.textBuffer.setDefaultAttributes(this._defaultAttributes),this.onAttributesChanged(A),this.requestRender()}get wrapMode(){return this._wrapMode}set wrapMode(A){if(this._wrapMode!==A){if(this._wrapMode=A,this.textBufferView.setWrapMode(this._wrapMode),A!=="none"&&this.width>0)this.textBufferView.setWrapWidth(this.width);this.yogaNode.markDirty(),this.requestRender()}}get tabIndicator(){return this._tabIndicator}set tabIndicator(A){if(this._tabIndicator!==A){if(this._tabIndicator=A,A!==void 0)this.textBufferView.setTabIndicator(A);this.requestRender()}}get tabIndicatorColor(){return this._tabIndicatorColor}set tabIndicatorColor(A){let q=A?R(A):void 0;if(this._tabIndicatorColor!==q){if(this._tabIndicatorColor=q,q!==void 0)this.textBufferView.setTabIndicatorColor(q);this.requestRender()}}get truncate(){return this._truncate}set truncate(A){if(this._truncate!==A)this._truncate=A,this.textBufferView.setTruncate(A),this.requestRender()}onResize(A,q){this.textBufferView.setViewport(this._scrollX,this._scrollY,A,q),this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change")}refreshLocalSelection(){if(this.lastLocalSelection)return this.updateLocalSelection(this.lastLocalSelection);return!1}updateLocalSelection(A){if(!A?.isActive)return this.textBufferView.resetLocalSelection(),!0;return this.textBufferView.setLocalSelection(A.anchorX,A.anchorY,A.focusX,A.focusY,this._selectionBg,this._selectionFg)}updateTextInfo(){if(this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change")}setupMeasureFunc(){let A=(q,g,E,a)=>{let F;if(g===SA.Undefined||isNaN(q))F=0;else F=q;let K=isNaN(E)?1:E,Z=this.textBufferView.measureForDimensions(Math.floor(F),Math.floor(K)),j=Z?Math.max(1,Z.widthColsMax):1,U=Z?Math.max(1,Z.lineCount):1;if(g===SA.AtMost&&this._positionType!=="absolute")return{width:Math.min(F,j),height:Math.min(K,U)};return{width:j,height:U}};this.yogaNode.setMeasureFunc(A)}shouldStartSelection(A,q){if(!this.selectable)return!1;let g=A-this.x,E=q-this.y;return g>=0&&g<this.width&&E>=0&&E<this.height}onSelectionChanged(A){let q=Vg(A,this.x,this.y);this.lastLocalSelection=q;let g;if(!q?.isActive)this.textBufferView.resetLocalSelection(),g=!0;else if(A?.isStart)g=this.textBufferView.setLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg);else g=this.textBufferView.updateLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg);if(g)this.requestRender();return this.hasSelection()}getSelectedText(){return this.textBufferView.getSelectedText()}hasSelection(){return this.textBufferView.hasSelection()}getSelection(){return this.textBufferView.getSelection()}render(A,q){if(!this.visible)return;if(this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.renderSelf(A),this.buffered&&this.frameBuffer)A.drawFrameBuffer(this.x,this.y,this.frameBuffer)}renderSelf(A){if(this.textBuffer.ptr)A.drawTextBuffer(this.textBufferView,this.x,this.y)}destroy(){if(this.isDestroyed)return;this.textBuffer.setSyntaxStyle(null),this._textBufferSyntaxStyle.destroy(),this.textBufferView.destroy(),this.textBuffer.destroy(),super.destroy()}onFgChanged(A){}onBgChanged(A){}onAttributesChanged(A){}};uK=Symbol.for("@opentui/core/TextNodeRenderable");zg=class zg extends Rg{[uK]=!0;_fg;_bg;_attributes;_link;_children=[];parent=null;constructor(A){super(A);this._fg=A.fg?R(A.fg):void 0,this._bg=A.bg?R(A.bg):void 0,this._attributes=A.attributes??0,this._link=A.link}get children(){return this._children}set children(A){this._children=A,this.requestRender()}requestRender(){this.markDirty(),this.parent?.requestRender()}add(A,q){if(typeof A==="string"){if(q!==void 0)return this._children.splice(q,0,A),this.requestRender(),q;let g=this._children.length;return this._children.push(A),this.requestRender(),g}if(L6(A)){if(q!==void 0)return this._children.splice(q,0,A),A.parent=this,this.requestRender(),q;let g=this._children.length;return this._children.push(A),A.parent=this,this.requestRender(),g}if(rF(A)){let g=kK(A);if(q!==void 0)return this._children.splice(q,0,...g),g.forEach((a)=>a.parent=this),this.requestRender(),q;let E=this._children.length;return this._children.push(...g),g.forEach((a)=>a.parent=this),this.requestRender(),E}throw Error("TextNodeRenderable only accepts strings, TextNodeRenderable instances, or StyledText instances")}replace(A,q){if(this._children[q]=A,typeof A!=="string")A.parent=this;this.requestRender()}insertBefore(A,q){if(!q||!L6(q))throw Error("Anchor must be a TextNodeRenderable");let g=this._children.indexOf(q);if(g===-1)throw Error("Anchor node not found in children");if(typeof A==="string")this._children.splice(g,0,A);else if(L6(A))this._children.splice(g,0,A),A.parent=this;else if(A instanceof nq){let E=kK(A);this._children.splice(g,0,...E),E.forEach((a)=>a.parent=this)}else throw Error("Child must be a string, TextNodeRenderable, or StyledText instance");return this.requestRender(),this}remove(A){let q=this.getRenderableIndex(A);if(q===-1)throw Error("Child not found in children");let g=this._children[q];return this._children.splice(q,1),g.parent=null,this.requestRender(),this}clear(){this._children=[],this.requestRender()}mergeStyles(A){return{fg:this._fg??A.fg,bg:this._bg??A.bg,attributes:this._attributes|A.attributes,link:this._link??A.link}}gatherWithInheritedStyle(A={fg:void 0,bg:void 0,attributes:0}){let q=this.mergeStyles(A),g=[];for(let E of this._children)if(typeof E==="string")g.push({__isChunk:!0,text:E,fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});else{let a=E.gatherWithInheritedStyle(q);g.push(...a)}return this.markClean(),g}static fromString(A,q={}){let g=new zg(q);return g.add(A),g}static fromNodes(A,q={}){let g=new zg(q);for(let E of A)g.add(E);return g}toChunks(A={fg:void 0,bg:void 0,attributes:0}){return this.gatherWithInheritedStyle(A)}getChildren(){return this._children.filter((A)=>typeof A!=="string")}getChildrenCount(){return this._children.length}getRenderable(A){return this._children.find((q)=>typeof q!=="string"&&q.id===A)}getRenderableIndex(A){return this._children.findIndex((q)=>L6(q)&&q.id===A)}get fg(){return this._fg}set fg(A){if(!A){this._fg=void 0,this.requestRender();return}this._fg=R(A),this.requestRender()}set bg(A){if(!A){this._bg=void 0,this.requestRender();return}this._bg=R(A),this.requestRender()}get bg(){return this._bg}set attributes(A){this._attributes=A,this.requestRender()}get attributes(){return this._attributes}set link(A){this._link=A,this.requestRender()}get link(){return this._link}findDescendantById(A){return}};lK=class lK extends zg{ctx;textParent;constructor(A,q,g){super(q);this.ctx=A,this.textParent=g}requestRender(){this.markDirty(),this.ctx.requestRender()}};d=class d extends tK{_text;_hasManualStyledText=!1;rootTextNode;_contentDefaultOptions={content:""};constructor(A,q){super(A,q);let g=q.content??this._contentDefaultOptions.content,E=typeof g==="string"?oq(g):g;this._text=E,this._hasManualStyledText=q.content!==void 0&&g!=="",this.rootTextNode=new lK(A,{id:`${this.id}-root`,fg:this._defaultFg,bg:this._defaultBg,attributes:this._defaultAttributes},this),this.updateTextBuffer(E)}updateTextBuffer(A){this.textBuffer.setStyledText(A),this.clearChunks(A)}clearChunks(A){}get content(){return this._text}get chunks(){return this._text.chunks}get textNode(){return this.rootTextNode}set content(A){this._hasManualStyledText=!0;let q=typeof A==="string"?oq(A):A;if(this._text!==q)this._text=q,this.updateTextBuffer(q),this.updateTextInfo()}updateTextFromNodes(){if(this.rootTextNode.isDirty&&!this._hasManualStyledText){let A=this.rootTextNode.gatherWithInheritedStyle({fg:this._defaultFg,bg:this._defaultBg,attributes:this._defaultAttributes,link:void 0});this.textBuffer.setStyledText(new nq(A)),this.refreshLocalSelection(),this.yogaNode.markDirty()}}add(A,q){return this.rootTextNode.add(A,q)}remove(A){this.rootTextNode.remove(A)}insertBefore(A,q){return this.rootTextNode.insertBefore(A,q),this.rootTextNode.children.indexOf(A)}getTextChildren(){return this.rootTextNode.getChildren()}clear(){this.rootTextNode.clear();let A=oq("");this._text=A,this.updateTextBuffer(A),this.updateTextInfo(),this.requestRender()}onLifecyclePass=()=>{this.updateTextFromNodes()};onFgChanged(A){this.rootTextNode.fg=A}onBgChanged(A){this.rootTextNode.bg=A}onAttributesChanged(A){this.rootTextNode.attributes=A}destroy(){this.rootTextNode.children.length=0,super.destroy()}};sK=class sK extends OA{_focusable=!0;selectable=!0;_textColor;_backgroundColor;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";_scrollMargin=0.2;_showCursor=!0;_cursorColor;_cursorStyle;lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_cursorChangeListener=void 0;_contentChangeListener=void 0;_autoScrollVelocity=0;_autoScrollAccumulator=0;_scrollSpeed=16;_keyboardSelectionActive=!1;editBuffer;editorView;_defaultOptions={textColor:AA.fromValues(1,1,1,1),backgroundColor:"transparent",selectionBg:void 0,selectionFg:void 0,selectable:!0,attributes:0,wrapMode:"word",scrollMargin:0.2,scrollSpeed:16,showCursor:!0,cursorColor:AA.fromValues(1,1,1,1),cursorStyle:{style:"block",blinking:!0},tabIndicator:void 0,tabIndicatorColor:void 0};constructor(A,q){super(A,q);if(this._textColor=R(q.textColor??this._defaultOptions.textColor),this._backgroundColor=R(q.backgroundColor??this._defaultOptions.backgroundColor),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?R(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?R(q.selectionFg):this._defaultOptions.selectionFg,this.selectable=q.selectable??this._defaultOptions.selectable,this._wrapMode=q.wrapMode??this._defaultOptions.wrapMode,this._scrollMargin=q.scrollMargin??this._defaultOptions.scrollMargin,this._scrollSpeed=q.scrollSpeed??this._defaultOptions.scrollSpeed,this._showCursor=q.showCursor??this._defaultOptions.showCursor,this._cursorColor=R(q.cursorColor??this._defaultOptions.cursorColor),this._cursorStyle=q.cursorStyle??this._defaultOptions.cursorStyle,this._tabIndicator=q.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=q.tabIndicatorColor?R(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this.editBuffer=Qq.create(this._ctx.widthMethod),this.editorView=eE.create(this.editBuffer,this.width||80,this.height||24),this.editorView.setWrapMode(this._wrapMode),this.editorView.setScrollMargin(this._scrollMargin),this.editBuffer.setDefaultFg(this._textColor),this.editBuffer.setDefaultBg(this._backgroundColor),this.editBuffer.setDefaultAttributes(this._defaultAttributes),q.syntaxStyle)this.editBuffer.setSyntaxStyle(q.syntaxStyle);if(this._tabIndicator!==void 0)this.editorView.setTabIndicator(this._tabIndicator);if(this._tabIndicatorColor!==void 0)this.editorView.setTabIndicatorColor(this._tabIndicatorColor);this.setupMeasureFunc(),this.setupEventListeners(q)}get lineInfo(){return this.editorView.getLogicalLineInfo()}setupEventListeners(A){this._cursorChangeListener=A.onCursorChange,this._contentChangeListener=A.onContentChange,this.editBuffer.on("cursor-changed",()=>{if(this._cursorChangeListener){let q=this.editBuffer.getCursorPosition();this._cursorChangeListener({line:q.row,visualColumn:q.col})}}),this.editBuffer.on("content-changed",()=>{if(this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change"),this._contentChangeListener)this._contentChangeListener({})})}get lineCount(){return this.editBuffer.getLineCount()}get virtualLineCount(){return this.editorView.getVirtualLineCount()}get scrollY(){return this.editorView.getViewport().offsetY}get plainText(){return this.editBuffer.getText()}get logicalCursor(){return this.editBuffer.getCursorPosition()}get visualCursor(){return this.editorView.getVisualCursor()}get cursorOffset(){return this.editorView.getVisualCursor().offset}set cursorOffset(A){this.editorView.setCursorByOffset(A),this.requestRender()}get textColor(){return this._textColor}set textColor(A){let q=R(A??this._defaultOptions.textColor);if(this._textColor!==q)this._textColor=q,this.editBuffer.setDefaultFg(q),this.requestRender()}get selectionBg(){return this._selectionBg}set selectionBg(A){let q=A?R(A):this._defaultOptions.selectionBg;if(this._selectionBg!==q){if(this._selectionBg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get selectionFg(){return this._selectionFg}set selectionFg(A){let q=A?R(A):this._defaultOptions.selectionFg;if(this._selectionFg!==q){if(this._selectionFg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){let q=R(A??this._defaultOptions.backgroundColor);if(this._backgroundColor!==q)this._backgroundColor=q,this.editBuffer.setDefaultBg(q),this.requestRender()}get attributes(){return this._defaultAttributes}set attributes(A){if(this._defaultAttributes!==A)this._defaultAttributes=A,this.editBuffer.setDefaultAttributes(A),this.requestRender()}get wrapMode(){return this._wrapMode}set wrapMode(A){if(this._wrapMode!==A)this._wrapMode=A,this.editorView.setWrapMode(A),this.yogaNode.markDirty(),this.requestRender()}get showCursor(){return this._showCursor}set showCursor(A){if(this._showCursor!==A){if(this._showCursor=A,!A&&this._focused)this._ctx.setCursorPosition(0,0,!1);this.requestRender()}}get cursorColor(){return this._cursorColor}set cursorColor(A){let q=R(A);if(this._cursorColor!==q){if(this._cursorColor=q,this._focused)this.requestRender()}}get cursorStyle(){return this._cursorStyle}set cursorStyle(A){let q=A;if(this.cursorStyle.style!==q.style||this.cursorStyle.blinking!==q.blinking){if(this._cursorStyle=q,this._focused)this.requestRender()}}get tabIndicator(){return this._tabIndicator}set tabIndicator(A){if(this._tabIndicator!==A){if(this._tabIndicator=A,A!==void 0)this.editorView.setTabIndicator(A);this.requestRender()}}get tabIndicatorColor(){return this._tabIndicatorColor}set tabIndicatorColor(A){let q=A?R(A):void 0;if(this._tabIndicatorColor!==q){if(this._tabIndicatorColor=q,q!==void 0)this.editorView.setTabIndicatorColor(q);this.requestRender()}}get scrollSpeed(){return this._scrollSpeed}set scrollSpeed(A){this._scrollSpeed=Math.max(0,A)}onMouseEvent(A){if(A.type==="scroll")this.handleScroll(A)}handleScroll(A){if(!A.scroll)return;let{direction:q,delta:g}=A.scroll,E=this.editorView.getViewport();if(q==="up"){let a=Math.max(0,E.offsetY-g);this.editorView.setViewport(E.offsetX,a,E.width,E.height,!0),this.requestRender()}else if(q==="down"){let a=this.editorView.getTotalVirtualLineCount(),F=Math.max(0,a-E.height),K=Math.min(E.offsetY+g,F);this.editorView.setViewport(E.offsetX,K,E.width,E.height,!0),this.requestRender()}if(this._wrapMode==="none"){if(q==="left"){let a=Math.max(0,E.offsetX-g);this.editorView.setViewport(a,E.offsetY,E.width,E.height,!0),this.requestRender()}else if(q==="right"){let a=E.offsetX+g;this.editorView.setViewport(a,E.offsetY,E.width,E.height,!0),this.requestRender()}}}onResize(A,q){this.editorView.setViewportSize(A,q)}refreshLocalSelection(){if(this.lastLocalSelection)return this.updateLocalSelection(this.lastLocalSelection);return!1}updateLocalSelection(A){if(!A?.isActive)return this.editorView.resetLocalSelection(),!0;return this.editorView.setLocalSelection(A.anchorX,A.anchorY,A.focusX,A.focusY,this._selectionBg,this._selectionFg,!1)}shouldStartSelection(A,q){if(!this.selectable)return!1;let g=A-this.x,E=q-this.y;return g>=0&&g<this.width&&E>=0&&E<this.height}onSelectionChanged(A){let q=Vg(A,this.x,this.y);this.lastLocalSelection=q;let g=!0,E=this._keyboardSelectionActive,a;if(!q?.isActive)this._keyboardSelectionActive=!1,this.editorView.resetLocalSelection(),a=!0;else if(A?.isStart)a=this.editorView.setLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg,g,E);else a=this.editorView.updateLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg,g,E);if(a&&q?.isActive&&A?.isDragging){let F=this.editorView.getViewport(),K=q.focusY,Z=Math.max(1,Math.floor(F.height*this._scrollMargin));if(K<Z)this._autoScrollVelocity=-this._scrollSpeed;else if(K>=F.height-Z)this._autoScrollVelocity=this._scrollSpeed;else this._autoScrollVelocity=0}else this._keyboardSelectionActive=!1,this._autoScrollVelocity=0,this._autoScrollAccumulator=0;if(a)this.requestRender();return this.hasSelection()}onUpdate(A){if(super.onUpdate(A),this._autoScrollVelocity!==0&&this.hasSelection()){let q=A/1000;this._autoScrollAccumulator+=this._autoScrollVelocity*q;let g=Math.floor(Math.abs(this._autoScrollAccumulator));if(g>0){let E=this._autoScrollVelocity>0?1:-1,a=this.editorView.getViewport(),F=this.editorView.getTotalVirtualLineCount(),K=Math.max(0,F-a.height),Z=Math.max(0,Math.min(a.offsetY+E*g,K));if(Z!==a.offsetY)this.editorView.setViewport(a.offsetX,Z,a.width,a.height,!1),this._ctx.requestSelectionUpdate();this._autoScrollAccumulator-=E*g}}}getSelectedText(){return this.editorView.getSelectedText()}hasSelection(){return this.editorView.hasSelection()}getSelection(){return this.editorView.getSelection()}setupMeasureFunc(){let A=(q,g,E,a)=>{let F;if(g===SA.Undefined||isNaN(q))F=0;else F=q;let K=isNaN(E)?1:E,Z=this.editorView.measureForDimensions(Math.floor(F),Math.floor(K)),j=Z?Math.max(1,Z.widthColsMax):1,U=Z?Math.max(1,Z.lineCount):1;if(g===SA.AtMost&&this._positionType!=="absolute")return{width:Math.min(F,j),height:Math.min(K,U)};return{width:j,height:U}};this.yogaNode.setMeasureFunc(A)}render(A,q){if(!this.visible)return;if(this.isDestroyed)return;this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.renderSelf(A),this.renderCursor(A)}renderSelf(A){A.drawEditorView(this.editorView,this.x,this.y)}renderCursor(A){if(!this._showCursor||!this._focused)return;let q=this.editorView.getVisualCursor(),g=this.x+q.visualCol+1,E=this.y+q.visualRow+1;this._ctx.setCursorPosition(g,E,!0),this._ctx.setCursorStyle({...this._cursorStyle,color:this._cursorColor})}focus(){super.focus(),this._ctx.setCursorStyle({...this._cursorStyle,color:this._cursorColor}),this.requestRender()}blur(){super.blur(),this._ctx.setCursorPosition(0,0,!1),this.requestRender()}onRemove(){if(this._focused)this._ctx.setCursorPosition(0,0,!1)}destroy(){if(this.isDestroyed)return;if(this._focused)this._ctx.setCursorPosition(0,0,!1),this.blur();this.editorView.destroy(),this.editBuffer.destroy(),super.destroy()}set onCursorChange(A){this._cursorChangeListener=A}get onCursorChange(){return this._cursorChangeListener}set onContentChange(A){this._contentChangeListener=A}get onContentChange(){return this._contentChangeListener}get syntaxStyle(){return this.editBuffer.getSyntaxStyle()}set syntaxStyle(A){this.editBuffer.setSyntaxStyle(A),this.requestRender()}addHighlight(A,q){this.editBuffer.addHighlight(A,q),this.requestRender()}addHighlightByCharRange(A){this.editBuffer.addHighlightByCharRange(A),this.requestRender()}removeHighlightsByRef(A){this.editBuffer.removeHighlightsByRef(A),this.requestRender()}clearLineHighlights(A){this.editBuffer.clearLineHighlights(A),this.requestRender()}clearAllHighlights(){this.editBuffer.clearAllHighlights(),this.requestRender()}getLineHighlights(A){return this.editBuffer.getLineHighlights(A)}setText(A){this.editBuffer.setText(A),this.yogaNode.markDirty(),this.requestRender()}replaceText(A){this.editBuffer.replaceText(A),this.yogaNode.markDirty(),this.requestRender()}clear(){this.editBuffer.clear(),this.editBuffer.clearAllHighlights(),this.yogaNode.markDirty(),this.requestRender()}deleteRange(A,q,g,E){this.editBuffer.deleteRange(A,q,g,E),this.yogaNode.markDirty(),this.requestRender()}insertText(A){this.editBuffer.insertText(A),this.yogaNode.markDirty(),this.requestRender()}getTextRange(A,q){return this.editBuffer.getTextRange(A,q)}getTextRangeByCoords(A,q,g,E){return this.editBuffer.getTextRangeByCoords(A,q,g,E)}updateSelectionForMovement(A,q){if(!this.selectable)return;if(!A){this._keyboardSelectionActive=!1,this._ctx.clearSelection();return}this._keyboardSelectionActive=!0;let g=this.editorView.getVisualCursor(),E=this.x+g.visualCol,a=this.y+g.visualRow;if(q){if(!this._ctx.hasSelection)this._ctx.startSelection(this,E,a);return}this._ctx.updateSelection(this,E,a,{finishDragging:!0})}};sE=[{name:"left",action:"move-left"},{name:"right",action:"move-right"},{name:"up",action:"move-up"},{name:"down",action:"move-down"},{name:"left",shift:!0,action:"select-left"},{name:"right",shift:!0,action:"select-right"},{name:"up",shift:!0,action:"select-up"},{name:"down",shift:!0,action:"select-down"},{name:"home",action:"buffer-home"},{name:"end",action:"buffer-end"},{name:"home",shift:!0,action:"select-buffer-home"},{name:"end",shift:!0,action:"select-buffer-end"},{name:"a",ctrl:!0,action:"line-home"},{name:"e",ctrl:!0,action:"line-end"},{name:"a",ctrl:!0,shift:!0,action:"select-line-home"},{name:"e",ctrl:!0,shift:!0,action:"select-line-end"},{name:"a",meta:!0,action:"visual-line-home"},{name:"e",meta:!0,action:"visual-line-end"},{name:"a",meta:!0,shift:!0,action:"select-visual-line-home"},{name:"e",meta:!0,shift:!0,action:"select-visual-line-end"},{name:"f",ctrl:!0,action:"move-right"},{name:"b",ctrl:!0,action:"move-left"},{name:"w",ctrl:!0,action:"delete-word-backward"},{name:"backspace",ctrl:!0,action:"delete-word-backward"},{name:"d",meta:!0,action:"delete-word-forward"},{name:"delete",meta:!0,action:"delete-word-forward"},{name:"delete",ctrl:!0,action:"delete-word-forward"},{name:"d",ctrl:!0,shift:!0,action:"delete-line"},{name:"k",ctrl:!0,action:"delete-to-line-end"},{name:"u",ctrl:!0,action:"delete-to-line-start"},{name:"backspace",action:"backspace"},{name:"backspace",shift:!0,action:"backspace"},{name:"d",ctrl:!0,action:"delete"},{name:"delete",action:"delete"},{name:"delete",shift:!0,action:"delete"},{name:"return",action:"newline"},{name:"linefeed",action:"newline"},{name:"return",meta:!0,action:"submit"},{name:"-",ctrl:!0,action:"undo"},{name:".",ctrl:!0,action:"redo"},{name:"z",super:!0,action:"undo"},{name:"z",super:!0,shift:!0,action:"redo"},{name:"f",meta:!0,action:"word-forward"},{name:"b",meta:!0,action:"word-backward"},{name:"right",meta:!0,action:"word-forward"},{name:"left",meta:!0,action:"word-backward"},{name:"right",ctrl:!0,action:"word-forward"},{name:"left",ctrl:!0,action:"word-backward"},{name:"f",meta:!0,shift:!0,action:"select-word-forward"},{name:"b",meta:!0,shift:!0,action:"select-word-backward"},{name:"right",meta:!0,shift:!0,action:"select-word-forward"},{name:"left",meta:!0,shift:!0,action:"select-word-backward"},{name:"backspace",meta:!0,action:"delete-word-backward"},{name:"left",super:!0,action:"visual-line-home"},{name:"right",super:!0,action:"visual-line-end"},{name:"up",super:!0,action:"buffer-home"},{name:"down",super:!0,action:"buffer-end"},{name:"left",super:!0,shift:!0,action:"select-visual-line-home"},{name:"right",super:!0,shift:!0,action:"select-visual-line-end"},{name:"up",super:!0,shift:!0,action:"select-buffer-home"},{name:"down",super:!0,shift:!0,action:"select-buffer-end"},{name:"a",super:!0,action:"select-all"}];Yq=class Yq extends sK{_placeholder;_placeholderColor;_unfocusedBackgroundColor;_unfocusedTextColor;_focusedBackgroundColor;_focusedTextColor;_keyBindingsMap;_keyAliasMap;_keyBindings;_actionHandlers;_initialValueSet=!1;_submitListener=void 0;static defaults={backgroundColor:"transparent",textColor:"#FFFFFF",focusedBackgroundColor:"transparent",focusedTextColor:"#FFFFFF",placeholder:null,placeholderColor:"#666666"};constructor(A,q){let g=Yq.defaults,E={...q,backgroundColor:q.backgroundColor||g.backgroundColor,textColor:q.textColor||g.textColor};super(A,E);this._unfocusedBackgroundColor=R(q.backgroundColor||g.backgroundColor),this._unfocusedTextColor=R(q.textColor||g.textColor),this._focusedBackgroundColor=R(q.focusedBackgroundColor||q.backgroundColor||g.focusedBackgroundColor),this._focusedTextColor=R(q.focusedTextColor||q.textColor||g.focusedTextColor),this._placeholder=q.placeholder??g.placeholder,this._placeholderColor=R(q.placeholderColor??g.placeholderColor),this._keyAliasMap=_q(Uq,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[];let a=xA(sE,this._keyBindings);if(this._keyBindingsMap=RA(a,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._submitListener=q.onSubmit,q.initialValue)this.setText(q.initialValue),this._initialValueSet=!0;this.updateColors(),this.applyPlaceholder(this._placeholder)}applyPlaceholder(A){if(A===null){this.editorView.setPlaceholderStyledText([]);return}if(typeof A==="string"){let g=[nF(this._placeholderColor)(A)];this.editorView.setPlaceholderStyledText(g)}else this.editorView.setPlaceholderStyledText(A.chunks)}buildActionHandlers(){return new Map([["move-left",()=>this.moveCursorLeft()],["move-right",()=>this.moveCursorRight()],["move-up",()=>this.moveCursorUp()],["move-down",()=>this.moveCursorDown()],["select-left",()=>this.moveCursorLeft({select:!0})],["select-right",()=>this.moveCursorRight({select:!0})],["select-up",()=>this.moveCursorUp({select:!0})],["select-down",()=>this.moveCursorDown({select:!0})],["line-home",()=>this.gotoLineHome()],["line-end",()=>this.gotoLineEnd()],["select-line-home",()=>this.gotoLineHome({select:!0})],["select-line-end",()=>this.gotoLineEnd({select:!0})],["visual-line-home",()=>this.gotoVisualLineHome()],["visual-line-end",()=>this.gotoVisualLineEnd()],["select-visual-line-home",()=>this.gotoVisualLineHome({select:!0})],["select-visual-line-end",()=>this.gotoVisualLineEnd({select:!0})],["select-buffer-home",()=>this.gotoBufferHome({select:!0})],["select-buffer-end",()=>this.gotoBufferEnd({select:!0})],["buffer-home",()=>this.gotoBufferHome()],["buffer-end",()=>this.gotoBufferEnd()],["delete-line",()=>this.deleteLine()],["delete-to-line-end",()=>this.deleteToLineEnd()],["delete-to-line-start",()=>this.deleteToLineStart()],["backspace",()=>this.deleteCharBackward()],["delete",()=>this.deleteChar()],["newline",()=>this.newLine()],["undo",()=>this.undo()],["redo",()=>this.redo()],["word-forward",()=>this.moveWordForward()],["word-backward",()=>this.moveWordBackward()],["select-word-forward",()=>this.moveWordForward({select:!0})],["select-word-backward",()=>this.moveWordBackward({select:!0})],["delete-word-forward",()=>this.deleteWordForward()],["delete-word-backward",()=>this.deleteWordBackward()],["select-all",()=>this.selectAll()],["submit",()=>this.submit()]])}handlePaste(A){this.insertText(A.text)}handleKeyPress(A){let q=Oq({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"move-left"}),g=this._keyBindingsMap.get(q);if(g){let E=this._actionHandlers.get(g);if(E)return E()}if(!A.ctrl&&!A.meta&&!A.super&&!A.hyper){if(A.name==="space")return this.insertText(" "),!0;if(A.sequence){let E=A.sequence.charCodeAt(0);if(E<32)return!1;if(E===127)return!1;return this.insertText(A.sequence),!0}}return!1}updateColors(){let A=this._focused?this._focusedBackgroundColor:this._unfocusedBackgroundColor,q=this._focused?this._focusedTextColor:this._unfocusedTextColor;super.backgroundColor=A,super.textColor=q}insertChar(A){if(this.hasSelection())this.deleteSelectedText();this.editBuffer.insertChar(A),this.requestRender()}insertText(A){if(this.hasSelection())this.deleteSelectedText();this.editBuffer.insertText(A),this.requestRender()}deleteChar(){if(this.hasSelection())return this.deleteSelectedText(),!0;return this._ctx.clearSelection(),this.editBuffer.deleteChar(),this.requestRender(),!0}deleteCharBackward(){if(this.hasSelection())return this.deleteSelectedText(),!0;return this._ctx.clearSelection(),this.editBuffer.deleteCharBackward(),this.requestRender(),!0}deleteSelectedText(){this.editorView.deleteSelectedText(),this._ctx.clearSelection(),this.requestRender()}newLine(){return this._ctx.clearSelection(),this.editBuffer.newLine(),this.requestRender(),!0}deleteLine(){return this._ctx.clearSelection(),this.editBuffer.deleteLine(),this.requestRender(),!0}moveCursorLeft(A){let q=A?.select??!1;if(!q&&this.hasSelection()){let g=this.getSelection();return this.editBuffer.setCursorByOffset(g.start),this._ctx.clearSelection(),this.requestRender(),!0}return this.updateSelectionForMovement(q,!0),this.editBuffer.moveCursorLeft(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorRight(A){let q=A?.select??!1;if(!q&&this.hasSelection()){let g=this.getSelection(),E=this.cursorOffset===g.start?g.end-1:g.end;return this.editBuffer.setCursorByOffset(E),this._ctx.clearSelection(),this.requestRender(),!0}return this.updateSelectionForMovement(q,!0),this.editBuffer.moveCursorRight(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorUp(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editorView.moveUpVisual(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorDown(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editorView.moveDownVisual(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoLine(A){this.editBuffer.gotoLine(A),this.requestRender()}gotoLineHome(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getCursor();if(g.col===0&&g.row>0){this.editBuffer.setCursor(g.row-1,0);let E=this.editBuffer.getEOL();this.editBuffer.setCursor(E.row,E.col)}else this.editBuffer.setCursor(g.row,0);return this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoLineEnd(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getCursor(),E=this.editBuffer.getEOL(),a=this.editBuffer.getLineCount();if(g.col===E.col&&g.row<a-1)this.editBuffer.setCursor(g.row+1,0);else this.editBuffer.setCursor(E.row,E.col);return this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoVisualLineHome(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getVisualSOL();return this.editBuffer.setCursor(g.logicalRow,g.logicalCol),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoVisualLineEnd(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getVisualEOL();return this.editBuffer.setCursor(g.logicalRow,g.logicalCol),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoBufferHome(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.setCursor(0,0),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoBufferEnd(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.gotoLine(999999),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}selectAll(){return this.updateSelectionForMovement(!1,!0),this.editBuffer.setCursor(0,0),this.gotoBufferEnd({select:!0})}deleteToLineEnd(){let A=this.editorView.getCursor(),q=this.editBuffer.getEOL();if(q.col>A.col)this.editBuffer.deleteRange(A.row,A.col,q.row,q.col);return this.requestRender(),!0}deleteToLineStart(){let A=this.editorView.getCursor();if(A.col>0)this.editBuffer.deleteRange(A.row,0,A.row,A.col);return this.requestRender(),!0}undo(){return this._ctx.clearSelection(),this.editBuffer.undo(),this.requestRender(),!0}redo(){return this._ctx.clearSelection(),this.editBuffer.redo(),this.requestRender(),!0}moveWordForward(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editBuffer.getNextWordBoundary();return this.editBuffer.setCursorByOffset(g.offset),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveWordBackward(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editBuffer.getPrevWordBoundary();return this.editBuffer.setCursorByOffset(g.offset),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}deleteWordForward(){if(this.hasSelection())return this.deleteSelectedText(),!0;let A=this.editBuffer.getCursorPosition(),q=this.editBuffer.getNextWordBoundary();if(q.offset>A.offset)this.editBuffer.deleteRange(A.row,A.col,q.row,q.col);return this._ctx.clearSelection(),this.requestRender(),!0}deleteWordBackward(){if(this.hasSelection())return this.deleteSelectedText(),!0;let A=this.editBuffer.getCursorPosition(),q=this.editBuffer.getPrevWordBoundary();if(q.offset<A.offset)this.editBuffer.deleteRange(q.row,q.col,A.row,A.col);return this._ctx.clearSelection(),this.requestRender(),!0}focus(){super.focus(),this.updateColors()}blur(){if(super.blur(),!this.isDestroyed)this.updateColors()}get placeholder(){return this._placeholder}set placeholder(A){let q=A??null;if(this._placeholder!==q)this._placeholder=q,this.applyPlaceholder(q),this.requestRender()}get placeholderColor(){return this._placeholderColor}set placeholderColor(A){let q=R(A??Yq.defaults.placeholderColor);if(this._placeholderColor!==q)this._placeholderColor=q,this.applyPlaceholder(this._placeholder),this.requestRender()}get backgroundColor(){return this._unfocusedBackgroundColor}set backgroundColor(A){let q=R(A??Yq.defaults.backgroundColor);if(this._unfocusedBackgroundColor!==q)this._unfocusedBackgroundColor=q,this.updateColors()}get textColor(){return this._unfocusedTextColor}set textColor(A){let q=R(A??Yq.defaults.textColor);if(this._unfocusedTextColor!==q)this._unfocusedTextColor=q,this.updateColors()}set focusedBackgroundColor(A){let q=R(A??Yq.defaults.focusedBackgroundColor);if(this._focusedBackgroundColor!==q)this._focusedBackgroundColor=q,this.updateColors()}set focusedTextColor(A){let q=R(A??Yq.defaults.focusedTextColor);if(this._focusedTextColor!==q)this._focusedTextColor=q,this.updateColors()}set initialValue(A){if(!this._initialValueSet)this.setText(A),this._initialValueSet=!0}submit(){if(this._submitListener)this._submitListener({});return!0}set onSubmit(A){this._submitListener=A}get onSubmit(){return this._submitListener}set keyBindings(A){this._keyBindings=A;let q=xA(sE,A);this._keyBindingsMap=RA(q,this._keyAliasMap)}set keyAliasMap(A){this._keyAliasMap=_q(Uq,A);let q=xA(sE,this._keyBindings);this._keyBindingsMap=RA(q,this._keyAliasMap)}get extmarks(){return this.editorView.extmarks}};((A)=>{A.INPUT="input",A.CHANGE="change",A.ENTER="enter"})(i_||={});r_=class r_ extends OA{_content;_wrapMode;_columnWidthMode;_columnFitter;_cellPadding;_showBorders;_border;_outerBorder;_hasExplicitOuterBorder;_borderStyle;_borderColor;_borderBackgroundColor;_backgroundColor;_defaultFg;_defaultBg;_defaultAttributes;_selectionBg;_selectionFg;_lastLocalSelection=null;_lastSelectionMode=null;_cells=[];_prevCellContent=[];_rowCount=0;_columnCount=0;_layout=this.createEmptyLayout();_layoutDirty=!0;_rasterDirty=!0;_cachedMeasureLayout=null;_cachedMeasureWidth=void 0;_defaultOptions={content:[],wrapMode:"word",columnWidthMode:"full",columnFitter:"proportional",cellPadding:0,showBorders:!0,border:!0,outerBorder:!0,selectable:!0,selectionBg:void 0,selectionFg:void 0,borderStyle:"single",borderColor:"#FFFFFF",borderBackgroundColor:"transparent",backgroundColor:"transparent",fg:"#FFFFFF",bg:"transparent",attributes:0};constructor(A,q={}){super(A,{...q,flexShrink:q.flexShrink??0,buffered:!0});this._content=q.content??this._defaultOptions.content,this._wrapMode=q.wrapMode??this._defaultOptions.wrapMode,this._columnWidthMode=q.columnWidthMode??this._defaultOptions.columnWidthMode,this._columnFitter=this.resolveColumnFitter(q.columnFitter),this._cellPadding=this.resolveCellPadding(q.cellPadding),this._showBorders=q.showBorders??this._defaultOptions.showBorders,this._border=q.border??this._defaultOptions.border,this._hasExplicitOuterBorder=q.outerBorder!==void 0,this._outerBorder=q.outerBorder??this._border,this.selectable=q.selectable??this._defaultOptions.selectable,this._selectionBg=q.selectionBg?R(q.selectionBg):void 0,this._selectionFg=q.selectionFg?R(q.selectionFg):void 0,this._borderStyle=iq(q.borderStyle,this._defaultOptions.borderStyle),this._borderColor=R(q.borderColor??this._defaultOptions.borderColor),this._borderBackgroundColor=R(q.borderBackgroundColor??this._defaultOptions.borderBackgroundColor),this._backgroundColor=R(q.backgroundColor??this._defaultOptions.backgroundColor),this._defaultFg=R(q.fg??this._defaultOptions.fg),this._defaultBg=R(q.bg??this._defaultOptions.bg),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this.setupMeasureFunc(),this.rebuildCells()}get content(){return this._content}set content(A){this._content=A??[],this.rebuildCells()}get wrapMode(){return this._wrapMode}set wrapMode(A){if(this._wrapMode===A)return;this._wrapMode=A;for(let q of this._cells)for(let g of q)g.textBufferView.setWrapMode(A);this.invalidateLayoutAndRaster()}get columnWidthMode(){return this._columnWidthMode}set columnWidthMode(A){if(this._columnWidthMode===A)return;this._columnWidthMode=A,this.invalidateLayoutAndRaster()}get columnFitter(){return this._columnFitter}set columnFitter(A){let q=this.resolveColumnFitter(A);if(this._columnFitter===q)return;this._columnFitter=q,this.invalidateLayoutAndRaster()}get cellPadding(){return this._cellPadding}set cellPadding(A){let q=this.resolveCellPadding(A);if(this._cellPadding===q)return;this._cellPadding=q,this.invalidateLayoutAndRaster()}get showBorders(){return this._showBorders}set showBorders(A){if(this._showBorders===A)return;this._showBorders=A,this.invalidateRasterOnly()}get outerBorder(){return this._outerBorder}set outerBorder(A){if(this._outerBorder===A)return;this._hasExplicitOuterBorder=!0,this._outerBorder=A,this.invalidateLayoutAndRaster()}get border(){return this._border}set border(A){if(this._border===A)return;if(this._border=A,!this._hasExplicitOuterBorder)this._outerBorder=A;this.invalidateLayoutAndRaster()}get borderStyle(){return this._borderStyle}set borderStyle(A){let q=iq(A,this._defaultOptions.borderStyle);if(this._borderStyle===q)return;this._borderStyle=q,this.invalidateRasterOnly()}get borderColor(){return this._borderColor}set borderColor(A){let q=R(A);if(this._borderColor===q)return;this._borderColor=q,this.invalidateRasterOnly()}shouldStartSelection(A,q){if(!this.selectable)return!1;this.ensureLayoutReady();let g=A-this.x,E=q-this.y;return this.getCellAtLocalPosition(g,E)!==null}onSelectionChanged(A){this.ensureLayoutReady();let q=this._lastLocalSelection,g=Vg(A,this.x,this.y);this._lastLocalSelection=g;let E=this.getDirtySelectionRowRange(q,g);if(!g?.isActive)this.resetCellSelections(),this._lastSelectionMode=null;else this.applySelectionToCells(g,A?.isStart??!1);if(E!==null)this.redrawSelectionRows(E.firstRow,E.lastRow);return this.hasSelection()}hasSelection(){for(let A of this._cells)for(let q of A)if(q.textBufferView.hasSelection())return!0;return!1}getSelection(){for(let A of this._cells)for(let q of A){let g=q.textBufferView.getSelection();if(g)return g}return null}getSelectedText(){let A=[];for(let q=0;q<this._rowCount;q++){let g=[];for(let E=0;E<this._columnCount;E++){let a=this._cells[q]?.[E];if(!a||!a.textBufferView.hasSelection())continue;let F=a.textBufferView.getSelectedText();if(F.length>0)g.push(F)}if(g.length>0)A.push(g.join("\t"))}return A.join(`
93
+ `)}onResize(A,q){this.invalidateLayoutAndRaster(!1),super.onResize(A,q)}renderSelf(A){if(!this.visible||this.isDestroyed)return;if(this._layoutDirty)this.rebuildLayoutForCurrentWidth();if(!this._rasterDirty)return;if(A.clear(this._backgroundColor),this._rowCount===0||this._columnCount===0){this._rasterDirty=!1;return}this.drawBorders(A),this.drawCells(A),this._rasterDirty=!1}destroySelf(){this.destroyCells(),super.destroySelf()}setupMeasureFunc(){let A=(q,g,E,a)=>{let K=g!==SA.Undefined&&Number.isFinite(q)?Math.max(1,Math.floor(q)):void 0,Z=this.resolveLayoutWidthConstraint(K),j=this.computeLayout(Z);this._cachedMeasureLayout=j,this._cachedMeasureWidth=Z;let U=j.tableWidth>0?j.tableWidth:1,O=j.tableHeight>0?j.tableHeight:1;if(g===SA.AtMost&&K!==void 0&&this._positionType!=="absolute")U=Math.min(K,U);return{width:U,height:O}};this.yogaNode.setMeasureFunc(A)}rebuildCells(){let A=this._content.length,q=this._content.reduce((g,E)=>Math.max(g,E.length),0);if(this._cells.length===0){this._rowCount=A,this._columnCount=q,this._cells=[],this._prevCellContent=[];for(let g=0;g<A;g++){let E=this._content[g]??[],a=[],F=[];for(let K=0;K<q;K++){let Z=E[K];a.push(this.createCell(Z)),F.push(Z)}this._cells.push(a),this._prevCellContent.push(F)}this.invalidateLayoutAndRaster();return}this.updateCellsDiff(A,q),this.invalidateLayoutAndRaster()}updateCellsDiff(A,q){let g=this._rowCount,E=this._columnCount,a=Math.min(g,A),F=Math.min(E,q);for(let K=0;K<a;K++){let Z=this._content[K]??[],j=this._cells[K],U=this._prevCellContent[K];for(let O=0;O<F;O++){let Q=Z[O];if(Q===U[O])continue;let M=j[O];M.textBufferView.destroy(),M.textBuffer.destroy(),M.syntaxStyle.destroy(),j[O]=this.createCell(Q),U[O]=Q}if(q>E)for(let O=E;O<q;O++){let Q=Z[O];j.push(this.createCell(Q)),U.push(Q)}else if(q<E){for(let O=q;O<E;O++){let Q=j[O];Q.textBufferView.destroy(),Q.textBuffer.destroy(),Q.syntaxStyle.destroy()}j.length=q,U.length=q}}if(A>g)for(let K=g;K<A;K++){let Z=this._content[K]??[],j=[],U=[];for(let O=0;O<q;O++){let Q=Z[O];j.push(this.createCell(Q)),U.push(Q)}this._cells.push(j),this._prevCellContent.push(U)}else if(A<g){for(let K=A;K<g;K++){let Z=this._cells[K];for(let j of Z)j.textBufferView.destroy(),j.textBuffer.destroy(),j.syntaxStyle.destroy()}this._cells.length=A,this._prevCellContent.length=A}this._rowCount=A,this._columnCount=q}createCell(A){let q=this.toStyledText(A),g=xg.create(this._ctx.widthMethod),E=qg.create();g.setDefaultFg(this._defaultFg),g.setDefaultBg(this._defaultBg),g.setDefaultAttributes(this._defaultAttributes),g.setSyntaxStyle(E),g.setStyledText(q);let a=P6.create(g);return a.setWrapMode(this._wrapMode),{textBuffer:g,textBufferView:a,syntaxStyle:E}}toStyledText(A){if(Array.isArray(A))return new nq(A);if(A===null||A===void 0)return oq("");return oq(String(A))}destroyCells(){for(let A of this._cells)for(let q of A)q.textBufferView.destroy(),q.textBuffer.destroy(),q.syntaxStyle.destroy();this._cells=[],this._prevCellContent=[],this._rowCount=0,this._columnCount=0,this._layout=this.createEmptyLayout()}rebuildLayoutForCurrentWidth(){let A=this.resolveLayoutWidthConstraint(this.width),q;if(this._cachedMeasureLayout!==null&&this._cachedMeasureWidth===A)q=this._cachedMeasureLayout;else q=this.computeLayout(A);if(this._cachedMeasureLayout=null,this._cachedMeasureWidth=void 0,this._layout=q,this.applyLayoutToViews(q),this._layoutDirty=!1,this._lastLocalSelection?.isActive)this.applySelectionToCells(this._lastLocalSelection,!0)}computeLayout(A){if(this._rowCount===0||this._columnCount===0)return this.createEmptyLayout();let q=this.resolveBorderLayout(),g=this.computeColumnWidths(A,q),E=this.computeRowHeights(g),a=this.computeOffsets(g,q.left,q.right,q.innerVertical),F=this.computeOffsets(E,q.top,q.bottom,q.innerHorizontal);return{columnWidths:g,rowHeights:E,columnOffsets:a,rowOffsets:F,columnOffsetsI32:new Int32Array(a),rowOffsetsI32:new Int32Array(F),tableWidth:(a[a.length-1]??0)+1,tableHeight:(F[F.length-1]??0)+1}}isFullWidthMode(){return this._columnWidthMode==="full"}computeColumnWidths(A,q){let g=this.getHorizontalCellPadding(),E=Array(this._columnCount).fill(1+g);for(let K=0;K<this._rowCount;K++)for(let Z=0;Z<this._columnCount;Z++){let j=this._cells[K]?.[Z];if(!j)continue;let U=j.textBufferView.measureForDimensions(0,DK),O=Math.max(1,U?.widthColsMax??0)+g;E[Z]=Math.max(E[Z],O)}if(A===void 0||!Number.isFinite(A)||A<=0)return E;let a=Math.max(1,Math.floor(A)-this.getVerticalBorderCount(q)),F=E.reduce((K,Z)=>K+Z,0);if(F===a)return E;if(F<a){if(this.isFullWidthMode())return this.expandColumnWidths(E,a);return E}if(this._wrapMode==="none")return E;return this.fitColumnWidths(E,a)}expandColumnWidths(A,q){let g=A.map((U)=>Math.max(1,Math.floor(U))),E=g.reduce((U,O)=>U+O,0);if(E>=q)return g;let a=[...g],F=a.length,K=q-E,Z=Math.floor(K/F),j=K%F;for(let U=0;U<F;U++)if(a[U]+=Z,U<j)a[U]+=1;return a}fitColumnWidths(A,q){if(this._columnFitter==="balanced")return this.fitColumnWidthsBalanced(A,q);return this.fitColumnWidthsProportional(A,q)}fitColumnWidthsProportional(A,q){let g=1+this.getHorizontalCellPadding(),E=Array(A.length).fill(g),a=A.map((T)=>Math.max(1,Math.floor(T))),F=a.map((T)=>Math.min(T,g+1)),Z=F.reduce((T,x)=>T+x,0)<=q?F:E,j=Z.reduce((T,x)=>T+x,0),U=Math.max(j,q),O=a.reduce((T,x)=>T+x,0);if(O<=U)return a;let Q=a.map((T,x)=>T-Z[x]),M=Q.reduce((T,x)=>T+x,0);if(M<=0)return[...Z];let L=O-U,$=Array(a.length).fill(0),V=Array(a.length).fill(0),H=0;for(let T=0;T<a.length;T++){if(Q[T]<=0)continue;let x=Q[T]/M*L,z=Math.min(Q[T],Math.floor(x));$[T]=z,V[T]=x-z,H+=z}let X=L-H;while(X>0){let T=-1,x=-1;for(let z=0;z<a.length;z++){if(Q[z]-$[z]<=0)continue;if(V[z]>x)x=V[z],T=z}if(T===-1)break;$[T]+=1,V[T]=0,X-=1}return a.map((T,x)=>Math.max(Z[x],T-$[x]))}fitColumnWidthsBalanced(A,q){let g=1+this.getHorizontalCellPadding(),E=Array(A.length).fill(g),a=A.map((X)=>Math.max(1,Math.floor(X))),F=a.reduce((X,T)=>X+T,0),K=a.length;if(K===0||F<=q)return a;let Z=Math.max(g,Math.floor(q/K)),j=a.map((X)=>Math.min(X,Z)),O=j.reduce((X,T)=>X+T,0)<=q?j:E,Q=O.reduce((X,T)=>X+T,0),M=Math.max(Q,q);if(F<=M)return a;let L=a.map((X,T)=>X-O[T]);if(L.reduce((X,T)=>X+T,0)<=0)return[...O];let V=F-M,H=this.allocateShrinkByWeight(L,V,"sqrt");return a.map((X,T)=>Math.max(O[T],X-H[T]))}allocateShrinkByWeight(A,q,g){let E=Array(A.length).fill(0);if(q<=0)return E;let a=A.map((U)=>{if(U<=0)return 0;return g==="sqrt"?Math.sqrt(U):U}),F=a.reduce((U,O)=>U+O,0);if(F<=0)return E;let K=Array(A.length).fill(0),Z=0;for(let U=0;U<A.length;U++){if(A[U]<=0||a[U]<=0)continue;let O=a[U]/F*q,Q=Math.min(A[U],Math.floor(O));E[U]=Q,K[U]=O-Q,Z+=Q}let j=q-Z;while(j>0){let U=-1,O=-1;for(let Q=0;Q<A.length;Q++){if(A[Q]-E[Q]<=0)continue;if(U===-1||K[Q]>O||K[Q]===O&&A[Q]>A[U])U=Q,O=K[Q]}if(U===-1)break;E[U]+=1,K[U]=0,j-=1}return E}computeRowHeights(A){let q=this.getHorizontalCellPadding(),g=this.getVerticalCellPadding(),E=Array(this._rowCount).fill(1+g);for(let a=0;a<this._rowCount;a++)for(let F=0;F<this._columnCount;F++){let K=this._cells[a]?.[F];if(!K)continue;let Z=Math.max(1,(A[F]??1)-q),j=K.textBufferView.measureForDimensions(Z,DK),U=Math.max(1,j?.lineCount??1);E[a]=Math.max(E[a],U+g)}return E}computeOffsets(A,q,g,E){let a=[q?0:-1],F=a[0]??0;for(let K=0;K<A.length;K++){let Z=A[K]??1,j=K<A.length-1?E:g;F+=Z+(j?1:0),a.push(F)}return a}applyLayoutToViews(A){let q=this.getHorizontalCellPadding(),g=this.getVerticalCellPadding();for(let E=0;E<this._rowCount;E++)for(let a=0;a<this._columnCount;a++){let F=this._cells[E]?.[a];if(!F)continue;let K=A.columnWidths[a]??1,Z=A.rowHeights[E]??1,j=Math.max(1,K-q),U=Math.max(1,Z-g);if(this._wrapMode==="none")F.textBufferView.setWrapWidth(null);else F.textBufferView.setWrapWidth(j);F.textBufferView.setViewport(0,0,j,U)}}resolveBorderLayout(){return{left:this._outerBorder,right:this._outerBorder,top:this._outerBorder,bottom:this._outerBorder,innerVertical:this._border&&this._columnCount>1,innerHorizontal:this._border&&this._rowCount>1}}getVerticalBorderCount(A){return(A.left?1:0)+(A.right?1:0)+(A.innerVertical?Math.max(0,this._columnCount-1):0)}getHorizontalBorderCount(A){return(A.top?1:0)+(A.bottom?1:0)+(A.innerHorizontal?Math.max(0,this._rowCount-1):0)}drawBorders(A){if(!this._showBorders)return;let q=this.resolveBorderLayout();if(this.getVerticalBorderCount(q)===0&&this.getHorizontalBorderCount(q)===0)return;A.drawGrid({borderChars:WE[this._borderStyle],borderFg:this._borderColor,borderBg:this._borderBackgroundColor,columnOffsets:this._layout.columnOffsetsI32,rowOffsets:this._layout.rowOffsetsI32,drawInner:this._border,drawOuter:this._outerBorder})}drawCells(A){this.drawCellRange(A,0,this._rowCount-1)}drawCellRange(A,q,g){let E=this._layout.columnOffsets,a=this._layout.rowOffsets,F=this._cellPadding;for(let K=q;K<=g;K++){let Z=(a[K]??0)+1+F;for(let j=0;j<this._columnCount;j++){let U=this._cells[K]?.[j];if(!U)continue;A.drawTextBuffer(U.textBufferView,(E[j]??0)+1+F,Z)}}}redrawSelectionRows(A,q){if(A>q)return;if(this._backgroundColor.a<1){this.invalidateRasterOnly();return}let g=this.frameBuffer;if(!g)return;this.clearCellRange(g,A,q),this.drawCellRange(g,A,q),this.requestRender()}clearCellRange(A,q,g){let E=this._layout.columnWidths,a=this._layout.rowHeights,F=this._layout.columnOffsets,K=this._layout.rowOffsets;for(let Z=q;Z<=g;Z++){let j=(K[Z]??0)+1,U=a[Z]??1;for(let O=0;O<this._columnCount;O++){let Q=(F[O]??0)+1,M=E[O]??1;A.fillRect(Q,j,M,U,this._backgroundColor)}}}ensureLayoutReady(){if(!this._layoutDirty)return;this.rebuildLayoutForCurrentWidth()}getCellAtLocalPosition(A,q){if(this._rowCount===0||this._columnCount===0)return null;if(A<0||q<0||A>=this._layout.tableWidth||q>=this._layout.tableHeight)return null;let g=-1;for(let a=0;a<this._rowCount;a++){let F=(this._layout.rowOffsets[a]??0)+1,K=F+(this._layout.rowHeights[a]??1)-1;if(q>=F&&q<=K){g=a;break}}if(g<0)return null;let E=-1;for(let a=0;a<this._columnCount;a++){let F=(this._layout.columnOffsets[a]??0)+1,K=F+(this._layout.columnWidths[a]??1)-1;if(A>=F&&A<=K){E=a;break}}if(E<0)return null;return{rowIdx:g,colIdx:E}}applySelectionToCells(A,q){let g=Math.min(A.anchorY,A.focusY),E=Math.max(A.anchorY,A.focusY),a=this.findRowForLocalY(g),F=this.findRowForLocalY(E),K=this.resolveSelectionResolution(A),Z=this._lastSelectionMode!==K.mode;this._lastSelectionMode=K.mode;let j=K.mode==="column-locked"&&K.anchorColumn!==null;for(let U=0;U<this._rowCount;U++){if(U<a||U>F){this.resetRowSelection(U);continue}let O=(this._layout.rowOffsets[U]??0)+1+this._cellPadding;for(let Q=0;Q<this._columnCount;Q++){let M=this._cells[U]?.[Q];if(!M)continue;if(j&&Q!==K.anchorColumn){M.textBufferView.resetLocalSelection();continue}let L=(this._layout.columnOffsets[Q]??0)+1+this._cellPadding,$={anchorX:A.anchorX-L,anchorY:A.anchorY-O,focusX:A.focusX-L,focusY:A.focusY-O},H=K.anchorCell!==null&&K.anchorCell.rowIdx===U&&K.anchorCell.colIdx===Q&&K.mode!=="single-cell";if(H)$=this.getFullCellSelectionCoords(U,Q);if(q||Z||H)M.textBufferView.setLocalSelection($.anchorX,$.anchorY,$.focusX,$.focusY,this._selectionBg,this._selectionFg);else M.textBufferView.updateLocalSelection($.anchorX,$.anchorY,$.focusX,$.focusY,this._selectionBg,this._selectionFg)}}}resolveSelectionResolution(A){let q=this.getCellAtLocalPosition(A.anchorX,A.anchorY),g=this.getCellAtLocalPosition(A.focusX,A.focusY),E=q?.colIdx??this.getColumnAtLocalX(A.anchorX);if(q!==null&&g!==null&&q.rowIdx===g.rowIdx&&q.colIdx===g.colIdx)return{mode:"single-cell",anchorCell:q,anchorColumn:E};let a=this.getColumnAtLocalX(A.focusX);if(E!==null&&a===E)return{mode:"column-locked",anchorCell:q,anchorColumn:E};return{mode:"grid",anchorCell:q,anchorColumn:E}}getColumnAtLocalX(A){if(this._columnCount===0)return null;if(A<0||A>=this._layout.tableWidth)return null;for(let q=0;q<this._columnCount;q++){let g=(this._layout.columnOffsets[q]??0)+1,E=g+(this._layout.columnWidths[q]??1)-1;if(A>=g&&A<=E)return q}return null}getFullCellSelectionCoords(A,q){let g=this._layout.columnWidths[q]??1,E=this._layout.rowHeights[A]??1,a=Math.max(1,g-this.getHorizontalCellPadding()),F=Math.max(1,E-this.getVerticalCellPadding());return{anchorX:-1,anchorY:0,focusX:a,focusY:F}}findRowForLocalY(A){if(this._rowCount===0)return 0;if(A<0)return 0;for(let q=0;q<this._rowCount;q++){let E=(this._layout.rowOffsets[q]??0)+1+(this._layout.rowHeights[q]??1)-1;if(A<=E)return q}return this._rowCount-1}getSelectionRowRange(A){if(!A?.isActive||this._rowCount===0)return null;let q=Math.min(A.anchorY,A.focusY),g=Math.max(A.anchorY,A.focusY);return{firstRow:this.findRowForLocalY(q),lastRow:this.findRowForLocalY(g)}}getDirtySelectionRowRange(A,q){let g=this.getSelectionRowRange(A),E=this.getSelectionRowRange(q);if(g===null)return E;if(E===null)return g;return{firstRow:Math.min(g.firstRow,E.firstRow),lastRow:Math.max(g.lastRow,E.lastRow)}}resetRowSelection(A){let q=this._cells[A];if(!q)return;for(let g of q)g.textBufferView.resetLocalSelection()}resetCellSelections(){for(let A=0;A<this._rowCount;A++)this.resetRowSelection(A)}createEmptyLayout(){return{columnWidths:[],rowHeights:[],columnOffsets:[0],rowOffsets:[0],columnOffsetsI32:new Int32Array([0]),rowOffsetsI32:new Int32Array([0]),tableWidth:0,tableHeight:0}}resolveLayoutWidthConstraint(A){if(A===void 0||!Number.isFinite(A)||A<=0)return;if(this._wrapMode!=="none"||this.isFullWidthMode())return Math.max(1,Math.floor(A));return}getHorizontalCellPadding(){return this._cellPadding*2}getVerticalCellPadding(){return this._cellPadding*2}resolveColumnFitter(A){if(A===void 0)return this._defaultOptions.columnFitter;return A==="balanced"?"balanced":"proportional"}resolveCellPadding(A){if(A===void 0||!Number.isFinite(A))return this._defaultOptions.cellPadding;return Math.max(0,Math.floor(A))}invalidateLayoutAndRaster(A=!0){if(this._layoutDirty=!0,this._rasterDirty=!0,this._cachedMeasureLayout=null,this._cachedMeasureWidth=void 0,A)this.yogaNode.markDirty();this.requestRender()}invalidateRasterOnly(){this._rasterDirty=!0,this.requestRender()}};wq=Aa();Sg={exec:()=>null};n_=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),JA={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:(A)=>new RegExp(`^( {0,3}${A})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}#`),htmlBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}<(?:[a-z].*>|!--)`,"i")},o_=/^(?:[ \t]*(?:\n|$))+/,e_=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,AO=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Bg=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,qO=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,qa=/(?:[*+-]|\d{1,9}[.)])/,rK=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,nK=r(rK).replace(/bull/g,qa).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),gO=r(rK).replace(/bull/g,qa).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),ga=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,EO=/^[^\n]+/,Ea=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,aO=r(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Ea).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),FO=r(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,qa).getRegex(),aa=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,KO=r("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",aa).replace("tag",x6).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),oK=r(ga).replace("hr",Bg).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",x6).getRegex(),jO=r(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",oK).getRegex(),Fa={blockquote:jO,code:e_,def:aO,fences:AO,heading:qO,hr:Bg,html:KO,lheading:nK,list:FO,newline:o_,paragraph:oK,table:Sg,text:EO},wK=r("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Bg).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",x6).getRegex(),ZO={...Fa,lheading:gO,table:wK,paragraph:r(ga).replace("hr",Bg).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",wK).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",x6).getRegex()},UO={...Fa,html:r(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",aa).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Sg,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:r(ga).replace("hr",Bg).replace("heading",` *#{1,6} *[^
94
+ ]`).replace("lheading",nK).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},_O=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,OO=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,eK=/^( {2,}|\\)\n(?!\s*$)/,GO=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,R6=/[\p{P}\p{S}]/u,Ka=/[\s\p{P}\p{S}]/u,Aj=/[^\s\p{P}\p{S}]/u,QO=r(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Ka).getRegex(),qj=/(?!~)[\p{P}\p{S}]/u,YO=/(?!~)[\s\p{P}\p{S}]/u,MO=/(?:[^\s\p{P}\p{S}]|~)/u,JO=r(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",n_?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),gj=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,HO=r(gj,"u").replace(/punct/g,R6).getRegex(),LO=r(gj,"u").replace(/punct/g,qj).getRegex(),$O=r(Ej,"gu").replace(/notPunctSpace/g,Aj).replace(/punctSpace/g,Ka).replace(/punct/g,R6).getRegex(),XO=r(Ej,"gu").replace(/notPunctSpace/g,MO).replace(/punctSpace/g,YO).replace(/punct/g,qj).getRegex(),IO=r("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Aj).replace(/punctSpace/g,Ka).replace(/punct/g,R6).getRegex(),TO=r(/\\(punct)/,"gu").replace(/punct/g,R6).getRegex(),PO=r(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),VO=r(aa).replace("(?:-->|$)","-->").getRegex(),xO=r("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",VO).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),X6=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,RO=r(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",X6).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),aj=r(/^!?\[(label)\]\[(ref)\]/).replace("label",X6).replace("ref",Ea).getRegex(),Fj=r(/^!?\[(ref)\](?:\[\])?/).replace("ref",Ea).getRegex(),NO=r("reflink|nolink(?!\\()","g").replace("reflink",aj).replace("nolink",Fj).getRegex(),yK=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,ja={_backpedal:Sg,anyPunctuation:TO,autolink:PO,blockSkip:JO,br:eK,code:OO,del:Sg,emStrongLDelim:HO,emStrongRDelimAst:$O,emStrongRDelimUnd:IO,escape:_O,link:RO,nolink:Fj,punctuation:QO,reflink:aj,reflinkSearch:NO,tag:xO,text:GO,url:Sg},WO={...ja,link:r(/^!?\[(label)\]\((.*?)\)/).replace("label",X6).getRegex(),reflink:r(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",X6).getRegex()},oE={...ja,emStrongRDelimAst:XO,emStrongLDelim:LO,url:r(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",yK).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:r(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",yK).getRegex()},hO={...oE,br:r(eK).replace("{2,}","*").getRegex(),text:r(oE.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},$6={normal:Fa,gfm:ZO,pedantic:UO},Ng={normal:ja,gfm:oE,breaks:hO,pedantic:WO},SO={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};hg=class{options;block;constructor(A){this.options=A||wq}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(A){return A}postprocess(A){return A}processAllTokens(A){return A}emStrongMask(A){return A}provideLexer(){return this.block?vA.lex:vA.lexInline}provideParser(){return this.block?pA.parse:pA.parseInline}},Dq=new CO;qA.options=qA.setOptions=function(A){return Dq.setOptions(A),qA.defaults=Dq.defaults,iK(qA.defaults),qA};qA.getDefaults=Aa;qA.defaults=wq;qA.use=function(...A){return Dq.use(...A),qA.defaults=Dq.defaults,iK(qA.defaults),qA};qA.walkTokens=function(A,q){return Dq.walkTokens(A,q)};qA.parseInline=Dq.parseInline;qA.Parser=pA;qA.parser=pA.parse;qA.Renderer=T6;qA.TextRenderer=Za;qA.Lexer=vA;qA.lexer=vA.lex;qA.Tokenizer=I6;qA.Hooks=hg;qA.parse=qA;hY=qA.options,SY=qA.setOptions,zY=qA.use,BY=qA.walkTokens,CY=qA.parseInline,kY=pA.parse,DY=vA.lex,wY=AA.fromHex("#9a9ea3"),yY=AA.fromHex("#252527"),iE=[{name:"up",action:"move-up"},{name:"k",action:"move-up"},{name:"down",action:"move-down"},{name:"j",action:"move-down"},{name:"up",shift:!0,action:"move-up-fast"},{name:"down",shift:!0,action:"move-down-fast"},{name:"return",action:"select-current"},{name:"linefeed",action:"select-current"}];((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(uA||={});lA=class lA extends OA{_focusable=!0;_options=[];_selectedIndex=0;scrollOffset=0;maxVisibleItems;_backgroundColor;_textColor;_focusedBackgroundColor;_focusedTextColor;_selectedBackgroundColor;_selectedTextColor;_descriptionColor;_selectedDescriptionColor;_showScrollIndicator;_wrapSelection;_showDescription;_font;_itemSpacing;linesPerItem;fontHeight;_fastScrollStep;_keyBindingsMap;_keyAliasMap;_keyBindings;_defaultOptions={backgroundColor:"transparent",textColor:"#FFFFFF",focusedBackgroundColor:"#1a1a1a",focusedTextColor:"#FFFFFF",selectedBackgroundColor:"#334455",selectedTextColor:"#FFFF00",selectedIndex:0,descriptionColor:"#888888",selectedDescriptionColor:"#CCCCCC",showScrollIndicator:!1,wrapSelection:!1,showDescription:!0,itemSpacing:0,fastScrollStep:5};constructor(A,q){super(A,{...q,buffered:!0});this._options=q.options||[];let g=q.selectedIndex??this._defaultOptions.selectedIndex;this._selectedIndex=this._options.length>0?Math.min(g,this._options.length-1):0,this._backgroundColor=R(q.backgroundColor||this._defaultOptions.backgroundColor),this._textColor=R(q.textColor||this._defaultOptions.textColor),this._focusedBackgroundColor=R(q.focusedBackgroundColor||this._defaultOptions.focusedBackgroundColor),this._focusedTextColor=R(q.focusedTextColor||this._defaultOptions.focusedTextColor),this._showScrollIndicator=q.showScrollIndicator??this._defaultOptions.showScrollIndicator,this._wrapSelection=q.wrapSelection??this._defaultOptions.wrapSelection,this._showDescription=q.showDescription??this._defaultOptions.showDescription,this._font=q.font,this._itemSpacing=q.itemSpacing||this._defaultOptions.itemSpacing,this.fontHeight=this._font?rq({text:"A",font:this._font}).height:1,this.linesPerItem=this._showDescription?this._font?this.fontHeight+1:2:this._font?this.fontHeight:1,this.linesPerItem+=this._itemSpacing,this.maxVisibleItems=Math.max(1,Math.floor(this.height/this.linesPerItem)),this._selectedBackgroundColor=R(q.selectedBackgroundColor||this._defaultOptions.selectedBackgroundColor),this._selectedTextColor=R(q.selectedTextColor||this._defaultOptions.selectedTextColor),this._descriptionColor=R(q.descriptionColor||this._defaultOptions.descriptionColor),this._selectedDescriptionColor=R(q.selectedDescriptionColor||this._defaultOptions.selectedDescriptionColor),this._fastScrollStep=q.fastScrollStep||this._defaultOptions.fastScrollStep,this._keyAliasMap=_q(Uq,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[];let E=xA(iE,this._keyBindings);this._keyBindingsMap=RA(E,this._keyAliasMap),this.requestRender()}renderSelf(A,q){if(!this.visible||!this.frameBuffer)return;if(this.isDirty)this.refreshFrameBuffer()}refreshFrameBuffer(){if(!this.frameBuffer||this._options.length===0)return;let A=this._focused?this._focusedBackgroundColor:this._backgroundColor;this.frameBuffer.clear(A);let q=0,g=0,E=this.width,a=this.height,F=this._options.slice(this.scrollOffset,this.scrollOffset+this.maxVisibleItems);for(let K=0;K<F.length;K++){let Z=this.scrollOffset+K,j=F[K],U=Z===this._selectedIndex,O=g+K*this.linesPerItem;if(O+this.linesPerItem-1>=g+a)break;if(U){let V=this.linesPerItem-this._itemSpacing;this.frameBuffer.fillRect(q,O,E,V,this._selectedBackgroundColor)}let Q=`${U?"\u25B6 ":" "}${j.name}`,M=this._focused?this._focusedTextColor:this._textColor,L=U?this._selectedTextColor:M,$=q+3;if(this._font){let V=U?"\u25B6 ":" ";this.frameBuffer.drawText(V,q+1,O,L);let H=2;Q6(this.frameBuffer,{text:j.name,x:q+1+H,y:O,color:L,backgroundColor:U?this._selectedBackgroundColor:A,font:this._font}),$=q+1+H}else this.frameBuffer.drawText(Q,q+1,O,L);if(this._showDescription&&O+this.fontHeight<g+a){let V=U?this._selectedDescriptionColor:this._descriptionColor;this.frameBuffer.drawText(j.description,$,O+this.fontHeight,V)}}if(this._showScrollIndicator&&this._options.length>this.maxVisibleItems)this.renderScrollIndicatorToFrameBuffer(q,g,E,a)}renderScrollIndicatorToFrameBuffer(A,q,g,E){if(!this.frameBuffer)return;let a=this._selectedIndex/Math.max(1,this._options.length-1),F=Math.max(1,E-2),K=q+1+Math.floor(a*F),Z=A+g-1;this.frameBuffer.drawText("\u2588",Z,K,R("#666666"))}get options(){return this._options}set options(A){this._options=A,this._selectedIndex=Math.min(this._selectedIndex,Math.max(0,A.length-1)),this.updateScrollOffset(),this.requestRender()}getSelectedOption(){return this._options[this._selectedIndex]||null}getSelectedIndex(){return this._selectedIndex}moveUp(A=1){let q=this._selectedIndex-A;if(q>=0)this._selectedIndex=q;else if(this._wrapSelection&&this._options.length>0)this._selectedIndex=this._options.length-1;else this._selectedIndex=0;this.updateScrollOffset(),this.requestRender(),this.emit("selectionChanged",this._selectedIndex,this.getSelectedOption())}moveDown(A=1){let q=this._selectedIndex+A;if(q<this._options.length)this._selectedIndex=q;else if(this._wrapSelection&&this._options.length>0)this._selectedIndex=0;else this._selectedIndex=this._options.length-1;this.updateScrollOffset(),this.requestRender(),this.emit("selectionChanged",this._selectedIndex,this.getSelectedOption())}selectCurrent(){let A=this.getSelectedOption();if(A)this.emit("itemSelected",this._selectedIndex,A)}setSelectedIndex(A){if(A>=0&&A<this._options.length)this._selectedIndex=A,this.updateScrollOffset(),this.requestRender(),this.emit("selectionChanged",this._selectedIndex,this.getSelectedOption())}updateScrollOffset(){if(!this._options)return;let A=Math.floor(this.maxVisibleItems/2),q=Math.max(0,Math.min(this._selectedIndex-A,this._options.length-this.maxVisibleItems));if(q!==this.scrollOffset)this.scrollOffset=q,this.requestRender()}onResize(A,q){this.maxVisibleItems=Math.max(1,Math.floor(q/this.linesPerItem)),this.updateScrollOffset(),this.requestRender()}handleKeyPress(A){let q=Oq({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"move-up"}),g=this._keyBindingsMap.get(q);if(g)switch(g){case"move-up":return this.moveUp(1),!0;case"move-down":return this.moveDown(1),!0;case"move-up-fast":return this.moveUp(this._fastScrollStep),!0;case"move-down-fast":return this.moveDown(this._fastScrollStep),!0;case"select-current":return this.selectCurrent(),!0}return!1}get showScrollIndicator(){return this._showScrollIndicator}set showScrollIndicator(A){this._showScrollIndicator=A,this.requestRender()}get showDescription(){return this._showDescription}set showDescription(A){if(this._showDescription!==A)this._showDescription=A,this.linesPerItem=this._showDescription?this._font?this.fontHeight+1:2:this._font?this.fontHeight:1,this.linesPerItem+=this._itemSpacing,this.maxVisibleItems=Math.max(1,Math.floor(this.height/this.linesPerItem)),this.updateScrollOffset(),this.requestRender()}get wrapSelection(){return this._wrapSelection}set wrapSelection(A){this._wrapSelection=A}set backgroundColor(A){let q=R(A??this._defaultOptions.backgroundColor);if(this._backgroundColor!==q)this._backgroundColor=q,this.requestRender()}set textColor(A){let q=R(A??this._defaultOptions.textColor);if(this._textColor!==q)this._textColor=q,this.requestRender()}set focusedBackgroundColor(A){let q=R(A??this._defaultOptions.focusedBackgroundColor);if(this._focusedBackgroundColor!==q)this._focusedBackgroundColor=q,this.requestRender()}set focusedTextColor(A){let q=R(A??this._defaultOptions.focusedTextColor);if(this._focusedTextColor!==q)this._focusedTextColor=q,this.requestRender()}set selectedBackgroundColor(A){let q=R(A??this._defaultOptions.selectedBackgroundColor);if(this._selectedBackgroundColor!==q)this._selectedBackgroundColor=q,this.requestRender()}set selectedTextColor(A){let q=R(A??this._defaultOptions.selectedTextColor);if(this._selectedTextColor!==q)this._selectedTextColor=q,this.requestRender()}set descriptionColor(A){let q=R(A??this._defaultOptions.descriptionColor);if(this._descriptionColor!==q)this._descriptionColor=q,this.requestRender()}set selectedDescriptionColor(A){let q=R(A??this._defaultOptions.selectedDescriptionColor);if(this._selectedDescriptionColor!==q)this._selectedDescriptionColor=q,this.requestRender()}set font(A){this._font=A,this.fontHeight=rq({text:"A",font:this._font}).height,this.linesPerItem=this._showDescription?this._font?this.fontHeight+1:2:this._font?this.fontHeight:1,this.linesPerItem+=this._itemSpacing,this.maxVisibleItems=Math.max(1,Math.floor(this.height/this.linesPerItem)),this.updateScrollOffset(),this.requestRender()}set itemSpacing(A){this._itemSpacing=A,this.linesPerItem=this._showDescription?this._font?this.fontHeight+1:2:this._font?this.fontHeight:1,this.linesPerItem+=this._itemSpacing,this.maxVisibleItems=Math.max(1,Math.floor(this.height/this.linesPerItem)),this.updateScrollOffset(),this.requestRender()}set fastScrollStep(A){this._fastScrollStep=A}set keyBindings(A){this._keyBindings=A;let q=xA(iE,A);this._keyBindingsMap=RA(q,this._keyAliasMap)}set keyAliasMap(A){this._keyAliasMap=_q(Uq,A);let q=xA(iE,this._keyBindings);this._keyBindingsMap=RA(q,this._keyAliasMap)}set selectedIndex(A){let q=A??this._defaultOptions.selectedIndex,g=this._options.length>0?Math.min(Math.max(0,q),this._options.length-1):0;if(this._selectedIndex!==g)this._selectedIndex=g,this.updateScrollOffset(),this.requestRender()}};rE=[{name:"left",action:"move-left"},{name:"[",action:"move-left"},{name:"right",action:"move-right"},{name:"]",action:"move-right"},{name:"return",action:"select-current"},{name:"linefeed",action:"select-current"}];((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(Ua||={});_a=class _a extends OA{_focusable=!0;_options=[];selectedIndex=0;scrollOffset=0;_tabWidth;maxVisibleTabs;_backgroundColor;_textColor;_focusedBackgroundColor;_focusedTextColor;_selectedBackgroundColor;_selectedTextColor;_selectedDescriptionColor;_showScrollArrows;_showDescription;_showUnderline;_wrapSelection;_keyBindingsMap;_keyAliasMap;_keyBindings;constructor(A,q){let g=pK(q.showUnderline??!0,q.showDescription??!0);super(A,{...q,height:g,buffered:!0});this._backgroundColor=R(q.backgroundColor||"transparent"),this._textColor=R(q.textColor||"#FFFFFF"),this._focusedBackgroundColor=R(q.focusedBackgroundColor||q.backgroundColor||"#1a1a1a"),this._focusedTextColor=R(q.focusedTextColor||q.textColor||"#FFFFFF"),this._options=q.options||[],this._tabWidth=q.tabWidth||20,this._showDescription=q.showDescription??!0,this._showUnderline=q.showUnderline??!0,this._showScrollArrows=q.showScrollArrows??!0,this._wrapSelection=q.wrapSelection??!1,this.maxVisibleTabs=Math.max(1,Math.floor(this.width/this._tabWidth)),this._selectedBackgroundColor=R(q.selectedBackgroundColor||"#334455"),this._selectedTextColor=R(q.selectedTextColor||"#FFFF00"),this._selectedDescriptionColor=R(q.selectedDescriptionColor||"#CCCCCC"),this._keyAliasMap=_q(Uq,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[];let E=xA(rE,this._keyBindings);this._keyBindingsMap=RA(E,this._keyAliasMap)}calculateDynamicHeight(){return pK(this._showUnderline,this._showDescription)}renderSelf(A,q){if(!this.visible||!this.frameBuffer)return;if(this.isDirty)this.refreshFrameBuffer()}refreshFrameBuffer(){if(!this.frameBuffer)return;let A=this._focused?this._focusedBackgroundColor:this._backgroundColor;if(this.frameBuffer.clear(A),this._options.length===0)return;let q=0,g=0,E=this.width,a=this.height,F=this._options.slice(this.scrollOffset,this.scrollOffset+this.maxVisibleTabs);for(let K=0;K<F.length;K++){let Z=this.scrollOffset+K,j=F[K],U=Z===this.selectedIndex,O=q+K*this._tabWidth;if(O>=q+E)break;let Q=Math.min(this._tabWidth,E-K*this._tabWidth);if(U)this.frameBuffer.fillRect(O,g,Q,1,this._selectedBackgroundColor);let M=this._focused?this._focusedTextColor:this._textColor,L=U?this._selectedTextColor:M,$=this.truncateText(j.name,Q-2);if(this.frameBuffer.drawText($,O+1,g,L),U&&this._showUnderline&&a>=2){let V=g+1,H=U?this._selectedBackgroundColor:A;this.frameBuffer.drawText("\u25AC".repeat(Q),O,V,L,H)}}if(this._showDescription&&a>=(this._showUnderline?3:2)){let K=this.getSelectedOption();if(K){let Z=g+(this._showUnderline?2:1),j=this._selectedDescriptionColor,U=this.truncateText(K.description,E-2);this.frameBuffer.drawText(U,q+1,Z,j)}}if(this._showScrollArrows&&this._options.length>this.maxVisibleTabs)this.renderScrollArrowsToFrameBuffer(q,g,E,a)}truncateText(A,q){if(A.length<=q)return A;return A.substring(0,Math.max(0,q-1))+"\u2026"}renderScrollArrowsToFrameBuffer(A,q,g,E){if(!this.frameBuffer)return;let a=this.scrollOffset>0,F=this.scrollOffset+this.maxVisibleTabs<this._options.length;if(a)this.frameBuffer.drawText("\u2039",A,q,R("#AAAAAA"));if(F)this.frameBuffer.drawText("\u203A",A+g-1,q,R("#AAAAAA"))}setOptions(A){this._options=A,this.selectedIndex=Math.min(this.selectedIndex,Math.max(0,A.length-1)),this.updateScrollOffset(),this.requestRender()}getSelectedOption(){return this._options[this.selectedIndex]||null}getSelectedIndex(){return this.selectedIndex}moveLeft(){if(this.selectedIndex>0)this.selectedIndex--;else if(this._wrapSelection&&this._options.length>0)this.selectedIndex=this._options.length-1;else return;this.updateScrollOffset(),this.requestRender(),this.emit("selectionChanged",this.selectedIndex,this.getSelectedOption())}moveRight(){if(this.selectedIndex<this._options.length-1)this.selectedIndex++;else if(this._wrapSelection&&this._options.length>0)this.selectedIndex=0;else return;this.updateScrollOffset(),this.requestRender(),this.emit("selectionChanged",this.selectedIndex,this.getSelectedOption())}selectCurrent(){let A=this.getSelectedOption();if(A)this.emit("itemSelected",this.selectedIndex,A)}setSelectedIndex(A){if(A>=0&&A<this._options.length)this.selectedIndex=A,this.updateScrollOffset(),this.requestRender(),this.emit("selectionChanged",this.selectedIndex,this.getSelectedOption())}updateScrollOffset(){let A=Math.floor(this.maxVisibleTabs/2),q=Math.max(0,Math.min(this.selectedIndex-A,this._options.length-this.maxVisibleTabs));if(q!==this.scrollOffset)this.scrollOffset=q,this.requestRender()}onResize(A,q){this.maxVisibleTabs=Math.max(1,Math.floor(A/this._tabWidth)),this.updateScrollOffset(),this.requestRender()}setTabWidth(A){if(this._tabWidth===A)return;this._tabWidth=A,this.maxVisibleTabs=Math.max(1,Math.floor(this.width/this._tabWidth)),this.updateScrollOffset(),this.requestRender()}getTabWidth(){return this._tabWidth}handleKeyPress(A){let q=Oq({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"move-left"}),g=this._keyBindingsMap.get(q);if(g)switch(g){case"move-left":return this.moveLeft(),!0;case"move-right":return this.moveRight(),!0;case"select-current":return this.selectCurrent(),!0}return!1}get options(){return this._options}set options(A){this._options=A,this.selectedIndex=Math.min(this.selectedIndex,Math.max(0,A.length-1)),this.updateScrollOffset(),this.requestRender()}set backgroundColor(A){this._backgroundColor=R(A),this.requestRender()}set textColor(A){this._textColor=R(A),this.requestRender()}set focusedBackgroundColor(A){this._focusedBackgroundColor=R(A),this.requestRender()}set focusedTextColor(A){this._focusedTextColor=R(A),this.requestRender()}set selectedBackgroundColor(A){this._selectedBackgroundColor=R(A),this.requestRender()}set selectedTextColor(A){this._selectedTextColor=R(A),this.requestRender()}set selectedDescriptionColor(A){this._selectedDescriptionColor=R(A),this.requestRender()}get showDescription(){return this._showDescription}set showDescription(A){if(this._showDescription!==A){this._showDescription=A;let q=this.calculateDynamicHeight();this.height=q,this.requestRender()}}get showUnderline(){return this._showUnderline}set showUnderline(A){if(this._showUnderline!==A){this._showUnderline=A;let q=this.calculateDynamicHeight();this.height=q,this.requestRender()}}get showScrollArrows(){return this._showScrollArrows}set showScrollArrows(A){if(this._showScrollArrows!==A)this._showScrollArrows=A,this.requestRender()}get wrapSelection(){return this._wrapSelection}set wrapSelection(A){this._wrapSelection=A}get tabWidth(){return this._tabWidth}set tabWidth(A){if(this._tabWidth===A)return;this._tabWidth=A,this.maxVisibleTabs=Math.max(1,Math.floor(this.width/this._tabWidth)),this.updateScrollOffset(),this.requestRender()}set keyBindings(A){this._keyBindings=A;let q=xA(rE,A);this._keyBindingsMap=RA(q,this._keyAliasMap)}set keyAliasMap(A){this._keyAliasMap=_q(Uq,A);let q=xA(rE,this._keyBindings);this._keyBindingsMap=RA(q,this._keyAliasMap)}}});var y;var Pq=e(()=>{y={bg:"#1a1b26",bgAlt:"#24283b",fg:"#c0caf5",fgDim:"#565f89",accent:"#7aa2f7",accentAlt:"#bb9af7",green:"#9ece6a",red:"#f7768e",yellow:"#e0af68",cyan:"#7dcfff",orange:"#ff9e64",border:"#3b4261",borderFocus:"#7aa2f7",white:"#FFFFFF"}});function N6(A,q){let g=A.providers.filter((E)=>E.enabled).map((E)=>E.label);if(g.length<=3)return g.join(", ");return g.slice(0,2).join(", ")+` +${g.length-2}`}function Kj(A,q,g){let E=new gA(A,{id:"dashboard-root",flexDirection:"column",width:"100%",height:"100%",padding:1,gap:0}),a=new V6(A,{id:"banner",text:"agent-skill-manager",color:y.accent});E.add(a);let F=new gA(A,{id:"stats-bar",border:!0,borderStyle:"rounded",borderColor:y.border,title:" Stats ",titleAlignment:"left",flexDirection:"row",width:"100%",height:3,paddingLeft:1,paddingRight:1,gap:3}),K=new d(A,{id:"stat-total",content:"Total: 0",fg:y.fg}),Z=new d(A,{id:"stat-global",content:"Global: 0",fg:y.cyan}),j=new d(A,{id:"stat-project",content:"Project: 0",fg:y.green}),U=new d(A,{id:"stat-symlinks",content:"Symlinks: 0",fg:y.yellow}),O=new d(A,{id:"stat-providers",content:"Providers: 0",fg:y.accentAlt}),Q=new d(A,{id:"stat-duplicates",content:"Dupes: 0",fg:y.orange}),M=new d(A,{id:"sort-sep",content:"\u2502",fg:y.border}),L=new d(A,{id:"sort-label",content:D("name"),fg:y.fgDim});F.add(K),F.add(Z),F.add(j),F.add(U),F.add(O),F.add(Q),F.add(M),F.add(L),E.add(F);let $=new gA(A,{id:"tab-row",flexDirection:"row",width:"100%",height:1,alignItems:"center",gap:2}),V=N6(q,"global"),H=N6(q,"project"),X=new _a(A,{id:"scope-tabs",options:[{name:"Global",description:V,value:"global"},{name:"Project",description:H,value:"project"},{name:"Both",description:"All locations",value:"both"}],tabWidth:12,showUnderline:!1,wrapSelection:!0,height:1,width:42});X.on(Ua.ITEM_SELECTED,(w,c)=>{g(c.value)}),$.add(X),E.add($);let T=new gA(A,{id:"search-box",border:!0,borderStyle:"rounded",borderColor:y.border,title:" Filter ",titleAlignment:"left",width:"100%",height:3}),x=new Yq(A,{id:"search-input",width:"100%",height:1,placeholder:"type to search...",placeholderColor:y.fgDim});T.add(x),E.add(T);let z=new gA(A,{id:"content-area",flexDirection:"column",width:"100%",flexGrow:1,minHeight:6});E.add(z);let m=new d(A,{id:"footer",content:" \u2191/\u2193 Navigate Enter View d Uninstall a Audit / Filter Tab Scope s Sort r Refresh c Config q Quit ? Help",fg:y.fgDim,height:1,width:"100%"});E.add(m);function D(w){return"(s) Sort: "+kO.map((c)=>c===w?`[${c}]`:c).join(" ")}function N(w,c=0){let t=w.length,o=new Set(w.map((jA)=>jA.dirName)).size,aA=w.filter((jA)=>jA.scope==="global").length,LA=w.filter((jA)=>jA.scope==="project").length,FA=w.filter((jA)=>jA.isSymlink).length,NA=new Set(w.map((jA)=>jA.provider)).size;K.content=`Total: ${t} (${o} unique)`,Z.content=`Global: ${aA}`,j.content=`Project: ${LA}`,U.content=`Symlinks: ${FA}`,O.content=`Providers: ${NA}`,Q.content=c>0?`Dupes: ${c}`:"Dupes: 0"}function h(w){L.content=D(w)}function b(w){let c=N6(w,"global"),t=N6(w,"project");X.options=[{name:"Global",description:c,value:"global"},{name:"Project",description:t,value:"project"},{name:"Both",description:"All locations",value:"both"}]}return{root:E,banner:a,scopeTabs:X,searchInput:x,statsBar:F,contentArea:z,footerText:m,updateStats:N,updateSortLabel:h,updateProviderInfo:b}}var kO;var jj=e(async()=>{Pq();await Mq();kO=["name","version","location"]});function DO(A,q,g){let E=String(A).padStart(3),a=q.isSymlink?"~ ":" ",F=24-a.length,K=q.name.length>F?q.name.slice(0,F-3)+"...":q.name,Z=a+K,j=q.version.length>7?q.version.slice(0,7):q.version,U=q.providerLabel.length>11?q.providerLabel.slice(0,11):q.providerLabel,O=q.scope,Q=q.isSymlink?"\u2192link":" dir ",M=g>0?" "+(q.description||"").slice(0,g):"";return`${E} ${Z.padEnd(24)} ${j.padEnd(8)} ${U.padEnd(12)} ${O.padEnd(8)} ${Q.padEnd(6)}${M}`}function Zj(A,q){if(A.length===0)return[{name:" (no skills found)",description:"",value:"__none__"}];return A.map((g,E)=>({name:DO(E+1,g,q),description:"",value:g.dirName}))}function Uj(A){return Math.max(0,A-72)}function _j(A,q,g,E=80){let a=Uj(E),F=new gA(A,{id:"skill-list-box",border:!0,borderStyle:"rounded",borderColor:y.border,title:` Skills (${q.length}) `,titleAlignment:"left",flexDirection:"column",width:"100%",flexGrow:1,minHeight:6}),K=a>0?" Description":"",Z=new d(A,{id:"skill-list-header",content:`${"#".padStart(3)} ${"Name".padEnd(26)} ${"Ver".padEnd(8)} ${"Provider".padEnd(12)} ${"Scope".padEnd(8)} ${"Type".padEnd(6)}${K}`,fg:y.fgDim,height:1}),j=new lA(A,{id:"skill-select",width:"100%",flexGrow:1,options:Zj(q,a),wrapSelection:!0,showScrollIndicator:!0,fastScrollStep:5,showDescription:!1}),U=q;j.on(uA.ITEM_SELECTED,(Q)=>{if(U[Q])g(U[Q])}),F.add(Z),F.add(j);function O(Q,M){if(M!==void 0)a=Uj(M);U=Q,j.options=Zj(Q,a),F.title=` Skills (${Q.length}) `}return{container:F,select:j,update:O}}var Oj=e(async()=>{Pq();await Mq()});function Vq(A,q,g,E,a=y.fg){let F=new gA(A,{id:`detail-row-${q}`,flexDirection:"row",width:"100%",height:1}),K=new d(A,{content:`${g}:`.padEnd(15),fg:y.fgDim,width:16}),Z=new d(A,{content:E,fg:a});return F.add(K),F.add(Z),F}function Gj(A,q){let a=Math.max(0,Math.floor((A.height-20)/2)),F=Math.max(0,Math.floor((A.width-64)/2)),K=new gA(A,{id:"detail-overlay",border:!0,borderStyle:"rounded",borderColor:y.accent,backgroundColor:y.bgAlt,title:` ${q.name} `,titleAlignment:"center",padding:1,flexDirection:"column",gap:0,width:64,height:20,position:"absolute",top:a,left:F,zIndex:100});K.add(Vq(A,"name","Name",q.name,y.accent)),K.add(Vq(A,"version","Version",q.version,y.green)),K.add(Vq(A,"provider","Provider",q.providerLabel,y.accentAlt)),K.add(Vq(A,"location","Location",q.location,y.cyan)),K.add(Vq(A,"path","Path",q.path)),K.add(Vq(A,"symlink","Symlink",q.isSymlink?`yes \u2192 ${q.symlinkTarget}`:"no",q.isSymlink?y.yellow:y.fgDim)),K.add(Vq(A,"files","Files",String(q.fileCount))),K.add(Vq(A,"scope","Scope",q.scope,y.accentAlt));let Z=new d(A,{content:`
95
95
  Description:`,fg:y.fgDim});K.add(Z);let j=q.description||"(no description)",U=new d(A,{content:` ${j}`,fg:y.fg,width:58});K.add(U);let O=new d(A,{content:`
96
96
  Esc Back d Uninstall`,fg:y.fgDim});return K.add(O),K}var Qj=e(async()=>{Pq();await Mq()});function Yj(A,q,g,E){let F=Math.min(g.length+10,24),K=Math.max(0,Math.floor((A.height-F)/2)),Z=Math.max(0,Math.floor((A.width-60)/2)),j=new gA(A,{id:"confirm-overlay",border:!0,borderStyle:"rounded",borderColor:y.red,backgroundColor:y.bgAlt,title:` Uninstall: ${q.name} `,titleAlignment:"center",padding:1,flexDirection:"column",gap:1,width:60,height:F,position:"absolute",top:K,left:Z,zIndex:100}),U=new d(A,{content:"The following will be removed:",fg:y.yellow});j.add(U);let O=new gA(A,{id:"confirm-targets",flexDirection:"column",width:"100%",paddingLeft:1});if(g.length===0){let L=new d(A,{content:" (no files found to remove)",fg:y.fgDim});O.add(L)}else for(let L=0;L<g.length;L++){let $=new d(A,{id:`confirm-target-${L}`,content:`\u2717 ${g[L]}`,fg:y.red});O.add($)}j.add(O);let Q=new d(A,{content:"",height:1});j.add(Q);let M=new lA(A,{id:"confirm-select",width:30,height:4,options:[{name:"Yes, uninstall",description:"",value:"yes"},{name:"Cancel",description:"",value:"cancel"}],wrapSelection:!0,selectedIndex:1});return M.on(uA.ITEM_SELECTED,(L,$)=>{E({confirmed:$.value==="yes"})}),j.add(M),M.focus(),j}var Mj=e(async()=>{Pq();await Mq()});function Hj(A){let g=Jj.length+7,E=Math.max(0,Math.floor((A.height-g)/2)),a=Math.max(0,Math.floor((A.width-44)/2)),F=new gA(A,{id:"help-overlay",border:!0,borderStyle:"rounded",borderColor:y.accent,backgroundColor:y.bgAlt,title:" Keyboard Shortcuts ",titleAlignment:"center",padding:1,flexDirection:"column",gap:0,width:44,height:g,position:"absolute",top:E,left:a,zIndex:100});for(let[j,U]of Jj){let O=new gA(A,{id:`help-row-${j}`,flexDirection:"row",width:"100%",height:1}),Q=new d(A,{content:j.padEnd(12),fg:y.cyan,width:14}),M=new d(A,{content:U,fg:y.fg});O.add(Q),O.add(M),F.add(O)}let K=new d(A,{content:`
97
- Press ? or Esc to close`,fg:y.fgDim});F.add(K);let Z=new d(A,{content:` ${Mg}`,fg:y.fgDim});return F.add(Z),F}var Jj;var Lj=e(async()=>{Pq();await Sa([Mq(),gE()]);Jj=[["\u2191 / k","Move up"],["\u2193 / j","Move down"],["Enter","View skill details"],["d","Uninstall skill"],["a","Audit duplicates"],["/","Search / filter"],["Esc","Back / clear filter"],["Tab","Cycle scope"],["s","Cycle sort order"],["r","Refresh / rescan skills"],["c","Open configuration"],["?","Toggle this help"],["q","Quit"]]});function DO(A,q,g,E){let a=E?"\u2714 ON ":"\u2718 OFF",F=E?"on":"off",K=A.length>14?A.slice(0,14):A;return`${a} ${K.padEnd(15)} ${q}`}function $j(A,q,g){let a=q.providers.length,F=Math.min(a+14,30),K=Math.max(0,Math.floor((A.height-F)/2)),Z=Math.max(0,Math.floor((A.width-72)/2)),j=JSON.parse(JSON.stringify(q)),U=new gA(A,{id:"config-overlay",border:!0,borderStyle:"rounded",borderColor:y.accent,backgroundColor:y.bgAlt,title:" Configuration ",titleAlignment:"center",padding:1,flexDirection:"column",gap:1,width:72,height:F,position:"absolute",top:K,left:Z,zIndex:100}),O=new d(A,{id:"config-path",content:`Config: ${Rq()}`,fg:y.fgDim});U.add(O);let Q=new d(A,{id:"config-header",content:"Providers (Enter to toggle, e to edit config file):",fg:y.yellow});U.add(Q);function M(){return j.providers.map((H)=>({name:DO(H.label,H.global,H.project,H.enabled),description:`Project: ${H.project}`,value:H.name}))}let L=new lA(A,{id:"config-select",width:"100%",flexGrow:1,options:M(),wrapSelection:!0,showDescription:!0,showScrollIndicator:!0});if(L.on(uA.ITEM_SELECTED,(H)=>{if(H>=0&&H<j.providers.length)j.providers[H].enabled=!j.providers[H].enabled,L.options=M()}),U.add(L),j.customPaths.length>0){let H=new d(A,{id:"config-custom-header",content:`
97
+ Press ? or Esc to close`,fg:y.fgDim});F.add(K);let Z=new d(A,{content:` ${Mg}`,fg:y.fgDim});return F.add(Z),F}var Jj;var Lj=e(async()=>{Pq();await Sa([Mq(),gE()]);Jj=[["\u2191 / k","Move up"],["\u2193 / j","Move down"],["Enter","View skill details"],["d","Uninstall skill"],["a","Audit duplicates"],["/","Search / filter"],["Esc","Back / clear filter"],["Tab","Cycle scope"],["s","Cycle sort order"],["r","Refresh / rescan skills"],["c","Open configuration"],["?","Toggle this help"],["q","Quit"]]});function wO(A,q,g,E){let a=E?"\u2714 ON ":"\u2718 OFF",F=E?"on":"off",K=A.length>14?A.slice(0,14):A;return`${a} ${K.padEnd(15)} ${q}`}function $j(A,q,g){let a=q.providers.length,F=Math.min(a+14,30),K=Math.max(0,Math.floor((A.height-F)/2)),Z=Math.max(0,Math.floor((A.width-72)/2)),j=JSON.parse(JSON.stringify(q)),U=new gA(A,{id:"config-overlay",border:!0,borderStyle:"rounded",borderColor:y.accent,backgroundColor:y.bgAlt,title:" Configuration ",titleAlignment:"center",padding:1,flexDirection:"column",gap:1,width:72,height:F,position:"absolute",top:K,left:Z,zIndex:100}),O=new d(A,{id:"config-path",content:`Config: ${Rq()}`,fg:y.fgDim});U.add(O);let Q=new d(A,{id:"config-header",content:"Providers (Enter to toggle, e to edit config file):",fg:y.yellow});U.add(Q);function M(){return j.providers.map((H)=>({name:wO(H.label,H.global,H.project,H.enabled),description:`Project: ${H.project}`,value:H.name}))}let L=new lA(A,{id:"config-select",width:"100%",flexGrow:1,options:M(),wrapSelection:!0,showDescription:!0,showScrollIndicator:!0});if(L.on(uA.ITEM_SELECTED,(H)=>{if(H>=0&&H<j.providers.length)j.providers[H].enabled=!j.providers[H].enabled,L.options=M()}),U.add(L),j.customPaths.length>0){let H=new d(A,{id:"config-custom-header",content:`
98
98
  Custom Paths:`,fg:y.yellow});U.add(H);for(let X=0;X<j.customPaths.length;X++){let T=j.customPaths[X],x=new d(A,{id:`config-custom-${X}`,content:` ${T.label}: ${T.path} (${T.scope})`,fg:y.fg});U.add(x)}}let $=new d(A,{id:"config-prefs",content:`
99
- Defaults: scope=${j.preferences.defaultScope}, sort=${j.preferences.defaultSort}`,fg:y.fgDim});U.add($);let V=new d(A,{id:"config-footer",content:" Enter Toggle e Edit file Esc Save & close",fg:y.fgDim});return U.add(V),U.__configSelect=L,U.__editConfig=j,U.__onClose=g,L.focus(),U}var Xj=e(async()=>{Pq();vq();await Mq()});function Ij(A,q,g,E){let F=Math.min(Math.max(q.duplicateGroups.length+8,12),A.height-4),K=Math.max(0,Math.floor((A.height-F)/2)),Z=Math.max(0,Math.floor((A.width-72)/2)),j=new gA(A,{id:"duplicates-overlay",border:!0,borderStyle:"rounded",borderColor:y.yellow,backgroundColor:y.bgAlt,title:` Audit: Duplicates (${q.duplicateGroups.length} groups) `,titleAlignment:"center",padding:1,flexDirection:"column",gap:1,width:72,height:F,position:"absolute",top:K,left:Z,zIndex:100}),U="groups",O=-1,Q=new Set,M="dup-hint",L="dup-select",$="dup-footer";function V(){try{j.remove(M)}catch{}try{j.remove(L)}catch{}try{j.remove($)}catch{}}function H(){if(V(),U="groups",O=-1,Q.clear(),q.duplicateGroups.length===0){let D=new d(A,{id:M,content:"No duplicates found.",fg:y.green});j.add(D);let N=new d(A,{id:$,content:" Esc Close",fg:y.fgDim});j.add(N);return}let T=new d(A,{id:M,content:"Select a group to inspect and manage instances:",fg:y.fgDim});j.add(T);let x=q.duplicateGroups.map((D)=>{let N=D.instances.map((h)=>h.location).join(", ");return{name:`[${ng(D.reason)}] ${D.key} (${D.instances.length} copies: ${N})`,description:"",value:D.key}}),z=new lA(A,{id:L,width:"100%",flexGrow:1,options:x,wrapSelection:!0,showScrollIndicator:!0});z.on(uA.ITEM_SELECTED,(D)=>{if(q.duplicateGroups[D])O=D,X(q.duplicateGroups[D])}),j.add(z);let m=new d(A,{id:$,content:" Enter Inspect group Esc Close",fg:y.fgDim});j.add(m),z.focus()}function X(T){V(),U="instances",Q.clear();let x=Yg(T.instances);for(let b=1;b<x.length;b++)Q.add(x[b].path);let z=new d(A,{id:M,content:`Group: "${T.key}" (${ng(T.reason)}) - Toggle instances to remove:`,fg:y.yellow});j.add(z);function m(){let b=x.map((c,t)=>{let o=Q.has(c.path)?"[x]":"[ ]",aA=t===0&&!Q.has(c.path)?" (keep)":"";return{name:`${o} ${c.providerLabel}/${c.scope} - ${c.path}${aA}`,description:"",value:c.path}}),w=Q.size;return b.push({name:w>0?` >>> Remove ${w} marked instance(s) <<<`:" (no instances marked for removal)",description:"",value:"__remove__"}),b}let D=new lA(A,{id:L,width:"100%",flexGrow:1,options:m(),wrapSelection:!0,showScrollIndicator:!0}),N=!1;D.on(uA.ITEM_SELECTED,async(b)=>{if(N)return;N=!0;try{if(b<x.length){let w=x[b].path;if(Q.has(w))Q.delete(w);else{if(Q.size>=x.length-1)return;Q.add(w)}let c=D.getSelectedIndex();D.options=m();try{D.setSelectedIndex(c)}catch{}}else{if(Q.size===0)return;let w=x.filter((c)=>Q.has(c.path));await g(w)}}finally{N=!1}}),j.add(D);let h=new d(A,{id:$,content:" Enter Toggle/Remove Esc Back to groups",fg:y.fgDim});j.add(h),D.focus()}return j.__getCurrentPhase=()=>U,j.__backToGroups=()=>H(),j.__onClose=E,H(),j}var Tj=e(async()=>{Pq();og();await Mq()});var yO={};async function wO(){fA=await kA(),gg=fA.preferences.defaultScope,kg=fA.preferences.defaultSort;let A=await uE({exitOnCtrlC:!0,useAlternateScreen:!0}),q=Kj(A,fA,async(H)=>{gg=H,await a()}),g=_j(A,[],(H)=>{Z(H)},A.width);q.contentArea.add(g.container);let E=null;async function a(){Cg=await eA(fA,gg),F()}function F(){let H=lg(Cg,h6);H=Ug(H,kg),W6=H,g.update(W6),Pj=Qg(Cg),q.updateStats(Cg,Pj.duplicateGroups.length),q.updateSortLabel(kg)}function K(){if(E)A.root.remove(E.id),E=null;HA="dashboard",g.select.focus()}function Z(H){K(),S6=H,HA="detail",E=Gj(A,H),A.root.add(E)}async function j(H){K(),S6=H,HA="confirm";let X=ig(H.dirName,Cg,fA),T=await rg(X);E=Yj(A,H,T,async(x)=>{if(x.confirmed)await pq(X),K(),await a();else K()}),A.root.add(E)}function U(){K(),HA="help",E=Hj(A),A.root.add(E)}async function O(){K(),HA="config",E=$j(A,fA,async(H)=>{fA=H,await Zg(H),q.updateProviderInfo(H),K(),await a()}),A.root.add(E)}async function Q(){K(),HA="audit";let H=await eA(fA,"both"),X=Qg(H);E=Ij(A,X,async(T)=>{for(let x of T){let z=Og(x,fA);await pq(z)}K(),await a()},K),A.root.add(E)}function M(){let H=["name","version","location"],X=H.indexOf(kg);kg=H[(X+1)%H.length],F()}function L(){z6=!0,q.searchInput.focus()}function $(){z6=!1,h6="",q.searchInput.initialValue="",F(),g.select.focus()}A.keyInput.on("keypress",async(H)=>{if(z6){if(H.name==="escape"){$();return}if(H.name==="return"){h6=q.searchInput.plainText||"",z6=!1,F(),g.select.focus();return}setTimeout(()=>{h6=q.searchInput.plainText||"",F()},10);return}if(H.name==="q"&&HA==="dashboard")A.destroy(),process.exit(0);if(H.name==="escape"){if(HA==="config"&&E){let{__editConfig:X,__onClose:T}=E;if(T&&X)T(X);else K();return}if(HA==="audit"&&E){let X=E.__getCurrentPhase;if(X&&X()==="instances"){E.__backToGroups();return}K();return}if(HA!=="dashboard")K();return}if(H.sequence==="?"){if(HA==="help")K();else if(HA==="dashboard")U();return}if(HA==="config"){if(H.name==="e"){let T=(process.env.EDITOR||process.env.VISUAL||"vi").split(/\s+/),x=Rq();A.destroy(),await Bun.spawn([...T,x],{stdin:"inherit",stdout:"inherit",stderr:"inherit"}).exited,fA=await kA(),process.exit(0)}return}if(HA==="dashboard"){if(H.name==="/"||H.sequence==="/"){L();return}if(H.name==="s"&&!H.ctrl){M();return}if(H.name==="r"&&!H.ctrl){await a();return}if(H.name==="c"&&!H.ctrl){await O();return}if(H.name==="tab"){let X=["global","project","both"],T=X.indexOf(gg);gg=X[(T+1)%X.length];let x={global:0,project:1,both:2};q.scopeTabs.setSelectedIndex(x[gg]),a();return}if(H.name==="a"&&!H.ctrl){await Q();return}if(H.name==="d"){let X=V();if(X)j(X);return}}if(HA==="detail"){if(H.name==="d"){if(S6)j(S6);return}}});function V(){let H=g.select.getSelectedIndex();if(H>=0&&H<W6.length)return W6[H];return null}A.root.add(q.root),await a(),g.select.focus()}var fA,Cg,W6,gg="both",kg="name",h6="",HA="dashboard",S6=null,z6=!1,Pj;var Vj=e(async()=>{vq();r6();o6();og();await Sa([Mq(),jj(),Oj(),Qj(),Mj(),Lj(),Xj(),Tj()]);Cg=[],W6=[],Pj={scannedAt:"",totalSkills:0,duplicateGroups:[],totalDuplicateInstances:0};wO().catch((A)=>{console.error("Fatal error:",A),process.exit(1)})});vq();r6();o6();AE();og();await gE();function XZ(A){let q=A.slice(2),g={command:null,subcommand:null,positional:[],flags:{help:!1,version:!1,json:!1,yes:!1,noColor:!1,scope:"both",sort:"name"}},E=0;while(E<q.length){let a=q[E];if(a==="--help"||a==="-h")g.flags.help=!0;else if(a==="--version"||a==="-v")g.flags.version=!0;else if(a==="--json")g.flags.json=!0;else if(a==="--yes"||a==="-y")g.flags.yes=!0;else if(a==="--no-color")g.flags.noColor=!0;else if(a==="--scope"||a==="-s"){E++;let F=q[E];if(F==="global"||F==="project"||F==="both")g.flags.scope=F;else $A(`Invalid scope: "${F}". Must be global, project, or both.`),process.exit(2)}else if(a==="--sort"){E++;let F=q[E];if(F==="name"||F==="version"||F==="location")g.flags.sort=F;else $A(`Invalid sort: "${F}". Must be name, version, or location.`),process.exit(2)}else if(a.startsWith("-"))$A(`Unknown option: ${a}`),console.error('Run "asm --help" for usage.'),process.exit(2);else if(!g.command)g.command=a;else if(!g.subcommand)g.subcommand=a;else g.positional.push(a);E++}return g}function $A(A){console.error(l.red(`Error: ${A}`))}function IZ(){console.log(`${l.blueBold("agent-skill-manager")} (${l.bold("asm")}) ${Mg}
99
+ Defaults: scope=${j.preferences.defaultScope}, sort=${j.preferences.defaultSort}`,fg:y.fgDim});U.add($);let V=new d(A,{id:"config-footer",content:" Enter Toggle e Edit file Esc Save & close",fg:y.fgDim});return U.add(V),U.__configSelect=L,U.__editConfig=j,U.__onClose=g,L.focus(),U}var Xj=e(async()=>{Pq();vq();await Mq()});function Ij(A,q,g,E){let F=Math.min(Math.max(q.duplicateGroups.length+8,12),A.height-4),K=Math.max(0,Math.floor((A.height-F)/2)),Z=Math.max(0,Math.floor((A.width-72)/2)),j=new gA(A,{id:"duplicates-overlay",border:!0,borderStyle:"rounded",borderColor:y.yellow,backgroundColor:y.bgAlt,title:` Audit: Duplicates (${q.duplicateGroups.length} groups) `,titleAlignment:"center",padding:1,flexDirection:"column",gap:1,width:72,height:F,position:"absolute",top:K,left:Z,zIndex:100}),U="groups",O=-1,Q=new Set,M="dup-hint",L="dup-select",$="dup-footer";function V(){try{j.remove(M)}catch{}try{j.remove(L)}catch{}try{j.remove($)}catch{}}function H(){if(V(),U="groups",O=-1,Q.clear(),q.duplicateGroups.length===0){let D=new d(A,{id:M,content:"No duplicates found.",fg:y.green});j.add(D);let N=new d(A,{id:$,content:" Esc Close",fg:y.fgDim});j.add(N);return}let T=new d(A,{id:M,content:"Select a group to inspect and manage instances:",fg:y.fgDim});j.add(T);let x=q.duplicateGroups.map((D)=>{let N=D.instances.map((h)=>h.location).join(", ");return{name:`[${ng(D.reason)}] ${D.key} (${D.instances.length} copies: ${N})`,description:"",value:D.key}}),z=new lA(A,{id:L,width:"100%",flexGrow:1,options:x,wrapSelection:!0,showScrollIndicator:!0});z.on(uA.ITEM_SELECTED,(D)=>{if(q.duplicateGroups[D])O=D,X(q.duplicateGroups[D])}),j.add(z);let m=new d(A,{id:$,content:" Enter Inspect group Esc Close",fg:y.fgDim});j.add(m),z.focus()}function X(T){V(),U="instances",Q.clear();let x=Yg(T.instances);for(let b=1;b<x.length;b++)Q.add(x[b].path);let z=new d(A,{id:M,content:`Group: "${T.key}" (${ng(T.reason)}) - Toggle instances to remove:`,fg:y.yellow});j.add(z);function m(){let b=x.map((c,t)=>{let o=Q.has(c.path)?"[x]":"[ ]",aA=t===0&&!Q.has(c.path)?" (keep)":"";return{name:`${o} ${c.providerLabel}/${c.scope} - ${c.path}${aA}`,description:"",value:c.path}}),w=Q.size;return b.push({name:w>0?` >>> Remove ${w} marked instance(s) <<<`:" (no instances marked for removal)",description:"",value:"__remove__"}),b}let D=new lA(A,{id:L,width:"100%",flexGrow:1,options:m(),wrapSelection:!0,showScrollIndicator:!0}),N=!1;D.on(uA.ITEM_SELECTED,async(b)=>{if(N)return;N=!0;try{if(b<x.length){let w=x[b].path;if(Q.has(w))Q.delete(w);else{if(Q.size>=x.length-1)return;Q.add(w)}let c=D.getSelectedIndex();D.options=m();try{D.setSelectedIndex(c)}catch{}}else{if(Q.size===0)return;let w=x.filter((c)=>Q.has(c.path));await g(w)}}finally{N=!1}}),j.add(D);let h=new d(A,{id:$,content:" Enter Toggle/Remove Esc Back to groups",fg:y.fgDim});j.add(h),D.focus()}return j.__getCurrentPhase=()=>U,j.__backToGroups=()=>H(),j.__onClose=E,H(),j}var Tj=e(async()=>{Pq();og();await Mq()});var mO={};async function yO(){fA=await kA(),gg=fA.preferences.defaultScope,kg=fA.preferences.defaultSort;let A=await uE({exitOnCtrlC:!0,useAlternateScreen:!0}),q=Kj(A,fA,async(H)=>{gg=H,await a()}),g=_j(A,[],(H)=>{Z(H)},A.width);q.contentArea.add(g.container);let E=null;async function a(){Cg=await eA(fA,gg),F()}function F(){let H=lg(Cg,h6);H=Ug(H,kg),W6=H,g.update(W6),Pj=Qg(Cg),q.updateStats(Cg,Pj.duplicateGroups.length),q.updateSortLabel(kg)}function K(){if(E)A.root.remove(E.id),E=null;HA="dashboard",g.select.focus()}function Z(H){K(),S6=H,HA="detail",E=Gj(A,H),A.root.add(E)}async function j(H){K(),S6=H,HA="confirm";let X=ig(H.dirName,Cg,fA),T=await rg(X);E=Yj(A,H,T,async(x)=>{if(x.confirmed)await pq(X),K(),await a();else K()}),A.root.add(E)}function U(){K(),HA="help",E=Hj(A),A.root.add(E)}async function O(){K(),HA="config",E=$j(A,fA,async(H)=>{fA=H,await Zg(H),q.updateProviderInfo(H),K(),await a()}),A.root.add(E)}async function Q(){K(),HA="audit";let H=await eA(fA,"both"),X=Qg(H);E=Ij(A,X,async(T)=>{for(let x of T){let z=Og(x,fA);await pq(z)}K(),await a()},K),A.root.add(E)}function M(){let H=["name","version","location"],X=H.indexOf(kg);kg=H[(X+1)%H.length],F()}function L(){z6=!0,q.searchInput.focus()}function $(){z6=!1,h6="",q.searchInput.initialValue="",F(),g.select.focus()}A.keyInput.on("keypress",async(H)=>{if(z6){if(H.name==="escape"){$();return}if(H.name==="return"){h6=q.searchInput.plainText||"",z6=!1,F(),g.select.focus();return}setTimeout(()=>{h6=q.searchInput.plainText||"",F()},10);return}if(H.name==="q"&&HA==="dashboard")A.destroy(),process.exit(0);if(H.name==="escape"){if(HA==="config"&&E){let{__editConfig:X,__onClose:T}=E;if(T&&X)T(X);else K();return}if(HA==="audit"&&E){let X=E.__getCurrentPhase;if(X&&X()==="instances"){E.__backToGroups();return}K();return}if(HA!=="dashboard")K();return}if(H.sequence==="?"){if(HA==="help")K();else if(HA==="dashboard")U();return}if(HA==="config"){if(H.name==="e"){let T=(process.env.EDITOR||process.env.VISUAL||"vi").split(/\s+/),x=Rq();A.destroy(),await Bun.spawn([...T,x],{stdin:"inherit",stdout:"inherit",stderr:"inherit"}).exited,fA=await kA(),process.exit(0)}return}if(HA==="dashboard"){if(H.name==="/"||H.sequence==="/"){L();return}if(H.name==="s"&&!H.ctrl){M();return}if(H.name==="r"&&!H.ctrl){await a();return}if(H.name==="c"&&!H.ctrl){await O();return}if(H.name==="tab"){let X=["global","project","both"],T=X.indexOf(gg);gg=X[(T+1)%X.length];let x={global:0,project:1,both:2};q.scopeTabs.setSelectedIndex(x[gg]),a();return}if(H.name==="a"&&!H.ctrl){await Q();return}if(H.name==="d"){let X=V();if(X)j(X);return}}if(HA==="detail"){if(H.name==="d"){if(S6)j(S6);return}}});function V(){let H=g.select.getSelectedIndex();if(H>=0&&H<W6.length)return W6[H];return null}A.root.add(q.root),await a(),g.select.focus()}var fA,Cg,W6,gg="both",kg="name",h6="",HA="dashboard",S6=null,z6=!1,Pj;var Vj=e(async()=>{vq();r6();o6();og();await Sa([Mq(),jj(),Oj(),Qj(),Mj(),Lj(),Xj(),Tj()]);Cg=[],W6=[],Pj={scannedAt:"",totalSkills:0,duplicateGroups:[],totalDuplicateInstances:0};yO().catch((A)=>{console.error("Fatal error:",A),process.exit(1)})});vq();r6();o6();AE();og();await gE();function IZ(A){let q=A.slice(2),g={command:null,subcommand:null,positional:[],flags:{help:!1,version:!1,json:!1,yes:!1,noColor:!1,scope:"both",sort:"name"}},E=0;while(E<q.length){let a=q[E];if(a==="--help"||a==="-h")g.flags.help=!0;else if(a==="--version"||a==="-v")g.flags.version=!0;else if(a==="--json")g.flags.json=!0;else if(a==="--yes"||a==="-y")g.flags.yes=!0;else if(a==="--no-color")g.flags.noColor=!0;else if(a==="--scope"||a==="-s"){E++;let F=q[E];if(F==="global"||F==="project"||F==="both")g.flags.scope=F;else $A(`Invalid scope: "${F}". Must be global, project, or both.`),process.exit(2)}else if(a==="--sort"){E++;let F=q[E];if(F==="name"||F==="version"||F==="location")g.flags.sort=F;else $A(`Invalid sort: "${F}". Must be name, version, or location.`),process.exit(2)}else if(a.startsWith("-"))$A(`Unknown option: ${a}`),console.error('Run "asm --help" for usage.'),process.exit(2);else if(!g.command)g.command=a;else if(!g.subcommand)g.subcommand=a;else g.positional.push(a);E++}return g}function $A(A){console.error(l.red(`Error: ${A}`))}function TZ(){console.log(`${l.blueBold("agent-skill-manager")} (${l.bold("asm")}) ${Mg}
100
100
 
101
101
  Interactive TUI and CLI for managing installed skills for AI coding agents.
102
102
 
@@ -122,7 +122,7 @@ ${l.bold("Global Options:")}
122
122
  -s, --scope <scope> Filter: global, project, or both (default: both)
123
123
  --no-color Disable ANSI colors
124
124
  --sort <field> Sort by: name, version, or location (default: name)
125
- -y, --yes Skip confirmation prompts`)}function TZ(){console.log(`${l.bold("Usage:")} asm list [options]
125
+ -y, --yes Skip confirmation prompts`)}function PZ(){console.log(`${l.bold("Usage:")} asm list [options]
126
126
 
127
127
  List all discovered skills.
128
128
 
@@ -130,7 +130,7 @@ ${l.bold("Options:")}
130
130
  --sort <field> Sort by: name, version, or location (default: name)
131
131
  -s, --scope <s> Filter: global, project, or both (default: both)
132
132
  --json Output as JSON array
133
- --no-color Disable ANSI colors`)}function PZ(){console.log(`${l.bold("Usage:")} asm search <query> [options]
133
+ --no-color Disable ANSI colors`)}function VZ(){console.log(`${l.bold("Usage:")} asm search <query> [options]
134
134
 
135
135
  Search skills by name, description, or provider.
136
136
 
@@ -138,21 +138,21 @@ ${l.bold("Options:")}
138
138
  --sort <field> Sort by: name, version, or location (default: name)
139
139
  -s, --scope <s> Filter: global, project, or both (default: both)
140
140
  --json Output as JSON array
141
- --no-color Disable ANSI colors`)}function VZ(){console.log(`${l.bold("Usage:")} asm inspect <skill-name> [options]
141
+ --no-color Disable ANSI colors`)}function xZ(){console.log(`${l.bold("Usage:")} asm inspect <skill-name> [options]
142
142
 
143
143
  Show detailed information for a skill. The <skill-name> is the directory name.
144
144
 
145
145
  ${l.bold("Options:")}
146
146
  -s, --scope <s> Filter: global, project, or both (default: both)
147
147
  --json Output as JSON object
148
- --no-color Disable ANSI colors`)}function xZ(){console.log(`${l.bold("Usage:")} asm uninstall <skill-name> [options]
148
+ --no-color Disable ANSI colors`)}function RZ(){console.log(`${l.bold("Usage:")} asm uninstall <skill-name> [options]
149
149
 
150
150
  Remove a skill and its associated rule files.
151
151
 
152
152
  ${l.bold("Options:")}
153
153
  -y, --yes Skip confirmation prompt
154
154
  -s, --scope <s> Filter: global, project, or both (default: both)
155
- --no-color Disable ANSI colors`)}function RZ(){console.log(`${l.bold("Usage:")} asm audit [subcommand] [options]
155
+ --no-color Disable ANSI colors`)}function NZ(){console.log(`${l.bold("Usage:")} asm audit [subcommand] [options]
156
156
 
157
157
  Detect and optionally remove duplicate skills.
158
158
 
@@ -162,7 +162,7 @@ ${l.bold("Subcommands:")}
162
162
  ${l.bold("Options:")}
163
163
  --json Output as JSON
164
164
  -y, --yes Auto-remove duplicates, keeping one instance per group
165
- --no-color Disable ANSI colors`)}function NZ(){console.log(`${l.bold("Usage:")} asm config <subcommand>
165
+ --no-color Disable ANSI colors`)}function WZ(){console.log(`${l.bold("Usage:")} asm config <subcommand>
166
166
 
167
167
  Manage configuration.
168
168
 
@@ -170,11 +170,11 @@ ${l.bold("Subcommands:")}
170
170
  show Print current config as JSON
171
171
  path Print config file path
172
172
  reset Reset config to defaults (with confirmation)
173
- edit Open config in $EDITOR`)}async function WZ(A){if(A.flags.help){TZ();return}let q=await kA(),g=await eA(q,A.flags.scope),E=Ug(g,A.flags.sort);if(A.flags.json)console.log(Gg(E));else console.log(e6(E))}async function hZ(A){if(A.flags.help){PZ();return}let q=A.subcommand;if(!q)$A("Missing required argument: <query>"),console.error('Run "asm search --help" for usage.'),process.exit(2);let g=await kA(),E=await eA(g,A.flags.scope),a=lg(E,q),F=Ug(a,A.flags.sort);if(A.flags.json)console.log(Gg(F));else console.log(e6(F))}async function SZ(A){if(A.flags.help){VZ();return}let q=A.subcommand;if(!q)$A("Missing required argument: <skill-name>"),console.error('Run "asm inspect --help" for usage.'),process.exit(2);let g=await kA(),a=(await eA(g,A.flags.scope)).filter((F)=>F.dirName===q);if(a.length===0)$A(`Skill "${q}" not found.`),process.exit(1);if(A.flags.json)console.log(Gg(a.length===1?a[0]:a));else for(let F=0;F<a.length;F++){if(F>0)console.log(`
173
+ edit Open config in $EDITOR`)}async function hZ(A){if(A.flags.help){PZ();return}let q=await kA(),g=await eA(q,A.flags.scope),E=Ug(g,A.flags.sort);if(A.flags.json)console.log(Gg(E));else console.log(e6(E))}async function SZ(A){if(A.flags.help){VZ();return}let q=A.subcommand;if(!q)$A("Missing required argument: <query>"),console.error('Run "asm search --help" for usage.'),process.exit(2);let g=await kA(),E=await eA(g,A.flags.scope),a=lg(E,q),F=Ug(a,A.flags.sort);if(A.flags.json)console.log(Gg(F));else console.log(e6(F))}async function zZ(A){if(A.flags.help){xZ();return}let q=A.subcommand;if(!q)$A("Missing required argument: <skill-name>"),console.error('Run "asm inspect --help" for usage.'),process.exit(2);let g=await kA(),a=(await eA(g,A.flags.scope)).filter((F)=>F.dirName===q);if(a.length===0)$A(`Skill "${q}" not found.`),process.exit(1);if(A.flags.json)console.log(Gg(a.length===1?a[0]:a));else for(let F=0;F<a.length;F++){if(F>0)console.log(`
174
174
  `+"\u2500".repeat(40)+`
175
- `);console.log(ma(a[F]))}}async function zZ(A){if(A.flags.help){xZ();return}let q=A.subcommand;if(!q)$A("Missing required argument: <skill-name>"),console.error('Run "asm uninstall --help" for usage.'),process.exit(2);let g=await kA(),E=await eA(g,A.flags.scope),a=ig(q,E,g),F=await rg(a);if(F.length===0)$A(`Skill "${q}" not found or nothing to remove.`),process.exit(1);console.error(l.bold("Removal plan:"));for(let Z of F)console.error(` ${l.red("\u2022")} ${Z}`);if(!A.flags.yes){if(!process.stdin.isTTY)$A("Cannot prompt for confirmation in non-interactive mode. Use --yes to skip."),process.exit(2);process.stderr.write(`
175
+ `);console.log(ma(a[F]))}}async function BZ(A){if(A.flags.help){RZ();return}let q=A.subcommand;if(!q)$A("Missing required argument: <skill-name>"),console.error('Run "asm uninstall --help" for usage.'),process.exit(2);let g=await kA(),E=await eA(g,A.flags.scope),a=ig(q,E,g),F=await rg(a);if(F.length===0)$A(`Skill "${q}" not found or nothing to remove.`),process.exit(1);console.error(l.bold("Removal plan:"));for(let Z of F)console.error(` ${l.red("\u2022")} ${Z}`);if(!A.flags.yes){if(!process.stdin.isTTY)$A("Cannot prompt for confirmation in non-interactive mode. Use --yes to skip."),process.exit(2);process.stderr.write(`
176
176
  ${l.bold("Proceed with removal?")} [y/N] `);let Z=await pa();if(Z.toLowerCase()!=="y"&&Z.toLowerCase()!=="yes")console.error("Aborted."),process.exit(0)}let K=await pq(a);for(let Z of K)console.error(Z);console.error(l.green(`
177
177
  Done.`))}function pa(){return new Promise((A)=>{let q="";process.stdin.setEncoding("utf-8"),process.stdin.on("data",(g)=>{if(q+=g,q.includes(`
178
- `))process.stdin.removeAllListeners("data"),A(q.trim())}),process.stdin.resume()})}async function BZ(A){if(A.flags.help){RZ();return}let q=A.subcommand??"duplicates";if(q!=="duplicates")$A(`Unknown audit subcommand: "${q}". Use: duplicates`),process.exit(2);let g=await kA(),E=await eA(g,"both"),a=Qg(E);if(A.flags.json){console.log(ca(a));return}if(console.log(ba(a)),A.flags.yes&&a.duplicateGroups.length>0){console.error(l.bold(`
178
+ `))process.stdin.removeAllListeners("data"),A(q.trim())}),process.stdin.resume()})}async function CZ(A){if(A.flags.help){NZ();return}let q=A.subcommand??"duplicates";if(q!=="duplicates")$A(`Unknown audit subcommand: "${q}". Use: duplicates`),process.exit(2);let g=await kA(),E=await eA(g,"both"),a=Qg(E);if(A.flags.json){console.log(ca(a));return}if(console.log(ba(a)),A.flags.yes&&a.duplicateGroups.length>0){console.error(l.bold(`
179
179
  Auto-removing duplicates...`));for(let F of a.duplicateGroups){let K=Yg(F.instances);for(let Z=1;Z<K.length;Z++){let j=K[Z],U=Og(j,g),O=await pq(U);for(let Q of O)console.error(Q)}}console.error(l.green(`
180
- Done.`))}}async function CZ(A){if(A.flags.help){NZ();return}let q=A.subcommand;if(!q)$A("Missing subcommand. Use: show, path, reset, or edit."),console.error('Run "asm config --help" for usage.'),process.exit(2);switch(q){case"show":{let g=await kA();console.log(Gg(g));break}case"path":{console.log(Rq());break}case"reset":{if(!A.flags.yes){if(!process.stdin.isTTY)$A("Cannot prompt for confirmation in non-interactive mode. Use --yes to skip."),process.exit(2);process.stderr.write(`${l.bold("Reset config to defaults?")} [y/N] `);let E=await pa();if(E.toLowerCase()!=="y"&&E.toLowerCase()!=="yes")console.error("Aborted."),process.exit(0)}let g=ug();await Zg(g),console.error(l.green("Config reset to defaults."));break}case"edit":{let g=process.env.VISUAL||process.env.EDITOR||"vi",E=Rq();await kA(),await Bun.spawn([g,E],{stdin:"inherit",stdout:"inherit",stderr:"inherit"}).exited;break}default:$A(`Unknown config subcommand: "${q}". Use: show, path, reset, or edit.`),process.exit(2)}}async function fa(A){let q=XZ(A);if(q.flags.noColor)globalThis.__CLI_NO_COLOR=!0;if(q.flags.version){console.log(`asm ${Mg}`);return}if(!q.command&&q.flags.help){IZ();return}if(!q.command)return;switch(q.command){case"list":await WZ(q);break;case"search":await hZ(q);break;case"inspect":await SZ(q);break;case"uninstall":await zZ(q);break;case"audit":await BZ(q);break;case"config":await CZ(q);break;default:$A(`Unknown command: "${q.command}"`),console.error('Run "asm --help" for usage.'),process.exit(2)}}function da(A){let q=A.slice(2);if(q.length===0)return!1;let g=["list","search","inspect","uninstall","audit","config"],E=q[0];if(g.includes(E))return!0;if(E==="--help"||E==="-h")return!0;if(E==="--version"||E==="-v")return!0;if(E.startsWith("-")||E.length>0)return!0;return!1}if(da(process.argv))await fa(process.argv);else await Vj().then(() => yO);
180
+ Done.`))}}async function kZ(A){if(A.flags.help){WZ();return}let q=A.subcommand;if(!q)$A("Missing subcommand. Use: show, path, reset, or edit."),console.error('Run "asm config --help" for usage.'),process.exit(2);switch(q){case"show":{let g=await kA();console.log(Gg(g));break}case"path":{console.log(Rq());break}case"reset":{if(!A.flags.yes){if(!process.stdin.isTTY)$A("Cannot prompt for confirmation in non-interactive mode. Use --yes to skip."),process.exit(2);process.stderr.write(`${l.bold("Reset config to defaults?")} [y/N] `);let E=await pa();if(E.toLowerCase()!=="y"&&E.toLowerCase()!=="yes")console.error("Aborted."),process.exit(0)}let g=ug();await Zg(g),console.error(l.green("Config reset to defaults."));break}case"edit":{let g=process.env.VISUAL||process.env.EDITOR||"vi",E=Rq();await kA(),await Bun.spawn([g,E],{stdin:"inherit",stdout:"inherit",stderr:"inherit"}).exited;break}default:$A(`Unknown config subcommand: "${q}". Use: show, path, reset, or edit.`),process.exit(2)}}async function fa(A){let q=IZ(A);if(q.flags.noColor)globalThis.__CLI_NO_COLOR=!0;if(q.flags.version){console.log(`asm ${Mg}`);return}if(!q.command&&q.flags.help){TZ();return}if(!q.command)return;switch(q.command){case"list":await hZ(q);break;case"search":await SZ(q);break;case"inspect":await zZ(q);break;case"uninstall":await BZ(q);break;case"audit":await CZ(q);break;case"config":await kZ(q);break;default:$A(`Unknown command: "${q.command}"`),console.error('Run "asm --help" for usage.'),process.exit(2)}}function da(A){let q=A.slice(2);if(q.length===0)return!1;let g=["list","search","inspect","uninstall","audit","config"],E=q[0];if(g.includes(E))return!0;if(E==="--help"||E==="-h")return!0;if(E==="--version"||E==="-v")return!0;if(E.startsWith("-")||E.length>0)return!0;return!1}if(da(process.argv))await fa(process.argv);else await Vj().then(() => mO);