omar-musayev 1.0.2 → 1.0.4

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.
package/dist/_entry.ts ADDED
@@ -0,0 +1,23 @@
1
+ // Auto-generated entry point for file-based routing build
2
+ import config from "/Users/omar/WebstormProjects/retro-web-2/tui/config.ts";
3
+ import { runFileBasedSite } from "terminaltui";
4
+
5
+ // Pre-import all page files so they're included in the bundle
6
+ import * as _page0 from "/Users/omar/WebstormProjects/retro-web-2/tui/pages/blog-1.ts";
7
+ import * as _page1 from "/Users/omar/WebstormProjects/retro-web-2/tui/pages/blog-2.ts";
8
+ import * as _page2 from "/Users/omar/WebstormProjects/retro-web-2/tui/pages/blog-3.ts";
9
+ import * as _page3 from "/Users/omar/WebstormProjects/retro-web-2/tui/pages/blog-4.ts";
10
+ import * as _page4 from "/Users/omar/WebstormProjects/retro-web-2/tui/pages/blog-5.ts";
11
+ import * as _page5 from "/Users/omar/WebstormProjects/retro-web-2/tui/pages/blogs.ts";
12
+ import * as _page6 from "/Users/omar/WebstormProjects/retro-web-2/tui/pages/home.ts";
13
+ import * as _page7 from "/Users/omar/WebstormProjects/retro-web-2/tui/pages/omar-ai.ts";
14
+ import * as _page8 from "/Users/omar/WebstormProjects/retro-web-2/tui/pages/projects.ts";
15
+ import * as _page9 from "/Users/omar/WebstormProjects/retro-web-2/tui/pages/resume.ts";
16
+ import * as _api0 from "/Users/omar/WebstormProjects/retro-web-2/tui/api/chat.ts";
17
+
18
+ await runFileBasedSite({
19
+ config,
20
+ pagesDir: "/Users/omar/WebstormProjects/retro-web-2/tui/pages",
21
+ apiDir: "/Users/omar/WebstormProjects/retro-web-2/tui/api",
22
+ outDir: "/Users/omar/WebstormProjects/retro-web-2/tui/.terminaltui",
23
+ });
package/dist/cli.js CHANGED
@@ -1,28 +1,30 @@
1
1
  #!/usr/bin/env node
2
- function Oe(r){if(!r.name)throw new Error("Site config must have a name");if(!r.pages||r.pages.length===0)throw new Error("Site must have at least one page");for(let e of r.pages)if(!e.id)throw new Error(`Page must have an id: ${JSON.stringify(e)}`);return{config:r}}function Z(r,e){return{id:r,...e}}function S(r){return{type:"card",...r}}function Ee(r,e){return{type:"list",items:r,style:e}}function q(r,e,t){return{type:"link",label:r,url:e,icon:t?.icon}}function De(r,e){return{text:r,...e}}function Y(r){return{type:"text",content:r.replace(/\n\s+/g,`
3
- `),style:"markdown"}}function H(r,e){return typeof r=="string"&&r!=="solid"&&r!=="dashed"&&r!=="dotted"&&r!=="double"&&r!=="label"?{type:"divider",style:"label",label:r}:{type:"divider",style:r,label:e}}function G(r){return{type:"spacer",lines:r??1}}function je(r){return{type:"textInput",...r}}function ee(r){return{type:"button",...r}}function We(r){let e={type:"form",...r};for(let t of e.fields)t.type==="button"&&(t._formId=e.id);return e}var re={cyberpunk:{accent:"#ff2a6d",accentDim:"#b91d4f",text:"#05d9e8",muted:"#0abdc6",subtle:"#01579b",success:"#05d9e8",warning:"#d1f7ff",error:"#ff2a6d",border:"#01579b",bg:"#01012b"},dracula:{accent:"#ff79c6",accentDim:"#bd93f9",text:"#f8f8f2",muted:"#6272a4",subtle:"#44475a",success:"#50fa7b",warning:"#f1fa8c",error:"#ff5555",border:"#6272a4",bg:"#282a36"},nord:{accent:"#88c0d0",accentDim:"#5e81ac",text:"#eceff4",muted:"#81a1c1",subtle:"#4c566a",success:"#a3be8c",warning:"#ebcb8b",error:"#bf616a",border:"#4c566a",bg:"#2e3440"},monokai:{accent:"#f92672",accentDim:"#ae81ff",text:"#f8f8f2",muted:"#75715e",subtle:"#49483e",success:"#a6e22e",warning:"#e6db74",error:"#f92672",border:"#75715e",bg:"#272822"},solarized:{accent:"#268bd2",accentDim:"#2aa198",text:"#839496",muted:"#657b83",subtle:"#586e75",success:"#859900",warning:"#b58900",error:"#dc322f",border:"#586e75",bg:"#002b36"},gruvbox:{accent:"#fe8019",accentDim:"#d65d0e",text:"#ebdbb2",muted:"#a89984",subtle:"#504945",success:"#b8bb26",warning:"#fabd2f",error:"#fb4934",border:"#504945",bg:"#282828"},catppuccin:{accent:"#f5c2e7",accentDim:"#cba6f7",text:"#cdd6f4",muted:"#a6adc8",subtle:"#45475a",success:"#a6e3a1",warning:"#f9e2af",error:"#f38ba8",border:"#585b70",bg:"#1e1e2e"},tokyoNight:{accent:"#7aa2f7",accentDim:"#bb9af7",text:"#c0caf5",muted:"#565f89",subtle:"#3b4261",success:"#9ece6a",warning:"#e0af68",error:"#f7768e",border:"#3b4261",bg:"#1a1b26"},rosePine:{accent:"#ebbcba",accentDim:"#c4a7e7",text:"#e0def4",muted:"#908caa",subtle:"#6e6a86",success:"#9ccfd8",warning:"#f6c177",error:"#eb6f92",border:"#6e6a86",bg:"#191724"},hacker:{accent:"#00ff41",accentDim:"#008f11",text:"#00ff41",muted:"#008f11",subtle:"#003b00",success:"#00ff41",warning:"#ccff00",error:"#ff0000",border:"#008f11",bg:"#0d0208"}},de=re.dracula;function fe(r){let e=r.match(/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}function ln(r,e,t){return"#"+[r,e,t].map(n=>n.toString(16).padStart(2,"0")).join("")}function ht(){let r=process.env;return r.NO_COLOR!==void 0?"none":r.TERM_PROGRAM==="Apple_Terminal"?"256":r.COLORTERM==="truecolor"||r.COLORTERM==="24bit"?"truecolor":r.TERM_PROGRAM==="iTerm.app"||r.TERM_PROGRAM==="WezTerm"||r.TERM_PROGRAM==="vscode"||r.TERM_PROGRAM==="Hyper"||r.TERM_PROGRAM==="WarpTerminal"||r.WT_SESSION!==void 0?r.COLORTERM?"truecolor":"256":r.TERM?.includes("256color")?"256":r.TERM?"16":"none"}var N=ht();function Ye(r){N=r}function dt(r,e,t){if(r===e&&e===t)return r<8?16:r>248?231:Math.round((r-8)/247*24)+232;let n=Math.round(r/255*5),o=Math.round(e/255*5),s=Math.round(t/255*5);return 16+36*n+6*o+s}var un=[{r:0,g:0,b:0,code:30},{r:170,g:0,b:0,code:31},{r:0,g:170,b:0,code:32},{r:170,g:170,b:0,code:33},{r:0,g:0,b:170,code:34},{r:170,g:0,b:170,code:35},{r:0,g:170,b:170,code:36},{r:170,g:170,b:170,code:37},{r:85,g:85,b:85,code:90},{r:255,g:85,b:85,code:91},{r:85,g:255,b:85,code:92},{r:255,g:255,b:85,code:93},{r:85,g:85,b:255,code:94},{r:255,g:85,b:255,code:95},{r:85,g:255,b:255,code:96},{r:255,g:255,b:255,code:97}];function ft(r,e,t){let n=30,o=1/0;for(let s of un){let i=r-s.r,a=e-s.g,u=t-s.b,f=i*i+a*a+u*u;f<o&&(o=f,n=s.code)}return n}function c(r){if(N==="none")return"";let e=fe(r);return e?N==="16"?`\x1B[${ft(e.r,e.g,e.b)}m`:N==="256"?`\x1B[38;5;${dt(e.r,e.g,e.b)}m`:`\x1B[38;2;${e.r};${e.g};${e.b}m`:""}function Ne(r){if(N==="none")return"";let e=fe(r);return e?N==="16"?`\x1B[${ft(e.r,e.g,e.b)+10}m`:N==="256"?`\x1B[48;5;${dt(e.r,e.g,e.b)}m`:`\x1B[48;2;${e.r};${e.g};${e.b}m`:""}function hn(r,e,t){let n=fe(r),o=fe(e);if(!n||!o)return r;let s=Math.round(n.r+(o.r-n.r)*t),i=Math.round(n.g+(o.g-n.g)*t),a=Math.round(n.b+(o.b-n.b)*t);return ln(s,i,a)}function $e(r,e){if(r.length===0)return[];if(r.length===1)return Array(e).fill(r[0]);let t=[];for(let n=0;n<e;n++){let o=e<=1?0:n/(e-1)*(r.length-1),s=Math.min(Math.floor(o),r.length-2),i=o-s;t.push(hn(r[s],r[Math.min(s+1,r.length-1)],i))}return t}var l=N==="none"?"":"\x1B[0m",b=N==="none"?"":"\x1B[1m",w=N==="none"?"":"\x1B[2m",J=N==="none"?"":"\x1B[3m",oe=N==="none"?"":"\x1B[4m",ae=N==="none"?"":"\x1B[7m";function Q(r){return r<32||r===127||r>=768&&r<=879||r===8203||r===8204||r===8205||r===173||r===65279||r>=6832&&r<=6911||r>=7616&&r<=7679||r>=8400&&r<=8447||r>=65056&&r<=65071||r>=65024&&r<=65039||r>=917760&&r<=917999?0:r>=19968&&r<=40959||r>=13312&&r<=19903||r>=131072&&r<=173791||r>=173824&&r<=177983||r>=177984&&r<=178207||r>=63744&&r<=64255||r>=12288&&r<=12351||r>=12352&&r<=12447||r>=12448&&r<=12543||r>=44032&&r<=55215||r>=4352&&r<=4447||r>=65281&&r<=65376||r>=65504&&r<=65510||r>=127744&&r<=129535||r>=129536&&r<=129647||r>=129648&&r<=129791?2:(r>=9984&&r<=10175||r>=9728&&r<=9983,1)}function y(r){let e=ce(r),t=0;for(let n of e)t+=Q(n.codePointAt(0)??0);return t}function mt(r,e){return c(e)+r+l}function L(r,e,t="left"){let n=y(r),o=Math.max(0,e-n);switch(t){case"center":{let s=Math.floor(o/2),i=o-s;return" ".repeat(s)+r+" ".repeat(i)}case"right":return" ".repeat(o)+r;default:return r+" ".repeat(o)}}function ce(r){return r.replace(/\x1b\[[0-9;]*m/g,"")}function C(r,e){if(!r)return"";if(y(r)<=e)return r;let t=0,n="",o=!1;for(let s of r){if(s==="\x1B"){o=!0,n+=s;continue}if(o){n+=s,s==="m"&&(o=!1);continue}let i=Q(s.codePointAt(0)??0);if(t+i>=e){n+="\u2026";break}n+=s,t+=i}return n+l}function A(r,e){if(e<=0)return[];let t=r.split(`
4
- `),n=[];for(let o of t){if(o.length===0){n.push("");continue}let s=o.split(" "),i="",a=0;for(let u of s){let f=y(u);if(f>e){i&&(n.push(i),i="",a=0);let d="",h=0;for(let p of u){let m=Q(p.codePointAt(0)??0);h+m>e&&d&&(n.push(d),d="",h=0),d+=p,h+=m}i=d,a=h;continue}a===0?(i=u,a=f):a+1+f<=e?(i+=" "+u,a+=1+f):(n.push(i),i=u,a=f)}i&&n.push(i)}return n.length>0?n:[""]}var dn={name:"DOS Rebel",height:10,chars:{A:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],B:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],C:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588"," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],D:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],E:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588"," \u2591\u2588\u2588\u2588 \u2588 \u2591 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588 "," \u2591\u2588\u2588\u2588 \u2591 \u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],F:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2588"," \u2591\u2588\u2588\u2588 \u2588 \u2591 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2588 "," \u2591\u2588\u2588\u2588 \u2591 "," \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591 "," "," "],G:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],H:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],I:[" \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],J:[" \u2588\u2588\u2588\u2588\u2588"," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],K:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591 "," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591 "," "," "],L:[" \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],M:[" \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2591 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],N:[" \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],O:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],P:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591 "," "," "],Q:[" \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2588\u2588\u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591 "," "," "],R:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],S:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],T:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2588","\u2591 \u2591\u2588\u2588\u2588 \u2591 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591 "," "," "],U:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],V:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],W:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "],X:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],Y:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591 "," "," "],Z:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 ","\u2591 \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588 \u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],0:[" \u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],1:[" \u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],2:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591 "," \u2588\u2588\u2588 \u2588","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],3:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],4:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588"," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2588"," \u2591\u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591 "," "," "],5:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2588","\u2591\u2588\u2588\u2588 \u2591 ","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],6:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],7:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],8:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],9:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "],"!":[" \u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 "," \u2588\u2588\u2588","\u2591\u2591\u2591 "," "," "],'"':[" \u2588\u2588 \u2588\u2588","\u2591\u2588\u2588\u2591\u2588\u2588","\u2591\u2591 \u2591\u2591 "," "," "," "," "," "," "," "],"#":[" \u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "," "," "],$:[" \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],"%":[" \u2588\u2588\u2588 \u2588\u2588\u2588"," \u2591\u2591\u2591 \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 \u2588\u2588\u2588 ","\u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "],"&":[" \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "],"'":[" \u2588\u2588"," \u2588\u2588\u2588","\u2591\u2591\u2591 "," "," "," "," "," "," "," "],"(":[" \u2588\u2588\u2588"," \u2588\u2588\u2588 "," \u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],")":[" \u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 "," \u2588\u2588\u2591 ","\u2591\u2591\u2591 "," "," "],"*":[" \u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588 \u2591\u2591\u2591 "," \u2591\u2591\u2591 "," "," "],"+":[" "," \u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591 "," \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "," "],",":[" "," "," "," "," "," "," \u2588\u2588"," \u2588\u2588 ","\u2591\u2591 "," "],"-":[" "," "," "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "," "," "," "],".":[" "," "," "," "," "," "," \u2588\u2588","\u2591\u2591 "," "," "],"/":[" \u2588\u2588\u2588"," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591 "," "," "],":":[" "," "," \u2588\u2588","\u2591\u2591 "," "," "," \u2588\u2588","\u2591\u2591 "," "," "],";":[" "," "," "," "," \u2588\u2588"," \u2591\u2591 "," \u2588\u2588"," \u2588\u2588 ","\u2591\u2591 "," "],"<":[" \u2588\u2588\u2588"," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],"=":[" "," "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "," "," "],">":[" \u2588\u2588\u2588 ","\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591 "," "," "],"?":[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591 "," \u2591\u2591\u2591 "," \u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],"@":[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2591\u2591 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],"[":[" \u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],"\\":[" \u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],"]":[" \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],"^":[" \u2588\u2588 "," \u2588\u2588\u2588\u2588 "," \u2588\u2588\u2591\u2591\u2588\u2588","\u2591\u2591 \u2591\u2591 "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],"{":[" \u2588\u2588\u2588"," \u2588\u2588\u2591 "," \u2588\u2588 "," \u2588\u2588\u2588 ","\u2591\u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],"|":[" \u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 "," "," "],"}":[" \u2588\u2588\u2588 ","\u2591\u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2591 "," \u2588\u2588 "," \u2588\u2588\u2588 ","\u2591\u2591\u2591 "," "," "],"~":[" "," \u2588\u2588\u2588 \u2588\u2588\u2588"," \u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "," "," "," "," "]}},fn={name:"Ghost",height:9,chars:{A:[" ('-. "," ( OO ).-. "," / . --. / "," | \\-. \\ ",".-'-' | | "," \\| |_.' | "," | .-. | "," | | | | "," `--' `--' "],B:[".-. .-') ","\\ ( OO ) "," ;-----.\\ "," | .-. | "," | '-' /_) "," | .-. `. "," | | \\ | "," | '--' / "," `------' "],C:[" "," "," .-----. "," ' .--./ "," | |('-. "," /_) |OO ) "," || |`-'| ","(_' '--'\\ "," `-----' "],D:[" _ .-') _ ","( ( OO) ) "," \\ .'_ "," ,`'--..._) "," | | \\ ' "," | | ' | "," | | / : "," | '--' / "," `-------' "],E:[" ('-. "," _( OO) ","(,------. "," | .---' "," | | ","(| '--. "," | .--' "," | `---. "," `------' "],F:[" "," "," ,------. ","('-| _.---' ","(OO|(_\\ ","/ | '--. ","\\_)| .--' "," \\| |_) "," `--' "],G:[" "," "," ,----. "," ' .-./-') "," | |_( O- ) "," | | .--, \\ ","(| | '. (_/ "," | '--' | "," `------' "],H:[" ('-. .-. ","( OO ) / ",",--. ,--. ","| | | | ","| .| | ","| | ","| .-. | ","| | | | ","`--' `--' "],I:[" "," "," ,-.-') "," | |OO) "," | | \\ "," | |(_/ "," ,| |_.' ","(_| | "," `--' "],J:[" "," "," ,--. "," .-')| ,| ","( OO |(_| ","| `-'| | ",",--. | | ","| '-' / "," `-----' "],K:[".-. .-') ","\\ ( OO ) ",",--. ,--. ","| .' / ","| /, ","| ' _) ","| . \\ ","| |\\ \\ ","`--' '--' "],L:[" "," "," ,--. "," | |.-') "," | | OO ) "," | |`-' | ","(| '---.' "," | | "," `------' "],M:[" _ .-') ","( '.( OO )_ "," ,--. ,--.)"," | `.' | "," | | "," | |'.'| | "," | | | | "," | | | | "," `--' `--' "],N:[" .-') _ "," ( OO ) ) ",",--./ ,--,' ","| \\ | |\\ ","| \\| | ) ","| . |/ ","| |\\ | ","| | \\ | ","`--' `--' "],O:[" "," "," .-'),-----. ","( OO' .-. '","/ | | | |","\\_) | |\\| |"," \\ | | | |"," `' '-' '"," `-----' "],P:[" _ (`-. "," ( (OO ) "," _.` \\ ","(__...--'' "," | / | | "," | |_.' | "," | .___.' "," | | "," `--' "],Q:[" .-') "," .( OO) "," (_)---\\_) "," ' .-. ' "," ,| | | | ","(_| | | | "," | | | | "," ' '-' '-."," `-----'--'"],R:[" _ .-') ","( \\( -O ) "," ,------. "," | /`. ' "," | / | | "," | |_.' | "," | . '.' "," | |\\ \\ "," `--' '--' "],S:[" .-') "," ( OO ). ","(_)---\\_) ","/ _ | ","\\ :` `. "," '..`''.) ",".-._) \\ ","\\ / "," `-----' "],T:[" .-') _ ","( OO) ) ","/ '._ ","|'--...__) ","'--. .--' "," | | "," | | "," | | "," `--' "],U:[" "," "," ,--. ,--. "," | | | | "," | | | .-') "," | |_|( OO )"," | | | `-' /","(' '-'(_.-' "," `-----' "],V:[" (`-. "," _(OO )_ ",",--(_/ ,. \\","\\ \\ /(__/"," \\ \\ / / "," \\ ' /, "," \\ /__)"," \\ / "," `-' "],W:[" (`\\ .-') /`"," `.( OO ),'",",--./ .--. ","| | | ","| | | |, ","| |.'.| |_)","| | ","| ,'. | ","'--' '--' "],X:[") (`-. "," ( OO ). ","(_/. \\_)-. "," \\ `.' / "," \\ /\\ "," \\ \\ | "," .' \\_) "," / .'. \\ ","'--' '--' "],Y:[" "," "," ,--. ,--."," \\ `.' / "," .-') / ","(OO \\ / "," | / /\\_ "," `-./ /.__) "," `--' "],Z:[" .-') _ "," ( OO) ) ",",(_)----. ","| | ","'--. / ","(_/ / "," / /___ ","| | ","`--------' "],0:[" "," "," .----. "," / .. \\ ",". / \\ . ","| | ' | ","' \\ / ' "," \\ `' / "," `---'' "],1:[" "," "," .---. ","/_ | "," | | "," | | "," | | "," | | "," `---' "],2:[" "," "," .-----. ","/ ,-. \\ ","'-' | | "," .' / "," .' /__ ","| | ","`-------' "],3:[" "," "," .-----. ","/ -. \\ ","'-' _' | "," |_ < ",".-. | | ","\\ `-' / "," `----'' "],4:[" "," "," .---. "," / . | "," / /| | "," / / | |_ ","/ '-' | ","`----| |-' "," `--' "],5:[" "," ",".------. ","| ___| ","| '--. ","`---. '. ",".- | | ","| `-' / "," `----'' "],6:[" "," "," ,--. "," / .' ",". / -. ","| .-. ' ","' \\ | | ","\\ `' / "," `----' "],7:[" "," ",".--------. ","| __ ' ","`--' . / "," / / "," . / "," / / "," `--' "],8:[" "," "," .-----. "," / .-. \\ ","| \\_.' / "," / .-. '. ","| | | | "," \\ '-' / "," `----'' "],9:[" "," "," .----. "," / ,. \\ ","| | \\ | "," ' `-' ' "," `- / ' "," ,' / "," `---' "]," ":[" "," "," "," "," "," "," "," "," "],"!":[",---. ","| | ","| | ","| | ","| | ","| .' ","`--' ",".--. ","'--' "],'"':[" ",",--.,--. ","\\ |\\ | "," `-' `-' "," "," "," "," "," "],"#":[" "," ,-. ,-. "," | | | | ",",--| |-| |--.","'--| |-| |--'","'--| |-| |--'"," | | | | "," `-' `-' "," "],$:[" ,-. "," .-| |-. ","| | |_/ ","\\ | |. "," '-| | '. ",".- | | | ","| `| | / "," `-| |'` "," `-' "],"%":[" ,-. "," ,--. / / "," '--'/ / "," / / "," / / "," / / "," / / ,--. ","/ / '--' ","`-' "],"&":[" "," .-----. ","/ .-. \\ ","| \\_.' / ","/ .-. ',-. ","| | | . /_ ","\\ '-' _.__)"," `----'' "," "],"'":[" ",",--. ","\\ | "," `-' "," "," "," "," "," "],"(":[" ,-. "," / | ","' .' ","| | ","| | ","| | ","' '. "," \\ | "," `-' "],")":[",-. ","| \\ ","'. ' "," | | "," | | "," | | ",".' ' ","| / ","`-' "],"*":[" "," .-. "," .-,| |,-. "," _\\ ' ' /_ ","(__ __) "," / . . \\ "," `-'| |`-' "," `-' "," "],"+":[" "," "," ,-. "," | | ",",---| |---. ","'---| |---' "," | | "," `-' "," "],",":[" "," "," "," "," "," "," ",".-. ","',/ "],"-":[" "," "," "," .-') "," _( OO) ","(,------. "," '------' "," "," "],".":[" "," "," "," "," "," "," ",".-. ","`-' "],"/":[" ,-. "," / / "," / / "," / / "," / / "," / / "," / / ","/ / ","`-' "],":":[" "," ",".-. ","`-' "," ",".-. ","`-' "," "," "],";":[" "," ",".-. ","'-' "," ",".-. ","',/ "," "," "],"<":[" "," ,-. "," / / "," / / ","/ / ","\\ \\ "," \\ \\ "," \\ \\ "," `-' "],"=":[" "," ",",-----. ","'-----' "," ",",-----. ","'-----' "," "," "],">":[" ",",-. "," \\ \\ "," \\ \\ "," \\ \\ "," / / "," / / "," / / ","`-' "],"?":[" ,------. ","' .--. ' ","| | | | ","'--' | | "," __. | "," | .' "," |___| "," .---. "," '---' "],"@":[" "," "," ____ "," .' __ \\ ","/ .' \\ | ","| | (_/ | ","\\ `.__.'\\ "," `.___ .' "," "],"[":[",----. ","| | ","| .-' ","| | ","| | ","| | ","| '-. ","| | ","`----' "],"\\":[",-. ","\\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," `-' "],"]":[",----. ","| | ","`-. | "," | | "," | | "," | | ",".-' | ","| | ","`----' "],"^":[" "," "," ,---. "," / \\ \\ ","`--' `--' "," "," "," "," "],_:[" "," "," "," "," "," (`-. "," (OO )_ ",",------.) ","`------' "],"{":[" ,--. "," | | "," | .' "," .' / ","< < "," `. \\ "," | '. "," | | "," `--' "],"|":[",-. ","| | ","| | ","| | ","| | ","| | ","| | ","| | ","`-' "],"}":[",--. ","| | ","'. | "," \\ ` "," > > "," / . ",".' | ","| | ","`--' "],"~":[" "," .--, "," .--' / "," / ---` ","`--' "," "," "," "," "]}},mn={name:"Bloody",height:10,chars:{A:[" \u2584\u2584\u2584 ","\u2592\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588 \u2580\u2588\u2584 ","\u2591\u2588\u2588\u2584\u2584\u2584\u2584\u2588\u2588 "," \u2593\u2588 \u2593\u2588\u2588\u2592"," \u2592\u2592 \u2593\u2592\u2588\u2591"," \u2592 \u2592\u2592 \u2591"," \u2591 \u2592 "," \u2591 \u2591"," "],B:[" \u2584\u2584\u2584\u2584 ","\u2593\u2588\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588\u2592 \u2584\u2588\u2588","\u2592\u2588\u2588\u2591\u2588\u2580 ","\u2591\u2593\u2588 \u2580\u2588\u2593","\u2591\u2592\u2593\u2588\u2588\u2588\u2580\u2592","\u2592\u2591\u2592 \u2591 "," \u2591 \u2591 "," \u2591 "," \u2591 "],C:[" \u2584\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588\u2580 \u2580\u2588 ","\u2592\u2593\u2588 \u2584 ","\u2592\u2593\u2593\u2584 \u2584\u2588\u2588\u2592","\u2592 \u2593\u2588\u2588\u2588\u2580 \u2591","\u2591 \u2591\u2592 \u2592 \u2591"," \u2591 \u2592 ","\u2591 ","\u2591 \u2591 ","\u2591 "],D:["\u2593\u2588\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588\u2580 \u2588\u2588\u258C","\u2591\u2588\u2588 \u2588\u258C","\u2591\u2593\u2588\u2584 \u258C","\u2591\u2592\u2588\u2588\u2588\u2588\u2593 "," \u2592\u2592\u2593 \u2592 "," \u2591 \u2592 \u2592 "," \u2591 \u2591 \u2591 "," \u2591 "," \u2591 "],E:["\u2593\u2588\u2588\u2588\u2588\u2588 ","\u2593\u2588 \u2580 ","\u2592\u2588\u2588\u2588 ","\u2592\u2593\u2588 \u2584 ","\u2591\u2592\u2588\u2588\u2588\u2588\u2592","\u2591\u2591 \u2592\u2591 \u2591"," \u2591 \u2591 \u2591"," \u2591 "," \u2591 \u2591"," "],F:[" \u2588\u2588\u2588\u2588\u2588\u2592","\u2593\u2588\u2588 \u2592 ","\u2592\u2588\u2588\u2588\u2588 \u2591 ","\u2591\u2593\u2588\u2592 \u2591 ","\u2591\u2592\u2588\u2591 "," \u2592 \u2591 "," \u2591 "," \u2591 \u2591 "," "," "],G:[" \u2584\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2592 \u2580\u2588\u2592","\u2592\u2588\u2588\u2591\u2584\u2584\u2584\u2591","\u2591\u2593\u2588 \u2588\u2588\u2593","\u2591\u2592\u2593\u2588\u2588\u2588\u2580\u2592"," \u2591\u2592 \u2592 "," \u2591 \u2591 ","\u2591 \u2591 \u2591 "," \u2591 "," "],H:[" \u2588\u2588\u2591 \u2588\u2588 ","\u2593\u2588\u2588\u2591 \u2588\u2588\u2592","\u2592\u2588\u2588\u2580\u2580\u2588\u2588\u2591","\u2591\u2593\u2588 \u2591\u2588\u2588 ","\u2591\u2593\u2588\u2592\u2591\u2588\u2588\u2593"," \u2592 \u2591\u2591\u2592\u2591\u2592"," \u2592 \u2591\u2592\u2591 \u2591"," \u2591 \u2591\u2591 \u2591"," \u2591 \u2591 \u2591"," "],I:[" \u2588\u2588\u2593","\u2593\u2588\u2588\u2592","\u2592\u2588\u2588\u2592","\u2591\u2588\u2588\u2591","\u2591\u2588\u2588\u2591","\u2591\u2593 "," \u2592 \u2591"," \u2592 \u2591"," \u2591 "," "],J:[" \u2584\u2584\u2584\u2588\u2588\u2580\u2580\u2580"," \u2592\u2588\u2588 "," \u2591\u2588\u2588 ","\u2593\u2588\u2588\u2584\u2588\u2588\u2593 "," \u2593\u2588\u2588\u2588\u2592 "," \u2592\u2593\u2592\u2592\u2591 "," \u2592 \u2591\u2592\u2591 "," \u2591 \u2591 \u2591 "," \u2591 \u2591 "," "],K:[" \u2588\u2588 \u2584\u2588\u2580"," \u2588\u2588\u2584\u2588\u2592 ","\u2593\u2588\u2588\u2588\u2584\u2591 ","\u2593\u2588\u2588 \u2588\u2584 ","\u2592\u2588\u2588\u2592 \u2588\u2584","\u2592 \u2592\u2592 \u2593\u2592","\u2591 \u2591\u2592 \u2592\u2591","\u2591 \u2591\u2591 \u2591 ","\u2591 \u2591 "," "],L:[" \u2588\u2588\u2593 ","\u2593\u2588\u2588\u2592 ","\u2592\u2588\u2588\u2591 ","\u2592\u2588\u2588\u2591 ","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2592","\u2591 \u2592\u2591\u2593 \u2591","\u2591 \u2591 \u2592 \u2591"," \u2591 \u2591 "," \u2591 \u2591"," "],M:[" \u2588\u2588\u2588\u2584 \u2584\u2588\u2588\u2588\u2593","\u2593\u2588\u2588\u2592\u2580\u2588\u2580 \u2588\u2588\u2592","\u2593\u2588\u2588 \u2593\u2588\u2588\u2591","\u2592\u2588\u2588 \u2592\u2588\u2588 ","\u2592\u2588\u2588\u2592 \u2591\u2588\u2588\u2592","\u2591 \u2592\u2591 \u2591 \u2591","\u2591 \u2591 \u2591","\u2591 \u2591 "," \u2591 "," "],N:[" \u2588\u2588\u2588\u2584 \u2588 "," \u2588\u2588 \u2580\u2588 \u2588 ","\u2593\u2588\u2588 \u2580\u2588 \u2588\u2588\u2592","\u2593\u2588\u2588\u2592 \u2590\u258C\u2588\u2588\u2592","\u2592\u2588\u2588\u2591 \u2593\u2588\u2588\u2591","\u2591 \u2592\u2591 \u2592 \u2592 ","\u2591 \u2591\u2591 \u2591 \u2592\u2591"," \u2591 \u2591 \u2591 "," \u2591 "," "],O:[" \u2592\u2588\u2588\u2588\u2588\u2588 ","\u2592\u2588\u2588\u2592 \u2588\u2588\u2592","\u2592\u2588\u2588\u2591 \u2588\u2588\u2592","\u2592\u2588\u2588 \u2588\u2588\u2591","\u2591 \u2588\u2588\u2588\u2588\u2593\u2592\u2591","\u2591 \u2592\u2591\u2592\u2591\u2592\u2591 "," \u2591 \u2592 \u2592\u2591 ","\u2591 \u2591 \u2591 \u2592 "," \u2591 \u2591 "," "],P:[" \u2588\u2588\u2593\u2588\u2588\u2588 ","\u2593\u2588\u2588\u2591 \u2588\u2588\u2592","\u2593\u2588\u2588\u2591 \u2588\u2588\u2593\u2592","\u2592\u2588\u2588\u2584\u2588\u2593\u2592 \u2592","\u2592\u2588\u2588\u2592 \u2591 \u2591","\u2592\u2593\u2592\u2591 \u2591 \u2591","\u2591\u2592 \u2591 ","\u2591\u2591 "," "," "],Q:[" \u2588\u2588\u2588\u2588\u2588 ","\u2592\u2588\u2588\u2593 \u2588\u2588\u2592","\u2592\u2588\u2588\u2592 \u2588\u2588\u2591","\u2591\u2588\u2588 \u2588\u2580 \u2591","\u2591\u2592\u2588\u2588\u2588\u2592\u2588\u2584 ","\u2591\u2591 \u2592\u2592\u2591 \u2592 "," \u2591 \u2592\u2591 \u2591 "," \u2591 \u2591 "," \u2591 "," "],R:[" \u2588\u2588\u2580\u2588\u2588\u2588 ","\u2593\u2588\u2588 \u2592 \u2588\u2588\u2592","\u2593\u2588\u2588 \u2591\u2584\u2588 \u2592","\u2592\u2588\u2588\u2580\u2580\u2588\u2584 ","\u2591\u2588\u2588\u2593 \u2592\u2588\u2588\u2592","\u2591 \u2592\u2593 \u2591\u2592\u2593\u2591"," \u2591\u2592 \u2591 \u2592\u2591"," \u2591\u2591 \u2591 "," \u2591 "," "],S:[" \u2588\u2588\u2588\u2588\u2588\u2588 ","\u2592\u2588\u2588 \u2592 ","\u2591 \u2593\u2588\u2588\u2584 "," \u2592 \u2588\u2588\u2592","\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2592","\u2592 \u2592\u2593\u2592 \u2592 \u2591","\u2591 \u2591\u2592 \u2591 \u2591","\u2591 \u2591 \u2591 "," \u2591 "," "],T:["\u2584\u2584\u2584\u2588\u2588\u2588\u2588\u2588\u2593","\u2593 \u2588\u2588\u2592 \u2593\u2592","\u2592 \u2593\u2588\u2588\u2591 \u2592\u2591","\u2591 \u2593\u2588\u2588\u2593 \u2591 "," \u2592\u2588\u2588\u2592 \u2591 "," \u2592 \u2591\u2591 "," \u2591 "," \u2591 "," "," "],U:[" \u2588 \u2588\u2588 "," \u2588\u2588 \u2593\u2588\u2588\u2592","\u2593\u2588\u2588 \u2592\u2588\u2588\u2591","\u2593\u2593\u2588 \u2591\u2588\u2588\u2591","\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2593 ","\u2591\u2592\u2593\u2592 \u2592 \u2592 ","\u2591\u2591\u2592\u2591 \u2591 \u2591 "," \u2591\u2591\u2591 \u2591 \u2591 "," \u2591 "," "],V:[" \u2588\u2588\u2592 \u2588\u2593","\u2593\u2588\u2588\u2591 \u2588\u2592"," \u2593\u2588\u2588 \u2588\u2592\u2591"," \u2592\u2588\u2588 \u2588\u2591\u2591"," \u2592\u2580\u2588\u2591 "," \u2591 \u2590\u2591 "," \u2591 \u2591\u2591 "," \u2591\u2591 "," \u2591 "," \u2591 "],W:[" \u2588 \u2588\u2591","\u2593\u2588\u2591 \u2588 \u2591\u2588\u2591","\u2592\u2588\u2591 \u2588 \u2591\u2588 ","\u2591\u2588\u2591 \u2588 \u2591\u2588 ","\u2591\u2591\u2588\u2588\u2592\u2588\u2588\u2593 ","\u2591 \u2593\u2591\u2592 \u2592 "," \u2592 \u2591 \u2591 "," \u2591 \u2591 "," \u2591 "," "],X:["\u2592\u2588\u2588 \u2588\u2588\u2592","\u2592\u2592 \u2588 \u2588 \u2592\u2591","\u2591\u2591 \u2588 \u2591"," \u2591 \u2588 \u2588 \u2592 ","\u2592\u2588\u2588\u2592 \u2592\u2588\u2588\u2592","\u2592\u2592 \u2591 \u2591\u2593 \u2591","\u2591\u2591 \u2591\u2592 \u2591"," \u2591 \u2591 "," \u2591 \u2591 "," "],Y:["\u2593\u2588\u2588 \u2588\u2588\u2593"," \u2592\u2588\u2588 \u2588\u2588\u2592"," \u2592\u2588\u2588 \u2588\u2588\u2591"," \u2591 \u2590\u2588\u2588\u2593\u2591"," \u2591 \u2588\u2588\u2592\u2593\u2591"," \u2588\u2588\u2592\u2592\u2592 "," \u2593\u2588\u2588 \u2591\u2592\u2591 "," \u2592 \u2592 \u2591\u2591 "," \u2591 \u2591 "," \u2591 \u2591 "],Z:["\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592","\u2592 \u2592 \u2592 \u2584\u2580\u2591","\u2591 \u2592 \u2584\u2580\u2592\u2591 "," \u2584\u2580\u2592 \u2591","\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592","\u2591\u2592\u2592 \u2593\u2591\u2592\u2591\u2592","\u2591\u2591\u2592 \u2592 \u2591 \u2592","\u2591 \u2591 \u2591 \u2591 \u2591"," \u2591 \u2591 ","\u2591 "],0:[" "," "," "," "," "," "," "," "," "," "],1:[" "," "," "," "," "," "," "," "," "," "],2:[" "," "," "," "," "," "," "," "," "," "],3:[" "," "," "," "," "," "," "," "," "," "],4:[" "," "," "," "," "," "," "," "," "," "],5:[" "," "," "," "," "," "," "," "," "," "],6:[" "," "," "," "," "," "," "," "," "," "],7:[" "," "," "," "," "," "," "," "," "," "],8:[" "," "," "," "," "," "," "," "," "," "],9:[" "," "," "," "," "," "," "," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "],"!":[" \u2590\u2588\u2588\u258C "," \u2590\u2588\u2588\u258C "," \u2590\u2588\u2588\u258C "," \u2593\u2588\u2588\u2592 "," \u2592\u2584\u2584 "," \u2591\u2580\u2580\u2592 "," \u2591 \u2591 "," \u2591 "," \u2591 "," "],"-":[" "," "," "," "," "," "," "," "," "," "],".":[" "," "," "," "," \u2588\u2588\u2593 "," \u2592\u2593\u2592 "," \u2591\u2592 "," \u2591 "," \u2591 "," \u2591 "],":":[" "," "," "," "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," "," "," "," "]}},pn={name:"Electronic",height:12,chars:{A:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],B:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],C:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],D:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],E:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],F:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2580 "," "],G:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u258C\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u258C \u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],H:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],I:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],J:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],K:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C\u2590\u2591\u258C ","\u2590\u2591\u258C\u2591\u258C ","\u2590\u2591\u2591\u258C ","\u2590\u2591\u258C\u2591\u258C ","\u2590\u2591\u258C\u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],L:[" \u2584 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],M:[" \u2584\u2584 \u2584\u2584 ","\u2590\u2591\u2591\u258C \u2590\u2591\u2591\u258C","\u2590\u2591\u258C\u2591\u258C \u2590\u2591\u2590\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2580 \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],N:[" \u2584\u2584 \u2584 ","\u2590\u2591\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u2591\u258C"," \u2580 \u2580\u2580 "," "],O:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],P:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2580 "," "],Q:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580 "," \u2590\u2591\u258C "," \u2580 "," "],R:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580 ","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],S:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],T:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],U:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],V:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],W:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2584 \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u258C\u2591\u258C \u2590\u2591\u2590\u2591\u258C","\u2590\u2591\u2591\u258C \u2590\u2591\u2591\u258C"," \u2580\u2580 \u2580\u2580 "," "],X:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],Y:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],Z:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],0:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 "," \u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2591\u258C"," \u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],1:[" \u2584\u2584\u2584\u2584 "," \u2584\u2588\u2591\u2591\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C\u2590\u2591\u2591\u258C "," \u2580\u2580 \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2584\u2584\u2584\u2584\u2588\u2591\u2591\u2588\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],2:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],3:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],4:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2580 "," "],5:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],6:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],7:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],8:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C"," \u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],9:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "," "],"!":[" \u2584 ","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C"," \u2580 "," \u2584 ","\u2590\u2591\u258C"," \u2580 "," "],"#":[" \u2584 \u2584 "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580 "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580 "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2580 \u2580 "," "],$:[" \u2584 "," \u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 ","\u2590\u2591\u2588\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2588\u2591\u258C"," \u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2580 "," "],"%":[" \u2584"," \u2584 \u2590\u2591"," \u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C \u2584 "," \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2580 "," \u2580 "," "],"*":[" \u2584 \u2584 \u2584 ","\u2590\u2591\u258C\u2590\u2591\u258C\u2590\u2591\u258C"," \u2590\u2591\u2590\u2591\u258C\u2591\u258C "," \u2590\u2591 \u2591\u258C "," \u2584\u2584\u2588\u2591\u2588\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2588\u2591\u2588\u2580\u2580 "," \u2590\u2591 \u2591\u258C "," \u2590\u2591\u2590\u2591\u258C\u2591\u258C ","\u2590\u2591\u258C\u2590\u2591\u258C\u2590\u2591\u258C"," \u2580 \u2580 \u2580 "," "],"-":[" "," "," "," "," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "," "," "," "," "],".":[" "," "," "," "," "," "," "," "," \u2584 ","\u2590\u2591\u258C"," \u2580 "," "],":":[" "," "," "," "," "," "," "," "," "," "," "," "],"<":[" \u2584 "," \u2590\u2591\u258C"," \u2590\u2591\u258C "," \u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C"," \u2580"," "],">":[" \u2584 ","\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C "," \u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2580 "," "],"^":[" \u2584 "," \u2590\u2591\u258C "," \u2590\u2591\u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C "," \u2580 \u2580 "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," "," "," "," "," "," "]}},gn={name:"Sub-Zero",height:6,chars:{A:[" ______ ","/\\ __ \\ ","\\ \\ __ \\ "," \\ \\_\\ \\_\\ "," \\/_/\\/_/ "," "],B:[" ______ ","/\\ == \\ ","\\ \\ __< "," \\ \\_____\\ "," \\/_____/ "," "],C:[" ______ ","/\\ ___\\ ","\\ \\ \\____ "," \\ \\_____\\ "," \\/_____/ "," "],D:[" _____ ","/\\ __-. ","\\ \\ \\/\\ \\ "," \\ \\____- "," \\/____/ "," "],E:[" ______ ","/\\ ___\\ ","\\ \\ __\\ "," \\ \\_____\\ "," \\/_____/ "," "],F:[" ______ ","/\\ ___\\ ","\\ \\ __\\ "," \\ \\_\\ "," \\/_/ "," "],G:[" ______ ","/\\ ___\\ ","\\ \\ \\__ \\ "," \\ \\_____\\ "," \\/_____/ "," "],H:[" __ __ ","/\\ \\_\\ \\ ","\\ \\ __ \\ "," \\ \\_\\ \\_\\ "," \\/_/\\/_/ "," "],I:[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\_\\ "," \\/_/ "," "],J:[" __ "," /\\ \\ "," _\\_\\ \\ ","/\\_____\\ ","\\/_____/ "," "],K:[" __ __ ","/\\ \\/ / ",'\\ \\ _"-. '," \\ \\_\\ \\_\\ "," \\/_/\\/_/ "," "],L:[" __ ","/\\ \\ ","\\ \\ \\____ "," \\ \\_____\\ "," \\/_____/ "," "],M:[" __ __ ",'/\\ "-./ \\ ',"\\ \\ \\-./\\ \\ "," \\ \\_\\ \\ \\_\\ "," \\/_/ \\/_/ "," "],N:[" __ __ ",'/\\ "-.\\ \\ ',"\\ \\ \\-. \\ ",' \\ \\_\\\\"\\_\\ '," \\/_/ \\/_/ "," "],O:[" ______ ","/\\ __ \\ ","\\ \\ \\/\\ \\ "," \\ \\_____\\ "," \\/_____/ "," "],P:[" ______ ","/\\ == \\ ","\\ \\ _-/ "," \\ \\_\\ "," \\/_/ "," "],Q:[" ______ ","/\\ __ \\ ","\\ \\ \\/\\_\\ "," \\ \\___\\_\\ "," \\/___/_/ "," "],R:[" ______ ","/\\ == \\ ","\\ \\ __< "," \\ \\_\\ \\_\\ "," \\/_/ /_/ "," "],S:[" ______ ","/\\ ___\\ ","\\ \\___ \\ "," \\/\\_____\\ "," \\/_____/ "," "],T:[" ______ ","/\\__ _\\ ","\\/_/\\ \\/ "," \\ \\_\\ "," \\/_/ "," "],U:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\_\\ \\ "," \\ \\_____\\ "," \\/_____/ "," "],V:[" __ __ ","/\\ \\ / / ","\\ \\ \\'/ "," \\ \\__| "," \\/_/ "," "],W:[" __ __ ","/\\ \\ _ \\ \\ ",'\\ \\ \\/ ".\\ \\ ',' \\ \\__/".~\\_\\ '," \\/_/ \\/_/ "," "],X:[" __ __ ","/\\_\\_\\_\\ ","\\/_/\\_\\/_ "," /\\_\\/\\_\\ "," \\/_/\\/_/ "," "],Y:[" __ __ ","/\\ \\_\\ \\ ","\\ \\____ \\ "," \\/\\_____\\ "," \\/_____/ "," "],Z:[" ______ ","/\\___ \\ ","\\/_/ /__ "," /\\_____\\ "," \\/_____/ "," "],0:[" "," "," "," "," "," "],1:[" "," "," "," "," "," "],2:[" "," "," "," "," "," "],3:[" "," "," "," "," "," "],4:[" "," "," "," "," "," "],5:[" "," "," "," "," "," "],6:[" "," "," "," "," "," "],7:[" "," "," "," "," "," "],8:[" "," "," "," "," "," "],9:[" "," "," "," "," "," "]," ":[" "," "," "," "," "," "],"!":[" "," "," "," "," "," "],"-":[" "," "," "," "," "," "],".":[" "," "," "," "," "," "],":":[" "," "," "," "," "," "],_:[" "," "," "," "," "," "]}},_n={name:"Larry 3D",height:9,chars:{A:[" ______ ","/\\ _ \\ ","\\ \\ \\L\\ \\ "," \\ \\ __ \\ "," \\ \\ \\/\\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],B:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\ \\ "," \\ \\ _ <' "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],C:[" ____ ","/\\ _`\\ ","\\ \\ \\/\\_\\ "," \\ \\ \\/_/_ "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],D:[" ____ ","/\\ _`\\ ","\\ \\ \\/\\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\"," \\ \\____/"," \\/___/ "," "," "],E:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\_\\ "," \\ \\ _\\L "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],F:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\_\\"," \\ \\ _\\/"," \\ \\ \\/ "," \\ \\_\\ "," \\/_/ "," "," "],G:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\_\\ "," \\ \\ \\L_L "," \\ \\ \\/, \\"," \\ \\____/"," \\/___/ "," "," "],H:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\_\\ \\ "," \\ \\ _ \\ "," \\ \\ \\ \\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],I:[" ______ ","/\\__ _\\ ","\\/_/\\ \\/ "," \\ \\ \\ "," \\_\\ \\__ "," /\\_____\\"," \\/_____/"," "," "],J:[" _____ ","/\\___ \\ ","\\/__/\\ \\ "," _\\ \\ \\ "," /\\ \\_\\ \\"," \\ \\____/"," \\/___/ "," "," "],K:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\/'/' "," \\ \\ , < "," \\ \\ \\\\`\\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],L:[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\ \\ __ "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],M:[" "," /'\\_/`\\ ","/\\ \\ ","\\ \\ \\__\\ \\ "," \\ \\ \\_/\\ \\ "," \\ \\_\\\\ \\_\\"," \\/_/ \\/_/"," "," "],N:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ `\\\\ \\ "," \\ \\ , ` \\ "," \\ \\ \\`\\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],O:[" _____ ","/\\ __`\\ ","\\ \\ \\/\\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\ "," \\ \\_____\\"," \\/_____/"," "," "],P:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\ \\"," \\ \\ ,__/"," \\ \\ \\/ "," \\ \\_\\ "," \\/_/ "," "," "],Q:[" _____ ","/\\ __`\\ ","\\ \\ \\/\\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\\\'\\\\ "," \\ \\___\\_\\"," \\/__//_/"," "," "],R:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\ \\ "," \\ \\ , / "," \\ \\ \\\\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/ /"," "," "],S:[" ____ ","/\\ _`\\ ","\\ \\,\\L\\_\\ "," \\/_\\__ \\ "," /\\ \\L\\ \\ "," \\ `\\____\\"," \\/_____/"," "," "],T:[" ______ ","/\\__ _\\ ","\\/_/\\ \\/ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\_\\"," \\/_/"," "," "],U:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\ \\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\ "," \\ \\_____\\"," \\/_____/"," "," "],V:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\ \\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_/ \\"," \\ `\\___/"," `\\/__/ "," "," "],W:[" __ __ ","/\\ \\ __/\\ \\ ","\\ \\ \\/\\ \\ \\ \\ "," \\ \\ \\ \\ \\ \\ \\ "," \\ \\ \\_/ \\_\\ \\"," \\ `\\___x___/"," '\\/__//__/ "," "," "],X:[" __ __ ","/\\ \\ /\\ \\ ","\\ `\\`\\/'/' "," `\\/ > < "," \\/'/\\`\\ "," /\\_\\\\ \\_\\"," \\/_/ \\/_/"," "," "],Y:[" __ __ ","/\\ \\ /\\ \\","\\ `\\`\\\\/'/"," `\\ `\\ /' "," `\\ \\ \\ "," \\ \\_\\"," \\/_/"," "," "],Z:[" ________ ","/\\_____ \\ ","\\/____//'/' "," //'/' "," //'/'___ "," /\\_______\\"," \\/_______/"," "," "],0:[" __ "," /'__`\\ ","/\\ \\/\\ \\ ","\\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\"," \\ \\____/"," \\/___/ "," "," "],1:[" _ "," /' \\ ","/\\_, \\ ","\\/_/\\ \\ "," \\ \\ \\ "," \\ \\_\\"," \\/_/"," "," "],2:[" ___ "," /'___`\\ ","/\\_\\ /\\ \\ ","\\/_/// /__ "," // /_\\ \\"," /\\______/"," \\/_____/ "," "," "],3:[" __ "," /'__`\\ ","/\\_\\L\\ \\ ","\\/_/_\\_<_ "," /\\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],4:[" __ __ ","/\\ \\\\ \\ ","\\ \\ \\\\ \\ "," \\ \\ \\\\ \\_ "," \\ \\__ ,__\\"," \\/_/\\_\\_/"," \\/_/ "," "," "],5:[" ______ ","/\\ ___\\ ","\\ \\ \\__/ "," \\ \\___``\\ "," \\/\\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],6:[" ____ "," /'___\\ ","/\\ \\__/ ","\\ \\ _``\\ "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],7:[" ________ ","/\\_____ \\","\\/___//'/'"," /' /' "," /' /' "," /\\_/ "," \\// "," "," "],8:[" __ "," /'_ `\\ ","/\\ \\L\\ \\ ","\\/_> _ <_ "," /\\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],9:[" __ "," /'_ `\\ ","/\\ \\L\\ \\ ","\\ \\___, \\ "," \\/__,/\\ \\ "," \\ \\_\\"," \\/_/"," "," "]," ":[" "," "," "," "," "," "," "," "," "],"!":[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\ \\ "," \\ \\_\\ "," \\/\\_\\"," \\/_/"," "," "],'"':[" __ __ ","/\\ \\\\ \\ ","\\ \\_\\\\_\\ "," \\/_//_/ "," "," "," "," "," "],"#":[" __ __ "," _\\ \\\\ \\__ ","/\\__ _ _\\ ","\\/_L\\ \\\\ \\L_ "," /\\_ _ _\\"," \\/_/\\_\\\\_\\/"," \\/_//_/ "," "," "],$:[" __ ","/\\ \\_ ","\\/'__`\\ ","/\\ \\_\\_\\ ","\\ \\____ \\ "," \\/\\ \\_\\ \\"," \\ `\\_ _/"," `\\_/\\_\\"," \\/_/"],"%":[" __ __ ","/\\_\\ / / ","\\/_/ / / "," / / "," / / __ "," /_/ /\\_\\"," /_/ \\/_/"," "," "],"&":[" ____ ","/| _ \\ ","|/\\ | "," \\// __`\\/\\ "," /| \\L> <_"," | \\_____/\\/"," \\/____/\\/ "," "," "],"'":[" __ ","/\\ \\ ","\\ \\/ "," \\/ "," "," "," "," "," "],"(":[" _ "," /' \\ ","/\\ ,/' ","\\ \\ \\ "," \\ \\ `\\ "," \\ `\\__\\"," `\\/_/ "," "," "],")":[" __ ","/\\ `\\ ","\\`\\ \\ "," `\\`\\ \\ "," `\\/' \\"," /\\__/"," \\/_/ "," "," "],"*":[" __ "," _\\ \\ _ ","/\\_` ' \\ ","\\/_> <_ "," /\\_, ,_\\"," \\/_/\\_\\/"," \\/_/ "," "," "],"+":[" __ "," /\\ \\ "," \\_\\ \\___ ","/\\___ __\\","\\/__/\\ \\_/"," \\ \\_\\ "," \\/_/ "," "," "],",":[" "," "," "," "," __ ","/\\ \\","\\ \\/"," \\/ "," "],"-":[" "," "," "," _______ ","/\\______\\","\\/______/"," "," "," "],".":[" "," "," "," "," __ ","/\\_\\","\\/_/"," "," "],"/":[" __"," / /"," / / "," / / "," / / "," /_/ ","/_/ "," "," "],":":[" "," "," __ ","/\\_\\ ","\\/_/_ "," /\\_\\"," \\/_/"," "," "],";":[" "," "," __ ","/\\_\\ ","\\/_/_ "," /\\ \\"," \\ \\/"," \\/ "," "],"<":[" ___ "," / / "," / / ","/< < ","\\ `\\ `\\ "," `\\ `\\_|"," `\\// "," "," "],"=":[" "," _______ ","/\\______\\ ","\\/______/_ "," /\\______\\"," \\/______/"," "," "," "],">":[" __ ","/\\ `\\ ","\\ `\\ `\\ "," `\\ > >"," / / "," /\\_/ "," \\// "," "," "],"?":[" _ "," /'_`\\ ","/\\_\\/\\`\\","\\/_//'/'"," /\\_\\ "," \\/\\_\\"," \\/_/"," "," "],"@":[" "," __ "," /'_`\\_ "," /'/'_` \\ ","/\\ \\ \\L\\ \\ ","\\ \\ `\\__,_\\"," \\ `\\_____\\"," `\\/_____/"," "],"[":[" ____ ","/\\ _\\ ","\\ \\ \\/ "," \\ \\ \\ "," \\ \\ \\_ "," \\ \\___\\"," \\/___/"," "," "],"\\":[" __ ","/\\ `\\ ","\\`\\ `\\ ","`\\`\\ `\\ "," `\\`\\ `\\ "," `\\`\\__\\"," `\\/__/"," "," "],"]":[" ____ ","/\\__ \\ ","\\/_/\\ \\ "," \\ \\ \\ "," \\_\\ \\ "," /\\___\\"," \\/___/"," "," "],"^":[" __ "," / `\\ ","/\\_/\\_\\ ","\\//\\// "," "," "," "," "," "],_:[" "," "," "," "," "," "," _______ "," /\\______\\"," \\/______/"],"{":[" _ "," /' \\"," \\ ,/'"," <' \\ ","< \\ `\\ "," \\`\\__\\"," \\/__/"," "," "],"|":[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\_\\"," \\/_/"],"}":[" __ ","/\\ `\\ ","\\`\\ \\ "," \\ \\ `>"," //' \\ ","/\\__/' ","\\/_/ "," "," "],"~":[" _ _ "," /' \\/' \\ ","/\\_/\\__// ","\\//\\/__/ "," "," "," "," "," "]}},bn={name:"Colossal",height:11,chars:{A:[" d8888 "," d88888 "," d88P888 "," d88P 888 "," d88P 888 "," d88P 888 "," d8888888888 ","d88P 888 "," "," "," "],B:["888888b. ",'888 "88b ',"888 .88P ","8888888K. ",'888 "Y88b ',"888 888 ","888 d88P ",'8888888P" '," "," "," "],C:[" .d8888b. ","d88P Y88b ","888 888 ","888 ","888 ","888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],D:["8888888b. ",'888 "Y88b ',"888 888 ","888 888 ","888 888 ","888 888 ","888 .d88P ",'8888888P" '," "," "," "],E:["8888888888 ","888 ","888 ","8888888 ","888 ","888 ","888 ","8888888888 "," "," "," "],F:["8888888888 ","888 ","888 ","8888888 ","888 ","888 ","888 ","888 "," "," "," "],G:[" .d8888b. ","d88P Y88b ","888 888 ","888 ","888 88888 ","888 888 ","Y88b d88P ",' "Y8888P88 '," "," "," "],H:["888 888 ","888 888 ","888 888 ","8888888888 ","888 888 ","888 888 ","888 888 ","888 888 "," "," "," "],I:["8888888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 ","8888888 "," "," "," "],J:[" 888888 ",' "88b '," 888 "," 888 "," 888 "," 888 "," 88P "," 888 "," .d88P ",' .d88P" ','888P" '],K:["888 d8P ","888 d8P ","888 d8P ","888d88K ","8888888b ","888 Y88b ","888 Y88b ","888 Y88b "," "," "," "],L:["888 ","888 ","888 ","888 ","888 ","888 ","888 ","88888888 "," "," "," "],M:["888b d888 ","8888b d8888 ","88888b.d88888 ","888Y88888P888 ","888 Y888P 888 ","888 Y8P 888 ",'888 " 888 ',"888 888 "," "," "," "],N:["888b 888 ","8888b 888 ","88888b 888 ","888Y88b 888 ","888 Y88b888 ","888 Y88888 ","888 Y8888 ","888 Y888 "," "," "," "],O:[" .d88888b. ",'d88P" "Y88b ',"888 888 ","888 888 ","888 888 ","888 888 ","Y88b. .d88P ",' "Y88888P" '," "," "," "],P:["8888888b. ","888 Y88b ","888 888 ","888 d88P ",'8888888P" ',"888 ","888 ","888 "," "," "," "],Q:[" .d88888b. ",'d88P" "Y88b ',"888 888 ","888 888 ","888 888 ","888 Y8b 888 ","Y88b.Y8b88P ",' "Y888888" '," Y8b "," "," "],R:["8888888b. ","888 Y88b ","888 888 ","888 d88P ",'8888888P" ',"888 T88b ","888 T88b ","888 T88b "," "," "," "],S:[" .d8888b. ","d88P Y88b ","Y88b. ",' "Y888b. ',' "Y88b. ',' "888 ',"Y88b d88P ",' "Y8888P" '," "," "," "],T:["88888888888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 "," "," "," "],U:["888 888 ","888 888 ","888 888 ","888 888 ","888 888 ","888 888 ","Y88b. .d88P ",' "Y88888P" '," "," "," "],V:["888 888 ","888 888 ","888 888 ","Y88b d88P "," Y88b d88P "," Y88o88P "," Y888P "," Y8P "," "," "," "],W:["888 888 ","888 o 888 ","888 d8b 888 ","888 d888b 888 ","888d88888b888 ","88888P Y88888 ","8888P Y8888 ","888P Y888 "," "," "," "],X:["Y88b d88P "," Y88b d88P "," Y88o88P "," Y888P "," d888b "," d88888b "," d88P Y88b ","d88P Y88b "," "," "," "],Y:["Y88b d88P "," Y88b d88P "," Y88o88P "," Y888P "," 888 "," 888 "," 888 "," 888 "," "," "," "],Z:["8888888888P "," d88P "," d88P "," d88P "," d88P "," d88P "," d88P ","d8888888888 "," "," "," "],0:[" .d8888b. ","d88P Y88b ","888 888 ","888 888 ","888 888 ","888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],1:[" d888 ","d8888 "," 888 "," 888 "," 888 "," 888 "," 888 ","8888888 "," "," "," "],2:[" .d8888b. ","d88P Y88b "," 888 "," .d88P ",' .od888P" ','d88P" ','888" ',"888888888 "," "," "," "],3:[" .d8888b. ","d88P Y88b "," .d88P ",' 8888" ',' "Y8b. ',"888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],4:[" d8888 "," d8P888 "," d8P 888 "," d8P 888 ","d88 888 ","8888888888 "," 888 "," 888 "," "," "," "],5:["888888888 ","888 ","888 ","8888888b. ",' "Y88b '," 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],6:[" .d8888b. ","d88P Y88b ","888 ","888d888b. ",'888P "Y88b ',"888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],7:["8888888888 "," d88P "," d88P "," d88P "," 88888888 "," d88P "," d88P ","d88P "," "," "," "],8:[" .d8888b. ","d88P Y88b ","Y88b. d88P ",' "Y88888" ','.d8P""Y8b. ',"888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],9:[" .d8888b. ","d88P Y88b ","888 888 ","Y88b. d888 ",' "Y888P888 '," 888 ","Y88b d88P ",' "Y8888P" '," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "],"!":["888 ","888 ","888 ","888 ","888 ","Y8P ",' " ',"888 "," "," "," "],'"':["88 88 ","8P 8P ",'" " '," "," "," "," "," "," "," "," "],"#":[" 888 888 "," 888 888 ","888888888888 "," 888 888 "," 888 888 ","888888888888 "," 888 888 "," 888 888 "," "," "," "],$:[" 88 "," .d88888b. ",'d88P 88"88b ',"Y88b.88 ",' "Y88888b. ',' 88"88b ',"Y88b 88.88P ",' "Y88888P" '," 88 "," "," "],"%":["d88b d88P ","Y88P d88P "," d88P "," d88P "," d88P "," d88P "," d88P d88b ","d88P Y88P "," "," "," "],"&":[" .d8888b. ",'d88P "88b ',"Y88b. d88P ",' "Y8888P" ',".d88P88K.d88P ",'888" Y888P" ',"Y88b .d8888b ",' "Y8888P" Y88b'," "," "," "],"'":["d8b ","88P ","8P ",'" '," "," "," "," "," "," "," "],"(":[" .d88 ",' d88P" ',"d88P ","888 ","888 ","Y88b "," Y88b. ",' "Y88 '," "," "," "],")":["88b. ",'"Y88b '," Y88b "," 888 "," 888 "," d88P ",".d88P ",'88P" '," "," "," "],"*":[" "," o "," d8b "," d888b ",'"Y888888888P"',' "Y88888P" ',' d88P"Y88b ',' dP" "Yb '," "," "," "],"+":[" "," "," "," 888 ","8888888 "," 888 "," "," "," "," "," "],",":[" "," "," "," "," "," ","d8b ","88P ","8P ",'" '," "],"-":[" "," "," "," "," ","888888 "," "," "," "," "," "],".":[" "," "," "," "," "," ","d8b ","Y8P "," "," "," "],"/":[" d88P "," d88P "," d88P "," d88P "," d88P "," d88P "," d88P ","d88P "," "," "," "],":":[" "," "," ","d8b ","Y8P "," ","d8b ","Y8P "," "," "," "],";":[" "," "," ","d8b ","Y8P "," ","d8b ","88P ","8P ",'" '," "],"<":[" d88P "," d88P "," d88P ","d88P ","Y88b "," Y88b "," Y88b "," Y88b "," "," "," "],"=":[" "," "," ","888888 "," ","888888 "," "," "," "," "," "],">":["Y88b "," Y88b "," Y88b "," Y88b "," d88P "," d88P "," d88P ","d88P "," "," "," "],"?":[" .d8888b. ","d88P Y88b "," .d88P ",' .d88P" ',' 888" '," 888 "," "," 888 "," "," "," "],"@":[" .d8888888b. ",'d88P" "Y88b ',"888 d8b 888 ","888 888 888 ","888 888bd88P ",'888 Y8888P" ',"Y88b. .d8 ",' "Y88888888P" '," "," "," "],"[":["8888888 ","888 ","888 ","888 ","888 ","888 ","888 ","8888888 "," "," "," "],"\\":["Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," "," "," "],"]":["8888888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 ","8888888 "," "," "," "],"^":[" o "," d8b "," d888b ",' d8P"Y8b '," "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," ","88888888 "," "," "," "],"{":[" .d888 ",' d88P" '," 888 ",".888 ","888( ",'"888 '," 888 "," Y88b. ",' "Y888 '," "," "],"|":[" 888 "," 888 "," 888 "," 888 "," "," 888 "," 888 "," 888 "," 888 "," "," "],"}":["888b. ",' "Y88b '," 888 "," 888. "," )888 ",' 888" '," 888 "," .d88P ",'888P" '," "," "],"~":[" "," "," d888b d88 ","d888888888P ","88P Y888P "," "," "," "," "," "," "]}},yn={name:"Isometric1",height:11,chars:{A:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/__\\:\\/:/ /"," \\::/ / "," /:/ / "," /:/ / "," \\/__/ "],B:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\__\\ "," /:/\\:\\ \\:|__|"," \\:\\~\\:\\/:/ /"," \\:\\ \\::/ / "," \\:\\/:/ / "," \\::/__/ "," ~~ "],C:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\ \\ "," /:/__/ \\:\\__\\"," \\:\\ \\ \\/__/"," \\:\\ \\ "," \\:\\ \\ "," \\:\\__\\ "," \\/__/ "],D:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\__\\ "," /:/__/ \\:|__|"," \\:\\ \\ /:/ /"," \\:\\ /:/ / "," \\:\\/:/ / "," \\::/__/ "," ~~ "],E:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\:\\~\\:\\ \\/__/"," \\:\\ \\:\\__\\ "," \\:\\ \\/__/ "," \\:\\__\\ "," \\/__/ "],F:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/__\\:\\ \\/__/"," \\:\\__\\ "," \\/__/ "," "," "],G:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\ \\ "," /:/__/_\\:\\__\\"," \\:\\ /\\ \\/__/"," \\:\\ \\:\\__\\ "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],H:[" ___ "," /\\__\\ "," /:/ / "," /:/__/ "," /::\\ \\ ___ "," /:/\\:\\ /\\__\\"," \\/__\\:\\/:/ /"," \\::/ / "," /:/ / "," /:/ / "," \\/__/ "],I:[" "," ___ "," /\\ \\ "," \\:\\ \\ "," /::\\__\\"," __/:/\\/__/"," /\\/:/ / "," \\::/__/ "," \\:\\__\\ "," \\/__/ "," "],J:[" ___ "," /\\ \\ "," \\:\\ \\ "," ___ /::\\__\\"," /\\ /:/\\/__/"," \\:\\/:/ / "," \\::/ / "," \\/__/ "," "," "," "],K:[" ___ "," /\\__\\ "," /:/ / "," /:/__/ "," /::\\__\\____ "," /:/\\:::::\\__\\"," \\/_|:|~~|~ "," |:| | "," |:| | "," |:| | "," \\|__| "],L:[" ___ "," /\\__\\"," /:/ /"," /:/ / "," /:/ / "," /:/__/ "," \\:\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," \\:\\__\\"," \\/__/"],M:[" ___ "," /\\__\\ "," /::| | "," /:|:| | "," /:/|:|__|__ "," /:/ |::::\\__\\"," \\/__/~~/:/ /"," /:/ / "," /:/ / "," /:/ / "," \\/__/ "],N:[" ___ "," /\\__\\ "," /::| | "," /:|:| | "," /:/|:| |__ "," /:/ |:| /\\__\\"," \\/__|:|/:/ /"," |:/:/ / "," |::/ / "," /:/ / "," \\/__/ "],O:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\ \\ "," /:/__/ \\:\\__\\"," \\:\\ \\ /:/ /"," \\:\\ /:/ / "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],P:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/__\\:\\/:/ /"," \\::/ / "," \\/__/ "," "," "],Q:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," \\:\\~\\:\\ \\ "," \\:\\ \\:\\__\\"," \\:\\/:/ /"," \\::/ / "," /:/ / "," /:/ / "," \\/__/ "],R:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/_|::\\/:/ /"," |:|::/ / "," |:|\\/__/ "," |:| | "," \\|__| "],S:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\ \\ \\ "," _\\:\\~\\ \\ \\ "," /\\ \\:\\ \\ \\__\\"," \\:\\ \\:\\ \\/__/"," \\:\\ \\:\\__\\ "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],T:[" ___ "," /\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," /::\\ \\ "," /:/\\:\\__\\"," /:/ \\/__/"," /:/ / "," \\/__/ "," "," "],U:[" ___ "," /\\__\\ "," /:/ / "," /:/ / "," /:/ / ___ "," /:/__/ /\\__\\"," \\:\\ \\ /:/ /"," \\:\\ /:/ / "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],V:[" ___ "," /\\__\\ "," /:/ / "," /:/ / "," /:/__/ ___ "," |:| | /\\__\\"," |:| |/:/ /"," |:|__/:/ / "," \\::::/__/ "," ~~~~ "," "],W:[" ___ "," /\\__\\ "," /:/ _/_ "," /:/ /\\__\\ "," /:/ /:/ _/_ "," /:/_/:/ /\\__\\"," \\:\\/:/ /:/ /"," \\::/_/:/ / "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],X:[" ___ "," |\\__\\ "," |:| | "," |:| | "," |:|__|__ "," ____/::::\\__\\"," \\::::/~~/~ "," ~~|:|~~| "," |:| | "," |:| | "," \\|__| "],Y:[" ___ "," |\\__\\ "," |:| | "," |:| | "," |:|__|__ "," /::::\\__\\"," /:/~~/~ "," /:/ / "," \\/__/ "," "," "],Z:[" ___ "," /\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," _______\\:\\__\\"," \\::::::::/__/"," \\:\\~~\\~~ "," \\:\\ \\ "," \\:\\__\\ "," \\/__/ "],0:[" "," "," "," "," "," "," "," "," "," "," "],1:[" "," "," "," "," "," "," "," "," "," "," "],2:[" "," "," "," "," "," "," "," "," "," "," "],3:[" "," "," "," "," "," "," "," "," "," "," "],4:[" "," "," "," "," "," "," "," "," "," "," "],5:[" "," "," "," "," "," "," "," "," "," "," "],6:[" "," "," "," "," "," "," "," "," "," "," "],7:[" "," "," "," "," "," "," "," "," "," "," "],8:[" "," "," "," "," "," "," "," "," "," "," "],9:[" "," "," "," "," "," "," "," "," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "],"!":[" "," "," "," "," "," "," "," "," "," "," "],"-":[" "," "," "," "," "," "," "," "," "," "," "],".":[" "," "," "," "," "," "," "," "," "," "," "],":":[" "," "," "," "," "," "," "," "," "," "," "],"[":[" ___ "," /\\ \\ "," /::\\ \\ "," /::::\\ \\ "," /::::::\\ \\ "," /:::LS:::\\__\\"," \\::1994::/ /"," \\::::::/ / "," \\::::/ / "," \\::/ / "," \\/__/ "],_:[" "," "," "," "," "," "," "," "," "," "," "]}},pt={"DOS Rebel":dn,Ghost:fn,Bloody:mn,Electronic:pn,"Sub-Zero":gn,"Larry 3D":_n,Colossal:bn,Isometric1:yn};var xn={name:"ANSI Shadow",height:6,chars:{A:[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],B:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u255A\u2550\u2550\u2550\u2550\u2550\u255D "],C:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D"],D:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u255A\u2550\u2550\u2550\u2550\u2550\u255D "],E:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u255D ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],F:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u255D ","\u2588\u2588\u2551 ","\u255A\u2550\u255D "],G:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D ","\u2588\u2588\u2551 \u2588\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],H:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],I:["\u2588\u2588\u2557","\u2588\u2588\u2551","\u2588\u2588\u2551","\u2588\u2588\u2551","\u2588\u2588\u2551","\u255A\u2550\u255D"],J:[" \u2588\u2588\u2557"," \u2588\u2588\u2551"," \u2588\u2588\u2551","\u2588\u2588 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],K:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2554\u255D","\u2588\u2588\u2588\u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u2550\u2588\u2588\u2557 ","\u2588\u2588\u2551 \u2588\u2588\u2557","\u255A\u2550\u255D \u255A\u2550\u255D"],L:["\u2588\u2588\u2557 ","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],M:["\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551","\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551","\u2588\u2588\u2551\u255A\u2588\u2588\u2554\u255D\u2588\u2588\u2551","\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],N:["\u2588\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551","\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551","\u2588\u2588\u2551\u255A\u2588\u2588\u2557\u2588\u2588\u2551","\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D"],O:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],P:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2550\u255D ","\u2588\u2588\u2551 ","\u255A\u2550\u255D "],Q:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551\u2584\u2584 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2580\u2580\u2550\u255D "],R:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],S:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],T:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255D"," \u2588\u2588\u2551 "," \u2588\u2588\u2551 "," \u2588\u2588\u2551 "," \u255A\u2550\u255D "],U:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],V:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2557 \u2588\u2588\u2554\u255D"," \u255A\u2588\u2588\u2588\u2588\u2554\u255D "," \u255A\u2550\u2550\u2550\u255D "],W:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2557 \u2588\u2588\u2551","\u2588\u2588\u2551\u2588\u2588\u2588\u2557\u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2554\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u255D\u255A\u2550\u2550\u255D "],X:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u255A\u2588\u2588\u2557\u2588\u2588\u2554\u255D"," \u255A\u2588\u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u2588\u2588\u2557 ","\u2588\u2588\u2554\u255D \u2588\u2588\u2557","\u255A\u2550\u255D \u255A\u2550\u255D"],Y:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u255A\u2588\u2588\u2557 \u2588\u2588\u2554\u255D"," \u255A\u2588\u2588\u2588\u2588\u2554\u255D "," \u255A\u2588\u2588\u2554\u255D "," \u2588\u2588\u2551 "," \u255A\u2550\u255D "],Z:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2588\u2588\u2588\u2554\u255D"," \u2588\u2588\u2588\u2554\u255D "," \u2588\u2588\u2588\u2554\u255D ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],0:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],1:[" \u2588\u2588\u2557","\u2588\u2588\u2588\u2551","\u255A\u2588\u2588\u2551"," \u2588\u2588\u2551"," \u2588\u2588\u2551"," \u255A\u2550\u255D"],2:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2557"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2550\u255D ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],3:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2557"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u255A\u2550\u2550\u2550\u2550\u2550\u255D "],4:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551"," \u2588\u2588\u2551"," \u255A\u2550\u255D"],5:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],6:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],7:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551"," \u2588\u2588\u2554\u255D"," \u2588\u2588\u2554\u255D "," \u2588\u2588\u2551 "," \u255A\u2550\u255D "],8:[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],9:[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2551"," \u255A\u2550\u2550\u2550\u2588\u2588\u2551"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "]," ":[" "," "," "," "," "," "],".":[" "," "," "," ","\u2588\u2588\u2557","\u255A\u2550\u255D"],"!":["\u2588\u2588\u2557","\u2588\u2588\u2551","\u2588\u2588\u2551","\u255A\u2550\u255D","\u2588\u2588\u2557","\u255A\u2550\u255D"],"-":[" "," ","\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u255D"," "," "],_:[" "," "," "," ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],":":[" ","\u2588\u2588\u2557","\u255A\u2550\u255D","\u2588\u2588\u2557","\u255A\u2550\u255D"," "],"'":["\u2588\u2588\u2557","\u255A\u2588\u2551"," \u255A\u255D"," "," "," "],",":[" "," "," "," ","\u2584\u2588\u2557","\u255A\u2550\u255D"],"/":[" \u2588\u2588\u2557"," \u2588\u2588\u2554\u255D"," \u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u255D ","\u255A\u2550\u255D "],"?":["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2557"," \u2584\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2588\u2551 "," \u2588\u2588\u2588\u2588\u2551 "," \u255A\u2550\u2550\u2550\u255D "],"+":[" "," \u2588\u2588\u2557 ","\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2588\u2588\u2554\u2550\u255D"," \u255A\u2550\u255D "," "],"=":[" ","\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u255D"," "],"@":[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2551","\u2588\u2588\u2554\u2550\u2550\u2550\u255D\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],"#":[" \u2588\u2588\u2557\u2588\u2588\u2557 ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u255A\u2588\u2588\u2554\u2588\u2588\u2554\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u255A\u2588\u2588\u2554\u2588\u2588\u2554\u255D"," \u255A\u2550\u255D\u255A\u2550\u255D "],"&":[" \u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2588\u2588\u2557 ","\u255A\u2588\u2588\u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],"(":[" \u2588\u2588\u2557","\u2588\u2588\u2554\u255D","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u255A\u2588\u2588\u2557"," \u255A\u2550\u255D"],")":["\u2588\u2588\u2557 ","\u255A\u2588\u2588\u2557"," \u2588\u2588\u2551"," \u2588\u2588\u2551","\u2588\u2588\u2554\u255D","\u255A\u2550\u255D "],"*":[" ","\u2584\u2588\u2557\u2588\u2584 ","\u255A\u2588\u2588\u2588\u2554\u255D","\u2584\u2588\u2588\u2588\u2584\u2557","\u255A\u2588\u2554\u255D\u2588\u255D"," "],"%":["\u2588\u2588\u2557\u2588\u2588\u2557 ","\u255A\u2550\u255D\u2588\u2588\u2554\u255D"," \u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u255D\u2588\u2588\u2557","\u255A\u2550\u255D\u255A\u2550\u255D "]}},vn={name:"Block",height:4,chars:{A:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2588\u2588 ","\u2588 \u2588 "],B:["\u2588\u2588\u2584 ","\u2588\u2584\u2588 ","\u2588 \u2588 ","\u2588\u2588\u2580 "],C:["\u2584\u2588\u2588 ","\u2588 ","\u2588 ","\u2580\u2588\u2588 "],D:["\u2588\u2588\u2584 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2588\u2588\u2580 "],E:["\u2588\u2588\u2588 ","\u2588\u2584 ","\u2588\u2580 ","\u2588\u2588\u2588 "],F:["\u2588\u2588\u2588 ","\u2588\u2584 ","\u2588 ","\u2588 "],G:["\u2584\u2588\u2588 ","\u2588 ","\u2588\u2584\u2588 ","\u2580\u2588\u2588 "],H:["\u2588 \u2588 ","\u2588\u2588\u2588 ","\u2588 \u2588 ","\u2588 \u2588 "],I:["\u2588\u2588\u2588 "," \u2588 "," \u2588 ","\u2588\u2588\u2588 "],J:[" \u2588\u2588 "," \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],K:["\u2588\u2584\u2588 ","\u2588\u2588 ","\u2588\u2580\u2588 ","\u2588 \u2588 "],L:["\u2588 ","\u2588 ","\u2588 ","\u2588\u2588\u2588 "],M:["\u2588\u2584\u2584\u2588 ","\u2588\u2580\u2580\u2588 ","\u2588 \u2588 ","\u2588 \u2588 "],N:["\u2588\u2584 \u2588 ","\u2588\u2580\u2588\u2588 ","\u2588 \u2580\u2588 ","\u2588 \u2588 "],O:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],P:["\u2588\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2588\u2580 ","\u2588 "],Q:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2584\u2588 ","\u2580 \u2580\u2588"],R:["\u2588\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2588\u2580 ","\u2588 \u2588 "],S:["\u2584\u2588\u2588 ","\u2588\u2584 "," \u2580\u2588 ","\u2588\u2588\u2580 "],T:["\u2588\u2588\u2588\u2588 "," \u2588\u2588 "," \u2588\u2588 "," \u2588\u2588 "],U:["\u2588 \u2588 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],V:["\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2584\u2584\u2580 "," \u2580\u2580 "],W:["\u2588 \u2588 ","\u2588 \u2588 ","\u2588\u2584\u2584\u2588 ","\u2580 \u2580 "],X:["\u2588 \u2588 ","\u2580\u2588\u2580 ","\u2584\u2588\u2584 ","\u2588 \u2588 "],Y:["\u2588 \u2588 ","\u2580\u2588\u2580 "," \u2588 "," \u2588 "],Z:["\u2588\u2588\u2588 "," \u2584\u2588 ","\u2588\u2580 ","\u2588\u2588\u2588 "],0:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],1:[" \u2588 ","\u2588\u2588 "," \u2588 ","\u2588\u2588\u2588 "],2:["\u2584\u2588\u2584 "," \u2584\u2588 ","\u2588\u2580 ","\u2588\u2588\u2588 "],3:["\u2588\u2588\u2584 "," \u2584\u2588 "," \u2580\u2588 ","\u2588\u2588\u2580 "],4:["\u2588 \u2588 ","\u2588\u2588\u2588 "," \u2588 "," \u2588 "],5:["\u2588\u2588\u2588 ","\u2588\u2584 "," \u2580\u2588 ","\u2588\u2588\u2580 "],6:["\u2584\u2588\u2588 ","\u2588\u2584 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],7:["\u2588\u2588\u2588 "," \u2588 "," \u2588 ","\u2588 "],8:["\u2584\u2588\u2584 ","\u2580\u2588\u2580 ","\u2584\u2588\u2584 ","\u2580\u2588\u2580 "],9:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2580\u2588\u2588 "," \u2584\u2588 "]," ":[" "," "," "," "],".":[" "," "," ","\u2580 "],"!":["\u2588 ","\u2588 "," ","\u2580 "],"-":[" ","\u2584\u2584\u2584 "," "," "],":":[" ","\u2580 "," ","\u2580 "],_:[" "," "," ","\u2584\u2584\u2584 "]}},wn={name:"Slant",height:5,chars:{A:[" ___ "," / | "," / /| | ","/ ___ | ","/_/ |_| "],B:[" ___ "," / _ ) "," / _ | ","/ /_) | ","\\____/ "],C:[" _____ "," / ___/ ","/ / ","\\ \\___ "," \\____/ "],D:[" ___ "," / _ \\ "," / // / ","/ /\\_/ ","\\___/ "],E:[" ____ "," / __/ "," / _/ ","/___/ "," "],F:[" ____ "," / __/ "," / _/ ","/_/ "," "],G:[" _____ "," / ___/ ","/ (_ / ","\\___/ "," "],H:[" __ __ "," / // / "," / _ / ","/_//_/ "," "],I:[" __ "," / / "," / / ","/_/ "," "],J:[" __ "," __ / / ","/ /_/ / ","\\____/ "," "],K:[" __ __ "," / //_/ "," / ,< ","/_/|_| "," "],L:[" __ "," / / "," / /__ ","/____/ "," "],M:[" __ __ "," / |/ | "," / /|_/ / ","/_/ /_/ "," "],N:[" _ __ "," / |/ / "," / / ","/_/|_/ "," "],O:[" ____ "," / __ \\ ","/ /_/ / ","\\____/ "," "],P:[" ___ "," / _ \\ "," / ___/ ","/_/ "," "],Q:[" ____ "," / __ \\ ","/ /_/ / ","\\___\\_\\ "," "],R:[" ___ "," / _ \\ "," / , _/ ","/_/|_| "," "],S:[" ____ "," / __/ "," \\__ \\ ","/____/ "," "],T:[" ______ ","/_ __/ "," / / ","/_/ "," "],U:[" __ __ "," / / / / ","/ /_/ / ","\\____/ "," "],V:[" _ __ ","| | / / ","| |/ / ","|___/ "," "],W:[" _ __ ","| | /| / / ","| |/ |/ / ","|__/|__/ "," "],X:[" _ __ "," | |/ / "," _> < ","/_/|_| "," "],Y:["__ __ ","\\ \\ / / "," \\_ / "," /_/ "," "],Z:[" ____ ","/_ / "," / /_ ","/___/ "," "]," ":[" "," "," "," "," "],0:[" __ ","/ /\\ ","\\/_/ "," "," "],1:[" _ ","/ | ","| | ","|_| "," "],2:[" __ ","|_ | ","/ _/ ","\\__| "," "],3:[" __ ","|_ / "," _|\\ ","|__/ "," "],4:[" _ _ ","| | |","|_ |"," |_|"," "],5:[" __ ","| _| ","\\_ \\ ","|__/ "," "],6:[" __ ","/ _| ","| _ |","\\__/ "," "],7:[" ___ ","|_ / "," / / ","/_/ "," "],8:[" __ ","(_ ) ","/ _ |","\\__/ "," "],9:[" __ ","/ _ \\","\\_, /","/___/"," "],".":[" "," "," _ ","(_) "," "],"!":[" _ ","| | ","|_| ","(_) "," "],"-":[" "," "," _____ "," "," "],":":[" "," _ ","(_) ","(_) "," "],_:[" "," "," "," ______ "," "]}},In={name:"Calvin S",height:4,chars:{A:[" ___ ","| . |","| |","|_|_|"],B:[" ___ ","| . >","| . >","|___>"],C:[" ___ ","| _>","| <_ ","|___>"],D:[" ___ ","| . \\ ","| | | ","|___/ "],E:[" ___ ","| __>","| _> ","|___>"],F:[" ___ ","| __>","| _> ","|_| "],G:[" ___ ","| . >","| . |","|___|"],H:[" _ _ ","| || |","| >< |","|_||_|"],I:[" _ ","| |","| |","|_|"],J:[" _ "," | |","|_| |","|___|"],K:[" _ _ ","| |/ >","| |\\ >","|_| \\_>"],L:[" _ ","| | ","| |_ ","|___| "],M:[" _ _ ","| ' ' |","| . . |","|_|_|_|"],N:[" _ _ ","| \\| |","| . |","|_|\\_|"],O:[" ___ ","| . |","| . |","|___|"],P:[" ___ ","| . >","| _>","|_| "],Q:[" ___ ","| . |","| . |","|_\\_\\"],R:[" ___ ","| . >","| >","|_\\_>"],S:[" ___ ","| __>","<__. |","<___>"],T:[" ___ ","|_ _|"," | | "," |_| "],U:[" _ _ ","| || |","| || |","|____>"],V:[" _ _ ","| || |","\\ \\/ /"," \\__/ "],W:[" _ _ ","| | | |","| |/\\| |","\\_/\\_/ "],X:[" _ _ ","\\ \\/ /"," > < ","/_/\\_\\"],Y:[" _ _ ","\\ \\/ /"," \\ / "," \\/ "],Z:[" ___ ","|_ |"," / / ","|___|"]," ":[" "," "," "," "],0:[" ___ ","| . |","| . |","|___|"],1:[" _ ","| | ","| | ","|_| "],2:[" ___ ","|_ |","| _/|","|___|"],3:[" ___ ","|__ \\ "," __) |","|___/ "],4:[" _ _ ","| | |","|_ |"," |_|"],5:[" ___ ","| __|","|__ |","|___|"],6:[" _ "," / | ","| _ |","|___|"],7:[" ___ ","|_ |"," | |"," |_|"],8:[" ___ ","| _ |","| _ |","|___|"],9:[" ___ ","| _ |","|__ |","|___|"],".":[" "," "," "," ."],"!":[" ! "," ! "," "," ! "],"-":[" "," "," --- "," "],":":[" "," : "," "," : "],_:[" "," "," "," ___ "]}},Cn={name:"Small",height:4,chars:{A:[" "," /\\ ","/--\\"," "],B:[" __ ","|__)","|__)"," "],C:[" __ ","| ","|__ "," "],D:[" __ ","| \\","|_/"," "],E:[" __ ","|_ ","|__"," "],F:[" __ ","|_ ","| "," "],G:[" __ ","/ _ ","\\_|"," "],H:[" ","|__|","| |"," "],I:[" _ ","| |","|_|"," "],J:[" _ "," | ","\\_| "," "],K:[" ","|/ ","|\\ "," "],L:[" ","| ","|__ "," "],M:[" ","|\\/|","| | "," "],N:[" ","|\\ | ","| \\| "," "],O:[" __ ","/ \\","\\__/"," "],P:[" __ ","|__)","| "," "],Q:[" __ ","/ \\","\\_\\/"," "],R:[" __ ","|__)","|\\ "," "],S:[" __ ","(__ "," __)"," "],T:["___ "," | "," | "," "],U:[" ","| |","\\__/"," "],V:[" ","\\ / "," \\/ "," "],W:[" ","\\ /"," \\/\\/ "," "],X:[" ","\\/ ","/\\ "," "],Y:[" ","\\_/ "," | "," "],Z:["___ "," _/ ","/__ "," "]," ":[" "," "," "," "],0:[" _ ","/ \\","\\_/"," "],1:[" "," /|"," |"," "],2:[" _ "," _)","(_ "," "],3:[" _ "," _)"," _)"," "],4:[" ","|_|"," | "," "],5:[" _ ","|_ "," _)"," "],6:[" _ ","|_ ","|_)"," "],7:["__ "," / ","/ "," "],8:[" _ ","(_)","(_)"," "],9:[" _ ","(_|"," _|"," "],".":[" "," ",". "," "],"!":[" ","! ",". "," "],"-":[" "," ","--- "," "],":":[" ",": ",": "," "],_:[" "," "," ","___ "]}},Sn={name:"Ogre",height:5,chars:{A:[" _ "," / \\ ","/ _ \\ ","| |_| |","|_| |_|"],B:[" ___ ","| _ ) ","| _ \\ ","|____/ "," "],C:[" ___ "," / __| ","| (__ "," \\___| "," "],D:[" ___ ","| _ \\ ","| | | ","|___/ "," "],E:[" ___ ","| __| ","| _| ","|___| "," "],F:[" ___ ","| __| ","| _| ","|_| "," "],G:[" ___ "," / __| ","| |___ "," \\____| "," "],H:[" _ _ ","| || | ","| __ | ","|_||_| "," "],I:[" ___ ","|_ _| "," | | ","|___| "," "],J:[" _ "," | | "," | | ","|__/ "," "],K:[" _ _ ","| |/ / ","| ' < ","|_|\\_\\ "," "],L:[" _ ","| | ","| |__ ","|____| "," "],M:[" __ __ ","| \\/ | ","| |\\/| | ","|_| |_| "," "],N:[" _ _ ","| \\ | | ","| .\\| | ","|_|\\_| "," "],O:[" ___ "," / _ \\ ","| |_| |"," \\___/ "," "],P:[" ___ ","| _ \\ ","| _/ ","|_| "," "],Q:[" ___ "," / _ \\ ","| |_| |"," \\__\\_\\"," "],R:[" ___ ","| _ \\ ","| / ","|_\\_\\ "," "],S:[" ___ ","/ __| ","\\__ \\ ","|___/ "," "],T:[" _____ ","|_ _| "," | | "," |_| "," "],U:[" _ _ ","| || | ","| \\/ | "," \\__/ "," "],V:["__ __ ","\\ \\ / / "," \\ V / "," \\_/ "," "],W:["__ __ ","\\ \\ / / "," \\ \\/\\/ / "," \\_/\\_/ "," "],X:["__ __ ","\\ \\/ / "," > < ","/_/\\_\\ "," "],Y:["__ __ ","\\ \\ / / "," \\_ / "," |_| "," "],Z:[" ____ ","|_ / "," / / ","/____| "," "]," ":[" "," "," "," "," "],0:[" __ "," / \\ ","| () |"," \\__/ "," "],1:[" _ ","/ | ","| | ","|_| "," "],2:[" ___ ","|_ ) "," / / ","/___| "," "],3:[" ___ ","|__ / "," |_ \\ ","|___/ "," "],4:[" _ _ ","| | | ","|_ | "," |_| "," "],5:[" ___ ","| __| ","|__ \\ ","|___/ "," "],6:[" __ "," / / ","| _ \\ "," \\__/ "," "],7:[" ____ ","|__ |"," / / "," /_/ "," "],8:[" __ "," / _ \\","| (_) |"," \\___/ "," "],9:[" __ "," / _ \\","| (_) |"," \\__, |"," /_/ "],".":[" "," "," _ ","(_)"," "],"!":[" _ ","| | ","|_| ","(_) "," "],"-":[" "," "," _____ ","|_____|"," "],":":[" "," _ ","(_) ","(_) "," "],_:[" "," "," "," ______ ","|______|"]}},me={"ANSI Shadow":xn,Block:vn,Slant:wn,"Calvin S":In,Small:Cn,Ogre:Sn,...pt},gt="ANSI Shadow";var _t={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",teeLeft:"\u2563",teeRight:"\u2560",teeUp:"\u2569",teeDown:"\u2566",cross:"\u256C"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",teeLeft:"\u252B",teeRight:"\u2523",teeUp:"\u253B",teeDown:"\u2533",cross:"\u254B"},dashed:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2504",vertical:"\u2506",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",teeLeft:"+",teeRight:"+",teeUp:"+",teeDown:"+",cross:"+"},none:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",horizontal:" ",vertical:" ",teeLeft:" ",teeRight:" ",teeUp:" ",teeDown:" ",cross:" "}};function U(r){return _t[r??"rounded"]??_t.rounded}function bt(r,e){let t=r.split(`
5
- `);if(t.length===0)throw new Error(`parseFLF: empty font data for "${e}"`);let n=t[0];if(!n.startsWith("flf2"))throw new Error(`parseFLF: invalid FLF header for "${e}": ${n}`);let o=n.charAt(5),s=n.slice(6).trim().split(/\s+/),i=parseInt(s[0],10),a=parseInt(s[4],10)||0;if(isNaN(i)||i<=0)throw new Error(`parseFLF: invalid height in header for "${e}"`);let u=1+a,f={},d=new Set;for(let m=65;m<=90;m++)d.add(m);for(let m=48;m<=57;m++)d.add(m);d.add(32);let h="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";for(let m of h)d.add(m.charCodeAt(0));let p=u;for(let m=32;m<=126&&!(p+i>t.length);m++){let g=[];for(let _=0;_<i;_++){let x=t[p+_]??"";x.endsWith("@@")?x=x.slice(0,-2):x.endsWith("@")&&(x=x.slice(0,-1)),o&&o!==" "&&(x=x.split(o).join(" ")),g.push(x)}if(p+=i,d.has(m)){let _=String.fromCharCode(m);f[_]=g}}return{name:e,height:i,chars:f}}function le(r){return r.toLowerCase().replace(/[\s_]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function Pn(r){return!Array.isArray(r)&&Array.isArray(r.art)}function Mn(r){if(Array.isArray(r))return!1;let e=r;return e.small!==void 0||e.medium!==void 0||e.large!==void 0||e.art!==void 0||e.author!==void 0||e.source!==void 0}var ze=class{fonts=new Map;scenes=new Map;icons=new Map;patterns=new Map;register(e,t,n,o="custom"){let s=le(t);switch(e){case"font":{this.fonts.has(s)&&process.stderr.write(`[art-registry] warning: font "${s}" overwritten (source: ${o})
6
- `);let i;typeof n=="string"?i=bt(n,s):i=n,this.fonts.set(s,{font:i,source:o,author:void 0});break}case"scene":{this.scenes.has(s)&&process.stderr.write(`[art-registry] warning: scene "${s}" overwritten (source: ${o})
7
- `);let i;if(Array.isArray(n))i={art:n,source:o};else if(Pn(n))i={...n,source:n.source??o};else throw new Error(`Invalid scene data for "${t}"`);this.scenes.set(s,{scene:i,source:o});break}case"icon":{this.icons.has(s)&&process.stderr.write(`[art-registry] warning: icon "${s}" overwritten (source: ${o})
8
- `);let i;if(Array.isArray(n))i=Tn(n,o);else if(Mn(n))i={...n,source:n.source??o};else throw new Error(`Invalid icon data for "${t}"`);this.icons.set(s,{icon:i,source:o});break}case"pattern":{this.patterns.has(s)&&process.stderr.write(`[art-registry] warning: pattern "${s}" overwritten (source: ${o})
9
- `);let i=n;this.patterns.set(s,{pattern:{...i,source:i.source??o},source:o});break}}}get(e,t){let n=le(t),o=this.mapFor(e),s=o.get(n);if(s)return this.unwrapEntry(e,s);if(t.includes("/")){let i=le(t.replace("/","-")),a=o.get(i);if(a)return this.unwrapEntry(e,a)}for(let[i,a]of o)if(i.endsWith(`-${n}`)||i.endsWith(`/${n}`))return this.unwrapEntry(e,a);return null}has(e,t){return this.get(e,t)!==null}list(e){if(e)return Array.from(this.mapFor(e).keys()).sort();let t=new Set;for(let n of this.fonts.keys())t.add(n);for(let n of this.scenes.keys())t.add(n);for(let n of this.icons.keys())t.add(n);for(let n of this.patterns.keys())t.add(n);return Array.from(t).sort()}getInfo(e,t){let n=le(t),s=this.mapFor(e).get(n);if(!s)return null;let i={name:n,type:e,source:""};switch(e){case"font":{let a=s;i.source=a.source,i.author=a.author;break}case"scene":{let a=s;i.source=a.source,i.author=a.scene.author,i.description=a.scene.description;break}case"icon":{let a=s;i.source=a.source,i.author=a.icon.author;break}case"pattern":{let a=s;i.source=a.source,i.author=a.pattern.author;break}}return i}loadPack(e){let t=`pack:${e.name}`;if(e.fonts){for(let[n,o]of Object.entries(e.fonts))if(this.register("font",n,o,t),e.author){let s=le(n),i=this.fonts.get(s);i&&!i.author&&(i.author=e.author)}}if(e.scenes)for(let[n,o]of Object.entries(e.scenes))this.register("scene",n,o,t);if(e.icons)for(let[n,o]of Object.entries(e.icons))this.register("icon",n,o,t);if(e.patterns)for(let[n,o]of Object.entries(e.patterns))this.register("pattern",n,o,t)}clear(){this.fonts.clear(),this.scenes.clear(),this.icons.clear(),this.patterns.clear()}mapFor(e){switch(e){case"font":return this.fonts;case"scene":return this.scenes;case"icon":return this.icons;case"pattern":return this.patterns}}unwrapEntry(e,t){switch(e){case"font":return t.font;case"scene":return t.scene;case"icon":return t.icon;case"pattern":return t.pattern}}};function Tn(r,e){let t=r.length,n={source:e};return t<=4?n.small=r:t<=6?n.medium=r:n.large=r,n}var se=new ze;function He(r,e={},t){let n=e.font??"ANSI Shadow",s=se.get("font",n)??me[n]??me[gt];if(!s)return[r];let i=r.toUpperCase(),a=Array(s.height).fill("");for(let d of i){let h=s.chars[d]??s.chars[" "]??Array(s.height).fill(" "),p=Math.max(0,...h.map(m=>(m??"").length));for(let m=0;m<s.height;m++){let g=h[m]??"";a[m]+=g+" ".repeat(Math.max(0,p-g.length))}}for(a=a.map(d=>d.trimEnd());a.length>0&&a[a.length-1]==="";)a.pop();let u=Math.max(0,...a.map(d=>d.length));a=a.map(d=>d+" ".repeat(Math.max(0,u-d.length)));let f=e.width??t;return f!==void 0&&Math.max(0,...a.map(h=>y(h)))>f?[r]:(e.shadow&&(a=kn(a)),e.border&&e.border!=="none"&&(a=Bn(a,e.border)),a)}function kn(r){let e=[];for(let n=0;n<r.length;n++)e.push(r[n]+" ");let t=Math.max(0,...r.map(n=>y(n)));return e.push(" "+"\u2591".repeat(t)),e}function Bn(r,e){let t=U(e),n=Math.max(0,...r.map(i=>y(i))),o=n+2,s=[];s.push(t.topLeft+t.horizontal.repeat(o)+t.topRight);for(let i of r){let a=i+" ".repeat(Math.max(0,n-y(i)));s.push(t.vertical+" "+a+" "+t.vertical)}return s.push(t.bottomLeft+t.horizontal.repeat(o)+t.bottomRight),s}function Ge(r,e){if(r.length===0)return r;let t=Math.max(0,...r.map(s=>y(s))),n=Math.max(0,Math.floor((e-t)/2)),o=" ".repeat(n);return r.map(s=>{if(y(s)>e){let a=0,u="",f=!1;for(let d of s){if(d==="\x1B"){f=!0,u+=d;continue}if(f){u+=d,d==="m"&&(f=!1);continue}let h=Q(d.codePointAt(0)??0);if(a+h>e)break;u+=d,a+=h}return u+"\x1B[0m"}return o+s})}var En=null;function Ke(r){En=r}async function yt(r,e){for(let t of r){let n=await t(e);if(n&&"redirect"in n)return n}}var xt=!1,vt=new Set,wt=null;var Dn=0,Ve=null;function Ue(r){Ve=r}function pe(r){let e=`state-${Dn++}`,t={...r},n=new Map,o=new Set,s=!1,i=new Map;function a(d,h,p){if(s){i.set(d,{newVal:h,oldVal:p});return}let m=n.get(d);if(m)for(let g of m)g(h,p);for(let g of o)g(d,h);Ve?.()}function u(){let d=new Map(i);i.clear();for(let[h,{newVal:p,oldVal:m}]of d){let g=n.get(h);if(g)for(let _ of g)_(p,m);for(let _ of o)_(h,p)}d.size>0&&Ve?.()}return{_id:e,get(d){if(d===void 0){if(xt&&wt===e)for(let h of Object.keys(t))vt.add(h);return{...t}}return xt&&wt===e&&vt.add(d),t[d]},set(d,h){let p=t[d];p!==h&&(t[d]=h,a(d,h,p))},update(d,h){let p=t[d],m=h(p);p!==m&&(t[d]=m,a(d,m,p))},batch(d){s=!0;try{d()}finally{s=!1,u()}},on(d,h){return d==="*"?(o.add(h),()=>o.delete(h)):(n.has(d)||n.set(d,new Set),n.get(d).add(h),()=>n.get(d)?.delete(h))},keys(){return Object.keys(t)}}}import{readFileSync as jn,existsSync as Wn}from"node:fs";import{resolve as Yn}from"node:path";function Nn(r){let e={};for(let t of r.split(`
10
- `)){let n=t.trim();if(!n||n.startsWith("#"))continue;let o=n.indexOf("=");if(o<0)continue;let s=n.substring(0,o).trim(),i=n.substring(o+1).trim();if(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))i=i.slice(1,-1);else{let a=i.indexOf(" #");a>=0&&(i=i.substring(0,a).trim())}e[s]=i}return e}function ge(r){let e=r??process.cwd(),t=process.env.NODE_ENV??"",n=[".env",".env.local"];t==="production"?n.push(".env.production"):t==="development"&&n.push(".env.development");for(let o of n){let s=Yn(e,o);if(Wn(s))try{let i=jn(s,"utf-8"),a=Nn(i);for(let[u,f]of Object.entries(a))process.env[u]===void 0&&(process.env[u]=f)}catch{}}}function It(r,e){if(e.length===0)return r;if(e.length===1)return r.map(o=>c(e[0])+o+l);let t=Math.max(...r.map(o=>o.length),2),n=$e(e,t);return r.map(o=>{let s="",i=!1;for(let a=0;a<o.length;a++)o[a]===" "?(i&&(s+=l,i=!1),s+=" "):(s+=c(n[a])+o[a],i=!0);return s+l})}function Ct(){let r=!!process.stdout.isTTY,e=process.env,t=e.TERM_PROGRAM??"",n=t==="Apple_Terminal",o=t||e.TERM||"unknown",s="none";e.NO_COLOR!==void 0?s="none":r&&(n?s="256":e.COLORTERM==="truecolor"||e.COLORTERM==="24bit"||t==="iTerm.app"||t==="Hyper"||t==="WezTerm"||t==="WarpTerminal"||e.WT_SESSION!==void 0||e.TERM?.includes("24bit")||e.TERM?.includes("truecolor")?s="truecolor":e.TERM?.includes("256color")?s="256":r&&(s="16"));let i=e.LANG?.includes("UTF-8")||e.LANG?.includes("utf8")||e.LC_ALL?.includes("UTF-8")||t==="iTerm.app"||t==="WezTerm"||e.WT_SESSION!==void 0||process.platform==="darwin";return{colorDepth:s,unicode:!!i,columns:process.stdout.columns||80,rows:process.stdout.rows||24,isTTY:r,terminalName:o,isAppleTerminal:n}}import{EventEmitter as $n}from"node:events";var qe=class extends $n{started=!1;rawModeWas;start(){this.started||(this.started=!0,process.stdin.isTTY&&(this.rawModeWas=process.stdin.isRaw,process.stdin.setRawMode(!0)),process.stdin.resume(),process.stdin.setEncoding("utf-8"),process.stdin.on("data",this.handleData))}stop(){this.started&&(this.started=!1,process.stdin.removeListener("data",this.handleData),process.stdin.isTTY&&this.rawModeWas!==void 0&&process.stdin.setRawMode(this.rawModeWas),process.stdin.pause())}handleData=e=>{for(let t of zn(e))this.emit("keypress",t)}};function zn(r){let e=[];if(r==="\x1B[A")e.push(D("up","",!1,!1,!1,r));else if(r==="\x1B[B")e.push(D("down","",!1,!1,!1,r));else if(r==="\x1B[C")e.push(D("right","",!1,!1,!1,r));else if(r==="\x1B[D")e.push(D("left","",!1,!1,!1,r));else if(r==="\r"||r===`
11
- `)e.push(D("return","",!1,!1,!1,r));else if(r==="\x1B")e.push(D("escape","",!1,!1,!1,r));else if(r==="\x7F"||r==="\b")e.push(D("backspace","",!1,!1,!1,r));else if(r===" ")e.push(D("tab","",!1,!1,!1,r));else if(r==="\x1B[Z")e.push(D("tab","",!1,!1,!0,r));else if(r==="\x1B[3~")e.push(D("delete","",!1,!1,!1,r));else if(r==="\x1B[H"||r==="\x1B[1~"||r==="\x1BOH")e.push(D("home","",!1,!1,!1,r));else if(r==="\x1B[F"||r==="\x1B[4~"||r==="\x1BOF")e.push(D("end","",!1,!1,!1,r));else if(r===" ")e.push(D("space"," ",!1,!1,!1,r));else for(let t=0;t<r.length;t++){let n=r[t],o=n.charCodeAt(0);if(o<=26&&o>0){let s=String.fromCharCode(o+96);e.push(D(s,n,!0,!1,!1,n))}else e.push(D(n,n,!1,!1,!1,n))}return e}function D(r,e,t,n,o,s){return{name:r,char:e,ctrl:t,meta:n,shift:o,sequence:s}}var _e=new qe;import{EventEmitter as Hn}from"node:events";var Je=class extends Hn{_size;constructor(){super(),this._size=this.measure(),process.stdout.on("resize",()=>{this._size=this.measure(),this.emit("resize",this._size)})}get size(){return this._size}get columns(){return this._size.columns}get rows(){return this._size.rows}measure(){return{columns:process.stdout.columns||80,rows:process.stdout.rows||24}}},Qe=new Je;function Xe(){return Qe.size}var Ze=class{listeners=new Map;on(e,t){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(t),()=>this.off(e,t)}off(e,t){this.listeners.get(e)?.delete(t)}emit(e,...t){this.listeners.get(e)?.forEach(n=>{try{n(...t)}catch{}})}once(e,t){let n=(...o)=>{this.off(e,n),t(...o)};return this.on(e,n)}removeAll(e){e?this.listeners.delete(e):this.listeners.clear()}},et=new Ze;var be=class{pages=[];_currentPage="";history=[];get currentPage(){return this._currentPage}get currentIndex(){return this.pages.indexOf(this._currentPage)}get pageCount(){return this.pages.length}registerPages(e){this.pages=[...e]}navigate(e){return this.pages.includes(e)?(this.history.push(this._currentPage),this._currentPage=e,et.emit("navigate",{from:this.history[this.history.length-1],to:e}),!0):!1}navigateByIndex(e){return e<0||e>=this.pages.length?!1:this._currentPage===this.pages[e]?!0:this.navigate(this.pages[e])}back(){if(this.history.length===0)return!1;let e=this.history.pop(),t=this._currentPage;return this._currentPage=e,et.emit("navigate",{from:t,to:e}),!0}home(){return this._currentPage===""||(this.history=[],this._currentPage=""),!0}isHome(){return this._currentPage===""}getPageId(e){return this.pages[e]}getAllPages(){return[...this.pages]}};var ye=class{items=[];_focusIndex=0;get focusedId(){return this.items[this._focusIndex]}get focusIndex(){return this._focusIndex}set focusIndex(e){e>=0&&e<this.items.length&&(this._focusIndex=e)}setItems(e){this.items=[...e],this._focusIndex>=this.items.length&&(this._focusIndex=Math.max(0,this.items.length-1))}focusNext(){if(this.items.length!==0)return this._focusIndex=(this._focusIndex+1)%this.items.length,this.items[this._focusIndex]}focusPrev(){if(this.items.length!==0)return this._focusIndex=(this._focusIndex-1+this.items.length)%this.items.length,this.items[this._focusIndex]}focusFirst(){return this._focusIndex=0,this.items[0]}focusLast(){return this._focusIndex=Math.max(0,this.items.length-1),this.items[this._focusIndex]}isFocused(e){return this.items[this._focusIndex]===e}get count(){return this.items.length}};function St(r,e){return r.name==="q"&&!r.ctrl||r.name==="c"&&r.ctrl?"quit":r.name==="escape"?e?"quit":"back":r.name==="backspace"||r.name==="left"||r.name==="h"&&!r.ctrl?e?null:"back":r.name==="up"||r.name==="k"?"up":r.name==="down"||r.name==="j"?"down":r.name==="right"||r.name==="l"?"right":r.name==="return"?"select":r.char===":"||r.char==="/"?"command":r.name==="tab"?r.shift?"up":"down":r.char==="g"&&!r.shift&&!r.ctrl?"home":r.char==="G"||r.char==="g"&&r.shift?"pageDown":r.char>="1"&&r.char<="9"?`jump${r.char}`:null}var tt=class{animations=new Map;timer=null;fps=30;running=!1;start(){if(this.running)return;this.running=!0;let e=Math.floor(1e3/this.fps);this.timer=setInterval(()=>this.tick(),e)}stop(){this.running=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.animations.clear()}add(e,t,n,o){this.animations.set(e,{id:e,totalFrames:t,onFrame:n,onComplete:o,currentFrame:0}),this.running||this.start()}remove(e){this.animations.delete(e),this.animations.size===0&&this.stop()}tick(){let e=[];for(let[t,n]of this.animations)n.onFrame(n.currentFrame,n.totalFrames,n.currentFrame/this.fps),n.currentFrame++,n.currentFrame>=n.totalFrames&&(e.push(t),n.onComplete?.());for(let t of e)this.animations.delete(t);this.animations.size===0&&this.stop()}get isRunning(){return this.running}get activeCount(){return this.animations.size}},Pt=new tt;var Gn={dots:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],bars:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u2588","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E","\u258F"],braille:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"],circle:["\u25D0","\u25D3","\u25D1","\u25D2"],bounce:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"],line:["-","\\","|","/"]};function xe(r,e){let t=Gn[r];return t[e%t.length]}var ve=class{_mode="navigation";_editingId=null;get mode(){return this._mode}get editingId(){return this._editingId}get isEditing(){return this._mode==="editing"}get isNavigating(){return this._mode==="navigation"}enterEdit(e){this._mode="editing",this._editingId=e}exitEdit(){this._mode="navigation",this._editingId=null}reset(){this._mode="navigation",this._editingId=null}};var we=class{_notifications=[];get current(){return this.prune(),this._notifications[0]??null}get all(){return this.prune(),[...this._notifications]}success(e,t=3e3){this._notifications.push({message:e,type:"success",createdAt:Date.now(),duration:t})}error(e,t=4e3){this._notifications.push({message:e,type:"error",createdAt:Date.now(),duration:t})}info(e,t=3e3){this._notifications.push({message:e,type:"info",createdAt:Date.now(),duration:t})}prune(){let e=Date.now(),t=this._notifications.length;return this._notifications=this._notifications.filter(n=>e-n.createdAt<n.duration),this._notifications.length!==t}clear(){this._notifications=[]}};var Ie=class{states=new Map;refreshTimers=new Map;getState(e){return this.states.get(e)}needsLoad(e){let t=this.states.get(e);return!t||t.status==="loading"}load(e,t,n){this.states.get(e)?.status!=="loading"&&(this.states.set(e,{status:"loading"}),t().then(s=>{this.states.set(e,{status:"loaded",content:s,lastLoadTime:Date.now()}),n()}).catch(s=>{this.states.set(e,{status:"error",error:s instanceof Error?s:new Error(String(s))}),n()}))}setupRefresh(e,t,n,o){this.clearRefresh(e);let s=setInterval(()=>{let i=this.states.get(e);n().then(a=>{this.states.set(e,{status:"loaded",content:a,lastLoadTime:Date.now()}),o()}).catch(a=>{i?.content?this.states.set(e,{...i,lastLoadTime:Date.now()}):this.states.set(e,{status:"error",error:a instanceof Error?a:new Error(String(a))}),o()})},t);this.refreshTimers.set(e,s)}clearRefresh(e){let t=this.refreshTimers.get(e);t&&(clearInterval(t),this.refreshTimers.delete(e))}reload(e,t,n){this.states.delete(e),this.load(e,t,n)}cleanup(){for(let e of this.refreshTimers.values())clearInterval(e);this.refreshTimers.clear()}reset(e){this.states.delete(e),this.clearRefresh(e)}};function Mt(r){let e=r??"";return{value:e,cursorPos:typeof e=="string"?e.length:0,error:null,open:!1,highlightIndex:0,scrollOffset:0}}function nt(r,e,t){let n=[],o=t.theme;for(let s=0;s<r.length;s++){let i=r[s],a=s===e,u=i.icon??"\u25C6",d=` [${`${s+1}`}]`;if(a){let p=Math.max(1,t.width-7-y(d)),m=C(i.label,p),g=c(o.accent)+"\u276F"+l,_=c(o.accent)+b+` ${u} `+l,x=c(o.accent)+b+m+l,v=c(o.muted)+w+d+l;n.push(` ${g}${_}${x}${v}`)}else{let p=Math.max(1,t.width-7-y(d)),m=C(i.label,p),g=c(o.muted)+` ${u} `+l,_=c(o.text)+m+l,x=c(o.subtle)+w+d+l;n.push(` ${g}${_}${x}`)}}return n}function kt(r,e,t){let n=e.width,o=e.theme;return t==="markdown"?Kn(r,n,o):A(r,n).map(s=>mt(s,o.text))}function Kn(r,e,t){let n=[],o=r.split(/\n\n+/);for(let s of o){let i=s.trim();if(!i)continue;let a=i.split(`
12
- `);for(let u of a){let f=u.trim();if(!f)continue;if(f.startsWith("#")){let p=f.match(/^(#+)\s+(.*)/);if(p){let m=p[2];n.push(b+c(t.accent)+m+l);continue}}if(f.match(/^[-*]\s/)){let p=f.replace(/^[-*]\s+/,""),m=rt(p,t),g=Tt(p),_=A(g,e-2);for(let x=0;x<_.length;x++){let v=x===0?"\u2022 ":" ",M=x===0?rt(_[x],t):c(t.text)+_[x]+l;n.push(c(t.text)+v+M+l)}continue}let d=Tt(f),h=A(d,e);for(let p of h)n.push(c(t.text)+rt(p,t)+l)}n.push("")}return n.length>0&&n[n.length-1]===""&&n.pop(),n}function rt(r,e){let t=r;return t=t.replace(/\*\*(.+?)\*\*/g,(n,o)=>b+c(e.accent)+o+l+c(e.text)),t=t.replace(/\*(.+?)\*/g,(n,o)=>J+o+l+c(e.text)),t=t.replace(/`(.+?)`/g,(n,o)=>c(e.warning)+o+l+c(e.text)),t}function Tt(r){return r.replace(/\*\*(.+?)\*\*/g,"$1").replace(/\*(.+?)\*/g,"$1").replace(/`(.+?)`/g,"$1")}function j(r,e){let t=r.border??e.borderStyle??"rounded",n=U(t),o=r.width??e.width,s=r.padding??1,i=Math.max(0,o-2-s*2),a=r.borderColor??e.theme.border,u=[],f=Math.max(0,o-2);if(r.title){let m=` ${r.title} `,g="";r.titleRight&&(g=` ${r.titleRight} `);let _=Math.max(0,f-y(m)-y(g)-1);u.push(c(a)+n.topLeft+n.horizontal+l+c(e.theme.accent)+m+l+c(a)+n.horizontal.repeat(_)+(g?l+c(e.theme.muted)+g+l+c(a):"")+n.topRight+l)}else u.push(c(a)+n.topLeft+n.horizontal.repeat(f)+n.topRight+l);let d=[];for(let m of r.content)d.push(m);let h=r.height?Math.max(0,r.height-2):d.length+(s>0,0),p=Math.max(h,d.length);for(let m=0;m<p;m++){let g=d[m]??"",_=" ".repeat(s);u.push(c(a)+n.vertical+l+_+L(g,i)+_+c(a)+n.vertical+l),r.midSeparatorAfter!==void 0&&m===r.midSeparatorAfter&&u.push(c(a)+n.teeRight+n.horizontal.repeat(f)+n.teeLeft+l)}return u.push(c(a)+n.bottomLeft+n.horizontal.repeat(f)+n.bottomRight+l),u}function Ce(r,e){let t=e.theme,n=Math.max(0,e.width-4),o=[],s=e.focused?"\u25C6":"\u25C7",i=r.title??"";if(r.subtitle){let a=s+" ",u=r.subtitle,f=y(a)+y(i)+1+y(u);if(f>n){let d=Math.max(1,n-y(a)),h=Math.min(y(u),Math.max(4,Math.floor(d/2))),p=C(u,h),m=ce(p),g=Math.max(1,d-1-y(m)),_=C(i,g),x=ce(_),v=y(a)+y(x)+y(m),M=Math.max(1,n-v);o.push(c(t.accent)+s+" "+b+_+l+" ".repeat(M)+c(t.muted)+p+l)}else{let d=Math.max(1,n-f);o.push(c(t.accent)+s+" "+b+i+l+" ".repeat(d)+c(t.muted)+r.subtitle+l)}}else{let a=s+" ";if(y(a)+y(i)>n){let u=Math.max(1,n-y(a)),f=C(i,u);o.push(c(t.accent)+s+" "+b+f+l)}else o.push(c(t.accent)+s+" "+b+i+l)}if(r.body){let a=A(r.body,n);for(let u of a)o.push(c(t.text)+u+l)}if(r.tags&&r.tags.length>0){o.push("");let a="",u="";for(let f=0;f<r.tags.length;f++){let h="["+r.tags[f]+"]",p=c(t.warning)+h+l;y(a)===0?(a=h,u=p):y(a)+1+y(h)<=n?(a+=" "+h,u+=" "+p):(o.push(u),a=h,u=p)}u&&o.push(u)}return j({content:o,width:e.width,border:r.border??e.borderStyle??"rounded",padding:1},e)}function Bt(r,e,t){let n=[],o=e.theme,s=e.width,i=Math.max(0,s-6);for(let a=0;a<r.length;a++){let u=r[a],f=a===0,d=a===r.length-1,h=f?"\u25CF":"\u25CB",p=c(o.accent)+" "+h+" "+l,m=Math.max(0,s-6),g;if(u.subtitle)if((u.title+" \xB7 "+u.subtitle).length>m){let x=m-u.title.length-3;x>0?g=p+c(o.accent)+b+u.title+l+c(o.muted)+" \xB7 "+C(u.subtitle,x)+l:g=p+c(o.accent)+b+C(u.title,m)+l}else g=p+c(o.accent)+b+u.title+l+c(o.muted)+" \xB7 "+u.subtitle+l;else g=p+c(o.accent)+b+C(u.title,m)+l;if(n.push(g),u.period&&n.push(c(o.border)+" \u2502 "+l+c(o.muted)+w+u.period+l),u.description){let _=A(u.description,i);for(let x of _)n.push(c(o.border)+" \u2502 "+l+c(o.text)+x+l)}d||n.push(c(o.border)+" \u2502"+l)}return n}function At(r,e,t,n){let o=t.theme,s=n?.max??100,i=n?.showPercent??!0,a=Number.isFinite(e)?e:0,u=Math.min(100,Math.max(0,a/s*100)),f=i?5:0,d=Math.max(4,Math.floor(t.width*.4)),h=Math.min(y(r)+2,d),p=Math.max(5,t.width-h-f-2),m=Math.round(u/100*p),g=p-m,_;u>=70?_=o.success:u>=40?_=o.warning:_=o.error;let x=y(r)>h-2?C(r,h-2):r,v=c(o.text)+L(x,h)+l,M=c(_)+"\u2588".repeat(m)+l,I=c(o.subtle)+"\u2591".repeat(g)+l,P=i?c(o.muted)+` ${Math.round(u)}%`+l:"";return[v+M+I+P]}function Lt(r,e,t){let n=t.theme,o=[],s=r.length,i=r.map((p,m)=>Math.max(y(p),...e.map(_=>y(_[m]??"")))+2),a=Math.max(s,t.width-s-1),u=i.reduce((p,m)=>p+m,0);if(u>a){for(let m=0;m<i.length;m++)i[m]=Math.max(2,Math.floor(i[m]/u*a));let p=i.reduce((m,g)=>m+g,0);for(;p>a;){let m=0;for(let g=1;g<i.length;g++)i[g]>i[m]&&(m=g);if(i[m]<=2)break;i[m]--,p--}}let f=t.borderStyle??"single",d=U(f);o.push(c(n.border)+d.topLeft+i.map(p=>d.horizontal.repeat(p)).join(d.teeDown)+d.topRight+l);let h=r.map((p,m)=>{let g=" "+p,_=y(g)>i[m]?C(g,i[m]):L(g,i[m]);return c(n.accent)+b+_+l});o.push(c(n.border)+d.vertical+l+h.join(c(n.border)+d.vertical+l)+c(n.border)+d.vertical+l),o.push(c(n.border)+d.teeRight+i.map(p=>d.horizontal.repeat(p)).join(d.cross)+d.teeLeft+l);for(let p of e){let m=p.map((g,_)=>{let x=" "+(g??""),v=y(x)>i[_]?C(x,i[_]):L(x,i[_]);return c(n.text)+v+l});o.push(c(n.border)+d.vertical+l+m.join(c(n.border)+d.vertical+l)+c(n.border)+d.vertical+l)}return o.push(c(n.border)+d.bottomLeft+i.map(p=>d.horizontal.repeat(p)).join(d.teeUp)+d.bottomRight+l),o}function Ft(r,e,t,n){let o=t.theme,s=n?.icon??"\u2192",i=n?.focused??t.focused??!1,a=t.width;if(i){let _=" \u276F "+s+" ",x=" ",v=y(_),M=a-v;if(M<=0)return[c(o.accent)+b+C(_,a)+l];let I=y(r)+y(x)+y(e);if(v+I<=a)return[c(o.accent)+b+_+oe+r+l+c(o.muted)+w+x+e+l];let P=a-v-y(r)-y(x);if(P>=4){let k=C(e,P);return[c(o.accent)+b+_+oe+r+l+c(o.muted)+w+x+k+l]}let B=C(r,M);return[c(o.accent)+b+_+oe+B+l]}let u=" "+s+" ",f=" ",d=y(u),h=a-d;if(h<=0)return[c(o.text)+C(u,a)+l];let p=y(r)+y(f)+y(e);if(d+p<=a)return[c(o.text)+u+r+l+c(o.subtle)+w+f+e+l];let m=a-d-y(r)-y(f);if(m>=4){let _=C(e,m);return[c(o.text)+u+r+l+c(o.subtle)+w+f+_+l]}let g=C(r,h);return[c(o.text)+u+g+l]}function Rt(r,e){let t=r.theme,n=e?.color??t.border,o=r.width;if(e?.style==="label"&&e.label){let i=Math.max(0,o-8),a=e.label;a.length>i&&(a=a.slice(0,Math.max(0,i-1))+"\u2026");let u=` ${a} `,f=Math.max(0,o-u.length-4),d=Math.floor(f/2),h=f-d;return[c(n)+"\u2500\u2500"+"\u2500".repeat(d)+l+c(t.muted)+u+l+c(n)+"\u2500".repeat(h)+"\u2500\u2500"+l]}let s="\u2500";return e?.style==="dashed"?s="\u2504":e?.style==="dotted"?s="\xB7":e?.style==="double"&&(s="\u2550"),[c(n)+s.repeat(o)+l]}function Ot(r=1){return Array(Math.max(0,r)).fill("")}function Et(r,e,t){let n=e.theme,o=t?.style??"border",s=Math.max(0,e.width-6),i=[],a=A(`"${r}"`,s);if(o==="border"){for(let u of a)i.push(c(n.accent)+" \u2502 "+l+J+c(n.text)+u+l);if(t?.attribution){let u="\u2014 "+t.attribution;y(u)>s&&(u=u.substring(0,s-1)+"\u2026");let f=Math.max(0,s-y(u));i.push(c(n.accent)+" \u2502 "+l+c(n.muted)+w+" ".repeat(f)+u+l)}}else if(o==="fancy"){i.push(c(n.accent)+" \u250C"+"\u2500".repeat(s+2)+"\u2510"+l);for(let u of a)i.push(c(n.accent)+" \u2502 "+l+J+c(n.text)+u+" ".repeat(Math.max(0,s-y(u)))+l+c(n.accent)+" \u2502"+l);if(t?.attribution){let u="\u2014 "+t.attribution,f=Math.max(0,s-y(u));i.push(c(n.accent)+" \u2502 "+l+" ".repeat(f)+c(n.muted)+u+l+c(n.accent)+" \u2502"+l)}i.push(c(n.accent)+" \u2514"+"\u2500".repeat(s+2)+"\u2518"+l)}else{for(let u of a)i.push(" "+J+c(n.text)+u+l);t?.attribution&&i.push(" "+c(n.muted)+w+"\u2014 "+t.attribution+l)}return i}function Dt(r,e,t){let n=t?.color??e.theme.warning;return(t?.style??"outline")==="filled"?ae+c(n)+` ${r} `+l:c(n)+`[${r}]`+l}function jt(r,e){let t=e.theme,n=[],o=e.width;n.push("");let s=A(r.title,o);for(let i of s){let a=c(t.accent)+b+i+l;n.push(L(a,o,"center"))}if(n.push(""),r.subtitle){let i=A(r.subtitle,o);for(let a of i){let u=c(t.text)+a+l;n.push(L(u,o,"center"))}n.push("")}if(r.cta){let i=c(t.accent)+b+oe+r.cta.label+l;n.push(L(i,o,"center")),n.push("")}if(r.art){let i=r.art.split(`
13
- `);for(let a of i)n.push(L(c(t.muted)+a+l,o,"center"))}return n.push(""),n}function Wt(r,e,t){let n=e.theme,o=t??"bullet",s={bullet:()=>"\u2022",number:u=>`${u+1}.`,dash:()=>"\u2500",check:()=>"\u2713",arrow:()=>"\u2192"},i=s[o]??s.bullet,a=[];for(let u=0;u<r.length;u++){let d=` ${i(u)} `,h=" ".repeat(d.length),p=Math.max(1,e.width-d.length),m=A(r[u],p);for(let g=0;g<m.length;g++)g===0?a.push(c(n.accent)+d+l+c(n.text)+m[g]+l):a.push(h+c(n.text)+m[g]+l)}return a}function Yt(r,e,t){let n=Math.min(t?.width??Math.min(40,e.width-4),e.width-2),o=Math.floor(n/3),s=e.theme,i=[];i.push(c(s.border)+"\u250C"+"\u2500".repeat(n)+"\u2510"+l);for(let a=0;a<o;a++)if(a===Math.floor(o/2)){let u=`[Image: ${r}]`,f=Math.max(0,n-y(u)),d=Math.floor(f/2),h=f-d;i.push(c(s.border)+"\u2502"+l+" ".repeat(d)+c(s.muted)+u+l+" ".repeat(h)+c(s.border)+"\u2502"+l)}else i.push(c(s.border)+"\u2502"+" ".repeat(n)+"\u2502"+l);return i.push(c(s.border)+"\u2514"+"\u2500".repeat(n)+"\u2518"+l),i}function Nt(r,e,t,n){let o=t.theme,s=t.focused??!1,i=[];for(let a=0;a<r.length;a++){let u=r[a],f=a===e,d=f?"\u25BE":"\u25B8",h=s&&(f||e<0&&a===0),p=Math.max(0,t.width-6),m=C(u.label,p),g=f||h?o.accent:o.text,_=h?"\u276F ":" ";if(i.push(c(g)+b+`${_}${d} ${m}`+l),f){let x=n(u.content,{...t,width:t.width-4,focused:!1});for(let v of x)i.push(" "+v);i.push("")}}return i}function $t(r,e,t,n){let o=t.theme,s=[],i=" ";for(let u=0;u<r.length;u++){let f=r[u];u===e?i+=ae+c(o.accent)+` ${f.label} `+l+" ":i+=c(o.muted)+`[${f.label}]`+l+" "}s.push(i),s.push(c(o.border)+" "+"\u2500".repeat(Math.max(0,t.width-4))+l);let a=r[e];if(a){let u=n(a.content,{...t,width:t.width-4});for(let f of u)s.push(" "+f)}return s}function zt(r,e,t){let n=t?.columns??Math.min(3,Math.max(1,Math.floor(e.width/30))),o=t?.scrollIndex??0,s=e.theme,i=Math.floor((e.width-(n-1)*2)/n);for(;i<20&&n>1;)n--,i=Math.floor((e.width-(n-1)*2)/n);let u=r.slice(o,o+n).map(h=>Ce(h,{...e,width:i})),f=Math.max(0,...u.map(h=>h.length)),d=[];for(let h=0;h<f;h++){let p=u.map(m=>{let g=m[h]??"";return L(g,i)});d.push(p.join(" "))}if(r.length>n){let h=c(s.muted)+w+` \u25C2 ${o+1}-${Math.min(o+n,r.length)} of ${r.length} \u25B8`+l;d.push(L(h,e.width,"center"))}return d}function Ht(r,e,t){let n=t.theme;return[c(n.accent)+b+r+l+c(n.text)+e+l+c(n.muted)+"\u2588"+l]}function Gt(r,e,t){let n=t.theme,o=[],s=!!t.focused,i=e.editing;o.push(c(s?n.accent:n.text)+b+" "+r.label+l);let a=Math.max(0,t.width-4),u,f=e.value;if(f.length===0&&!i?u=c(n.subtle)+w+(r.placeholder??"")+l:r.mask&&f.length>0?u=c(n.text)+"\u25CF".repeat(f.length)+l:u=c(n.text)+f+l,i){let p=Math.min(e.cursorPos,f.length),m;r.mask?m="\u25CF".repeat(f.length):m=f;let g=Math.max(1,a-1),_=0;p>g&&(_=p-g);let x=_+g,v=m.substring(_,x),M=p-_,I=v.substring(0,M),P=M<v.length?v[M]:" ",B=v.substring(M+1);u=c(n.text)+I+c(n.accent)+b+"\u2588"+l+c(n.text)+B+l,M>=v.length&&(u=c(n.text)+v+c(n.accent)+"\u2588"+l)}let d=s?n.accent:n.border,h=j({content:[u],width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:d},t);return o.push(...h),e.error&&o.push(c(n.error)+" \u2717 "+e.error+l),o}function Kt(r,e,t){let n=t.theme,o=[],s=!!t.focused,i=e.editing,a=r.rows??4,u=Math.max(1,t.width-4);o.push(c(s?n.accent:n.text)+b+" "+r.label+l);let f=e.value,d=f.split(`
14
- `),h=[],p=[];for(let I=0;I<d.length;I++)if(d[I].length===0)h.push(""),p.push({origLine:I,origCol:0});else{let P=A(d[I],u);for(let B of P)h.push(B),p.push({origLine:I,origCol:0})}let m=0,g=0;if(i){let I=e.cursorPos;for(let P=0;P<d.length;P++){if(I<=d[P].length){let B=0;for(let k=0;k<h.length;k++)if(p[k].origLine===P){if(I<=h[k].length){m=k,g=I;break}if(I-=h[k].length,I>0&&k+1<h.length&&p[k+1]?.origLine===P)continue;m=k,g=h[k].length;break}break}I-=d[P].length+1}}let _=e.scrollOffset;i&&(m<_?_=m:m>=_+a&&(_=m-a+1)),_=Math.max(0,Math.min(_,Math.max(0,h.length-a)));let x=[];for(let I=0;I<a;I++){let P=_+I;if(P<h.length){let B=h[P];if(i&&P===m){let k=B.substring(0,g),W=B.substring(g);B=c(n.text)+k+c(n.accent)+"\u2588"+l+c(n.text)+W+l}else B=c(n.text)+B+l;if(h.length>a){let k=Math.max(1,Math.floor(a*a/h.length)),W=Math.floor(_*a/h.length);I>=W&&I<W+k}x.push(B)}else x.push("")}f.length===0&&!i&&r.placeholder&&(x[0]=c(n.subtle)+w+r.placeholder+l);let v=s?n.accent:n.border,M=j({content:x,width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:v},t);return o.push(...M),e.error&&o.push(c(n.error)+" \u2717 "+e.error+l),o}function Vt(r,e,t){let n=t.theme,o=[],s=!!t.focused,i=Math.max(1,t.width-4);o.push(c(s?n.accent:n.text)+b+" "+r.label+l);let a=r.options.find(v=>v.value===e.value),u=a?.label??r.placeholder??"Choose an option...",f=a?n.text:n.subtle,d=e.open?"\u25B4":"\u25BE",h=c(n.muted)+d+l,p=Math.max(1,i-2),m=C(u,p),g=y(m),_=Math.max(1,i-g-1),x=c(f)+m+l+" ".repeat(_)+h;if(e.open){let v=[x],M=0;for(let B=0;B<r.options.length;B++){let k=r.options[B],W=B===e.highlightIndex,ke=W?"\u276F ":" ",Be=W?n.accent:n.text,Ae=C(k.label,Math.max(1,i-2));v.push(c(Be)+(W?b:"")+ke+Ae+l)}let I=s?n.accent:n.border,P=j({content:v,width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:I,midSeparatorAfter:M},t);o.push(...P)}else{let v=s?n.accent:n.border,M=j({content:[x],width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:v},t);o.push(...M)}return o}function Ut(r,e,t){let n=t.theme,o=!!t.focused,s=e?"\u2611":"\u2610",i=e||o?n.accent:n.muted,a=o?n.accent:n.text;return[c(i)+(o?b:"")+" "+s+l+c(a)+" "+r.label+l]}function qt(r,e,t){let n=t.theme,o=!!t.focused,s=r.onLabel??"On",i=r.offLabel??"Off",a=o?n.accent:n.text,u,f;return e?(u=c(n.accent)+"\u25CB\u2500\u2500\u2500\u2500\u25CF"+l,f=c(n.accent)+b+" "+s+l):(u=c(n.muted)+"\u25CF\u2500\u2500\u2500\u2500\u25CB"+l,f=c(n.muted)+w+" "+i+l),[c(a)+(o?b:"")+" "+r.label+l+" "+u+f]}function Jt(r,e,t){let n=t.theme,o=[],s=!!t.focused;o.push(c(s?n.accent:n.text)+b+" "+r.label+l);for(let i=0;i<r.options.length;i++){let a=r.options[i],u=a.value===e.value,f=s&&i===e.highlightIndex,d=u?"\u25C9":"\u25CB",h=u||f?n.accent:n.muted,p=f?n.accent:n.text;o.push(c(h)+(f?b:"")+" "+d+l+c(p)+" "+a.label+l)}return o}function Qt(r,e,t){let n=t.theme,o=[],s=!!t.focused,i=e.editing,a=Math.max(1,t.width-4);o.push(c(s?n.accent:n.text)+b+" "+r.label+l);let u=c(s?n.accent:n.muted)+"\u25C2"+l,f=c(s?n.accent:n.muted)+"\u25B8"+l,d;i&&e.textBuffer.length>0?d=c(n.text)+e.textBuffer+c(n.accent)+"\u2588"+l:d=c(n.text)+b+String(e.value)+l;let h=u+" "+d+" "+f,p=s?n.accent:n.border,m=j({content:[h],width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:p},t);return o.push(...m),o}function Xt(r,e){let t=r.toLowerCase(),n=e.toLowerCase(),o=0;for(let s=0;s<n.length&&o<t.length;s++)n[s]===t[o]&&o++;return o===t.length}function Se(r,e,t){if(!e)return r.slice(0,t);let n=[];for(let o of r){let s=Xt(e,o.label),i=o.keywords?.some(u=>Xt(e,u))??!1,a=o.label.toLowerCase().includes(e.toLowerCase());if(s||i){let u=a?2:s?1:0;n.push({label:o.label,value:o.value,score:u})}}return n.sort((o,s)=>s.score-o.score),n.slice(0,t).map(o=>({label:o.label,value:o.value}))}function Zt(r,e,t){let n=t.theme,o=[],s=!!t.focused,i=e.editing,a=Math.max(1,t.width-4),u=r.label??"",f="\u{1F50D}";u&&o.push(c(s?n.accent:n.text)+b+" "+u+l);let d;if(e.query.length===0&&!i)d=c(n.subtle)+w+(r.placeholder??"Search...")+l;else if(i){let x=Math.min(e.cursorPos,e.query.length),v=e.query.substring(0,x),M=e.query.substring(x);d=c(n.text)+v+c(n.accent)+"\u2588"+l+c(n.text)+M+l}else d=c(n.text)+e.query+l;let h=[d],p=r.maxResults??10;if(i||e.query.length>0||s){let x=e.filteredItems;if(x.length===0)h.push(c(n.subtle)+w+"No results"+l);else for(let v=0;v<x.length;v++){let M=x[v],I=v===e.highlightIndex,P=I?"\u276F ":" ",B=I?n.accent:n.text,k=C(M.label,Math.max(1,a-2));h.push(c(B)+(I?b:"")+P+k+l)}}let m=s?n.accent:n.border,g=h.length>1,_=j({content:h,width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:m,midSeparatorAfter:g?0:void 0},t);return o.push(..._),o}function en(r,e,t){let n=e.theme,o=!!e.focused,s=t||r.loading,i=r.style??"secondary",a,u;switch(i){case"primary":a=n.accent,u="\u25C6";break;case"danger":a=n.error,u="\u25C6";break;default:a=n.border,u="";break}let f;if(s){let x=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];f=x[Math.floor(Date.now()/100)%x.length]+" "+r.label}else u?f=u+" "+r.label:f=r.label;let d=y(f),h=2,p=d+h*2,m=U(e.borderStyle??"rounded"),g=[],_=" ";if(o&&i==="primary")g.push(_+c(a)+m.topLeft+m.horizontal.repeat(p)+m.topRight+l),g.push(_+c(a)+m.vertical+l+Ne(a)+c("#000000")+b+" ".repeat(h)+f+" ".repeat(h)+l+c(a)+m.vertical+l),g.push(_+c(a)+m.bottomLeft+m.horizontal.repeat(p)+m.bottomRight+l);else if(o)g.push(_+c(a)+b+m.topLeft+m.horizontal.repeat(p)+m.topRight+l),g.push(_+c(a)+b+m.vertical+l+c(a)+b+" ".repeat(h)+f+" ".repeat(h)+l+c(a)+b+m.vertical+l),g.push(_+c(a)+b+m.bottomLeft+m.horizontal.repeat(p)+m.bottomRight+l);else{let x=i==="danger"?a:n.border,v=i==="primary"?a:n.text;g.push(_+c(x)+m.topLeft+m.horizontal.repeat(p)+m.topRight+l),g.push(_+c(x)+m.vertical+l+c(v)+" ".repeat(h)+f+" ".repeat(h)+l+c(x)+m.vertical+l),g.push(_+c(x)+m.bottomLeft+m.horizontal.repeat(p)+m.bottomRight+l)}return g}function ot(r,e){if(!r.resultMessage)return[];let t=e.theme,n,o;switch(r.resultType){case"success":n="\u2713",o=t.success;break;case"error":n="\u2717",o=t.error;break;case"info":default:n="\u2139",o=t.accent;break}let s=[c(o)+n+" "+r.resultMessage+l];return j({content:s,width:e.width,border:e.borderStyle??"rounded",padding:1,borderColor:o},e)}function tn(r){let e=[];for(let t of r)"id"in t&&t.type!=="form"&&t.type!=="button"&&e.push(t.id);return e}function Pe(r){switch(r.type){case"textInput":case"textArea":return r.defaultValue??"";case"select":case"radioGroup":return r.defaultValue??"";case"checkbox":case"toggle":return r.defaultValue??!1;case"numberInput":return r.defaultValue??0;case"searchInput":return"";default:return}}import{exec as Vn}from"node:child_process";function Me(r){return new Promise((e,t)=>{let n=process.platform,o;n==="darwin"?o=`open "${r}"`:n==="win32"?o=`start "" "${r}"`:o=`xdg-open "${r}"`,Vn(o,s=>{s?t(s):e()})})}function Un(r,e){let t=0,n="",o=!1;for(let s of r){if(s==="\x1B"){o=!0,n+=s;continue}if(o){n+=s,s==="m"&&(o=!1);continue}let i=Q(s.codePointAt(0)??0);if(t+i>e)break;n+=s,t+=i}return n+"\x1B[0m"}var Te=class{site;theme;router;focus;borderStyle;scrollOffset=0;commandMode=!1;commandBuffer="";feedbackMessage="";feedbackTimer=null;accordionState=new Map;tabState=new Map;galleryState=new Map;pageFocusIndex=0;pageFocusItems=[];pageScrollOffset=0;bootComplete=!1;bootFrame=0;bootTimer=null;inputMode=new ve;inputStates=new Map;formResults=new Map;buttonLoading=new Map;notifications=new we;notificationTimer=null;asyncManager=new Ie;resolvedPageContent=new Map;formRegistry=new Map;currentParams={};dynamicCache=new Map;constructor(e){this.site=e.config,this.theme=this.resolveTheme(e.config.theme),this.borderStyle=e.config.borders??"rounded",this.router=new be,this.focus=new ye;let t=e.config.pages.map(o=>o.id);this.router.registerPages(t);let n=e.config.pages.filter(o=>typeof o.title=="string").map(o=>o.id);this.focus.setItems(n)}resolveTheme(e){return e?typeof e=="string"?re[e]??de:e:de}async start(){ge();let e=Ct();if(Ye(e.colorDepth),Ue(()=>this.render()),Ke((t,n)=>{this.navigateToPage(t,n)}),this.site.onInit)try{await this.site.onInit({state:null,navigate:(t,n)=>this.navigateToPage(t,n)})}catch(t){console.error("[terminaltui] onInit error:",t)}this.setupTerminal(),Qe.on("resize",()=>this.render()),_e.on("keypress",t=>this.handleKey(t)),_e.start(),this.notificationTimer=setInterval(()=>{this.notifications.prune()&&this.render()},500),this.site.animations?.boot?this.runBootAnimation():(this.bootComplete=!0,this.render())}setupTerminal(){process.stdout.write("\x1B[?1049h"),process.stdout.write("\x1B[?25l"),process.stdout.write("\x1B[2J"),process.stdout.write("\x1B[H");let e=()=>this.cleanup();process.on("SIGINT",e),process.on("SIGTERM",e),process.on("uncaughtException",t=>{this.cleanup(),console.error(t),process.exit(1)})}cleanup(){_e.stop(),Pt.stop(),this.asyncManager.cleanup(),this.bootTimer&&clearInterval(this.bootTimer),this.feedbackTimer&&clearTimeout(this.feedbackTimer),this.notificationTimer&&clearInterval(this.notificationTimer),process.stdout.write("\x1B[?25h"),process.stdout.write("\x1B[?1049l"),process.stdout.write("\x1B[0m")}async stop(){if(this.site.onExit)try{await this.site.onExit({state:null,navigate:()=>{}})}catch{}if(Ue(null),Ke(null),this.site.animations?.exitMessage){let{columns:e,rows:t}=Xe();process.stdout.write("\x1B[2J\x1B[H");let n=this.site.animations.exitMessage,o=Math.floor(t/2),s=Math.max(0,Math.floor((e-y(n))/2));process.stdout.write(`\x1B[${o};${s}H`),process.stdout.write(c(this.theme.accent)+b+n+l),await new Promise(i=>setTimeout(i,800))}this.cleanup(),process.exit(0)}runBootAnimation(){this.bootComplete=!1,this.bootFrame=0;let e=30;this.bootTimer=setInterval(()=>{this.bootFrame++,this.render(),this.bootFrame>=e&&(this.bootTimer&&clearInterval(this.bootTimer),this.bootTimer=null,this.bootComplete=!0,this.render())},33)}getInputState(e,t){let n=this.inputStates.get(e);return n||(n=Mt(t),this.inputStates.set(e,n)),n}setInputValue(e,t){let n=this.getInputState(e);n.value=t}getFocusedInputBlock(){let e=this.pageFocusItems[this.pageFocusIndex];if(!e||e.kind!=="block")return null;let t=e.block;return["textInput","textArea","select","checkbox","toggle","radioGroup","numberInput","searchInput","button"].includes(t.type)?t:null}getFocusedInputId(){let e=this.getFocusedInputBlock();return e?e.id??null:null}handleKey(e){if(this.commandMode){this.handleCommandMode(e);return}if(this.inputMode.isEditing){this.handleEditMode(e);return}this.handleNavigationMode(e)}handleCommandMode(e){if(e.name==="escape"){this.commandMode=!1,this.commandBuffer="",this.render();return}if(e.name==="return"){this.executeCommand(this.commandBuffer),this.commandMode=!1,this.commandBuffer="",this.render();return}if(e.name==="backspace"){this.commandBuffer=this.commandBuffer.slice(0,-1),this.render();return}if(e.char&&e.char.length===1&&!e.ctrl){this.commandBuffer+=e.char,this.render();return}}isTextEntryType(e){return e==="textInput"||e==="textArea"||e==="searchInput"||e==="numberInput"}isAutoEditKey(e){return!!(e.char&&e.char.length===1&&!e.ctrl&&!["up","down","left","right","escape","return","delete","home","end","tab"].includes(e.name)||e.name==="space"||e.name==="backspace")}handleNavigationMode(e){let t=this.router.isHome();if(!t){let o=this.getFocusedInputBlock();if(o&&this.isTextEntryType(o.type)&&this.isAutoEditKey(e)){let s=o.id;this.inputMode.enterEdit(s),this.getInputState(s,Pe(o)),this.handleEditMode(e),this.render();return}}let n=St(e,t);if(n)switch(n){case"quit":this.stop();break;case"back":this.router.back()&&(this.scrollOffset=0,this.pageFocusIndex=0,this.pageScrollOffset=0,this.pageFocusItems=[],this.inputMode.reset(),this.render());break;case"up":this.router.isHome()?this.focus.focusPrev():this.pageFocusPrev(),this.render();break;case"down":this.router.isHome()?this.focus.focusNext():this.pageFocusNext(),this.render();break;case"select":case"right":if(this.router.isHome()){let o=this.focus.focusedId;o&&(this.router.navigate(o),this.scrollOffset=0,this.enterPage())}else this.handlePageSelect();this.render();break;case"home":this.router.isHome()||(this.pageFocusIndex=0,this.pageScrollOffset=0),this.render();break;case"pageDown":!this.router.isHome()&&this.pageFocusItems.length>0&&(this.pageFocusIndex=this.pageFocusItems.length-1),this.render();break;case"command":this.commandMode=!0,this.commandBuffer="",this.render();break;default:if(n.startsWith("jump")){let o=parseInt(n.replace("jump",""));if(this.router.isHome()){let s=o-1;if(s<this.focus.count){this.focus.focusIndex=s;let i=this.router.getPageId(s);i&&(this.router.navigate(i),this.scrollOffset=0,this.enterPage())}}this.render()}break}}handleEditMode(e){let t=this.getFocusedInputBlock();if(!t){this.inputMode.exitEdit(),this.render();return}switch(t.type){case"textInput":this.handleTextInputKey(t,e);break;case"textArea":this.handleTextAreaKey(t,e);break;case"select":this.handleSelectKey(t,e);break;case"numberInput":this.handleNumberInputKey(t,e);break;case"searchInput":this.handleSearchInputKey(t,e);break;case"radioGroup":this.handleRadioGroupKey(t,e);break;default:e.name==="escape"&&this.inputMode.exitEdit();break}this.render()}handleTextInputKey(e,t){let n=this.getInputState(e.id,e.defaultValue??""),o=n.value,s=n.cursorPos;if(t.name==="escape"){this.validateInput(e),this.inputMode.exitEdit();return}if(t.name==="return"){this.validateInput(e),this.inputMode.exitEdit(),this.pageFocusNext();return}if(t.name==="up"){this.validateInput(e),this.inputMode.exitEdit(),this.pageFocusPrev();return}if(t.name==="down"){this.validateInput(e),this.inputMode.exitEdit(),this.pageFocusNext();return}t.name==="backspace"?s>0&&(o=o.substring(0,s-1)+o.substring(s),s--):t.name==="delete"?s<o.length&&(o=o.substring(0,s)+o.substring(s+1)):t.name==="left"?s>0&&s--:t.name==="right"?s<o.length&&s++:t.name==="home"?s=0:t.name==="end"?s=o.length:t.char&&t.char.length===1&&!t.ctrl&&t.name!=="tab"&&(!e.maxLength||o.length<e.maxLength)&&(o=o.substring(0,s)+t.char+o.substring(s),s++),e.transform&&(o=e.transform(o),s=Math.min(s,o.length));let i=n.value!==o;n.value=o,n.cursorPos=s,n.error=null,i&&e.onChange&&e.onChange(o)}handleTextAreaKey(e,t){let n=this.getInputState(e.id,e.defaultValue??""),o=n.value,s=n.cursorPos;if(t.name==="escape"){this.validateInput(e),this.inputMode.exitEdit();return}if(t.name==="return")(!e.maxLength||o.length<e.maxLength)&&(o=o.substring(0,s)+`
15
- `+o.substring(s),s++);else if(t.name==="backspace")s>0&&(o=o.substring(0,s-1)+o.substring(s),s--);else if(t.name==="delete")s<o.length&&(o=o.substring(0,s)+o.substring(s+1));else if(t.name==="left")s>0&&s--;else if(t.name==="right")s<o.length&&s++;else if(t.name==="up"){let a=o.substring(0,s).split(`
16
- `);if(a.length>1){let u=a[a.length-1].length,f=a[a.length-2],d=Math.min(u,f.length);s=a.slice(0,-1).join(`
17
- `).length-f.length+d,s<0&&(s=0)}}else if(t.name==="down"){let a=o.substring(0,s),u=o.substring(s),f=a.lastIndexOf(`
18
- `)+1,d=s-f,h=u.indexOf(`
19
- `);if(h>=0){let p=u.substring(h+1),m=p.indexOf(`
20
- `),g=m>=0?m:p.length,_=Math.min(d,g);s=s+h+1+_}}else if(t.name==="home")s=o.substring(0,s).lastIndexOf(`
21
- `)+1;else if(t.name==="end"){let u=o.substring(s).indexOf(`
22
- `);s=u>=0?s+u:o.length}else t.char&&t.char.length===1&&!t.ctrl&&t.name!=="tab"&&(!e.maxLength||o.length<e.maxLength)&&(o=o.substring(0,s)+t.char+o.substring(s),s++);let i=n.value!==o;n.value=o,n.cursorPos=s,n.error=null,i&&e.onChange&&e.onChange(o)}handleSelectKey(e,t){let n=this.getInputState(e.id,e.defaultValue??"");if(t.name==="escape"){n.open=!1,this.inputMode.exitEdit();return}if(!n.open){if(t.name==="return"){n.open=!0;let o=e.options.findIndex(s=>s.value===n.value);n.highlightIndex=o>=0?o:0}return}if(t.name==="up")n.highlightIndex=Math.max(0,n.highlightIndex-1);else if(t.name==="down")n.highlightIndex=Math.min(e.options.length-1,n.highlightIndex+1);else if(t.name==="return"){let o=e.options[n.highlightIndex];o&&(n.value=o.value,e.onChange?.(o.value)),n.open=!1,this.inputMode.exitEdit()}}handleNumberInputKey(e,t){let n=this.getInputState(e.id,e.defaultValue??0),o=e.step??1,s=e.min??-1/0,i=e.max??1/0;if(t.name==="escape"){this.inputMode.exitEdit();return}if(t.name==="return"||t.name==="up"||t.name==="down"){this.inputMode.exitEdit(),t.name==="up"&&this.pageFocusPrev(),t.name==="down"&&this.pageFocusNext();return}if(t.name==="left"||t.char==="-")n.value=Math.max(s,n.value-o);else if(t.name==="right"||t.char==="+")n.value=Math.min(i,n.value+o);else if(t.char&&/[0-9]/.test(t.char)){let a=String(n.value)==="0"?t.char:String(n.value)+t.char,u=parseInt(a,10);isNaN(u)||(n.value=Math.max(s,Math.min(i,u)))}else if(t.name==="backspace"){let a=String(n.value).slice(0,-1);n.value=a?Math.max(s,Math.min(i,parseInt(a,10)||0)):0}}handleSearchInputKey(e,t){let n=this.getInputState(e.id,""),o=n.value,s=n.cursorPos;if(t.name==="escape"){this.inputMode.exitEdit();return}if(t.name==="return"){let i=e.maxResults??10,u=Se(e.items,o,i)[n.highlightIndex];u&&this.executeSearchAction(e,u),this.inputMode.exitEdit();return}if(t.name==="up"){n.highlightIndex=Math.max(0,n.highlightIndex-1);return}if(t.name==="down"){let i=e.maxResults??10,a=Se(e.items,o,i);n.highlightIndex=Math.min(a.length-1,n.highlightIndex+1);return}t.name==="backspace"?s>0&&(o=o.substring(0,s-1)+o.substring(s),s--):t.name==="left"?s>0&&s--:t.name==="right"?s<o.length&&s++:t.char&&t.char.length===1&&!t.ctrl&&t.name!=="tab"&&(o=o.substring(0,s)+t.char+o.substring(s),s++),n.value=o,n.cursorPos=s,n.highlightIndex=0}executeSearchAction(e,t){if((e.action??(e.onSelect?"callback":"navigate"))==="callback"&&e.onSelect){e.onSelect(t.value);return}let o=t.value,s=this.site.pages.find(a=>a.id===o);if(s){this.router.navigate(o),this.enterPage(),this.showFeedback(`\u2192 ${s.title}`),this.render();return}if(this.scrollToBlock(o,t.label)){this.showFeedback(t.label),this.render();return}for(let a of this.site.pages){if(a.id===this.router.currentPage)continue;let u=typeof a.content=="function"?this.resolvedPageContent.get(a.id):a.content;if(u&&this.blockExistsInContent(o,t.label,u)){this.router.navigate(a.id),this.enterPage(),this.scrollToBlock(o,t.label),this.showFeedback(`\u2192 ${a.title} \u203A ${t.label}`),this.render();return}}e.onSelect&&e.onSelect(o),this.showFeedback(t.label)}norm(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}scrollToBlock(e,t){let n=e.toLowerCase(),o=this.norm(e),s=t.toLowerCase();for(let i=0;i<this.pageFocusItems.length;i++){let a=this.pageFocusItems[i];if(a.kind==="block"){let u=a.block;if("id"in u&&u.id===e)return this.pageFocusIndex=i,!0;if(u.type==="card"){let f=this.norm(u.title);if(u.title.toLowerCase().includes(n)||f.includes(o)||o.includes(f))return this.pageFocusIndex=i,!0}if(u.type==="link"){let f=this.norm(u.label);if(u.label.toLowerCase().includes(n)||f.includes(o)||o.includes(f))return this.pageFocusIndex=i,!0}if(u.type==="hero"){let f=this.norm(u.title);if(u.title.toLowerCase().includes(n)||f.includes(o)||o.includes(f))return this.pageFocusIndex=i,!0}}if(a.kind==="accordion-item"){let u=a.accordion.items[a.itemIndex].label,f=u.toLowerCase().replace(/[^a-z0-9]/g,""),d=n.replace(/[^a-z0-9]/g,"");if(u.toLowerCase().includes(n)||f.includes(d)||d.includes(f)||u.toLowerCase().startsWith(s.split(" \u2014 ")[0]?.trim().toLowerCase()??"\0")){this.pageFocusIndex=i;let h=a.accordion.items.map(p=>p.label).join(",");return this.accordionState.set(h,a.itemIndex),!0}}if(a.kind==="timeline-item"&&a.timeline.items[a.itemIndex].title.toLowerCase().includes(n))return this.pageFocusIndex=i,!0}return!1}blockExistsInContent(e,t,n){let o=e.toLowerCase(),s=this.norm(e);for(let i of n){if("id"in i&&i.id===e)return!0;if(i.type==="card"){let a=this.norm(i.title);if(i.title.toLowerCase().includes(o)||a.includes(s)||s.includes(a))return!0}if(i.type==="link"){let a=this.norm(i.label);if(i.label.toLowerCase().includes(o)||a.includes(s)||s.includes(a))return!0}if(i.type==="accordion")for(let a of i.items){let u=a.label.toLowerCase().replace(/[^a-z0-9]/g,"");if(a.label.toLowerCase().includes(o)||u.includes(s)||s.includes(u))return!0}if(i.type==="timeline"){for(let a of i.items)if(a.title.toLowerCase().includes(o))return!0}if(i.type==="section"&&this.blockExistsInContent(e,t,i.content)||i.type==="form"&&this.blockExistsInContent(e,t,i.fields))return!0}return!1}handleRadioGroupKey(e,t){let n=this.getInputState(e.id,e.defaultValue??"");if(t.name==="escape"){this.inputMode.exitEdit();return}if(t.name==="up"){n.highlightIndex>0?n.highlightIndex--:(this.inputMode.exitEdit(),this.pageFocusPrev());return}if(t.name==="down"){n.highlightIndex<e.options.length-1?n.highlightIndex++:(this.inputMode.exitEdit(),this.pageFocusNext());return}if(t.name==="return"||t.name==="space"){let o=e.options[n.highlightIndex];o&&(n.value=o.value,e.onChange?.(o.value));return}}validateInput(e){if(e.type==="textInput"){let t=e;if(t.validate){let n=this.getInputState(t.id,t.defaultValue??""),o=t.validate(n.value);return n.error=o,o===null}}else if(e.type==="textArea"){let t=e;if(t.validate){let n=this.getInputState(t.id,t.defaultValue??""),o=t.validate(n.value);return n.error=o,o===null}}return!0}handlePageSelect(){let e=this.pageFocusItems[this.pageFocusIndex];if(!e)return;if(e.kind==="accordion-item"){let o=e.accordion.items.map(i=>i.label).join(","),s=this.accordionState.get(o)??-1;this.accordionState.set(o,s===e.itemIndex?-1:e.itemIndex);return}if(e.kind==="timeline-item")return;let t=e.block;if(t.type==="textInput"||t.type==="textArea"||t.type==="numberInput"||t.type==="searchInput"){let n=t.id;this.inputMode.enterEdit(n),this.getInputState(n,Pe(t));return}if(t.type==="select"){let n=t.id,o=this.getInputState(n,t.defaultValue??"");this.inputMode.enterEdit(n),o.open=!0;let s=t.options.findIndex(i=>i.value===o.value);o.highlightIndex=s>=0?s:0;return}if(t.type==="radioGroup"){let n=t.id,o=this.getInputState(n,t.defaultValue??"");this.inputMode.enterEdit(n);let s=t.options.findIndex(i=>i.value===o.value);o.highlightIndex=s>=0?s:0;return}if(t.type==="checkbox"||t.type==="toggle"){let n=t.id,o=this.getInputState(n,t.defaultValue??!1);o.value=!o.value,t.onChange?.(o.value);return}if(t.type==="button"){this.handleButtonPress(t);return}if(t.type==="link"){this.showFeedback(`Opening ${t.url}...`),Me(t.url).catch(()=>{});return}if(t.type==="card"&&t.url){this.showFeedback(`Opening ${t.url}...`),Me(t.url).catch(()=>{});return}if(t.type==="card"&&t.action){this.handleCardAction(t);return}if(t.type==="tabs"){let n=t.items.map(s=>s.label).join(","),o=this.tabState.get(n)??0;this.tabState.set(n,(o+1)%t.items.length);return}if(t.type==="hero"&&t.cta?.url){this.showFeedback(`Opening ${t.cta.url}...`),Me(t.cta.url).catch(()=>{});return}}handleButtonPress(e){if(e._formId){this.submitForm(e._formId);return}if(e.onPress){let t=e.onPress();if(t&&typeof t.then=="function"){let n=e.label;this.buttonLoading.set(n,!0),this.render(),t.then(o=>{this.buttonLoading.delete(n),this.showActionResult(o),this.render()}).catch(o=>{this.buttonLoading.delete(n),this.notifications.error(o instanceof Error?o.message:String(o)),this.render()})}else t?(this.showActionResult(t),this.render()):this.render()}}showActionResult(e){!e||typeof e!="object"||("success"in e?this.notifications.success(e.success):"error"in e?this.notifications.error(e.error):"info"in e&&this.notifications.info(e.info))}handleCardAction(e){if(!e.action)return;if(e.action.navigate){this.navigateToPage(e.action.navigate,e.action.params);return}if(e.action.confirm&&this.showFeedback("Action triggered"),!e.action.onPress)return;let t=e.action.onPress();t&&typeof t.then=="function"&&t.then(()=>{this.render()}).catch(()=>{this.render()})}navigateToPage(e,t){let n=this.site.pages.find(s=>s.id===e);if(!n)return;let o=[...this.site.middleware??[],...n.middleware??[]];o.length>0?yt(o,{page:e,params:t??{},state:null}).then(s=>{if(s&&"redirect"in s){this.navigateToPage(s.redirect,s.params);return}this.doNavigate(e,t)}).catch(()=>{this.doNavigate(e,t)}):this.doNavigate(e,t)}doNavigate(e,t){let n=this.router.currentPage;this.router.navigate(e),this.currentParams=t??{},this.scrollOffset=0,this.enterPage(),this.site.onNavigate&&this.site.onNavigate(n,e,t),this.render()}async submitForm(e){let t=this.formRegistry.get(e);if(!t)return;let n=tn(t.fields),o=-1;for(let u=0;u<t.fields.length;u++){let f=t.fields[u];this.validateInput(f)||o<0&&(o=u)}if(o>=0){let f=t.fields[o].id;if(f)for(let d=0;d<this.pageFocusItems.length;d++){let h=this.pageFocusItems[d];if(h.kind==="block"&&"id"in h.block&&h.block.id===f){this.pageFocusIndex=d;break}}this.render();return}let s={};for(let u of n){let f=this.inputStates.get(u);s[u]=f?.value??void 0}let i=t.fields.find(u=>u.type==="button"),a=i?i.label:"";a&&this.buttonLoading.set(a,!0),this.render();try{let u=await t.onSubmit(s);a&&this.buttonLoading.delete(a),"success"in u?(this.formResults.set(e,{message:u.success,type:"success"}),this.notifications.success(u.success),t.resetOnSubmit&&this.resetFormFields(t)):"error"in u?(this.formResults.set(e,{message:u.error,type:"error"}),this.notifications.error(u.error)):"info"in u&&(this.formResults.set(e,{message:u.info,type:"info"}),this.notifications.info(u.info))}catch(u){a&&this.buttonLoading.delete(a);let f=u instanceof Error?u.message:"An error occurred";this.formResults.set(e,{message:f,type:"error"}),this.notifications.error(f)}this.render(),setTimeout(()=>{this.formResults.delete(e),this.render()},5e3)}resetFormFields(e){for(let t of e.fields)if("id"in t&&t.type!=="button"){let n=t.id,o=Pe(t),s=this.inputStates.get(n);s&&(s.value=o,s.cursorPos=typeof o=="string"?o.length:0,s.error=null,s.open=!1,s.highlightIndex=0,s.scrollOffset=0)}}resetForm(e){let t=this.formRegistry.get(e);t&&(this.resetFormFields(t),this.render())}clearField(e){let t=this.inputStates.get(e);t&&(t.value="",t.cursorPos=0,t.error=null,this.render())}enterPage(){this.pageFocusIndex=0,this.pageScrollOffset=0,this.pageFocusItems=[],this.inputMode.reset(),this.formRegistry.clear();let e=this.getCurrentPage();if(!e)return;let t=this.site.pages.find(o=>o.id===e.id);if(t&&typeof t.title=="function"){let o=t;this.loadRouteContent(o);return}let n=e.content;if(typeof n=="function"){this.loadAsyncPageContent(e);return}this.initializePageContent(n)}loadRouteContent(e){let t=this.currentParams,n=`route-${e.id}-${JSON.stringify(t)}`,o=async()=>{let s=e.content(t);return s instanceof Promise?await s:s};this.asyncManager.load(n,o,()=>{let s=this.asyncManager.getState(n);if(s?.status==="loaded"&&s.content)this.resolvedPageContent.set(e.id,s.content),this.initializePageContent(s.content);else if(s?.status==="error"&&e.onError){let i=e.onError(s.error,t);this.resolvedPageContent.set(e.id,i),this.initializePageContent(i)}this.render()})}initializePageContent(e){this.pageFocusItems=this.collectFocusItems(e),this.registerForms(e)}registerForms(e){for(let t of e)t.type==="form"?(this.formRegistry.set(t.id,t),this.registerForms(t.fields)):t.type==="section"&&this.registerForms(t.content)}loadAsyncPageContent(e){let t=`page-${e.id}`,n=e.content;this.asyncManager.load(t,n,()=>{let o=this.asyncManager.getState(t);if(o?.status==="loaded"&&o.content)this.resolvedPageContent.set(e.id,o.content),this.initializePageContent(o.content);else if(o?.status==="error"&&e.onError){let s=e.onError(o.error);this.resolvedPageContent.set(e.id,s),this.initializePageContent(s)}this.render()}),e.refreshInterval&&this.asyncManager.setupRefresh(t,e.refreshInterval,n,()=>{let o=this.asyncManager.getState(t);if(o?.status==="loaded"&&o.content){this.resolvedPageContent.set(e.id,o.content);let s=this.pageFocusIndex;this.pageFocusItems=this.collectFocusItems(o.content),this.pageFocusIndex=Math.min(s,Math.max(0,this.pageFocusItems.length-1)),this.registerForms(o.content)}this.render()})}resolvePageTitle(e){let t=this.site.pages.find(n=>n.id===e.id);return t&&typeof t.title=="function"?t.title(this.currentParams):e.title}getPageContent(e){return typeof e.content=="function"?this.resolvedPageContent.get(e.id)??null:e.content}collectFocusItems(e){let t=[];for(let n of e)switch(n.type){case"card":case"link":case"hero":t.push({kind:"block",block:n});break;case"textInput":case"textArea":case"select":case"checkbox":case"toggle":case"radioGroup":case"numberInput":case"searchInput":case"button":t.push({kind:"block",block:n});break;case"accordion":for(let o=0;o<n.items.length;o++)t.push({kind:"accordion-item",accordion:n,itemIndex:o});break;case"timeline":for(let o=0;o<n.items.length;o++)t.push({kind:"timeline-item",timeline:n,itemIndex:o});break;case"tabs":t.push({kind:"block",block:n});break;case"section":t.push(...this.collectFocusItems(n.content));break;case"form":t.push(...this.collectFocusItems(n.fields));break;case"dynamic":{let o=this.resolveDynamic(n);t.push(...this.collectFocusItems(o));break}default:break}return t}pageFocusNext(){this.pageFocusItems.length!==0&&this.pageFocusIndex<this.pageFocusItems.length-1&&this.pageFocusIndex++}pageFocusPrev(){this.pageFocusItems.length!==0&&this.pageFocusIndex>0&&this.pageFocusIndex--}findLinks(e){let t=[];for(let n of e)n.type==="link"?t.push({label:n.label,url:n.url}):n.type==="card"&&n.url?t.push({label:n.title,url:n.url}):n.type==="section"&&t.push(...this.findLinks(n.content));return t}getCurrentPage(){let e=this.site.pages.find(t=>t.id===this.router.currentPage);if(e)return e}showFeedback(e){this.feedbackMessage=e,this.feedbackTimer&&clearTimeout(this.feedbackTimer),this.feedbackTimer=setTimeout(()=>{this.feedbackMessage="",this.render()},2e3),this.render()}executeCommand(e){let t=e.trim().toLowerCase();if(t==="q"||t==="quit"){this.stop();return}if(t.startsWith("theme ")){let n=t.slice(6).trim();re[n]?(this.theme=re[n],this.showFeedback(`Theme: ${n}`)):this.showFeedback(`Unknown theme: ${n}`);return}if(this.site.easterEggs?.commands?.[t]){let n=this.site.easterEggs.commands[t];typeof n=="string"?this.showFeedback(n):n();return}this.showFeedback(`Unknown command: ${e}`)}render(){this.invalidateDynamicCache();let e=this.getCurrentPage();if(e&&!this.router.isHome()){let i=this.getPageContent(e);if(i){let a=this.pageFocusIndex;this.pageFocusItems=this.collectFocusItems(i),this.pageFocusIndex=Math.min(a,Math.max(0,this.pageFocusItems.length-1)),this.registerForms(i)}}let{columns:t,rows:n}=Xe(),o=[],s=this.createRenderContext(t);this.router.isHome()?this.renderHomePage(o,s,t,n):this.renderContentPage(o,s,t,n),this.writeToTerminal(o,t,n)}createRenderContext(e){return{width:Math.min(e,100),theme:this.theme,borderStyle:this.borderStyle}}renderHomePage(e,t,n,o){let s=t.width,i=Math.max(0,Math.floor((n-s)/2)),a=" ".repeat(i);if(this.site.banner){let h=He(this.site.banner.text,{font:this.site.banner.font});if(h=Ge(h,s),this.site.banner.gradient?h=It(h,this.site.banner.gradient):h=h.map(p=>c(this.theme.accent)+p+l),!this.bootComplete&&this.site.animations?.boot){let p=Math.floor(this.bootFrame/30*h.length);h=h.slice(0,p)}e.push("");for(let p of h)e.push(a+p)}else{e.push("");let h=c(this.theme.accent)+b+this.site.name+l;e.push(a+L(h,s,"center"))}if(e.push(""),this.site.tagline){let h=c(this.theme.muted)+J+this.site.tagline+l;e.push(a+L(h,s,"center")),e.push("")}e.push(a+c(this.theme.border)+"\u2500".repeat(s)+l),e.push("");let u=this.site.pages.filter(h=>typeof h.title=="string").map(h=>({label:h.title,icon:h.icon,id:h.id})),f;if(!this.bootComplete&&this.site.animations?.boot){let h=Math.max(0,Math.floor((this.bootFrame-15)/3)),p=u.slice(0,h);f=nt(p,this.focus.focusIndex,t)}else f=nt(u,this.focus.focusIndex,t);for(let h of f)e.push(a+h);e.push(""),e.push(a+c(this.theme.border)+"\u2500".repeat(s)+l),e.push("");let d=c(this.theme.subtle)+w+" \u2191\u2193 navigate \u23CE select q quit : command"+l;e.push(a+d),this.site.handle&&(e.push(""),e.push(a+c(this.theme.subtle)+w+" "+this.site.handle+l))}renderContentPage(e,t,n,o){let s=this.getCurrentPage();if(!s)return;let i=this.getPageContent(s);if(i===null){let V=s.loading??"Loading...",T=t.width,F=Math.max(0,Math.floor((n-T)/2)),E=" ".repeat(F);e.push("");let R=c(this.theme.subtle)+w+"\u2190 back"+l,O=c(this.theme.accent)+b+(s.icon?s.icon+" ":"")+this.resolvePageTitle(s)+l;e.push(E+R+" "+O),e.push(E+c(this.theme.border)+"\u2500".repeat(T)+l),e.push("");let z=xe("dots",Math.floor(Date.now()/80));e.push(E+" "+c(this.theme.accent)+z+l+c(this.theme.muted)+" "+V+l);return}this.pageFocusItems.length===0&&i.length>0&&this.initializePageContent(i);let a=t.width,u=Math.max(0,Math.floor((n-a)/2)),f=" ".repeat(u),d=this.pageFocusItems[this.pageFocusIndex],h=[],p=-1,m=-1,g=V=>!!d&&d.kind==="block"&&d.block===V,_=V=>!d||d.kind!=="accordion-item"||d.accordion!==V?-1:d.itemIndex,x=c(this.theme.accent)+"\u258C"+l,v=V=>{for(let T of V){if(T.type==="section")h.push(c(t.theme.accent)+b+" "+T.title+l),h.push(c(t.theme.border)+" "+"\u2500".repeat(Math.max(0,a-4))+l),h.push(""),v(T.content);else if(T.type==="form"){v(T.fields);let F=this.formResults.get(T.id);if(F){let E=ot({resultMessage:F.message,resultType:F.type},t);for(let R of E)h.push(" "+R);h.push("")}}else if(T.type==="dynamic"){let F=this.resolveDynamic(T);v(F);continue}else if(T.type==="asyncContent")this.renderAsyncContentBlock(T,h,t,v);else if(T.type==="accordion"){let F=_(T),E=T.items.map(O=>O.label).join(","),R=this.accordionState.get(E)??-1;for(let O=0;O<T.items.length;O++){let z=T.items[O],K=F===O,te=O===R;K&&(p=h.length);let Le=te?"\u25BE":"\u25B8",Fe=te||K?t.theme.accent:t.theme.text,he=Math.max(0,a-8),ne=c(Fe)+b+` ${Le} ${z.label.length>he?z.label.substring(0,he-1)+"\u2026":z.label}`+l;if(K?h.push(x+ne):h.push(" "+ne),te){let Re={...t,width:t.width-4,focused:!1};for(let sn of z.content){let an=this.renderBlock(sn,Re);for(let cn of an)h.push(" "+cn)}h.push("")}K&&(m=h.length)}}else if(T.type==="timeline"){let F=d?.kind==="timeline-item"&&d.timeline===T?d.itemIndex:-1;for(let E=0;E<T.items.length;E++){let R=T.items[E],O=F===E,z=E===T.items.length-1;O&&(p=h.length);let K=O?"\u25CF":"\u25CB",te=R.title;R.subtitle&&(te+=" \xB7 "+R.subtitle);let Le=O?t.theme.accent:t.theme.border,Fe=O?t.theme.accent:t.theme.text,he=c(Le)+" "+K+" "+l+c(Fe)+b+te+l;if(h.push(" "+he),R.period||R.date){let ne=R.period??R.date;h.push(" "+c(t.theme.border)+" \u2502 "+l+c(t.theme.muted)+w+ne+l)}if(R.description){let ne=A(R.description,Math.max(0,a-6));for(let Re of ne)h.push(" "+c(t.theme.border)+" \u2502 "+l+c(t.theme.text)+Re+l)}z||h.push(" "+c(t.theme.border)+" \u2502"+l),O&&(m=h.length)}}else{let F=g(T);F&&(p=h.length);let E=this.isBlockFocusable(T),R=F&&this.inputMode.isEditing,O=F?{...t,focused:!0,editing:R}:t,z=this.renderBlock(T,O);if(E&&F)for(let K of z)h.push(x+K);else for(let K of z)h.push(" "+K);F&&(m=h.length)}h.push("")}};v(i),h.length>0&&h[h.length-1]===""&&h.pop();let M=4,I=3,P=Math.max(1,o-M-I);p>=0&&(p<this.pageScrollOffset?this.pageScrollOffset=Math.max(0,p):m>this.pageScrollOffset+P&&(this.pageScrollOffset=Math.max(0,m-P)));let B=Math.max(0,h.length-P);this.pageScrollOffset=Math.min(this.pageScrollOffset,B);let k=0,W=0;this.pageFocusItems.length>0&&(k=this.pageFocusIndex,W=this.pageFocusItems.length-1-this.pageFocusIndex),e.push("");let ke=c(this.theme.subtle)+w+"\u2190 back"+l,Be=c(this.theme.accent)+b+(s.icon?s.icon+" ":"")+s.title+l;e.push(f+ke+" "+Be),e.push(f+c(this.theme.border)+"\u2500".repeat(a)+l),this.pageScrollOffset>0&&k>0?e.push(f+c(this.theme.subtle)+w+" \u2191 "+k+" item"+(k>1?"s":"")+" above"+l):e.push("");let Ae=h.slice(this.pageScrollOffset,this.pageScrollOffset+P);for(let V of Ae)e.push(f+V);for(;e.length<o-I;)e.push("");W>0?e.push(f+c(this.theme.subtle)+w+" \u2193 "+W+" item"+(W>1?"s":"")+" below"+l):e.push(""),e.push(f+c(this.theme.border)+"\u2500".repeat(a)+l);let lt=this.router.currentIndex+1,ut=this.router.pageCount;this.inputMode.isEditing?e.push(f+c(this.theme.accent)+b+" \u2500\u2500 Editing \u2500\u2500"+l+c(this.theme.subtle)+w+" Type to input Esc done ["+lt+"/"+ut+"]"+l):e.push(f+c(this.theme.subtle)+w+" \u2191\u2193 navigate \u23CE select \u2190 back q quit ["+lt+"/"+ut+"]"+l)}renderAsyncContentBlock(e,t,n,o){let s=e._asyncId??"async-anon",i=this.asyncManager.getState(s);if(!i){this.asyncManager.load(s,e.load,()=>this.render());let a=e.loading??"Loading...",u=xe("dots",Math.floor(Date.now()/80));t.push(" "+c(n.theme.accent)+u+l+c(n.theme.muted)+" "+a+l);return}if(i.status==="loading"){let a=e.loading??"Loading...",u=xe("dots",Math.floor(Date.now()/80));t.push(" "+c(n.theme.accent)+u+l+c(n.theme.muted)+" "+a+l),setTimeout(()=>this.render(),100);return}if(i.status==="error"){e.fallback?o(e.fallback):t.push(" "+c(n.theme.error)+"\u26A0 "+(i.error?.message??"Failed to load content")+l);return}i.content&&o(i.content)}resolveDynamic(e){let t=e._dynamicId??"",n=this.dynamicCache.get(t);if(n)return n;try{let o=e.render(),s=Array.isArray(o)?o:[o];return t&&this.dynamicCache.set(t,s),s}catch{return[]}}invalidateDynamicCache(){this.dynamicCache.clear()}isBlockFocusable(e){return["card","link","hero","tabs","textInput","textArea","select","checkbox","toggle","radioGroup","numberInput","searchInput","button"].includes(e.type)}renderContentBlocks(e,t){let n=[];for(let o of e){let s=this.renderBlock(o,t);n.push(...s),n.push("")}return n.length>0&&n[n.length-1]===""&&n.pop(),n}renderBlock(e,t){switch(e.type){case"text":return kt(e.content,t,e.style);case"card":return Ce(e,t);case"timeline":return Bt(e.items,t,e.style);case"table":return Lt(e.headers,e.rows,t);case"list":return Wt(e.items,t,e.style);case"quote":return Et(e.text,t,{attribution:e.attribution,style:e.style});case"hero":return jt(e,t);case"gallery":{let n=JSON.stringify(e.items.map(s=>s.title)),o=this.galleryState.get(n)??0;return zt(e.items,t,{columns:e.columns,scrollIndex:o})}case"tabs":{let n=e.items.map(s=>s.label).join(","),o=this.tabState.get(n)??0;return $t(e.items,o,t,(s,i)=>this.renderContentBlocks(s,i))}case"accordion":{let n=e.items.map(s=>s.label).join(","),o=this.accordionState.get(n)??-1;return Nt(e.items,o,t,(s,i)=>this.renderContentBlocks(s,i))}case"link":return Ft(e.label,e.url,t,{icon:e.icon});case"progressBar":return At(e.label,e.value,t,{max:e.max,showPercent:e.showPercent});case"badge":return[Dt(e.text,t,{color:e.color,style:e.style})];case"image":return Yt(e.path,t,{width:e.width,mode:e.mode});case"divider":return Rt(t,{style:e.style,label:e.label,color:e.color});case"spacer":return Ot(e.lines);case"section":{let n=[];return n.push(c(t.theme.accent)+b+" "+e.title+l),n.push(c(t.theme.border)+" "+"\u2500".repeat(Math.max(0,t.width-4))+l),n.push(""),n.push(...this.renderContentBlocks(e.content,t)),n}case"custom":return e.render(t.width,t.theme);case"textInput":{let n=this.getInputState(e.id,e.defaultValue??"");return Gt(e,{value:n.value,cursorPos:n.cursorPos,editing:!!t.editing,error:n.error},t)}case"textArea":{let n=this.getInputState(e.id,e.defaultValue??"");return Kt(e,{value:n.value,cursorPos:n.cursorPos,editing:!!t.editing,error:n.error,scrollOffset:n.scrollOffset},t)}case"select":{let n=this.getInputState(e.id,e.defaultValue??"");return Vt(e,{value:n.value,open:n.open,highlightIndex:n.highlightIndex},t)}case"checkbox":{let n=this.getInputState(e.id,e.defaultValue??!1);return Ut(e,n.value,t)}case"toggle":{let n=this.getInputState(e.id,e.defaultValue??!1);return qt(e,n.value,t)}case"radioGroup":{let n=this.getInputState(e.id,e.defaultValue??"");return Jt(e,{value:n.value,highlightIndex:n.highlightIndex},t)}case"numberInput":{let n=this.getInputState(e.id,e.defaultValue??0);return Qt(e,{value:n.value,editing:!!t.editing,textBuffer:""},t)}case"searchInput":{let n=this.getInputState(e.id,""),o=e.maxResults??10,s=Se(e.items,n.value,o);return Zt(e,{query:n.value,cursorPos:n.cursorPos,editing:!!t.editing,highlightIndex:n.highlightIndex,filteredItems:s},t)}case"button":{let n=this.buttonLoading.get(e.label)??!1;return en(e,t,n)}case"form":{let n=this.renderContentBlocks(e.fields,t),o=this.formResults.get(e.id);return o&&(n.push(""),n.push(...ot({resultMessage:o.message,resultType:o.type},t))),n}case"asyncContent":return[];case"dynamic":{let n=this.resolveDynamic(e);return this.renderContentBlocks(n,t)}default:return[]}}writeToTerminal(e,t,n){let o=e,s="\x1B[H";for(let i=0;i<n;i++){if(s+="\x1B[2K",i<o.length){let a=o[i];y(a)>t?s+=Un(a,t):s+=a}i<n-1&&(s+=`
23
- `)}if(this.commandMode)s+=`\x1B[${n};1H\x1B[2K`,s+=Ht(":",this.commandBuffer,this.createRenderContext(t)).join("");else{let i=this.notifications.current;if(i){s+=`\x1B[${n};1H\x1B[2K`;let a,u;switch(i.type){case"success":a=this.theme.success,u="\u2713";break;case"error":a=this.theme.error,u="\u2717";break;default:a=this.theme.accent,u="\u2139";break}s+=c(a)+" "+u+" "+i.message+l}else this.feedbackMessage&&(s+=`\x1B[${n};1H\x1B[2K`,s+=c(this.theme.success)+" "+this.feedbackMessage+l)}this.inputMode.isEditing?s+="\x1B[?25h":s+="\x1B[?25l",process.stdout.write(s)}};async function st(r){await new Te(r).start()}var nn=0;function it(r,e){return typeof r=="function"?{type:"dynamic",render:r,_dynamicId:`dynamic-${nn++}`}:{type:"dynamic",deps:r,render:e,_dynamicId:`dynamic-${nn++}`}}var at=class{entries=new Map;get(e){let t=this.entries.get(e);if(t){if(Date.now()-t.timestamp>t.ttl){this.entries.delete(e);return}return t.data}}set(e,t,n){this.entries.set(e,{data:t,timestamp:Date.now(),ttl:n})}has(e){return this.get(e)!==void 0}delete(e){this.entries.delete(e)}clear(){this.entries.clear()}},qn=new at;async function ie(r){try{let e=new AbortController,t=r.timeout?setTimeout(()=>e.abort(),r.timeout):null,n={method:r.method??"GET",headers:{"Content-Type":"application/json",...r.headers},signal:e.signal};r.body&&r.method!=="GET"&&(n.body=typeof r.body=="string"?r.body:JSON.stringify(r.body));let o=await fetch(r.url,n);t&&clearTimeout(t);let s=null;return(o.headers.get("content-type")??"").includes("application/json")?s=await o.json():s=await o.text(),o.ok?{data:s,error:null,status:o.status,ok:!0}:{data:s,error:new Error(`HTTP ${o.status}: ${o.statusText}`),status:o.status,ok:!1}}catch(e){return{data:null,error:e instanceof Error?e:new Error(String(e)),status:0,ok:!1}}}async function X(r){return ie(r)}X.get=(r,e)=>ie({url:r,method:"GET",headers:e});X.post=(r,e,t)=>ie({url:r,method:"POST",body:e,headers:t});X.put=(r,e,t)=>ie({url:r,method:"PUT",body:e,headers:t});X.delete=(r,e)=>ie({url:r,method:"DELETE",headers:e});X.patch=(r,e,t)=>ie({url:r,method:"PATCH",body:e,headers:t});function ct(r,e){return{id:r,...e}}var $=pe({messages:[],loading:!1,error:""});async function ue(r){if(!r.trim()||$.get("loading"))return;let e={role:"user",content:r};$.update("messages",t=>[...t,e]),$.set("loading",!0),$.set("error","");try{let t=$.get("messages"),n=await X.post("https://theomar.me/api/chat",{messages:t});if(n.ok&&n.data?.message?.content){let o={role:"assistant",content:n.data.message.content};$.update("messages",s=>[...s,o])}else $.update("messages",o=>[...o,{role:"assistant",content:"sorry, something went wrong. try again."}])}catch{$.update("messages",t=>[...t,{role:"assistant",content:"couldn't connect. try again."}])}finally{$.set("loading",!1)}}function Qn(){let r=$.get("messages"),e=$.get("loading"),t=$.get("error");if(t)return[Y(`**Error:** ${t}`)];if(r.length===0&&!e)return[Y(`**Ask me anything about Omar**
24
-
25
- I know about his experience, projects, education, and more.`),G(),H("Suggested Questions"),ee({label:"What projects has Omar worked on?",style:"secondary",onPress:()=>ue("What projects has Omar worked on?")}),ee({label:"Tell me about Omar's education",style:"secondary",onPress:()=>ue("Tell me about Omar's education")}),ee({label:"What are Omar's AI skills?",style:"secondary",onPress:()=>ue("What are Omar's AI skills?")}),ee({label:"What is Omar's work experience?",style:"secondary",onPress:()=>ue("What is Omar's work experience?")})];let n=r.map(o=>{let s=o.role==="user"?"You":"OmarAi";return Y(`**${s}:** ${o.content}`)});return e&&n.push(Y("**OmarAi:** _thinking..._")),n}var rn={1:{title:"OmarAi Dev Log 1",date:"September 8, 2024",content:`Hello Everybody,
2
+ var q=(u,e)=>()=>(u&&(e=u(u=0)),e);var X=q(()=>{});var uu=q(()=>{});var hu=q(()=>{X();uu()});var Nu,Hu,du,_u,eu=q(()=>{Nu=Object.defineProperty,Hu=Object.getOwnPropertyNames,du=(u,e)=>function(){return u&&(e=(0,u[Hu(u)[0]])(u=0)),e},_u=(u,e)=>{for(var t in e)Nu(u,t,{get:e[t],enumerable:!0})}});function Du(u){let e=u.match(/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}function au(){let u=process.env;return u.NO_COLOR!==void 0?"none":u.TERM_PROGRAM==="Apple_Terminal"?"256":u.COLORTERM==="truecolor"||u.COLORTERM==="24bit"?"truecolor":u.TERM_PROGRAM==="iTerm.app"||u.TERM_PROGRAM==="WezTerm"||u.TERM_PROGRAM==="vscode"||u.TERM_PROGRAM==="Hyper"||u.TERM_PROGRAM==="WarpTerminal"||u.WT_SESSION!==void 0?u.COLORTERM?"truecolor":"256":u.TERM?.includes("256color")?"256":u.TERM?"16":"none"}var T=au();function Lu(u,e,t){if(u===e&&e===t)return u<8?16:u>248?231:Math.round((u-8)/247*24)+232;let n=Math.round(u/255*5),o=Math.round(e/255*5),r=Math.round(t/255*5);return 16+36*n+6*o+r}var Tu=[{r:0,g:0,b:0,code:30},{r:170,g:0,b:0,code:31},{r:0,g:170,b:0,code:32},{r:170,g:170,b:0,code:33},{r:0,g:0,b:170,code:34},{r:170,g:0,b:170,code:35},{r:0,g:170,b:170,code:36},{r:170,g:170,b:170,code:37},{r:85,g:85,b:85,code:90},{r:255,g:85,b:85,code:91},{r:85,g:255,b:85,code:92},{r:255,g:255,b:85,code:93},{r:85,g:85,b:255,code:94},{r:255,g:85,b:255,code:95},{r:85,g:255,b:255,code:96},{r:255,g:255,b:255,code:97}];function Ou(u,e,t){let n=30,o=1/0;for(let r of Tu){let s=u-r.r,l=e-r.g,d=t-r.b,c=s*s+l*l+d*d;c<o&&(o=c,n=r.code)}return n}function i(u){if(T==="none")return"";let e=Du(u);return e?T==="16"?`\x1B[${Ou(e.r,e.g,e.b)}m`:T==="256"?`\x1B[38;5;${Lu(e.r,e.g,e.b)}m`:`\x1B[38;2;${e.r};${e.g};${e.b}m`:""}var a=T==="none"?"":"\x1B[0m",v=T==="none"?"":"\x1B[1m",O=T==="none"?"":"\x1B[2m",j=T==="none"?"":"\x1B[3m",N=T==="none"?"":"\x1B[4m",cu=T==="none"?"":"\x1B[7m",Ru=class{renderers=new Map;focusableTypes=new Set;register(u,e,t=!1){this.renderers.set(u,e),t&&this.focusableTypes.add(u)}getRenderer(u){return this.renderers.get(u)}isFocusable(u){return this.focusableTypes.has(u)}has(u){return this.renderers.has(u)}},C=new Ru;function H(u){return u<32||u===127||u>=768&&u<=879||u===8203||u===8204||u===8205||u===173||u===65279||u>=6832&&u<=6911||u>=7616&&u<=7679||u>=8400&&u<=8447||u>=65056&&u<=65071||u>=65024&&u<=65039||u>=917760&&u<=917999?0:u>=19968&&u<=40959||u>=13312&&u<=19903||u>=131072&&u<=173791||u>=173824&&u<=177983||u>=177984&&u<=178207||u>=63744&&u<=64255||u>=12288&&u<=12351||u>=12352&&u<=12447||u>=12448&&u<=12543||u>=44032&&u<=55215||u>=4352&&u<=4447||u>=65281&&u<=65376||u>=65504&&u<=65510||u>=127744&&u<=129535||u>=129536&&u<=129647||u>=129648&&u<=129791?2:(u>=9984&&u<=10175||u>=9728&&u<=9983,1)}function b(u){let e=z(u),t=0;for(let n of e)t+=H(n.codePointAt(0)??0);return t}function lu(u,e){return i(e)+u+a}function S(u,e,t="left"){let n=b(u),o=Math.max(0,e-n);switch(t){case"center":{let r=Math.floor(o/2),s=o-r;return" ".repeat(r)+u+" ".repeat(s)}case"right":return" ".repeat(o)+u;default:return u+" ".repeat(o)}}function z(u){return u.replace(/\x1b\[[0-9;]*m/g,"")}function B(u,e){if(!u)return"";if(b(u)<=e)return u;let t=0,n="",o=!1;for(let r of u){if(r==="\x1B"){o=!0,n+=r;continue}if(o){n+=r,r==="m"&&(o=!1);continue}let s=H(r.codePointAt(0)??0);if(t+s>=e){n+="\u2026";break}n+=r,t+=s}return n+a}function L(u,e){if(e<=0)return[];let t=u.split(`
3
+ `),n=[];for(let o of t){if(o.length===0){n.push("");continue}let r=o.split(" "),s="",l=0;for(let d of r){let c=b(d);if(c>e){s&&(n.push(s),s="",l=0);let f="",h=0;for(let p of d){let _=H(p.codePointAt(0)??0);h+_>e&&f&&(n.push(f),f="",h=0),f+=p,h+=_}s=f,l=h;continue}l===0?(s=d,l=c):l+1+c<=e?(s+=" "+d,l+=1+c):(n.push(s),s=d,l=c)}s&&n.push(s)}return n.length>0?n:[""]}function ku(u,e){let t=u.split(`
4
+ `);if(t.length===0)throw new Error(`parseFLF: empty font data for "${e}"`);let n=t[0];if(!n.startsWith("flf2"))throw new Error(`parseFLF: invalid FLF header for "${e}": ${n}`);let o=n.charAt(5),r=n.slice(6).trim().split(/\s+/),s=parseInt(r[0],10),l=parseInt(r[4],10)||0;if(isNaN(s)||s<=0)throw new Error(`parseFLF: invalid height in header for "${e}"`);let d=1+l,c={},f=new Set;for(let _=65;_<=90;_++)f.add(_);for(let _=48;_<=57;_++)f.add(_);f.add(32);let h="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";for(let _ of h)f.add(_.charCodeAt(0));let p=d;for(let _=32;_<=126&&!(p+s>t.length);_++){let m=[];for(let F=0;F<s;F++){let g=t[p+F]??"";g.endsWith("@@")?g=g.slice(0,-2):g.endsWith("@")&&(g=g.slice(0,-1)),o&&o!==" "&&(g=g.split(o).join(" ")),m.push(g)}if(p+=s,f.has(_)){let F=String.fromCharCode(_);c[F]=m}}return{name:e,height:s,chars:c}}function Y(u){return u.toLowerCase().replace(/[\s_]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function $u(u){return!Array.isArray(u)&&Array.isArray(u.art)}function Wu(u){if(Array.isArray(u))return!1;let e=u;return e.small!==void 0||e.medium!==void 0||e.large!==void 0||e.art!==void 0||e.author!==void 0||e.source!==void 0}var Yu=class{fonts=new Map;scenes=new Map;icons=new Map;patterns=new Map;register(u,e,t,n="custom"){let o=Y(e);switch(u){case"font":{this.fonts.has(o)&&process.stderr.write(`[art-registry] warning: font "${o}" overwritten (source: ${n})
5
+ `);let r;typeof t=="string"?r=ku(t,o):r=t,this.fonts.set(o,{font:r,source:n,author:void 0});break}case"scene":{this.scenes.has(o)&&process.stderr.write(`[art-registry] warning: scene "${o}" overwritten (source: ${n})
6
+ `);let r;if(Array.isArray(t))r={art:t,source:n};else if($u(t))r={...t,source:t.source??n};else throw new Error(`Invalid scene data for "${e}"`);this.scenes.set(o,{scene:r,source:n});break}case"icon":{this.icons.has(o)&&process.stderr.write(`[art-registry] warning: icon "${o}" overwritten (source: ${n})
7
+ `);let r;if(Array.isArray(t))r=ju(t,n);else if(Wu(t))r={...t,source:t.source??n};else throw new Error(`Invalid icon data for "${e}"`);this.icons.set(o,{icon:r,source:n});break}case"pattern":{this.patterns.has(o)&&process.stderr.write(`[art-registry] warning: pattern "${o}" overwritten (source: ${n})
8
+ `);let r=t;this.patterns.set(o,{pattern:{...r,source:r.source??n},source:n});break}}}get(u,e){let t=Y(e),n=this.mapFor(u),o=n.get(t);if(o)return this.unwrapEntry(u,o);if(e.includes("/")){let r=Y(e.replace("/","-")),s=n.get(r);if(s)return this.unwrapEntry(u,s)}for(let[r,s]of n)if(r.endsWith(`-${t}`)||r.endsWith(`/${t}`))return this.unwrapEntry(u,s);return null}has(u,e){return this.get(u,e)!==null}list(u){if(u)return Array.from(this.mapFor(u).keys()).sort();let e=new Set;for(let t of this.fonts.keys())e.add(t);for(let t of this.scenes.keys())e.add(t);for(let t of this.icons.keys())e.add(t);for(let t of this.patterns.keys())e.add(t);return Array.from(e).sort()}getInfo(u,e){let t=Y(e),o=this.mapFor(u).get(t);if(!o)return null;let r={name:t,type:u,source:""};switch(u){case"font":{let s=o;r.source=s.source,r.author=s.author;break}case"scene":{let s=o;r.source=s.source,r.author=s.scene.author,r.description=s.scene.description;break}case"icon":{let s=o;r.source=s.source,r.author=s.icon.author;break}case"pattern":{let s=o;r.source=s.source,r.author=s.pattern.author;break}}return r}loadPack(u){let e=`pack:${u.name}`;if(u.fonts){for(let[t,n]of Object.entries(u.fonts))if(this.register("font",t,n,e),u.author){let o=Y(t),r=this.fonts.get(o);r&&!r.author&&(r.author=u.author)}}if(u.scenes)for(let[t,n]of Object.entries(u.scenes))this.register("scene",t,n,e);if(u.icons)for(let[t,n]of Object.entries(u.icons))this.register("icon",t,n,e);if(u.patterns)for(let[t,n]of Object.entries(u.patterns))this.register("pattern",t,n,e)}clear(){this.fonts.clear(),this.scenes.clear(),this.icons.clear(),this.patterns.clear()}mapFor(u){switch(u){case"font":return this.fonts;case"scene":return this.scenes;case"icon":return this.icons;case"pattern":return this.patterns}}unwrapEntry(u,e){switch(u){case"font":return e.font;case"scene":return e.scene;case"icon":return e.icon;case"pattern":return e.pattern}}};function ju(u,e){let t=u.length,n={source:e};return t<=4?n.small=u:t<=6?n.medium=u:n.large=u,n}var fu=new Yu;var iu={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",teeLeft:"\u2563",teeRight:"\u2560",teeUp:"\u2569",teeDown:"\u2566",cross:"\u256C"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",teeLeft:"\u252B",teeRight:"\u2523",teeUp:"\u253B",teeDown:"\u2533",cross:"\u254B"},dashed:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2504",vertical:"\u2506",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",teeLeft:"+",teeRight:"+",teeUp:"+",teeDown:"+",cross:"+"},none:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",horizontal:" ",vertical:" ",teeLeft:" ",teeRight:" ",teeUp:" ",teeDown:" ",cross:" "}};function K(u){return iu[u??"rounded"]??iu.rounded}hu();X();uu();eu();import{EventEmitter as Zu}from"events";import{EventEmitter as e2}from"events";var Ku={};_u(Ku,{defaultTheme:()=>ou,themes:()=>Q});var Q,ou,ru=du({"src/style/theme.ts"(){"use strict";Q={cyberpunk:{accent:"#ff2a6d",accentDim:"#b91d4f",text:"#05d9e8",muted:"#0abdc6",subtle:"#01579b",success:"#05d9e8",warning:"#d1f7ff",error:"#ff2a6d",border:"#01579b",bg:"#01012b"},dracula:{accent:"#ff79c6",accentDim:"#bd93f9",text:"#f8f8f2",muted:"#6272a4",subtle:"#44475a",success:"#50fa7b",warning:"#f1fa8c",error:"#ff5555",border:"#6272a4",bg:"#282a36"},nord:{accent:"#88c0d0",accentDim:"#5e81ac",text:"#eceff4",muted:"#81a1c1",subtle:"#4c566a",success:"#a3be8c",warning:"#ebcb8b",error:"#bf616a",border:"#4c566a",bg:"#2e3440"},monokai:{accent:"#f92672",accentDim:"#ae81ff",text:"#f8f8f2",muted:"#75715e",subtle:"#49483e",success:"#a6e22e",warning:"#e6db74",error:"#f92672",border:"#75715e",bg:"#272822"},solarized:{accent:"#268bd2",accentDim:"#2aa198",text:"#839496",muted:"#657b83",subtle:"#586e75",success:"#859900",warning:"#b58900",error:"#dc322f",border:"#586e75",bg:"#002b36"},gruvbox:{accent:"#fe8019",accentDim:"#d65d0e",text:"#ebdbb2",muted:"#a89984",subtle:"#504945",success:"#b8bb26",warning:"#fabd2f",error:"#fb4934",border:"#504945",bg:"#282828"},catppuccin:{accent:"#f5c2e7",accentDim:"#cba6f7",text:"#cdd6f4",muted:"#a6adc8",subtle:"#45475a",success:"#a6e3a1",warning:"#f9e2af",error:"#f38ba8",border:"#585b70",bg:"#1e1e2e"},tokyoNight:{accent:"#7aa2f7",accentDim:"#bb9af7",text:"#c0caf5",muted:"#565f89",subtle:"#3b4261",success:"#9ece6a",warning:"#e0af68",error:"#f7768e",border:"#3b4261",bg:"#1a1b26"},rosePine:{accent:"#ebbcba",accentDim:"#c4a7e7",text:"#e0def4",muted:"#908caa",subtle:"#6e6a86",success:"#9ccfd8",warning:"#f6c177",error:"#eb6f92",border:"#6e6a86",bg:"#191724"},hacker:{accent:"#00ff41",accentDim:"#008f11",text:"#00ff41",muted:"#008f11",subtle:"#003b00",success:"#00ff41",warning:"#ccff00",error:"#ff0000",border:"#008f11",bg:"#0d0208"}},ou=Q.dracula}});var pu=!1,mu=new Set,J=null,tu=new Map,Ju=new Map;function gu(u,e){tu.has(u)||tu.set(u,new Set),tu.get(u).add(e)}var Qu=0,Fu=null;function su(u){let e=`state-${Qu++}`,t={...u},n=new Map,o=new Set,r=!1,s=new Map;function l(f,h,p){if(r){s.set(f,{newVal:h,oldVal:p});return}let _=n.get(f);if(_)for(let m of _)m(h,p);for(let m of o)m(f,h);Fu?.()}function d(){let f=new Map(s);s.clear();for(let[h,{newVal:p,oldVal:_}]of f){let m=n.get(h);if(m)for(let F of m)F(p,_);for(let F of o)F(h,p)}f.size>0&&Fu?.()}let c={_id:e,get(f){if(f===void 0){if(pu&&(J===null||J===e))for(let h of Object.keys(t))mu.add(h),gu(e,h);return{...t}}return pu&&(J===null||J===e)&&(mu.add(f),gu(e,f)),t[f]},set(f,h){let p=t[f];p!==h&&(t[f]=h,l(f,h,p))},update(f,h){let p=t[f],_=h(p);p!==_&&(t[f]=_,l(f,_,p))},batch(f){r=!0;try{f()}finally{r=!1,d()}},on(f,h){return f==="*"?(o.add(h),()=>o.delete(h)):(n.has(f)||n.set(f,new Set),n.get(f).add(h),()=>n.get(f)?.delete(h))},keys(){return Object.keys(t)}};return Ju.set(e,c),c}ru();var Xu=class extends Zu{started=!1;rawModeWas;start(){this.started||(this.started=!0,process.stdin.isTTY&&(this.rawModeWas=process.stdin.isRaw,process.stdin.setRawMode(!0)),process.stdin.resume(),process.stdin.setEncoding("utf-8"),process.stdin.on("data",this.handleData))}stop(){this.started&&(this.started=!1,process.stdin.removeListener("data",this.handleData),process.stdin.isTTY&&this.rawModeWas!==void 0&&process.stdin.setRawMode(this.rawModeWas),process.stdin.pause())}handleData=u=>{for(let e of u2(u))this.emit("keypress",e)}};function u2(u){let e=[];if(u==="\x1B[A")e.push(I("up","",!1,!1,!1,u));else if(u==="\x1B[B")e.push(I("down","",!1,!1,!1,u));else if(u==="\x1B[C")e.push(I("right","",!1,!1,!1,u));else if(u==="\x1B[D")e.push(I("left","",!1,!1,!1,u));else if(u==="\r"||u===`
9
+ `)e.push(I("return","",!1,!1,!1,u));else if(u==="\x1B")e.push(I("escape","",!1,!1,!1,u));else if(u==="\x7F"||u==="\b")e.push(I("backspace","",!1,!1,!1,u));else if(u===" ")e.push(I("tab","",!1,!1,!1,u));else if(u==="\x1B[Z")e.push(I("tab","",!1,!1,!0,u));else if(u==="\x1B[3~")e.push(I("delete","",!1,!1,!1,u));else if(u==="\x1B[H"||u==="\x1B[1~"||u==="\x1BOH")e.push(I("home","",!1,!1,!1,u));else if(u==="\x1B[F"||u==="\x1B[4~"||u==="\x1BOF")e.push(I("end","",!1,!1,!1,u));else if(u===" ")e.push(I("space"," ",!1,!1,!1,u));else for(let t=0;t<u.length;t++){let n=u[t],o=n.charCodeAt(0);if(o<=26&&o>0){let r=String.fromCharCode(o+96);e.push(I(r,n,!0,!1,!1,n))}else e.push(I(n,n,!1,!1,!1,n))}return e}function I(u,e,t,n,o,r){return{name:u,char:e,ctrl:t,meta:n,shift:o,sequence:r}}var g8=new Xu,t2=class extends e2{_size;constructor(){super(),this._size=this.measure(),process.stdout.on("resize",()=>{this._size=this.measure(),this.emit("resize",this._size)}),typeof process.on=="function"&&process.on("SIGWINCH",()=>{this._size=this.measure(),this.emit("resize",this._size)})}get size(){return this._size}get columns(){return this._size.columns}get rows(){return this._size.rows}measure(){return{columns:process.stdout.columns||80,rows:process.stdout.rows||24}}},b8=new t2;var n2=class{listeners=new Map;on(u,e){return this.listeners.has(u)||this.listeners.set(u,new Set),this.listeners.get(u).add(e),()=>this.off(u,e)}off(u,e){this.listeners.get(u)?.delete(e)}emit(u,...e){this.listeners.get(u)?.forEach(t=>{try{t(...e)}catch{}})}once(u,e){let t=(...n)=>{this.off(u,t),e(...n)};return this.on(u,t)}removeAll(u){u?this.listeners.delete(u):this.listeners.clear()}},C8=new n2;var o2=class{animations=new Map;timer=null;fps=30;running=!1;start(){if(this.running)return;this.running=!0;let u=Math.floor(1e3/this.fps);this.timer=setInterval(()=>this.tick(),u)}stop(){this.running=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.animations.clear()}add(u,e,t,n){this.animations.set(u,{id:u,totalFrames:e,onFrame:t,onComplete:n,currentFrame:0}),this.running||this.start()}remove(u){this.animations.delete(u),this.animations.size===0&&this.stop()}tick(){let u=[];for(let[e,t]of this.animations)t.onFrame(t.currentFrame,t.totalFrames,t.currentFrame/this.fps),t.currentFrame++,t.currentFrame>=t.totalFrames&&(u.push(e),t.onComplete?.());for(let e of u)this.animations.delete(e);this.animations.size===0&&this.stop()}get isRunning(){return this.running}get activeCount(){return this.animations.size}},w8=new o2;var r2="__terminaltui_api_base_url__";function s2(){return globalThis[r2]??null}function Cu(u){let e=s2();return u.startsWith("/")&&e?`${e}${u}`:u}var i2=class{entries=new Map;get(u){let e=this.entries.get(u);if(e){if(Date.now()-e.timestamp>e.ttl){this.entries.delete(u);return}return e.data}}set(u,e,t){this.entries.set(u,{data:e,timestamp:Date.now(),ttl:t})}has(u){return this.get(u)!==void 0}delete(u){this.entries.delete(u)}clear(){this.entries.clear()}},y8=new i2;function M(u,e){let t=e.margin??0,n=typeof e.border=="boolean"?e.border?1:0:e.border??0,o=e.padding??0,r=t*2+n*2+o*2,s=Math.max(0,u-r);return{allocated:u,margin:t,border:n,padding:o,content:s}}var A={card:{padding:1,border:!0,margin:0},text:{padding:0,border:!1,margin:0},hero:{padding:0,border:!1,margin:0},table:{padding:0,border:!0,margin:0},quote:{padding:1,border:!0,margin:1},badge:{padding:0,border:!1,margin:0},progressBar:{padding:0,border:!1,margin:0},link:{padding:0,border:!1,margin:0},list:{padding:0,border:!1,margin:0},section:{padding:0,border:!1,margin:0},divider:{padding:0,border:!1,margin:0},spacer:{padding:0,border:!1,margin:0},timeline:{padding:1,border:!0,margin:1},gallery:{padding:0,border:!1,margin:0},image:{padding:0,border:!0,margin:0},markdown:{padding:0,border:!1,margin:0},menu:{padding:0,border:!1,margin:0},accordion:{padding:2,border:!1,margin:0},tabs:{padding:2,border:!1,margin:0},scrollView:{padding:0,border:!1,margin:0},textInput:{padding:1,border:!0,margin:0},textArea:{padding:1,border:!0,margin:0},select:{padding:1,border:!0,margin:0},checkbox:{padding:0,border:!1,margin:0},toggle:{padding:0,border:!1,margin:0},radioGroup:{padding:0,border:!1,margin:0},numberInput:{padding:1,border:!0,margin:0},searchInput:{padding:1,border:!0,margin:0},button:{padding:2,border:!0,margin:1},form:{padding:1,border:!0,margin:0},box:{padding:0,border:!1,margin:0}};function a2(u,e){let t=u.border??e.borderStyle??"rounded",n=K(t),o=u.width??e.width,r=u.padding??1,s=Math.max(0,Math.floor((o-2)/2)),l=Math.min(r,s),d=M(o,{border:!0,padding:l}),c=d.content,f=u.borderColor??e.theme.border,h=[],p=Math.max(0,d.allocated-d.border*2);if(u.title){let g=` ${u.title} `,y="";u.titleRight&&(y=` ${u.titleRight} `);let x=Math.max(0,p-b(g)-b(y)-1);h.push(i(f)+n.topLeft+n.horizontal+a+i(e.theme.accent)+g+a+i(f)+n.horizontal.repeat(x)+(y?a+i(e.theme.muted)+y+a+i(f):"")+n.topRight+a)}else h.push(i(f)+n.topLeft+n.horizontal.repeat(p)+n.topRight+a);let _=[];for(let g of u.content)_.push(g);let m=u.height?Math.max(0,u.height-2):_.length+(l>0,0),F=Math.max(m,_.length);for(let g=0;g<F;g++){let y=_[g]??"",x=" ".repeat(l);h.push(i(f)+n.vertical+a+x+S(y,c)+x+i(f)+n.vertical+a),u.midSeparatorAfter!==void 0&&g===u.midSeparatorAfter&&h.push(i(f)+n.teeRight+n.horizontal.repeat(p)+n.teeLeft+a)}return h.push(i(f)+n.bottomLeft+n.horizontal.repeat(p)+n.bottomRight+a),h}function c2(u,e,t){let o=M(e.width,A.text).content,r=e.theme;return t==="markdown"?l2(u,o,r):L(u,o).map(s=>lu(s,r.text))}function l2(u,e,t){let n=[],o=u.split(/\n\n+/);for(let r of o){let s=r.trim();if(!s)continue;let l=s.split(`
10
+ `);for(let d of l){let c=d.trim();if(!c)continue;if(c.startsWith("#")){let p=c.match(/^(#+)\s+(.*)/);if(p){let _=p[2];n.push(v+i(t.accent)+_+a);continue}}if(c.match(/^[-*]\s/)){let p=c.replace(/^[-*]\s+/,""),_=nu(p,t),m=bu(p),F=L(m,e-2);for(let g=0;g<F.length;g++){let y=g===0?"\u2022 ":" ",x=g===0?nu(F[g],t):i(t.text)+F[g]+a;n.push(i(t.text)+y+x+a)}continue}let f=bu(c),h=L(f,e);for(let p of h)n.push(i(t.text)+nu(p,t)+a)}n.push("")}return n.length>0&&n[n.length-1]===""&&n.pop(),n}function nu(u,e){let t=u;return t=t.replace(/\*\*(.+?)\*\*/g,(n,o)=>v+i(e.accent)+o+a+i(e.text)),t=t.replace(/\*(.+?)\*/g,(n,o)=>j+o+a+i(e.text)),t=t.replace(/`(.+?)`/g,(n,o)=>i(e.warning)+o+a+i(e.text)),t}function bu(u){return u.replace(/\*\*(.+?)\*\*/g,"$1").replace(/\*(.+?)\*/g,"$1").replace(/`(.+?)`/g,"$1")}function wu(u,e){let t=e.theme,o=M(e.width,A.card).content,r=[],s=e.focused?"\u25C6":"\u25C7",l=u.title??"";if(u.subtitle){let d=s+" ",c=u.subtitle,f=b(d)+b(l)+1+b(c);if(f>o){let h=Math.max(1,o-b(d)),p=Math.min(b(c),Math.max(4,Math.floor(h/2))),_=B(c,p),m=z(_),F=Math.max(1,h-1-b(m)),g=B(l,F),y=z(g),x=b(d)+b(y)+b(m),R=Math.max(1,o-x);r.push(i(t.accent)+s+" "+v+g+a+" ".repeat(R)+i(t.muted)+_+a)}else{let h=Math.max(1,o-f);r.push(i(t.accent)+s+" "+v+l+a+" ".repeat(h)+i(t.muted)+u.subtitle+a)}}else{let d=s+" ";if(b(d)+b(l)>o){let c=Math.max(1,o-b(d)),f=B(l,c);r.push(i(t.accent)+s+" "+v+f+a)}else r.push(i(t.accent)+s+" "+v+l+a)}if(u.body){let d=L(u.body,o);for(let c of d)r.push(i(t.text)+c+a)}if(u.tags&&u.tags.length>0){r.push("");let d="",c="";for(let f=0;f<u.tags.length;f++){let p="["+u.tags[f]+"]",_=i(t.warning)+p+a;b(d)===0?(d=p,c=_):b(d)+1+b(p)<=o?(d+=" "+p,c+=" "+_):(r.push(c),d=p,c=_)}c&&r.push(c)}return a2({content:r,width:e.width,border:u.border??e.borderStyle??"rounded",padding:1,borderColor:e.focused?e.theme.accent:void 0},e)}function f2(u,e,t){let n=[],o=e.theme,r=M(e.width,A.timeline),s=e.width,l=r.content;for(let d=0;d<u.length;d++){let c=u[d],f=d===0,h=d===u.length-1,p=f?"\u25CF":"\u25CB",_=i(o.accent)+" "+p+" "+a,m=r.content,F;if(c.subtitle)if((c.title+" \xB7 "+c.subtitle).length>m){let y=m-c.title.length-3;y>0?F=_+i(o.accent)+v+c.title+a+i(o.muted)+" \xB7 "+B(c.subtitle,y)+a:F=_+i(o.accent)+v+B(c.title,m)+a}else F=_+i(o.accent)+v+c.title+a+i(o.muted)+" \xB7 "+c.subtitle+a;else F=_+i(o.accent)+v+B(c.title,m)+a;if(n.push(F),c.period&&n.push(i(o.border)+" \u2502 "+a+i(o.muted)+O+c.period+a),c.description){let g=L(c.description,l);for(let y of g)n.push(i(o.border)+" \u2502 "+a+i(o.text)+y+a)}h||n.push(i(o.border)+" \u2502"+a)}return n}function h2(u,e,t,n){let o=t.theme,r=M(t.width,A.progressBar),s=n?.max??100,l=n?.showPercent??!0,d=Number.isFinite(e)?e:0,c=Math.min(100,Math.max(0,d/s*100)),f=l?5:0,h=Math.max(4,Math.floor(r.content*.4)),p=Math.min(b(u)+2,h),_=Math.max(5,r.content-p-f-2),m=Math.round(c/100*_),F=_-m,g;c>=70?g=o.success:c>=40?g=o.warning:g=o.error;let y=b(u)>p-2?B(u,p-2):u,x=i(o.text)+S(y,p)+a,R=i(g)+"\u2588".repeat(m)+a,Z=i(o.subtle)+"\u2591".repeat(F)+a,V=l?i(o.muted)+` ${Math.round(c)}%`+a:"";return[x+R+Z+V]}function d2(u,e,t){let n=t.theme,o=[],r=u.length,s=M(t.width,A.table),l=u.map((_,m)=>Math.max(b(_),...e.map(g=>b(g[m]??"")))+2),d=Math.max(r,s.content-(r-1)),c=l.reduce((_,m)=>_+m,0);if(c>d){for(let m=0;m<l.length;m++)l[m]=Math.max(2,Math.floor(l[m]/c*d));let _=l.reduce((m,F)=>m+F,0);for(;_>d;){let m=0;for(let F=1;F<l.length;F++)l[F]>l[m]&&(m=F);if(l[m]<=2)break;l[m]--,_--}}let f=t.borderStyle??"single",h=K(f);o.push(i(n.border)+h.topLeft+l.map(_=>h.horizontal.repeat(_)).join(h.teeDown)+h.topRight+a);let p=u.map((_,m)=>{let F=" "+_,g=l[m]-1,y=b(F)>g?B(F,g)+" ":S(F,l[m]);return i(n.accent)+v+y+a});o.push(i(n.border)+h.vertical+a+p.join(i(n.border)+h.vertical+a)+i(n.border)+h.vertical+a),o.push(i(n.border)+h.teeRight+l.map(_=>h.horizontal.repeat(_)).join(h.cross)+h.teeLeft+a);for(let _ of e){let m=_.map((F,g)=>{let y=" "+(F??""),x=l[g]-1,R=b(y)>x?B(y,x)+" ":S(y,l[g]);return i(n.text)+R+a});o.push(i(n.border)+h.vertical+a+m.join(i(n.border)+h.vertical+a)+i(n.border)+h.vertical+a)}return o.push(i(n.border)+h.bottomLeft+l.map(_=>h.horizontal.repeat(_)).join(h.teeUp)+h.bottomRight+a),o}function _2(u,e,t,n){let o=t.theme,r=n?.icon??"\u2192",s=n?.focused??t.focused??!1,d=M(t.width,A.link).content;if(s){let g=" \u276F "+r+" ",y=" ",x=b(g),R=d-x;if(R<=0)return[i(o.accent)+v+B(g,d)+a];let Z=b(u)+b(y)+b(e);if(x+Z<=d)return[i(o.accent)+v+g+N+u+a+i(o.muted)+O+y+e+a];let V=d-x-b(u)-b(y);if(V>=4){let Su=B(e,V);return[i(o.accent)+v+g+N+u+a+i(o.muted)+O+y+Su+a]}let Eu=B(u,R);return[i(o.accent)+v+g+N+Eu+a]}let c=" "+r+" ",f=" ",h=b(c),p=d-h;if(p<=0)return[i(o.text)+B(c,d)+a];let _=b(u)+b(f)+b(e);if(h+_<=d)return[i(o.text)+c+u+a+i(o.subtle)+O+f+e+a];let m=d-h-b(u)-b(f);if(m>=4){let g=B(e,m);return[i(o.text)+c+u+a+i(o.subtle)+O+f+g+a]}let F=B(u,p);return[i(o.text)+c+F+a]}function p2(u,e){let t=u.theme,n=e?.color??t.border,r=M(u.width,A.divider).content;if(e?.style==="label"&&e.label){let l=Math.max(0,r-8),d=e.label;d.length>l&&(d=d.slice(0,Math.max(0,l-1))+"\u2026");let c=` ${d} `,f=Math.max(0,r-c.length-4),h=Math.floor(f/2),p=f-h;return[i(n)+"\u2500\u2500"+"\u2500".repeat(h)+a+i(t.muted)+c+a+i(n)+"\u2500".repeat(p)+"\u2500\u2500"+a]}let s="\u2500";return e?.style==="dashed"?s="\u2504":e?.style==="dotted"?s="\xB7":e?.style==="double"&&(s="\u2550"),[i(n)+s.repeat(r)+a]}function m2(u=1){return Array(Math.max(0,u)).fill("")}function g2(u,e,t){let n=e.theme,o=t?.style??"border",s=M(e.width,A.quote).content,l=[],d=L(`"${u}"`,s);if(o==="border"){for(let c of d)l.push(i(n.accent)+" \u2502 "+a+j+i(n.text)+c+a);if(t?.attribution){let c="\u2014 "+t.attribution;b(c)>s&&(c=c.substring(0,s-1)+"\u2026");let f=Math.max(0,s-b(c));l.push(i(n.accent)+" \u2502 "+a+i(n.muted)+O+" ".repeat(f)+c+a)}}else if(o==="fancy"){l.push(i(n.accent)+" \u250C"+"\u2500".repeat(s+2)+"\u2510"+a);for(let c of d)l.push(i(n.accent)+" \u2502 "+a+j+i(n.text)+c+" ".repeat(Math.max(0,s-b(c)))+a+i(n.accent)+" \u2502"+a);if(t?.attribution){let c="\u2014 "+t.attribution,f=Math.max(0,s-b(c));l.push(i(n.accent)+" \u2502 "+a+" ".repeat(f)+i(n.muted)+c+a+i(n.accent)+" \u2502"+a)}l.push(i(n.accent)+" \u2514"+"\u2500".repeat(s+2)+"\u2518"+a)}else{for(let c of d)l.push(" "+j+i(n.text)+c+a);t?.attribution&&l.push(" "+i(n.muted)+O+"\u2014 "+t.attribution+a)}return l}function F2(u,e,t){let n=M(e.width,A.badge),o=t?.color??e.theme.warning;return(t?.style??"outline")==="filled"?cu+i(o)+` ${u} `+a:i(o)+`[${u}]`+a}function b2(u,e){let t=e.theme,n=[],r=M(e.width,A.hero).content;n.push("");let s=L(u.title,r);for(let l of s){let d=i(t.accent)+v+l+a;n.push(S(d,r,"center"))}if(n.push(""),u.subtitle){let l=L(u.subtitle,r);for(let d of l){let c=i(t.text)+d+a;n.push(S(c,r,"center"))}n.push("")}if(u.cta){let l=i(t.accent)+v+N+u.cta.label+a;n.push(S(l,r,"center")),n.push("")}if(u.art){let l=u.art.split(`
11
+ `);for(let d of l)n.push(S(i(t.muted)+d+a,r,"center"))}return n.push(""),n}function C2(u,e,t){let n=M(e.width,A.list),o=e.theme,r=t??"bullet",s={bullet:()=>"\u2022",number:c=>`${c+1}.`,dash:()=>"\u2500",check:()=>"\u2713",arrow:()=>"\u2192"},l=s[r]??s.bullet,d=[];for(let c=0;c<u.length;c++){let h=` ${l(c)} `,p=" ".repeat(h.length),_=Math.max(1,n.content-h.length),m=L(u[c],_);for(let F=0;F<m.length;F++)F===0?d.push(i(o.accent)+h+a+i(o.text)+m[F]+a):d.push(p+i(o.text)+m[F]+a)}return d}function w2(u,e,t){let n=M(e.width,A.image),o=Math.min(t?.width??Math.min(40,n.content),n.content),r=Math.floor(o/3),s=e.theme,l=[];l.push(i(s.border)+"\u250C"+"\u2500".repeat(o)+"\u2510"+a);for(let d=0;d<r;d++)if(d===Math.floor(r/2)){let c=`[Image: ${u}]`,f=Math.max(0,o-b(c)),h=Math.floor(f/2),p=f-h;l.push(i(s.border)+"\u2502"+a+" ".repeat(h)+i(s.muted)+c+a+" ".repeat(p)+i(s.border)+"\u2502"+a)}else l.push(i(s.border)+"\u2502"+" ".repeat(o)+"\u2502"+a);return l.push(i(s.border)+"\u2514"+"\u2500".repeat(o)+"\u2518"+a),l}function y2(u,e,t){let n=M(e.width,A.gallery),o=t?.columns??Math.min(3,Math.max(1,Math.floor(n.content/30))),r=t?.scrollIndex??0,s=e.theme,l=Math.floor((n.content-(o-1)*2)/o);for(;l<20&&o>1;)o--,l=Math.floor((n.content-(o-1)*2)/o);let c=u.slice(r,r+o).map(p=>wu(p,{...e,width:l})),f=Math.max(0,...c.map(p=>p.length)),h=[];for(let p=0;p<f;p++){let _=c.map(m=>{let F=m[p]??"";return S(F,l)});h.push(_.join(" "))}if(u.length>o){let p=i(s.muted)+O+` \u25C2 ${r+1}-${Math.min(r+o,u.length)} of ${u.length} \u25B8`+a;h.push(S(p,n.content,"center"))}return h}C.register("text",(u,e)=>c2(u.content,e,u.style));C.register("list",(u,e)=>C2(u.items,e,u.style));C.register("quote",(u,e)=>g2(u.text,e,{attribution:u.attribution,style:u.style}));C.register("table",(u,e)=>d2(u.headers,u.rows,e));C.register("progressBar",(u,e)=>h2(u.label,u.value,e,{max:u.max,showPercent:u.showPercent}));C.register("badge",(u,e)=>[F2(u.text,e,{color:u.color,style:u.style})]);C.register("image",(u,e)=>w2(u.path,e,{width:u.width,mode:u.mode}));C.register("divider",(u,e)=>p2(e,{style:u.style,label:u.label,color:u.color}));C.register("spacer",u=>m2(u.lines));C.register("custom",(u,e)=>u.render(e.width,e.theme));C.register("card",(u,e)=>wu(u,e),!0);C.register("link",(u,e)=>_2(u.label,u.url,e,{icon:u.icon}),!0);C.register("hero",(u,e)=>b2(u,e),!0);C.register("tabs",(u,e)=>[],!0);C.register("accordion",(u,e)=>[],!0);C.register("timeline",(u,e)=>f2(u.items,e,u.style));C.register("gallery",(u,e)=>y2(u.items,e,{columns:u.columns}));C.register("textInput",(u,e)=>[],!0);C.register("textArea",(u,e)=>[],!0);C.register("select",(u,e)=>[],!0);C.register("checkbox",(u,e)=>[],!0);C.register("toggle",(u,e)=>[],!0);C.register("radioGroup",(u,e)=>[],!0);C.register("numberInput",(u,e)=>[],!0);C.register("searchInput",(u,e)=>[],!0);C.register("button",(u,e)=>[],!0);C.register("columns",(u,e)=>[]);C.register("rows",(u,e)=>[]);C.register("split",(u,e)=>[]);C.register("grid",(u,e)=>[]);C.register("panel",(u,e)=>[]);C.register("box",(u,e)=>[]);C.register("row",(u,e)=>[]);C.register("container",(u,e)=>[]);eu();function vu(u){if(!u.name)throw new Error("Site config must have a name");if(!u.pages||u.pages.length===0)throw new Error("Site must have at least one page");for(let e of u.pages)if(!e.id)throw new Error(`Page must have an id: ${JSON.stringify(e)}`);return{config:u}}function D(u,e){return{id:u,...e}}function w(u){return{type:"card",...u}}function xu(u,e){return{type:"list",items:u,style:e}}function Bu(u){return{type:"hero",...u}}function U(u,e,t){return{type:"link",label:u,url:e,icon:t?.icon}}function k(u){return{type:"text",content:u.replace(/\n\s+/g,`
12
+ `),style:"markdown"}}function P(u,e){return typeof u=="string"&&u!=="solid"&&u!=="dashed"&&u!=="dotted"&&u!=="double"&&u!=="label"?{type:"divider",style:"label",label:u}:{type:"divider",style:u,label:e}}function Iu(u){return{type:"textInput",...u}}function Mu(u){return{type:"button",...u}}function Au(u){let e={type:"form",...u};for(let t of e.fields)t.type==="button"&&(t._formId=e.id);return e}ru();var yu=0;function Pu(u,e){return typeof u=="function"?{type:"dynamic",render:u,_dynamicId:`dynamic-${yu++}`}:{type:"dynamic",deps:u,render:e,_dynamicId:`dynamic-${yu++}`}}async function W(u){try{let e=new AbortController,t=u.timeout?setTimeout(()=>e.abort(),u.timeout):null,n={method:u.method??"GET",headers:{"Content-Type":"application/json",...u.headers},signal:e.signal};u.body&&u.method!=="GET"&&(n.body=typeof u.body=="string"?u.body:JSON.stringify(u.body));let o=await fetch(Cu(u.url),n);t&&clearTimeout(t);let r=null;return(o.headers.get("content-type")??"").includes("application/json")?r=await o.json():r=await o.text(),o.ok?{data:r,error:null,status:o.status,ok:!0}:{data:r,error:new Error(`HTTP ${o.status}: ${o.statusText}`),status:o.status,ok:!1}}catch(e){return{data:null,error:e instanceof Error?e:new Error(String(e)),status:0,ok:!1}}}async function $(u){return W(u)}$.get=(u,e)=>W({url:u,method:"GET",headers:e});$.post=(u,e,t)=>W({url:u,method:"POST",body:e,headers:t});$.put=(u,e,t)=>W({url:u,method:"PUT",body:e,headers:t});$.delete=(u,e)=>W({url:u,method:"DELETE",headers:e});$.patch=(u,e,t)=>W({url:u,method:"PATCH",body:e,headers:t});var E=su({conversation:"",loading:!1,history:[]});async function G(u){let e=u["ai-prompt"];if(!e||!e.trim())return{error:"Type a message first"};let t=E.get("history");E.set("loading",!0),E.set("conversation",E.get("conversation")+`
13
+ **You:** ${e}
14
+
15
+ *thinking...*
16
+ `);try{let n=await $.post("https://theomar.me/api/chat",{messages:[...t,{role:"user",content:e}]});if(n.ok&&n.data?.message?.content){let o=n.data.message.content,r=[...t,{role:"user",content:e},{role:"assistant",content:o}];E.set("history",r);let s="";for(let l of r)l.role==="user"?s+=`
17
+ **You:** ${l.content}
18
+ `:s+=`
19
+ **Omar:** ${l.content}
20
+ `;E.set("conversation",s)}else E.set("conversation",E.get("conversation").replace(`*thinking...*
21
+ `,`**Omar:** sorry, something went wrong. try again?
22
+ `))}catch{E.set("conversation",E.get("conversation").replace(`*thinking...*
23
+ `,`**Omar:** couldn't reach the server right now. try again in a bit?
24
+ `))}return E.set("loading",!1),{success:"Message sent"}}var x5=vu({name:"Omar Musayev",tagline:"AI Engineer & Full Stack Developer",banner:{text:"OMAR",font:"ANSI Shadow",gradient:["#ff6b00","#ff9500"]},theme:"cyberpunk",borders:"rounded",animations:{boot:!0,transitions:"fade",exitMessage:"// Session terminated. See you later!"},menu:{order:["home","resume","projects","blogs","omar-ai"],labels:{"omar-ai":"OmarAi"},icons:{resume:"\u25C6",projects:"\u25A3",blogs:"\u2726","omar-ai":">"}},pages:[D("home",{title:"Home",content:[Bu({title:"Omar Musayev",subtitle:"AI Engineer & Full Stack Developer | Purdue University | 4.0 GPA"}),P("About"),w({title:"About Me",body:"I'm a double major in Artificial Intelligence and Mathematics at Purdue University with a 4.0 GPA. Passionate about starting new projects, finishing what I can, and learning along the way. I love building things\u2014especially with AI\u2014and exploring how tech can solve real-world problems."}),P("Skills"),xu(["Multi-Agentic Systems","LLM Fine-Tuning","RAG Pipelines","Prompt Engineering","Computer Vision","NLP","TensorFlow","PyTorch","LangChain","Neural Networks","Reinforcement Learning","Time Series Forecasting","Python","JavaScript","React","Next.js","Node.js","SQL","Git","Java","C++"],"check"),P("Contact"),U("Website","https://theomar.me",{icon:"\u25C6"}),U("Email","mailto:omar.musayev.v.2@gmail.com",{icon:"\u2709"}),U("LinkedIn","https://linkedin.com/in/omar-musayev-267195286/",{icon:"\u25C9"}),U("Instagram","https://instagram.com/omar.musayev/",{icon:"\u2605"})]}),D("resume",{title:"Resume",icon:"\u25C6",content:[P("Experience"),w({title:"Purdue LaunchPad",subtitle:"Website Chair & Organizer \u2014 West Lafayette, IN | 2025 \u2013 Present",body:"Website Chair and Organizer for Purdue's largest CS/DS mentorship community. LaunchPad is a one-on-one, semester-long mentorship program that pairs incoming students with upperclassmen, guiding them in building technical projects and fostering community through events and skill-building workshops."}),w({title:"COP-29 (UNFCCC)",subtitle:"ICT Technician \u2014 Baku, Azerbaijan | November 2024",body:"Selected as one of 50 technicians from ~15,000 applicants for a 55,000-attendee conference. Tracked and maintained 1,000+ laptops, set up presentation equipment, assisted broadcasters/guests with technical issues, and coordinated daily patches and team memos."}),w({title:"Payriff",subtitle:"AI Intern \u2014 Baku, Azerbaijan | June 2024 \u2013 September 2024",body:"Developed an AI-driven credit-scoring solution integrating data from banks and mobile providers. Built an AI chatbot to explain Payriff service APIs, streamlining developer onboarding."}),w({title:"U\u015Faqlar\u0131m\u0131za \xD6yr\u0259d\u0259k",subtitle:"Lead Developer \u2014 Baku, Azerbaijan | January 2024 \u2013 Present",body:"Led development of a comprehensive website for a youth-led NGO supporting underprivileged children; published resources and promoted educational initiatives across Azerbaijan."}),P("Volunteering"),w({title:"F1 Baku City Circuit",subtitle:"Workforce Team Member \u2014 Baku, Azerbaijan | June 2022",body:"Oversaw volunteer check-in/out and punctuality for ~1,500 volunteers; resolved operational issues throughout race weekend."}),w({title:"European Azerbaijan School",subtitle:"CAS Team Member \u2014 Baku, Azerbaijan | September 2024 \u2013 Ongoing",body:"Participated in environmental cleanup of beaches, mountains, and lakes in Azerbaijan."}),P("Honors & Awards"),w({title:"Purdue Dean's List",subtitle:"2025",body:"Named to the Purdue University Dean's List for academic excellence."}),w({title:"Purdue Semester Honors",subtitle:"2025",body:"Awarded Semester Honors at Purdue University for outstanding academic performance."}),w({title:"Azerbaijan Olympiad in Informatics",subtitle:"Silver Medal \u2014 2022",body:"Recognized among top participants for outstanding performance in computer algorithms."}),w({title:"IELTS",subtitle:"Score: 8.5 \u2014 2024",body:"Achieved an 8.5 overall, with perfect scores in reading and listening."}),w({title:"SAT Superscore",subtitle:"Score: 1520 \u2014 2024",body:"Achieved a 1520 SAT superscore (780 Math, 740 Reading/Writing)."}),P("Education"),w({title:"B.S. in Artificial Intelligence & Mathematics",subtitle:"Purdue University, College of Science \u2014 August 2025 \u2013 Ongoing",body:"Double major in Artificial Intelligence and Mathematics. 4.0 GPA. Dean's List and Semester Honors recipient."}),w({title:"International Baccalaureate",subtitle:"European Azerbaijan School \u2014 2022 \u2013 2024",body:"IBDP Subjects: Math AA HL, Business Management HL, Computer Science HL, English A SL, Physics SL, Spanish AB Initio. MYP: 7/7 from M23 Personal Project."}),w({title:"Pre-College: Introduction to Machine Learning for Astronomy",subtitle:"Harvard University \u2014 June \u2013 July 2024, Boston, MA",body:"Applied machine learning algorithms to contemporary astronomical problems."}),w({title:"Pre-College: Data Science and Machine Learning 2",subtitle:"Columbia University \u2014 July \u2013 August 2024, New York, NY",body:"Advanced course on data science and machine learning using Python and statistical methods."}),w({title:"Physics for Scientists and Engineers: Mechanics",subtitle:"University of California, Los Angeles (UCLA) \u2014 August \u2013 September 2024, Online",body:"5-unit credit course covering fundamental mechanics for scientists and engineers."}),w({title:"Artificial Intelligence and Machine Learning",subtitle:"Stanford University \u2014 July \u2013 August 2023, Palo Alto, CA",body:"NVIDIA DLI program using the Jetson Nano; hands-on AI/ML projects."}),w({title:"AI Scholars Program",subtitle:"Inspirit AI \u2014 August 2023, Online",body:"Certificate program covering modern AI concepts and practical applications."})]}),D("projects",{title:"Projects",icon:"\u25A3",content:[P("Projects"),w({title:"TerminalTUI",subtitle:"Creator & Lead Developer \u2014 Developer Tool \u2014 2025",body:"A TypeScript framework for building interactive terminal user interfaces with 1,500+ downloads on npm. Converts declarative TypeScript into fully interactive TUI applications runnable via a single npx command. Features 30+ pre-built UI components, a 12-column responsive grid system, spatial arrow-key navigation, 10 color themes, an ASCII art engine, file-based routing, reactive state management, and form handling. Includes 2,185+ tests.",url:"https://www.npmjs.com/package/terminaltui",tags:["TypeScript","CLI","Framework"]}),w({title:"Adneural",subtitle:"Creator & Lead Developer \u2014 AI Project \u2014 2025",body:"A platform connecting computational neuroscience with social simulation for pre-launch advertising analysis. Predicts how ads will perform neurologically and socially before launch by combining Meta TRIBE v2 brain encoding (trained on 450 hours of fMRI data) with MiroFish/OASIS multi-agent social simulation (200 personality-diverse agents). Features Neo4j GraphRAG integrating 22 neuroscience papers, LangGraph diagnostic analysis, and Three.js brain visualization. Built with Next.js 15, React 19, FastAPI, and OpenRouter.",url:"https://github.com/OmarMusayev/Adneural",tags:["AI","Neuroscience","Next.js"]}),w({title:"Ushaqlarimiza Oyredek Website",subtitle:"Lead Developer \u2014 Web Development \u2014 2024",body:"Served as the Lead Developer for a youth-led NGO focused on providing education to underprivileged children and fostering a passion for learning among youth.",url:"https://ushaqlarimizaoyredek.com",tags:["Web Development"]}),w({title:"World Temperature Forecasting",subtitle:"Researcher & Developer \u2014 AI Project \u2014 2024",body:"Designed a time series model using LSTMs to predict global temperatures, aiding planning and combating climate change.",tags:["AI","LSTM","Time Series"]}),w({title:"AI Handwriting Generator",subtitle:"Developer \u2014 AI Project \u2014 May 2023",body:"A web application that generates realistic handwritten text using deep learning. Features two neural network approaches: a 3-layer LSTM with Gaussian attention for style transfer, and a 6-layer Transformer decoder that tokenizes strokes into polar coordinates. Users can draw on a canvas to capture their own handwriting style and generate personalized text. Built with PyTorch, FastAPI, and JavaScript.",url:"https://hand-magic.com",tags:["AI","Deep Learning","PyTorch"]}),w({title:"AI Jigsaw Puzzle Solver",subtitle:"Lead Developer \u2014 AI Project \u2014 Apr 2023",body:"Created an AI-driven jigsaw puzzle solver that automatically assembles pieces using computer vision techniques.",url:"https://tinyurl.com/PuzzleSolvers",tags:["AI","Computer Vision"]})]}),D("blogs",{title:"Blogs",icon:"\u2726",content:[P("Dev Logs"),w({title:"OmarAi Dev Log 1",subtitle:"September 8, 2024",body:"Starting on the journey to making an AI Large Language Model (LLM) that can replicate my speech",action:{navigate:"blog-1"}}),w({title:"OmarAi Dev Log 2",subtitle:"September 12, 2024",body:"Tinkering around with Omar AI to get better results",action:{navigate:"blog-2"}}),w({title:"OmarAi Dev Log 3",subtitle:"September 14, 2024",body:"Testing out the model",action:{navigate:"blog-3"}}),w({title:"OmarAi Dev Log 4",subtitle:"September 18, 2024",body:"Creating the UI",action:{navigate:"blog-4"}}),w({title:"OmarAi Dev Log 5",subtitle:"October 2, 2024",body:"The Launch",action:{navigate:"blog-5"}})]}),D("blog-1",{title:"OmarAi Dev Log 1",content:[k(`# OmarAi Dev Log 1
25
+ *September 8, 2024*
26
+
27
+ Hello Everybody,
26
28
 
27
29
  Today I started working on a project that I have been meaning to do for a long time, creating an AI version of me. Well at least something similar, we all know that AI can't replace me but I need someone who I can rely on to answer questions about me to other people.
28
30
 
@@ -30,15 +32,38 @@ Today I started working on a project that I have been meaning to do for a long t
30
32
 
31
33
  **The file structure it gives us is similar to this:**
32
34
 
35
+ \`\`\`
33
36
  messages/inbox/Xpersonsname/mychatlogswiththatperson
37
+ \`\`\`
34
38
 
35
39
  And inside, you'll find a file called \`message_1.json\` (sometimes more, depending on the length of the chat) and possibly folders for photos, videos, and other media shared in the chat.
36
40
 
37
- The \`message_1.json\` files contain a series of messages exchanged between me and the other person, formatted as a JSON object.
41
+ The \`message_1.json\` files contain a series of messages exchanged between me and the other person, formatted as a JSON object. Here's a simplified example of what these messages look like inside the JSON:
42
+
43
+ \`\`\`json
44
+ {
45
+ "participants": [
46
+ { "name": "Omar Musayev" },
47
+ { "name": "Abdul-Aziz Mammadli" }
48
+ ],
49
+ "messages": [
50
+ {
51
+ "sender_name": "Abdul-Aziz Mammadli",
52
+ "timestamp_ms": 1712667823182,
53
+ "content": "Hey Omar, how's it going?"
54
+ },
55
+ {
56
+ "sender_name": "Omar Musayev",
57
+ "timestamp_ms": 1712667805807,
58
+ "content": "Not bad, just working on this cool AI project!"
59
+ }
60
+ ]
61
+ }
62
+ \`\`\`
38
63
 
39
64
  There are a few ways I tried to organize this data into a way the fine-tuning can understand.
40
65
 
41
- First, I tried to pair up every consecutive message that contained me at least once in the structure: Prompt : answer
66
+ First, I tried to pair up every consecutive message that contained me at least once in the structure: **Prompt : answer**
42
67
 
43
68
  But then I realized that when texting, I often double text, leading to the AI thinking I'm talking to myself.
44
69
 
@@ -46,8 +71,8 @@ I then fixed this problem and wrote a program to detect when I and another perso
46
71
 
47
72
  At the time, I was satisfied with the results and moved on to the fine-tuning. I tried fine-tuning 2 models:
48
73
 
49
- - Babbage-002
50
- - GPT-4o-mini-2024-07-18
74
+ - **Babbage-002**
75
+ - **GPT-4o-mini-2024-07-18**
51
76
 
52
77
  However, they didn't give me the best of results. While GPT-4o-mini-2024-07-18 could give me actual responses, they were usually very short or just irrelevant. One thing it did pick up on was my vocabulary, and it would use words like "I mean", "Kinda", and "fr".
53
78
 
@@ -61,7 +86,10 @@ After doing this, I put my new data into the GPT-4o-2024-08-06 model fine-tuning
61
86
 
62
87
  I will update you guys on the results in the next dev log.
63
88
 
64
- See you guys later!!`},2:{title:"OmarAi Dev Log 2",date:"September 12, 2024",content:`Hello Everybody,
89
+ See you guys later!!`)]}),D("blog-2",{title:"OmarAi Dev Log 2",content:[k(`# OmarAi Dev Log 2
90
+ *September 12, 2024*
91
+
92
+ Hello Everybody,
65
93
 
66
94
  So, over the course of the past few days I have found some mistakes in my old codes for OmarAi and I have experimented with new things.
67
95
 
@@ -73,52 +101,69 @@ The fix for this was quite easy. I just had to reverse the order of messages bef
73
101
 
74
102
  Now, coming back to my original problem of having too many messages that took too many resources without contributing anything to the model, I first had to make sure that my conversations were in English. While looking at the data, I noticed that most of the conversations included Azerbaijani or even random languages that me and my friends had developed to talk to each other. This would negatively affect the future model as its language understanding would be confused so I had to find a way of cutting it.
75
103
 
76
- The solution I came up with? Use AI!
104
+ The solution I came up with? **Use AI!**
77
105
 
78
- I used the OpenAI gpt-3.5 API to go over each of my message pairs and convert them into data that was more useful to the model that I wanted to train. I made an algorithm to feed it 50 conversations at a time and for it to choose the best 4-5 each time which was in English.
106
+ I used the open-ai gpt-3.5 api to go over each of my message pairs and convert them into data that was more useful to the model that I wanted to train. I made an algorithm to feed it 50 conversations at a time and for it to choose the best 4-5 each time which was in English.
79
107
 
80
108
  This was a huge success and allowed me to downsize my dataset of 20 thousand conversations to around 2 thousand high quality conversations that could all contribute to fine tuning "OmarAI".
81
109
 
82
- The next step was using an algorithm to comb over the new data and make sure all of it was in the format that was appropriate to fine-tune OpenAI models. The algorithm fixed all the inconsistencies gpt-3.5 had created in the syntax.
110
+ The next step was using an algorithm to comb over the new data and make sure all of it was in the format that was appropriate to fine-tune open-ai models. The algorithm fixed all the inconsistencies gpt-3.5 had created in the syntax.
111
+
112
+ After the data was ready, I put it into gpt-o4 api for fine tuning and went to sleep to see the results the next day.
83
113
 
84
- After the data was ready, I put it into gpt-4o API for fine tuning and went to sleep to see the results the next day.
114
+ I will keep you guys updated on how it turns out.`)]}),D("blog-3",{title:"OmarAi Dev Log 3",content:[k(`# OmarAi Dev Log 3
115
+ *September 14, 2024*
85
116
 
86
- I will keep you guys updated on how it turns out.`},3:{title:"OmarAi Dev Log 3",date:"September 14, 2024",content:`Hello Everybody,
117
+ Hello Everybody,
87
118
 
88
- Yesterday I was able to use the new model trained on the AI-picked data for the first time. It was a weird experience.
119
+ Yesterday I was able to use the new model trained on the ai-picked data for the first time. It was a weird experience.
89
120
 
90
121
  Since I hadn't made a UI for the model yet I just experimented around with it from a command prompt after writing a simple python code to communicate with my model.
91
122
 
92
123
  The results were definitely interesting. It felt like the model had captured my conversation style and was able to sound similar to how I would text but it didn't have any memories. It would try to make up random information for the stuff it didn't know and this was a huge flaw as the REAL Omar would know about them all.
93
124
 
94
- To fix this problem I explored a few things. First, I tried to turn my past conversations, resumes, essays, etc into text embeddings that I could use as a "memory" for the model. However this approach was too slow due to the large amount of information that the model had to go through each time. After that, I made a JSON file with all the information needed about me (including what I thought about my friends, family, etc) and tried to use OpenAI's new threads and multi agent systems to have one agent do a file search while the other would use the information from the file search in its responses. This approach also had its issues as having 2 agents instead of one used up lots of tokens as well as being extremely slow which made me finally opt in for simplicity.
125
+ To fix this problem I explored a few things:
126
+
127
+ 1. **Text Embeddings** \u2014 I tried to turn my past conversations, resumes, essays, etc into text embeddings that I could use as a "memory" for the model. However this approach was too slow due to the large amount of information that the model had to go through each time.
128
+
129
+ 2. **Multi-Agent System** \u2014 I made a json file with all the information needed about me and tried to use OpenAI's new threads and multi agent systems to have one agent do a file search while the other would use the information from the file search in its responses. This approach also had its issues as having 2 agents instead of one used up lots of tokens as well as being extremely slow.
95
130
 
96
- Using the JSON file from the previous approach I was able to use OpenAI's system messages to give my model some context on the JSON so it can quickly search through it and pick the right data to answer questions. I also passed on a protocol into the model for it to not reveal any personal information.
131
+ 3. **System Prompt with JSON Context** \u2014 Finally opting for simplicity, I used the JSON file from the previous approach and passed it through OpenAI's system messages to give my model context so it can quickly search through it and pick the right data to answer questions. I also passed on a protocol for it to not reveal any personal information.
132
+
133
+ Here was the system prompt for Omar-AI:
134
+
135
+ > "You are a friendly assistant who always maintains a fun and casual tone while ensuring sensitive information remains confidential. When discussing personal or delicate topics, gently steer the conversation in a light and engaging direction without disclosing private details."
97
136
 
98
137
  This prompt seemed to work and for now training the model was finished. Up next is building a UI for the model.
99
138
 
100
- See You guys later!`},4:{title:"OmarAi Dev Log 4",date:"September 18, 2024",content:`Creating the UI for OmarAI was definitely a journey and I am going to explain it here.
139
+ See You guys later!`)]}),D("blog-4",{title:"OmarAi Dev Log 4",content:[k(`# OmarAi Dev Log 4
140
+ *September 18, 2024*
141
+
142
+ Creating the UI for OmarAI was definitely a journey and I am going to explain it here.
101
143
 
102
144
  First I had to think about whether I wanted to build a separate website for Omar AI or if I wanted to use my current blog site for it. In the end I decided on using my own blog site as this website already has everything about me in one place so adding an actual Omar into the mix would be a pretty fun feature.
103
145
 
104
- I first started looking for Next.js templates that could help me implement this and I came across a template that Subframe made for AI chat bots. However, when I tried to use it within my website, I ran into compatibility issues. There were multiple libraries and dependencies in the template that were a different version to the dependencies and libraries that I had used for my own website. This clash of dependencies caused the website to not function.
146
+ I first started looking for next js templates that could help me implement this and I came across a template that subframe made for ai chat bots. However, when I tried to use it within my website, I ran into compatibility issues. There were multiple libraries and dependencies in the template that were a different version to the dependencies and libraries that I had used for my own website. This clash of dependencies caused the website to not function.
105
147
 
106
- My thought process next was to create a chatbot frame on my own but there were problems with that too. Creating the front-end of the chatbot was quite easy but I couldn't get it to connect directly to the OpenAI API. I tried to do the back end within the Next.js app by using the API routes inside the project but I soon realized how much more difficult it was to code an API in JavaScript rather than Python which I am much more experienced in.
148
+ My thought process next was to create a chatbot frame on my own but there were problems with that too. Creating the front-end of the chatbot was quite easy but I couldn't get it to connect directly to the OpenAI api. I tried to do the back end within the next js app using the api routes inside the project but I soon realized how much more difficult it was to code an API in javascript rather than python which I am much more experienced in.
107
149
 
108
- For this reason, I ended up opening a new backend project in Python where I put my AI model into and gave some instructions. After hosting that API on the cloud I made a call to it within the front end code of my website so that the frontend and back end were connected.
150
+ For this reason, I ended up opening a new backend project in python where I put my ai model into and gave some instructions. After hosting that api on the cloud I made a call to it within the front end code of my website so that the frontend and back end were connected.
109
151
 
110
152
  This way I had finally made a functional chatbot within my website.
111
153
 
112
- Omar Musayev`},5:{title:"OmarAi Dev Log 5",date:"October 2, 2024",content:`Hello everyone!
154
+ Omar Musayev`)]}),D("blog-5",{title:"OmarAi Dev Log 5",content:[k(`# OmarAi Dev Log 5
155
+ *October 2, 2024*
156
+
157
+ Hello everyone!
113
158
 
114
- I was finally able to launch my model to the public and was able to gather tons of feedback from my peers on how I should improve the model and make it more like me. This blog will explore the changes I've made on the program since the launch and my reasons for making these changes. Some changes were quite simple, like including some more information about me within the memory, but some were more complicated \u2014 such as tweaking the personality of the model through additional fine-tuning to allow it to give bigger and more comprehensive responses. Additionally, I have also tried to create new models based on other large language models like Llama, MPT, and Falcon.
159
+ I was finally able to launch my model to the public and was able to gather tons of feedback from my peers on how I should improve the model and make it more like me. This blog will explore the changes I've made on the program since the launch and my reasons for making these changes. Some changes were quite simple, like including some more information about me within the memory, but some were more complicated\u2014such as tweaking the personality of the model through additional fine-tuning to allow it to give bigger and more comprehensive responses. Additionally, I have also tried to create new models based on other large language models like Llama, MPT, and Falcon.
115
160
 
116
- One of the first things I noticed after launching OmarAI was that users enjoyed its conversational tone but wanted more depth. While my initial training data gave it a strong sense of my casual style \u2014 complete with slang and emojis \u2014 the AI often kept its answers too short or simplistic, especially when asked more elaborate questions. To fix this, I tweaked the fine-tuning to encourage lengthier, more detailed responses. I included examples of real conversations where I wrote lengthy paragraphs, or provided more involved stories and insights. This taught the AI to deliver fuller, richer answers rather than short, surface-level replies.
161
+ One of the first things I noticed after launching OmarAI was that users enjoyed its conversational tone but wanted more depth. While my initial training data gave it a strong sense of my casual style\u2014complete with slang and emojis\u2014the AI often kept its answers too short or simplistic, especially when asked more elaborate questions. To fix this, I tweaked the fine-tuning to encourage lengthier, more detailed responses. I included examples of real conversations where I wrote lengthy paragraphs, or provided more involved stories and insights. This taught the AI to deliver fuller, richer answers rather than short, surface-level replies.
117
162
 
118
- Another piece of feedback I consistently received was that the AI sometimes lacked continuity when referring to personal information. For example, it would occasionally mention random facts about me that I might have briefly referenced in older messages, but it wouldn't always remember important details I'd shared in the more recent data. To address this, I expanded the "memory" section of my system prompt. This memory now includes a curated list of facts about me \u2014 covering my interests, hobbies, close relationships, and notable personal anecdotes \u2014 so OmarAI has a more reliable context to draw upon. However, I also updated the protocols to ensure that truly sensitive or private information remains confidential. In other words, if someone asks for something personal that isn't meant to be shared, the AI knows to politely but firmly redirect the conversation without revealing anything I'd consider private.
163
+ Another piece of feedback I consistently received was that the AI sometimes lacked continuity when referring to personal information. For example, it would occasionally mention random facts about me that I might have briefly referenced in older messages, but it wouldn't always remember important details I'd shared in the more recent data. To address this, I expanded the "memory" section of my system prompt. This memory now includes a curated list of facts about me\u2014covering my interests, hobbies, close relationships, and notable personal anecdotes\u2014so OmarAI has a more reliable context to draw upon. However, I also updated the protocols to ensure that truly sensitive or private information remains confidential. In other words, if someone asks for something personal that isn't meant to be shared, the AI knows to politely but firmly redirect the conversation without revealing anything I'd consider private.
119
164
 
120
- Speaking of protocols, I made sure to refine them for both security and personality reasons. Originally, the model's system prompt included a friendly, casual directive, but some users tried to push boundaries by asking for deeply personal details. Now, OmarAI not only refuses to reveal such information, but it does so in a playful, lighthearted way \u2014 staying true to my personality while maintaining respect for personal boundaries. I also introduced a "playful fallback" mechanism, so when repeatedly pressed, OmarAI can politely deflect the conversation with a bit of humor, such as sharing a random fun fact or changing the subject in a friendly manner.
165
+ Speaking of protocols, I made sure to refine them for both security and personality reasons. Originally, the model's system prompt included a friendly, casual directive, but some users tried to push boundaries by asking for deeply personal details. Now, OmarAI not only refuses to reveal such information, but it does so in a playful, lighthearted way\u2014staying true to my personality while maintaining respect for personal boundaries. I also introduced a "playful fallback" mechanism, so when repeatedly pressed, OmarAI can politely deflect the conversation with a bit of humor, such as sharing a random fun fact or changing the subject in a friendly manner.
121
166
 
122
- Finally, I experimented with building models based on Llama, MPT, and Falcon. While each has its strengths \u2014 like Llama's efficient performance or Falcon's open-source flexibility \u2014 I discovered that GPT-based models still deliver the best overall user experience in terms of coherence, creativity, and ease of deployment for my specific needs. In the future, I may consider a hybrid approach that leverages the benefits of multiple architectures, but for now, I'm happy with where OmarAI stands.
167
+ Finally, I experimented with building models based on Llama, MPT, and Falcon. While each has its strengths\u2014like Llama's efficient performance or Falcon's open-source flexibility\u2014I discovered that GPT-based models still deliver the best overall user experience in terms of coherence, creativity, and ease of deployment for my specific needs. In the future, I may consider a hybrid approach that leverages the benefits of multiple architectures, but for now, I'm happy with where OmarAI stands.
123
168
 
124
- As I continue to refine and improve OmarAI, I'm grateful for everyone's feedback and support. Seeing people interact with an AI version of me has been both surreal and enlightening. There's still room to grow, but for now, I'm proud of the progress we've made and excited for what's next. Stay tuned for more updates, and feel free to keep sending feedback my way!`}},on=Oe({name:"Omar Musayev",handle:"@omarmusayev",tagline:"AI Engineer & Full Stack Developer",banner:De("OMAR",{font:"DOS Rebel",gradient:["#ff8c00","#ff6b35","#fe8019"],shadow:!0}),theme:{accent:"#ff8c00",accentDim:"#cc7000",text:"#e0e0e0",muted:"#888888",subtle:"#333333",success:"#20C20E",warning:"#ffcc00",error:"#ff4444",border:"#ff8c00",bg:"#000000"},borders:"double",animations:{boot:!0,transitions:"fade",exitMessage:"[ end of line ]",speed:"normal"},footer:"(c) 2026 Omar Musayev. All rights reserved.",pages:[Z("home",{title:"Home",icon:"\u25C6",content:[Y("I'm a double major in **Artificial Intelligence** and **Mathematics** at Purdue University with a **4.0 GPA**. Passionate about starting new projects, finishing what I can, and learning along the way. I love building things \u2014 especially with AI \u2014 and exploring how tech can solve real-world problems."),G(),H("Skills"),Ee(["Multi-Agentic Systems","LLM Fine-Tuning","RAG Pipelines","Prompt Engineering","Computer Vision","NLP","TensorFlow","PyTorch","LangChain","Neural Networks","Reinforcement Learning","Time Series Forecasting","Python","JavaScript","React","Next.js","Node.js","SQL","Git","Java","C++"],"check"),G(),H("Connect"),q("Website: theomar.me","https://theomar.me",{icon:">"}),q("Email: omar.musayev.v.2@gmail.com","mailto:omar.musayev.v.2@gmail.com",{icon:"~"}),q("LinkedIn","https://www.linkedin.com/in/omar-musayev-267195286/",{icon:"#"}),q("Instagram","https://www.instagram.com/omar.musayev/",{icon:"*"}),q("GitHub","https://github.com/OmarMusayev",{icon:"+"})]}),Z("resume",{title:"Resume",icon:"\u25A3",content:[H("Experience"),S({title:"//Purdue LaunchPad",subtitle:"Website Chair & Organizer \u2014 2025 \u2013 Present | West Lafayette, IN",body:"Website Chair and Organizer for Purdue's largest CS/DS mentorship community. LaunchPad is a one-on-one, semester-long mentorship program that pairs incoming students with upperclassmen, guiding them in building technical projects and fostering community through events and skill-building workshops."}),S({title:"//COP-29 (UNFCCC)",subtitle:"ICT Technician \u2014 November 2024 | Baku, Azerbaijan",body:"Selected as one of 50 technicians from ~15,000 applicants for a 55,000-attendee conference. Tracked and maintained 1,000+ laptops, set up presentation equipment, assisted broadcasters/guests with technical issues, and coordinated daily patches and team memos."}),S({title:"//Payriff",subtitle:"AI Intern \u2014 June 2024 \u2013 September 2024 | Baku, Azerbaijan",body:"Developed an AI-driven credit-scoring solution integrating data from banks and mobile providers. Built an AI chatbot to explain Payriff service APIs, streamlining developer onboarding."}),S({title:"//U\u015Faqlar\u0131m\u0131za \xD6yr\u0259d\u0259k",subtitle:"Lead Developer \u2014 January 2024 \u2013 Present | Baku, Azerbaijan",body:"Led development of a comprehensive website for a youth-led NGO supporting underprivileged children; published resources and promoted educational initiatives across Azerbaijan."}),G(),H("Volunteering"),S({title:"//F1 Baku City Circuit",subtitle:"Workforce Team Member \u2014 June 2022 | Baku, Azerbaijan",body:"Oversaw volunteer check-in/out and punctuality for ~1,500 volunteers; resolved operational issues throughout race weekend."}),S({title:"//European Azerbaijan School",subtitle:"CAS Team Member \u2014 September 2024 \u2013 Ongoing | Baku, Azerbaijan",body:"Participated in environmental cleanup of beaches, mountains, and lakes in Azerbaijan."}),G(),H("Honors & Awards"),S({title:"//Purdue Dean's List",subtitle:"2025 | West Lafayette, IN",body:"Named to the Purdue University Dean's List for academic excellence."}),S({title:"//Purdue Semester Honors",subtitle:"2025 | West Lafayette, IN",body:"Awarded Semester Honors at Purdue University for outstanding academic performance."}),S({title:"//Azerbaijan Olympiad in Informatics",subtitle:"Silver Medal \u2014 2022 | Baku, Azerbaijan",body:"Recognized among top participants for outstanding performance in computer algorithms."}),S({title:"//IELTS",subtitle:"Score: 8.5 \u2014 2024 | Baku, Azerbaijan",body:"Achieved an 8.5 overall, with perfect scores in reading and listening."}),S({title:"//SAT Superscore",subtitle:"Score: 1520 \u2014 2024 | Baku, Azerbaijan",body:"Achieved a 1520 SAT superscore (780 Math, 740 Reading/Writing)."}),G(),H("Education"),S({title:"//B.S. in Artificial Intelligence & Mathematics",subtitle:"Purdue University \u2014 College of Science | August 2025 \u2013 Ongoing | West Lafayette, IN",body:"Double major in Artificial Intelligence and Mathematics. 4.0 GPA. Dean's List and Semester Honors recipient."}),S({title:"//International Baccalaureate",subtitle:"European Azerbaijan School | 2022 \u2013 2024 | Baku, Azerbaijan",body:"IBDP Subjects: Math AA HL, Business Management HL, Computer Science HL, English A SL, Physics SL, Spanish AB Initio. MYP: 7/7 from M23 Personal Project."}),S({title:"//Pre-College: Introduction to Machine Learning for Astronomy",subtitle:"Harvard University | June \u2013 July 2024 | Boston, MA",body:"Applied machine learning algorithms to contemporary astronomical problems."}),S({title:"//Pre-College: Data Science and Machine Learning 2",subtitle:"Columbia University | July \u2013 August 2024 | New York, NY",body:"Advanced course on data science and machine learning using Python and statistical methods."}),S({title:"//Physics for Scientists and Engineers: Mechanics",subtitle:"University of California, Los Angeles (UCLA) | August \u2013 September 2024 | Online",body:"5-unit credit course covering fundamental mechanics for scientists and engineers."}),S({title:"//Artificial Intelligence and Machine Learning",subtitle:"Stanford University | July \u2013 August 2023 | Palo Alto, CA",body:"NVIDIA DLI program using the Jetson Nano; hands-on AI/ML projects."}),S({title:"//AI Scholars Program",subtitle:"Inspirit AI | August 2023 | Online",body:"Certificate program covering modern AI concepts and practical applications."})]}),Z("projects",{title:"Projects",icon:"\u25C9",content:[S({title:"//Ushaqlarimiza Oyredek Website",subtitle:"Lead Developer \u2014 Web Development \u2014 2024",body:"Served as the Lead Developer for a youth-led NGO focused on providing education to underprivileged children and fostering a passion for learning among youth.",tags:["Web Development"],url:"https://ushaqlarimizaoyredek.com"}),S({title:"//World Temperature Forecasting",subtitle:"Researcher & Developer \u2014 AI Project \u2014 2024",body:"Designed a time series model using LSTMs to predict global temperatures, aiding planning and combating climate change.",tags:["AI","LSTM","Time Series"]}),S({title:"//AI Handwriting Generator",subtitle:"Developer \u2014 AI Project \u2014 May 2023",body:"A web application that generates realistic handwritten text using deep learning. Features two neural network approaches: a 3-layer LSTM with Gaussian attention for style transfer, and a 6-layer Transformer decoder that tokenizes strokes into polar coordinates. Users can draw on a canvas to capture their own handwriting style and generate personalized text. Built with PyTorch, FastAPI, and JavaScript.",tags:["PyTorch","FastAPI","Deep Learning"],url:"https://hand-magic.com"}),q(" GitHub: ai-handwriting-generator","https://github.com/OmarMusayev/ai-handwriting-generator",{icon:"+"}),G(),S({title:"//AI Jigsaw Puzzle Solver",subtitle:"Lead Developer \u2014 AI Project \u2014 Apr 2023",body:"Created an AI-driven jigsaw puzzle solver that automatically assembles pieces using computer vision techniques.",tags:["Computer Vision","AI"],url:"https://tinyurl.com/PuzzleSolvers"})]}),Z("blogs",{title:"Blogs",icon:"\u2726",content:[Y("Development logs documenting the creation of **OmarAI** \u2014 an AI chatbot trained to talk like me."),G(),S({title:"//OmarAi Dev Log 1",subtitle:"September 8, 2024",body:"Starting on the journey to making an AI Large Language Model (LLM) that can replicate my speech.",tags:["OmarAI","LLM","Fine-Tuning"],action:{navigate:"blog-post",params:{slug:"1"}}}),S({title:"//OmarAi Dev Log 2",subtitle:"September 12, 2024",body:"Tinkering around with Omar AI to get better results.",tags:["OmarAI","Data Quality"],action:{navigate:"blog-post",params:{slug:"2"}}}),S({title:"//OmarAi Dev Log 3",subtitle:"September 14, 2024",body:"Testing out the model.",tags:["OmarAI","Testing"],action:{navigate:"blog-post",params:{slug:"3"}}}),S({title:"//OmarAi Dev Log 4",subtitle:"September 18, 2024",body:"Creating the UI.",tags:["OmarAI","UI"],action:{navigate:"blog-post",params:{slug:"4"}}}),S({title:"//OmarAi Dev Log 5",subtitle:"October 2, 2024",body:"The Launch. Post-launch improvements, lengthier responses, expanded memory system, refined security protocols, and experimentation with Llama, MPT, and Falcon.",tags:["OmarAI","Launch","Llama","Falcon"],action:{navigate:"blog-post",params:{slug:"5"}}})]}),ct("blog-post",{title:r=>rn[r.slug]?.title??"Blog Post",icon:"\u2726",content:r=>{let e=rn[r.slug];return e?[Y(`# ${e.title}`),Y(`*${e.date}*`),H(),Y(e.content)]:[Y("Post not found.")]}}),Z("omar-ai",{title:"//OmarAi",icon:"\u25B8",content:[Y("**//OmarAi** \u2014 Chat with an AI version of Omar. Ask about his experience, projects, education, skills, or anything else."),G(),it(["messages","loading","error"],Qn),H(),We({id:"chat-form",onSubmit:async r=>{let e=r["chat-input"];return e?.trim()?(await ue(e),{success:""}):{error:"Type a message first."}},fields:[je({id:"chat-input",label:"Chat with OmarAi",placeholder:"Ask me anything about Omar..."}),ee({label:"Send",style:"primary"})]})]})]});st(on);
169
+ As I continue to refine and improve OmarAI, I'm grateful for everyone's feedback and support. Seeing people interact with an AI version of me has been both surreal and enlightening. There's still room to grow, but for now, I'm proud of the progress we've made and excited for what's next. Stay tuned for more updates, and feel free to keep sending feedback my way!`)]}),D("omar-ai",{title:"OmarAi",icon:">",content:[w({title:"OmarAi",body:"AI version of Omar Musayev. Ask me anything about Omar's projects, education, skills, or experience."}),P("Suggested Questions"),w({title:"What projects has Omar worked on?",action:{onPress:()=>G({"ai-prompt":"What projects has Omar worked on?"})}}),w({title:"Tell me about Omar's education",action:{onPress:()=>G({"ai-prompt":"Tell me about Omar's education"})}}),w({title:"What are Omar's AI skills?",action:{onPress:()=>G({"ai-prompt":"What are Omar's AI skills?"})}}),w({title:"What is Omar's work experience?",action:{onPress:()=>G({"ai-prompt":"What is Omar's work experience?"})}}),P("Conversation"),Pu(()=>{let u=E.get("conversation");return u?k(u):k("Press Enter on a question above, or type your own below.")}),P("Ask a Question"),Au({id:"omar-ai-form",onSubmit:G,fields:[Iu({id:"ai-prompt",label:"Your Message",placeholder:"Ask Omar anything..."}),Mu({label:"Send",style:"primary"})]})]})]});export{x5 as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omar-musayev",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Omar Musayev's portfolio — right in your terminal. Browse projects, read blog posts, chat with OmarAI.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -9,10 +9,6 @@
9
9
  "files": [
10
10
  "dist"
11
11
  ],
12
- "scripts": {
13
- "dev": "npx tsx /Users/omar/Desktop/Projects/TUI/src/cli/index.ts dev",
14
- "build": "npx esbuild entry.ts --bundle --format=esm --platform=node --target=node18 --minify --banner:js='#!/usr/bin/env node' --outfile=dist/cli.js"
15
- },
16
12
  "keywords": [
17
13
  "cli",
18
14
  "tui",
@@ -23,5 +19,12 @@
23
19
  "resume"
24
20
  ],
25
21
  "author": "Omar Musayev <omar.musayev.v.2@gmail.com> (https://theomar.me)",
26
- "license": "MIT"
22
+ "license": "MIT",
23
+ "dependencies": {
24
+ "terminaltui": "^1.0.9"
25
+ },
26
+ "scripts": {
27
+ "dev": "npx terminaltui dev",
28
+ "build": "npx terminaltui build"
29
+ }
27
30
  }