@muxcodecli/cli 1.15.17 → 1.15.18
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/bip-bop-01-ga21wr3r.mp3 +0 -0
- package/dist/bip-bop-03-kgfd4rq4.mp3 +0 -0
- package/dist/chunk-0hqmdrjr.js +3 -0
- package/dist/chunk-0npjzye0.js +2 -0
- package/dist/chunk-0pe6y883.js +2 -0
- package/dist/chunk-0qqpjj2h.js +3 -0
- package/dist/chunk-0r3h8jgj.js +2 -0
- package/dist/chunk-11285jfy.js +3 -0
- package/dist/chunk-11ant2kk.js +3 -0
- package/dist/chunk-124qmktt.js +18 -0
- package/dist/chunk-138ntz3h.js +2 -0
- package/dist/chunk-1e73ypg5.js +3 -0
- package/dist/chunk-1evcc54z.js +3 -0
- package/dist/chunk-1mqsg5s7.js +75 -0
- package/dist/chunk-1pv2317e.js +7 -0
- package/dist/chunk-1y3ssxx6.js +2 -0
- package/dist/chunk-20x8vsdn.js +7 -0
- package/dist/chunk-21x3anp4.js +9 -0
- package/dist/chunk-22qpzg37.js +212 -0
- package/dist/chunk-2bt5mtgm.js +3 -0
- package/dist/chunk-2d95ene8.js +2 -0
- package/dist/chunk-2h2zq5cp.js +2 -0
- package/dist/chunk-2pc63est.js +2 -0
- package/dist/chunk-33gs9z8d.js +2 -0
- package/dist/chunk-33vwwxjk.js +2 -0
- package/dist/chunk-3dq7hfxc.js +9 -0
- package/dist/chunk-3jvft1k1.js +2 -0
- package/dist/chunk-4jqh4mpm.js +2 -0
- package/dist/chunk-4mgyaytc.js +672 -0
- package/dist/chunk-4va8fzq1.js +2 -0
- package/dist/chunk-4wkq9y2z.js +7 -0
- package/dist/chunk-526nbm9e.js +2 -0
- package/dist/chunk-5a6895cv.js +37 -0
- package/dist/chunk-5e9dq2av.js +2 -0
- package/dist/chunk-5jn2z3nf.js +3 -0
- package/dist/chunk-5npr1qyq.js +574 -0
- package/dist/chunk-5sfky0gz.js +8 -0
- package/dist/chunk-5t7xqdvk.js +3 -0
- package/dist/chunk-5tpqj6ag.js +10 -0
- package/dist/chunk-5v5015am.js +12 -0
- package/dist/chunk-5wawdxv2.js +7 -0
- package/dist/chunk-6btrg3ff.js +2 -0
- package/dist/chunk-6skbzman.js +6 -0
- package/dist/chunk-6sz698ew.js +11 -0
- package/dist/chunk-6xzrzmsr.js +2 -0
- package/dist/chunk-7848rf5q.js +63 -0
- package/dist/chunk-7ep2edcv.js +12 -0
- package/dist/chunk-7svw66kw.js +13 -0
- package/dist/chunk-7xgr8vx6.js +2 -0
- package/dist/chunk-7zjn6m1m.js +2 -0
- package/dist/chunk-8atqb297.js +12 -0
- package/dist/chunk-8ebkxjar.js +7 -0
- package/dist/chunk-8j3aw4qg.js +3 -0
- package/dist/chunk-8jy0dvcn.js +3 -0
- package/dist/chunk-8refh038.js +2 -0
- package/dist/chunk-93cszp8k.js +3 -0
- package/dist/chunk-93ze3gcb.js +2 -0
- package/dist/chunk-98yxzxtd.js +2 -0
- package/dist/chunk-9g64kggy.js +3 -0
- package/dist/chunk-9h1pwxb2.js +8 -0
- package/dist/chunk-9j4j9nrm.js +2 -0
- package/dist/chunk-9kzczwh0.js +3 -0
- package/dist/chunk-9n629gtn.js +3 -0
- package/dist/chunk-9y59sxde.js +2 -0
- package/dist/chunk-a2m5jyd8.js +2 -0
- package/dist/chunk-a595cp8s.js +2 -0
- package/dist/chunk-ak0k3m4q.js +3 -0
- package/dist/chunk-apksmrz9.js +3 -0
- package/dist/chunk-b05r09sj.js +10 -0
- package/dist/chunk-b47e563q.js +2 -0
- package/dist/chunk-b57avnse.js +2 -0
- package/dist/chunk-bfjq7w7k.js +2 -0
- package/dist/chunk-bhc70qet.js +3 -0
- package/dist/chunk-bvtscj68.js +2 -0
- package/dist/chunk-bw2cy5v0.js +8 -0
- package/dist/chunk-c7dvyh2x.js +2 -0
- package/dist/chunk-cbz8b7g5.js +3 -0
- package/dist/chunk-cw4vbnet.js +3 -0
- package/dist/chunk-czcj3j9y.js +2 -0
- package/dist/chunk-dg466kdp.js +2 -0
- package/dist/chunk-dmscgnhq.js +2 -0
- package/dist/chunk-dtk4m8rm.js +3 -0
- package/dist/chunk-dy7akyj3.js +2 -0
- package/dist/chunk-e2wv2sp4.js +2 -0
- package/dist/chunk-e8j03wnd.js +3 -0
- package/dist/chunk-egkp6tct.js +2 -0
- package/dist/chunk-emfc800a.js +2 -0
- package/dist/chunk-envnht72.js +4 -0
- package/dist/chunk-eskw1cj2.js +3 -0
- package/dist/chunk-ezz15tyg.js +2 -0
- package/dist/chunk-fkmzj0qt.js +16 -0
- package/dist/chunk-fqt3c3g5.js +4 -0
- package/dist/chunk-frbht418.js +19 -0
- package/dist/chunk-ftz8cqfq.js +2 -0
- package/dist/chunk-g4jxdrr6.js +2 -0
- package/dist/chunk-g52xzmrr.js +2 -0
- package/dist/chunk-gbtvkje9.js +4 -0
- package/dist/chunk-gm9msqq5.js +8 -0
- package/dist/chunk-gxat3dpd.js +3 -0
- package/dist/chunk-hfppq1w5.js +4 -0
- package/dist/chunk-jdg870gy.js +1683 -0
- package/dist/chunk-jfz77m78.js +3 -0
- package/dist/chunk-jg9r58pf.js +16 -0
- package/dist/chunk-jgzt4945.js +2 -0
- package/dist/chunk-jh2epywq.js +2 -0
- package/dist/chunk-jpj6a56k.js +2 -0
- package/dist/chunk-jw4sgq23.js +2 -0
- package/dist/chunk-jws11ngd.js +2 -0
- package/dist/chunk-jxhz82qt.js +2 -0
- package/dist/chunk-k19y2psf.js +4 -0
- package/dist/chunk-k6cj14zk.js +2 -0
- package/dist/chunk-kktm0pdc.js +3 -0
- package/dist/chunk-kmr27ake.js +160 -0
- package/dist/chunk-kyhwvbvq.js +2 -0
- package/dist/chunk-mgn5pejx.js +2 -0
- package/dist/chunk-mskyzxb3.js +3 -0
- package/dist/chunk-my9cfmvt.js +5 -0
- package/dist/chunk-n4vx7kvs.js +389 -0
- package/dist/chunk-nc44rvs7.js +23 -0
- package/dist/chunk-ng3vbpmy.js +3 -0
- package/dist/chunk-nmnp5g5p.js +228 -0
- package/dist/chunk-nn0t3xmn.js +2 -0
- package/dist/chunk-npr41z9a.js +19 -0
- package/dist/chunk-ntvr3177.js +25 -0
- package/dist/chunk-pkc5hkha.js +2 -0
- package/dist/chunk-ppg6zhae.js +3 -0
- package/dist/chunk-pqwm9zk1.js +6 -0
- package/dist/chunk-ptvjmfqx.js +2 -0
- package/dist/chunk-q1r48y0y.js +34 -0
- package/dist/chunk-q9yddd1r.js +3 -0
- package/dist/chunk-qavtgsrh.js +2 -0
- package/dist/chunk-qvh8ghjw.js +7 -0
- package/dist/chunk-qx6r187q.js +2 -0
- package/dist/chunk-r093mfa8.js +32 -0
- package/dist/chunk-rbaj9ktq.js +2 -0
- package/dist/chunk-rkf9ynkx.js +3 -0
- package/dist/chunk-rpp44jtx.js +3 -0
- package/dist/chunk-rrvwp351.js +2 -0
- package/dist/chunk-rs8fsgqt.js +81 -0
- package/dist/chunk-s4gy87ft.js +8 -0
- package/dist/chunk-s5qq2ch2.js +12 -0
- package/dist/chunk-s92578qx.js +71 -0
- package/dist/chunk-snsb760m.js +2 -0
- package/dist/chunk-sp1cvejp.js +2 -0
- package/dist/chunk-spb3tm25.js +4 -0
- package/dist/chunk-srnmswkj.js +2 -0
- package/dist/chunk-sxgbzwrs.js +2 -0
- package/dist/chunk-t2s6m9t2.js +35 -0
- package/dist/chunk-t98sdxty.js +2 -0
- package/dist/chunk-tbnxx5na.js +2 -0
- package/dist/chunk-tfxm3qz4.js +2 -0
- package/dist/chunk-treb38pz.js +3 -0
- package/dist/chunk-tvw8tfpr.js +6 -0
- package/dist/chunk-v107htgw.js +101 -0
- package/dist/chunk-v8at4gnt.js +2 -0
- package/dist/chunk-vmr3get8.js +2 -0
- package/dist/chunk-vqrnejgj.js +71 -0
- package/dist/chunk-vvwy955j.js +3 -0
- package/dist/chunk-w5jxffnq.js +2 -0
- package/dist/chunk-wcbh5jqy.js +3 -0
- package/dist/chunk-wfmrnep1.js +2 -0
- package/dist/chunk-wk11yy8h.js +3 -0
- package/dist/chunk-wn5f1tfj.js +2 -0
- package/dist/chunk-wpm2p1gq.js +3 -0
- package/dist/chunk-wxkyv5gj.js +2 -0
- package/dist/chunk-wyed730e.js +2 -0
- package/dist/chunk-x65zs89t.js +3 -0
- package/dist/chunk-x6zjq78z.js +2 -0
- package/dist/chunk-xedav0qx.js +3 -0
- package/dist/chunk-xmftb9ad.js +38 -0
- package/dist/chunk-xvtkw7hj.js +3 -0
- package/dist/chunk-xy0txg0n.js +2 -0
- package/dist/chunk-y7s5cpwr.js +34 -0
- package/dist/chunk-yg48tfvv.js +16 -0
- package/dist/chunk-ygpen625.js +3 -0
- package/dist/chunk-ymb45bt6.js +2 -0
- package/dist/chunk-yp2zfcvh.js +8 -0
- package/dist/chunk-z3mx7n44.js +3 -0
- package/dist/chunk-zaj612bw.js +3 -0
- package/dist/chunk-zb3179f9.js +3 -0
- package/dist/chunk-zhd8f4pc.js +759 -0
- package/dist/chunk-zjpnyah2.js +3 -0
- package/dist/cli/cmd/tui/worker.js +2 -0
- package/dist/highlights-eq9cgrbb.scm +604 -0
- package/dist/highlights-ghv9g403.scm +205 -0
- package/dist/highlights-hk7bwhj4.scm +284 -0
- package/dist/highlights-r812a2qc.scm +150 -0
- package/dist/highlights-x6tmsnaa.scm +115 -0
- package/dist/index.js +146 -5742
- package/dist/injections-73j83es3.scm +27 -0
- package/dist/muxcode-linux-x64 +0 -0
- package/dist/nope-03-2z8weyjw.mp3 +0 -0
- package/dist/photon_rs_bg-bq08arze.wasm +0 -0
- package/dist/staplebops-06-rz29m246.mp3 +0 -0
- package/dist/tree-sitter-3jzf13jk.wasm +0 -0
- package/dist/tree-sitter-bash-hq5s6fxb.wasm +0 -0
- package/dist/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
- package/dist/tree-sitter-markdown-411r6y9b.wasm +0 -0
- package/dist/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
- package/dist/tree-sitter-powershell-ryb2ffqs.wasm +0 -0
- package/dist/tree-sitter-typescript-zxjzwt75.wasm +0 -0
- package/dist/tree-sitter-zig-e78zbjpm.wasm +0 -0
- package/dist/yup-01-30ecpeh9.mp3 +0 -0
- package/package.json +2 -2
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{UF as SD}from"./chunk-8j3aw4qg.js";import{EventEmitter as Q0}from"events";import{Buffer as k0}from"buffer";import{Buffer as BK}from"buffer";import{EventEmitter as L1}from"events";import{mkdir as M1,writeFile as H1}from"fs/promises";import{dirname as TY,isAbsolute as U1,resolve as j1}from"path";import{fileURLToPath as HK}from"url";import{resolve as FX,isAbsolute as h1,parse as p1}from"path";import{existsSync as E1}from"fs";import{basename as b1,join as c1}from"path";import IX from"os";import KJ from"path";import{EventEmitter as l1}from"events";import wX from"path";import{createRequire as _2}from"module";import{fileURLToPath as $2}from"url";import{existsSync as w2,writeFileSync as z2}from"fs";import{EventEmitter as f2}from"events";import{EventEmitter as K5}from"events";import $5 from"util";import{EventEmitter as L5}from"events";import{EventEmitter as _Z}from"events";import{Console as V5}from"console";import M5 from"fs";import H5 from"path";import KY from"util";import{Writable as U5}from"stream";import{EventEmitter as j5}from"events";import{EventEmitter as UZ}from"events";var uZ=Object.defineProperty,iZ=(D)=>D;function lZ(D,J){this[D]=iZ.bind(null,J)}var aZ=(D,J)=>{for(var K in J)uZ(D,K,{get:J[K],enumerable:!0,configurable:!0,set:lZ.bind(J,K)})};var sZ={};aZ(sZ,{default:()=>PK,Wrap:()=>nD,Unit:()=>HD,PositionType:()=>rD,Overflow:()=>oD,NodeType:()=>AQ,MeasureMode:()=>FD,LogLevel:()=>jD,Justify:()=>UD,Gutter:()=>OD,FlexDirection:()=>zD,ExperimentalFeature:()=>_Y,Errata:()=>MJ,Edge:()=>E,Display:()=>CD,Direction:()=>RD,Dimension:()=>jJ,BoxSizing:()=>UJ,Align:()=>e});var oZ=(()=>{var D=import.meta.url;return function(J){J=J||{};var K;K||(K=typeof J<"u"?J:{});var Q,X;K.ready=new Promise(function($,A){Q=$,X=A});var Y=Object.assign({},K),Z="";typeof document<"u"&&document.currentScript&&(Z=document.currentScript.src),D&&(Z=D),Z.indexOf("blob:")!==0?Z=Z.substr(0,Z.replace(/[?#].*/,"").lastIndexOf("/")+1):Z="";var _=K.print||console.log.bind(console),L=K.printErr||console.warn.bind(console);Object.assign(K,Y),Y=null;var N;K.wasmBinary&&(N=K.wasmBinary);var V=K.noExitRuntime||!0;typeof WebAssembly!="object"&&a("no native wasm support detected");var G,O=!1;function U($,A,M){M=A+M;for(var H="";!(A>=M);){var j=$[A++];if(!j)break;if(j&128){var C=$[A++]&63;if((j&224)==192)H+=String.fromCharCode((j&31)<<6|C);else{var w=$[A++]&63;j=(j&240)==224?(j&15)<<12|C<<6|w:(j&7)<<18|C<<12|w<<6|$[A++]&63,65536>j?H+=String.fromCharCode(j):(j-=65536,H+=String.fromCharCode(55296|j>>10,56320|j&1023))}}else H+=String.fromCharCode(j)}return H}var k,F,P,W,f,T,g,h,y;function B(){var $=G.buffer;k=$,K.HEAP8=F=new Int8Array($),K.HEAP16=W=new Int16Array($),K.HEAP32=T=new Int32Array($),K.HEAPU8=P=new Uint8Array($),K.HEAPU16=f=new Uint16Array($),K.HEAPU32=g=new Uint32Array($),K.HEAPF32=h=new Float32Array($),K.HEAPF64=y=new Float64Array($)}var I,b=[],v=[],u=[];function i(){var $=K.preRun.shift();b.unshift($)}var p=0,m=null,JD=null;function a($){if(K.onAbort)K.onAbort($);throw $="Aborted("+$+")",L($),O=!0,$=new WebAssembly.RuntimeError($+". Build with -sASSERTIONS for more info."),X($),$}function n($){return $.startsWith("data:application/octet-stream;base64,")}var YD="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMkAEEBIQQgA0EIaiAAQfwAaiIFIAAgAUEBdGpB8gBqIgEvAQAQHwJAAkAgAyoCCCIHIAIqAgAiBlwEQCAHIAdbBEAgAi0ABCECDAILIAYgBlwhBAsgAi0ABCECIARFDQAgAy0ADCACQf8BcUYNAQsgBSABIAYgAhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgA0EQaiQACwoAIABBMGtBCkkLBQAQAgALBAAgAAsUACAABEAgACAAKAIAKAIEEQAACwsrAQF/IAAoAgwiAQRAIAEQIwsgACgCACIBBEAgACABNgIEIAEQIwsgABAjC4EEAQN/IwBBEGsiAyQAIABCADcCBCAAQcEgOwAVIABCADcCDCAAQoCAgICAgIACNwIYIAAgAC0AF0HgAXE6ABcgACAALQAAQeABcUEFcjoAACAAIAAtABRBgAFxOgAUIABBIGpBAEHOABAqGiAAQgA3AXIgAEGEgBA2AW4gAEEANgF6IABCADcCgAEgAEIANwKIASAAQgA3ApABIABCADcCoAEgAEKAgICAgICA4P8ANwKYASAAQQA6AKgBIABBrAFqQQBBxAEQKhogAEHwAmohBCAAQbABaiECA0AgAkKAgID8i4CAwL9/NwIQIAJCgYCAgBA3AgggAkKAgID8i4CAwL9/NwIAIAJBGGoiAiAERw0ACyAAQoCAgPyLgIDAv383AvACIABCgICA/IuAgMC/fzcCgAMgAEKBgICAEDcC+AIgAEKAgID+h4CA4P8ANwKUAyAAQoCAgP6HgIDg/wA3AowDIABBiANqIgIgAi0AAEH4AXE6AAAgAEGcA2pBAEHYABAqGiAAQQA6AIQEIABBgICA/gc2AoAEIABBADoA/AMgAEGAgID+BzYC+AMgACABNgL0AyABBEAgAS0ACEEBcQRAIAAgAC0AFEHzAXFBCHI6ABQgACAALwAVQfD/A3FBBHI7ABULIANBEGokACAADwsgA0GiGjYCACADEHIQJAALMwAgACABQQJ0QfwlaigCAEECdGoqApQDIABBFGoiACABQQEgAhAiIAAgAUEBIAIQIZKSC44DAQp/IwBB0AJrIgEkACAAKALoAyIDIAAoAuwDIgVHBEAgAUGMAmohBiABQeABaiEHIAFBIGohCCABQRxqIQkgAUEQaiEEA0AgAygCACICLQAXQRB0QYCAMHFBgIAgRgRAIAFBCGpBAEHEAhAqGiABQYCAgP4HNgIMIARBADoACCAEQgA3AgAgCUEAQcQBECoaIAghAANAIABCgICA/IuAgMC/fzcCECAAQoGAgIAQNwIIIABCgICA/IuAgMC/fzcCACAAQRhqIgAgB0cNAAsgAUKAgID8i4CAwL9/NwPwASABQoGAgIAQNwPoASABQoCAgPyLgIDAv383A+ABIAFCgICA/oeAgOD/ADcChAIgAUKAgID+h4CA4P8ANwL8ASABIAEtAPgBQfgBcToA+AEgBkEAQcAAECoaIAJBmAFqIAFBCGpBxAIQKxogAkIANwKMAyACIAItAAAiAEEBciIKQfsBcSAKIABBBHEbOgAAIAIQTyACEF4LIANBBGoiAyAFRw0ACwsgAUHQAmokAAtMAQF/QQEhAQJAIAAtAB5BB3ENACAALQAiQQdxDQAgAC0ALkEHcQ0AIAAtACpBB3ENACAALQAmQQdxDQAgAC0AKEEHcUEARyEBCyABC3YCAX8BfSMAQRBrIgQkACAEQQhqIAAgAUECdEHcJWooAgAgAhBQQwAAwH8hBQJAAkACQCAELQAMQQFrDgIAAQILIAQqAgghBQwBCyAEKgIIIAOUQwrXIzyUIQULIARBEGokACAFQwAAAACXQwAAAAAgBSAFWxsLogQCBn8CfgJ/QQghBAJAAkAgAEFHSw0AA0BBCCAEIARBCE0bIQRB6DopAwAiBwJ/QQggAEEDakF8cSAAQQhNGyIAQf8ATQRAIABBA3ZBAWsMAQsgAEEdIABnIgFrdkEEcyABQQJ0a0HuAGogAEH/H00NABpBPyAAQR4gAWt2QQJzIAFBAXRrQccAaiIBIAFBP08bCyIDrYgiCFBFBEADQCAIIAh6IgiIIQcCfiADIAinaiIDQQR0IgJB6DJqKAIAIgEgAkHgMmoiBkcEQCABIAQgABBjIgUNBSABKAIEIgUgASgCCDYCCCABKAIIIAU2AgQgASAGNgIIIAEgAkHkMmoiAigCADYCBCACIAE2AgAgASgCBCABNgIIIANBAWohAyAHQgGIDAELQeg6Qeg6KQMAQn4gA62JgzcDACAHQgGFCyIIQgBSDQALQeg6KQMAIQcLAkAgB1BFBEBBPyAHeadrIgZBBHQiAkHoMmooAgAhAQJAIAdCgICAgARUDQBB4wAhAyABIAJB4DJqIgJGDQADQCADRQ0BIAEgBCAAEGMiBQ0FIANBAWshAyABKAIIIgEgAkcNAAsgAiEBCyAAQTBqEGQNASABRQ0EIAEgBkEEdEHgMmoiAkYNBANAIAEgBCAAEGMiBQ0EIAEoAggiASACRw0ACwwECyAAQTBqEGRFDQMLQQAhBSAEIARBAWtxDQEgAEFHTQ0ACwsgBQwBC0EACwtwAgF/AX0jAEEQayIEJAAgBEEIaiAAIAFBAnRB7CVqKAIAIAIQKEMAAMB/IQUCQAJAAkAgBC0ADEEBaw4CAAECCyAEKgIIIQUMAQsgBCoCCCADlEMK1yM8lCEFCyAEQRBqJAAgBUMAAAAAIAUgBVsbC6ADAQN/IAEgAEEEaiIEakEBa0EAIAFrcSIFIAJqIAAgACgCACIBakEEa00EfyAAKAIEIgMgACgCCDYCCCAAKAIIIAM2AgQgBCAFRwRAIAAgAEEEaygCAEF+cWsiAyAFIARrIgQgAygCAGoiBTYCACAFQXxxIANqQQRrIAU2AgAgACAEaiIAIAEgBGsiATYCAAsCQCABIAJBGGpPBEAgACACakEIaiIDIAEgAmtBCGsiATYCACABQXxxIANqQQRrIAFBAXI2AgAgAwJ/IAMoAgBBCGsiAUH/AE0EQCABQQN2QQFrDAELIAFnIQQgAUEdIARrdkEEcyAEQQJ0a0HuAGogAUH/H00NABpBPyABQR4gBGt2QQJzIARBAXRrQccAaiIBIAFBP08bCyIBQQR0IgRB4DJqNgIEIAMgBEHoMmoiBCgCADYCCCAEIAM2AgAgAygCCCADNgIEQeg6Qeg6KQMAQgEgAa2GhDcDACAAIAJBCGoiATYCACABQXxxIABqQQRrIAE2AgAMAQsgACABakEEayABNgIACyAAQQRqBSADCwvmAwEFfwJ/QbAwKAIAIgEgAEEHakF4cSIDaiECAkAgA0EAIAEgAk8bDQAgAj8AQRB0SwRAIAIQFkUNAQtBsDAgAjYCACABDAELQfw7QTA2AgBBfwsiAkF/RwRAIAAgAmoiA0EQayIBQRA2AgwgAUEQNgIAAkACf0HgOigCACIABH8gACgCCAVBAAsgAkYEQCACIAJBBGsoAgBBfnFrIgRBBGsoAgAhBSAAIAM2AghBcCAEIAVBfnFrIgAgACgCAGpBBGstAABBAXFFDQEaIAAoAgQiAyAAKAIINgIIIAAoAgggAzYCBCAAIAEgAGsiATYCAAwCCyACQRA2AgwgAkEQNgIAIAIgAzYCCCACIAA2AgRB4DogAjYCAEEQCyACaiIAIAEgAGsiATYCAAsgAUF8cSAAakEEayABQQFyNgIAIAACfyAAKAIAQQhrIgFB/wBNBEAgAUEDdkEBawwBCyABQR0gAWciA2t2QQRzIANBAnRrQe4AaiABQf8fTQ0AGkE/IAFBHiADa3ZBAnMgA0EBdGtBxwBqIgEgAUE/TxsLIgFBBHQiA0HgMmo2AgQgACADQegyaiIDKAIANgIIIAMgADYCACAAKAIIIAA2AgRB6DpB6DopAwBCASABrYaENwMACyACQX9HC80BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQSBqIgEvAQAQHwJAAkAgAyoCCCIHIAIqAgAiBlwEQCAHIAdbBEAgAi0ABCECDAILIAYgBlwhBAsgAi0ABCECIARFDQAgAy0ADCACQf8BcUYNAQsgBSABIAYgAhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgA0EQaiQAC0ABAX8CQEGsOy0AAEEBcQRAQag7KAIAIQIMAQtBAUGAJxAMIQJBrDtBAToAAEGoOyACNgIACyACIAAgAUEAEBMLzQECA38CfSMAQRBrIgMkAEEBIQQgA0EIaiAAQfwAaiIFIAAgAUEBdGpBMmoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALDwAgASAAKAIAaiACOQMACw0AIAEgACgCAGorAwALCwAgAARAIAAQIwsLxwECBH8CfSMAQRBrIgIkACACQQhqIABB/ABqIgQgAEEeaiIFLwEAEB9BASEDAkACQCACKgIIIgcgASoCACIGXARAIAcgB1sEQCABLQAEIQEMAgsgBiAGXCEDCyABLQAEIQEgA0UNACACLQAMIAFB/wFxRg0BCyAEIAUgBiABEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyACQRBqJAALlgMCA34CfyAAvSICQjSIp0H/D3EiBEH/D0YEQCAARAAAAAAAAPA/oiIAIACjDwsgAkIBhiIBQoCAgICAgIDw/wBYBEAgAEQAAAAAAAAAAKIgACABQoCAgICAgIDw/wBRGw8LAn4gBEUEQEEAIQQgAkIMhiIBQgBZBEADQCAEQQFrIQQgAUIBhiIBQgBZDQALCyACQQEgBGuthgwBCyACQv////////8Hg0KAgICAgICACIQLIQEgBEH/B0oEQANAAkAgAUKAgICAgICACH0iA0IAUw0AIAMiAUIAUg0AIABEAAAAAAAAAACiDwsgAUIBhiEBIARBAWsiBEH/B0oNAAtB/wchBAsCQCABQoCAgICAgIAIfSIDQgBTDQAgAyIBQgBSDQAgAEQAAAAAAAAAAKIPCyABQv////////8HWARAA0AgBEEBayEEIAFCgICAgICAgARUIQUgAUIBhiEBIAUNAAsLIAJCgICAgICAgICAf4MgAUKAgICAgICACH0gBK1CNIaEIAFBASAEa62IIARBAEobhL8LiwEBA38DQCAAQQR0IgFB5DJqIAFB4DJqIgI2AgAgAUHoMmogAjYCACAAQQFqIgBBwABHDQALQTAQZBpBmDtBBjYCAEGcO0EANgIAEJwBQZw7Qcg7KAIANgIAQcg7QZg7NgIAQcw7QcMBNgIAQdA7QQA2AgAQjwFB0DtByDsoAgA2AgBByDtBzDs2AgALjwEBAn8jAEEQayIEJAACfUMAAAAAIAAvABVBgOAAcUUNABogBEEIaiAAQRRqIgBBASACQQJGQQF0IAFB/gFxQQJHGyIFIAIQNgJAIAQtAAxFDQAgBEEIaiAAIAUgAhA2IAQtAAxBA0YNACAAIAEgAiADEIEBDAELIAAgASACIAMQgAGMCyEDIARBEGokACADC4QBAQJ/AkACQCAAKALoAyICIAAoAuwDIgNGDQADQCACKAIAIAFGDQEgAkEEaiICIANHDQALDAELIAIgA0YNACABLQAXQRB0QYCAMHFBgIAgRgRAIAAgACgC4ANBAWs2AuADCyACIAJBBGoiASADIAFrEDMaIAAgA0EEazYC7ANBAQ8LQQALCwBByDEgACABEEkLPAAgAEUEQCACQQVHQQAgAhtFBEBBuDAgAyAEEEkaDwsgAyAEEHAaDwsgACABIAIgAyAEIAAoAgQRDQAaCyYBAX8jAEEQayIBJAAgASAANgIMQbgwQdglIAAQSRogAUEQaiQAC4cDAwN/BXwCfSAAKgKgA7siBiACoCECIAAqApwDuyIHIAGgIQggACgC9AMqAhgiC0MAAAAAXARAIAAqApADuyEJIAAqAowDIQwgACAHIAu7IgFBACAALQAAQRBxIgNBBHYiBBA0OAKcAyAAIAYgAUEAIAQQNDgCoAMgASAMuyIHohBsIgYgBmIiBEUgBplELUMc6+I2Gj9jcUUEQCAEIAZEAAAAAAAA8L+gmUQtQxzr4jYaP2NFciEFCyACIAmgIQogCCAHoCEHAn8gASAJohBsIgYgBmIiBEUEQEEAIAaZRC1DHOviNho/Yw0BGgsgBCAGRAAAAAAAAPC/oJlELUMc6+I2Gj9jRXILIQQgACAHIAEgA0EARyIDIAVxIAMgBUEBc3EQNCAIIAFBACADEDSTOAKMAyAAIAogASADIARxIAMgBEEBc3EQNCACIAFBACADEDSTOAKQAwsgACgC6AMiAyAAKALsAyIARwRAA0AgAygCACAIIAIQcyADQQRqIgMgAEcNAAsLC1UBAX0gAEEUaiIAIAEgAkECSSICIAQgBRA1IQYgACABIAIgBCAFEC0iBUMAAAAAYCADIAVecQR9IAUFIAZDAAAAAGBFBEAgAw8LIAYgAyADIAZdGwsLeAEBfwJAIAAoAgAiAgRAA0AgAUUNAiACIAEoAgQ2AgQgAiABKAIINgIIIAEoAgAhASAAKAIAIQAgAigCACICDQALCyAAIAEQPA8LAkAgAEUNACAAKAIAIgFFDQAgAEEANgIAA0AgASgCACEAIAEQIyAAIgENAAsLC5kCAgZ/AX0gAEEUaiEHQQMhBCAALQAUQQJ2QQNxIQUCQAJ/AkAgAUEBIAAoAuQDGyIIQQJGBEACQCAFQQJrDgIEAAILQQIhBAwDC0ECIQRBACAFQQFLDQEaCyAECyEGIAUhBAsgACAEIAggAyACIARBAkkiBRsQbiEKIAAgBiAIIAIgAyAFGxBuIQMgAEGcA2oiAEEBIAFBAkZBAXQiCCAFG0ECdGogCiAHIAQgASACECKSOAIAIABBAyABQQJHQQF0IgkgBRtBAnRqIAogByAEIAEgAhAhkjgCACAAIAhBASAGQQF2IgQbQQJ0aiADIAcgBiABIAIQIpI4AgAgACAJQQMgBBtBAnRqIAMgByAGIAEgAhAhkjgCAAvUAgEDfyMAQdACayIBJAAgAUEIakEAQcQCECoaIAFBADoAGCABQgA3AxAgAUGAgID+BzYCDCABQRxqQQBBxAEQKhogAUHgAWohAyABQSBqIQIDQCACQoCAgPyLgIDAv383AhAgAkKBgICAEDcCCCACQoCAgPyLgIDAv383AgAgAkEYaiICIANHDQALIAFCgICA/IuAgMC/fzcD8AEgAUKBgICAEDcD6AEgAUKAgID8i4CAwL9/NwPgASABQoCAgP6HgIDg/wA3AoQCIAFCgICA/oeAgOD/ADcC/AEgASABLQD4AUH4AXE6APgBIAFBjAJqQQBBwAAQKhogAEGYAWogAUEIakHEAhArGiAAQgA3AowDIAAgAC0AAEEBcjoAACAAEE8gACgC6AMiAiAAKALsAyIARwRAA0AgAigCABB3IAJBBGoiAiAARw0ACwsgAUHQAmokAAuuAgIKfwJ9IwBBIGsiASQAIAFBgAI7AB4gAEHuAGohByAAQfgDaiEFIABB8gBqIQggAEH2AGohCSAAQfwAaiEDQQAhAANAIAFBEGogAyAJIAFBHmogBGotAAAiAkEBdCIEaiIGLwEAEB8CQAJAIAEtABRFDQAgAUEIaiADIAYvAQAQHyABIAMgBCAIai8BABAfIAEtAAwgAS0ABEcNAAJAIAEqAggiDCAMXCIKIAEqAgAiCyALXHJFBEAgDCALk4tDF7fROF0NAQwCCyAKRSALIAtbcg0BCyABQRBqIAMgBi8BABAfDAELIAFBEGogAyAEIAdqLwEAEB8LIAUgAkEDdGoiAiABLQAUOgAEIAIgASgCEDYCAEEBIQQgACECQQEhACACRQ0ACyABQSBqJAALMgACf0EAIAAvABVBgOAAcUGAwABGDQAaQQEgABA7QwAAAABcDQAaIAAQQEMAAAAAXAsLewEBfSADIASTIgMgA1sEfUMAAAAAIABBFGoiACABIAIgBSAGEDUiByAEkyAHIAdcGyIHQ///f38gACABIAIgBSAGEC0iBSAEkyAFIAVcGyIEIAMgAyAEXhsiAyADIAddGyAHIAMgAyADXBsgAyADWyAHIAdbcRsFIAMLC98FAwR/BX0BfCAJQwAAAABdIAhDAAAAAF1yBH8gDQUgBSESIAEhEyADIRQgByERIAwqAhgiFUMAAAAAXARAIAG7IBW7IhZBAEEAEDQhEyADuyAWQQBBABA0IRQgBbsgFkEAQQAQNCESIAe7IBZBAEEAEDQhEQsCf0EAIAAgBEcNABogEiATk4tDF7fROF0gEyATXCINIBIgElxyRQ0AGkEAIBIgElsNABogDQshDAJAIAIgBkcNACAUIBRcIg0gESARXHJFBEAgESAUk4tDF7fROF0hDwwBCyARIBFbDQAgDSEPC0EBIQ5BASENAkAgDA0AIAEgCpMhAQJAIABFBEAgASABXCIAIAggCFxyRQRAQQAhDCABIAiTi0MXt9E4XUUNAgwDC0EAIQwgCCAIWw0BIAANAgwBCyAAQQJGIQwgAEECRw0AIARBAUcNACABIAhgDQECQCAIIAhcIgAgASABXHJFBEAgASAIk4tDF7fROF1FDQEMAwtBACENIAEgAVsNAkEBIQ0gAA0CC0EAIQ0MAQtBACENIAggCFwiACABIAVdRXINACAMRSABIAFcIhAgBSAFXHIgBEECR3JyDQBBASENIAEgCGANAEEAIQ0gACAQcg0AIAEgCJOLQxe30ThdIQ0LAkAgDw0AIAMgC5MhAQJAAkAgAkUEQCABIAFcIgIgCSAJXHJFBEBBACEAIAEgCZOLQxe30ThdRQ0CDAQLQQAhACAJIAlbDQEgAg0DDAELIAJBAkYhACACQQJHIAZBAUdyDQAgASAJYARADAMLIAkgCVwiACABIAFcckUEQCABIAmTi0MXt9E4XUUNAgwDC0EAIQ4gASABWw0CQQEhDiAADQIMAQsgCSAJXCICIAEgB11Fcg0AIABFIAEgAVwiBCAHIAdcciAGQQJHcnINACABIAlgDQFBACEOIAIgBHINASABIAmTi0MXt9E4XSEODAELQQAhDgsgDSAOcQsL4wEBA38jAEEQayIBJAACQAJAIAAtABRBCHFFDQBBASEDIAAvABVB8AFxQdAARg0AIAEgABAyIAEoAgQhAAJAIAEoAgAiAkUEQEEAIQMgAEUNAQsDQCACKALsAyACKALoAyICa0ECdSAATQ0DIAIgAEECdGooAgAiAC8AFSAALQAXQRB0ciIAQYDgAHFBgMAARyAAQYAecUGACkZxIgMNASABEC4gASgCBCIAIAEoAgAiAnINAAsLIAEoAggiAEUNAANAIAAoAgAhAiAAECMgAiIADQALCyABQRBqJAAgAw8LEAIAC7IBAQR/AkACQCAAKAIEIgMgACgCACIEKALsAyAEKALoAyIBa0ECdUkEQCABIANBAnRqIQIDQCACKAIAIgEtABdBEHRBgIAwcUGAgCBHDQMgASgC7AMgASgC6ANGDQJBDBAeIgIgBDYCBCACIAM2AgggAiAAKAIINgIAQQAhAyAAQQA2AgQgACABNgIAIAAgAjYCCCABIQQgASgC6AMiAiABKALsA0cNAAsLEAIACyAAEC4LC4wQAgx/B30jAEEgayINJAAgDUEIaiABEDIgDSgCCCIOIA0oAgwiDHIEQCADQQEgAxshFSAAQRRqIRQgBUEBaiEWA0ACQAJAAn8CQAJAAkACQAJAIAwgDigC7AMgDigC6AMiDmtBAnVJBEAgDiAMQQJ0aigCACILLwAVIAstABdBEHRyIgxBgIAwcUGAgBBGDQgCQAJAIAxBDHZBA3EOAwEKAAoLIAkhFyAKIRogASgC9AMtABRBBHFFBEAgACoClAMgFEECQQEQMCAUQQJBARAvkpMhFyAAKgKYAyAUQQBBARAwIBRBAEEBEC+SkyEaCyALQRRqIQ8gAS0AFEECdkEDcSEQAkACfwJAIANBAkciE0UEQEEAIQ5BAyEMAkAgEEECaw4CBAACC0ECIQwMAwtBAiEMQQAgEEEBSw0BGgsgDAshDiAQIQwLIA9BAkEBIBcQIiAPQQJBASAXECGSIR0gD0EAQQEgFxAiIRwgD0EAQQEgFxAhIRsgCyoC+AMhGAJAAkACQAJAIAstAPwDQQFrDgIBAAILIBggF5RDCtcjPJQhGAsgGEMAAAAAYEUNACAdIAsgA0EAIBcgFxAxkiEYDAELIA1BGGogDyALQTJqIhAgAxBFQwAAwH8hGCANLQAcRQ0AIA1BGGogDyAQIAMQRCANLQAcRQ0AIA1BGGogDyAQIAMQRSANLQAcQQNGDQAgDUEYaiAPIBAgAxBEIA0tABxBA0YNACALQQIgAyAAKgKUAyAUQQIgAxBLIBRBAiADEFKSkyAPQQIgAyAXEFEgD0ECIAMgFxCDAZKTIBcgFxAlIRgLIBwgG5IhHCALKgKABCEZAkACQAJAIAstAIQEQQFrDgIBAAILIBkgGpRDCtcjPJQhGQsgGUMAAAAAYEUNACAcIAsgA0EBIBogFxAxkiEZDAMLIA1BGGogDyALQTJqIhAQQwJAIA0tABxFDQAgDUEYaiAPIBAQQiANLQAcRQ0AIA1BGGogDyAQEEMgDS0AHEEDRg0AIA1BGGogDyAQEEIgDS0AHEEDRg0AIAtBACADIAAqApgDIBRBACADEEsgFEEAIAMQUpKTIA9BACADIBoQUSAPQQAgAyAaEIMBkpMgGiAXECUhGQwDC0MAAMB/IRkgGCAYXA0GIAtB/ABqIhAgC0H6AGoiEi8BABAgIhsgG1sNAwwFCyALLQAAQQhxDQggCxBPIAAgCyACIAstABRBA3EiDCAVIAwbIAQgFiAGIAsqApwDIAeSIAsqAqADIAiSIAkgChB+IBFyIQxBACERIAxBAXFFDQhBASERIAsgCy0AAEEBcjoAAAwICxACAAsgGCAYXCAZIBlcRg0BIAtB/ABqIhAgC0H6AGoiEi8BABAgIhsgG1wNASAYIBhcBEAgGSAckyAQIAsvAXoQIJQgHZIhGAwCCyAZIBlbDQELIBwgGCAdkyAQIBIvAQAQIJWSIRkLIBggGFwNASAZIBlbDQMLQQAMAQtBAQshEiALIBcgGCACQQFHIAxBAklxIBdDAAAAAF5xIBJxIhAbIBkgA0ECIBIgEBsgGSAZXCAXIBpBAEEGIAQgBSAGED0aIAsqApQDIA9BAkEBIBcQIiAPQQJBASAXECGSkiEYIAsqApgDIA9BAEEBIBcQIiAPQQBBASAXECGSkiEZC0EBIRAgCyAYIBkgA0EAQQAgFyAaQQFBASAEIAUgBhA9GiAAIAEgCyADIAxBASAXIBoQggEgACABIAsgAyAOQQAgFyAaEIIBIBFBAXFFBEAgCy0AAEEBcSEQCyABLQAUIhJBAnZBA3EhDAJAAn8CQAJAAkACQAJAAkACQAJAAkACfwJAIBNFBEBBACERQQMhDiAMQQJrDgIDDQELQQIhDkEAIAxBAUsNARoLIA4LIREgEkEEcUUNBCASQQhxRQ0BIAwhDgsgASEMIA8QXw0BDAILAkAgCy0ANEEHcQ0AIAstADhBB3ENACALLQBCQQdxDQAgDCEOIAEhDCALQUBrLwEAQQdxRQ0CDAELIAwhDgsgACEMCwJ/AkACQAJAIA5BAWsOAwABAgULIAtBmANqIQ4gC0GoA2ohE0EBIRIgDEGYA2oMAgsgC0GUA2ohDiALQZwDaiETQQIhEiAMQZQDagwBCyALQZQDaiEOIAtBpANqIRNBACESIAxBlANqCyEMIAsgEkECdGogDCoCACAOKgIAkyATKgIAkzgCnAMLIBFBAXFFDQUCQAJAIBFBAnEEQCABIQwgDxBfDQEMAgsgCy0ANEEHcQ0AIAstADhBB3ENACALLQBCQQdxDQAgASEMIAtBQGsvAQBBB3FFDQELIAAhDAsgEUEBaw4DAQIDAAsQJAALIAtBmANqIREgC0GoA2ohDkEBIRMgDEGYA2oMAgsgC0GUA2ohESALQZwDaiEOQQIhEyAMQZQDagwBCyALQZQDaiERIAtBpANqIQ5BACETIAxBlANqCyEMIAsgE0ECdGogDCoCACARKgIAkyAOKgIAkzgCnAMLIAsqAqADIRsgCyoCnAMgB0MAAAAAIA8QXxuTIRcCfQJAIAstADRBB3ENACALLQA4QQdxDQAgCy0AQkEHcQ0AIAtBQGsvAQBBB3ENAEMAAAAADAELIAgLIRogCyAXOAKcAyALIBsgGpM4AqADIBAhEQsgDUEIahAuIA0oAgwiDCANKAIIIg5yDQALCyANKAIQIgwEQANAIAwoAgAhACAMECMgACIMDQALCyANQSBqJAAgEUEBcQt2AgF/AX0jAEEQayIEJAAgBEEIaiAAIAFBAnRB7CVqKAIAIAIQUEMAAMB/IQUCQAJAAkAgBC0ADEEBaw4CAAECCyAEKgIIIQUMAQsgBCoCCCADlEMK1yM8lCEFCyAEQRBqJAAgBUMAAAAAl0MAAAAAIAUgBVsbC3gCAX8BfSMAQRBrIgQkACAEQQhqIABBAyACQQJHQQF0IAFB/gFxQQJHGyACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt4AgF/AX0jAEEQayIEJAAgBEEIaiAAQQEgAkECRkEBdCABQf4BcUECRxsgAhA2QwAAwH8hBQJAAkACQCAELQAMQQFrDgIAAQILIAQqAgghBQwBCyAEKgIIIAOUQwrXIzyUIQULIARBEGokACAFQwAAAAAgBSAFWxsLoA0BBH8jAEEQayIJJAAgCUEIaiACQRRqIgggA0ECRkEBdEEBIARB/gFxQQJGIgobIgsgAxA2IAYgByAKGyEHAkACQAJAAkACQAJAIAktAAxFDQAgCUEIaiAIIAsgAxA2IAktAAxBA0YNACAIIAQgAyAHEIEBIABBFGogBCADEDCSIAggBCADIAcQIpIhBkEBIQMCQAJ/AkACQAJAAkAgBA4EAgMBAAcLQQIhAwwBC0EAIQMLIAMgC0YNAgJAAkAgBA4EAgIAAQYLIABBlANqIQNBAAwCCyAAQZQDaiEDQQAMAQsgAEGYA2ohA0EBCyEAIAMqAgAgAiAAQQJ0aioClAOTIAaTIQYLIAIgBEECdEHcJWooAgBBAnRqIAY4ApwDDAULIAlBCGogCCADQQJHQQF0QQMgChsiCiADEDYCQCAJLQAMRQ0AIAlBCGogCCAKIAMQNiAJLQAMQQNGDQACfwJAAkACQCAEDgQCAgABBQsgAEGUA2ohBUEADAILIABBlANqIQVBAAwBCyAAQZgDaiEFQQELIQEgBSoCACACQZQDaiIFIAFBAnRqKgIAkyAAQRRqIAQgAxAvkyAIIAQgAyAHECGTIAggBCADIAcQgAGTIQZBASEDAkACfwJAAkACQAJAIAQOBAIDAQAHC0ECIQMMAQtBACEDCyADIAtGDQICQAJAIAQOBAICAAEGCyAAQZQDaiEDQQAMAgsgAEGUA2ohA0EADAELIABBmANqIQNBAQshACADKgIAIAUgAEECdGoqAgCTIAaTIQYLIAIgBEECdEHcJWooAgBBAnRqIAY4ApwDDAULAkACQAJAIAUEQCABLQAUQQR2QQdxIgBBBUsNCEEBIAB0IgBBMnENASAAQQlxBEAgBEECdEHcJWooAgAhACAIIAQgAyAGEEEgASAAQQJ0IgBqIgEqArwDkiEGIAAgAmogAigC9AMtABRBAnEEfSAGBSAGIAEqAswDkgs4ApwDDAkLIAEgBEECdEHsJWooAgBBAnRqIgAqArwDIAggBCADIAYQYpIhBiACKAL0Ay0AFEECcUUEQCAGIAAqAswDkiEGCwJAAkACQAJAIAQOBAEBAgAICyABKgKUAyACKgKUA5MhB0ECIQMMAgsgASoCmAMgAioCmAOTIQdBASEDAkAgBA4CAgAHC0EDIQMMAQsgASoClAMgAioClAOTIQdBACEDCyACIANBAnRqIAcgBpM4ApwDDAgLIAIvABZBD3EiBUUEQCABLQAVQQR2IQULIAVBBUYEQCABLQAUQQhxRQ0CCyABLwAVQYCAA3FBgIACRgRAIAVBAmsOAgEHAwsgBUEISw0HQQEgBXRB8wNxDQYgBUECRw0CC0EAIQACfQJ/AkACQAJAAkACfwJAAkACQCAEDgQCAgABBAsgASoClAMhB0ECIQAgAUG8A2oMAgsgASoClAMhByABQcQDagwBCyABKgKYAyEHAkACQCAEDgIAAQMLQQMhACABQcADagwBC0EBIQAgAUHIA2oLIQUgByAFKgIAkyABQbwDaiIIIABBAnRqKgIAkyIHIAIoAvQDLQAUQQJxDQUaAkAgBA4EAAIDBAELQQMhACABQdADagwECxAkAAtBASEAIAFB2ANqDAILQQIhACABQcwDagwBC0EAIQAgAUHUA2oLIQUgByAFKgIAkyABIABBAnRqKgLMA5MLIAIgBEECdCIFQfwlaigCAEECdGoqApQDIAJBFGoiACAEQQEgBhAiIAAgBEEBIAYQIZKSk0MAAAA/lCAIIAVB3CVqKAIAIgVBAnRqKgIAkiAAIAQgAyAGEEGSIQYgAiAFQQJ0aiACKAL0Ay0AFEECcQR9IAYFIAYgASAFQQJ0aioCzAOSCzgCnAMMBgsgAS8AFUGAgANxQYCAAkcNBAsgASAEQQJ0QewlaigCAEECdGoiACoCvAMgCCAEIAMgBhBikiEGIAIoAvQDLQAUQQJxRQRAIAYgACoCzAOSIQYLAkACQCAEDgQBAQMAAgsgASoClAMgAioClAOTIQdBAiEDDAMLIAEqApgDIAIqApgDkyEHQQEhAwJAIAQOAgMAAQtBAyEDDAILECQACyABKgKUAyACKgKUA5MhB0EAIQMLIAIgA0ECdGogByAGkzgCnAMMAQsgBEECdEHcJWooAgAhACAIIAQgAyAGEEEgASAAQQJ0IgBqIgEqArwDkiEGIAAgAmogAigC9AMtABRBAnEEfSAGBSAGIAEqAswDkgs4ApwDCyAJQRBqJAALcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QewlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";if(!n(YD)){var WJ=YD;YD=K.locateFile?K.locateFile(WJ,Z):Z+WJ}function EQ(){var $=YD;try{if($==YD&&N)return new Uint8Array(N);if(n($))try{var A=dZ($.slice(37)),M=new Uint8Array(A.length);for($=0;$<A.length;++$)M[$]=A.charCodeAt($);var H=M}catch(C){throw Error("Converting base64 string to bytes failed.")}else H=void 0;var j=H;if(j)return j;throw"both async and sync fetching of the wasm failed"}catch(C){a(C)}}function PZ(){return N||typeof fetch!="function"?Promise.resolve().then(function(){return EQ()}):fetch(YD,{credentials:"same-origin"}).then(function($){if(!$.ok)throw"failed to load wasm binary file at '"+YD+"'";return $.arrayBuffer()}).catch(function(){return EQ()})}function wK($){for(;0<$.length;)$.shift()(K)}function bQ($){if($===void 0)return"_unknown";$=$.replace(/[^a-zA-Z0-9_]/g,"$");var A=$.charCodeAt(0);return 48<=A&&57>=A?"_"+$:$}function zK($,A){return $=bQ($),function(){return A.apply(this,arguments)}}var qD=[{},{value:void 0},{value:null},{value:!0},{value:!1}],fK=[];function sJ($){var A=Error,M=zK($,function(H){this.name=$,this.message=H,H=Error(H).stack,H!==void 0&&(this.stack=this.toString()+`
|
|
3
|
+
`+H.replace(/^Error(:[^\n]*)?\n/,""))});return M.prototype=Object.create(A.prototype),M.prototype.constructor=M,M.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},M}var GJ=void 0;function s($){throw new GJ($)}var xJ=($)=>{return $||s("Cannot use deleted val. handle = "+$),qD[$].value},oJ=($)=>{switch($){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var A=fK.length?fK.pop():qD.length;return qD[A]={ga:1,value:$},A}},cQ=void 0,vQ=void 0;function LD($){for(var A="";P[$];)A+=vQ[P[$++]];return A}var TJ=[];function qK(){for(;TJ.length;){var $=TJ.pop();$.M.$=!1,$.delete()}}var SJ=void 0,cD={};function xK($,A){for(A===void 0&&s("ptr should not be undefined");$.R;)A=$.ba(A),$=$.R;return A}var AJ={};function dQ($){$=tQ($);var A=LD($);return mD($),A}function mQ($,A){var M=AJ[$];return M===void 0&&s(A+" has unknown type "+dQ($)),M}function rJ(){}var TK=!1;function uQ($){--$.count.value,$.count.value===0&&($.T?$.U.W($.T):$.P.N.W($.O))}function iQ($,A,M){if(A===M)return $;if(M.R===void 0)return null;return $=iQ($,A,M.R),$===null?null:M.na($)}var lQ={};function BZ($,A){return A=xK($,A),cD[A]}var aQ=void 0;function nJ($){throw new aQ($)}function tJ($,A){return A.P&&A.O||nJ("makeClassHandle requires ptr and ptrType"),!!A.U!==!!A.T&&nJ("Both smartPtrType and smartPtr must be specified"),A.count={value:1},kJ(Object.create($,{M:{value:A}}))}function kJ($){if(typeof FinalizationRegistry>"u")return kJ=(A)=>A,$;return TK=new FinalizationRegistry((A)=>{uQ(A.M)}),kJ=(A)=>{var M=A.M;return M.T&&TK.register(A,{M},A),A},rJ=(A)=>{TK.unregister(A)},kJ($)}var eJ={};function SK($){for(;$.length;){var A=$.pop();$.pop()(A)}}function gJ($){return this.fromWireType(T[$>>2])}var PJ={},DK={};function eD($,A,M){function H(z){z=M(z),z.length!==$.length&&nJ("Mismatched type converter count");for(var x=0;x<$.length;++x)vD($[x],z[x])}$.forEach(function(z){DK[z]=A});var j=Array(A.length),C=[],w=0;A.forEach((z,x)=>{AJ.hasOwnProperty(z)?j[x]=AJ[z]:(C.push(z),PJ.hasOwnProperty(z)||(PJ[z]=[]),PJ[z].push(()=>{j[x]=AJ[z],++w,w===C.length&&H(j)}))}),C.length===0&&H(j)}function gK($){switch($){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError("Unknown type size: "+$)}}function vD($,A,M={}){if(!("argPackAdvance"in A))throw TypeError("registerType registeredInstance requires argPackAdvance");var H=A.name;if($||s('type "'+H+'" must have a positive integer typeid pointer'),AJ.hasOwnProperty($)){if(M.ua)return;s("Cannot register type '"+H+"' twice")}AJ[$]=A,delete DK[$],PJ.hasOwnProperty($)&&(A=PJ[$],delete PJ[$],A.forEach((j)=>j()))}function yK($){s($.M.P.N.name+" instance already deleted")}function DJ(){}function RK($,A,M){if($[A].S===void 0){var H=$[A];$[A]=function(){return $[A].S.hasOwnProperty(arguments.length)||s("Function '"+M+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+$[A].S+")!"),$[A].S[arguments.length].apply(this,arguments)},$[A].S=[],$[A].S[H.Z]=H}}function CZ($,A){K.hasOwnProperty($)?(s("Cannot register public name '"+$+"' twice"),RK(K,$,$),K.hasOwnProperty(void 0)&&s("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),K[$].S[void 0]=A):K[$]=A}function FZ($,A,M,H,j,C,w,z){this.name=$,this.constructor=A,this.X=M,this.W=H,this.R=j,this.pa=C,this.ba=w,this.na=z,this.ja=[]}function hK($,A,M){for(;A!==M;)A.ba||s("Expected null or instance of "+M.name+", got an instance of "+A.name),$=A.ba($),A=A.R;return $}function IZ($,A){if(A===null)return this.ea&&s("null is not a valid "+this.name),0;return A.M||s('Cannot pass "'+cK(A)+'" as a '+this.name),A.M.O||s("Cannot pass deleted object as a pointer of type "+this.name),hK(A.M.O,A.M.P.N,this.N)}function wZ($,A){if(A===null){if(this.ea&&s("null is not a valid "+this.name),this.da){var M=this.fa();return $!==null&&$.push(this.W,M),M}return 0}if(A.M||s('Cannot pass "'+cK(A)+'" as a '+this.name),A.M.O||s("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&A.M.P.ca&&s("Cannot convert argument of type "+(A.M.U?A.M.U.name:A.M.P.name)+" to parameter type "+this.name),M=hK(A.M.O,A.M.P.N,this.N),this.da)switch(A.M.T===void 0&&s("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:A.M.U===this?M=A.M.T:s("Cannot convert argument of type "+(A.M.U?A.M.U.name:A.M.P.name)+" to parameter type "+this.name);break;case 1:M=A.M.T;break;case 2:if(A.M.U===this)M=A.M.T;else{var H=A.clone();M=this.xa(M,oJ(function(){H.delete()})),$!==null&&$.push(this.W,M)}break;default:s("Unsupporting sharing policy")}return M}function zZ($,A){if(A===null)return this.ea&&s("null is not a valid "+this.name),0;return A.M||s('Cannot pass "'+cK(A)+'" as a '+this.name),A.M.O||s("Cannot pass deleted object as a pointer of type "+this.name),A.M.P.ca&&s("Cannot convert argument of type "+A.M.P.name+" to parameter type "+this.name),hK(A.M.O,A.M.P.N,this.N)}function dD($,A,M,H){this.name=$,this.N=A,this.ea=M,this.ca=H,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,A.R!==void 0?this.toWireType=wZ:(this.toWireType=H?IZ:zZ,this.V=null)}function fZ($,A){K.hasOwnProperty($)||nJ("Replacing nonexistant public symbol"),K[$]=A,K[$].Z=void 0}function qZ($,A){var M=[];return function(){if(M.length=0,Object.assign(M,arguments),$.includes("j")){var H=K["dynCall_"+$];H=M&&M.length?H.apply(null,[A].concat(M)):H.call(null,A)}else H=I.get(A).apply(null,M);return H}}function xD($,A){$=LD($);var M=$.includes("j")?qZ($,A):I.get(A);return typeof M!="function"&&s("unknown function pointer with signature "+$+": "+A),M}var sQ=void 0;function JK($,A){function M(C){j[C]||AJ[C]||(DK[C]?DK[C].forEach(M):(H.push(C),j[C]=!0))}var H=[],j={};throw A.forEach(M),new sQ($+": "+H.map(dQ).join([", "]))}function pK($,A,M,H,j){var C=A.length;2>C&&s("argTypes array size mismatch! Must at least get return value and 'this' types!");var w=A[1]!==null&&M!==null,z=!1;for(M=1;M<A.length;++M)if(A[M]!==null&&A[M].V===void 0){z=!0;break}var x=A[0].name!=="void",q=C-2,R=Array(q),d=[],t=[];return function(){if(arguments.length!==q&&s("function "+$+" called with "+arguments.length+" arguments, expected "+q+" args!"),t.length=0,d.length=w?2:1,d[0]=j,w){var _D=A[1].toWireType(t,this);d[1]=_D}for(var DD=0;DD<q;++DD)R[DD]=A[DD+2].toWireType(t,arguments[DD]),d.push(R[DD]);if(DD=H.apply(null,d),z)SK(t);else for(var BD=w?1:2;BD<A.length;BD++){var TD=BD===1?_D:R[BD-2];A[BD].V!==null&&A[BD].V(TD)}return _D=x?A[0].fromWireType(DD):void 0,_D}}function EK($,A){for(var M=[],H=0;H<$;H++)M.push(g[A+4*H>>2]);return M}function bK($){4<$&&--qD[$].ga===0&&(qD[$]=void 0,fK.push($))}function cK($){if($===null)return"null";var A=typeof $;return A==="object"||A==="array"||A==="function"?$.toString():""+$}function xZ($,A){switch(A){case 2:return function(M){return this.fromWireType(h[M>>2])};case 3:return function(M){return this.fromWireType(y[M>>3])};default:throw TypeError("Unknown float type: "+$)}}function TZ($,A,M){switch(A){case 0:return M?function(H){return F[H]}:function(H){return P[H]};case 1:return M?function(H){return W[H>>1]}:function(H){return f[H>>1]};case 2:return M?function(H){return T[H>>2]}:function(H){return g[H>>2]};default:throw TypeError("Unknown integer type: "+$)}}function SZ($,A){for(var M="",H=0;!(H>=A/2);++H){var j=W[$+2*H>>1];if(j==0)break;M+=String.fromCharCode(j)}return M}function gZ($,A,M){if(M===void 0&&(M=2147483647),2>M)return 0;M-=2;var H=A;M=M<2*$.length?M/2:$.length;for(var j=0;j<M;++j)W[A>>1]=$.charCodeAt(j),A+=2;return W[A>>1]=0,A-H}function yZ($){return 2*$.length}function RZ($,A){for(var M=0,H="";!(M>=A/4);){var j=T[$+4*M>>2];if(j==0)break;++M,65536<=j?(j-=65536,H+=String.fromCharCode(55296|j>>10,56320|j&1023)):H+=String.fromCharCode(j)}return H}function hZ($,A,M){if(M===void 0&&(M=2147483647),4>M)return 0;var H=A;M=H+M-4;for(var j=0;j<$.length;++j){var C=$.charCodeAt(j);if(55296<=C&&57343>=C){var w=$.charCodeAt(++j);C=65536+((C&1023)<<10)|w&1023}if(T[A>>2]=C,A+=4,A+4>M)break}return T[A>>2]=0,A-H}function pZ($){for(var A=0,M=0;M<$.length;++M){var H=$.charCodeAt(M);55296<=H&&57343>=H&&++M,A+=4}return A}var EZ={};function oQ($){var A=EZ[$];return A===void 0?LD($):A}var KK=[];function bZ($){var A=KK.length;return KK.push($),A}function cZ($,A){for(var M=Array($),H=0;H<$;++H)M[H]=mQ(g[A+4*H>>2],"parameter "+H);return M}var rQ=[],vZ=[null,[],[]];GJ=K.BindingError=sJ("BindingError"),K.count_emval_handles=function(){for(var $=0,A=5;A<qD.length;++A)qD[A]!==void 0&&++$;return $},K.get_first_emval=function(){for(var $=5;$<qD.length;++$)if(qD[$]!==void 0)return qD[$];return null},cQ=K.PureVirtualError=sJ("PureVirtualError");for(var nQ=Array(256),QK=0;256>QK;++QK)nQ[QK]=String.fromCharCode(QK);vQ=nQ,K.getInheritedInstanceCount=function(){return Object.keys(cD).length},K.getLiveInheritedInstances=function(){var $=[],A;for(A in cD)cD.hasOwnProperty(A)&&$.push(cD[A]);return $},K.flushPendingDeletes=qK,K.setDelayFunction=function($){SJ=$,TJ.length&&SJ&&SJ(qK)},aQ=K.InternalError=sJ("InternalError"),DJ.prototype.isAliasOf=function($){if(!(this instanceof DJ&&$ instanceof DJ))return!1;var A=this.M.P.N,M=this.M.O,H=$.M.P.N;for($=$.M.O;A.R;)M=A.ba(M),A=A.R;for(;H.R;)$=H.ba($),H=H.R;return A===H&&M===$},DJ.prototype.clone=function(){if(this.M.O||yK(this),this.M.aa)return this.M.count.value+=1,this;var $=kJ,A=Object,M=A.create,H=Object.getPrototypeOf(this),j=this.M;return $=$(M.call(A,H,{M:{value:{count:j.count,$:j.$,aa:j.aa,O:j.O,P:j.P,T:j.T,U:j.U}}})),$.M.count.value+=1,$.M.$=!1,$},DJ.prototype.delete=function(){this.M.O||yK(this),this.M.$&&!this.M.aa&&s("Object already scheduled for deletion"),rJ(this),uQ(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},DJ.prototype.isDeleted=function(){return!this.M.O},DJ.prototype.deleteLater=function(){return this.M.O||yK(this),this.M.$&&!this.M.aa&&s("Object already scheduled for deletion"),TJ.push(this),TJ.length===1&&SJ&&SJ(qK),this.M.$=!0,this},dD.prototype.qa=function($){return this.ka&&($=this.ka($)),$},dD.prototype.ha=function($){this.W&&this.W($)},dD.prototype.argPackAdvance=8,dD.prototype.readValueFromPointer=gJ,dD.prototype.deleteObject=function($){if($!==null)$.delete()},dD.prototype.fromWireType=function($){function A(){return this.da?tJ(this.N.X,{P:this.wa,O:M,U:this,T:$}):tJ(this.N.X,{P:this,O:$})}var M=this.qa($);if(!M)return this.ha($),null;var H=BZ(this.N,M);if(H!==void 0){if(H.M.count.value===0)return H.M.O=M,H.M.T=$,H.clone();return H=H.clone(),this.ha($),H}if(H=this.N.pa(M),H=lQ[H],!H)return A.call(this);H=this.ca?H.la:H.pointerType;var j=iQ(M,this.N,H.N);return j===null?A.call(this):this.da?tJ(H.N.X,{P:H,O:j,U:this,T:$}):tJ(H.N.X,{P:H,O:j})},sQ=K.UnboundTypeError=sJ("UnboundTypeError");var dZ=typeof atob=="function"?atob:function($){var A="",M=0;$=$.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var H="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf($.charAt(M++)),j="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf($.charAt(M++)),C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf($.charAt(M++)),w="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf($.charAt(M++));H=H<<2|j>>4,j=(j&15)<<4|C>>2;var z=(C&3)<<6|w;A+=String.fromCharCode(H),C!==64&&(A+=String.fromCharCode(j)),w!==64&&(A+=String.fromCharCode(z))}while(M<$.length);return A},mZ={l:function($,A,M,H){a("Assertion failed: "+($?U(P,$):"")+", at: "+[A?A?U(P,A):"":"unknown filename",M,H?H?U(P,H):"":"unknown function"])},q:function($,A,M){$=LD($),A=mQ(A,"wrapper"),M=xJ(M);var H=[].slice,j=A.N,C=j.X,w=j.R.X,z=j.R.constructor;$=zK($,function(){j.R.ja.forEach(function(q){if(this[q]===w[q])throw new cQ("Pure virtual function "+q+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:C}),this.__construct.apply(this,H.call(arguments))}),C.__construct=function(){this===C&&s("Pass correct 'this' to __construct");var q=z.implement.apply(void 0,[this].concat(H.call(arguments)));rJ(q);var R=q.M;q.notifyOnDestruction(),R.aa=!0,Object.defineProperties(this,{M:{value:R}}),kJ(this),q=R.O,q=xK(j,q),cD.hasOwnProperty(q)?s("Tried to register registered instance: "+q):cD[q]=this},C.__destruct=function(){this===C&&s("Pass correct 'this' to __destruct"),rJ(this);var q=this.M.O;q=xK(j,q),cD.hasOwnProperty(q)?delete cD[q]:s("Tried to unregister unregistered instance: "+q)},$.prototype=Object.create(C);for(var x in M)$.prototype[x]=M[x];return oJ($)},j:function($){var A=eJ[$];delete eJ[$];var{fa:M,W:H,ia:j}=A,C=j.map((w)=>w.ta).concat(j.map((w)=>w.za));eD([$],C,(w)=>{var z={};return j.forEach((x,q)=>{var R=w[q],d=x.ra,t=x.sa,_D=w[q+j.length],DD=x.ya,BD=x.Aa;z[x.oa]={read:(TD)=>R.fromWireType(d(t,TD)),write:(TD,yJ)=>{var uD=[];DD(BD,TD,_D.toWireType(uD,yJ)),SK(uD)}}}),[{name:A.name,fromWireType:function(x){var q={},R;for(R in z)q[R]=z[R].read(x);return H(x),q},toWireType:function(x,q){for(var R in z)if(!(R in q))throw TypeError('Missing field: "'+R+'"');var d=M();for(R in z)z[R].write(d,q[R]);return x!==null&&x.push(H,d),d},argPackAdvance:8,readValueFromPointer:gJ,V:H}]})},v:function(){},B:function($,A,M,H,j){var C=gK(M);A=LD(A),vD($,{name:A,fromWireType:function(w){return!!w},toWireType:function(w,z){return z?H:j},argPackAdvance:8,readValueFromPointer:function(w){if(M===1)var z=F;else if(M===2)z=W;else if(M===4)z=T;else throw TypeError("Unknown boolean type size: "+A);return this.fromWireType(z[w>>C])},V:null})},f:function($,A,M,H,j,C,w,z,x,q,R,d,t){R=LD(R),C=xD(j,C),z&&(z=xD(w,z)),q&&(q=xD(x,q)),t=xD(d,t);var _D=bQ(R);CZ(_D,function(){JK("Cannot construct "+R+" due to unbound types",[H])}),eD([$,A,M],H?[H]:[],function(DD){if(DD=DD[0],H)var BD=DD.N,TD=BD.X;else TD=DJ.prototype;DD=zK(_D,function(){if(Object.getPrototypeOf(this)!==yJ)throw new GJ("Use 'new' to construct "+R);if(uD.Y===void 0)throw new GJ(R+" has no accessible constructor");var JX=uD.Y[arguments.length];if(JX===void 0)throw new GJ("Tried to invoke ctor of "+R+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(uD.Y).toString()+") parameters instead!");return JX.apply(this,arguments)});var yJ=Object.create(TD,{constructor:{value:DD}});DD.prototype=yJ;var uD=new FZ(R,DD,yJ,t,BD,C,z,q);BD=new dD(R,uD,!0,!1),TD=new dD(R+"*",uD,!1,!1);var DX=new dD(R+" const*",uD,!1,!0);return lQ[$]={pointerType:TD,la:DX},fZ(_D,DD),[BD,TD,DX]})},d:function($,A,M,H,j,C,w){var z=EK(M,H);A=LD(A),C=xD(j,C),eD([],[$],function(x){function q(){JK("Cannot call "+R+" due to unbound types",z)}x=x[0];var R=x.name+"."+A;A.startsWith("@@")&&(A=Symbol[A.substring(2)]);var d=x.N.constructor;return d[A]===void 0?(q.Z=M-1,d[A]=q):(RK(d,A,R),d[A].S[M-1]=q),eD([],z,function(t){return t=pK(R,[t[0],null].concat(t.slice(1)),null,C,w),d[A].S===void 0?(t.Z=M-1,d[A]=t):d[A].S[M-1]=t,[]}),[]})},p:function($,A,M,H,j,C){0<A||a();var w=EK(A,M);j=xD(H,j),eD([],[$],function(z){z=z[0];var x="constructor "+z.name;if(z.N.Y===void 0&&(z.N.Y=[]),z.N.Y[A-1]!==void 0)throw new GJ("Cannot register multiple constructors with identical number of parameters ("+(A-1)+") for class '"+z.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return z.N.Y[A-1]=()=>{JK("Cannot construct "+z.name+" due to unbound types",w)},eD([],w,function(q){return q.splice(1,0,null),z.N.Y[A-1]=pK(x,q,null,j,C),[]}),[]})},a:function($,A,M,H,j,C,w,z){var x=EK(M,H);A=LD(A),C=xD(j,C),eD([],[$],function(q){function R(){JK("Cannot call "+d+" due to unbound types",x)}q=q[0];var d=q.name+"."+A;A.startsWith("@@")&&(A=Symbol[A.substring(2)]),z&&q.N.ja.push(A);var t=q.N.X,_D=t[A];return _D===void 0||_D.S===void 0&&_D.className!==q.name&&_D.Z===M-2?(R.Z=M-2,R.className=q.name,t[A]=R):(RK(t,A,d),t[A].S[M-2]=R),eD([],x,function(DD){return DD=pK(d,DD,q,C,w),t[A].S===void 0?(DD.Z=M-2,t[A]=DD):t[A].S[M-2]=DD,[]}),[]})},A:function($,A){A=LD(A),vD($,{name:A,fromWireType:function(M){var H=xJ(M);return bK(M),H},toWireType:function(M,H){return oJ(H)},argPackAdvance:8,readValueFromPointer:gJ,V:null})},n:function($,A,M){M=gK(M),A=LD(A),vD($,{name:A,fromWireType:function(H){return H},toWireType:function(H,j){return j},argPackAdvance:8,readValueFromPointer:xZ(A,M),V:null})},e:function($,A,M,H,j){A=LD(A),j===-1&&(j=4294967295),j=gK(M);var C=(z)=>z;if(H===0){var w=32-8*M;C=(z)=>z<<w>>>w}M=A.includes("unsigned")?function(z,x){return x>>>0}:function(z,x){return x},vD($,{name:A,fromWireType:C,toWireType:M,argPackAdvance:8,readValueFromPointer:TZ(A,j,H!==0),V:null})},b:function($,A,M){function H(C){C>>=2;var w=g;return new j(k,w[C+1],w[C])}var j=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][A];M=LD(M),vD($,{name:M,fromWireType:H,argPackAdvance:8,readValueFromPointer:H},{ua:!0})},o:function($,A){A=LD(A);var M=A==="std::string";vD($,{name:A,fromWireType:function(H){var j=g[H>>2],C=H+4;if(M)for(var w=C,z=0;z<=j;++z){var x=C+z;if(z==j||P[x]==0){if(w=w?U(P,w,x-w):"",q===void 0)var q=w;else q+=String.fromCharCode(0),q+=w;w=x+1}}else{q=Array(j);for(z=0;z<j;++z)q[z]=String.fromCharCode(P[C+z]);q=q.join("")}return mD(H),q},toWireType:function(H,j){j instanceof ArrayBuffer&&(j=new Uint8Array(j));var C,w=typeof j=="string";if(w||j instanceof Uint8Array||j instanceof Uint8ClampedArray||j instanceof Int8Array||s("Cannot pass non-string to std::string"),M&&w){var z=0;for(C=0;C<j.length;++C){var x=j.charCodeAt(C);127>=x?z++:2047>=x?z+=2:55296<=x&&57343>=x?(z+=4,++C):z+=3}C=z}else C=j.length;if(z=vK(4+C+1),x=z+4,g[z>>2]=C,M&&w){if(w=x,x=C+1,C=P,0<x){x=w+x-1;for(var q=0;q<j.length;++q){var R=j.charCodeAt(q);if(55296<=R&&57343>=R){var d=j.charCodeAt(++q);R=65536+((R&1023)<<10)|d&1023}if(127>=R){if(w>=x)break;C[w++]=R}else{if(2047>=R){if(w+1>=x)break;C[w++]=192|R>>6}else{if(65535>=R){if(w+2>=x)break;C[w++]=224|R>>12}else{if(w+3>=x)break;C[w++]=240|R>>18,C[w++]=128|R>>12&63}C[w++]=128|R>>6&63}C[w++]=128|R&63}}C[w]=0}}else if(w)for(w=0;w<C;++w)q=j.charCodeAt(w),255<q&&(mD(x),s("String has UTF-16 code units that do not fit in 8 bits")),P[x+w]=q;else for(w=0;w<C;++w)P[x+w]=j[w];return H!==null&&H.push(mD,z),z},argPackAdvance:8,readValueFromPointer:gJ,V:function(H){mD(H)}})},i:function($,A,M){if(M=LD(M),A===2)var H=SZ,j=gZ,C=yZ,w=()=>f,z=1;else A===4&&(H=RZ,j=hZ,C=pZ,w=()=>g,z=2);vD($,{name:M,fromWireType:function(x){for(var q=g[x>>2],R=w(),d,t=x+4,_D=0;_D<=q;++_D){var DD=x+4+_D*A;if(_D==q||R[DD>>z]==0)t=H(t,DD-t),d===void 0?d=t:(d+=String.fromCharCode(0),d+=t),t=DD+A}return mD(x),d},toWireType:function(x,q){typeof q!="string"&&s("Cannot pass non-string to C++ string type "+M);var R=C(q),d=vK(4+R+A);return g[d>>2]=R>>z,j(q,d+4,R+A),x!==null&&x.push(mD,d),d},argPackAdvance:8,readValueFromPointer:gJ,V:function(x){mD(x)}})},k:function($,A,M,H,j,C){eJ[$]={name:LD(A),fa:xD(M,H),W:xD(j,C),ia:[]}},h:function($,A,M,H,j,C,w,z,x,q){eJ[$].ia.push({oa:LD(A),ta:M,ra:xD(H,j),sa:C,za:w,ya:xD(z,x),Aa:q})},C:function($,A){A=LD(A),vD($,{va:!0,name:A,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function($,A,M,H,j){$=KK[$],A=xJ(A),M=oQ(M);var C=[];return g[H>>2]=oJ(C),$(A,M,C,j)},t:function($,A,M,H){$=KK[$],A=xJ(A),M=oQ(M),$(A,M,null,H)},g:bK,m:function($,A){var M=cZ($,A),H=M[0];A=H.name+"_$"+M.slice(1).map(function(w){return w.name}).join("_")+"$";var j=rQ[A];if(j!==void 0)return j;var C=Array($-1);return j=bZ((w,z,x,q)=>{for(var R=0,d=0;d<$-1;++d)C[d]=M[d+1].readValueFromPointer(q+R),R+=M[d+1].argPackAdvance;w=w[z].apply(w,C);for(d=0;d<$-1;++d)M[d+1].ma&&M[d+1].ma(C[d]);if(!H.va)return H.toWireType(x,w)}),rQ[A]=j},D:function($){4<$&&(qD[$].ga+=1)},r:function($){var A=xJ($);SK(A),bK($)},c:function(){a("")},x:function($,A,M){P.copyWithin($,A,A+M)},w:function($){var A=P.length;if($>>>=0,2147483648<$)return!1;for(var M=1;4>=M;M*=2){var H=A*(1+0.2/M);H=Math.min(H,$+100663296);var j=Math;H=Math.max($,H),j=j.min.call(j,2147483648,H+(65536-H%65536)%65536);D:{try{G.grow(j-k.byteLength+65535>>>16),B();var C=1;break D}catch(w){}C=void 0}if(C)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function($,A,M,H){for(var j=0,C=0;C<M;C++){var w=g[A>>2],z=g[A+4>>2];A+=8;for(var x=0;x<z;x++){var q=P[w+x],R=vZ[$];q===0||q===10?(($===1?_:L)(U(R,0)),R.length=0):R.push(q)}j+=z}return g[H>>2]=j,0}};(function(){function $(j){K.asm=j.exports,G=K.asm.E,B(),I=K.asm.J,v.unshift(K.asm.F),p--,K.monitorRunDependencies&&K.monitorRunDependencies(p),p==0&&(m!==null&&(clearInterval(m),m=null),JD&&(j=JD,JD=null,j()))}function A(j){$(j.instance)}function M(j){return PZ().then(function(C){return WebAssembly.instantiate(C,H)}).then(function(C){return C}).then(j,function(C){L("failed to asynchronously prepare wasm: "+C),a(C)})}var H={a:mZ};if(p++,K.monitorRunDependencies&&K.monitorRunDependencies(p),K.instantiateWasm)try{return K.instantiateWasm(H,$)}catch(j){L("Module.instantiateWasm callback failed with error: "+j),X(j)}return function(){return N||typeof WebAssembly.instantiateStreaming!="function"||n(YD)||typeof fetch!="function"?M(A):fetch(YD,{credentials:"same-origin"}).then(function(j){return WebAssembly.instantiateStreaming(j,H).then(A,function(C){return L("wasm streaming compile failed: "+C),L("falling back to ArrayBuffer instantiation"),M(A)})})}().catch(X),{}})(),K.___wasm_call_ctors=function(){return(K.___wasm_call_ctors=K.asm.F).apply(null,arguments)};var tQ=K.___getTypeName=function(){return(tQ=K.___getTypeName=K.asm.G).apply(null,arguments)};K.__embind_initialize_bindings=function(){return(K.__embind_initialize_bindings=K.asm.H).apply(null,arguments)};var vK=K._malloc=function(){return(vK=K._malloc=K.asm.I).apply(null,arguments)},mD=K._free=function(){return(mD=K._free=K.asm.K).apply(null,arguments)};K.dynCall_jiji=function(){return(K.dynCall_jiji=K.asm.L).apply(null,arguments)};var XK;JD=function $(){XK||eQ(),XK||(JD=$)};function eQ(){function $(){if(!XK&&(XK=!0,K.calledRun=!0,!O)){if(wK(v),Q(K),K.onRuntimeInitialized)K.onRuntimeInitialized();if(K.postRun)for(typeof K.postRun=="function"&&(K.postRun=[K.postRun]);K.postRun.length;){var A=K.postRun.shift();u.unshift(A)}wK(u)}}if(!(0<p)){if(K.preRun)for(typeof K.preRun=="function"&&(K.preRun=[K.preRun]);K.preRun.length;)i();wK(b),0<p||(K.setStatus?(K.setStatus("Running..."),setTimeout(function(){setTimeout(function(){K.setStatus("")},1),$()},1)):$())}}if(K.preInit)for(typeof K.preInit=="function"&&(K.preInit=[K.preInit]);0<K.preInit.length;)K.preInit.pop()();return eQ(),J.ready}})(),rZ=oZ,e=function(D){return D[D.Auto=0]="Auto",D[D.FlexStart=1]="FlexStart",D[D.Center=2]="Center",D[D.FlexEnd=3]="FlexEnd",D[D.Stretch=4]="Stretch",D[D.Baseline=5]="Baseline",D[D.SpaceBetween=6]="SpaceBetween",D[D.SpaceAround=7]="SpaceAround",D[D.SpaceEvenly=8]="SpaceEvenly",D}({}),UJ=function(D){return D[D.BorderBox=0]="BorderBox",D[D.ContentBox=1]="ContentBox",D}({}),jJ=function(D){return D[D.Width=0]="Width",D[D.Height=1]="Height",D}({}),RD=function(D){return D[D.Inherit=0]="Inherit",D[D.LTR=1]="LTR",D[D.RTL=2]="RTL",D}({}),CD=function(D){return D[D.Flex=0]="Flex",D[D.None=1]="None",D[D.Contents=2]="Contents",D}({}),E=function(D){return D[D.Left=0]="Left",D[D.Top=1]="Top",D[D.Right=2]="Right",D[D.Bottom=3]="Bottom",D[D.Start=4]="Start",D[D.End=5]="End",D[D.Horizontal=6]="Horizontal",D[D.Vertical=7]="Vertical",D[D.All=8]="All",D}({}),MJ=function(D){return D[D.None=0]="None",D[D.StretchFlexBasis=1]="StretchFlexBasis",D[D.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",D[D.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",D[D.All=2147483647]="All",D[D.Classic=2147483646]="Classic",D}({}),_Y=function(D){return D[D.WebFlexBasis=0]="WebFlexBasis",D}({}),zD=function(D){return D[D.Column=0]="Column",D[D.ColumnReverse=1]="ColumnReverse",D[D.Row=2]="Row",D[D.RowReverse=3]="RowReverse",D}({}),OD=function(D){return D[D.Column=0]="Column",D[D.Row=1]="Row",D[D.All=2]="All",D}({}),UD=function(D){return D[D.FlexStart=0]="FlexStart",D[D.Center=1]="Center",D[D.FlexEnd=2]="FlexEnd",D[D.SpaceBetween=3]="SpaceBetween",D[D.SpaceAround=4]="SpaceAround",D[D.SpaceEvenly=5]="SpaceEvenly",D}({}),jD=function(D){return D[D.Error=0]="Error",D[D.Warn=1]="Warn",D[D.Info=2]="Info",D[D.Debug=3]="Debug",D[D.Verbose=4]="Verbose",D[D.Fatal=5]="Fatal",D}({}),FD=function(D){return D[D.Undefined=0]="Undefined",D[D.Exactly=1]="Exactly",D[D.AtMost=2]="AtMost",D}({}),AQ=function(D){return D[D.Default=0]="Default",D[D.Text=1]="Text",D}({}),oD=function(D){return D[D.Visible=0]="Visible",D[D.Hidden=1]="Hidden",D[D.Scroll=2]="Scroll",D}({}),rD=function(D){return D[D.Static=0]="Static",D[D.Relative=1]="Relative",D[D.Absolute=2]="Absolute",D}({}),HD=function(D){return D[D.Undefined=0]="Undefined",D[D.Point=1]="Point",D[D.Percent=2]="Percent",D[D.Auto=3]="Auto",D}({}),nD=function(D){return D[D.NoWrap=0]="NoWrap",D[D.Wrap=1]="Wrap",D[D.WrapReverse=2]="WrapReverse",D}({}),nZ={ALIGN_AUTO:e.Auto,ALIGN_FLEX_START:e.FlexStart,ALIGN_CENTER:e.Center,ALIGN_FLEX_END:e.FlexEnd,ALIGN_STRETCH:e.Stretch,ALIGN_BASELINE:e.Baseline,ALIGN_SPACE_BETWEEN:e.SpaceBetween,ALIGN_SPACE_AROUND:e.SpaceAround,ALIGN_SPACE_EVENLY:e.SpaceEvenly,BOX_SIZING_BORDER_BOX:UJ.BorderBox,BOX_SIZING_CONTENT_BOX:UJ.ContentBox,DIMENSION_WIDTH:jJ.Width,DIMENSION_HEIGHT:jJ.Height,DIRECTION_INHERIT:RD.Inherit,DIRECTION_LTR:RD.LTR,DIRECTION_RTL:RD.RTL,DISPLAY_FLEX:CD.Flex,DISPLAY_NONE:CD.None,DISPLAY_CONTENTS:CD.Contents,EDGE_LEFT:E.Left,EDGE_TOP:E.Top,EDGE_RIGHT:E.Right,EDGE_BOTTOM:E.Bottom,EDGE_START:E.Start,EDGE_END:E.End,EDGE_HORIZONTAL:E.Horizontal,EDGE_VERTICAL:E.Vertical,EDGE_ALL:E.All,ERRATA_NONE:MJ.None,ERRATA_STRETCH_FLEX_BASIS:MJ.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:MJ.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:MJ.AbsolutePercentAgainstInnerSize,ERRATA_ALL:MJ.All,ERRATA_CLASSIC:MJ.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:_Y.WebFlexBasis,FLEX_DIRECTION_COLUMN:zD.Column,FLEX_DIRECTION_COLUMN_REVERSE:zD.ColumnReverse,FLEX_DIRECTION_ROW:zD.Row,FLEX_DIRECTION_ROW_REVERSE:zD.RowReverse,GUTTER_COLUMN:OD.Column,GUTTER_ROW:OD.Row,GUTTER_ALL:OD.All,JUSTIFY_FLEX_START:UD.FlexStart,JUSTIFY_CENTER:UD.Center,JUSTIFY_FLEX_END:UD.FlexEnd,JUSTIFY_SPACE_BETWEEN:UD.SpaceBetween,JUSTIFY_SPACE_AROUND:UD.SpaceAround,JUSTIFY_SPACE_EVENLY:UD.SpaceEvenly,LOG_LEVEL_ERROR:jD.Error,LOG_LEVEL_WARN:jD.Warn,LOG_LEVEL_INFO:jD.Info,LOG_LEVEL_DEBUG:jD.Debug,LOG_LEVEL_VERBOSE:jD.Verbose,LOG_LEVEL_FATAL:jD.Fatal,MEASURE_MODE_UNDEFINED:FD.Undefined,MEASURE_MODE_EXACTLY:FD.Exactly,MEASURE_MODE_AT_MOST:FD.AtMost,NODE_TYPE_DEFAULT:AQ.Default,NODE_TYPE_TEXT:AQ.Text,OVERFLOW_VISIBLE:oD.Visible,OVERFLOW_HIDDEN:oD.Hidden,OVERFLOW_SCROLL:oD.Scroll,POSITION_TYPE_STATIC:rD.Static,POSITION_TYPE_RELATIVE:rD.Relative,POSITION_TYPE_ABSOLUTE:rD.Absolute,UNIT_UNDEFINED:HD.Undefined,UNIT_POINT:HD.Point,UNIT_PERCENT:HD.Percent,UNIT_AUTO:HD.Auto,WRAP_NO_WRAP:nD.NoWrap,WRAP_WRAP:nD.Wrap,WRAP_WRAP_REVERSE:nD.WrapReverse},tZ=nZ;function eZ(D){function J(X,Y,Z){let _=X[Y];X[Y]=function(){for(var L=arguments.length,N=Array(L),V=0;V<L;V++)N[V]=arguments[V];return Z.call(this,_,...N)}}for(let X of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){let Y={[HD.Point]:D.Node.prototype[X],[HD.Percent]:D.Node.prototype[`${X}Percent`],[HD.Auto]:D.Node.prototype[`${X}Auto`]};J(D.Node.prototype,X,function(Z){for(var _=arguments.length,L=Array(_>1?_-1:0),N=1;N<_;N++)L[N-1]=arguments[N];let V=L.pop(),G,O;if(V==="auto")G=HD.Auto,O=void 0;else if(typeof V==="object")G=V.unit,O=V.valueOf();else if(G=typeof V==="string"&&V.endsWith("%")?HD.Percent:HD.Point,O=parseFloat(V),V!==void 0&&!Number.isNaN(V)&&Number.isNaN(O))throw Error(`Invalid value ${V} for ${X}`);if(!Y[G])throw Error(`Failed to execute "${X}": Unsupported unit '${V}'`);if(O!==void 0)return Y[G].call(this,...L,O);else return Y[G].call(this,...L)})}function K(X){return D.MeasureCallback.implement({measure:function(){let{width:Y,height:Z}=X(...arguments);return{width:Y??NaN,height:Z??NaN}}})}J(D.Node.prototype,"setMeasureFunc",function(X,Y){if(Y)return X.call(this,K(Y));else return this.unsetMeasureFunc()});function Q(X){return D.DirtiedCallback.implement({dirtied:X})}return J(D.Node.prototype,"setDirtiedFunc",function(X,Y){X.call(this,Q(Y))}),J(D.Config.prototype,"free",function(){D.Config.destroy(this)}),J(D.Node,"create",(X,Y)=>{return Y?D.Node.createWithConfig(Y):D.Node.createDefault()}),J(D.Node.prototype,"free",function(){D.Node.destroy(this)}),J(D.Node.prototype,"freeRecursive",function(){for(let X=0,Y=this.getChildCount();X<Y;++X)this.getChild(0).freeRecursive();this.free()}),J(D.Node.prototype,"calculateLayout",function(X){let Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,Z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,_=arguments.length>3&&arguments[3]!==void 0?arguments[3]:RD.LTR;return X.call(this,Y,Z,_)}),{Config:D.Config,Node:D.Node,...tZ}}var D0=eZ(await rZ()),PK=D0,$Y=["single","double","rounded","heavy"];function J0(D){return typeof D==="string"&&$Y.includes(D)}function LQ(D,J="single"){if(J0(D))return D;if(D!==void 0&&D!==null)console.warn(`Invalid borderStyle "${D}", falling back to "${J}". Valid values are: ${$Y.join(", ")}`);return J}var YK={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",topT:"\u252C",bottomT:"\u2534",leftT:"\u251C",rightT:"\u2524",cross:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",topT:"\u2566",bottomT:"\u2569",leftT:"\u2560",rightT:"\u2563",cross:"\u256C"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",topT:"\u252C",bottomT:"\u2534",leftT:"\u251C",rightT:"\u2524",cross:"\u253C"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",topT:"\u2533",bottomT:"\u253B",leftT:"\u2523",rightT:"\u252B",cross:"\u254B"}};function o5(D){let J=[];if(D.top)J.push("top");if(D.right)J.push("right");if(D.bottom)J.push("bottom");if(D.left)J.push("left");return J.length>0?J:!1}function dK(D){return D===!0?{top:!0,right:!0,bottom:!0,left:!0}:Array.isArray(D)?{top:D.includes("top"),right:D.includes("right"),bottom:D.includes("bottom"),left:D.includes("left")}:{top:!1,right:!1,bottom:!1,left:!1}}function zJ(D){let J=new Uint32Array(11);return J[0]=D.topLeft.codePointAt(0),J[1]=D.topRight.codePointAt(0),J[2]=D.bottomLeft.codePointAt(0),J[3]=D.bottomRight.codePointAt(0),J[4]=D.horizontal.codePointAt(0),J[5]=D.vertical.codePointAt(0),J[6]=D.topT.codePointAt(0),J[7]=D.bottomT.codePointAt(0),J[8]=D.leftT.codePointAt(0),J[9]=D.rightT.codePointAt(0),J[10]=D.cross.codePointAt(0),J}var K0={single:zJ(YK.single),double:zJ(YK.double),rounded:zJ(YK.rounded),heavy:zJ(YK.heavy)};class MK{name;ctrl;meta;shift;option;sequence;number;raw;eventType;source;code;super;hyper;capsLock;numLock;baseCode;repeated;_defaultPrevented=!1;_propagationStopped=!1;constructor(D){this.name=D.name,this.ctrl=D.ctrl,this.meta=D.meta,this.shift=D.shift,this.option=D.option,this.sequence=D.sequence,this.number=D.number,this.raw=D.raw,this.eventType=D.eventType,this.source=D.source,this.code=D.code,this.super=D.super,this.hyper=D.hyper,this.capsLock=D.capsLock,this.numLock=D.numLock,this.baseCode=D.baseCode,this.repeated=D.repeated}get defaultPrevented(){return this._defaultPrevented}get propagationStopped(){return this._propagationStopped}preventDefault(){this._defaultPrevented=!0}stopPropagation(){this._propagationStopped=!0}}class AY{type="paste";bytes;metadata;_defaultPrevented=!1;_propagationStopped=!1;constructor(D,J){this.bytes=D,this.metadata=J}get defaultPrevented(){return this._defaultPrevented}get propagationStopped(){return this._propagationStopped}preventDefault(){this._defaultPrevented=!0}stopPropagation(){this._propagationStopped=!0}}class CQ extends Q0{processParsedKey(D){try{switch(D.eventType){case"press":this.emit("keypress",new MK(D));break;case"release":this.emit("keyrelease",new MK(D));break;default:this.emit("keypress",new MK(D));break}}catch(J){return console.error("[KeyHandler] Error processing parsed key:",J),!0}return!0}processPaste(D,J){try{this.emit("paste",new AY(D,J))}catch(K){console.error("[KeyHandler] Error processing paste:",K)}}}class FQ extends CQ{renderableHandlers=new Map;emit(D,...J){return this.emitWithPriority(D,...J)}emitWithPriority(D,...J){let K=!1,Q=this.listeners(D);if(Q.length>0){K=!0;for(let _ of Q){try{_(...J)}catch(L){console.error(`[KeyHandler] Error in global ${D} handler:`,L)}if(D==="keypress"||D==="keyrelease"||D==="paste"){if(J[0].propagationStopped)return K}}}let X=this.renderableHandlers.get(D),Y=X&&X.size>0?[...X]:[],Z=!1;if(X&&X.size>0){if(Z=!0,D==="keypress"||D==="keyrelease"||D==="paste"){let _=J[0];if(_.defaultPrevented)return K||Z;if(_.propagationStopped)return K||Z}for(let _ of Y){try{_(...J)}catch(L){console.error(`[KeyHandler] Error in renderable ${D} handler:`,L)}if(D==="keypress"||D==="keyrelease"||D==="paste"){if(J[0].propagationStopped)return K||Z}}}return K||Z}onInternal(D,J){if(!this.renderableHandlers.has(D))this.renderableHandlers.set(D,new Set);this.renderableHandlers.get(D).add(J)}offInternal(D,J){let K=this.renderableHandlers.get(D);if(K)K.delete(J)}}var LY=[255,255,255],NY=[0,0,0],KX=0,QX=1,mK=2,XX=[[0,0,0],[128,0,0],[0,128,0],[128,128,0],[0,0,128],[128,0,128],[0,128,128],[192,192,192],[128,128,128],[255,0,0],[0,255,0],[255,255,0],[0,0,255],[255,0,255],[0,255,255],[255,255,255]],uK=[0,95,135,175,215,255];function RJ(D,J=0){return(J&255|(D&255)<<8)>>>0}function JJ(D){return Math.round(Math.max(0,Math.min(1,Number.isFinite(D)?D:0))*255)}function ZK(D){return Math.round(Math.max(0,Math.min(255,Number.isFinite(D)?D:0)))}function hJ(D,J,K,Q,X){return new Uint16Array([ZK(D)&255|(X>>>0&255)<<8,ZK(J)&255|(X>>>8&255)<<8,ZK(K)&255|(X>>>16&255)<<8,ZK(Q)&255|(X>>>24&255)<<8])}function X0(D){let[J,K,Q]=MY(D);return l.fromInts(J,K,Q)}function VY(D){if(!Number.isInteger(D)||D<0||D>255)throw RangeError(`Indexed color must be an integer in the range 0..255, got ${D}`);return D}function MY(D){let J=VY(D);if(J<XX.length)return XX[J];if(J<232){let Q=J-16,X=Math.floor(Q/36),Y=Math.floor(Q/6)%6,Z=Q%6;return[uK[X],uK[Y],uK[Z]]}let K=8+(J-232)*10;return[K,K,K]}class l{buffer;constructor(D){this.buffer=new Uint16Array(4),this.buffer.set(D.subarray(0,4))}static fromArray(D){return new l(D)}static fromValues(D,J,K,Q=1){return new l(hJ(JJ(D),JJ(J),JJ(K),JJ(Q),RJ(KX)))}static clone(D){return new l(D.buffer)}static fromInts(D,J,K,Q=255){return new l(hJ(D,J,K,Q,RJ(KX)))}static fromHex(D){return NQ(D)}static fromIndex(D,J){let K=VY(D),Q=J?c(J):X0(K),[X,Y,Z,_]=Q.toInts();return new l(hJ(X,Y,Z,_,RJ(QX,K)))}static defaultForeground(D){let J=D?c(D):l.fromInts(...LY),[K,Q,X,Y]=J.toInts();return new l(hJ(K,Q,X,Y,RJ(mK)))}static defaultBackground(D){let J=D?c(D):l.fromInts(...NY),[K,Q,X,Y]=J.toInts();return new l(hJ(K,Q,X,Y,RJ(mK)))}toInts(){return[this.buffer[0]&255,this.buffer[1]&255,this.buffer[2]&255,this.buffer[3]&255]}get r(){return(this.buffer[0]&255)/255}set r(D){this.buffer[0]=this.buffer[0]&65280|JJ(D)}get g(){return(this.buffer[1]&255)/255}set g(D){this.buffer[1]=this.buffer[1]&65280|JJ(D)}get b(){return(this.buffer[2]&255)/255}set b(D){this.buffer[2]=this.buffer[2]&65280|JJ(D)}get a(){return(this.buffer[3]&255)/255}set a(D){this.buffer[3]=this.buffer[3]&65280|JJ(D)}get meta(){return(this.buffer[0]>>>8|this.buffer[1]>>>8<<8|this.buffer[2]>>>8<<16|this.buffer[3]>>>8<<24)>>>0}get intent(){switch(this.meta>>>8&255){case QX:return"indexed";case mK:return"default";default:return"rgb"}}get slot(){return this.meta&255}map(D){return[D(this.r),D(this.g),D(this.b),D(this.a)]}toString(){return`rgba(${this.r.toFixed(2)}, ${this.g.toFixed(2)}, ${this.b.toFixed(2)}, ${this.a.toFixed(2)})`}equals(D){if(!D)return!1;return this.buffer[0]===D.buffer[0]&&this.buffer[1]===D.buffer[1]&&this.buffer[2]===D.buffer[2]&&this.buffer[3]===D.buffer[3]}}function YX(D){if(D==null)return null;return{rgba:c(D)}}function NQ(D){if(D=D.replace(/^#/,""),D.length===3)D=D[0]+D[0]+D[1]+D[1]+D[2]+D[2];else if(D.length===4)D=D[0]+D[0]+D[1]+D[1]+D[2]+D[2]+D[3]+D[3];if(!/^[0-9A-Fa-f]{6}$/.test(D)&&!/^[0-9A-Fa-f]{8}$/.test(D))return console.warn(`Invalid hex color: ${D}, defaulting to magenta`),l.fromValues(1,0,1,1);let J=parseInt(D.substring(0,2),16),K=parseInt(D.substring(2,4),16),Q=parseInt(D.substring(4,6),16),X=D.length===8?parseInt(D.substring(6,8),16):255;return l.fromInts(J,K,Q,X)}function n5(D){let[J,K,Q,X]=D.toInts();return"#"+(X===255?[J,K,Q]:[J,K,Q,X]).map((Z)=>Z.toString(16).padStart(2,"0")).join("")}function t5(D,J,K){let Q=0,X=0,Y=0,Z=Math.floor(D/60)%6,_=D/60-Math.floor(D/60),L=K*(1-J),N=K*(1-_*J),V=K*(1-(1-_)*J);switch(Z){case 0:Q=K,X=V,Y=L;break;case 1:Q=N,X=K,Y=L;break;case 2:Q=L,X=K,Y=V;break;case 3:Q=L,X=N,Y=K;break;case 4:Q=V,X=L,Y=K;break;case 5:Q=K,X=L,Y=N;break}return l.fromValues(Q,X,Y,1)}var ZX={black:"#000000",white:"#FFFFFF",red:"#FF0000",green:"#008000",blue:"#0000FF",yellow:"#FFFF00",cyan:"#00FFFF",magenta:"#FF00FF",silver:"#C0C0C0",gray:"#808080",grey:"#808080",maroon:"#800000",olive:"#808000",lime:"#00FF00",aqua:"#00FFFF",teal:"#008080",navy:"#000080",fuchsia:"#FF00FF",purple:"#800080",orange:"#FFA500",brightblack:"#666666",brightred:"#FF6666",brightgreen:"#66FF66",brightblue:"#6666FF",brightyellow:"#FFFF66",brightcyan:"#66FFFF",brightmagenta:"#FF66FF",brightwhite:"#FFFFFF"};function c(D){if(typeof D==="string"){let J=D.toLowerCase();if(J==="transparent")return l.fromValues(0,0,0,0);if(ZX[J])return NQ(ZX[J]);return NQ(D)}return D}var Y0={name:"block",version:"0.2.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:6,buffer:["","","","","",""],letterspace:[" "," "," "," "," "," "],letterspace_size:1,chars:{A:[" <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2> ","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],B:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],C:[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],D:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],E:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u255D </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],F:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c2>\u255A\u2550\u255D </c2>"],G:[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],H:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],I:["<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D</c2>"],J:["<c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588 \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u255D </c2>"],K:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],L:["<c1>\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],M:["<c1>\u2588\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551\u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551 \u255A\u2550\u255D</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],N:["<c1>\u2588\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551 \u255A</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D</c2>"],O:[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],P:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2>","<c2>\u255A\u2550\u255D </c2>"],Q:[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2584\u2584 \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550</c2><c1>\u2580\u2580</c1><c2>\u2550\u255D </c2>"],R:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],S:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],T:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u255D</c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c2> \u255A\u2550\u255D </c2>"],U:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],V:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c2> \u255A\u2550\u2550\u2550\u255D </c2>"],W:["<c1>\u2588\u2588</c1><c2>\u2557 </c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551 </c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588\u2588</c1><c2>\u2557</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u255D\u255A\u2550\u2550\u255D </c2>"],X:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A</c2><c1>\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>"," <c1>\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],Y:["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c2> \u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c2> \u255A\u2550\u255D </c2>"],Z:["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550</c2><c1>\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>"," <c1>\u2588\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],"0":[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588</c1><c2>\u2554</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],"1":[" <c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>"," <c1>\u2588\u2588</c1><c2>\u2551</c2>"," <c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2> \u255A\u2550\u255D</c2>"],"2":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>"," <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u255D </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],"3":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>"," <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],"4":["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1> \u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1> \u2588\u2588</c1><c2>\u2551</c2>","<c2> \u255A\u2550\u255D</c2>"],"5":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],"6":[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],"7":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c2> \u255A\u2550\u255D </c2>"],"8":[" <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u255D </c2>"],"9":[" <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2> \u255A\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>"," <c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u2550\u2550\u2550\u255D </c2>"],"!":["<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>"],"?":["<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1> \u2584\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2580\u2580</c1><c2>\u2550\u2550\u255D </c2>","<c1> \u2588\u2588</c1><c2>\u2557 </c2>","<c2> \u255A\u2550\u255D </c2>"],".":[" "," "," "," ","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>"],"+":[" ","<c1> \u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2> \u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550\u255D</c2>","<c2> \u255A\u2550\u255D </c2>"," "],"-":[" "," ","<c1>\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u255D</c2>"," "," "],_:[" "," "," "," ","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D</c2>"],"=":[" ","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D</c2>"," "],"@":[" <c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588</c1><c2>\u2557</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A</c2><c1>\u2588</c1><c2>\u2551</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u255D\u255A\u2550\u2550\u2550\u255D </c2>"],"#":[" <c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557 </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2> \u255A\u2550\u255D \u255A\u2550\u255D </c2>"],$:["<c1>\u2584\u2584\u2588\u2588\u2588\u2584\u2584</c1><c2>\xB7</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550\u2550\u2550\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u2550\u2550\u2550</c2><c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551</c2>","<c2>\u255A\u2550</c2><c1>\u2580\u2580\u2580</c1><c2>\u2550\u2550\u255D</c2>"],"%":["<c1>\u2588\u2588</c1><c2>\u2557</c2><c1> \u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2><c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D </c2>"," <c1>\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D \u255A\u2550\u255D</c2>"],"&":["<c1> \u2588\u2588</c1><c2>\u2557 </c2>","<c1> \u2588\u2588</c1><c2>\u2551 </c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u2550</c2><c1>\u2588\u2588</c1><c2>\u2554\u2550\u255D</c2>","<c1>\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2551 </c2>","<c2>\u255A\u2550\u2550\u2550\u2550\u2550\u255D </c2>"],"(":[" <c1>\u2588\u2588</c1><c2>\u2557</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2551 ","<c1>\u2588\u2588</c1><c2>\u2551 ","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2> \u255A\u2550\u255D</c2>"],")":["<c1>\u2588\u2588</c1><c2>\u2557 </c2>","<c2>\u255A</c2><c1>\u2588\u2588</c1><c2>\u2557</c2>"," <c1>\u2588\u2588</c1><c2>\u2551</c2>"," <c1>\u2588\u2588</c1><c2>\u2551</c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D</c2>","<c2>\u255A\u2550\u255D </c2>"],"/":["<c1> \u2588\u2588</c1><c2>\u2557</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D</c2>","<c1> \u2588\u2588</c1><c2>\u2554\u255D </c2>"," <c1>\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c1>\u2588\u2588</c1><c2>\u2554\u255D </c2>","<c2>\u255A\u2550\u255D </c2>"],":":[" ","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>"," "],";":[" "," ","<c1>\u2588\u2588</c1><c2>\u2557</c2>","<c2>\u255A\u2550\u255D</c2>","<c1>\u2584\u2588</c1><c2>\u2557</c2>","<c1>\u2580</c1><c2>\u2550\u255D</c2>"],",":[" "," "," "," ","<c1>\u2584\u2588</c1><c2>\u2557</c2>","<c1>\u2580</c1><c2>\u2550\u255D</c2>"],"'":["<c1>\u2588</c1><c2>\u2557</c2> ","<c2>\u255A\u255D</c2> "," "," "," "," "],'"':["<c1>\u2588</c1><c2>\u2557</c2><c1>\u2588</c1><c2>\u2557</c2> ","<c2>\u255A\u255D\u255A\u255D</c2> "," "," "," "," "]," ":[" "," "," "," "," "," "]}},Z0={name:"shade",version:"0.2.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:8,buffer:["","","","","","","",""],letterspace:["<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>","<c2>\u2591</c2>"],letterspace_size:1,chars:{A:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],B:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],C:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],D:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],E:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],F:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>"," <c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],G:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2> <c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],H:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],I:["<c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c1>\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591</c2>"],J:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>"," <c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>"," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],K:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],L:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],M:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],N:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588</c1><c2>\u2591</c2><c1>\u2588</c1>","<c1>\u2588 \u2588\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2> <c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],O:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],P:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588</c1> ","<c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>"," <c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],Q:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588\u2588\u2588</c1>","<c2>\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],R:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],S:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c1>\u2588</c1> "," <c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2> <c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],T:["<c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591</c2>"],U:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],V:["<c2>\u2591\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1> ","<c2>\u2591</c2> <c1>\u2588</c1> <c2>\u2591</c2>","<c2>\u2591\u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591</c2>"],W:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],X:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c1>\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588</c1>"," <c2>\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],Y:["<c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591</c2>"],Z:["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588</c1> <c2>\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],"0":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u258C\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2> <c1>\u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"1":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588</c1><c2>\u2591\u2591</c2>"," <c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>"," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"2":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2590\u2588\u2588</c1><c2>\u2591</c2>"," <c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],"3":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588\u2588</c1>","<c2>\u2591\u2591</c2> <c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],"4":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1>","<c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c2>\u2591\u2591\u2591</c2> ","<c2>\u2591\u2591\u2591\u2591</c2>"],"5":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>"," <c1>\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"6":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c1>\u2588</c1> ","<c1>\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"7":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u2588</c1> ","<c1>\u2588</c1> <c2>\u2591\u2591</c2>"," <c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"8":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>"," <c1>\u2588\u2588</c1> ","<c1>\u2588 \u2588</c1>"," <c1>\u2588\u2588</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"9":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>"," <c1>\u2588\u2588\u2588</c1>","<c2>\u2591</c2> <c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"!":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591 \u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"?":["<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2590\u2588\u2588</c1><c2>\u2591</c2>"," <c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],".":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"+":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c2>\u2591</c2> <c1>\u2588</c1> ","<c2>\u2591\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"-":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],_:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," "],"=":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c1>\u2588\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],"@":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588</c1><c2>\u2591</c2>","<c1>\u2588 \u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u258C\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1> "," <c1>\u2588\u2588\u2588</c1>"," ","<c2>\u2591\u2591\u2591\u2591</c2>"],"#":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2>","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u258C\u2590</c1> ","<c1>\u2588\u2588\u2588\u2588</c1>"," <c1>\u258C\u2590</c1> ","<c2>\u2591 \u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],$:["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u258C</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1> "," <c1>\u2588\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u258C\u2588</c1>","<c1>\u2588\u2588\u2588</c1> "," <c2>\u2591</c2>"],"%":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1> "," <c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1>","<c1>\u2588</c1> <c2>\u2591</c2> "," <c2>\u2591\u2591\u2591</c2>"],"&":["<c2>\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>","<c1>\u2588\u2588\u2588\u2588\u2588</c1>","<c1>\u2588 \u2588</c1> ","<c1>\u2588\u2588\u2588\u2588</c1><c2>\u2591</c2>","<c2> </c2> ","<c2>\u2591\u2591\u2591\u2591\u2591</c2>"],"(":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c1>\u2588</c1> <c2>\u2591\u2591</c2>","<c1>\u2588</c1><c2>\u2591\u2591\u2591</c2>"," <c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2> <c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591 \u2591</c2>"],")":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2> <c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591\u2591</c2> <c1>\u2588</c1>","<c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>"],"/":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2><c1>\u2588</c1>","<c2>\u2591\u2591</c2><c1>\u2588</c1> ","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c1>\u2588</c1> <c2>\u2591\u2591</c2>"," <c2>\u2591\u2591\u2591</c2>"],":":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],";":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>"],",":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591</c2><c1>\u2588</c1><c2>\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1> <c2>\u2591</c2>"],"'":["<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591</c2>"],'"':["<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591\u2591</c2>","<c2>\u2591 \u2591 \u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2>"]," ":["<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>","<c2>\u2591\u2591\u2591</c2>"]}},_0={name:"slick",version:"0.1.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:6,buffer:["","","","","",""],letterspace:["<c2>\u2571</c2>","<c2>\u2571</c2>","<c2>\u2571</c2>","<c2>\u2571</c2>","<c2>\u2571</c2>","<c2>\u2571</c2>"],letterspace_size:1,chars:{A:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F</c1><c2>\u2571</c2><c1>\u2570\u256F</c1>"],B:["<c1>\u256D\u2501\u2501\u256E</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2570\u256F\u2570\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],C:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2570\u256F</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],D:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2570\u256E\u256D\u256E\u2503</c1>","<c2>\u2571</c2><c1>\u2503\u2503\u2503\u2503</c1>","<c2>\u2571</c2><c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u256D\u256F\u2570\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],E:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],F:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2503</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2570\u256F</c1><c2>\u2571\u2571\u2571</c2>"],G:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2570\u256F</c1>","<c1>\u2503\u2503\u256D\u2501\u256E</c1>","<c1>\u2503\u2570\u253B\u2501\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],H:["<c1>\u256D\u256E</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2570\u256F</c1><c2>\u2571</c2><c1>\u2570\u256F</c1>"],I:["<c1>\u256D\u2501\u2501\u256E</c1>","<c1>\u2570\u252B\u2523\u256F</c1>","<c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u256D\u252B\u2523\u256E</c1>","<c1>\u2570\u2501\u2501\u256F</c1>"],J:["<c2>\u2571\u2571</c2><c1>\u256D\u256E</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u256D\u256E\u2503\u2503</c1>","<c1>\u2503\u2570\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u256F</c1>"],K:["<c1>\u256D\u256E\u256D\u2501\u256E</c1>","<c1>\u2503\u2503\u2503\u256D\u256F</c1>","<c1>\u2503\u2570\u256F\u256F</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503\u2503\u2570\u256E</c1>","<c1>\u2570\u256F\u2570\u2501\u256F</c1>"],L:["<c1>\u256D\u256E</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],M:["<c1>\u256D\u2501\u256E\u256D\u2501\u256E</c1>","<c1>\u2503\u2503\u2570\u256F\u2503\u2503</c1>","<c1>\u2503\u256D\u256E\u256D\u256E\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2570\u256F\u2570\u256F\u2570\u256F</c1>"],N:["<c1>\u256D\u2501\u256E</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2503\u2570\u256E\u2503\u2503</c1>","<c1>\u2503\u256D\u256E\u2570\u256F\u2503</c1>","<c1>\u2503\u2503\u2570\u256E\u2503\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503\u2503</c1>","<c1>\u2570\u256F</c1><c2>\u2571</c2><c1>\u2570\u2501\u256F</c1>"],O:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],P:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2503</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2570\u256F</c1><c2>\u2571\u2571\u2571</c2>"],Q:["<c1>\u256D\u2501\u2501\u2501\u256E</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u2501\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2570\u2501\u256F\u2503\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u2501\u256F</c1>"],R:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u256E\u256D\u256F</c1>","<c1>\u2503\u2503\u2503\u2570\u256E</c1>","<c1>\u2570\u256F\u2570\u2501\u256F</c1>"],S:["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],T:["<c1>\u256D\u2501\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u256E\u256D\u256E\u2503</c1>","<c1>\u2570\u256F\u2503\u2503\u2570\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571\u2571</c2>"],U:["<c1>\u256D\u256E</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],V:["<c1>\u256D\u256E</c1><c2>\u2571\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2570\u256E\u256D\u256F\u2503</c1>","<c1>\u2570\u256E\u2503\u2503\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2503\u2570\u256F\u2503</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2570\u256E\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571\u2571</c2>"],W:["<c1>\u256D\u256E\u256D\u256E\u256D\u256E</c1>","<c1>\u2503\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2570\u256F\u2570\u256F\u2503</c1>","<c1>\u2570\u256E\u256D\u256E\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256F\u2570\u256F</c1><c2>\u2571</c2>"],X:["<c1>\u256D\u2501\u256E\u256D\u2501\u256E</c1>","<c1>\u2570\u256E\u2570\u256F\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256E\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u256D\u256F\u2570\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u256D\u256E\u2570\u256E</c1>","<c1>\u2570\u2501\u256F\u2570\u2501\u256F</c1>"],Y:["<c1>\u256D\u256E</c1><c2>\u2571\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2570\u256E\u256D\u256F\u2503</c1>","<c1>\u2570\u256E\u2570\u256F\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256E\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571\u2571</c2>"],Z:["<c1>\u256D\u2501\u2501\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256E\u2501\u2503</c1>","<c2>\u2571\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u2501\u2570\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u2501\u256F</c1>"],"0":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"1":["<c2>\u2571</c2><c1>\u256D\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u2503</c1><c2>\u2571</c2>","<c1>\u2570\u256E\u2503</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u2570\u256E</c1>","<c1>\u2570\u2501\u2501\u256F</c1>"],"2":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F\u256D\u256F\u2503</c1>","<c1>\u256D\u2501\u256F\u256D\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"3":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F\u256D\u256F\u2503</c1>","<c1>\u256D\u256E\u2570\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"4":["<c1>\u256D\u256E</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1><c2>\u2571</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c2>\u2571\u2571\u2571</c2><c1>\u2503\u2503</c1>","<c2>\u2571\u2571\u2571</c2><c1>\u2570\u256F</c1>"],"5":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c1>\u256D\u2501\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"6":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u2501\u256F</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"7":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F\u256D\u256F\u2503</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u256D\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u2503</c1><c2>\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571</c2>"],"8":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"9":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2503\u2570\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c1>\u256D\u2501\u2501\u256F\u2503</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"!":["<c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1>","<c1>\u2570\u256F</c1>","<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>"],"?":["<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2503\u256D\u2501\u256E\u2503</c1>","<c1>\u2570\u256F\u256D\u256F\u2503</c1>","<c2>\u2571\u2571</c2><c1>\u2503\u256D\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u256D\u256E</c1><c2>\u2571</c2>","<c2>\u2571\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571</c2>"],".":["<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>"],"+":["<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571</c2><c1>\u256D\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u2570\u256E</c1>","<c1>\u2570\u256E\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571</c2>"],"-":["<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c1>\u256D\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256F</c1>","<c2>\u2571\u2571\u2571\u2571</c2>"],_:["<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c1>\u256D\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256F</c1>"],"=":["<c2>\u2571\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571\u2571</c2>","<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>","<c1>\u256D\u2501\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"@":["<c1>\u256D\u2501\u2501\u2501\u2501\u256E</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u2501\u2501\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503\u256D\u2501\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2503\u2570\u256F\u2503\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2570\u2501\u2501\u256F\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u2501\u2501\u256F</c1>"],"#":["<c2>\u2571</c2><c1>\u256D\u2501\u2501\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u256F\u256D\u256E\u2570\u256E</c1>","<c1>\u2570\u256E\u2503\u2503\u256D\u256F</c1>","<c1>\u256D\u256F\u2503\u2503\u2570\u256E</c1>","<c1>\u2570\u256E\u2570\u256F\u256D\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u2501\u2501\u256F</c1><c2>\u2571</c2>"],$:["<c2>\u2571\u2571</c2><c1>\u256D\u256E</c1><c2>\u2571</c2>","<c1>\u256D\u2501\u256F\u2570\u256E</c1>","<c1>\u2503\u2570\u2501\u2501\u256E</c1>","<c1>\u2570\u2501\u2501\u256E\u2503</c1>","<c1>\u2570\u256E\u256D\u2501\u256F</c1>","<c2>\u2571</c2><c1>\u2570\u256F</c1><c2>\u2571\u2571</c2>"],"%":["<c1>\u256D\u256E</c1><c2>\u2571\u2571</c2><c1>\u256D\u2501\u256E</c1>","<c1>\u2570\u256F</c1><c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571\u2571</c2>","<c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2><c1>\u256D\u256E</c1>","<c1>\u2570\u2501\u256F</c1><c2>\u2571\u2571</c2><c1>\u2570\u256F</c1>"],"&":["<c2>\u2571</c2><c1>\u256D\u2501\u2501\u256E</c1>","<c2>\u2571</c2><c1>\u2503\u256D\u2501\u256F</c1>","<c1>\u256D\u256F\u2570\u256E</c1><c2>\u2571</c2>","<c1>\u2503\u256D\u256E\u2503</c1><c2>\u2571</c2>","<c1>\u2503\u2570\u256F\u2503\u256E</c1>","<c1>\u2570\u2501\u2501\u2501\u256F</c1>"],"(":["<c2>\u2571\u2571</c2><c1>\u256D\u2501\u256E</c1>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c1>\u2570\u256E\u2570\u256E</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2570\u256E\u2570\u256E</c1>","<c2>\u2571\u2571</c2><c1>\u2570\u2501\u256F</c1>"],")":["<c1>\u256D\u2501\u256E</c1><c2>\u2571\u2571</c2>","<c1>\u2570\u256E\u2570\u256E</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u2570\u256E\u2570\u256E</c1>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c1>\u2570\u2501\u256F</c1><c2>\u2571\u2571</c2>"],"/":["<c2>\u2571\u2571\u2571\u2571</c2><c1>\u256D\u2501\u256E</c1>","<c2>\u2571\u2571\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1>","<c2>\u2571\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571</c2>","<c2>\u2571</c2><c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571\u2571</c2>","<c1>\u256D\u256F\u256D\u256F</c1><c2>\u2571\u2571\u2571</c2>","<c1>\u2570\u2501\u256F</c1><c2>\u2571\u2571\u2571\u2571</c2>"],":":["<c2>\u2571\u2571</c2>","<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>","<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>","<c2>\u2571\u2571</c2>"],";":["<c1>\u256D\u256E</c1>","<c1>\u2503\u2503</c1>","<c1>\u2570\u256F</c1>","<c1>\u256D\u256E</c1>","<c1>\u2570\u252B</c1>","<c2>\u2571</c2><c1>\u256F</c1>"],",":["<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c1>\u256D\u256E</c1>","<c1>\u2570\u252B</c1>","<c2>\u2571</c2><c1>\u256F</c1>"],"'":["<c1>\u256D\u256E</c1>","<c1>\u2570\u256F</c1>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>","<c2>\u2571\u2571</c2>"],'"':["<c1>\u256D\u256E\u256D\u256E</c1>","<c1>\u2570\u256F\u2570\u256F</c1>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571\u2571</c2>"]," ":["<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>","<c2>\u2571\u2571\u2571</c2>"]}},$0={name:"tiny",version:"0.2.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:1,lines:2,buffer:["",""],letterspace:[" "," "],letterspace_size:1,chars:{A:["\u2584\u2580\u2588","\u2588\u2580\u2588"],B:["\u2588\u2584\u2584","\u2588\u2584\u2588"],C:["\u2588\u2580\u2580","\u2588\u2584\u2584"],D:["\u2588\u2580\u2584","\u2588\u2584\u2580"],E:["\u2588\u2580\u2580","\u2588\u2588\u2584"],F:["\u2588\u2580\u2580","\u2588\u2580 "],G:["\u2588\u2580\u2580","\u2588\u2584\u2588"],H:["\u2588 \u2588","\u2588\u2580\u2588"],I:["\u2588","\u2588"],J:[" \u2588","\u2588\u2584\u2588"],K:["\u2588\u2584\u2580","\u2588 \u2588"],L:["\u2588 ","\u2588\u2584\u2584"],M:["\u2588\u2580\u2584\u2580\u2588","\u2588 \u2580 \u2588"],N:["\u2588\u2584 \u2588","\u2588 \u2580\u2588"],O:["\u2588\u2580\u2588","\u2588\u2584\u2588"],P:["\u2588\u2580\u2588","\u2588\u2580\u2580"],Q:["\u2588\u2580\u2588","\u2580\u2580\u2588"],R:["\u2588\u2580\u2588","\u2588\u2580\u2584"],S:["\u2588\u2580\u2580","\u2584\u2584\u2588"],T:["\u2580\u2588\u2580"," \u2588 "],U:["\u2588 \u2588","\u2588\u2584\u2588"],V:["\u2588 \u2588","\u2580\u2584\u2580"],W:["\u2588 \u2588 \u2588","\u2580\u2584\u2580\u2584\u2580"],X:["\u2580\u2584\u2580","\u2588 \u2588"],Y:["\u2588\u2584\u2588"," \u2588 "],Z:["\u2580\u2588","\u2588\u2584"],"0":["\u259E\u2588\u259A","\u259A\u2588\u259E"],"1":["\u2584\u2588"," \u2588"],"2":["\u2580\u2588","\u2588\u2584"],"3":["\u2580\u2580\u2588","\u2584\u2588\u2588"],"4":["\u2588 \u2588","\u2580\u2580\u2588"],"5":["\u2588\u2580","\u2584\u2588"],"6":["\u2588\u2584\u2584","\u2588\u2584\u2588"],"7":["\u2580\u2580\u2588"," \u2588"],"8":["\u2588\u2588\u2588","\u2588\u2584\u2588"],"9":["\u2588\u2580\u2588","\u2580\u2580\u2588"],"!":["\u2588","\u2584"],"?":["\u2580\u2588"," \u2584"],".":[" ","\u2584"],"+":["\u2584\u2588\u2584"," \u2580 "],"-":["\u2584\u2584"," "],_:[" ","\u2584\u2584"],"=":["\u2580\u2580","\u2580\u2580"],"@":["\u259B\u2588\u259C","\u2599\u259F\u2583"],"#":["\u259F\u2584\u2599","\u259C\u2580\u259B"],$:["\u2596\u2588\u2597","\u2598\u2588\u259D"],"%":["\u2580 \u2584\u2580","\u2584\u2580 \u2584"],"&":["\u2584\u2584\u2588","\u2588\u2584\u2588"],"(":["\u2584\u2580","\u2580\u2584"],")":["\u2580\u2584","\u2584\u2580"],"/":[" \u2584\u2580","\u2584\u2580 "],":":["\u2580","\u2584"],";":[" ","\u2584\u2580"],",":[" ","\u2588"],"'":["\u2580"," "],'"':["\u259B \u259C"," "]," ":[" "," "]}},A0={name:"huge",version:"0.2.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:11,buffer:["","","","","","","","","","",""],letterspace:[" "," "," "," "," "," "," "," "," "," "," "],letterspace_size:1,chars:{A:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],B:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],C:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],D:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],E:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],F:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],G:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],H:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],I:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],J:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],K:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],L:[" <c1>\u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],M:[" <c1>\u2584\u2584 \u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2580 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],N:[" <c1>\u2584\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580\u2580</c1> "],O:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],P:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],Q:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],R:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],S:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],T:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],U:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],V:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],W:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2584 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580 \u2580\u2580</c1> "],X:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580 \u2580</c1> "],Y:[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],Z:[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"0":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"1":[" <c1>\u2584\u2584\u2584\u2584</c1> "," <c1>\u2584\u2588</c1><c2>\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580 \u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"2":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"3":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"4":[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2580</c1> "],"5":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"6":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"7":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],"8":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"9":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"!":[" <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "],"?":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> "," <c1>\u2584\u2588</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u2588\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580 \u2584\u2584\u2584\u2588</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2588</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u2588</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C\u2580\u2580\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580</c1> "," <c1>\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580</c1> "],".":[" "," "," "," "," "," "," "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "],"+":[" "," "," <c1>\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2584\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2588</c1><c2>\u2591\u2591</c2><c1>\u2588\u2580\u2580</c1> "," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580</c1> "," "," "],"-":[" "," "," "," "," <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "," "," "," "," "],_:[" "," "," "," "," "," "," "," <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "," "],"=":[" "," "," <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "," "," <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "," "," "],"@":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2584\u2584\u2584\u2584 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2588</c1><c2>\u2591\u2591\u2591\u2591</c2><c1>\u2588 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u2588\u2588\u2588\u2588</c1><c2>\u2591</c2><c1>\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2588</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C\u2584\u2584\u2588\u2588\u2588\u2588\u2588\u2588\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580</c1> "],"#":[" <c1>\u2584 \u2584</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580 \u2580</c1> "],$:[" <c1>\u2584</c1> "," <c1>\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580</c1> "," <c1>\u2580</c1> "],"%":[" <c1>\u2584</c1> "," <c1>\u2584 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580 \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2584</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2580</c1> "," <c1>\u2580</c1> "],"&":[" <c1>\u2584\u2584\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2580\u2580\u2580\u2580\u2588</c1><c2>\u2591</c2><c1>\u258C \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C \u2590</c1><c2>\u2591</c2><c1>\u2588</c1><c2>\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2588\u2584\u2584\u2584\u2584\u2588</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580\u2580 \u2580</c1> "],"(":[" <c1>\u2584\u2584\u2584\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u2588\u2580\u2580\u2580</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u2588\u2584\u2584\u2584</c1> "," <c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "],")":[" <c1>\u2584\u2584\u2584\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2588</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2584\u2584\u2584\u2588</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>","<c1>\u2590</c1><c2>\u2591\u2591\u2591\u2591\u2591</c2><c1>\u258C</c1> "," <c1>\u2580\u2580\u2580\u2580\u2580</c1> "],"/":[" <c1>\u2584</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1>"," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u258C</c1> "," <c1>\u2580</c1> "],":":[" "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "," "," "],";":[" "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u2580</c1> "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u258C</c1> "," <c1>\u2580</c1> "," "],",":[" "," "," "," "," "," "," "," <c1>\u2584\u2584</c1> ","<c1>\u2590</c1><c2>\u2591\u2591</c2><c1>\u258C</c1>"," <c1>\u2580\u258C</c1> "," <c1>\u2580</c1> "],"'":[" <c1>\u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2590</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2590</c1>"," <c1>\u2580</c1> "," "," "," "," "," "," "," "],'"':[" <c1>\u2584 \u2584</c1> ","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2590\u2590</c1><c2>\u2591</c2><c1>\u2590</c1>","<c1>\u2590</c1><c2>\u2591</c2><c1>\u2590\u2590</c1><c2>\u2591</c2><c1>\u2590</c1>"," <c1>\u2580 \u2580</c1> "," "," "," "," "," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "]}},L0={name:"grid",version:"0.1.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:6,buffer:["","","","","",""],letterspace:["<c2>\u254B</c2>","<c2>\u254B</c2>","<c2>\u254B</c2>","<c2>\u254B</c2>","<c2>\u254B</c2>","<c2>\u254B</c2>"],letterspace_size:1,chars:{A:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],B:["<c1>\u250F\u2513</c1><c2>\u254B\u254B</c2>","<c1>\u2503\u2517\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],C:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u251B</c1>","<c1>\u2503\u2517\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],D:["<c2>\u254B\u254B</c2><c1>\u250F\u2513</c1>","<c1>\u250F\u2501\u251B\u2503</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],E:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u2503\u2501\u252B</c1>","<c1>\u2503\u2503\u2501\u252B</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],F:["<c2>\u254B</c2><c1>\u250F\u2501\u2513</c1>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2503\u2503</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"],G:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2513\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>"],H:["<c1>\u250F\u2513</c1><c2>\u254B\u254B</c2>","<c1>\u2503\u2517\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],I:["<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c1>\u250F\u2513</c1>","<c1>\u2503\u2503</c1>","<c1>\u2517\u251B</c1>","<c2>\u254B\u254B</c2>"],J:["<c2>\u254B</c2><c1>\u250F\u2513</c1>","<c2>\u254B</c2><c1>\u2517\u251B</c1>","<c2>\u254B</c2><c1>\u250F\u2513</c1>","<c2>\u254B</c2><c1>\u2503\u2503</c1>","<c1>\u250F\u251B\u2503</c1>","<c1>\u2517\u2501\u251B</c1>"],K:["<c1>\u250F\u2513</c1><c2>\u254B\u254B</c2>","<c1>\u2503\u2503\u250F\u2513</c1>","<c1>\u2503\u2517\u251B\u251B</c1>","<c1>\u2503\u250F\u2513\u2513</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],L:["<c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2517\u2513</c1>","<c1>\u2517\u2501\u251B</c1>","<c2>\u254B\u254B\u254B</c2>"],M:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u2517\u253B\u253B\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],N:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2513</c1><c2>\u254B</c2>","<c1>\u2503\u250F\u2513\u2513</c1>","<c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],O:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],P:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2503\u250F\u2501\u251B</c1>","<c1>\u2517\u251B</c1><c2>\u254B\u254B</c2>"],Q:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2513\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2513\u2503</c1>","<c2>\u254B\u254B</c2><c1>\u2517\u251B</c1>"],R:["<c2>\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2513</c1>","<c1>\u2503\u250F\u251B</c1>","<c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B</c2>"],S:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2503\u2501\u2501\u252B</c1>","<c1>\u2523\u2501\u2501\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],T:["<c2>\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2503\u2517\u2513</c1>","<c2>\u254B</c2><c1>\u2517\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],U:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],V:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2503\u2517\u251B\u2503</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"],W:["<c2>\u254B\u254B\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513\u250F\u2513</c1>","<c1>\u2503\u2517\u251B\u2517\u251B\u2503</c1>","<c1>\u2517\u2513\u250F\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u251B\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B\u254B\u254B</c2>"],X:["<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2517\u254B\u254B\u251B</c1>","<c1>\u250F\u254B\u254B\u2513</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>"],Y:["<c2>\u254B\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2513</c1><c2>\u254B</c2><c1>\u250F\u2513</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2513\u250F\u251B</c1>","<c1>\u2517\u2501\u2501\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B\u254B</c2>"],Z:["<c2>\u254B\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2523\u2501\u2501\u2503\u2503</c1>","<c1>\u2503\u2503\u2501\u2501\u252B</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B\u254B</c2>"],"0":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2503\u2503\u2503\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"1":["<c2>\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2503</c1><c2>\u254B</c2>","<c1>\u2517\u2513\u2503</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2517\u2501\u2501\u251B</c1>"],"2":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2517\u251B\u250F\u251B\u2503</c1>","<c1>\u250F\u2501\u251B\u250F\u251B</c1>","<c1>\u2503\u2517\u2501\u253B\u2513</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"3":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2517\u251B\u250F\u251B\u2503</c1>","<c1>\u250F\u2513\u2517\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"4":["<c1>\u250F\u2513</c1><c2>\u254B</c2><c1>\u250F\u2513</c1>","<c1>\u2503\u2503</c1><c2>\u254B</c2><c1>\u2503\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2513\u2503</c1>","<c2>\u254B\u254B\u254B</c2><c1>\u2503\u2503</c1>","<c2>\u254B\u254B\u254B</c2><c1>\u2517\u251B</c1>"],"5":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2501\u251B</c1>","<c1>\u2503\u2517\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u2513\u2503</c1>","<c1>\u250F\u2501\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"6":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2501\u251B</c1>","<c1>\u2503\u2517\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"7":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2517\u251B\u250F\u251B\u2503</c1>","<c2>\u254B\u254B</c2><c1>\u2503\u250F\u251B</c1>","<c2>\u254B\u254B</c2><c1>\u2503\u2503</c1><c2>\u254B</c2>","<c2>\u254B\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>"],"8":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"9":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2503\u2517\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2513\u2503</c1>","<c1>\u250F\u2501\u2501\u251B\u2503</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>"],"!":["<c1>\u250F\u2513</c1>","<c1>\u2503\u2503</c1>","<c1>\u2503\u2503</c1>","<c1>\u2517\u251B</c1>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>"],"?":["<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2503\u250F\u2501\u2513\u2503</c1>","<c1>\u2517\u251B\u250F\u251B\u2503</c1>","<c2>\u254B\u254B</c2><c1>\u2503\u250F\u251B</c1>","<c2>\u254B\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c2>\u254B\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>"],".":["<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>"],"+":["<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"],"-":["<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"],_:["<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u251B</c1>"],"=":["<c2>\u254B\u254B\u254B\u254B\u254B</c2>","<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>","<c1>\u250F\u2501\u2501\u2501\u2513</c1>","<c1>\u2517\u2501\u2501\u2501\u251B</c1>","<c2>\u254B\u254B\u254B\u254B\u254B</c2>"],"@":["<c1>\u250F\u2501\u2501\u2501\u2501\u2513</c1><c2>\u254B</c2>","<c1>\u2503\u250F\u2501\u2501\u2513\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2503\u250F\u2501\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2503\u2517\u251B\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u2503\u2517\u2501\u2501\u251B\u2517\u2513</c1>","<c1>\u2517\u2501\u2501\u2501\u2501\u2501\u251B</c1>"],"#":["<c2>\u254B</c2><c1>\u250F\u2501\u2501\u2501\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u250F\u2501\u2513\u2517\u2513</c1>","<c1>\u2517\u2513\u2503\u2503\u2503\u250F\u251B</c1>","<c1>\u250F\u251B\u2503\u2503\u2503\u2517\u2513</c1>","<c1>\u2517\u2513\u2517\u2501\u251B\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u2501\u2501\u2501\u251B</c1><c2>\u254B</c2>"],$:["<c2>\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c1>\u250F\u251B\u2517\u2513</c1>","<c1>\u2503\u2501\u2501\u252B</c1>","<c1>\u2523\u2501\u2501\u2503</c1>","<c1>\u2517\u2513\u250F\u251B</c1>","<c2>\u254B</c2><c1>\u2517\u251B</c1><c2>\u254B</c2>"],"%":["<c1>\u250F\u2513</c1><c2>\u254B\u254B</c2><c1>\u250F\u2501\u2513</c1>","<c1>\u2517\u251B</c1><c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1>","<c2>\u254B\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B\u254B</c2>","<c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2><c1>\u250F\u2513</c1>","<c1>\u2517\u2501\u251B</c1><c2>\u254B\u254B</c2><c1>\u2517\u251B</c1>"],"&":["<c2>\u254B\u254B</c2><c1>\u250F\u2513</c1><c2>\u254B</c2>","<c2>\u254B\u254B</c2><c1>\u2503\u2503</c1><c2>\u254B</c2>","<c1>\u250F\u2501\u251B\u2517\u2513</c1>","<c1>\u2503\u250F\u2513\u250F\u251B</c1>","<c1>\u2503\u2517\u251B\u2503</c1><c2>\u254B</c2>","<c1>\u2517\u2501\u2501\u251B</c1><c2>\u254B</c2>"],"(":["<c2>\u254B\u254B</c2><c1>\u250F\u2501\u2513</c1>","<c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1>","<c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2>","<c1>\u2517\u2513\u2517\u2513</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u2517\u2513\u2517\u2513</c1>","<c2>\u254B\u254B</c2><c1>\u2517\u2501\u251B</c1>"],")":["<c1>\u250F\u2501\u2513</c1><c2>\u254B\u254B</c2>","<c1>\u2517\u2513\u2517\u2513</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u2517\u2513\u2517\u2513</c1>","<c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1>","<c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2>","<c1>\u2517\u2501\u251B</c1><c2>\u254B\u254B</c2>"],"/":["<c2>\u254B\u254B\u254B\u254B</c2><c1>\u250F\u2501\u2513</c1>","<c2>\u254B\u254B\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1>","<c2>\u254B\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B</c2>","<c2>\u254B</c2><c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B\u254B</c2>","<c1>\u250F\u251B\u250F\u251B</c1><c2>\u254B\u254B\u254B</c2>","<c1>\u2517\u2501\u251B</c1><c2>\u254B\u254B\u254B\u254B</c2>"],":":["<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c2>\u254B\u254B</c2>"],";":["<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u252B</c1>"],",":["<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c1>\u250F\u2513</c1>","<c1>\u2517\u252B</c1>"],"'":["<c1>\u250F\u2513</c1>","<c1>\u2517\u251B</c1>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>"],'"':["<c1>\u250F\u2513\u250F\u2513</c1>","<c1>\u2517\u251B\u2517\u251B</c1>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>","<c2>\u254B\u254B\u254B\u254B</c2>"]," ":["<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>","<c2>\u254B\u254B</c2>"]}},N0={name:"pallet",version:"0.1.0",homepage:"https://github.com/dominikwilkowski/cfonts",colors:2,lines:6,buffer:["","","","","",""],letterspace:["<c2>\u2500</c2>","<c2>\u2500</c2>","<c2>\u2500</c2>","<c2>\u2500</c2>","<c2>\u2500</c2>","<c2>\u2500</c2>"],letterspace_size:1,chars:{A:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D</c1><c2>\u2500</c2><c1>\u255A\u255D</c1>"],B:["<c1>\u2554\u2550\u2550\u2557</c1><c2>\u2500</c2>","<c1>\u2551\u2554\u2557\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u255A\u255D\u255A\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],C:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u255A\u255D</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],D:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u255A\u2557\u2554\u2557\u2551</c1>","<c2>\u2500</c2><c1>\u2551\u2551\u2551\u2551</c1>","<c2>\u2500</c2><c1>\u2551\u2551\u2551\u2551</c1>","<c1>\u2554\u255D\u255A\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],E:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],F:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u2551</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u255A\u255D</c1><c2>\u2500\u2500\u2500</c2>"],G:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u255A\u255D</c1>","<c1>\u2551\u2551\u2554\u2550\u2557</c1>","<c1>\u2551\u255A\u2569\u2550\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],H:["<c1>\u2554\u2557</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u255A\u255D</c1><c2>\u2500</c2><c1>\u255A\u255D</c1>"],I:["<c1>\u2554\u2550\u2550\u2557</c1>","<c1>\u255A\u2563\u2560\u255D</c1>","<c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2554\u2563\u2560\u2557</c1>","<c1>\u255A\u2550\u2550\u255D</c1>"],J:["<c2>\u2500\u2500</c2><c1>\u2554\u2557</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2554\u2557\u2551\u2551</c1>","<c1>\u2551\u255A\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u255D</c1>"],K:["<c1>\u2554\u2557\u2554\u2550\u2557</c1>","<c1>\u2551\u2551\u2551\u2554\u255D</c1>","<c1>\u2551\u255A\u255D\u255D</c1><c2>\u2500</c2>","<c1>\u2551\u2554\u2557\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551\u2551\u255A\u2557</c1>","<c1>\u255A\u255D\u255A\u2550\u255D</c1>"],L:["<c1>\u2554\u2557</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],M:["<c1>\u2554\u2550\u2557\u2554\u2550\u2557</c1>","<c1>\u2551\u2551\u255A\u255D\u2551\u2551</c1>","<c1>\u2551\u2554\u2557\u2554\u2557\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u255A\u255D\u255A\u255D\u255A\u255D</c1>"],N:["<c1>\u2554\u2550\u2557</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u2551\u255A\u2557\u2551\u2551</c1>","<c1>\u2551\u2554\u2557\u255A\u255D\u2551</c1>","<c1>\u2551\u2551\u255A\u2557\u2551\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551\u2551</c1>","<c1>\u255A\u255D</c1><c2>\u2500</c2><c1>\u255A\u2550\u255D</c1>"],O:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],P:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u2551</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u255A\u255D</c1><c2>\u2500\u2500\u2500</c2>"],Q:["<c1>\u2554\u2550\u2550\u2550\u2557</c1><c2>\u2500</c2>","<c1>\u2551\u2554\u2550\u2557\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u255A\u2550\u255D\u2560\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u2550\u255D</c1>"],R:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2557\u2554\u255D</c1>","<c1>\u2551\u2551\u2551\u255A\u2557</c1>","<c1>\u255A\u255D\u255A\u2550\u255D</c1>"],S:["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],T:["<c1>\u2554\u2550\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2557\u2554\u2557\u2551</c1>","<c1>\u255A\u255D\u2551\u2551\u255A\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500\u2500</c2>"],U:["<c1>\u2554\u2557</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],V:["<c1>\u2554\u2557</c1><c2>\u2500\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u255A\u2557\u2554\u255D\u2551</c1>","<c1>\u255A\u2557\u2551\u2551\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u2551\u255A\u255D\u2551</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u255A\u2557\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500\u2500</c2>"],W:["<c1>\u2554\u2557\u2554\u2557\u2554\u2557</c1>","<c1>\u2551\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u255A\u255D\u255A\u255D\u2551</c1>","<c1>\u255A\u2557\u2554\u2557\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u255D\u255A\u255D</c1><c2>\u2500</c2>"],X:["<c1>\u2554\u2550\u2557\u2554\u2550\u2557</c1>","<c1>\u255A\u2557\u255A\u255D\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u2557\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2554\u255D\u255A\u2557</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u2554\u2557\u255A\u2557</c1>","<c1>\u255A\u2550\u255D\u255A\u2550\u255D</c1>"],Y:["<c1>\u2554\u2557</c1><c2>\u2500\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u255A\u2557\u2554\u255D\u2551</c1>","<c1>\u255A\u2557\u255A\u255D\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u2557\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500\u2500</c2>"],Z:["<c1>\u2554\u2550\u2550\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2557\u2550\u2551</c1>","<c2>\u2500\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u2550\u255A\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u2550\u255D</c1>"],"0":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u2551\u2551\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"1":["<c2>\u2500</c2><c1>\u2554\u2557</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u2551</c1><c2>\u2500</c2>","<c1>\u255A\u2557\u2551</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u255A\u2557</c1>","<c1>\u255A\u2550\u2550\u255D</c1>"],"2":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D\u2554\u255D\u2551</c1>","<c1>\u2554\u2550\u255D\u2554\u255D</c1>","<c1>\u2551\u2551\u255A\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"3":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D\u2554\u255D\u2551</c1>","<c1>\u2554\u2557\u255A\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"4":["<c1>\u2554\u2557</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1><c2>\u2500</c2><c1>\u2551\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c2>\u2500\u2500\u2500</c2><c1>\u2551\u2551</c1>","<c2>\u2500\u2500\u2500</c2><c1>\u255A\u255D</c1>"],"5":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c1>\u2554\u2550\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"6":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2550\u255D</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"7":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D\u2554\u255D\u2551</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2554\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500</c2>"],"8":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"9":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c1>\u2554\u2550\u2550\u255D\u2551</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>"],"!":["<c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1>","<c1>\u2551\u2551</c1>","<c1>\u255A\u255D</c1>","<c1>\u2554\u2557</c1>","<c1>\u255A\u255D</c1>"],"?":["<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u255A\u255D\u2554\u255D\u2551</c1>","<c2>\u2500\u2500</c2><c1>\u2551\u2554\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2554\u2557</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500</c2>"],".":["<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c1>\u2554\u2557</c1>","<c1>\u255A\u255D</c1>"],"+":["<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500</c2><c1>\u2554\u2557</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u255A\u2557</c1>","<c1>\u255A\u2557\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u255D</c1><c2>\u2500</c2>"],"-":["<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c1>\u2554\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u255D</c1>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>"],_:["<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c1>\u2554\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u255D</c1>"],"=":["<c2>\u2500\u2500\u2500\u2500\u2500</c2>","<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>","<c1>\u2554\u2550\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u255D</c1>","<c2>\u2500\u2500\u2500\u2500\u2500</c2>"],"@":["<c1>\u2554\u2550\u2550\u2550\u2550\u2557</c1><c2>\u2500</c2>","<c1>\u2551\u2554\u2550\u2550\u2557\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551\u2554\u2550\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u2551\u255A\u255D\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2551\u255A\u2550\u2550\u255D\u2560\u2557</c1>","<c1>\u255A\u2550\u2550\u2550\u2550\u2550\u255D</c1>"],"#":["<c2>\u2500</c2><c1>\u2554\u2569\u2569\u2569\u2557</c1><c2>\u2500</c2>","<c1>\u2554\u255D\u2554\u2550\u2557\u255A\u2557</c1>","<c1>\u255A\u2557\u2560\u2550\u2563\u2554\u255D</c1>","<c1>\u2554\u255D\u2560\u2550\u2563\u255A\u2557</c1>","<c1>\u255A\u2557\u255A\u2550\u255D\u2554\u255D</c1>","<c2>\u2500</c2><c1>\u255A\u2566\u2566\u2566\u255D</c1><c2>\u2500</c2>"],$:["<c1>\u2554\u255D\u2569\u255A\u2557</c1>","<c1>\u2551\u2554\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u2550\u2557</c1>","<c1>\u255A\u2550\u2550\u2557\u2551</c1>","<c1>\u2551\u255A\u2550\u255D\u2551</c1>","<c1>\u255A\u2557\u2566\u2554\u255D</c1>"],"%":["<c1>\u2554\u2557</c1><c2>\u2500\u2500</c2><c1>\u2554\u2550\u2557</c1>","<c1>\u255A\u255D</c1><c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500\u2500</c2>","<c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2><c1>\u2554\u2557</c1>","<c1>\u255A\u2550\u255D</c1><c2>\u2500\u2500</c2><c1>\u255A\u255D</c1>"],"&":["<c2>\u2500\u2500</c2><c1>\u2554\u2557</c1><c2>\u2500</c2>","<c2>\u2500\u2500</c2><c1>\u2551\u2551</c1><c2>\u2500</c2>","<c1>\u2554\u2550\u255D\u255A\u2557</c1>","<c1>\u2551\u2554\u2557\u2554\u255D</c1>","<c1>\u2551\u255A\u255D\u2551</c1><c2>\u2500</c2>","<c1>\u255A\u2550\u2550\u255D</c1><c2>\u2500</c2>"],"(":["<c2>\u2500\u2500</c2><c1>\u2554\u2550\u2557</c1>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c1>\u255A\u2557\u255A\u2557</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u255A\u2557\u255A\u2557</c1>","<c2>\u2500\u2500</c2><c1>\u255A\u2550\u255D</c1>"],")":["<c1>\u2554\u2550\u2557</c1><c2>\u2500\u2500</c2>","<c1>\u255A\u2557\u255A\u2557</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u255A\u2557\u255A\u2557</c1>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c1>\u255A\u2550\u255D</c1><c2>\u2500\u2500</c2>"],"/":["<c2>\u2500\u2500\u2500\u2500</c2><c1>\u2554\u2550\u2557</c1>","<c2>\u2500\u2500\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1>","<c2>\u2500\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500</c2>","<c2>\u2500</c2><c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500\u2500</c2>","<c1>\u2554\u255D\u2554\u255D</c1><c2>\u2500\u2500\u2500</c2>","<c1>\u255A\u2550\u255D</c1><c2>\u2500\u2500\u2500\u2500</c2>"],":":["<c2>\u2500\u2500</c2>","<c1>\u2554\u2557</c1>","<c1>\u255A\u255D</c1>","<c1>\u2554\u2557</c1>","<c1>\u255A\u255D</c1>","<c2>\u2500\u2500</c2>"],";":["<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c1>\u2554\u2557</c1>","<c1>\u255A\u2563</c1>","<c2>\u2500</c2><c1>\u255D</c1>"],",":["<c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1>","<c1>\u255A\u255D</c1>","<c1>\u2554\u2557</c1>","<c1>\u255A\u2563</c1>","<c2>\u2500</c2><c1>\u255D</c1>"],"'":["<c1>\u2554\u2557</c1>","<c1>\u2551\u2551</c1>","<c1>\u255A\u255D</c1>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>","<c2>\u2500\u2500</c2>"],'"':["<c1>\u2554\u2557\u2554\u2557</c1>","<c1>\u2551\u2551\u2551\u2551</c1>","<c1>\u255A\u255D\u255A\u255D</c1>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500\u2500</c2>"]," ":["<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>","<c2>\u2500\u2500\u2500</c2>"]}},V0={tiny:$0,block:Y0,shade:Z0,slick:_0,huge:A0,grid:L0,pallet:N0},iK={};function M0(D){let J=[],K=0,Q=/<c(\d+)>(.*?)<\/c\d+>/g,X=0,Y;while((Y=Q.exec(D))!==null){if(Y.index>X){let L=D.slice(X,Y.index);if(L)J.push({text:L,colorIndex:0})}let Z=parseInt(Y[1])-1,_=Y[2];J.push({text:_,colorIndex:Math.max(0,Z)}),X=Y.index+Y[0].length}if(X<D.length){let Z=D.slice(X);if(Z)J.push({text:Z,colorIndex:0})}return J}function IQ(D){if(!iK[D]){let J=V0[D],K={};for(let[Q,X]of Object.entries(J.chars))K[Q]=X.map((Y)=>M0(Y));iK[D]={...J,colors:J.colors||1,chars:K}}return iK[D]}function e5({text:D,font:J="tiny"}){let K=IQ(J);if(!K)return console.warn(`Font '${J}' not found`),{width:0,height:0};let Q=0;for(let X=0;X<D.length;X++){let Y=D[X].toUpperCase(),Z=K.chars[Y];if(!Z){let L=K.chars[" "];if(L&&L[0]){let N=0;for(let V of L[0])N+=V.text.length;Q+=N}else Q+=1;continue}let _=0;if(Z[0])for(let L of Z[0])_+=L.text.length;if(Q+=_,X<D.length-1)Q+=K.letterspace_size}return{width:Q,height:K.lines}}function H0(D,J="tiny"){let K=IQ(J);if(!K)return[0];let Q=[0],X=0;for(let Y=0;Y<D.length;Y++){let Z=D[Y].toUpperCase(),_=K.chars[Z],L=0;if(!_){let N=K.chars[" "];if(N&&N[0])for(let V of N[0])L+=V.text.length;else L=1}else if(_[0])for(let N of _[0])L+=N.text.length;if(X+=L,Y<D.length-1)X+=K.letterspace_size;Q.push(X)}return Q}function lK(D,J,K="tiny"){let Q=H0(J,K);if(D<0)return 0;for(let X=0;X<Q.length-1;X++){let Y=Q[X],Z=Q[X+1];if(D>=Y&&D<Z){let _=Y+(Z-Y)/2;return D<_?X:X+1}}if(Q.length>0&&D>=Q[Q.length-1])return J.length;return 0}function D6(D,{text:J,x:K=0,y:Q=0,color:X=[l.fromInts(255,255,255,255)],backgroundColor:Y=l.fromInts(0,0,0,255),font:Z="tiny"}){let{width:_,height:L}=D,N=IQ(Z);if(!N)return console.warn(`Font '${Z}' not found`),{width:0,height:0};let V=Array.isArray(X)?X:[X];if(Q<0||Q+N.lines>L)return{width:0,height:N.lines};let G=K,O=K;for(let U=0;U<J.length;U++){let k=J[U].toUpperCase(),F=N.chars[k];if(!F){let W=N.chars[" "];if(W&&W[0]){let f=0;for(let T of W[0])f+=T.text.length;G+=f}else G+=1;continue}let P=0;if(F[0])for(let W of F[0])P+=W.text.length;if(G>=_)break;if(G+P<0){G+=P+N.letterspace_size;continue}for(let W=0;W<N.lines&&W<F.length;W++){let f=F[W],T=Q+W;if(T>=0&&T<L){let g=G;for(let h of f){let y=V[h.colorIndex]||V[0];for(let B=0;B<h.text.length;B++){let I=g+B;if(I>=0&&I<_){let b=h.text[B];if(b!==" ")D.setCellWithAlphaBlending(I,T,b,c(y),c(Y))}}g+=h.text.length}}}if(G+=P,U<J.length-1)G+=N.letterspace_size}return{width:G-O,height:N.lines}}var iD={NONE:0,BOLD:1,DIM:2,ITALIC:4,UNDERLINE:8,BLINK:16,INVERSE:32,HIDDEN:64,STRIKETHROUGH:128},J6=8,U0=255;function K6(D){return D&U0}var j0;((D)=>{D[D.topLeft=0]="topLeft",D[D.topRight=1]="topRight",D[D.bottomLeft=2]="bottomLeft",D[D.bottomRight=3]="bottomRight"})(j0||={});var O0;((D)=>{D[D.FG=1]="FG",D[D.BG=2]="BG",D[D.Both=3]="Both"})(O0||={});function _J({bold:D=!1,italic:J=!1,underline:K=!1,dim:Q=!1,blink:X=!1,inverse:Y=!1,hidden:Z=!1,strikethrough:_=!1}={}){let L=iD.NONE;if(D)L|=iD.BOLD;if(J)L|=iD.ITALIC;if(K)L|=iD.UNDERLINE;if(Q)L|=iD.DIM;if(X)L|=iD.BLINK;if(Y)L|=iD.INVERSE;if(Z)L|=iD.HIDDEN;if(_)L|=iD.STRIKETHROUGH;return L}var W0=255,HY=8,UY=16777215;function Q6(D,J){let K=D&W0,Q=(J&UY)<<HY;return K|Q}function X6(D){return D>>>HY&UY}function Y6(D,J=10){function K(X,Y="",Z="",_=!0,L=0){if(L>=J)return[`${Y}${X.id} ... (max depth reached)`];let N=[],V=X.getChildren();if(N.push(`${Y}${X.id}`),V.length>0){let G=V.length-1;V.forEach((O,U)=>{let k=U===G,F=k?"\u2514\u2500\u2500 ":"\u251C\u2500\u2500 ",P=Z+(_?" ":"\u2502 "),W=K(O,P+F,P,k,L+1);N.push(...W)})}return N}let Q=K(D);console.log(`Renderable Tree:
|
|
4
|
+
`+Q.join(`
|
|
5
|
+
`))}var jY=Symbol.for("@opentui/core/StyledText");function G0(D){return D&&D[jY]}class tD{[jY]=!0;chunks;constructor(D){this.chunks=D}}function aK(D){return new tD([{__isChunk:!0,text:D}])}function r(D,J){if(typeof D==="object"&&"__isChunk"in D){let K=D,Q=J.fg?c(J.fg):K.fg,X=J.bg?c(J.bg):K.bg,Y=_J(J),Z=K.attributes?K.attributes|Y:Y;return{__isChunk:!0,text:K.text,fg:Q,bg:X,attributes:Z,link:K.link}}else{let K=String(D),Q=J.fg?c(J.fg):void 0,X=J.bg?c(J.bg):void 0,Y=_J(J);return{__isChunk:!0,text:K,fg:Q,bg:X,attributes:Y}}}var Z6=(D)=>r(D,{fg:"black"}),_6=(D)=>r(D,{fg:"red"}),$6=(D)=>r(D,{fg:"green"}),A6=(D)=>r(D,{fg:"yellow"}),L6=(D)=>r(D,{fg:"blue"}),N6=(D)=>r(D,{fg:"magenta"}),V6=(D)=>r(D,{fg:"cyan"}),M6=(D)=>r(D,{fg:"white"}),H6=(D)=>r(D,{fg:"brightBlack"}),U6=(D)=>r(D,{fg:"brightRed"}),j6=(D)=>r(D,{fg:"brightGreen"}),O6=(D)=>r(D,{fg:"brightYellow"}),W6=(D)=>r(D,{fg:"brightBlue"}),G6=(D)=>r(D,{fg:"brightMagenta"}),k6=(D)=>r(D,{fg:"brightCyan"}),P6=(D)=>r(D,{fg:"brightWhite"}),B6=(D)=>r(D,{bg:"black"}),C6=(D)=>r(D,{bg:"red"}),F6=(D)=>r(D,{bg:"green"}),I6=(D)=>r(D,{bg:"yellow"}),w6=(D)=>r(D,{bg:"blue"}),z6=(D)=>r(D,{bg:"magenta"}),f6=(D)=>r(D,{bg:"cyan"}),q6=(D)=>r(D,{bg:"white"}),x6=(D)=>r(D,{bold:!0}),T6=(D)=>r(D,{italic:!0}),S6=(D)=>r(D,{underline:!0}),g6=(D)=>r(D,{strikethrough:!0}),y6=(D)=>r(D,{dim:!0}),R6=(D)=>r(D,{reverse:!0}),h6=(D)=>r(D,{blink:!0}),p6=(D)=>(J)=>r(J,{fg:D}),E6=(D)=>(J)=>r(J,{bg:D}),b6=(D)=>(J)=>{return{...typeof J==="object"&&"__isChunk"in J?J:{__isChunk:!0,text:String(J)},link:{url:D}}};function c6(D,...J){let K=[];for(let Q=0;Q<D.length;Q++){let X=D[Q];if(X)K.push({__isChunk:!0,text:X,attributes:0});let Y=J[Q];if(typeof Y==="object"&&"__isChunk"in Y)K.push(Y);else if(Y!==void 0){let Z=String(Y);K.push({__isChunk:!0,text:Z,attributes:0})}}return new tD(K)}function OY(D,J,K=[]){let Q=[];if(D.type==="text"){let X=K.length>0?K:["default"],Y=J.mergeStyles(...X);Q.push({__isChunk:!0,text:D.value,fg:Y.fg,bg:Y.bg,attributes:Y.attributes})}else if(D.type==="element"){let X=[...K];if(D.properties?.className){let Y=D.properties.className.split(" ");for(let Z of Y)X.push(Z)}for(let Y of D.children)Q.push(...OY(Y,J,X))}return Q}function v6(D,J){let K=OY(D,J);return new tD(K)}class iJ{now(){if(!globalThis.performance||typeof globalThis.performance.now!=="function")throw Error("SystemClock requires globalThis.performance.now()");return globalThis.performance.now()}setTimeout(D,J){return globalThis.setTimeout(D,J)}clearTimeout(D){globalThis.clearTimeout(D)}setInterval(D,J){return globalThis.setInterval(D,J)}clearInterval(D){globalThis.clearInterval(D)}}var VQ={27:"escape",9:"tab",13:"return",127:"backspace",57344:"escape",57345:"return",57346:"tab",57347:"backspace",57348:"insert",57349:"delete",57350:"left",57351:"right",57352:"up",57353:"down",57354:"pageup",57355:"pagedown",57356:"home",57357:"end",57358:"capslock",57359:"scrolllock",57360:"numlock",57361:"printscreen",57362:"pause",57363:"menu",57364:"f1",57365:"f2",57366:"f3",57367:"f4",57368:"f5",57369:"f6",57370:"f7",57371:"f8",57372:"f9",57373:"f10",57374:"f11",57375:"f12",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24",57388:"f25",57389:"f26",57390:"f27",57391:"f28",57392:"f29",57393:"f30",57394:"f31",57395:"f32",57396:"f33",57397:"f34",57398:"f35",57399:"kp0",57400:"kp1",57401:"kp2",57402:"kp3",57403:"kp4",57404:"kp5",57405:"kp6",57406:"kp7",57407:"kp8",57408:"kp9",57409:"kpdecimal",57410:"kpdivide",57411:"kpmultiply",57412:"kpminus",57413:"kpplus",57414:"kpenter",57415:"kpequal",57416:"kpseparator",57417:"kpleft",57418:"kpright",57419:"kpup",57420:"kpdown",57421:"kppageup",57422:"kppagedown",57423:"kphome",57424:"kpend",57425:"kpinsert",57426:"kpdelete",57427:"clear",57428:"mediaplay",57429:"mediapause",57430:"mediaplaypause",57431:"mediareverse",57432:"mediastop",57433:"mediafastforward",57434:"mediarewind",57435:"medianext",57436:"mediaprev",57437:"mediarecord",57438:"volumedown",57439:"volumeup",57440:"mute",57441:"leftshift",57442:"leftctrl",57443:"leftalt",57444:"leftsuper",57445:"lefthyper",57446:"leftmeta",57447:"rightshift",57448:"rightctrl",57449:"rightalt",57450:"rightsuper",57451:"righthyper",57452:"rightmeta",57453:"iso_level3_shift",57454:"iso_level5_shift"},P0=[...new Set(Object.values(VQ))],B0={kp0:"0",kp1:"1",kp2:"2",kp3:"3",kp4:"4",kp5:"5",kp6:"6",kp7:"7",kp8:"8",kp9:"9",kpdecimal:".",kpdivide:"/",kpmultiply:"*",kpminus:"-",kpplus:"+",kpequal:"=",kpseparator:","};function C0(D){return B0[D.name]}function WY(D){return{shift:!!(D&1),alt:!!(D&2),ctrl:!!(D&4),super:!!(D&8),hyper:!!(D&16),meta:!!(D&32),capsLock:!!(D&64),numLock:!!(D&128)}}var F0={A:"up",B:"down",C:"right",D:"left",H:"home",F:"end",E:"clear",P:"f1",Q:"f2",S:"f4"},I0={"1":"home","2":"insert","3":"delete","4":"end","5":"pageup","6":"pagedown","7":"home","8":"end","11":"f1","12":"f2","13":"f3","14":"f4","15":"f5","17":"f6","18":"f7","19":"f8","20":"f9","21":"f10","23":"f11","24":"f12","29":"menu","57427":"clear"};function w0(D){let K=/^\x1b\[(\d+);(\d+):(\d+)([A-Z~])$/.exec(D);if(!K)return null;let Q=K[1],X=K[2],Y=K[3],Z=K[4],_;if(Z==="~")_=I0[Q];else{if(Q!=="1")return null;_=F0[Z]}if(!_)return null;let L={name:_,ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:D,raw:D,eventType:"press",source:"kitty",super:!1,hyper:!1,capsLock:!1,numLock:!1};if(X){let N=parseInt(X,10);if(!isNaN(N)&&N>1){let V=WY(N-1);L.shift=V.shift,L.ctrl=V.ctrl,L.meta=V.alt||V.meta,L.option=V.alt,L.super=V.super,L.hyper=V.hyper,L.capsLock=V.capsLock,L.numLock=V.numLock}}if(Y==="1"||!Y)L.eventType="press";else if(Y==="2")L.eventType="press",L.repeated=!0;else if(Y==="3")L.eventType="release";return L}function z0(D){let J=w0(D);if(J)return J;let Q=/^\x1b\[([^\x1b]+)u$/.exec(D);if(!Q)return null;let Y=Q[1].split(";");if(Y.length<1)return null;let Z={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:D,raw:D,eventType:"press",source:"kitty",super:!1,hyper:!1,capsLock:!1,numLock:!1},_="",L=Y[0]?.split(":")||[],N=L[0];if(!N)return null;let V=parseInt(N,10);if(isNaN(V))return null;let G,O;if(L[1]){let k=parseInt(L[1],10);if(!isNaN(k)&&k>0&&k<=1114111)G=k}if(L[2]){let k=parseInt(L[2],10);if(!isNaN(k)&&k>0&&k<=1114111)O=k}let U=VQ[V];if(U)Z.name=U,Z.code=`[${V}u`;else if(V===0)Z.name="";else if(V>0&&V<=1114111){let k=String.fromCodePoint(V);if(Z.name=k===" "?"space":k,O)Z.baseCode=O}else return null;if(Y[1]){let k=Y[1].split(":"),F=k[0],P=k[1];if(F){let W=parseInt(F,10);if(!isNaN(W)&&W>1){let f=WY(W-1);Z.shift=f.shift,Z.ctrl=f.ctrl,Z.meta=f.alt||f.meta,Z.option=f.alt,Z.super=f.super,Z.hyper=f.hyper,Z.capsLock=f.capsLock,Z.numLock=f.numLock}}if(P==="1"||!P)Z.eventType="press";else if(P==="2")Z.eventType="press",Z.repeated=!0;else if(P==="3")Z.eventType="release";else Z.eventType="press"}if(Y[2]){let k=Y[2].split(":");for(let F of k){let P=parseInt(F,10);if(!isNaN(P)&&P>0&&P<=1114111)_+=String.fromCodePoint(P)}}if(_==="")_=C0(Z)??"";if(_===""){if(Z.name.length>0&&!VQ[V])if(V===32)_=" ";else if(Z.shift&&G)_=String.fromCodePoint(G);else if(Z.shift&&Z.name.length===1)_=Z.name.toLocaleUpperCase();else _=Z.name}if(_){if(V===0)Z.name=_;Z.sequence=_}if(V===0&&_==="")return null;return Z}var f0=/^(?:\x1b)([a-zA-Z0-9])$/,q0=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,GY={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[29~":"menu","[57427~":"clear","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home","[P":"f1","[Q":"f2","[S":"f4",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home",OM:"return",Oj:"*",Ok:"+",Ol:",",Om:"-",On:".",Oo:"/",Op:"0",Oq:"1",Or:"2",Os:"3",Ot:"4",Ou:"5",Ov:"6",Ow:"7",Ox:"8",Oy:"9",OX:"=","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear",f:"right",b:"left",p:"up",n:"down","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},x0=[...Object.values(GY),"backspace"],m6=[...new Set(["return","linefeed","tab","escape","space",...x0,...P0])],T0=(D)=>{return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(D)},S0=(D)=>{return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(D)},_X=(D)=>{if(D===0)return"space";if(D>=1&&D<=26)return String.fromCharCode(D+97-1);if(D>=28&&D<=31)return String.fromCharCode(D+64);return},g0={Op:"0",Oq:"1",Or:"2",Os:"3",Ot:"4",Ou:"5",Ov:"6",Ow:"7",Ox:"8",Oy:"9",Oj:"*",Ok:"+",Ol:",",Om:"-",On:".",Oo:"/",OX:"="},y0=/^\x1b\[27;(\d+);(\d+)~$/,$X=(D="",J={})=>{let K;if(k0.isBuffer(D))if(D[0]>127&&D[1]===void 0)D[0]-=128,D="\x1B"+String(D);else D=String(D);else if(D!==void 0&&typeof D!=="string")D=String(D);else if(!D)D="";if(/^\x1b\[<\d+;\d+;\d+[Mm]$/.test(D))return null;if(/^\[<\d+;\d+;\d+[Mm]$/.test(D))return null;if(/^\x1b\[<[\d;]*$/.test(D))return null;if(/^\[<[\d;]*$/.test(D))return null;if(D.startsWith("\x1B[M")&&D.length>=6)return null;if(/^\x1b\[\d+;\d+;\d+t$/.test(D))return null;if(/^\x1b\[\d+;\d+R$/.test(D))return null;if(/^\x1b\[\?[\d;]+c$/.test(D))return null;if(/^\x1b\[\?[\d;]+\$y$/.test(D))return null;if(D==="\x1B[I"||D==="\x1B[O")return null;if(/^\x1b\][\d;].*(\x1b\\|\x07)$/.test(D))return null;if(D==="\x1B[200~"||D==="\x1B[201~")return null;let Q={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:D,raw:D,eventType:"press",source:"raw"};Q.sequence=Q.sequence||D||Q.name;let X=D.length===1?_X(D.charCodeAt(0)):void 0,Y=D.length===2&&D[0]==="\x1B"?_X(D.charCodeAt(1)):void 0;if(J.useKittyKeyboard){let _=z0(D);if(_)return _}let Z=y0.exec(D);if(Z){let _=parseInt(Z[1],10)-1,L=parseInt(Z[2],10);if(Q.ctrl=!!(_&4),Q.meta=!!(_&2),Q.shift=!!(_&1),Q.option=!!(_&2),Q.super=!!(_&8),Q.hyper=!!(_&16),L===13)Q.name="return";else if(L===27)Q.name="escape";else if(L===9)Q.name="tab";else if(L===32)Q.name="space";else if(L===127||L===8)Q.name="backspace";else{let N=String.fromCharCode(L);if(Q.name=N,Q.sequence=N,L>=48&&L<=57)Q.number=!0}return Q}if(D==="\r"||D==="\x1B\r")Q.name="return",Q.meta=D.length===2;else if(D===`
|
|
6
|
+
`||D===`\x1B
|
|
7
|
+
`)Q.name="linefeed",Q.meta=D.length===2;else if(D==="\t")Q.name="tab";else if(D==="\b"||D==="\x1B\b"||D==="\x7F"||D==="\x1B\x7F")Q.name="backspace",Q.meta=D.charAt(0)==="\x1B";else if(D==="\x1B"||D==="\x1B\x1B")Q.name="escape",Q.meta=D.length===2;else if(D===" "||D==="\x1B ")Q.name="space",Q.meta=D.length===2;else if(X)Q.name=X,Q.ctrl=!0;else if(D.length===1&&D>="0"&&D<="9")Q.name=D,Q.number=!0;else if(D.length===1&&D>="a"&&D<="z")Q.name=D;else if(D.length===1&&D>="A"&&D<="Z")Q.name=D.toLowerCase(),Q.shift=!0;else if(D.length===1||D.length===2&&D.codePointAt(0)>65535)Q.name=D;else if(K=f0.exec(D)){Q.meta=!0;let _=K[1],L=/^[A-Z]$/.test(_);if(_==="F")Q.name="right";else if(_==="B")Q.name="left";else if(L)Q.shift=!0,Q.name=_;else Q.name=_}else if(Y)Q.meta=!0,Q.ctrl=!0,Q.name=Y;else if(K=q0.exec(D)){let _=[...D];if(_[0]==="\x1B"&&_[1]==="\x1B")Q.option=!0,Q.meta=!0;let L=[K[1],K[2],K[4],K[6]].filter(Boolean).join(""),N=parseInt(K[3]||K[5]||"1",10)-1;Q.ctrl=Q.ctrl||!!(N&4),Q.meta=Q.meta||!!(N&2),Q.shift=Q.shift||!!(N&1),Q.option=Q.option||!!(N&2),Q.super=!!(N&8),Q.hyper=!!(N&16),Q.code=L;let V=GY[L];if(V){Q.name=V,Q.shift=T0(L)||Q.shift,Q.ctrl=S0(L)||Q.ctrl;let G=g0[L];if(G!==void 0){if(Q.sequence=G,Q.name>="0"&&Q.name<="9")Q.number=!0}}else Q.name="",Q.code=void 0}else if(D==="\x1B[3~")Q.name="delete",Q.meta=!1,Q.code="[3~";return Q};class R0{tick(D){return 1}reset(){}}class h0{opts;lastTickTime=0;velocityHistory=[];historySize=3;streakTimeout=150;minTickInterval=6;constructor(D={}){this.opts=D}tick(D=Date.now()){let J=this.opts.A??0.8,K=this.opts.tau??3,Q=this.opts.maxMultiplier??6,X=this.lastTickTime?D-this.lastTickTime:1/0;if(X===1/0||X>this.streakTimeout)return this.lastTickTime=D,this.velocityHistory=[],1;if(X<this.minTickInterval)return 1;if(this.lastTickTime=D,this.velocityHistory.push(X),this.velocityHistory.length>this.historySize)this.velocityHistory.shift();let L=100/(this.velocityHistory.reduce((V,G)=>V+G,0)/this.velocityHistory.length)/K,N=1+J*(Math.exp(L)-1);return Math.min(N,Q)}reset(){this.lastTickTime=0,this.velocityHistory=[]}}function AX(D){if(D==null)return e.Auto;switch(D.toLowerCase()){case"auto":return e.Auto;case"flex-start":return e.FlexStart;case"center":return e.Center;case"flex-end":return e.FlexEnd;case"stretch":return e.Stretch;case"baseline":return e.Baseline;case"space-between":return e.SpaceBetween;case"space-around":return e.SpaceAround;case"space-evenly":return e.SpaceEvenly;default:return e.Auto}}function LX(D){if(D==null)return e.Stretch;switch(D.toLowerCase()){case"auto":return e.Auto;case"flex-start":return e.FlexStart;case"center":return e.Center;case"flex-end":return e.FlexEnd;case"stretch":return e.Stretch;case"baseline":return e.Baseline;case"space-between":return e.SpaceBetween;case"space-around":return e.SpaceAround;case"space-evenly":return e.SpaceEvenly;default:return e.Stretch}}function u6(D){if(D==null)return UJ.BorderBox;switch(D.toLowerCase()){case"border-box":return UJ.BorderBox;case"content-box":return UJ.ContentBox;default:return UJ.BorderBox}}function i6(D){if(D==null)return jJ.Width;switch(D.toLowerCase()){case"width":return jJ.Width;case"height":return jJ.Height;default:return jJ.Width}}function l6(D){if(D==null)return RD.LTR;switch(D.toLowerCase()){case"inherit":return RD.Inherit;case"ltr":return RD.LTR;case"rtl":return RD.RTL;default:return RD.LTR}}function a6(D){if(D==null)return CD.Flex;switch(D.toLowerCase()){case"flex":return CD.Flex;case"none":return CD.None;case"contents":return CD.Contents;default:return CD.Flex}}function s6(D){if(D==null)return E.All;switch(D.toLowerCase()){case"left":return E.Left;case"top":return E.Top;case"right":return E.Right;case"bottom":return E.Bottom;case"start":return E.Start;case"end":return E.End;case"horizontal":return E.Horizontal;case"vertical":return E.Vertical;case"all":return E.All;default:return E.All}}function NX(D){if(D==null)return zD.Column;switch(D.toLowerCase()){case"column":return zD.Column;case"column-reverse":return zD.ColumnReverse;case"row":return zD.Row;case"row-reverse":return zD.RowReverse;default:return zD.Column}}function o6(D){if(D==null)return OD.All;switch(D.toLowerCase()){case"column":return OD.Column;case"row":return OD.Row;case"all":return OD.All;default:return OD.All}}function VX(D){if(D==null)return UD.FlexStart;switch(D.toLowerCase()){case"flex-start":return UD.FlexStart;case"center":return UD.Center;case"flex-end":return UD.FlexEnd;case"space-between":return UD.SpaceBetween;case"space-around":return UD.SpaceAround;case"space-evenly":return UD.SpaceEvenly;default:return UD.FlexStart}}function r6(D){if(D==null)return jD.Info;switch(D.toLowerCase()){case"error":return jD.Error;case"warn":return jD.Warn;case"info":return jD.Info;case"debug":return jD.Debug;case"verbose":return jD.Verbose;case"fatal":return jD.Fatal;default:return jD.Info}}function n6(D){if(D==null)return FD.Undefined;switch(D.toLowerCase()){case"undefined":return FD.Undefined;case"exactly":return FD.Exactly;case"at-most":return FD.AtMost;default:return FD.Undefined}}function MX(D){if(D==null)return oD.Visible;switch(D.toLowerCase()){case"visible":return oD.Visible;case"hidden":return oD.Hidden;case"scroll":return oD.Scroll;default:return oD.Visible}}function HX(D){if(D==null)return rD.Relative;switch(D.toLowerCase()){case"static":return rD.Static;case"relative":return rD.Relative;case"absolute":return rD.Absolute;default:return rD.Static}}function t6(D){if(D==null)return HD.Point;switch(D.toLowerCase()){case"undefined":return HD.Undefined;case"point":return HD.Point;case"percent":return HD.Percent;case"auto":return HD.Auto;default:return HD.Point}}function UX(D){if(D==null)return nD.NoWrap;switch(D.toLowerCase()){case"no-wrap":return nD.NoWrap;case"wrap":return nD.Wrap;case"wrap-reverse":return nD.WrapReverse;default:return nD.NoWrap}}class jK{mouseButtonsPressed=new Set;static SCROLL_DIRECTIONS={0:"up",1:"down",2:"left",3:"right"};reset(){this.mouseButtonsPressed.clear()}decodeInput(D){return(Buffer.isBuffer(D)?D:Buffer.from(D.buffer,D.byteOffset,D.byteLength)).toString("latin1")}parseMouseEvent(D){let J=this.decodeInput(D);return this.parseMouseSequenceAt(J,0)?.event??null}parseAllMouseEvents(D){let J=this.decodeInput(D),K=[],Q=0;while(Q<J.length){let X=this.parseMouseSequenceAt(J,Q);if(!X)break;K.push(X.event),Q+=X.consumed}return K}parseMouseSequenceAt(D,J){if(!D.startsWith("\x1B[",J))return null;let K=D[J+2];if(K==="<")return this.parseSgrSequence(D,J);if(K==="M")return this.parseBasicSequence(D,J);return null}parseSgrSequence(D,J){let K=J+3,Q=[0,0,0],X=0,Y=!1;while(K<D.length){let Z=D[K],_=D.charCodeAt(K);if(_>=48&&_<=57){Y=!0,Q[X]=Q[X]*10+(_-48),K++;continue}switch(Z){case";":{if(!Y||X>=2)return null;X++,Y=!1,K++;break}case"M":case"m":{if(!Y||X!==2)return null;return{event:this.decodeSgrEvent(Q[0],Q[1],Q[2],Z),consumed:K-J+1}}default:return null}}return null}parseBasicSequence(D,J){if(J+6>D.length)return null;let K=D.charCodeAt(J+3)-32,Q=D.charCodeAt(J+4)-33,X=D.charCodeAt(J+5)-33;return{event:this.decodeBasicEvent(K,Q,X),consumed:6}}decodeSgrEvent(D,J,K,Q){let X=D&3,Y=(D&64)!==0,Z=!Y?void 0:jK.SCROLL_DIRECTIONS[X],_=(D&32)!==0,L={shift:(D&4)!==0,alt:(D&8)!==0,ctrl:(D&16)!==0},N,V;if(_){let G=this.mouseButtonsPressed.size>0;if(X===3)N="move";else if(G)N="drag";else N="move"}else if(Y&&Q==="M")N="scroll",V={direction:Z,delta:1};else if(N=Q==="M"?"down":"up",N==="down"&&X!==3)this.mouseButtonsPressed.add(X);else if(N==="up")this.mouseButtonsPressed.clear();return{type:N,button:X===3?0:X,x:J-1,y:K-1,modifiers:L,scroll:V}}decodeBasicEvent(D,J,K){let Q=D&3,X=(D&64)!==0,Y=(D&32)!==0,Z=!X?void 0:jK.SCROLL_DIRECTIONS[Q],_={shift:(D&4)!==0,alt:(D&8)!==0,ctrl:(D&16)!==0},L,N,V;if(Y)L="move",N=Q===3?-1:Q;else if(X)L="scroll",N=0,V={direction:Z,delta:1};else L=Q===3?"up":"down",N=Q===3?0:Q;return{type:L,button:N,x:J,y:K,modifiers:_,scroll:V}}}class kY{renderable;relativeX;relativeY;constructor(D,J,K){this.renderable=D,this.relativeX=J-this.renderable.x,this.relativeY=K-this.renderable.y}get x(){return this.renderable.x+this.relativeX}get y(){return this.renderable.y+this.relativeY}}class PY{_anchor;_focus;_selectedRenderables=[];_touchedRenderables=[];_isActive=!0;_isDragging=!0;_isStart=!1;constructor(D,J,K){this._anchor=new kY(D,J.x,J.y),this._focus={...K}}get isStart(){return this._isStart}set isStart(D){this._isStart=D}get anchor(){return{x:this._anchor.x,y:this._anchor.y}}get focus(){return{...this._focus}}set focus(D){this._focus={...D}}get isActive(){return this._isActive}set isActive(D){this._isActive=D}get isDragging(){return this._isDragging}set isDragging(D){this._isDragging=D}get bounds(){let D=Math.min(this._anchor.x,this._focus.x),J=Math.max(this._anchor.x,this._focus.x),K=Math.min(this._anchor.y,this._focus.y),Q=Math.max(this._anchor.y,this._focus.y),X=J-D+1,Y=Q-K+1;return{x:D,y:K,width:X,height:Y}}updateSelectedRenderables(D){this._selectedRenderables=D}get selectedRenderables(){return this._selectedRenderables}updateTouchedRenderables(D){this._touchedRenderables=D}get touchedRenderables(){return this._touchedRenderables}getSelectedText(){let D=new Map,J=this._selectedRenderables.sort((K,Q)=>{let X=K.y,Y=Q.y;if(X!==Y)return X-Y;return K.x-Q.x}).filter((K)=>!K.isDestroyed);for(let K of J){let Q=K.getSelectedText();if(!Q)continue;let X=Q.split(`
|
|
8
|
+
`);for(let Y=0;Y<X.length;Y+=1){let Z=K.y+Y,_=D.get(Z)??[];_.push({x:K.x,text:X[Y]}),D.set(Z,_)}}return[...D.entries()].sort(([K],[Q])=>K-Q).map(([,K])=>K.sort((Q,X)=>Q.x-X.x).map((Q)=>Q.text).join("")).join(`
|
|
9
|
+
`)}}function BY(D,J,K){if(!D?.isActive)return null;return{anchorX:D.anchor.x-J,anchorY:D.anchor.y-K,focusX:D.focus.x-J,focusY:D.focus.y-K,isActive:!0}}class p0{getText;getFont;localSelection=null;constructor(D,J){this.getText=D,this.getFont=J}hasSelection(){return this.localSelection!==null}getSelection(){return this.localSelection}shouldStartSelection(D,J,K,Q){if(D<0||D>=K||J<0||J>=Q)return!1;let X=this.getText(),Y=this.getFont(),Z=lK(D,X,Y);return Z>=0&&Z<=X.length}onLocalSelectionChanged(D,J,K){let Q=this.localSelection;if(!D?.isActive)return this.localSelection=null,Q!==null;let X=this.getText(),Y=this.getFont(),Z={x:D.anchorX,y:D.anchorY},_={x:D.focusX,y:D.focusY};if(K-1<Z.y||0>_.y)return this.localSelection=null,Q!==null;let L=0,N=X.length;if(Z.y>K-1)return this.localSelection=null,Q!==null;else if(Z.y>=0&&Z.y<=K-1){if(Z.x>0)L=lK(Z.x,X,Y)}if(_.y<0)return this.localSelection=null,Q!==null;else if(_.y>=0&&_.y<=K-1)if(_.x>=0)N=lK(_.x,X,Y);else N=0;if(L<N&&L>=0&&N<=X.length)this.localSelection={start:L,end:N};else this.localSelection=null;return Q?.start!==this.localSelection?.start||Q?.end!==this.localSelection?.end}}var wQ=Symbol.for("@opentui/core/singleton");function OJ(D,J){let K=globalThis[wQ]??={};if(!(D in K))K[D]=J();return K[D]}function E0(D){let J=globalThis[wQ];if(J&&D in J)delete J[D]}function b0(D){let J=globalThis[wQ];return J&&D in J}var $J=OJ("env-registry",()=>({}));function AD(D){let J=$J[D.name];if(J){if(J.description!==D.description||J.type!==D.type||J.default!==D.default)throw Error(`Environment variable "${D.name}" is already registered with different configuration. Existing: ${JSON.stringify(J)}, New: ${JSON.stringify(D)}`);return}$J[D.name]=D}function c0(D){let J=D.toLowerCase();return["true","1","on","yes"].includes(J)}function v0(D){let J=process.env[D.name];if(J===void 0&&D.default!==void 0)return D.default;if(J===void 0)throw Error(`Required environment variable ${D.name} is not set. ${D.description}`);switch(D.type){case"boolean":return typeof J==="boolean"?J:c0(J);case"number":let K=Number(J);if(isNaN(K))throw Error(`Environment variable ${D.name} must be a valid number, got: ${J}`);return K;case"string":default:return J}}class CY{parsedValues=new Map;get(D){if(this.parsedValues.has(D))return this.parsedValues.get(D);if(!(D in $J))throw Error(`Environment variable ${D} is not registered.`);try{let J=v0($J[D]);return this.parsedValues.set(D,J),J}catch(J){throw Error(`Failed to parse env var ${D}: ${J instanceof Error?J.message:String(J)}`)}}has(D){return D in $J}clearCache(){this.parsedValues.clear()}}var EJ=OJ("env-store",()=>new CY);function e6(){EJ.clearCache()}function D7(){let D=Object.values($J);if(D.length===0)return`# Environment Variables
|
|
10
|
+
|
|
11
|
+
No environment variables registered.
|
|
12
|
+
`;let J=`# Environment Variables
|
|
13
|
+
|
|
14
|
+
`;for(let K of D){if(J+=`## ${K.name}
|
|
15
|
+
|
|
16
|
+
`,J+=`${K.description}
|
|
17
|
+
|
|
18
|
+
`,J+=`**Type:** \`${K.type||"string"}\`
|
|
19
|
+
`,K.default!==void 0){let Q=typeof K.default==="string"?`"${K.default}"`:String(K.default);J+=`**Default:** \`${Q}\`
|
|
20
|
+
`}else J+=`**Default:** *Required*
|
|
21
|
+
`;J+=`
|
|
22
|
+
`}return J}function J7(){let D=Object.values($J);if(D.length===0)return`\x1B[1;36mEnvironment Variables\x1B[0m
|
|
23
|
+
|
|
24
|
+
No environment variables registered.
|
|
25
|
+
`;let J=`\x1B[1;36mEnvironment Variables\x1B[0m
|
|
26
|
+
|
|
27
|
+
`;for(let K of D){if(J+=`\x1B[1;33m${K.name}\x1B[0m
|
|
28
|
+
`,J+=`${K.description}
|
|
29
|
+
`,J+=`\x1B[32mType:\x1B[0m \x1B[36m${K.type||"string"}\x1B[0m
|
|
30
|
+
`,K.default!==void 0){let Q=typeof K.default==="string"?`"${K.default}"`:String(K.default);J+=`\x1B[32mDefault:\x1B[0m \x1B[35m${Q}\x1B[0m
|
|
31
|
+
`}else J+=`\x1B[32mDefault:\x1B[0m \x1B[31mRequired\x1B[0m
|
|
32
|
+
`;J+=`
|
|
33
|
+
`}return J}var XD=new Proxy({},{get(D,J){if(typeof J!=="string")return;return EJ.get(J)},has(D,J){return EJ.has(J)},ownKeys(){return Object.keys($J)},getOwnPropertyDescriptor(D,J){if(EJ.has(J))return{enumerable:!0,configurable:!0,get:()=>EJ.get(J)};return}}),d0=20,m0=65536,OK=256,VD=27,u0=7,sK=BK.from("\x1B[200~"),oK=BK.from("\x1B[201~"),zQ=new Uint8Array(0),i0=new TextDecoder,l0={kittyKeyboardEnabled:!1,privateCapabilityRepliesActive:!1,pixelResolutionQueryActive:!1,explicitWidthCprActive:!1,startupCursorCprActive:!1},a0=/^\x1b\[\d+\$$/,s0=new iJ;class FY{buf;start=0;end=0;constructor(D=OK){this.buf=new Uint8Array(D)}get length(){return this.end-this.start}get capacity(){return this.buf.length}view(){return this.buf.subarray(this.start,this.end)}take(){let D=this.view();return this.start=0,this.end=0,D}append(D){if(D.length===0)return;this.ensureCapacity(this.length+D.length),this.buf.set(D,this.end),this.end+=D.length}consume(D){if(D<=0)return;if(D>=this.length){this.start=0,this.end=0;return}if(this.start+=D,this.start>=this.buf.length/2)this.buf.copyWithin(0,this.start,this.end),this.end-=this.start,this.start=0}clear(){this.start=0,this.end=0}reset(D=OK){this.buf=new Uint8Array(D),this.start=0,this.end=0}ensureCapacity(D){let J=this.length;if(D<=this.buf.length){if(this.buf.length-this.end>=D-J)return;if(this.buf.copyWithin(0,this.start,this.end),this.end=J,this.start=0,D<=this.buf.length)return}let K=this.buf.length;while(K<D)K*=2;let Q=new Uint8Array(K);Q.set(this.view(),0),this.buf=Q,this.start=0,this.end=J}}function jX(D,J){if(typeof D!=="number"||!Number.isFinite(D)||D<=0)return J;return Math.floor(D)}function o0(D){if(D<128)return 1;if(D>=194&&D<=223)return 2;if(D>=224&&D<=239)return 3;if(D>=240&&D<=244)return 4;return 0}function r0(D,J){if(D.length!==J.length)return!1;for(let K=0;K<D.length;K+=1)if(D[K]!==J[K])return!1;return!0}function rK(D){if(D.length<7)return!1;if(D[0]!==VD||D[1]!==91||D[2]!==60)return!1;let J=D[D.length-1];if(J!==77&&J!==109)return!1;let K=0,Q=!1;for(let X=3;X<D.length-1;X+=1){let Y=D[X];if(Y>=48&&Y<=57){Q=!0;continue}if(Y===59&&Q&&K<2){K+=1,Q=!1;continue}return!1}return K===2&&Q}function pD(D){return D>=48&&D<=57}function IY(D,J,K){if(J>=K)return null;let Q=0,X=!1;for(let Y=J;Y<K;Y+=1){let Z=D[Y];if(!pD(Z))return null;X=!0,Q=Q*10+(Z-48)}return X?Q:null}function n0(D,J,K){if(J>=K)return null;let Q=-1;for(let Y=J;Y<K;Y+=1)if(D[Y]===58){Q=Y;break}if(Q===-1)return null;let X=IY(D,J,Q);if(X===null)return null;for(let Y=Q+1;Y<K;Y+=1){let Z=D[Y];if(Z!==58&&!pD(Z))return null}return X}function t0(D){return D.semicolons>=1}function e0(D){return D.semicolons===1&&D.segments>1}function wY(D){return D.firstParamValue===1&&D.semicolons===1}function D1(D){return D.semicolons===1}function J1(D){return D.segments===1&&D.semicolons<=1}function K1(D){return D.firstParamValue===4&&D.semicolons===2}function OX(D,J){return J.kittyKeyboardEnabled&&(t0(D)||e0(D))||J.explicitWidthCprActive&&wY(D)||J.startupCursorCprActive&&D1(D)||J.pixelResolutionQueryActive&&K1(D)}function Q1(D,J,K){if(K.kittyKeyboardEnabled){if(D.hasDigit&&J===117)return!0;if(D.hasDigit&&D.semicolons===1&&D.segments>1&&(J===126||J>=65&&J<=90))return!0}if(K.explicitWidthCprActive&&D.hasDigit&&D.firstParamValue===1&&D.semicolons===1&&J===82)return!0;if(K.startupCursorCprActive&&D.hasDigit&&D.semicolons===1&&J===82)return!0;if(K.pixelResolutionQueryActive&&D.hasDigit&&D.firstParamValue===4&&D.semicolons===2&&J===116)return!0;return!1}function X1(D,J){if(J===82&&D.semicolons===1&&D.segments===1&&D.hasDigit)return"cpr";return"csi"}function WX(D){return D.privateCapabilityRepliesActive}function Y1(D,J,K){if(!K.privateCapabilityRepliesActive)return!1;if(D.sawDollar)return D.hasDigit&&J===121;if(J===99)return D.hasDigit||D.semicolons>0;if(J===110)return D.hasDigit;return D.hasDigit&&J===117}function Z1(D,J){if(D.length===0)return J;if(J.length===0)return D;let K=new Uint8Array(D.length+J.length);return K.set(D,0),K.set(J,D.length),K}function GX(D){let J=new Uint8Array(D.length+1);return J[0]=VD,J.set(D,1),J}function kX(D,J){if(J.length===0)return 0;let K=D.length-J.length;for(let Q=0;Q<=K;Q+=1){let X=!0;for(let Y=0;Y<J.length;Y+=1)if(D[Q+Y]!==J[Y]){X=!1;break}if(X)return Q}return-1}function PX(D){return BK.from(D.buffer,D.byteOffset,D.byteLength).toString("latin1")}function gD(D){return i0.decode(D)}function _1(){return{tail:zQ,parts:[],totalLength:0}}function $1(D,J){if(J===0)return zQ;if(D.length===1)return D[0];let K=new Uint8Array(J),Q=0;for(let X of D)K.set(X,Q),Q+=X.length;return K}class zY{pending=new FY(OK);events=[];timeoutMs;maxPendingBytes;armTimeouts;onTimeoutFlush;useKittyKeyboard;mouseParser=new jK;clock;protocolContext;timeoutId=null;destroyed=!1;pendingSinceMs=null;forceFlush=!1;justFlushedEsc=!1;state={tag:"ground"};cursor=0;unitStart=0;paste=null;constructor(D={}){this.timeoutMs=jX(D.timeoutMs,d0),this.maxPendingBytes=jX(D.maxPendingBytes,m0),this.armTimeouts=D.armTimeouts??!0,this.onTimeoutFlush=D.onTimeoutFlush??null,this.useKittyKeyboard=D.useKittyKeyboard??!0,this.clock=D.clock??s0,this.protocolContext={...l0,kittyKeyboardEnabled:D.protocolContext?.kittyKeyboardEnabled??!1,privateCapabilityRepliesActive:D.protocolContext?.privateCapabilityRepliesActive??!1,pixelResolutionQueryActive:D.protocolContext?.pixelResolutionQueryActive??!1,explicitWidthCprActive:D.protocolContext?.explicitWidthCprActive??!1,startupCursorCprActive:D.protocolContext?.startupCursorCprActive??!1}}get bufferCapacity(){return this.pending.capacity}updateProtocolContext(D){this.ensureAlive(),this.protocolContext={...this.protocolContext,...D},this.reconcileDeferredStateWithProtocolContext(),this.reconcileTimeoutState()}getAbortableStartupCursorCprState(){if(this.pending.length===0)return null;switch(this.state.tag){case"csi":{let D=this.pending.view(),J=this.unitStart+2;if(this.cursor<J)return null;let K=null;for(let Q=J;Q<this.cursor;Q+=1){let X=D[Q];if(!pD(X))return null;K=(K??0)*10+(X-48)}return{tag:"csi_parametric_ignored",semicolons:0,segments:1,hasDigit:this.cursor>J,firstParamValue:K}}case"csi_parametric":case"csi_parametric_deferred":if(!J1(this.state)||this.protocolContext.explicitWidthCprActive&&wY(this.state))return null;return{tag:"csi_parametric_ignored",semicolons:this.state.semicolons,segments:this.state.segments,hasDigit:this.state.hasDigit,firstParamValue:this.state.firstParamValue}}return null}abortPendingStartupCursorCpr(){this.ensureAlive();let D=this.getAbortableStartupCursorCprState();if(!D)return;if(this.state=D,this.pendingSinceMs===null)this.markPending();this.forceFlush=!1,this.reconcileTimeoutState()}push(D){if(this.ensureAlive(),D.length===0){this.emitKeyOrResponse("unknown","");return}let J=D;while(J.length>0){if(this.paste){J=this.consumePasteBytes(J);continue}let K=this.state.tag==="ground"&&this.pending.length===0?kX(J,sK):-1,Q=K===-1?J.length:K+sK.length;if(this.pending.append(J.subarray(0,Q)),J=J.subarray(Q),this.scanPending(),this.paste&&this.pending.length>0){J=this.consumePasteBytes(this.takePendingBytes());continue}if(!this.paste&&this.pending.length>this.maxPendingBytes){if(this.flushPendingOverflow(),this.scanPending(),this.paste&&this.pending.length>0)J=this.consumePasteBytes(this.takePendingBytes())}}this.reconcileTimeoutState()}read(){if(this.ensureAlive(),this.events.length===0&&this.forceFlush)this.scanPending(),this.reconcileTimeoutState();return this.events.shift()??null}drain(D){this.ensureAlive();while(!0){if(this.destroyed)return;let J=this.read();if(!J)return;D(J)}}flushTimeout(D=this.clock.now()){if(this.ensureAlive(),this.pendingSinceMs!==null&&(D<this.pendingSinceMs||D-this.pendingSinceMs<this.timeoutMs))return;this.tryForceFlush()}tryForceFlush(){if(this.paste||this.pendingSinceMs===null||this.pending.length===0)return;this.forceFlush=!0}reset(){if(this.destroyed)return;this.clearTimeout(),this.resetState()}resetMouseState(){this.ensureAlive(),this.mouseParser.reset()}destroy(){if(this.destroyed)return;this.clearTimeout(),this.destroyed=!0,this.resetState()}ensureAlive(){if(this.destroyed)throw Error("StdinParser has been destroyed")}scanPending(){while(!this.paste){let D=this.pending.view();if(this.state.tag==="ground"&&this.cursor>=D.length){this.pending.clear(),this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1;return}let J=this.cursor<D.length?D[this.cursor]:-1;switch(this.state.tag){case"ground":{if(this.unitStart=this.cursor,this.justFlushedEsc){if(J===91){this.justFlushedEsc=!1,this.cursor+=1,this.state={tag:"esc_recovery"};continue}this.justFlushedEsc=!1}if(J===VD){this.cursor+=1,this.state={tag:"esc"};continue}if(J<128){this.emitKeyOrResponse("unknown",gD(D.subarray(this.cursor,this.cursor+1))),this.consumePrefix(this.cursor+1);continue}let K=o0(J);if(K===0){if(!this.forceFlush&&this.cursor+1===D.length){this.markPending();return}this.emitLegacyHighByte(J),this.consumePrefix(this.cursor+1);continue}this.cursor+=1,this.state={tag:"utf8",expected:K,seen:1};continue}case"utf8":{if(this.cursor>=D.length){if(!this.forceFlush){this.markPending();return}this.emitLegacyHighByte(D[this.unitStart]),this.state={tag:"ground"},this.consumePrefix(this.unitStart+1);continue}if((J&192)!==128){this.emitLegacyHighByte(D[this.unitStart]),this.state={tag:"ground"},this.consumePrefix(this.unitStart+1);continue}let K=this.state.seen+1;if(this.cursor+=1,K<this.state.expected){this.state={tag:"utf8",expected:this.state.expected,seen:K};continue}this.emitKeyOrResponse("unknown",gD(D.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"esc":{if(this.cursor>=D.length){if(!this.forceFlush){this.markPending();return}let K=this.cursor===this.unitStart+1&&D[this.unitStart]===VD;this.emitKeyOrResponse("unknown",gD(D.subarray(this.unitStart,this.cursor))),this.justFlushedEsc=K,this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}switch(J){case 91:this.cursor+=1,this.state={tag:"csi"};continue;case 79:this.cursor+=1,this.state={tag:"ss3"};continue;case 93:this.cursor+=1,this.state={tag:"osc",sawEsc:!1};continue;case 80:this.cursor+=1,this.state={tag:"dcs",sawEsc:!1};continue;case 95:this.cursor+=1,this.state={tag:"apc",sawEsc:!1};continue;case VD:this.cursor+=1;continue;default:this.cursor+=1,this.emitKeyOrResponse("unknown",gD(D.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}}case"ss3":{if(this.cursor>=D.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(J===VD){this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}this.cursor+=1,this.emitKeyOrResponse("unknown",gD(D.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"esc_recovery":{if(this.cursor>=D.length){if(!this.forceFlush){this.markPending();return}this.emitKeyOrResponse("unknown",gD(D.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(J===60){this.cursor+=1,this.state={tag:"esc_less_mouse"};continue}if(J===77){this.cursor+=1,this.state={tag:"esc_less_x10_mouse"};continue}this.emitKeyOrResponse("unknown",gD(D.subarray(this.unitStart,this.unitStart+1))),this.state={tag:"ground"},this.consumePrefix(this.unitStart+1);continue}case"csi":{if(this.cursor>=D.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(J===VD){this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(J===77&&this.cursor===this.unitStart+2){let K=this.cursor+4;if(D.length<K){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,D.length)),this.state={tag:"ground"},this.consumePrefix(D.length);continue}this.emitMouse(D.subarray(this.unitStart,K),"x10"),this.state={tag:"ground"},this.consumePrefix(K);continue}if(J===36){let K=this.cursor+1,Q=gD(D.subarray(this.unitStart,K));if(a0.test(Q)){this.emitKeyOrResponse("csi",Q),this.state={tag:"ground"},this.consumePrefix(K);continue}if(!this.forceFlush&&K>=D.length){this.markPending();return}}if(J===60&&this.cursor===this.unitStart+2){this.cursor+=1,this.state={tag:"csi_sgr_mouse",part:0,hasDigit:!1};continue}if(J===91&&this.cursor===this.unitStart+2){this.cursor+=1;continue}if(J===63&&this.cursor===this.unitStart+2){this.cursor+=1,this.state={tag:"csi_private_reply",semicolons:0,hasDigit:!1,sawDollar:!1};continue}if(J===59){let K=this.unitStart+2,Q=this.cursor,X=IY(D,K,Q);if(X===null&&this.protocolContext.kittyKeyboardEnabled)X=n0(D,K,Q);if(X!==null){this.cursor+=1,this.state={tag:"csi_parametric",semicolons:1,segments:1,hasDigit:!1,firstParamValue:X};continue}}if(J>=64&&J<=126){let K=this.cursor+1,Q=D.subarray(this.unitStart,K);if(r0(Q,sK)){this.state={tag:"ground"},this.consumePrefix(K),this.paste=_1();continue}if(rK(Q)){this.emitMouse(Q,"sgr"),this.state={tag:"ground"},this.consumePrefix(K);continue}this.emitKeyOrResponse("csi",gD(Q)),this.state={tag:"ground"},this.consumePrefix(K);continue}this.cursor+=1;continue}case"csi_sgr_mouse":{if(this.cursor>=D.length){if(!this.forceFlush){this.markPending();return}this.state={tag:"csi_sgr_mouse_deferred",part:this.state.part,hasDigit:this.state.hasDigit},this.pendingSinceMs=null,this.forceFlush=!1;return}if(J===VD){this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(pD(J)){this.cursor+=1,this.state={tag:"csi_sgr_mouse",part:this.state.part,hasDigit:!0};continue}if(J===59&&this.state.hasDigit&&this.state.part<2){this.cursor+=1,this.state={tag:"csi_sgr_mouse",part:this.state.part+1,hasDigit:!1};continue}if(J>=64&&J<=126){let K=this.cursor+1,Q=D.subarray(this.unitStart,K);if(rK(Q))this.emitMouse(Q,"sgr");else this.emitKeyOrResponse("csi",gD(Q));this.state={tag:"ground"},this.consumePrefix(K);continue}this.state={tag:"csi"};continue}case"csi_sgr_mouse_deferred":{if(this.cursor>=D.length){this.pendingSinceMs=null,this.forceFlush=!1;return}if(J===VD){this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(pD(J)||J===59||J===77||J===109){this.state={tag:"csi_sgr_mouse",part:this.state.part,hasDigit:this.state.hasDigit};continue}this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"csi_parametric":{if(this.cursor>=D.length){if(!this.forceFlush){this.markPending();return}if(OX(this.state,this.protocolContext)){this.state={tag:"csi_parametric_deferred",semicolons:this.state.semicolons,segments:this.state.segments,hasDigit:this.state.hasDigit,firstParamValue:this.state.firstParamValue},this.pendingSinceMs=null,this.forceFlush=!1;return}this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(J===VD){this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(pD(J)){this.cursor+=1,this.state={tag:"csi_parametric",semicolons:this.state.semicolons,segments:this.state.segments,hasDigit:!0,firstParamValue:this.state.firstParamValue};continue}if(J===58&&this.state.hasDigit&&this.state.segments<3){this.cursor+=1,this.state={tag:"csi_parametric",semicolons:this.state.semicolons,segments:this.state.segments+1,hasDigit:!1,firstParamValue:this.state.firstParamValue};continue}if(J===59&&this.state.semicolons<2){this.cursor+=1,this.state={tag:"csi_parametric",semicolons:this.state.semicolons+1,segments:1,hasDigit:!1,firstParamValue:this.state.firstParamValue};continue}if(J>=64&&J<=126){let K=this.cursor+1,Q=X1(this.state,J);this.emitKeyOrResponse(Q,gD(D.subarray(this.unitStart,K))),this.state={tag:"ground"},this.consumePrefix(K);continue}this.state={tag:"csi"};continue}case"csi_parametric_deferred":{if(this.cursor>=D.length){this.pendingSinceMs=null,this.forceFlush=!1;return}if(J===VD){this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(pD(J)||J===58||J===59){this.state={tag:"csi_parametric",semicolons:this.state.semicolons,segments:this.state.segments,hasDigit:this.state.hasDigit,firstParamValue:this.state.firstParamValue};continue}if(Q1(this.state,J,this.protocolContext)){this.state={tag:"csi_parametric",semicolons:this.state.semicolons,segments:this.state.segments,hasDigit:this.state.hasDigit,firstParamValue:this.state.firstParamValue};continue}this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"csi_parametric_ignored":{if(this.cursor>=D.length){if(!this.forceFlush){this.markPending();return}this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(J===VD){this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(pD(J)){this.cursor+=1,this.state={tag:"csi_parametric_ignored",semicolons:this.state.semicolons,segments:this.state.segments,hasDigit:!0,firstParamValue:this.state.semicolons===0?(this.state.firstParamValue??0)*10+(J-48):this.state.firstParamValue};continue}if(J===59&&this.state.semicolons===0&&this.state.hasDigit){if(this.protocolContext.explicitWidthCprActive&&this.state.firstParamValue===1){this.state={tag:"csi"};continue}this.cursor+=1,this.state={tag:"csi_parametric_ignored",semicolons:1,segments:1,hasDigit:!1,firstParamValue:this.state.firstParamValue};continue}if(J===82&&this.state.semicolons===1&&this.state.hasDigit){let K=this.cursor+1;this.state={tag:"ground"},this.consumePrefix(K);continue}if(this.state.semicolons===0){this.state={tag:"csi"};continue}this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"csi_private_reply":{if(this.cursor>=D.length){if(!this.forceFlush){this.markPending();return}if(WX(this.protocolContext)){this.state={tag:"csi_private_reply_deferred",semicolons:this.state.semicolons,hasDigit:this.state.hasDigit,sawDollar:this.state.sawDollar},this.pendingSinceMs=null,this.forceFlush=!1;return}this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(J===VD){this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(pD(J)){this.cursor+=1,this.state={tag:"csi_private_reply",semicolons:this.state.semicolons,hasDigit:!0,sawDollar:this.state.sawDollar};continue}if(J===59){this.cursor+=1,this.state={tag:"csi_private_reply",semicolons:this.state.semicolons+1,hasDigit:!1,sawDollar:!1};continue}if(J===36&&this.state.hasDigit&&!this.state.sawDollar){this.cursor+=1,this.state={tag:"csi_private_reply",semicolons:this.state.semicolons,hasDigit:!0,sawDollar:!0};continue}if(J>=64&&J<=126){let K=this.cursor+1;this.emitOpaqueResponse("csi",D.subarray(this.unitStart,K)),this.state={tag:"ground"},this.consumePrefix(K);continue}this.state={tag:"csi"};continue}case"csi_private_reply_deferred":{if(this.cursor>=D.length){this.pendingSinceMs=null,this.forceFlush=!1;return}if(J===VD){this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(pD(J)||J===59||J===36){this.state={tag:"csi_private_reply",semicolons:this.state.semicolons,hasDigit:this.state.hasDigit,sawDollar:this.state.sawDollar};continue}if(Y1(this.state,J,this.protocolContext)){this.state={tag:"csi_private_reply",semicolons:this.state.semicolons,hasDigit:this.state.hasDigit,sawDollar:this.state.sawDollar};continue}this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"osc":{if(this.cursor>=D.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(this.state.sawEsc){if(J===92){let K=this.cursor+1;this.emitOpaqueResponse("osc",D.subarray(this.unitStart,K)),this.state={tag:"ground"},this.consumePrefix(K);continue}this.state={tag:"osc",sawEsc:!1};continue}if(J===u0){let K=this.cursor+1;this.emitOpaqueResponse("osc",D.subarray(this.unitStart,K)),this.state={tag:"ground"},this.consumePrefix(K);continue}if(J===VD){this.cursor+=1,this.state={tag:"osc",sawEsc:!0};continue}this.cursor+=1;continue}case"dcs":{if(this.cursor>=D.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(this.state.sawEsc){if(J===92){let K=this.cursor+1;this.emitOpaqueResponse("dcs",D.subarray(this.unitStart,K)),this.state={tag:"ground"},this.consumePrefix(K);continue}this.state={tag:"dcs",sawEsc:!1};continue}if(J===VD){this.cursor+=1,this.state={tag:"dcs",sawEsc:!0};continue}this.cursor+=1;continue}case"apc":{if(this.cursor>=D.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(this.state.sawEsc){if(J===92){let K=this.cursor+1;this.emitOpaqueResponse("apc",D.subarray(this.unitStart,K)),this.state={tag:"ground"},this.consumePrefix(K);continue}this.state={tag:"apc",sawEsc:!1};continue}if(J===VD){this.cursor+=1,this.state={tag:"apc",sawEsc:!0};continue}this.cursor+=1;continue}case"esc_less_mouse":{if(this.cursor>=D.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(J>=48&&J<=57||J===59){this.cursor+=1;continue}if(J===77||J===109){let K=this.cursor+1,Q=D.subarray(this.unitStart,K),X=GX(Q);if(rK(X))this.emitMouse(X,"sgr");else this.emitOpaqueResponse("unknown",Q);this.state={tag:"ground"},this.consumePrefix(K);continue}this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"esc_less_x10_mouse":{let K=this.unitStart+5;if(D.length<K){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",D.subarray(this.unitStart,D.length)),this.state={tag:"ground"},this.consumePrefix(D.length);continue}let Q=D.subarray(this.unitStart,K);this.emitMouse(GX(Q),"x10"),this.state={tag:"ground"},this.consumePrefix(K);continue}}}}emitKeyOrResponse(D,J){let K=$X(J,{useKittyKeyboard:this.useKittyKeyboard});if(K){this.events.push({type:"key",raw:K.raw,key:K});return}this.events.push({type:"response",protocol:D,sequence:J})}emitMouse(D,J){let K=this.mouseParser.parseMouseEvent(D);if(!K){this.emitOpaqueResponse("unknown",D);return}this.events.push({type:"mouse",raw:PX(D),encoding:J,event:K})}emitLegacyHighByte(D){let J=$X(BK.from([D]),{useKittyKeyboard:this.useKittyKeyboard});if(J){this.events.push({type:"key",raw:J.raw,key:J});return}this.events.push({type:"response",protocol:"unknown",sequence:String.fromCharCode(D)})}emitOpaqueResponse(D,J){this.events.push({type:"response",protocol:D,sequence:PX(J)})}consumePrefix(D){this.pending.consume(D),this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1}takePendingBytes(){let D=this.pending.take();return this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1,D}flushPendingOverflow(){if(this.pending.length===0)return;this.emitOpaqueResponse("unknown",this.pending.view()),this.pending.clear(),this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1,this.state={tag:"ground"}}markPending(){this.pendingSinceMs=this.clock.now()}consumePasteBytes(D){let J=this.paste,K=Z1(J.tail,D),Q=kX(K,oK);if(Q!==-1)return this.pushPasteBytes(K.subarray(0,Q)),this.events.push({type:"paste",bytes:$1(J.parts,J.totalLength)}),this.paste=null,K.subarray(Q+oK.length);let X=Math.min(oK.length-1,K.length),Y=K.length-X;if(Y>0)this.pushPasteBytes(K.subarray(0,Y));return J.tail=Uint8Array.from(K.subarray(Y)),zQ}pushPasteBytes(D){if(D.length===0)return;this.paste.parts.push(Uint8Array.from(D)),this.paste.totalLength+=D.length}reconcileDeferredStateWithProtocolContext(){switch(this.state.tag){case"csi_parametric_deferred":if(!OX(this.state,this.protocolContext))this.emitOpaqueResponse("unknown",this.pending.view().subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);return;case"csi_private_reply_deferred":if(!WX(this.protocolContext))this.emitOpaqueResponse("unknown",this.pending.view().subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);return}}reconcileTimeoutState(){if(!this.armTimeouts)return;if(this.paste||this.pendingSinceMs===null||this.pending.length===0){this.clearTimeout();return}this.clearTimeout(),this.timeoutId=this.clock.setTimeout(()=>{if(this.timeoutId=null,this.destroyed)return;try{this.tryForceFlush(),this.onTimeoutFlush?.()}catch(D){console.error("stdin parser timeout flush failed",D)}},this.timeoutMs)}clearTimeout(){if(!this.timeoutId)return;this.clock.clearTimeout(this.timeoutId),this.timeoutId=null}resetState(){this.pending.reset(OK),this.events.length=0,this.pendingSinceMs=null,this.forceFlush=!1,this.justFlushedEsc=!1,this.state={tag:"ground"},this.cursor=0,this.unitStart=0,this.paste=null,this.mouseParser.reset()}}AD({name:"OTUI_TS_STYLE_WARN",default:!1,description:"Enable warnings for missing syntax styles"});function BX(D){return D.split(".").length}function A1(D,J){if(J?.isInjection)return!1;return D==="markup.raw.block"}function fY(D,J,K,Q){let X=[],Y=K.getStyle("default"),Z=Q?.enabled??!0,_=Q?.baseHighlight?K.getStyle(Q.baseHighlight):void 0,L=[],N=[];for(let O=0;O<J.length;O++){let[U,k,,F]=J[O];if(U===k)continue;if(F?.containsInjection)L.push({start:U,end:k});N.push({offset:U,type:"start",highlightIndex:O}),N.push({offset:k,type:"end",highlightIndex:O})}N.sort((O,U)=>{if(O.offset!==U.offset)return O.offset-U.offset;if(O.type==="end"&&U.type==="start")return-1;if(O.type==="start"&&U.type==="end")return 1;return 0});let V=new Set,G=0;for(let O=0;O<N.length;O++){let U=N[O];if(G<U.offset&&V.size>0){let k=D.slice(G,U.offset),F=[];for(let W of V){let[,,f,T]=J[W];F.push({group:f,meta:T,index:W})}let P=Z?F.find((W)=>W.meta?.conceal!==void 0||W.group==="conceal"||W.group.startsWith("conceal.")):void 0;if(P){let W="";if(P.meta?.conceal!==void 0)W=P.meta.conceal;else if(P.group==="conceal.with.space")W=" ";if(W)X.push({__isChunk:!0,text:W,fg:Y?.fg,bg:Y?.bg,attributes:Y?_J({bold:Y.bold,italic:Y.italic,underline:Y.underline,dim:Y.dim}):0})}else{let W=L.some((y)=>G>=y.start&&G<y.end),T=F.filter((y)=>{if(W&&A1(y.group,y.meta))return!1;return!0}).sort((y,B)=>{let I=BX(y.group),b=BX(B.group);if(I!==b)return I-b;return y.index-B.index}),g=_?{..._}:{};for(let{group:y}of T){let B=K.getStyle(y);if(!B&&y.includes(".")){let I=y.split(".")[0];B=K.getStyle(I)}if(B){if(B.fg!==void 0)g.fg=B.fg;if(B.bg!==void 0)g.bg=B.bg;if(B.bold!==void 0)g.bold=B.bold;if(B.italic!==void 0)g.italic=B.italic;if(B.underline!==void 0)g.underline=B.underline;if(B.dim!==void 0)g.dim=B.dim}else if(y.includes(".")){let I=y.split(".")[0];if(XD.OTUI_TS_STYLE_WARN)console.warn(`Syntax style not found for group "${y}" or base scope "${I}", using default style`)}else if(XD.OTUI_TS_STYLE_WARN)console.warn(`Syntax style not found for group "${y}", using default style`)}let h=Object.keys(g).length>0?g:Y;X.push({__isChunk:!0,text:k,fg:h?.fg,bg:h?.bg,attributes:h?_J({bold:h.bold,italic:h.italic,underline:h.underline,dim:h.dim}):0})}}else if(G<U.offset){let k=D.slice(G,U.offset),F=_??Y;X.push({__isChunk:!0,text:k,fg:F?.fg,bg:F?.bg,attributes:F?_J({bold:F.bold,italic:F.italic,underline:F.underline,dim:F.dim}):0})}if(U.type==="start")V.add(U.highlightIndex);else if(V.delete(U.highlightIndex),Z){let[,,k,F]=J[U.highlightIndex];if(F?.concealLines!==void 0){if(U.offset<D.length&&D[U.offset]===`
|
|
34
|
+
`){G=U.offset+1;continue}}if(F?.conceal!==void 0){if(F.conceal===" "){if(U.offset<D.length&&D[U.offset]===" "){G=U.offset+1;continue}}else if(F.conceal===""&&k==="conceal"&&!F.isInjection){if(U.offset<D.length&&D[U.offset]===" "){G=U.offset+1;continue}}}}G=U.offset}if(G<D.length){let O=D.slice(G),U=_??Y;X.push({__isChunk:!0,text:O,fg:U?.fg,bg:U?.bg,attributes:U?_J({bold:U.bold,italic:U.italic,underline:U.underline,dim:U.dim}):0})}return X}async function Q7(D,J,K,Q,X){let Y=await Q.highlightOnce(D,J);if(Y.highlights&&Y.highlights.length>0||X?.baseHighlight){let Z=fY(D,Y.highlights??[],K,{enabled:X?.conceal?.enabled??!0,baseHighlight:X?.baseHighlight});return new tD(Z)}else{let Z=K.mergeStyles("default"),_=[{__isChunk:!0,text:D,fg:Z.fg,bg:Z.bg,attributes:Z.attributes}];return new tD(_)}}var FJ=new Map;class qY{scopeId;constructor(D){if(this.scopeId=D,!FJ.has(this.scopeId))FJ.set(this.scopeId,new Map)}debounce(D,J,K){let Q=FJ.get(this.scopeId);return new Promise((X,Y)=>{if(Q.has(D))clearTimeout(Q.get(D));let Z=setTimeout(()=>{try{X(K())}catch(_){Y(_)}Q.delete(D)},J);Q.set(D,Z)})}clearDebounce(D){let J=FJ.get(this.scopeId);if(J&&J.has(D))clearTimeout(J.get(D)),J.delete(D)}clear(){let D=FJ.get(this.scopeId);if(D)D.forEach((J)=>clearTimeout(J)),D.clear()}}function N1(D){return new qY(D)}function V1(D){let J=FJ.get(D);if(J)J.forEach((K)=>clearTimeout(K)),J.clear()}class xY{processor;queue=[];processing=!1;autoProcess=!0;constructor(D,J=!0){this.processor=D,this.autoProcess=J}enqueue(D){if(this.queue.push(D),!this.processing&&this.autoProcess)this.processQueue()}processQueue(){if(this.queue.length===0)return;this.processing=!0,queueMicrotask(async()=>{if(this.queue.length===0){this.processing=!1;return}let D=this.queue.shift();try{await this.processor(D)}catch(J){console.error("Error processing queue item:",J)}if(this.queue.length>0)this.processQueue();else this.processing=!1})}clear(){this.queue=[]}isProcessing(){return this.processing}size(){return this.queue.length}}function O1({onlyFirst:D=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",D?void 0:"g")}var W1=O1();function SY(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(W1,"")}function G1(D){return D===161||D===164||D===167||D===168||D===170||D===173||D===174||D>=176&&D<=180||D>=182&&D<=186||D>=188&&D<=191||D===198||D===208||D===215||D===216||D>=222&&D<=225||D===230||D>=232&&D<=234||D===236||D===237||D===240||D===242||D===243||D>=247&&D<=250||D===252||D===254||D===257||D===273||D===275||D===283||D===294||D===295||D===299||D>=305&&D<=307||D===312||D>=319&&D<=322||D===324||D>=328&&D<=331||D===333||D===338||D===339||D===358||D===359||D===363||D===462||D===464||D===466||D===468||D===470||D===472||D===474||D===476||D===593||D===609||D===708||D===711||D>=713&&D<=715||D===717||D===720||D>=728&&D<=731||D===733||D===735||D>=768&&D<=879||D>=913&&D<=929||D>=931&&D<=937||D>=945&&D<=961||D>=963&&D<=969||D===1025||D>=1040&&D<=1103||D===1105||D===8208||D>=8211&&D<=8214||D===8216||D===8217||D===8220||D===8221||D>=8224&&D<=8226||D>=8228&&D<=8231||D===8240||D===8242||D===8243||D===8245||D===8251||D===8254||D===8308||D===8319||D>=8321&&D<=8324||D===8364||D===8451||D===8453||D===8457||D===8467||D===8470||D===8481||D===8482||D===8486||D===8491||D===8531||D===8532||D>=8539&&D<=8542||D>=8544&&D<=8555||D>=8560&&D<=8569||D===8585||D>=8592&&D<=8601||D===8632||D===8633||D===8658||D===8660||D===8679||D===8704||D===8706||D===8707||D===8711||D===8712||D===8715||D===8719||D===8721||D===8725||D===8730||D>=8733&&D<=8736||D===8739||D===8741||D>=8743&&D<=8748||D===8750||D>=8756&&D<=8759||D===8764||D===8765||D===8776||D===8780||D===8786||D===8800||D===8801||D>=8804&&D<=8807||D===8810||D===8811||D===8814||D===8815||D===8834||D===8835||D===8838||D===8839||D===8853||D===8857||D===8869||D===8895||D===8978||D>=9312&&D<=9449||D>=9451&&D<=9547||D>=9552&&D<=9587||D>=9600&&D<=9615||D>=9618&&D<=9621||D===9632||D===9633||D>=9635&&D<=9641||D===9650||D===9651||D===9654||D===9655||D===9660||D===9661||D===9664||D===9665||D>=9670&&D<=9672||D===9675||D>=9678&&D<=9681||D>=9698&&D<=9701||D===9711||D===9733||D===9734||D===9737||D===9742||D===9743||D===9756||D===9758||D===9792||D===9794||D===9824||D===9825||D>=9827&&D<=9829||D>=9831&&D<=9834||D===9836||D===9837||D===9839||D===9886||D===9887||D===9919||D>=9926&&D<=9933||D>=9935&&D<=9939||D>=9941&&D<=9953||D===9955||D===9960||D===9961||D>=9963&&D<=9969||D===9972||D>=9974&&D<=9977||D===9979||D===9980||D===9982||D===9983||D===10045||D>=10102&&D<=10111||D>=11094&&D<=11097||D>=12872&&D<=12879||D>=57344&&D<=63743||D>=65024&&D<=65039||D===65533||D>=127232&&D<=127242||D>=127248&&D<=127277||D>=127280&&D<=127337||D>=127344&&D<=127373||D===127375||D===127376||D>=127387&&D<=127404||D>=917760&&D<=917999||D>=983040&&D<=1048573||D>=1048576&&D<=1114109}function k1(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function P1(D){return D>=4352&&D<=4447||D===8986||D===8987||D===9001||D===9002||D>=9193&&D<=9196||D===9200||D===9203||D===9725||D===9726||D===9748||D===9749||D>=9776&&D<=9783||D>=9800&&D<=9811||D===9855||D>=9866&&D<=9871||D===9875||D===9889||D===9898||D===9899||D===9917||D===9918||D===9924||D===9925||D===9934||D===9940||D===9962||D===9970||D===9971||D===9973||D===9978||D===9981||D===9989||D===9994||D===9995||D===10024||D===10060||D===10062||D>=10067&&D<=10069||D===10071||D>=10133&&D<=10135||D===10160||D===10175||D===11035||D===11036||D===11088||D===11093||D>=11904&&D<=11929||D>=11931&&D<=12019||D>=12032&&D<=12245||D>=12272&&D<=12287||D>=12289&&D<=12350||D>=12353&&D<=12438||D>=12441&&D<=12543||D>=12549&&D<=12591||D>=12593&&D<=12686||D>=12688&&D<=12773||D>=12783&&D<=12830||D>=12832&&D<=12871||D>=12880&&D<=42124||D>=42128&&D<=42182||D>=43360&&D<=43388||D>=44032&&D<=55203||D>=63744&&D<=64255||D>=65040&&D<=65049||D>=65072&&D<=65106||D>=65108&&D<=65126||D>=65128&&D<=65131||D>=94176&&D<=94180||D>=94192&&D<=94198||D>=94208&&D<=101589||D>=101631&&D<=101662||D>=101760&&D<=101874||D>=110576&&D<=110579||D>=110581&&D<=110587||D===110589||D===110590||D>=110592&&D<=110882||D===110898||D>=110928&&D<=110930||D===110933||D>=110948&&D<=110951||D>=110960&&D<=111355||D>=119552&&D<=119638||D>=119648&&D<=119670||D===126980||D===127183||D===127374||D>=127377&&D<=127386||D>=127488&&D<=127490||D>=127504&&D<=127547||D>=127552&&D<=127560||D===127568||D===127569||D>=127584&&D<=127589||D>=127744&&D<=127776||D>=127789&&D<=127797||D>=127799&&D<=127868||D>=127870&&D<=127891||D>=127904&&D<=127946||D>=127951&&D<=127955||D>=127968&&D<=127984||D===127988||D>=127992&&D<=128062||D===128064||D>=128066&&D<=128252||D>=128255&&D<=128317||D>=128331&&D<=128334||D>=128336&&D<=128359||D===128378||D===128405||D===128406||D===128420||D>=128507&&D<=128591||D>=128640&&D<=128709||D===128716||D>=128720&&D<=128722||D>=128725&&D<=128728||D>=128732&&D<=128735||D===128747||D===128748||D>=128756&&D<=128764||D>=128992&&D<=129003||D===129008||D>=129292&&D<=129338||D>=129340&&D<=129349||D>=129351&&D<=129535||D>=129648&&D<=129660||D>=129664&&D<=129674||D>=129678&&D<=129734||D===129736||D>=129741&&D<=129756||D>=129759&&D<=129770||D>=129775&&D<=129784||D>=131072&&D<=196605||D>=196608&&D<=262141}function B1(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function C1(D,{ambiguousAsWide:J=!1}={}){if(B1(D),k1(D)||P1(D)||J&&G1(D))return 2;return 1}var F1=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g},I1=new Intl.Segmenter,w1=/^\p{Default_Ignorable_Code_Point}$/u;function z1(D,J={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:K=!0,countAnsiEscapeCodes:Q=!1}=J;if(!Q)D=SY(D);if(D.length===0)return 0;let X=0,Y={ambiguousAsWide:!K};for(let{segment:Z}of I1.segment(D)){let _=Z.codePointAt(0);if(_<=31||_>=127&&_<=159)continue;if(_>=8203&&_<=8207||_===65279)continue;if(_>=768&&_<=879||_>=6832&&_<=6911||_>=7616&&_<=7679||_>=8400&&_<=8447||_>=65056&&_<=65071)continue;if(_>=55296&&_<=57343)continue;if(_>=65024&&_<=65039)continue;if(w1.test(Z))continue;if(F1().test(Z)){X+=2;continue}X+=C1(_,Y)}return X}var f1=new TextEncoder,lJ=globalThis.Bun,q1=lJ?.sleep??S1,CX=lJ?.stringWidth??z1,x1=lJ?.stripANSI??SY,T1=lJ?.write??g1;async function yD(D,J,K){if(!lJ){let X=typeof J==="function"?J():J;return HK(X instanceof URL?X:new URL(X,K))}let Q=(await D()).default;if(Q.startsWith("file:"))return HK(Q);if(U1(Q))return Q;return j1(TY(HK(K)),Q)}function S1(D){let J=D instanceof Date?D.getTime()-Date.now():D;return new Promise((K)=>setTimeout(K,J))}async function g1(D,J,K){let Q=D instanceof URL?HK(D):D;if(K?.createPath)await M1(TY(Q),{recursive:!0});let X=typeof J==="string"?f1.encode(J):new Uint8Array(J.buffer,J.byteOffset,J.byteLength);return await H1(Q,X,{mode:K?.mode}),X.byteLength}var nK;function y1(){if(!nK)nK=R1();return nK}async function R1(){let D=await yD(()=>import("./chunk-kyhwvbvq.js",{with:{type:"file"}}),"./assets/javascript/highlights.scm",import.meta.url),J=await yD(()=>import("./chunk-xy0txg0n.js",{with:{type:"file"}}),"./assets/javascript/tree-sitter-javascript.wasm",import.meta.url),K=await yD(()=>import("./chunk-emfc800a.js",{with:{type:"file"}}),"./assets/typescript/highlights.scm",import.meta.url),Q=await yD(()=>import("./chunk-mgn5pejx.js",{with:{type:"file"}}),"./assets/typescript/tree-sitter-typescript.wasm",import.meta.url),X=await yD(()=>import("./chunk-ftz8cqfq.js",{with:{type:"file"}}),"./assets/markdown/highlights.scm",import.meta.url),Y=await yD(()=>import("./chunk-wxkyv5gj.js",{with:{type:"file"}}),"./assets/markdown/tree-sitter-markdown.wasm",import.meta.url),Z=await yD(()=>import("./chunk-egkp6tct.js",{with:{type:"file"}}),"./assets/markdown/injections.scm",import.meta.url),_=await yD(()=>import("./chunk-x6zjq78z.js",{with:{type:"file"}}),"./assets/markdown_inline/highlights.scm",import.meta.url),L=await yD(()=>import("./chunk-qx6r187q.js",{with:{type:"file"}}),"./assets/markdown_inline/tree-sitter-markdown_inline.wasm",import.meta.url),N=await yD(()=>import("./chunk-33vwwxjk.js",{with:{type:"file"}}),"./assets/zig/highlights.scm",import.meta.url),V=await yD(()=>import("./chunk-526nbm9e.js",{with:{type:"file"}}),"./assets/zig/tree-sitter-zig.wasm",import.meta.url);return[{filetype:"javascript",aliases:["javascriptreact"],queries:{highlights:[D]},wasm:J},{filetype:"typescript",aliases:["typescriptreact"],queries:{highlights:[K]},wasm:Q},{filetype:"markdown",queries:{highlights:[X],injections:[Z]},wasm:Y,injectionMapping:{nodeTypes:{inline:"markdown_inline",pipe_table_cell:"markdown_inline"},infoStringMap:{javascript:"javascript",js:"javascript",jsx:"javascriptreact",javascriptreact:"javascriptreact",typescript:"typescript",ts:"typescript",tsx:"typescriptreact",typescriptreact:"typescriptreact",markdown:"markdown",md:"markdown"}}},{filetype:"markdown_inline",queries:{highlights:[_]},wasm:L},{filetype:"zig",queries:{highlights:[N]},wasm:V}]}function gY(D){return D.includes("$bunfs")||/^B:[\\/]~BUN/i.test(D)}function v1(){return process.platform==="win32"?"B:\\~BUN\\root":"/$bunfs/root"}function d1(D){return c1(v1(),b1(D))}var m1="OpenTUI tree-sitter workers are not available for this runtime yet.";class yY{constructor(){throw Error(m1)}}var u1=globalThis.Worker??yY;AD({name:"OTUI_TREE_SITTER_WORKER_PATH",description:"Path to the TreeSitter worker entry script",type:"string",default:""});var WK=[];function N7(D){for(let J of D)WK=[...WK.filter((K)=>K.filetype!==J.filetype),J]}var i1=(D)=>D.startsWith("http://")||D.startsWith("https://");class RY extends L1{initialized=!1;worker;buffers=new Map;initializePromise;initializeResolvers;messageCallbacks=new Map;messageIdCounter=0;editQueues=new Map;debouncer;options;constructor(D){super();this.options=D,this.debouncer=N1("tree-sitter-client"),this.startWorker()}emitError(D,J){if(this.listenerCount("error")>0)this.emit("error",D,J)}emitWarning(D,J){if(this.listenerCount("warning")>0)this.emit("warning",D,J)}startWorker(){if(this.worker)return;let D=this.resolveWorkerPath();this.worker=new u1(D),this.worker.onmessage=this.handleWorkerMessage.bind(this),this.worker.onerror=(J)=>{if(console.error("TreeSitter worker error:",J.message),this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(Error(`Worker error: ${J.message}`)),this.initializeResolvers=void 0;this.emitError(`Worker error: ${J.message}`)}}resolveWorkerPath(){if(XD.OTUI_TREE_SITTER_WORKER_PATH)return XD.OTUI_TREE_SITTER_WORKER_PATH;return""}stopWorker(){if(!this.worker)return;this.worker.terminate(),this.worker=void 0}handleReset(){return this.buffers.clear(),this.stopWorker(),this.startWorker(),this.initialized=!1,this.initializePromise=void 0,this.initializeResolvers=void 0,this.initialize()}async initialize(){if(this.initializePromise)return this.initializePromise;return this.initializePromise=this.initializeClient(),this.initializePromise}async initializeClient(){await new Promise((D,J)=>{let K=this.options.initTimeout??1e4,Q=setTimeout(()=>{let X=Error("Worker initialization timed out");console.error("TreeSitter client:",X.message),this.initializeResolvers=void 0,J(X)},K);this.initializeResolvers={resolve:D,reject:J,timeoutId:Q},this.worker?.postMessage({type:"INIT",dataPath:this.options.dataPath})}),await this.registerDefaultParsers(),this.initialized=!0}async registerDefaultParsers(){let D=await y1(),J=new Set(WK.map((K)=>K.filetype));for(let K of[...D.filter((Q)=>!J.has(Q.filetype)),...WK])this.addFiletypeParser(K)}resolvePath(D){if(i1(D))return D;if(gY(D))return d1(p1(D).base);if(!h1(D))return FX(D);return D}addFiletypeParser(D){let J={...D,aliases:D.aliases?[...new Set(D.aliases.filter((K)=>K!==D.filetype))]:void 0,wasm:this.resolvePath(D.wasm),queries:{highlights:D.queries.highlights.map((K)=>this.resolvePath(K)),injections:D.queries.injections?.map((K)=>this.resolvePath(K))}};this.worker?.postMessage({type:"ADD_FILETYPE_PARSER",filetypeParser:J})}async getPerformance(){let D=`performance_${this.messageIdCounter++}`;return new Promise((J)=>{this.messageCallbacks.set(D,J),this.worker?.postMessage({type:"GET_PERFORMANCE",messageId:D})})}async highlightOnce(D,J){if(!this.initialized)try{await this.initialize()}catch(Q){return{error:"Could not highlight because of initialization error"}}let K=`oneshot_${this.messageIdCounter++}`;return new Promise((Q)=>{this.messageCallbacks.set(K,Q),this.worker?.postMessage({type:"ONESHOT_HIGHLIGHT",content:D,filetype:J,messageId:K})})}handleWorkerMessage(D){let{type:J,bufferId:K,error:Q,highlights:X,warning:Y,messageId:Z,hasParser:_,performance:L,version:N}=D.data;if(J==="HIGHLIGHT_RESPONSE"){let V=this.buffers.get(K);if(!V||!V.hasParser)return;if(V.version!==N){this.resetBuffer(K,V.version,V.content);return}this.emit("highlights:response",K,N,X)}if(J==="INIT_RESPONSE"){if(this.initializeResolvers){if(clearTimeout(this.initializeResolvers.timeoutId),Q)console.error("TreeSitter client initialization failed:",Q),this.initializeResolvers.reject(Error(Q));else this.initializeResolvers.resolve();this.initializeResolvers=void 0;return}}if(J==="PARSER_INIT_RESPONSE"){let V=this.messageCallbacks.get(Z);if(V)this.messageCallbacks.delete(Z),V({hasParser:_,warning:Y,error:Q});return}if(J==="PRELOAD_PARSER_RESPONSE"){let V=this.messageCallbacks.get(Z);if(V)this.messageCallbacks.delete(Z),V({hasParser:_});return}if(J==="BUFFER_DISPOSED"){let V=this.messageCallbacks.get(`dispose_${K}`);if(V)this.messageCallbacks.delete(`dispose_${K}`),V(!0);this.emit("buffer:disposed",K);return}if(J==="PERFORMANCE_RESPONSE"){let V=this.messageCallbacks.get(Z);if(V)this.messageCallbacks.delete(Z),V(L);return}if(J==="ONESHOT_HIGHLIGHT_RESPONSE"){let V=this.messageCallbacks.get(Z);if(V)this.messageCallbacks.delete(Z),V({highlights:X,warning:Y,error:Q});return}if(J==="UPDATE_DATA_PATH_RESPONSE"){let V=this.messageCallbacks.get(Z);if(V)this.messageCallbacks.delete(Z),V({error:Q});return}if(J==="CLEAR_CACHE_RESPONSE"){let V=this.messageCallbacks.get(Z);if(V)this.messageCallbacks.delete(Z),V({error:Q});return}if(Y){this.emitWarning(Y,K);return}if(Q){this.emitError(Q,K);return}if(J==="WORKER_LOG"){let{logType:V,data:G}=D.data,O=G.join(" ");this.emit("worker:log",V,O);return}}async preloadParser(D){let J=`has_parser_${this.messageIdCounter++}`;return(await new Promise((Q)=>{this.messageCallbacks.set(J,Q),this.worker?.postMessage({type:"PRELOAD_PARSER",filetype:D,messageId:J})})).hasParser}async createBuffer(D,J,K,Q=1,X=!0){if(!this.initialized){if(!X)return this.emitError("Could not create buffer because client is not initialized"),!1;try{await this.initialize()}catch(L){return this.emitError("Could not create buffer because of initialization error"),!1}}if(this.buffers.has(D))throw Error(`Buffer with id ${D} already exists`);this.buffers.set(D,{id:D,content:J,filetype:K,version:Q,hasParser:!1});let Y=`init_${this.messageIdCounter++}`,Z=await new Promise((L)=>{this.messageCallbacks.set(Y,L),this.worker?.postMessage({type:"INITIALIZE_PARSER",bufferId:D,version:Q,content:J,filetype:K,messageId:Y})});if(!Z.hasParser){if(this.emit("buffer:initialized",D,!1),K!=="plaintext")this.emitWarning(Z.warning||Z.error||"Buffer has no parser",D);return!1}let _={id:D,content:J,filetype:K,version:Q,hasParser:!0};return this.buffers.set(D,_),this.emit("buffer:initialized",D,!0),!0}async updateBuffer(D,J,K,Q){if(!this.initialized)return;let X=this.buffers.get(D);if(!X||!X.hasParser)return;if(this.buffers.set(D,{...X,content:K,version:Q}),!this.editQueues.has(D))this.editQueues.set(D,new xY((Z)=>this.processEdit(D,Z.edits,Z.newContent,Z.version,Z.isReset)));this.editQueues.get(D).enqueue({edits:J,newContent:K,version:Q})}async processEdit(D,J,K,Q,X=!1){this.worker?.postMessage({type:X?"RESET_BUFFER":"HANDLE_EDITS",bufferId:D,version:Q,content:K,edits:J})}async removeBuffer(D){if(!this.initialized)return;if(this.buffers.delete(D),this.editQueues.has(D))this.editQueues.get(D)?.clear(),this.editQueues.delete(D);if(this.worker)await new Promise((J)=>{let K=`dispose_${D}`;this.messageCallbacks.set(K,J);try{this.worker.postMessage({type:"DISPOSE_BUFFER",bufferId:D})}catch(Q){console.error("Error disposing buffer",Q),J(!1)}setTimeout(()=>{if(this.messageCallbacks.has(K))this.messageCallbacks.delete(K),console.warn({bufferId:D},"Timed out waiting for buffer to be disposed"),J(!1)},3000)});this.debouncer.clearDebounce(`reset-${D}`)}async destroy(){if(this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(Error("Client destroyed during initialization")),this.initializeResolvers=void 0;for(let[D,J]of this.messageCallbacks.entries())if(typeof J==="function")try{J({error:"Client destroyed"})}catch(K){}this.messageCallbacks.clear(),V1("tree-sitter-client"),this.debouncer.clear(),this.editQueues.clear(),this.buffers.clear(),this.stopWorker(),this.initialized=!1,this.initializePromise=void 0}async resetBuffer(D,J,K){if(!this.initialized)return;let Q=this.buffers.get(D);if(!Q||!Q.hasParser){this.emitError("Cannot reset buffer with no parser",D);return}this.buffers.set(D,{...Q,content:K,version:J}),this.debouncer.debounce(`reset-${D}`,10,()=>this.processEdit(D,[],K,J,!0))}getBuffer(D){return this.buffers.get(D)}getAllBuffers(){return Array.from(this.buffers.values())}isInitialized(){return this.initialized}async setDataPath(D){if(this.options.dataPath===D)return;if(this.options.dataPath=D,this.initialized&&this.worker){let J=`update_datapath_${this.messageIdCounter++}`;return new Promise((K,Q)=>{this.messageCallbacks.set(J,(X)=>{if(X.error)Q(Error(X.error));else K()}),this.worker.postMessage({type:"UPDATE_DATA_PATH",dataPath:D,messageId:J})})}}async clearCache(){if(!this.initialized||!this.worker)throw Error("Cannot clear cache: client is not initialized");let D=`clear_cache_${this.messageIdCounter++}`;return new Promise((J,K)=>{this.messageCallbacks.set(D,(Q)=>{if(Q.error)K(Error(Q.error));else J()}),this.worker.postMessage({type:"CLEAR_CACHE",messageId:D})})}}function a1(D){if(!D||typeof D!=="string")return!1;if(D.trim().length===0)return!1;if(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"].includes(D.toUpperCase()))return!1;if(/[<>:"|?*/\\\x00-\x1f]/.test(D))return!1;if(D.endsWith(".")||D.endsWith(" "))return!1;if(D==="."||D==="..")return!1;return!0}AD({name:"XDG_CONFIG_HOME",description:"Base directory for user-specific configuration files",type:"string",default:""});AD({name:"XDG_DATA_HOME",description:"Base directory for user-specific data files",type:"string",default:""});class hY extends l1{_appName;_globalConfigPath;_globalConfigFile;_localConfigFile;_globalDataPath;constructor(){super();this._appName="opentui"}get appName(){return this._appName}set appName(D){if(!a1(D))throw Error(`Invalid app name "${D}": must be a valid directory name`);if(this._appName!==D)this._appName=D,this._globalConfigPath=void 0,this._globalConfigFile=void 0,this._localConfigFile=void 0,this._globalDataPath=void 0,this.emit("paths:changed",this.toObject())}get globalConfigPath(){if(this._globalConfigPath===void 0){let D=IX.homedir(),K=XD.XDG_CONFIG_HOME||KJ.join(D,".config");this._globalConfigPath=KJ.join(K,this._appName)}return this._globalConfigPath}get globalConfigFile(){if(this._globalConfigFile===void 0)this._globalConfigFile=KJ.join(this.globalConfigPath,"init.ts");return this._globalConfigFile}get localConfigFile(){if(this._localConfigFile===void 0)this._localConfigFile=KJ.join(process.cwd(),`.${this._appName}.ts`);return this._localConfigFile}get globalDataPath(){if(this._globalDataPath===void 0){let D=IX.homedir(),K=XD.XDG_DATA_HOME||KJ.join(D,".local/share");this._globalDataPath=KJ.join(K,this._appName)}return this._globalDataPath}toObject(){return{globalConfigPath:this.globalConfigPath,globalConfigFile:this.globalConfigFile,localConfigFile:this.localConfigFile,globalDataPath:this.globalDataPath}}}function s1(){return OJ("data-paths-opentui",()=>new hY)}var o1=new Map([["astro","astro"],["bash","bash"],["c","c"],["cc","cpp"],["cjs","javascript"],["clj","clojure"],["cljs","clojure"],["cljc","clojure"],["cpp","cpp"],["cxx","cpp"],["cs","csharp"],["cts","typescript"],["ctsx","typescriptreact"],["dart","dart"],["diff","diff"],["edn","clojure"],["go","go"],["gemspec","ruby"],["groovy","groovy"],["h","c"],["handlebars","handlebars"],["hbs","handlebars"],["hpp","cpp"],["hxx","cpp"],["h++","cpp"],["hh","cpp"],["hrl","erlang"],["hs","haskell"],["htm","html"],["html","html"],["ini","ini"],["js","javascript"],["jsx","javascriptreact"],["jl","julia"],["json","json"],["ksh","bash"],["kt","kotlin"],["kts","kotlin"],["latex","latex"],["less","less"],["lua","lua"],["markdown","markdown"],["md","markdown"],["mdown","markdown"],["mkd","markdown"],["mjs","javascript"],["ml","ocaml"],["mli","ocaml"],["mts","typescript"],["mtsx","typescriptreact"],["patch","diff"],["php","php"],["pl","perl"],["pm","perl"],["ps1","powershell"],["psm1","powershell"],["py","python"],["pyi","python"],["r","r"],["rb","ruby"],["rake","ruby"],["rs","rust"],["ru","ruby"],["sass","sass"],["sc","scala"],["scala","scala"],["scss","scss"],["sh","bash"],["sql","sql"],["svelte","svelte"],["swift","swift"],["ts","typescript"],["tsx","typescriptreact"],["tex","latex"],["toml","toml"],["vue","vue"],["vim","vim"],["xml","xml"],["xsl","xsl"],["yaml","yaml"],["yml","yaml"],["zig","zig"],["zon","zig"],["zsh","bash"],["c++","cpp"],["erl","erlang"],["exs","elixir"],["ex","elixir"],["elm","elm"],["fsharp","fsharp"],["fs","fsharp"],["fsx","fsharp"],["fsscript","fsharp"],["fsi","fsharp"],["java","java"],["css","css"]]),MQ=new Map([[".bash_aliases","bash"],[".bash_logout","bash"],[".bash_profile","bash"],[".bashrc","bash"],[".kshrc","bash"],[".profile","bash"],[".vimrc","vim"],[".zlogin","bash"],[".zlogout","bash"],[".zprofile","bash"],[".zshenv","bash"],[".zshrc","bash"],["appfile","ruby"],["berksfile","ruby"],["brewfile","ruby"],["cheffile","ruby"],["containerfile","dockerfile"],["dockerfile","dockerfile"],["fastfile","ruby"],["gemfile","ruby"],["gnumakefile","make"],["gvimrc","vim"],["guardfile","ruby"],["makefile","make"],["podfile","ruby"],["rakefile","ruby"],["thorfile","ruby"],["vagrantfile","ruby"]]);function pY(D){return D.trim().replace(/^\./,"").toLowerCase()||void 0}function r1(D){let J=D.trim().replaceAll("\\","/");if(!J)return;return wX.posix.basename(J).toLowerCase()||void 0}function EY(D){let J=pY(D);if(!J)return;return o1.get(J)}function n1(D){if(typeof D!=="string")return;let J=r1(D);if(!J)return;let K=MQ.get(J);if(K)return K;let Q=J.lastIndexOf(".");if(Q===-1||Q===J.length-1)return;let X=J.substring(Q+1);return EY(X)}function j7(D){if(typeof D!=="string")return;let J=D.trim().split(/\s+/,1)[0],K=MQ.get(J.toLowerCase());if(K)return K;let Q=pY(J);if(!Q)return;return MQ.get(Q)??n1(Q)??EY(Q)??Q}function bY(){let D=s1(),J={dataPath:D.globalDataPath};return OJ("tree-sitter-client",()=>{let K=new RY(J);return D.on("paths:changed",(Q)=>{K.setDataPath(Q.globalDataPath)}),K})}class cY{undoStack=[];redoStack=[];saveSnapshot(D,J){let K={extmarks:new Map(Array.from(D.entries()).map(([Q,X])=>[Q,{...X}])),nextId:J};this.undoStack.push(K),this.redoStack=[]}undo(){if(this.undoStack.length===0)return null;return this.undoStack.pop()}redo(){if(this.redoStack.length===0)return null;return this.redoStack.pop()}pushRedo(D){this.redoStack.push(D)}pushUndo(D){this.undoStack.push(D)}clear(){this.undoStack=[],this.redoStack=[]}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}}class vY{editBuffer;editorView;extmarks=new Map;extmarksByTypeId=new Map;metadata=new Map;nextId=1;destroyed=!1;history=new cY;typeNameToId=new Map;typeIdToName=new Map;nextTypeId=1;originalMoveCursorLeft;originalMoveCursorRight;originalSetCursorByOffset;originalMoveUpVisual;originalMoveDownVisual;originalDeleteCharBackward;originalDeleteChar;originalInsertText;originalInsertChar;originalDeleteRange;originalSetText;originalReplaceText;originalClear;originalNewLine;originalDeleteLine;originalEditorViewDeleteSelectedText;originalUndo;originalRedo;constructor(D,J){this.editBuffer=D,this.editorView=J,this.originalMoveCursorLeft=D.moveCursorLeft.bind(D),this.originalMoveCursorRight=D.moveCursorRight.bind(D),this.originalSetCursorByOffset=D.setCursorByOffset.bind(D),this.originalMoveUpVisual=J.moveUpVisual.bind(J),this.originalMoveDownVisual=J.moveDownVisual.bind(J),this.originalDeleteCharBackward=D.deleteCharBackward.bind(D),this.originalDeleteChar=D.deleteChar.bind(D),this.originalInsertText=D.insertText.bind(D),this.originalInsertChar=D.insertChar.bind(D),this.originalDeleteRange=D.deleteRange.bind(D),this.originalSetText=D.setText.bind(D),this.originalReplaceText=D.replaceText.bind(D),this.originalClear=D.clear.bind(D),this.originalNewLine=D.newLine.bind(D),this.originalDeleteLine=D.deleteLine.bind(D),this.originalEditorViewDeleteSelectedText=J.deleteSelectedText.bind(J),this.originalUndo=D.undo.bind(D),this.originalRedo=D.redo.bind(D),this.wrapCursorMovement(),this.wrapDeletion(),this.wrapInsertion(),this.wrapEditorViewDeleteSelectedText(),this.wrapUndoRedo(),this.setupContentChangeListener()}wrapCursorMovement(){this.editBuffer.moveCursorLeft=()=>{if(this.destroyed){this.originalMoveCursorLeft();return}let D=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorLeft();return}let K=D-1;if(K<0){this.originalMoveCursorLeft();return}let Q=this.findVirtualExtmarkContaining(K);if(Q&&D>=Q.end){this.editBuffer.setCursorByOffset(Q.start-1);return}this.originalMoveCursorLeft()},this.editBuffer.moveCursorRight=()=>{if(this.destroyed){this.originalMoveCursorRight();return}let D=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorRight();return}let K=D+1,Q=this.editBuffer.getText().length;if(K>Q){this.originalMoveCursorRight();return}let X=this.findVirtualExtmarkContaining(K);if(X&&D<=X.start){this.editBuffer.setCursorByOffset(X.end);return}this.originalMoveCursorRight()},this.editorView.moveUpVisual=()=>{if(this.destroyed){this.originalMoveUpVisual();return}if(this.editorView.hasSelection()){this.originalMoveUpVisual();return}let J=this.editorView.getVisualCursor().offset;this.originalMoveUpVisual();let K=this.editorView.getVisualCursor().offset,Q=this.findVirtualExtmarkContaining(K);if(Q){let X=K-Q.start,Y=Q.end-K;if(X<Y)this.editorView.setCursorByOffset(Q.start-1);else this.editorView.setCursorByOffset(Q.end)}},this.editorView.moveDownVisual=()=>{if(this.destroyed){this.originalMoveDownVisual();return}if(this.editorView.hasSelection()){this.originalMoveDownVisual();return}let J=this.editorView.getVisualCursor().offset;this.originalMoveDownVisual();let K=this.editorView.getVisualCursor().offset,Q=this.findVirtualExtmarkContaining(K);if(Q){let X=K-Q.start,Y=Q.end-K;if(X<Y){let Z=Q.start-1,_=Z<=J?Q.end:Z;this.editorView.setCursorByOffset(_)}else this.editorView.setCursorByOffset(Q.end)}},this.editBuffer.setCursorByOffset=(D)=>{if(this.destroyed){this.originalSetCursorByOffset(D);return}let J=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalSetCursorByOffset(D);return}if(D>J){let X=this.findVirtualExtmarkContaining(D);if(X&&J<=X.start){this.originalSetCursorByOffset(X.end);return}}else for(let X of this.extmarks.values())if(X.virtual&&J>=X.end&&D<X.end&&D>=X.start){this.originalSetCursorByOffset(X.start-1);return}this.originalSetCursorByOffset(D)}}wrapDeletion(){this.editBuffer.deleteCharBackward=()=>{if(this.destroyed){this.originalDeleteCharBackward();return}this.saveSnapshot();let D=this.editorView.getVisualCursor().offset,J=this.editorView.hasSelection();if(D===0){this.originalDeleteCharBackward();return}if(J){this.originalDeleteCharBackward();return}let K=D-1,Q=this.findVirtualExtmarkContaining(K);if(Q&&D===Q.end){let Z=this.offsetToPosition(Q.start),_=this.offsetToPosition(Q.end),L=Q.start,N=Q.end-Q.start;this.deleteExtmarkById(Q.id),this.originalDeleteRange(Z.row,Z.col,_.row,_.col),this.adjustExtmarksAfterDeletion(L,N),this.updateHighlights();return}this.originalDeleteCharBackward();let X=this.editorView.getVisualCursor().offset,Y=D-X;if(Y>0)this.adjustExtmarksAfterDeletion(X,Y)},this.editBuffer.deleteChar=()=>{if(this.destroyed){this.originalDeleteChar();return}this.saveSnapshot();let D=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalDeleteChar();return}let K=D,Q=this.findVirtualExtmarkContaining(K);if(Q&&D===Q.start){let Z=this.offsetToPosition(Q.start),_=this.offsetToPosition(Q.end),L=Q.start,N=Q.end-Q.start;this.deleteExtmarkById(Q.id),this.originalDeleteRange(Z.row,Z.col,_.row,_.col),this.adjustExtmarksAfterDeletion(L,N),this.updateHighlights();return}let Y=this.getNextCursorOffset(D)-D;if(this.originalDeleteChar(),Y>0)this.adjustExtmarksAfterDeletion(D,Y)},this.editBuffer.deleteRange=(D,J,K,Q)=>{if(this.destroyed){this.originalDeleteRange(D,J,K,Q);return}this.saveSnapshot();let X=this.positionToOffset(D,J),Z=this.positionToOffset(K,Q)-X;this.originalDeleteRange(D,J,K,Q),this.adjustExtmarksAfterDeletion(X,Z)},this.editBuffer.deleteLine=()=>{if(this.destroyed){this.originalDeleteLine();return}this.saveSnapshot();let D=this.editBuffer.getText(),J=this.editorView.getVisualCursor().offset,K=0;for(let Y=J-1;Y>=0;Y--)if(D[Y]===`
|
|
35
|
+
`){K=Y+1;break}let Q=D.length;for(let Y=J;Y<D.length;Y++)if(D[Y]===`
|
|
36
|
+
`){Q=Y+1;break}let X=Q-K;this.originalDeleteLine(),this.adjustExtmarksAfterDeletion(K,X)}}wrapInsertion(){this.editBuffer.insertText=(D)=>{if(this.destroyed){this.originalInsertText(D);return}this.saveSnapshot();let J=this.editorView.getVisualCursor().offset;this.originalInsertText(D);let K=this.editorView.getVisualCursor().offset-J;if(K>0)this.adjustExtmarksAfterInsertion(J,K)},this.editBuffer.insertChar=(D)=>{if(this.destroyed){this.originalInsertChar(D);return}this.saveSnapshot();let J=this.editorView.getVisualCursor().offset;this.originalInsertChar(D);let K=this.editorView.getVisualCursor().offset-J;if(K>0)this.adjustExtmarksAfterInsertion(J,K)},this.editBuffer.setText=(D)=>{if(this.destroyed){this.originalSetText(D);return}this.clear(),this.originalSetText(D)},this.editBuffer.replaceText=(D)=>{if(this.destroyed){this.originalReplaceText(D);return}this.saveSnapshot(),this.clear(),this.originalReplaceText(D)},this.editBuffer.clear=()=>{if(this.destroyed){this.originalClear();return}this.saveSnapshot(),this.clear(),this.originalClear()},this.editBuffer.newLine=()=>{if(this.destroyed){this.originalNewLine();return}this.saveSnapshot();let D=this.editorView.getVisualCursor().offset;this.originalNewLine(),this.adjustExtmarksAfterInsertion(D,1)}}wrapEditorViewDeleteSelectedText(){this.editorView.deleteSelectedText=()=>{if(this.destroyed){this.originalEditorViewDeleteSelectedText();return}this.saveSnapshot();let D=this.editorView.getSelection();if(!D){this.originalEditorViewDeleteSelectedText();return}let J=Math.min(D.start,D.end),K=Math.abs(D.end-D.start);if(this.originalEditorViewDeleteSelectedText(),K>0)this.adjustExtmarksAfterDeletion(J,K)}}setupContentChangeListener(){this.editBuffer.on("content-changed",()=>{if(this.destroyed)return;this.updateHighlights()})}deleteExtmarkById(D){let J=this.extmarks.get(D);if(J)this.extmarks.delete(D),this.extmarksByTypeId.get(J.typeId)?.delete(D),this.metadata.delete(D)}findVirtualExtmarkContaining(D){for(let J of this.extmarks.values())if(J.virtual&&D>=J.start&&D<J.end)return J;return null}adjustExtmarksAfterInsertion(D,J){for(let K of this.extmarks.values())if(K.start>=D)K.start+=J,K.end+=J;else if(K.end>D)K.end+=J;this.updateHighlights()}adjustExtmarksAfterDeletion(D,J){let K=[];for(let Q of this.extmarks.values()){if(Q.end<=D)continue;if(Q.start>=D+J)Q.start-=J,Q.end-=J;else if(Q.start>=D&&Q.end<=D+J)K.push(Q.id);else if(Q.start<D&&Q.end>D+J)Q.end-=J;else if(Q.start<D&&Q.end>D)Q.end-=Math.min(Q.end,D+J)-D;else if(Q.start<D+J&&Q.end>D+J){let X=D+J-Q.start;Q.start=D,Q.end-=J}}for(let Q of K)this.deleteExtmarkById(Q);this.updateHighlights()}offsetToPosition(D){let J=this.editBuffer.offsetToPosition(D);if(!J)return{row:0,col:0};return J}positionToOffset(D,J){return this.editBuffer.positionToOffset(D,J)}getNextCursorOffset(D){this.originalMoveCursorRight();let J=this.editorView.getVisualCursor().offset;return this.originalSetCursorByOffset(D),J}updateHighlights(){this.editBuffer.clearAllHighlights();for(let D of this.extmarks.values())if(D.styleId!==void 0){let J=this.offsetExcludingNewlines(D.start),K=this.offsetExcludingNewlines(D.end);this.editBuffer.addHighlightByCharRange({start:J,end:K,styleId:D.styleId,priority:D.priority??0,hlRef:D.id})}}offsetExcludingNewlines(D){let J=this.editBuffer.getText(),K=0,Q=0,X=0;while(X<J.length&&K<D)if(J[X]===`
|
|
37
|
+
`)K++,Q++,X++;else{let Y=X;while(Y<J.length&&J[Y]!==`
|
|
38
|
+
`)Y++;let Z=J.substring(X,Y),_=CX(Z);if(K+_<D)K+=_,X=Y;else{for(let L=X;L<Y&&K<D;L++){let N=CX(J[L]);K+=N}break}}return D-Q}create(D){if(this.destroyed)throw Error("ExtmarksController is destroyed");let J=this.nextId++,K=D.typeId??0,Q={id:J,start:D.start,end:D.end,virtual:D.virtual??!1,styleId:D.styleId,priority:D.priority,data:D.data,typeId:K};if(this.extmarks.set(J,Q),!this.extmarksByTypeId.has(K))this.extmarksByTypeId.set(K,new Set);if(this.extmarksByTypeId.get(K).add(J),D.metadata!==void 0)this.metadata.set(J,D.metadata);return this.updateHighlights(),J}delete(D){if(this.destroyed)throw Error("ExtmarksController is destroyed");if(!this.extmarks.get(D))return!1;return this.deleteExtmarkById(D),this.updateHighlights(),!0}get(D){if(this.destroyed)return null;return this.extmarks.get(D)??null}getAll(){if(this.destroyed)return[];return Array.from(this.extmarks.values())}getVirtual(){if(this.destroyed)return[];return Array.from(this.extmarks.values()).filter((D)=>D.virtual)}getAtOffset(D){if(this.destroyed)return[];return Array.from(this.extmarks.values()).filter((J)=>D>=J.start&&D<J.end)}getAllForTypeId(D){if(this.destroyed)return[];let J=this.extmarksByTypeId.get(D);if(!J)return[];return Array.from(J).map((K)=>this.extmarks.get(K)).filter((K)=>K!==void 0)}clear(){if(this.destroyed)return;this.extmarks.clear(),this.extmarksByTypeId.clear(),this.metadata.clear(),this.updateHighlights()}saveSnapshot(){this.history.saveSnapshot(this.extmarks,this.nextId)}restoreSnapshot(D){this.extmarks=new Map(Array.from(D.extmarks.entries()).map(([J,K])=>[J,{...K}])),this.nextId=D.nextId,this.updateHighlights()}wrapUndoRedo(){this.editBuffer.undo=()=>{if(this.destroyed)return this.originalUndo();if(!this.history.canUndo())return this.originalUndo();let D={extmarks:new Map(Array.from(this.extmarks.entries()).map(([K,Q])=>[K,{...Q}])),nextId:this.nextId};this.history.pushRedo(D);let J=this.history.undo();return this.restoreSnapshot(J),this.originalUndo()},this.editBuffer.redo=()=>{if(this.destroyed)return this.originalRedo();if(!this.history.canRedo())return this.originalRedo();let D={extmarks:new Map(Array.from(this.extmarks.entries()).map(([K,Q])=>[K,{...Q}])),nextId:this.nextId};this.history.pushUndo(D);let J=this.history.redo();return this.restoreSnapshot(J),this.originalRedo()}}registerType(D){if(this.destroyed)throw Error("ExtmarksController is destroyed");let J=this.typeNameToId.get(D);if(J!==void 0)return J;let K=this.nextTypeId++;return this.typeNameToId.set(D,K),this.typeIdToName.set(K,D),K}getTypeId(D){if(this.destroyed)return null;return this.typeNameToId.get(D)??null}getTypeName(D){if(this.destroyed)return null;return this.typeIdToName.get(D)??null}getMetadataFor(D){if(this.destroyed)return;return this.metadata.get(D)}destroy(){if(this.destroyed)return;this.editBuffer.moveCursorLeft=this.originalMoveCursorLeft,this.editBuffer.moveCursorRight=this.originalMoveCursorRight,this.editBuffer.setCursorByOffset=this.originalSetCursorByOffset,this.editorView.moveUpVisual=this.originalMoveUpVisual,this.editorView.moveDownVisual=this.originalMoveDownVisual,this.editBuffer.deleteCharBackward=this.originalDeleteCharBackward,this.editBuffer.deleteChar=this.originalDeleteChar,this.editBuffer.insertText=this.originalInsertText,this.editBuffer.insertChar=this.originalInsertChar,this.editBuffer.deleteRange=this.originalDeleteRange,this.editBuffer.setText=this.originalSetText,this.editBuffer.replaceText=this.originalReplaceText,this.editBuffer.clear=this.originalClear,this.editBuffer.newLine=this.originalNewLine,this.editBuffer.deleteLine=this.originalDeleteLine,this.editorView.deleteSelectedText=this.originalEditorViewDeleteSelectedText,this.editBuffer.undo=this.originalUndo,this.editBuffer.redo=this.originalRedo,this.extmarks.clear(),this.extmarksByTypeId.clear(),this.metadata.clear(),this.typeNameToId.clear(),this.typeIdToName.clear(),this.history.clear(),this.destroyed=!0}}function t1(D,J){return new vY(D,J)}var e1=new iJ;AD({name:"OTUI_PALETTE_IDLE_TIMEOUT_MS",description:"Milliseconds of silence after palette queries before using fallback colors.",type:"number",default:300});var _K=/\x1b]4;(\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g,zX=/\x1b](\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g;function tK(D){let J=parseInt(D,16),K=(1<<4*D.length)-1;return Math.round(J/K*255).toString(16).padStart(2,"0")}function fX(D,J,K,Q){if(Q)return`#${Q.toLowerCase()}`;if(D&&J&&K)return`#${tK(D)}${tK(J)}${tK(K)}`;return"#000000"}function D2(D){return`\x1BPtmux;${D.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`}class dY{stdin;stdout;writeFn;activeQuerySessions=[];inLegacyTmux;inTmux;oscSource;clock;constructor(D){let{stdin:J,stdout:K,writeFn:Q,isLegacyTmux:X,isTmux:Y,oscSource:Z,clock:_}=D;this.stdin=J,this.stdout=K,this.writeFn=Q||((L)=>K.write(L)),this.inLegacyTmux=X??!1,this.inTmux=Y??this.inLegacyTmux,this.oscSource=Z,this.clock=_??e1}writeOsc(D,J=!1){let K=J&&this.inLegacyTmux?D2(D):D;return this.writeFn(K)}cleanup(){for(let D of[...this.activeQuerySessions])D();this.activeQuerySessions=[]}subscribeInput(D){if(this.oscSource)return this.oscSource.subscribeOsc((J)=>{D(J)});return this.stdin.on("data",D),()=>{this.stdin.removeListener("data",D)}}createQuerySession(){let D=new Set,J=new Set,K=!1,Q=()=>{if(K)return;K=!0;for(let Y of D)this.clock.clearTimeout(Y);D.clear();for(let Y of J)Y();J.clear();let X=this.activeQuerySessions.indexOf(Q);if(X!==-1)this.activeQuerySessions.splice(X,1)};return this.activeQuerySessions.push(Q),{setTimer:(X,Y)=>{let Z=this.clock.setTimeout(X,Y);return D.add(Z),Z},resetTimer:(X,Y,Z)=>{if(X)this.clock.clearTimeout(X),D.delete(X);let _=this.clock.setTimeout(Y,Z);return D.add(_),_},subscribeInput:(X)=>{let Y=this.subscribeInput(X);return J.add(Y),()=>{if(!J.has(Y))return;J.delete(Y),Y()}},cleanup:Q}}async detectOSCSupport(D=300){if(!this.stdout.isTTY||!this.stdin.isTTY)return!1;return new Promise((K)=>{let Q=this.createQuerySession(),X="",Y=!1,Z=(L)=>{if(Y)return;Y=!0,Q.cleanup(),K(L)},_=(L)=>{if(X+=L.toString(),_K.lastIndex=0,_K.test(X))Z(!0)};Q.setTimer(()=>{Z(!1)},D),Q.subscribeInput(_),this.writeOsc("\x1B]4;0;?\x07",!0)})}async queryPalette(D,J=1200,K=XD.OTUI_PALETTE_IDLE_TIMEOUT_MS){let Q=this.stdout,X=new Map;if(D.forEach((Y)=>X.set(Y,null)),!Q.isTTY||!this.stdin.isTTY)return X;return new Promise((Y)=>{let Z=this.createQuerySession(),_="",L=null,N=!1,V=()=>{if(N)return;N=!0,Z.cleanup(),Y(X)},G=(O)=>{_+=O.toString();let U;_K.lastIndex=0;while(U=_K.exec(_)){let F=parseInt(U[1],10);if(X.has(F))X.set(F,fX(U[2],U[3],U[4],U[5]))}if(_.length>8192)_=_.slice(-4096);if([...X.values()].filter((F)=>F!==null).length===X.size){V();return}L=Z.resetTimer(L,V,K)};Z.setTimer(V,J),Z.subscribeInput(G),this.writeOsc(D.map((O)=>`\x1B]4;${O};?\x07`).join(""),!0),L=Z.resetTimer(L,V,K)})}async querySpecialColors(D=1200,J=XD.OTUI_PALETTE_IDLE_TIMEOUT_MS){let K=this.stdout,Q={10:null,11:null,12:null,13:null,14:null,15:null,16:null,17:null,19:null},X=this.inTmux?[10,11,12]:[10,11,12,13,14,15,16,17,19];if(!K.isTTY||!this.stdin.isTTY)return Q;return new Promise((Y)=>{let Z=this.createQuerySession(),_="",L=null,N=!1,V=()=>{if(N)return;N=!0,Z.cleanup(),Y(Q)},G=(O)=>{_+=O.toString();let U=!1,k;zX.lastIndex=0;while(k=zX.exec(_)){let F=parseInt(k[1],10);if(F in Q)Q[F]=fX(k[2],k[3],k[4],k[5]),U=!0}if(_.length>8192)_=_.slice(-4096);if(X.every((F)=>Q[F]!==null)){V();return}if(!U)return;L=Z.resetTimer(L,V,J)};Z.setTimer(V,D),Z.subscribeInput(G),this.writeOsc(X.map((O)=>`\x1B]${O};?\x07`).join("")),L=Z.resetTimer(L,V,J)})}async detect(D){let{timeout:J=5000,size:K=16}=D||{};if(!await this.detectOSCSupport())return{palette:Array(K).fill(null),defaultForeground:null,defaultBackground:null,cursorColor:null,mouseForeground:null,mouseBackground:null,tekForeground:null,tekBackground:null,highlightBackground:null,highlightForeground:null};let X=[...Array(K).keys()],Y=XD.OTUI_PALETTE_IDLE_TIMEOUT_MS,[Z,_]=await Promise.all([this.queryPalette(X,J,Y),this.querySpecialColors(J,Y)]);return{palette:[...Array(K).keys()].map((L)=>Z.get(L)??null),defaultForeground:_[10],defaultBackground:_[11],cursorColor:_[12],mouseForeground:_[13],mouseBackground:_[14],tekForeground:_[15],tekBackground:_[16],highlightBackground:_[17],highlightForeground:_[19]}}}function J2(D){return new dY(D)}var K2=l.fromInts(...LY),Q2=l.fromInts(...NY),eK=null;function X2(){if(!eK)eK=Array.from({length:256},(D,J)=>{let[K,Q,X]=MY(J);return l.fromInts(K,Q,X)});return eK}function mY(D){let J=X2();return{palette:Array.from({length:256},(K,Q)=>{let X=D?.palette[Q];return X?l.fromHex(X):l.clone(J[Q])}),defaultForeground:D?.defaultForeground?l.fromHex(D.defaultForeground):l.clone(K2),defaultBackground:D?.defaultBackground?l.fromHex(D.defaultBackground):l.clone(Q2)}}function qX(D){let J=mY(D);return[J.palette.map((Q)=>Q.toInts().join(",")).join(";"),J.defaultForeground.toInts().join(","),J.defaultBackground.toInts().join(",")].join("|")}var Y2=new TextDecoder;function O7(D){return Y2.decode(D)}function W7(D){return x1(D)}var Z2=["markup.link.url","string.special.url"];function G7(D,J){let{content:K,highlights:Q}=J,X=[];for(let Z=0;Z<Q.length;Z++){let[_,L,N]=Q[Z];if(!Z2.includes(N))continue;let V=K.slice(_,L);X.push({start:_,end:L,url:V});for(let G=Z-1;G>=0;G--){let[O,U,k]=Q[G];if(k==="markup.link.label"){X.push({start:O,end:U,url:V});break}if(!k.startsWith("markup.link"))break}}if(X.length===0)return D;let Y=0;for(let Z of D){if(Z.text.length<=1)continue;let _=K.indexOf(Z.text,Y);if(_<0)continue;for(let L of X)if(_<L.end&&_+Z.text.length>L.start){Z.link={url:L.url};break}Y=_+Z.text.length}return D}var o={char:"char",int8_t:"int8_t",i8:"i8",uint8_t:"uint8_t",u8:"u8",int16_t:"int16_t",i16:"i16",uint16_t:"uint16_t",u16:"u16",int32_t:"int32_t",i32:"i32",int:"int",uint32_t:"uint32_t",u32:"u32",int64_t:"int64_t",i64:"i64",uint64_t:"uint64_t",u64:"u64",double:"double",f64:"f64",float:"float",f32:"f32",bool:"bool",ptr:"ptr",pointer:"pointer",void:"void",cstring:"cstring",function:"function",usize:"usize",callback:"callback",napi_env:"napi_env",napi_value:"napi_value",buffer:"buffer"},A2="OpenTUI native FFI is not available for this runtime yet",L2="Bun FFI backend does not support dlopen(null)",uY="Cannot create FFI callback after library.close() has been called",N2="Node FFI callbacks are same-thread only and do not support threadsafe callbacks",V2="Node FFI backend does not support Bun N-API FFI types",M2="Node FFI backend does not support FFIFunction.ptr overrides",xX="node:ffi ptr() only supports ArrayBuffer and ArrayBufferView values backed by ArrayBuffer",H2="Node FFI backend does not normalize string return values (yet)",U2="Node FFI backend does not support usize until (yet)",fQ="Pointer must be non-negative",iY="Pointer exceeds safe integer range";function DQ(D){throw Error(A2,{cause:D})}function j2(D){return{dlopen(){return DQ(D)},ptr(){return DQ(D)},suffix:"",toArrayBuffer(){return DQ(D)}}}var HQ=typeof process<"u"&&typeof process.versions==="object"&&process.versions!==null&&typeof process.versions.bun==="string",TX=_2(import.meta.url),CK=O2();function O2(){if(HQ)return G2(TX("bun:ffi"));try{let D=TX("node:ffi");return k2(D.default??D)}catch(D){return j2(D)}}function GK(D){if(HQ&&typeof D==="bigint")return lY(D);if(!HQ&&typeof D==="number")return aY(D);return D}function KD(D){return D?1:0}function lY(D){if(D<0n)throw Error(fQ);if(D>BigInt(Number.MAX_SAFE_INTEGER))throw Error(iY);return Number(D)}function aY(D){if(D<0)throw Error(fQ);if(!Number.isSafeInteger(D))throw Error(iY);return BigInt(D)}function sY(D,J){let K=D.ptr,Q=!1,X={get ptr(){return K},get threadsafe(){return D.threadsafe},close(){if(Q)return;Q=!0,J.delete(X);try{D.close()}finally{K=null}}};return J.add(X),X}function W2(D){return Object.fromEntries(Object.entries(D).map(([J,K])=>[J,oY(K)]))}function oY(D){return{args:D.args,returns:D.returns,ptr:D.ptr==null?void 0:rY(D.ptr),threadsafe:D.threadsafe}}function rY(D){return typeof D==="bigint"?lY(D):D}function G2(D){return{dlopen(J,K){if(J===null)throw Error(L2);let Q=D.dlopen(J,W2(K)),X=new Set,Y=!1;return{symbols:Q.symbols,createCallback(Z,_){if(Y)throw Error(uY);let L=new D.JSCallback(Z,oY(_));return sY(L,X)},close(){if(Y)return;Y=!0;try{Q.close()}finally{for(let Z of[...X])Z.close()}}}},ptr:D.ptr,suffix:D.suffix,toArrayBuffer(J,K,Q){return D.toArrayBuffer(rY(J),K,Q)}}}function k2(D){return{dlopen(J,K){let{lib:Q,functions:X}=D.dlopen(P2(J),B2(K)),Y=new Set,Z=!1,_=!1;return{symbols:X,createCallback(L,N){if(Z)throw Error(uY);if(N.threadsafe)throw Error(N2);let V=Q.registerCallback(nY(N),L);return sY({ptr:V,threadsafe:!1,close(){if(!_)Q.unregisterCallback(V)}},Y)},close(){if(Z)return;Z=!0;try{_=!0,Q.close()}finally{for(let L of[...Y])L.close()}}}},ptr(J){if(ArrayBuffer.isView(J)){if(!(J.buffer instanceof ArrayBuffer))throw TypeError(xX);return D.getRawPointer(J.buffer)+BigInt(J.byteOffset)}if(J instanceof ArrayBuffer)return D.getRawPointer(J);throw TypeError(xX)},suffix:D.suffix,toArrayBuffer(J,K,Q){return D.toArrayBuffer(F2(J)+BigInt(K??0),Q,!1)}}}function P2(D){return D instanceof URL?$2(D):D}function B2(D){return Object.fromEntries(Object.entries(D).map(([J,K])=>[J,nY(K)]))}function nY(D){if(D.ptr!=null)throw Error(M2);return{parameters:(D.args??[]).map((J)=>SX(J,"parameter")),result:SX(D.returns??o.void,"result")}}function SX(D,J){switch(D){case o.char:return"char";case o.int8_t:case o.i8:return"i8";case o.uint8_t:case o.u8:return"u8";case o.int16_t:case o.i16:return"i16";case o.uint16_t:case o.u16:return"u16";case o.int32_t:case o.int:case o.i32:return"i32";case o.uint32_t:case o.u32:return"u32";case o.int64_t:case o.i64:return"i64";case o.uint64_t:case o.u64:return"u64";case o.double:case o.f64:return"f64";case o.float:case o.f32:return"f32";case o.bool:return"bool";case o.ptr:case o.pointer:return"pointer";case o.void:return"void";case o.cstring:if(J==="result")throw Error(H2);return"string";case o.function:case o.callback:return"pointer";case o.usize:throw Error(U2);case o.napi_env:case o.napi_value:throw Error(V2);case o.buffer:return"buffer";default:return C2(D)}}function C2(D){throw Error(`Unsupported FFIType for node:ffi: ${String(D)}`)}function F2(D){if(typeof D==="bigint"){if(D<0n)throw Error(fQ);return D}return aY(D)}var{dlopen:I2,ptr:S,suffix:B7,toArrayBuffer:ED}=CK;function q2(D,J,K,Q){let X=0;if(D===!0)X|=15;else if(Array.isArray(D)){if(D.includes("top"))X|=8;if(D.includes("right"))X|=4;if(D.includes("bottom"))X|=2;if(D.includes("left"))X|=1}if(J)X|=16;let Y={left:0,center:1,right:2},Z=Y[K],_=Y[Q];return X|=Z<<5,X|=_<<7,X}class fD{static fbIdCounter=0;id;lib;bufferPtr;_width;_height;_widthMethod;respectAlpha=!1;_rawBuffers=null;_destroyed=!1;get ptr(){return this.bufferPtr}guard(){if(this._destroyed)throw Error(`Buffer ${this.id} is destroyed`)}ensureRawBufferViews(){if(this._rawBuffers!==null)return;let D=this._width*this._height,J=this.lib.bufferGetCharPtr(this.bufferPtr),K=this.lib.bufferGetFgPtr(this.bufferPtr),Q=this.lib.bufferGetBgPtr(this.bufferPtr),X=this.lib.bufferGetAttributesPtr(this.bufferPtr);this._rawBuffers={char:new Uint32Array(ED(J,0,D*4)),fg:new Uint16Array(ED(K,0,D*4*2)),bg:new Uint16Array(ED(Q,0,D*4*2)),attributes:new Uint32Array(ED(X,0,D*4))}}get buffers(){return this.guard(),this.ensureRawBufferViews(),this._rawBuffers}constructor(D,J,K,Q,X){this.id=X.id||`fb_${fD.fbIdCounter++}`,this.lib=D,this.respectAlpha=X.respectAlpha||!1,this._width=K,this._height=Q,this._widthMethod=X.widthMethod||"unicode",this.bufferPtr=J}static create(D,J,K,Q={}){let X=bD(),Y=Q.respectAlpha||!1,Z=Q.id&&Q.id.trim()!==""?Q.id:"unnamed buffer";return X.createOptimizedBuffer(D,J,K,Y,Z)}get widthMethod(){return this._widthMethod}get width(){return this._width}get height(){return this._height}setRespectAlpha(D){this.guard(),this.lib.bufferSetRespectAlpha(this.bufferPtr,D),this.respectAlpha=D}getNativeId(){return this.guard(),this.lib.bufferGetId(this.bufferPtr)}getRealCharBytes(D=!1){this.guard();let J=this.lib.bufferGetRealCharSize(this.bufferPtr),K=new Uint8Array(J),Q=this.lib.bufferWriteResolvedChars(this.bufferPtr,K,D);return K.slice(0,Q)}getSpanLines(){this.guard();let{char:D,fg:J,bg:K,attributes:Q}=this.buffers,X=[],Y=-1073741824,Z=-1073741824,_=this.getRealCharBytes(!0),L=new TextDecoder().decode(_).split(`
|
|
39
|
+
`);for(let N=0;N<this._height;N++){let V=[],G=null,O=[...L[N]||""],U=0;for(let k=0;k<this._width;k++){let F=N*this._width+k,P=D[F],W=l.fromArray(J.slice(F*4,F*4+4)),f=l.fromArray(K.slice(F*4,F*4+4)),T=Q[F]&255,h=(P&Z)===Y?"":O[U++]??" ";if(G&&G.fg.equals(W)&&G.bg.equals(f)&&G.attributes===T)G.text+=h,G.width+=1;else{if(G)V.push(G);G={text:h,fg:W,bg:f,attributes:T,width:1}}}if(G)V.push(G);X.push({spans:V})}return X}clear(D=l.fromValues(0,0,0,1)){this.guard(),this.lib.bufferClear(this.bufferPtr,D)}setCell(D,J,K,Q,X,Y=0){this.guard(),this.lib.bufferSetCell(this.bufferPtr,D,J,K,Q,X,Y)}setCellWithAlphaBlending(D,J,K,Q,X,Y=0){this.guard(),this.lib.bufferSetCellWithAlphaBlending(this.bufferPtr,D,J,K,Q,X,Y)}drawText(D,J,K,Q,X,Y=0,Z){if(this.guard(),!Z){this.lib.bufferDrawText(this.bufferPtr,D,J,K,Q,X,Y);return}let{start:_,end:L}=Z,N,V;if(Z.bgColor)N=Z.bgColor,V=Z.fgColor||Q;else{let G=X||l.fromValues(0,0,0,0);V=G.a>0?G:l.fromValues(0,0,0,1),N=Q}if(_>0){let G=D.slice(0,_);this.lib.bufferDrawText(this.bufferPtr,G,J,K,Q,X,Y)}if(L>_){let G=D.slice(_,L);this.lib.bufferDrawText(this.bufferPtr,G,J+_,K,V,N,Y)}if(L<D.length){let G=D.slice(L);this.lib.bufferDrawText(this.bufferPtr,G,J+L,K,Q,X,Y)}}fillRect(D,J,K,Q,X){this.lib.bufferFillRect(this.bufferPtr,D,J,K,Q,X)}colorMatrix(D,J,K=1,Q=3){if(this.guard(),D.length!==16)throw RangeError(`colorMatrix matrix must have length 16, got ${D.length}`);let X=Math.floor(J.length/3);this.lib.bufferColorMatrix(this.bufferPtr,S(D),S(J),X,K,Q)}colorMatrixUniform(D,J=1,K=3){if(this.guard(),D.length!==16)throw RangeError(`colorMatrixUniform matrix must have length 16, got ${D.length}`);if(J===0)return;this.lib.bufferColorMatrixUniform(this.bufferPtr,S(D),J,K)}drawFrameBuffer(D,J,K,Q,X,Y,Z){this.guard(),this.lib.drawFrameBuffer(this.bufferPtr,D,J,K.ptr,Q,X,Y,Z)}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyOptimizedBuffer(this.bufferPtr)}drawTextBuffer(D,J,K){this.guard(),this.lib.bufferDrawTextBufferView(this.bufferPtr,D.ptr,J,K)}drawEditorView(D,J,K){this.guard(),this.lib.bufferDrawEditorView(this.bufferPtr,D.ptr,J,K)}drawSuperSampleBuffer(D,J,K,Q,X,Y){this.guard(),this.lib.bufferDrawSuperSampleBuffer(this.bufferPtr,D,J,GK(K),Q,X,Y)}drawPackedBuffer(D,J,K,Q,X,Y){this.guard(),this.lib.bufferDrawPackedBuffer(this.bufferPtr,GK(D),J,K,Q,X,Y)}drawGrayscaleBuffer(D,J,K,Q,X,Y=null,Z=null){this.guard(),this.lib.bufferDrawGrayscaleBuffer(this.bufferPtr,D,J,S(K),Q,X,Y,Z)}drawGrayscaleBufferSupersampled(D,J,K,Q,X,Y=null,Z=null){this.guard(),this.lib.bufferDrawGrayscaleBufferSupersampled(this.bufferPtr,D,J,S(K),Q,X,Y,Z)}resize(D,J){if(this.guard(),this._width===D&&this._height===J)return;this._width=D,this._height=J,this._rawBuffers=null,this.lib.bufferResize(this.bufferPtr,D,J)}drawBox(D){this.guard();let J=LQ(D.borderStyle,"single"),K=D.customBorderChars??K0[J],Q=q2(D.border,D.shouldFill??!1,D.titleAlignment||"left",D.bottomTitleAlignment||"left");this.lib.bufferDrawBox(this.bufferPtr,D.x,D.y,D.width,D.height,K,Q,D.borderColor,D.backgroundColor,D.title??null,D.bottomTitle??null)}pushScissorRect(D,J,K,Q){this.guard(),this.lib.bufferPushScissorRect(this.bufferPtr,D,J,K,Q)}popScissorRect(){this.guard(),this.lib.bufferPopScissorRect(this.bufferPtr)}clearScissorRects(){this.guard(),this.lib.bufferClearScissorRects(this.bufferPtr)}pushOpacity(D){this.guard(),this.lib.bufferPushOpacity(this.bufferPtr,Math.max(0,Math.min(1,D)))}popOpacity(){this.guard(),this.lib.bufferPopOpacity(this.bufferPtr)}getCurrentOpacity(){return this.guard(),this.lib.bufferGetCurrentOpacity(this.bufferPtr)}clearOpacity(){this.guard(),this.lib.bufferClearOpacity(this.bufferPtr)}encodeUnicode(D){return this.guard(),this.lib.encodeUnicode(D,this._widthMethod)}freeUnicode(D){this.guard(),this.lib.freeUnicode(D)}drawGrid(D){this.guard();let J=Math.max(0,D.columnOffsets.length-1),K=Math.max(0,D.rowOffsets.length-1);this.lib.bufferDrawGrid(this.bufferPtr,D.borderChars,D.borderFg,D.borderBg,D.columnOffsets,J,D.rowOffsets,K,{drawInner:D.drawInner,drawOuter:D.drawOuter})}drawChar(D,J,K,Q,X,Y=0){this.guard(),this.lib.bufferDrawChar(this.bufferPtr,D,J,K,Q,X,Y)}}var x2="bun-ffi-structs requires Bun or Node.js with node:ffi enabled (--experimental-ffi --allow-ffi).",tY=await T2();async function T2(){if(typeof process<"u"&&"bun"in process.versions)return S2(await gX("bun:ffi"));try{return g2(await gX("node:ffi"))}catch(D){throw Error(x2,{cause:D instanceof Error?D:void 0})}}function gX(D){return import(D).then((J)=>J.default??J)}function S2(D){return{ptr:D.ptr,toArrayBuffer(J,K,Q){return D.toArrayBuffer(R2(J),K,Q)}}}function g2(D){return{ptr(J){if(ArrayBuffer.isView(J))return D.getRawPointer(J.buffer)+BigInt(J.byteOffset);if(J instanceof ArrayBuffer)return D.getRawPointer(J);throw TypeError("node:ffi ptr() only supports ArrayBuffer and ArrayBufferView values.")},toArrayBuffer(J,K,Q){return D.toArrayBuffer(y2(J)+BigInt(K??0),Q,!1)}}}function y2(D){return typeof D==="bigint"?D:BigInt(D)}function R2(D){return typeof D==="bigint"?Number(D):D}var{ptr:LJ,toArrayBuffer:JQ}=tY;function IJ(...D){let J=D.join(" ");throw console.error("FATAL ERROR:",J),Error(J)}var MD=process.arch==="x64"||process.arch==="arm64"?8:4,h2=typeof process<"u"&&"bun"in process.versions,HJ={u8:1,bool_u8:1,bool_u32:4,u16:2,i16:2,u32:4,u64:8,f32:4,f64:8,pointer:MD,i32:4,i64:8},p2=Object.keys(HJ);function $K(D){return typeof D==="string"&&p2.includes(D)}var yX={...HJ},E2={u8:(D,J)=>D.getUint8(J),bool_u8:(D,J)=>Boolean(D.getUint8(J)),bool_u32:(D,J)=>Boolean(D.getUint32(J,!0)),u16:(D,J)=>D.getUint16(J,!0),i16:(D,J)=>D.getInt16(J,!0),u32:(D,J)=>D.getUint32(J,!0),u64:(D,J)=>D.getBigUint64(J,!0),f32:(D,J)=>D.getFloat32(J,!0),f64:(D,J)=>D.getFloat64(J,!0),i32:(D,J)=>D.getInt32(J,!0),i64:(D,J)=>D.getBigInt64(J,!0),pointer:(D,J)=>MD===8?D.getBigUint64(J,!0):BigInt(D.getUint32(J,!0))};function RX(D){return typeof D==="object"&&D!==null&&D.__type==="objectPointer"}function hX(D,J){return D+(J-1)&~(J-1)}function pX(D){throw TypeError(`Invalid enum value: ${D}`)}function eY(D,J="u32"){let K=Object.fromEntries(Object.entries(D).map(([Q,X])=>[X,Q]));return{__type:"enum",type:J,to(Q){return typeof Q==="number"?Q:D[Q]??pX(String(Q))},from(Q){return K[Q]??pX(String(Q))},enum:D}}function EX(D){return typeof D==="object"&&D.__type==="enum"}function KQ(D){return typeof D==="object"&&D.__type==="struct"}function wJ(D){let J,K;switch(D){case"u8":J=(Q,X,Y)=>Q.setUint8(X,Y),K=(Q,X)=>Q.getUint8(X);break;case"bool_u8":J=(Q,X,Y)=>Q.setUint8(X,Y?1:0),K=(Q,X)=>Boolean(Q.getUint8(X));break;case"bool_u32":J=(Q,X,Y)=>Q.setUint32(X,Y?1:0,!0),K=(Q,X)=>Boolean(Q.getUint32(X,!0));break;case"u16":J=(Q,X,Y)=>Q.setUint16(X,Y,!0),K=(Q,X)=>Q.getUint16(X,!0);break;case"i16":J=(Q,X,Y)=>Q.setInt16(X,Y,!0),K=(Q,X)=>Q.getInt16(X,!0);break;case"u32":J=(Q,X,Y)=>Q.setUint32(X,Y,!0),K=(Q,X)=>Q.getUint32(X,!0);break;case"i32":J=(Q,X,Y)=>Q.setInt32(X,Y,!0),K=(Q,X)=>Q.getInt32(X,!0);break;case"i64":J=(Q,X,Y)=>Q.setBigInt64(X,BigInt(Y),!0),K=(Q,X)=>Q.getBigInt64(X,!0);break;case"u64":J=(Q,X,Y)=>Q.setBigUint64(X,BigInt(Y),!0),K=(Q,X)=>Q.getBigUint64(X,!0);break;case"f32":J=(Q,X,Y)=>Q.setFloat32(X,Y,!0),K=(Q,X)=>Q.getFloat32(X,!0);break;case"f64":J=(Q,X,Y)=>Q.setFloat64(X,Y,!0),K=(Q,X)=>Q.getFloat64(X,!0);break;case"pointer":J=(Q,X,Y)=>{MD===8?Q.setBigUint64(X,Y?BigInt(Y):0n,!0):Q.setUint32(X,Y?Number(Y):0,!0)},K=(Q,X)=>{if(MD===8){let Y=Q.getBigUint64(X,!0);return h2?Number(Y):Y}return Q.getUint32(X,!0)};break;default:IJ(`Unsupported primitive type: ${D}`)}return{pack:J,unpack:K}}var{pack:ND,unpack:BJ}=wJ("pointer"),UQ=new WeakMap;function ZJ(D,J){let K=UQ.get(D);if(K)K.push(J);else UQ.set(D,[J])}function b2(D,J){if(UQ.has(J))ZJ(D,J)}function pJ(D){return D==null||D===0||D===0n}function QQ(D){return typeof D==="bigint"?Number(D):D}function c2(D){let J=new ArrayBuffer(D.length*MD),K=new DataView(J);for(let Q=0;Q<D.length;Q++){let Y=D[Q]?.ptr??null;ND(K,Q*MD,Y)}return K}var bX=new TextEncoder,v2=new TextDecoder;function ZD(D,J){let K=0,Q=1,X=[],Y={},Z=[],_={};for(let[O,U,k={}]of D){if(k.condition&&!k.condition())continue;let F=0,P=0,W,f,T=!1,g=null;if($K(U))F=HJ[U],P=yX[U],{pack:W,unpack:f}=wJ(U);else if(typeof U==="string"&&U==="cstring")F=MD,P=MD,W=(B,I,b)=>{if(!b){ND(B,I,null);return}let v=bX.encode(b+"\x00"),u=LJ(v);ND(B,I,u),ZJ(B.buffer,v)},f=(B,I)=>{return BJ(B,I)};else if(typeof U==="string"&&U==="char*")F=MD,P=MD,W=(B,I,b)=>{if(!b){ND(B,I,null);return}let v=bX.encode(b),u=LJ(v);ND(B,I,u),ZJ(B.buffer,v)},f=(B,I)=>{return BJ(B,I)},T=!0;else if(EX(U)){let B=U.type;F=HJ[B],P=yX[B];let{pack:I}=wJ(B);W=(b,v,u)=>{let i=U.to(u);I(b,v,i)},f=(b,v)=>{let u=E2[B](b,v);return U.from(u)}}else if(KQ(U))if(k.asPointer===!0)F=MD,P=MD,W=(B,I,b,v,u)=>{if(!b){ND(B,I,null);return}let i=U.pack(b,u);ND(B,I,LJ(i)),ZJ(B.buffer,i)},f=(B,I)=>{throw Error("Not implemented yet")};else F=U.size,P=U.align,W=(B,I,b,v,u)=>{let i=U.pack(b,u),p=new Uint8Array(i);new Uint8Array(B.buffer).set(p,I),b2(B.buffer,i)},f=(B,I)=>{let b=B.buffer.slice(I,I+F);return U.unpack(b)};else if(RX(U))F=MD,P=MD,W=(B,I,b)=>{let v=b?.ptr??null;if(v===void 0)console.warn(`Field '${O}' expected object with '.ptr' property, but got undefined pointer value from:`,b),ND(B,I,null);else ND(B,I,v)},f=(B,I)=>{return BJ(B,I)};else if(Array.isArray(U)&&U.length===1&&U[0]!==void 0){let[B]=U;F=MD,P=MD;let I;if(EX(B))I=HJ[B.type],W=(v,u,i,p)=>{if(!i||i.length===0){ND(v,u,null);return}let m=new ArrayBuffer(i.length*I),JD=new DataView(m);for(let a=0;a<i.length;a++){let n=B.to(i[a]);JD.setUint32(a*I,n,!0)}ND(v,u,LJ(m)),ZJ(v.buffer,m)},f=null,T=!0,g=B;else if(KQ(B))I=B.size,W=(v,u,i,p,m)=>{if(!i||i.length===0){ND(v,u,null);return}let JD=new ArrayBuffer(i.length*I),a=new DataView(JD);for(let n=0;n<i.length;n++)B.packInto(i[n],a,n*I,m);ND(v,u,LJ(JD)),ZJ(v.buffer,JD)},f=(v,u)=>{throw Error("Not implemented yet")};else if($K(B)){I=HJ[B];let{pack:v}=wJ(B);W=(u,i,p)=>{if(!p||p.length===0){ND(u,i,null);return}let m=new ArrayBuffer(p.length*I),JD=new DataView(m);for(let a=0;a<p.length;a++)v(JD,a*I,p[a]);ND(u,i,LJ(m)),ZJ(u.buffer,m)},f=null,T=!0,g=B}else if(RX(B))I=MD,W=(v,u,i)=>{if(!i||i.length===0){ND(v,u,null);return}let p=c2(i);ND(v,u,LJ(p.buffer)),ZJ(v.buffer,p.buffer)},f=()=>{throw Error("not implemented yet")};else throw Error(`Unsupported array element type for ${O}: ${JSON.stringify(B)}`);let b=Object.values(Y).find((v)=>v.lengthOf===O);if(b&&$K(b.type)){let{pack:v}=wJ(b.type);_[O]={elementSize:I,arrayOffset:K,lengthOffset:b.offset,lengthPack:v}}}else throw Error(`Unsupported field type for ${O}: ${JSON.stringify(U)}`);if(K=hX(K,P),k.unpackTransform){let B=f;f=(I,b)=>k.unpackTransform(B(I,b))}if(k.packTransform){let B=W;W=(I,b,v,u,i)=>B(I,b,k.packTransform(v),u,i)}if(k.optional){let B=W;if(KQ(U)&&!k.asPointer)W=(I,b,v,u,i)=>{if(v||k.mapOptionalInline)B(I,b,v,u,i)};else W=(I,b,v,u,i)=>B(I,b,v??0,u,i)}if(k.lengthOf){let B=W;W=(I,b,v,u,i)=>{let p=u[k.lengthOf],m=0;if(p)if(typeof p==="string")m=Buffer.byteLength(p);else m=p.length;return B(I,b,m,u,i)}}let h;if(k.validate)h=Array.isArray(k.validate)?k.validate:[k.validate];let y={name:O,offset:K,size:F,align:P,validate:h,optional:!!k.optional||!!k.lengthOf||k.default!==void 0,default:k.default,pack:W,unpack:f,type:U,lengthOf:k.lengthOf};if(X.push(y),k.lengthOf)Y[k.lengthOf]=y;if(T){let B=typeof U==="string"&&U==="char*"?"char*":g;if(!B)IJ(`Internal error: needsLengthOf=true but def is null for ${O}`);Z.push({requester:y,def:B})}K+=F,Q=Math.max(Q,P)}for(let{requester:O,def:U}of Z){let k=Y[O.name];if(!k){if(U==="char*")continue;throw Error(`lengthOf field not found for array field ${O.name}`)}if(U==="char*"){let F=k.offset-O.offset;O.unpack=(P,W)=>{let f=BJ(P,W),T=k.unpack(P,W+F);if(pJ(f))return null;let g=QQ(T);if(g===0)return"";let h=JQ(f,0,g);return v2.decode(h)}}else if($K(U)){let F=HJ[U],{unpack:P}=wJ(U),W=k.offset-O.offset;O.unpack=(f,T)=>{let g=[],h=k.unpack(f,T+W),y=QQ(h),B=BJ(f,T);if(pJ(B)&&y>0)throw Error(`Array field ${O.name} has null pointer but length ${h}.`);if(pJ(B)||y===0)return[];let I=JQ(B,0,y*F),b=new DataView(I);for(let v=0;v<y;v++)g.push(P(b,v*F));return g}}else{let F=U.type==="u32"?4:8,P=k.offset-O.offset;O.unpack=(W,f)=>{let T=[],g=k.unpack(W,f+P),h=QQ(g),y=BJ(W,f);if(pJ(y)&&h>0)throw Error(`Array field ${O.name} has null pointer but length ${g}.`);if(pJ(y)||h===0)return[];let B=JQ(y,0,h*F),I=new DataView(B);for(let b=0;b<h;b++)T.push(U.from(I.getUint32(b*F,!0)));return T}}}let L=hX(K,Q),N=X.map((O)=>({name:O.name,offset:O.offset,size:O.size,align:O.align,optional:O.optional,type:O.type,lengthOf:O.lengthOf})),V=new Map(N.map((O)=>[O.name,O])),G=new Map(Object.entries(_));return{__type:"struct",size:L,align:Q,hasMapValue:!!J?.mapValue,layoutByName:V,arrayFields:G,pack(O,U){let k=new ArrayBuffer(L),F=new DataView(k),P=O;if(J?.mapValue)P=J.mapValue(O);for(let W of X){let f=P[W.name]??W.default;if(!W.optional&&f===void 0)IJ(`Packing non-optional field '${W.name}' but value is undefined (and no default provided)`);if(W.validate)for(let T of W.validate)T(f,W.name,{hints:U?.validationHints,input:P});W.pack(F,W.offset,f,P,U)}return F.buffer},packInto(O,U,k,F){let P=O;if(J?.mapValue)P=J.mapValue(O);for(let W of X){let f=P[W.name]??W.default;if(!W.optional&&f===void 0)console.warn(`packInto missing value for non-optional field '${W.name}' at offset ${k+W.offset}. Writing default or zero.`);if(W.validate)for(let T of W.validate)T(f,W.name,{hints:F?.validationHints,input:P});W.pack(U,k+W.offset,f,P,F)}},unpack(O){if(O.byteLength<L)IJ(`Buffer size (${O.byteLength}) is smaller than struct size (${L}) for unpacking.`);let U=new DataView(O),k=J?.default?{...J.default}:{};for(let F of X){if(!F.unpack)continue;try{k[F.name]=F.unpack(U,F.offset)}catch(P){throw console.error(`Error unpacking field '${F.name}' at offset ${F.offset}:`,P),P}}if(J?.reduceValue)return J.reduceValue(k);return k},packList(O,U){if(O.length===0)return new ArrayBuffer(0);let k=new ArrayBuffer(L*O.length),F=new DataView(k);for(let P=0;P<O.length;P++){let W=O[P];if(J?.mapValue)W=J.mapValue(O[P]);for(let f of X){let T=W[f.name]??f.default;if(!f.optional&&T===void 0)IJ(`Packing non-optional field '${f.name}' at index ${P} but value is undefined (and no default provided)`);if(f.validate)for(let g of f.validate)g(T,f.name,{hints:U?.validationHints,input:W});f.pack(F,P*L+f.offset,T,W,U)}}return k},unpackList(O,U){if(U===0)return[];let k=L*U;if(O.byteLength<k)IJ(`Buffer size (${O.byteLength}) is smaller than expected size (${k}) for unpacking ${U} structs.`);let F=new DataView(O),P=[];for(let W=0;W<U;W++){let f=W*L,T=J?.default?{...J.default}:{};for(let g of X){if(!g.unpack)continue;try{T[g.name]=g.unpack(F,f+g.offset)}catch(h){throw console.error(`Error unpacking field '${g.name}' at index ${W}, offset ${f+g.offset}:`,h),h}}if(J?.reduceValue)P.push(J.reduceValue(T));else P.push(T)}return P},describe(){return N}}}var jQ=(D)=>D?S(D.buffer):null,OQ=(D)=>D?l.fromArray(new Uint16Array(ED(D,0,8))):void 0,cX=ZD([["text","char*"],["text_len","u64",{lengthOf:"text"}],["fg","pointer",{optional:!0,packTransform:jQ,unpackTransform:OQ}],["bg","pointer",{optional:!0,packTransform:jQ,unpackTransform:OQ}],["attributes","u32",{default:0}],["link","char*",{default:""}],["link_len","u64",{lengthOf:"link"}]],{mapValue:(D)=>{let J=YX(D.fg??null),K=YX(D.bg??null);if(!D.link||typeof D.link==="string")return{...D,fg:J?.rgba??null,bg:K?.rgba??null};return{...D,fg:J?.rgba??null,bg:K?.rgba??null,link:D.link.url}}}),AK=ZD([["start","u32"],["end","u32"],["styleId","u32"],["priority","u8",{default:0}],["hlRef","u16",{default:0}]]),hD=ZD([["row","u32"],["col","u32"],["offset","u32"]]),wD=ZD([["visualRow","u32"],["visualCol","u32"],["logicalRow","u32"],["logicalCol","u32"],["offset","u32"]]),d2=eY({wcwidth:0,unicode:1},"u8"),vX=ZD([["kitty_keyboard","bool_u8"],["kitty_graphics","bool_u8"],["rgb","bool_u8"],["ansi256","bool_u8"],["unicode",d2],["sgr_pixels","bool_u8"],["color_scheme_updates","bool_u8"],["explicit_width","bool_u8"],["scaled_text","bool_u8"],["sixel","bool_u8"],["focus_tracking","bool_u8"],["sync","bool_u8"],["bracketed_paste","bool_u8"],["hyperlinks","bool_u8"],["osc52","bool_u8"],["notifications","bool_u8"],["explicit_cursor_positioning","bool_u8"],["in_tmux","bool_u8"],["term_name","char*"],["term_name_len","u64",{lengthOf:"term_name"}],["term_version","char*"],["term_version_len","u64",{lengthOf:"term_version"}],["term_from_xtversion","bool_u8"]]),dX=ZD([["width","u8"],["char","u32"]]),QJ=ZD([["startCols",["u32"]],["startColsLen","u32",{lengthOf:"startCols"}],["widthCols",["u32"]],["widthColsLen","u32",{lengthOf:"widthCols"}],["sources",["u32"]],["sourcesLen","u32",{lengthOf:"sources"}],["wraps",["u32"]],["wrapsLen","u32",{lengthOf:"wraps"}],["widthColsMax","u32"]]),mX=ZD([["lineCount","u32"],["widthColsMax","u32"]]),uX=ZD([["x","u32"],["y","u32"],["visible","bool_u8"],["style","u8"],["blinking","bool_u8"],["r","f32"],["g","f32"],["b","f32"],["a","f32"]]),m2=ZD([["style","u8",{default:255}],["blinking","u8",{default:255}],["color","pointer",{optional:!0,packTransform:jQ,unpackTransform:OQ}],["cursor","u8",{default:255}]]),u2=ZD([["drawInner","bool_u8",{default:!0}],["drawOuter","bool_u8",{default:!0}]]),iX=ZD([["gpaSafeStats","bool_u8"],["gpaMemoryLimitTracking","bool_u8"]]),lX=ZD([["totalRequestedBytes","u64"],["activeAllocations","u64"],["smallAllocations","u64"],["largeAllocations","u64"],["requestedBytesValid","bool_u8"]]),aX=ZD([["lastFrameTime","f64"],["averageFrameTime","f64"],["renderTime","f64"],["stdoutWriteTime","f64"],["frameCount","u64"],["cellsUpdated","u32"],["averageCellsUpdated","u32"],["renderTimeValid","bool_u8"],["stdoutWriteTimeValid","bool_u8"]]),i2=eY({grow:0,block:1},"u8"),sX=ZD([["chunkSize","u32",{default:65536}],["initialChunks","u32",{default:2}],["maxBytes","u64",{default:0n}],["growthPolicy",i2,{default:"grow"}],["autoCommitOnFull","bool_u8",{default:!0}],["spanQueueCapacity","u32",{default:0}]]),oX=ZD([["bytesWritten","u64"],["spansCommitted","u64"],["chunks","u32"],["pendingSpans","u32"]]),I7=ZD([["chunkPtr","pointer"],["offset","u32"],["len","u32"],["chunkIndex","u32"],["reserved","u32",{default:0}]],{reduceValue:(D)=>({chunkPtr:D.chunkPtr,offset:D.offset,len:D.len,chunkIndex:D.chunkIndex})}),rX=ZD([["ptr","pointer"],["len","u32"],["reserved","u32",{default:0}]],{reduceValue:(D)=>({ptr:D.ptr,len:D.len})}),l2=ZD([["sampleRate","u32",{default:48000}],["playbackChannels","u32",{default:2}]]),a2=ZD([["periodSizeInFrames","u32",{default:0}],["periodSizeInMilliseconds","u32",{default:0}],["periods","u32",{default:0}],["performanceProfile","u8",{default:0}],["shareMode","u8",{default:0}],["noPreSilencedOutputBuffer","bool_u8",{default:!1}],["noClip","bool_u8",{default:!1}],["noDisableDenormals","bool_u8",{default:!1}],["noFixedSizedCallback","bool_u8",{default:!1}],["wasapiNoAutoConvertSrc","bool_u8",{default:!1}],["wasapiNoDefaultQualitySrc","bool_u8",{default:!1}],["alsaNoMMap","bool_u8",{default:!1}],["alsaNoAutoFormat","bool_u8",{default:!1}],["alsaNoAutoChannels","bool_u8",{default:!1}],["alsaNoAutoResample","bool_u8",{default:!1}]]),s2=ZD([["volume","f32",{default:1}],["pan","f32",{default:0}],["loop","bool_u8",{default:!1}],["groupId","u32",{default:0}]]),nX=ZD([["soundsLoaded","u32"],["voicesActive","u32"],["framesMixed","u64"],["lockMisses","u32"],["lastPeak","f32"],["lastRms","f32"]]),o2=await import(`@opentui/core-${process.platform}-${process.arch}`),vJ=o2.default;if(gY(vJ))vJ=vJ.replace("../","");if(!w2(vJ))throw Error(`opentui is not supported on the current platform: ${process.platform}-${process.arch}`);AD({name:"OTUI_DEBUG_FFI",description:"Enable debug logging for the FFI bindings.",type:"boolean",default:!1});AD({name:"OTUI_TRACE_FFI",description:"Enable tracing for the FFI bindings.",type:"boolean",default:!1});AD({name:"OPENTUI_FORCE_WCWIDTH",description:"Use wcwidth for character width calculations",type:"boolean",default:!1});AD({name:"OPENTUI_FORCE_UNICODE",description:"Force Mode 2026 Unicode support in terminal capabilities",type:"boolean",default:!1});AD({name:"OPENTUI_GRAPHICS",description:"Enable Kitty graphics protocol detection",type:"boolean",default:!0});AD({name:"OPENTUI_FORCE_NOZWJ",description:"Use no_zwj width method (Unicode without ZWJ joining)",type:"boolean",default:!1});var r2={block:0,line:1,underline:2,default:3},n2=["block","line","underline","default"],t2={default:0,pointer:1,text:2,crosshair:3,move:4,"not-allowed":5},NJ=null,LK=null,tX=!1;function VJ(D){return typeof D==="bigint"?Number(D):D}function $D(D){return S(D.buffer)}function QD(D){return D?$D(D):null}function e2(D){let K=I2(D||vJ,{setLogCallback:{args:["ptr"],returns:"void"},createEventSink:{args:["ptr"],returns:"ptr"},destroyEventSink:{args:["ptr"],returns:"void"},createRenderer:{args:["u32","u32","bool","bool"],returns:"ptr"},setTerminalEnvVar:{args:["ptr","ptr","usize","ptr","usize"],returns:"bool"},destroyRenderer:{args:["ptr"],returns:"void"},setUseThread:{args:["ptr","bool"],returns:"void"},setClearOnShutdown:{args:["ptr","bool"],returns:"void"},setBackgroundColor:{args:["ptr","ptr"],returns:"void"},setRenderOffset:{args:["ptr","u32"],returns:"void"},resetSplitScrollback:{args:["ptr","u32","u32"],returns:"u32"},syncSplitScrollback:{args:["ptr","u32"],returns:"u32"},getSplitOutputOffset:{args:["ptr","u32"],returns:"u32"},setPendingSplitFooterTransition:{args:["ptr","u8","u32","u32","u32","u32","u32"],returns:"void"},clearPendingSplitFooterTransition:{args:["ptr"],returns:"void"},updateStats:{args:["ptr","f64","u32","f64"],returns:"void"},updateMemoryStats:{args:["ptr","u32","u32","u32"],returns:"void"},getRenderStats:{args:["ptr","ptr"],returns:"void"},render:{args:["ptr","bool"],returns:"void"},repaintSplitFooter:{args:["ptr","u32","bool"],returns:"u32"},commitSplitFooterSnapshot:{args:["ptr","ptr","u32","bool","bool","u32","bool","bool","bool"],returns:"u32"},getNextBuffer:{args:["ptr"],returns:"ptr"},getCurrentBuffer:{args:["ptr"],returns:"ptr"},rendererSetPaletteState:{args:["ptr","ptr","usize","ptr","ptr","u32"],returns:"void"},queryPixelResolution:{args:["ptr"],returns:"void"},queryThemeColors:{args:["ptr"],returns:"void"},createOptimizedBuffer:{args:["u32","u32","bool","u8","ptr","usize"],returns:"ptr"},destroyOptimizedBuffer:{args:["ptr"],returns:"void"},drawFrameBuffer:{args:["ptr","i32","i32","ptr","u32","u32","u32","u32"],returns:"void"},getBufferWidth:{args:["ptr"],returns:"u32"},getBufferHeight:{args:["ptr"],returns:"u32"},bufferClear:{args:["ptr","ptr"],returns:"void"},bufferGetCharPtr:{args:["ptr"],returns:"ptr"},bufferGetFgPtr:{args:["ptr"],returns:"ptr"},bufferGetBgPtr:{args:["ptr"],returns:"ptr"},bufferGetAttributesPtr:{args:["ptr"],returns:"ptr"},bufferGetRespectAlpha:{args:["ptr"],returns:"bool"},bufferSetRespectAlpha:{args:["ptr","bool"],returns:"void"},bufferGetId:{args:["ptr","ptr","usize"],returns:"usize"},bufferGetRealCharSize:{args:["ptr"],returns:"u32"},bufferWriteResolvedChars:{args:["ptr","ptr","usize","bool"],returns:"u32"},bufferDrawText:{args:["ptr","ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferSetCellWithAlphaBlending:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferSetCell:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferFillRect:{args:["ptr","u32","u32","u32","u32","ptr"],returns:"void"},bufferColorMatrix:{args:["ptr","ptr","ptr","usize","f32","u8"],returns:"void"},bufferColorMatrixUniform:{args:["ptr","ptr","f32","u8"],returns:"void"},bufferResize:{args:["ptr","u32","u32"],returns:"void"},linkAlloc:{args:["ptr","u32"],returns:"u32"},linkGetUrl:{args:["u32","ptr","u32"],returns:"u32"},attributesWithLink:{args:["u32","u32"],returns:"u32"},attributesGetLinkId:{args:["u32"],returns:"u32"},resizeRenderer:{args:["ptr","u32","u32"],returns:"void"},setCursorPosition:{args:["ptr","i32","i32","bool"],returns:"void"},setCursorColor:{args:["ptr","ptr"],returns:"void"},getCursorState:{args:["ptr","ptr"],returns:"void"},setCursorStyleOptions:{args:["ptr","ptr"],returns:"void"},setDebugOverlay:{args:["ptr","bool","u8"],returns:"void"},clearTerminal:{args:["ptr"],returns:"void"},setTerminalTitle:{args:["ptr","ptr","usize"],returns:"void"},copyToClipboardOSC52:{args:["ptr","u8","ptr","usize"],returns:"bool"},clearClipboardOSC52:{args:["ptr","u8"],returns:"bool"},triggerNotification:{args:["ptr","ptr","usize","ptr","usize"],returns:"bool"},bufferDrawSuperSampleBuffer:{args:["ptr","u32","u32","ptr","usize","u8","u32"],returns:"void"},bufferDrawPackedBuffer:{args:["ptr","ptr","usize","u32","u32","u32","u32"],returns:"void"},bufferDrawGrayscaleBuffer:{args:["ptr","i32","i32","ptr","u32","u32","ptr","ptr"],returns:"void"},bufferDrawGrayscaleBufferSupersampled:{args:["ptr","i32","i32","ptr","u32","u32","ptr","ptr"],returns:"void"},bufferDrawGrid:{args:["ptr","ptr","ptr","ptr","ptr","u32","ptr","u32","ptr"],returns:"void"},bufferDrawBox:{args:["ptr","i32","i32","u32","u32","ptr","u32","ptr","ptr","ptr","u32","ptr","u32"],returns:"void"},bufferPushScissorRect:{args:["ptr","i32","i32","u32","u32"],returns:"void"},bufferPopScissorRect:{args:["ptr"],returns:"void"},bufferClearScissorRects:{args:["ptr"],returns:"void"},bufferPushOpacity:{args:["ptr","f32"],returns:"void"},bufferPopOpacity:{args:["ptr"],returns:"void"},bufferGetCurrentOpacity:{args:["ptr"],returns:"f32"},bufferClearOpacity:{args:["ptr"],returns:"void"},addToHitGrid:{args:["ptr","i32","i32","u32","u32","u32"],returns:"void"},clearCurrentHitGrid:{args:["ptr"],returns:"void"},hitGridPushScissorRect:{args:["ptr","i32","i32","u32","u32"],returns:"void"},hitGridPopScissorRect:{args:["ptr"],returns:"void"},hitGridClearScissorRects:{args:["ptr"],returns:"void"},addToCurrentHitGridClipped:{args:["ptr","i32","i32","u32","u32","u32"],returns:"void"},checkHit:{args:["ptr","u32","u32"],returns:"u32"},getHitGridDirty:{args:["ptr"],returns:"bool"},dumpHitGrid:{args:["ptr"],returns:"void"},dumpBuffers:{args:["ptr","i64"],returns:"void"},dumpStdoutBuffer:{args:["ptr","i64"],returns:"void"},restoreTerminalModes:{args:["ptr"],returns:"void"},enableMouse:{args:["ptr","bool"],returns:"void"},disableMouse:{args:["ptr"],returns:"void"},enableKittyKeyboard:{args:["ptr","u8"],returns:"void"},disableKittyKeyboard:{args:["ptr"],returns:"void"},setKittyKeyboardFlags:{args:["ptr","u8"],returns:"void"},getKittyKeyboardFlags:{args:["ptr"],returns:"u8"},setupTerminal:{args:["ptr","bool"],returns:"void"},suspendRenderer:{args:["ptr"],returns:"void"},resumeRenderer:{args:["ptr"],returns:"void"},writeOut:{args:["ptr","ptr","u64"],returns:"void"},createTextBuffer:{args:["u8"],returns:"ptr"},destroyTextBuffer:{args:["ptr"],returns:"void"},textBufferGetLength:{args:["ptr"],returns:"u32"},textBufferGetByteSize:{args:["ptr"],returns:"u32"},textBufferReset:{args:["ptr"],returns:"void"},textBufferClear:{args:["ptr"],returns:"void"},textBufferSetDefaultFg:{args:["ptr","ptr"],returns:"void"},textBufferSetDefaultBg:{args:["ptr","ptr"],returns:"void"},textBufferSetDefaultAttributes:{args:["ptr","ptr"],returns:"void"},textBufferResetDefaults:{args:["ptr"],returns:"void"},textBufferGetTabWidth:{args:["ptr"],returns:"u8"},textBufferSetTabWidth:{args:["ptr","u8"],returns:"void"},textBufferRegisterMemBuffer:{args:["ptr","ptr","usize","bool"],returns:"u16"},textBufferReplaceMemBuffer:{args:["ptr","u8","ptr","usize","bool"],returns:"bool"},textBufferClearMemRegistry:{args:["ptr"],returns:"void"},textBufferSetTextFromMem:{args:["ptr","u8"],returns:"void"},textBufferAppend:{args:["ptr","ptr","usize"],returns:"void"},textBufferAppendFromMemId:{args:["ptr","u8"],returns:"void"},textBufferLoadFile:{args:["ptr","ptr","usize"],returns:"bool"},textBufferSetStyledText:{args:["ptr","ptr","usize"],returns:"void"},textBufferGetLineCount:{args:["ptr"],returns:"u32"},textBufferGetPlainText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferAddHighlightByCharRange:{args:["ptr","ptr"],returns:"void"},textBufferAddHighlight:{args:["ptr","u32","ptr"],returns:"void"},textBufferRemoveHighlightsByRef:{args:["ptr","u16"],returns:"void"},textBufferClearLineHighlights:{args:["ptr","u32"],returns:"void"},textBufferClearAllHighlights:{args:["ptr"],returns:"void"},textBufferSetSyntaxStyle:{args:["ptr","ptr"],returns:"void"},textBufferGetLineHighlightsPtr:{args:["ptr","u32","ptr"],returns:"ptr"},textBufferFreeLineHighlights:{args:["ptr","usize"],returns:"void"},textBufferGetHighlightCount:{args:["ptr"],returns:"u32"},textBufferGetTextRange:{args:["ptr","u32","u32","ptr","usize"],returns:"usize"},textBufferGetTextRangeByCoords:{args:["ptr","u32","u32","u32","u32","ptr","usize"],returns:"usize"},createTextBufferView:{args:["ptr"],returns:"ptr"},destroyTextBufferView:{args:["ptr"],returns:"void"},textBufferViewSetSelection:{args:["ptr","u32","u32","ptr","ptr"],returns:"void"},textBufferViewResetSelection:{args:["ptr"],returns:"void"},textBufferViewGetSelectionInfo:{args:["ptr"],returns:"u64"},textBufferViewSetLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr"],returns:"bool"},textBufferViewUpdateSelection:{args:["ptr","u32","ptr","ptr"],returns:"void"},textBufferViewUpdateLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr"],returns:"bool"},textBufferViewResetLocalSelection:{args:["ptr"],returns:"void"},textBufferViewSetWrapWidth:{args:["ptr","u32"],returns:"void"},textBufferViewSetWrapMode:{args:["ptr","u8"],returns:"void"},textBufferViewSetFirstLineOffset:{args:["ptr","u32"],returns:"void"},textBufferViewSetViewportSize:{args:["ptr","u32","u32"],returns:"void"},textBufferViewSetViewport:{args:["ptr","u32","u32","u32","u32"],returns:"void"},textBufferViewGetVirtualLineCount:{args:["ptr"],returns:"u32"},textBufferViewGetLineInfoDirect:{args:["ptr","ptr"],returns:"void"},textBufferViewGetLogicalLineInfoDirect:{args:["ptr","ptr"],returns:"void"},textBufferViewGetSelectedText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferViewGetPlainText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferViewSetTabIndicator:{args:["ptr","u32"],returns:"void"},textBufferViewSetTabIndicatorColor:{args:["ptr","ptr"],returns:"void"},textBufferViewSetTruncate:{args:["ptr","bool"],returns:"void"},textBufferViewMeasureForDimensions:{args:["ptr","u32","u32","ptr"],returns:"bool"},bufferDrawTextBufferView:{args:["ptr","ptr","i32","i32"],returns:"void"},bufferDrawEditorView:{args:["ptr","ptr","i32","i32"],returns:"void"},createEditorView:{args:["ptr","u32","u32"],returns:"ptr"},destroyEditorView:{args:["ptr"],returns:"void"},editorViewSetViewportSize:{args:["ptr","u32","u32"],returns:"void"},editorViewSetViewport:{args:["ptr","u32","u32","u32","u32","bool"],returns:"void"},editorViewGetViewport:{args:["ptr","ptr","ptr","ptr","ptr"],returns:"void"},editorViewSetScrollMargin:{args:["ptr","f32"],returns:"void"},editorViewSetWrapMode:{args:["ptr","u8"],returns:"void"},editorViewGetVirtualLineCount:{args:["ptr"],returns:"u32"},editorViewGetTotalVirtualLineCount:{args:["ptr"],returns:"u32"},editorViewGetTextBufferView:{args:["ptr"],returns:"ptr"},editorViewGetLineInfoDirect:{args:["ptr","ptr"],returns:"void"},editorViewGetLogicalLineInfoDirect:{args:["ptr","ptr"],returns:"void"},createEditBuffer:{args:["u8","ptr"],returns:"ptr"},destroyEditBuffer:{args:["ptr"],returns:"void"},editBufferSetText:{args:["ptr","ptr","usize"],returns:"void"},editBufferSetTextFromMem:{args:["ptr","u8"],returns:"void"},editBufferReplaceText:{args:["ptr","ptr","usize"],returns:"void"},editBufferReplaceTextFromMem:{args:["ptr","u8"],returns:"void"},editBufferGetText:{args:["ptr","ptr","usize"],returns:"usize"},editBufferInsertChar:{args:["ptr","ptr","usize"],returns:"void"},editBufferInsertText:{args:["ptr","ptr","usize"],returns:"void"},editBufferDeleteChar:{args:["ptr"],returns:"void"},editBufferDeleteCharBackward:{args:["ptr"],returns:"void"},editBufferDeleteRange:{args:["ptr","u32","u32","u32","u32"],returns:"void"},editBufferNewLine:{args:["ptr"],returns:"void"},editBufferDeleteLine:{args:["ptr"],returns:"void"},editBufferMoveCursorLeft:{args:["ptr"],returns:"void"},editBufferMoveCursorRight:{args:["ptr"],returns:"void"},editBufferMoveCursorUp:{args:["ptr"],returns:"void"},editBufferMoveCursorDown:{args:["ptr"],returns:"void"},editBufferGotoLine:{args:["ptr","u32"],returns:"void"},editBufferSetCursor:{args:["ptr","u32","u32"],returns:"void"},editBufferSetCursorToLineCol:{args:["ptr","u32","u32"],returns:"void"},editBufferSetCursorByOffset:{args:["ptr","u32"],returns:"void"},editBufferGetCursorPosition:{args:["ptr","ptr"],returns:"void"},editBufferGetId:{args:["ptr"],returns:"u16"},editBufferGetTextBuffer:{args:["ptr"],returns:"ptr"},editBufferDebugLogRope:{args:["ptr"],returns:"void"},editBufferUndo:{args:["ptr","ptr","usize"],returns:"usize"},editBufferRedo:{args:["ptr","ptr","usize"],returns:"usize"},editBufferCanUndo:{args:["ptr"],returns:"bool"},editBufferCanRedo:{args:["ptr"],returns:"bool"},editBufferClearHistory:{args:["ptr"],returns:"void"},editBufferClear:{args:["ptr"],returns:"void"},editBufferGetNextWordBoundary:{args:["ptr","ptr"],returns:"void"},editBufferGetPrevWordBoundary:{args:["ptr","ptr"],returns:"void"},editBufferGetEOL:{args:["ptr","ptr"],returns:"void"},editBufferOffsetToPosition:{args:["ptr","u32","ptr"],returns:"bool"},editBufferPositionToOffset:{args:["ptr","u32","u32"],returns:"u32"},editBufferGetLineStartOffset:{args:["ptr","u32"],returns:"u32"},editBufferGetTextRange:{args:["ptr","u32","u32","ptr","usize"],returns:"usize"},editBufferGetTextRangeByCoords:{args:["ptr","u32","u32","u32","u32","ptr","usize"],returns:"usize"},editorViewSetSelection:{args:["ptr","u32","u32","ptr","ptr"],returns:"void"},editorViewResetSelection:{args:["ptr"],returns:"void"},editorViewGetSelection:{args:["ptr"],returns:"u64"},editorViewSetLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr","bool","bool"],returns:"bool"},editorViewUpdateSelection:{args:["ptr","u32","ptr","ptr"],returns:"void"},editorViewUpdateLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr","bool","bool"],returns:"bool"},editorViewResetLocalSelection:{args:["ptr"],returns:"void"},editorViewGetSelectedTextBytes:{args:["ptr","ptr","usize"],returns:"usize"},editorViewGetCursor:{args:["ptr","ptr","ptr"],returns:"void"},editorViewGetText:{args:["ptr","ptr","usize"],returns:"usize"},editorViewGetVisualCursor:{args:["ptr","ptr"],returns:"void"},editorViewMoveUpVisual:{args:["ptr"],returns:"void"},editorViewMoveDownVisual:{args:["ptr"],returns:"void"},editorViewDeleteSelectedText:{args:["ptr"],returns:"void"},editorViewSetCursorByOffset:{args:["ptr","u32"],returns:"void"},editorViewGetNextWordBoundary:{args:["ptr","ptr"],returns:"void"},editorViewGetPrevWordBoundary:{args:["ptr","ptr"],returns:"void"},editorViewGetEOL:{args:["ptr","ptr"],returns:"void"},editorViewGetVisualSOL:{args:["ptr","ptr"],returns:"void"},editorViewGetVisualEOL:{args:["ptr","ptr"],returns:"void"},editorViewSetPlaceholderStyledText:{args:["ptr","ptr","usize"],returns:"void"},editorViewSetTabIndicator:{args:["ptr","u32"],returns:"void"},editorViewSetTabIndicatorColor:{args:["ptr","ptr"],returns:"void"},getArenaAllocatedBytes:{args:[],returns:"usize"},getBuildOptions:{args:["ptr"],returns:"void"},getAllocatorStats:{args:["ptr"],returns:"void"},createSyntaxStyle:{args:[],returns:"ptr"},destroySyntaxStyle:{args:["ptr"],returns:"void"},syntaxStyleRegister:{args:["ptr","ptr","usize","ptr","ptr","u32"],returns:"u32"},syntaxStyleResolveByName:{args:["ptr","ptr","usize"],returns:"u32"},syntaxStyleGetStyleCount:{args:["ptr"],returns:"usize"},getTerminalCapabilities:{args:["ptr","ptr"],returns:"void"},processCapabilityResponse:{args:["ptr","ptr","usize"],returns:"void"},encodeUnicode:{args:["ptr","usize","ptr","ptr","u8"],returns:"bool"},freeUnicode:{args:["ptr","usize"],returns:"void"},bufferDrawChar:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},createAudioEngine:{args:["ptr"],returns:"ptr"},destroyAudioEngine:{args:["ptr"],returns:"void"},audioRefreshPlaybackDevices:{args:["ptr"],returns:"i32"},audioGetPlaybackDeviceCount:{args:["ptr"],returns:"u32"},audioGetPlaybackDeviceName:{args:["ptr","u32","ptr","usize"],returns:"usize"},audioIsPlaybackDeviceDefault:{args:["ptr","u32"],returns:"bool"},audioSelectPlaybackDevice:{args:["ptr","u32"],returns:"i32"},audioClearPlaybackDeviceSelection:{args:["ptr"],returns:"void"},audioStart:{args:["ptr","ptr"],returns:"i32"},audioStartMixer:{args:["ptr"],returns:"i32"},audioStop:{args:["ptr"],returns:"i32"},audioLoad:{args:["ptr","ptr","u64","ptr"],returns:"i32"},audioUnload:{args:["ptr","u32"],returns:"i32"},audioPlay:{args:["ptr","u32","ptr","ptr"],returns:"i32"},audioStopVoice:{args:["ptr","u32"],returns:"i32"},audioSetVoiceGroup:{args:["ptr","u32","u32"],returns:"i32"},audioCreateGroup:{args:["ptr","ptr","u64","ptr"],returns:"i32"},audioSetGroupVolume:{args:["ptr","u32","f32"],returns:"i32"},audioSetMasterVolume:{args:["ptr","f32"],returns:"i32"},audioMixToBuffer:{args:["ptr","ptr","u32","u8"],returns:"i32"},audioEnableTap:{args:["ptr","bool","u32"],returns:"i32"},audioReadTap:{args:["ptr","ptr","u32","u8","ptr"],returns:"i32"},audioGetStats:{args:["ptr","ptr"],returns:"i32"},createNativeSpanFeed:{args:["ptr"],returns:"ptr"},attachNativeSpanFeed:{args:["ptr"],returns:"i32"},destroyNativeSpanFeed:{args:["ptr"],returns:"void"},streamWrite:{args:["ptr","ptr","u64"],returns:"i32"},streamCommit:{args:["ptr"],returns:"i32"},streamDrainSpans:{args:["ptr","ptr","u32"],returns:"u32"},streamClose:{args:["ptr"],returns:"i32"},streamReserve:{args:["ptr","u32","ptr"],returns:"i32"},streamCommitReserved:{args:["ptr","u32"],returns:"i32"},streamSetOptions:{args:["ptr","ptr"],returns:"i32"},streamGetStats:{args:["ptr","ptr"],returns:"i32"},streamSetCallback:{args:["ptr","ptr"],returns:"void"}});if(XD.OTUI_DEBUG_FFI||XD.OTUI_TRACE_FFI)return{...K,symbols:D5(K.symbols)};return K}function D5(D){if(!NJ)NJ={};if(XD.OTUI_DEBUG_FFI&&!LK)LK=`ffi_otui_debug_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;let J={},K=!1;if(Object.entries(D).forEach(([Q,X])=>{J[Q]=X}),XD.OTUI_DEBUG_FFI&&LK){let Q=LK,X=(Y)=>{z2(Q,Y+`
|
|
40
|
+
`,{flag:"a"})};Object.entries(D).forEach(([Y,Z])=>{if(typeof Z==="function")J[Y]=(..._)=>{X(`${Y}(${_.map((N)=>String(N)).join(", ")})`);let L=Z(..._);return X(`${Y} returned: ${String(L)}`),L}})}if(XD.OTUI_TRACE_FFI)K=!0,Object.entries(D).forEach(([Q,X])=>{if(typeof X==="function"){if(!NJ[Q])NJ[Q]=[];let Y=J[Q];J[Q]=(...Z)=>{let _=performance.now(),L=Y(...Z),N=performance.now();return NJ[Q].push(N-_),L}}});if((XD.OTUI_DEBUG_FFI||XD.OTUI_TRACE_FFI)&&!tX)tX=!0,process.on("exit",()=>{if(NJ){let Q=[];for(let[Z,_]of Object.entries(NJ)){if(!Array.isArray(_)||_.length===0)continue;let L=[..._].sort((g,h)=>g-h),N=L.length,V=L.reduce((g,h)=>g+h,0),G=V/N,O=L[0],U=L[N-1],k=Math.floor(N/2),F=Math.floor(N*0.9),P=Math.floor(N*0.99),W=L[k],f=L[Math.min(F,N-1)],T=L[Math.min(P,N-1)];Q.push({name:Z,count:N,total:V,average:G,min:O,max:U,median:W,p90:f,p99:T})}Q.sort((Z,_)=>_.total-Z.total);let X=[];if(X.push(`
|
|
41
|
+
--- OpenTUI FFI Call Performance ---`),X.push("Sorted by total time spent (descending)"),X.push("-------------------------------------------------------------------------------------------------------------------------"),Q.length===0)X.push("No trace data collected or all symbols had zero calls.");else{let F=Math.max(6,...Q.map((I)=>I.name.length)),P=Math.max(5,...Q.map((I)=>String(I.count).length)),W=Math.max(10,...Q.map((I)=>I.total.toFixed(2).length)),f=Math.max(8,...Q.map((I)=>I.average.toFixed(2).length)),T=Math.max(8,...Q.map((I)=>I.min.toFixed(2).length)),g=Math.max(8,...Q.map((I)=>I.max.toFixed(2).length)),h=Math.max(8,...Q.map((I)=>I.median.toFixed(2).length)),y=Math.max(8,...Q.map((I)=>I.p90.toFixed(2).length)),B=Math.max(8,...Q.map((I)=>I.p99.toFixed(2).length));X.push(`${"Symbol".padEnd(F)} | ${"Calls".padStart(P)} | ${"Total (ms)".padStart(W)} | ${"Avg (ms)".padStart(f)} | ${"Min (ms)".padStart(T)} | ${"Max (ms)".padStart(g)} | ${"Med (ms)".padStart(h)} | ${"P90 (ms)".padStart(y)} | ${"P99 (ms)".padStart(B)}`),X.push(`${"-".repeat(F)}-+-${"-".repeat(P)}-+-${"-".repeat(W)}-+-${"-".repeat(f)}-+-${"-".repeat(T)}-+-${"-".repeat(g)}-+-${"-".repeat(h)}-+-${"-".repeat(y)}-+-${"-".repeat(B)}`),Q.forEach((I)=>{X.push(`${I.name.padEnd(F)} | ${String(I.count).padStart(P)} | ${I.total.toFixed(2).padStart(W)} | ${I.average.toFixed(2).padStart(f)} | ${I.min.toFixed(2).padStart(T)} | ${I.max.toFixed(2).padStart(g)} | ${I.median.toFixed(2).padStart(h)} | ${I.p90.toFixed(2).padStart(y)} | ${I.p99.toFixed(2).padStart(B)}`)})}X.push("-------------------------------------------------------------------------------------------------------------------------");let Y=X.join(`
|
|
42
|
+
`);console.log(Y);try{let L=`ffi_otui_trace_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;T1(L,Y).catch((N)=>{console.error("Failed to write FFI trace file:",N)})}catch(Z){console.error("Failed to write FFI trace file:",Z)}}});return J}var J5;((D)=>{D[D.Error=0]="Error",D[D.Warn=1]="Warn",D[D.Info=2]="Info",D[D.Debug=3]="Debug"})(J5||={});class qQ{opentui;encoder=new TextEncoder;decoder=new TextDecoder;logCallbackWrapper=null;eventCallbackWrapper=null;eventSinkPtr=null;_nativeEvents=new f2;_anyEventHandlers=[];nativeSpanFeedCallbackWrapper=null;nativeSpanFeedHandlers=new Map;constructor(D){this.opentui=e2(D),this.setupLogging(),this.setupEventBus()}setupLogging(){if(this.logCallbackWrapper)return;let D=this.opentui.createCallback((J,K,Q)=>{try{let X=typeof Q==="bigint"?Number(Q):Q;if(X===0||!K)return;let Y=ED(K,0,X),Z=new Uint8Array(Y),_=this.decoder.decode(Z);switch(J){case 0:console.error(_);break;case 1:console.warn(_);break;case 2:console.info(_);break;case 3:console.debug(_);break;default:console.log(_)}}catch(X){console.error("Error in Zig log callback:",X)}},{args:["u8","ptr","usize"],returns:"void"});if(this.logCallbackWrapper=D,!D.ptr)throw Error("Failed to create log callback");this.setLogCallback(D.ptr)}setLogCallback(D){this.opentui.symbols.setLogCallback(D)}setupEventBus(){if(this.eventCallbackWrapper)return;let D=this.opentui.createCallback((J,K,Q,X)=>{try{let Y=typeof K==="bigint"?Number(K):K,Z=typeof X==="bigint"?Number(X):X;if(Y===0||!J)return;let _=this.decoder.decode(ED(J,0,Y)),L=Z>0&&Q?ED(Q,0,Z).slice(0):new ArrayBuffer(0);queueMicrotask(()=>{this._nativeEvents.emit(_,L);for(let N of this._anyEventHandlers)N(_,L)})}catch(Y){console.error("Error in native event callback:",Y)}},{args:["ptr","usize","ptr","usize"],returns:"void"});if(this.eventCallbackWrapper=D,!D.ptr)throw Error("Failed to create event callback");if(this.eventSinkPtr=this.opentui.symbols.createEventSink(D.ptr),!this.eventSinkPtr)throw D.close(),this.eventCallbackWrapper=null,Error("Failed to create native event sink")}ensureNativeSpanFeedCallback(){if(this.nativeSpanFeedCallbackWrapper)return this.nativeSpanFeedCallbackWrapper;let D=this.opentui.createCallback((J,K,Q,X)=>{let Y=this.nativeSpanFeedHandlers.get(J);if(Y)Y(K,Q,X)},{args:["ptr","u32","ptr","u64"],returns:"void"});if(this.nativeSpanFeedCallbackWrapper=D,!D.ptr)throw Error("Failed to create native span feed callback");return D}createRenderer(D,J,K={}){let Q=K.testing??!1,X=K.remote??!1;return this.opentui.symbols.createRenderer(D,J,KD(Q),KD(X))}setTerminalEnvVar(D,J,K){let Q=this.encoder.encode(J),X=this.encoder.encode(K);return this.opentui.symbols.setTerminalEnvVar(D,Q,Q.length,X,X.length)}destroyRenderer(D){this.opentui.symbols.destroyRenderer(D)}setUseThread(D,J){this.opentui.symbols.setUseThread(D,KD(J))}setClearOnShutdown(D,J){this.opentui.symbols.setClearOnShutdown(D,KD(J))}setBackgroundColor(D,J){this.opentui.symbols.setBackgroundColor(D,$D(J))}setRenderOffset(D,J){this.opentui.symbols.setRenderOffset(D,J)}resetSplitScrollback(D,J,K){return this.opentui.symbols.resetSplitScrollback(D,J,K)}syncSplitScrollback(D,J){return this.opentui.symbols.syncSplitScrollback(D,J)}getSplitOutputOffset(D,J){return this.opentui.symbols.getSplitOutputOffset(D,J)}setPendingSplitFooterTransition(D,J,K,Q,X,Y,Z){this.opentui.symbols.setPendingSplitFooterTransition(D,J,K,Q,X,Y,Z)}clearPendingSplitFooterTransition(D){this.opentui.symbols.clearPendingSplitFooterTransition(D)}updateStats(D,J,K,Q){this.opentui.symbols.updateStats(D,J,K,Q)}updateMemoryStats(D,J,K,Q){this.opentui.symbols.updateMemoryStats(D,J,K,Q)}getRenderStats(D){let J=new ArrayBuffer(aX.size);this.opentui.symbols.getRenderStats(D,S(J));let K=aX.unpack(J);return{nativeLastFrameTime:K.lastFrameTime,nativeAverageFrameTime:K.averageFrameTime,nativeFrameCount:VJ(K.frameCount),cellsUpdated:K.cellsUpdated,averageCellsUpdated:K.averageCellsUpdated,nativeRenderTime:K.renderTimeValid?K.renderTime:void 0,nativeStdoutWriteTime:K.stdoutWriteTimeValid?K.stdoutWriteTime:void 0}}getNextBuffer(D){let J=this.opentui.symbols.getNextBuffer(D);if(!J)throw Error("Failed to get next buffer");let K=this.opentui.symbols.getBufferWidth(J),Q=this.opentui.symbols.getBufferHeight(J);return new fD(this,J,K,Q,{id:"next buffer",widthMethod:"unicode"})}getCurrentBuffer(D){let J=this.opentui.symbols.getCurrentBuffer(D);if(!J)throw Error("Failed to get current buffer");let K=this.opentui.symbols.getBufferWidth(J),Q=this.opentui.symbols.getBufferHeight(J);return new fD(this,J,K,Q,{id:"current buffer",widthMethod:"unicode"})}rendererSetPaletteState(D,J,K,Q,X){let Y=new Uint16Array(J.length*4);for(let Z=0;Z<J.length;Z++)Y.set(J[Z].buffer,Z*4);this.opentui.symbols.rendererSetPaletteState(D,S(Y),J.length,$D(K),$D(Q),X>>>0)}bufferGetCharPtr(D){let J=this.opentui.symbols.bufferGetCharPtr(D);if(!J)throw Error("Failed to get char pointer");return J}bufferGetFgPtr(D){let J=this.opentui.symbols.bufferGetFgPtr(D);if(!J)throw Error("Failed to get fg pointer");return J}bufferGetBgPtr(D){let J=this.opentui.symbols.bufferGetBgPtr(D);if(!J)throw Error("Failed to get bg pointer");return J}bufferGetAttributesPtr(D){let J=this.opentui.symbols.bufferGetAttributesPtr(D);if(!J)throw Error("Failed to get attributes pointer");return J}bufferGetRespectAlpha(D){return this.opentui.symbols.bufferGetRespectAlpha(D)}bufferSetRespectAlpha(D,J){this.opentui.symbols.bufferSetRespectAlpha(D,KD(J))}bufferGetId(D){let K=new Uint8Array(256),Q=this.opentui.symbols.bufferGetId(D,K,256),X=typeof Q==="bigint"?Number(Q):Q;return this.decoder.decode(K.slice(0,X))}bufferGetRealCharSize(D){return this.opentui.symbols.bufferGetRealCharSize(D)}bufferWriteResolvedChars(D,J,K){let Q=this.opentui.symbols.bufferWriteResolvedChars(D,J,J.length,KD(K));return typeof Q==="bigint"?Number(Q):Q}getBufferWidth(D){return this.opentui.symbols.getBufferWidth(D)}getBufferHeight(D){return this.opentui.symbols.getBufferHeight(D)}bufferClear(D,J){this.opentui.symbols.bufferClear(D,$D(J))}bufferDrawText(D,J,K,Q,X,Y,Z){let _=this.encoder.encode(J),L=_.byteLength,N=QD(Y),V=$D(X);this.opentui.symbols.bufferDrawText(D,_,L,K,Q,V,N,Z??0)}bufferSetCellWithAlphaBlending(D,J,K,Q,X,Y,Z){let _=Q.codePointAt(0)??" ".codePointAt(0),L=$D(Y),N=$D(X);this.opentui.symbols.bufferSetCellWithAlphaBlending(D,J,K,_,N,L,Z??0)}bufferSetCell(D,J,K,Q,X,Y,Z){let _=Q.codePointAt(0)??" ".codePointAt(0),L=$D(Y),N=$D(X);this.opentui.symbols.bufferSetCell(D,J,K,_,N,L,Z??0)}bufferFillRect(D,J,K,Q,X,Y){let Z=$D(Y);this.opentui.symbols.bufferFillRect(D,J,K,Q,X,Z)}bufferColorMatrix(D,J,K,Q,X,Y){this.opentui.symbols.bufferColorMatrix(D,J,K,Q,X,Y)}bufferColorMatrixUniform(D,J,K,Q){this.opentui.symbols.bufferColorMatrixUniform(D,J,K,Q)}bufferDrawSuperSampleBuffer(D,J,K,Q,X,Y,Z){let _=Y==="bgra8unorm"?0:1;this.opentui.symbols.bufferDrawSuperSampleBuffer(D,J,K,Q,X,_,Z)}bufferDrawPackedBuffer(D,J,K,Q,X,Y,Z){this.opentui.symbols.bufferDrawPackedBuffer(D,J,K,Q,X,Y,Z)}bufferDrawGrayscaleBuffer(D,J,K,Q,X,Y,Z,_){this.opentui.symbols.bufferDrawGrayscaleBuffer(D,J,K,Q,X,Y,QD(Z),QD(_))}bufferDrawGrayscaleBufferSupersampled(D,J,K,Q,X,Y,Z,_){this.opentui.symbols.bufferDrawGrayscaleBufferSupersampled(D,J,K,Q,X,Y,QD(Z),QD(_))}bufferDrawGrid(D,J,K,Q,X,Y,Z,_,L){let N=u2.pack({drawInner:L.drawInner,drawOuter:L.drawOuter});this.opentui.symbols.bufferDrawGrid(D,J,$D(K),$D(Q),X,Y,Z,_,S(N))}bufferDrawBox(D,J,K,Q,X,Y,Z,_,L,N,V){let G=N?this.encoder.encode(N):null,O=N?G.length:0,U=N?G:null,k=V?this.encoder.encode(V):null,F=V?k.length:0,P=V?k:null;this.opentui.symbols.bufferDrawBox(D,J,K,Q,X,Y,Z,$D(_),$D(L),U,O,P,F)}bufferResize(D,J,K){this.opentui.symbols.bufferResize(D,J,K)}linkAlloc(D){let J=this.encoder.encode(D);return this.opentui.symbols.linkAlloc(J,J.length)}linkGetUrl(D,J=512){let K=new Uint8Array(J),Q=this.opentui.symbols.linkGetUrl(D,K,J);return this.decoder.decode(K.slice(0,Q))}attributesWithLink(D,J){return this.opentui.symbols.attributesWithLink(D,J)}attributesGetLinkId(D){return this.opentui.symbols.attributesGetLinkId(D)}resizeRenderer(D,J,K){this.opentui.symbols.resizeRenderer(D,J,K)}setCursorPosition(D,J,K,Q){this.opentui.symbols.setCursorPosition(D,J,K,KD(Q))}setCursorColor(D,J){this.opentui.symbols.setCursorColor(D,$D(J))}getCursorState(D){let J=new ArrayBuffer(uX.size);this.opentui.symbols.getCursorState(D,S(J));let K=uX.unpack(J);return{x:K.x,y:K.y,visible:K.visible,style:n2[K.style]??"block",blinking:K.blinking,color:l.fromValues(K.r,K.g,K.b,K.a)}}setCursorStyleOptions(D,J){let K=J.style!=null?r2[J.style]:255,Q=J.blinking!=null?J.blinking?1:0:255,X=J.cursor!=null?t2[J.cursor]:255,Y=m2.pack({style:K,blinking:Q,color:J.color,cursor:X});this.opentui.symbols.setCursorStyleOptions(D,S(Y))}render(D,J){this.opentui.symbols.render(D,KD(J))}repaintSplitFooter(D,J,K){return this.opentui.symbols.repaintSplitFooter(D,J,KD(K))}commitSplitFooterSnapshot(D,J,K,Q,X,Y,Z,_=!0,L=!0){return this.opentui.symbols.commitSplitFooterSnapshot(D,J.ptr,K,KD(Q),KD(X),Y,KD(Z),KD(_),KD(L))}createOptimizedBuffer(D,J,K,Q=!1,X){if(Number.isNaN(D)||Number.isNaN(J))console.error(Error(`Invalid dimensions for OptimizedBuffer: ${D}x${J}`).stack);let Y=K==="wcwidth"?0:1,Z=X||"unnamed buffer",_=this.encoder.encode(Z),L=this.opentui.symbols.createOptimizedBuffer(D,J,KD(Q),Y,_,_.length);if(!L)throw Error(`Failed to create optimized buffer: ${D}x${J}`);return new fD(this,L,D,J,{respectAlpha:Q,id:X,widthMethod:K})}destroyOptimizedBuffer(D){this.opentui.symbols.destroyOptimizedBuffer(D)}drawFrameBuffer(D,J,K,Q,X,Y,Z,_){let L=X??0,N=Y??0,V=Z??0,G=_??0;this.opentui.symbols.drawFrameBuffer(D,J,K,Q,L,N,V,G)}setDebugOverlay(D,J,K){this.opentui.symbols.setDebugOverlay(D,KD(J),K)}clearTerminal(D){this.opentui.symbols.clearTerminal(D)}setTerminalTitle(D,J){let K=this.encoder.encode(J);this.opentui.symbols.setTerminalTitle(D,K,K.length)}copyToClipboardOSC52(D,J,K){return this.opentui.symbols.copyToClipboardOSC52(D,J,K,K.length)}clearClipboardOSC52(D,J){return this.opentui.symbols.clearClipboardOSC52(D,J)}triggerNotification(D,J,K){let Q=this.encoder.encode(J),X=K===void 0?null:this.encoder.encode(K);return this.opentui.symbols.triggerNotification(D,Q,Q.length,X,X?.length??0)}addToHitGrid(D,J,K,Q,X,Y){this.opentui.symbols.addToHitGrid(D,J,K,Q,X,Y)}clearCurrentHitGrid(D){this.opentui.symbols.clearCurrentHitGrid(D)}hitGridPushScissorRect(D,J,K,Q,X){this.opentui.symbols.hitGridPushScissorRect(D,J,K,Q,X)}hitGridPopScissorRect(D){this.opentui.symbols.hitGridPopScissorRect(D)}hitGridClearScissorRects(D){this.opentui.symbols.hitGridClearScissorRects(D)}addToCurrentHitGridClipped(D,J,K,Q,X,Y){this.opentui.symbols.addToCurrentHitGridClipped(D,J,K,Q,X,Y)}checkHit(D,J,K){return this.opentui.symbols.checkHit(D,J,K)}getHitGridDirty(D){return this.opentui.symbols.getHitGridDirty(D)}dumpHitGrid(D){this.opentui.symbols.dumpHitGrid(D)}dumpBuffers(D,J){let K=J??Date.now();this.opentui.symbols.dumpBuffers(D,K)}dumpStdoutBuffer(D,J){let K=J??Date.now();this.opentui.symbols.dumpStdoutBuffer(D,K)}restoreTerminalModes(D){this.opentui.symbols.restoreTerminalModes(D)}enableMouse(D,J){this.opentui.symbols.enableMouse(D,KD(J))}disableMouse(D){this.opentui.symbols.disableMouse(D)}enableKittyKeyboard(D,J){this.opentui.symbols.enableKittyKeyboard(D,J)}disableKittyKeyboard(D){this.opentui.symbols.disableKittyKeyboard(D)}setKittyKeyboardFlags(D,J){this.opentui.symbols.setKittyKeyboardFlags(D,J)}getKittyKeyboardFlags(D){return this.opentui.symbols.getKittyKeyboardFlags(D)}setupTerminal(D,J){this.opentui.symbols.setupTerminal(D,KD(J))}suspendRenderer(D){this.opentui.symbols.suspendRenderer(D)}resumeRenderer(D){this.opentui.symbols.resumeRenderer(D)}queryPixelResolution(D){this.opentui.symbols.queryPixelResolution(D)}queryThemeColors(D){this.opentui.symbols.queryThemeColors(D)}writeOut(D,J){let K=typeof J==="string"?new TextEncoder().encode(J):J;if(K.length===0)return;this.opentui.symbols.writeOut(D,S(K),K.length)}createTextBuffer(D){let J=D==="wcwidth"?0:1,K=this.opentui.symbols.createTextBuffer(J);if(!K)throw Error("Failed to create TextBuffer");return new xQ(this,K)}destroyTextBuffer(D){this.opentui.symbols.destroyTextBuffer(D)}textBufferGetLength(D){return this.opentui.symbols.textBufferGetLength(D)}textBufferGetByteSize(D){return this.opentui.symbols.textBufferGetByteSize(D)}textBufferReset(D){this.opentui.symbols.textBufferReset(D)}textBufferClear(D){this.opentui.symbols.textBufferClear(D)}textBufferSetDefaultFg(D,J){let K=QD(J);this.opentui.symbols.textBufferSetDefaultFg(D,K)}textBufferSetDefaultBg(D,J){let K=QD(J);this.opentui.symbols.textBufferSetDefaultBg(D,K)}textBufferSetDefaultAttributes(D,J){let K=J===null?null:new Uint8Array([J]);this.opentui.symbols.textBufferSetDefaultAttributes(D,K)}textBufferResetDefaults(D){this.opentui.symbols.textBufferResetDefaults(D)}textBufferGetTabWidth(D){return this.opentui.symbols.textBufferGetTabWidth(D)}textBufferSetTabWidth(D,J){this.opentui.symbols.textBufferSetTabWidth(D,J)}textBufferRegisterMemBuffer(D,J,K=!1){let Q=this.opentui.symbols.textBufferRegisterMemBuffer(D,J,J.length,KD(K));if(Q===65535)throw Error("Failed to register memory buffer");return Q}textBufferReplaceMemBuffer(D,J,K,Q=!1){return this.opentui.symbols.textBufferReplaceMemBuffer(D,J,K,K.length,KD(Q))}textBufferClearMemRegistry(D){this.opentui.symbols.textBufferClearMemRegistry(D)}textBufferSetTextFromMem(D,J){this.opentui.symbols.textBufferSetTextFromMem(D,J)}textBufferAppend(D,J){this.opentui.symbols.textBufferAppend(D,J,J.length)}textBufferAppendFromMemId(D,J){this.opentui.symbols.textBufferAppendFromMemId(D,J)}textBufferLoadFile(D,J){let K=this.encoder.encode(J);return this.opentui.symbols.textBufferLoadFile(D,K,K.length)}textBufferSetStyledText(D,J){if(J.length===0){this.textBufferClear(D);return}let K=cX.packList(J);this.opentui.symbols.textBufferSetStyledText(D,S(K),J.length)}textBufferGetLineCount(D){return this.opentui.symbols.textBufferGetLineCount(D)}textBufferGetPlainText(D,J,K){let Q=this.opentui.symbols.textBufferGetPlainText(D,J,K);return typeof Q==="bigint"?Number(Q):Q}getPlainTextBytes(D,J){let K=new Uint8Array(J),Q=this.textBufferGetPlainText(D,S(K),J);if(Q===0)return null;return K.slice(0,Q)}textBufferGetTextRange(D,J,K,Q){let X=new Uint8Array(Q),Y=this.opentui.symbols.textBufferGetTextRange(D,J,K,S(X),Q),Z=typeof Y==="bigint"?Number(Y):Y;if(Z===0)return null;return X.slice(0,Z)}textBufferGetTextRangeByCoords(D,J,K,Q,X,Y){let Z=new Uint8Array(Y),_=this.opentui.symbols.textBufferGetTextRangeByCoords(D,J,K,Q,X,S(Z),Y),L=typeof _==="bigint"?Number(_):_;if(L===0)return null;return Z.slice(0,L)}createTextBufferView(D){let J=this.opentui.symbols.createTextBufferView(D);if(!J)throw Error("Failed to create TextBufferView");return J}destroyTextBufferView(D){this.opentui.symbols.destroyTextBufferView(D)}textBufferViewSetSelection(D,J,K,Q,X){let Y=QD(Q),Z=QD(X);this.opentui.symbols.textBufferViewSetSelection(D,J,K,Y,Z)}textBufferViewResetSelection(D){this.opentui.symbols.textBufferViewResetSelection(D)}textBufferViewGetSelection(D){let J=this.textBufferViewGetSelectionInfo(D);if(J===0xffff_ffff_ffff_ffffn)return null;let K=Number(J>>32n),Q=Number(J&0xffff_ffffn);return{start:K,end:Q}}textBufferViewGetSelectionInfo(D){return this.opentui.symbols.textBufferViewGetSelectionInfo(D)}textBufferViewSetLocalSelection(D,J,K,Q,X,Y,Z){let _=QD(Y),L=QD(Z);return this.opentui.symbols.textBufferViewSetLocalSelection(D,J,K,Q,X,_,L)}textBufferViewUpdateSelection(D,J,K,Q){let X=QD(K),Y=QD(Q);this.opentui.symbols.textBufferViewUpdateSelection(D,J,X,Y)}textBufferViewUpdateLocalSelection(D,J,K,Q,X,Y,Z){let _=QD(Y),L=QD(Z);return this.opentui.symbols.textBufferViewUpdateLocalSelection(D,J,K,Q,X,_,L)}textBufferViewResetLocalSelection(D){this.opentui.symbols.textBufferViewResetLocalSelection(D)}textBufferViewSetWrapWidth(D,J){this.opentui.symbols.textBufferViewSetWrapWidth(D,J)}textBufferViewSetWrapMode(D,J){let K=J==="none"?0:J==="char"?1:2;this.opentui.symbols.textBufferViewSetWrapMode(D,K)}textBufferViewSetFirstLineOffset(D,J){this.opentui.symbols.textBufferViewSetFirstLineOffset(D,J)}textBufferViewSetViewportSize(D,J,K){this.opentui.symbols.textBufferViewSetViewportSize(D,J,K)}textBufferViewSetViewport(D,J,K,Q,X){this.opentui.symbols.textBufferViewSetViewport(D,J,K,Q,X)}textBufferViewGetLineInfo(D){let J=new ArrayBuffer(QJ.size);this.textBufferViewGetLineInfoDirect(D,S(J));let K=QJ.unpack(J),Q=K.startCols,X=K.widthCols,Y=K.widthColsMax;return{lineStartCols:Q,lineWidthCols:X,lineWidthColsMax:Y,lineSources:K.sources,lineWraps:K.wraps}}textBufferViewGetLogicalLineInfo(D){let J=new ArrayBuffer(QJ.size);this.textBufferViewGetLogicalLineInfoDirect(D,S(J));let K=QJ.unpack(J),Q=K.startCols,X=K.widthCols,Y=K.widthColsMax;return{lineStartCols:Q,lineWidthCols:X,lineWidthColsMax:Y,lineSources:K.sources,lineWraps:K.wraps}}textBufferViewGetVirtualLineCount(D){return this.opentui.symbols.textBufferViewGetVirtualLineCount(D)}textBufferViewGetLineInfoDirect(D,J){this.opentui.symbols.textBufferViewGetLineInfoDirect(D,J)}textBufferViewGetLogicalLineInfoDirect(D,J){this.opentui.symbols.textBufferViewGetLogicalLineInfoDirect(D,J)}textBufferViewGetSelectedText(D,J,K){let Q=this.opentui.symbols.textBufferViewGetSelectedText(D,J,K);return typeof Q==="bigint"?Number(Q):Q}textBufferViewGetPlainText(D,J,K){let Q=this.opentui.symbols.textBufferViewGetPlainText(D,J,K);return typeof Q==="bigint"?Number(Q):Q}textBufferViewGetSelectedTextBytes(D,J){let K=new Uint8Array(J),Q=this.textBufferViewGetSelectedText(D,S(K),J);if(Q===0)return null;return K.slice(0,Q)}textBufferViewGetPlainTextBytes(D,J){let K=new Uint8Array(J),Q=this.textBufferViewGetPlainText(D,S(K),J);if(Q===0)return null;return K.slice(0,Q)}textBufferViewSetTabIndicator(D,J){this.opentui.symbols.textBufferViewSetTabIndicator(D,J)}textBufferViewSetTabIndicatorColor(D,J){this.opentui.symbols.textBufferViewSetTabIndicatorColor(D,$D(J))}textBufferViewSetTruncate(D,J){this.opentui.symbols.textBufferViewSetTruncate(D,KD(J))}textBufferViewMeasureForDimensions(D,J,K){let Q=new ArrayBuffer(mX.size),X=S(new Uint8Array(Q));if(!this.opentui.symbols.textBufferViewMeasureForDimensions(D,J,K,X))return null;return mX.unpack(Q)}textBufferAddHighlightByCharRange(D,J){let K=AK.pack(J);this.opentui.symbols.textBufferAddHighlightByCharRange(D,S(K))}textBufferAddHighlight(D,J,K){let Q=AK.pack(K);this.opentui.symbols.textBufferAddHighlight(D,J,S(Q))}textBufferRemoveHighlightsByRef(D,J){this.opentui.symbols.textBufferRemoveHighlightsByRef(D,J)}textBufferClearLineHighlights(D,J){this.opentui.symbols.textBufferClearLineHighlights(D,J)}textBufferClearAllHighlights(D){this.opentui.symbols.textBufferClearAllHighlights(D)}textBufferSetSyntaxStyle(D,J){this.opentui.symbols.textBufferSetSyntaxStyle(D,J)}textBufferGetLineHighlights(D,J){let K=new BigUint64Array(1),Q=this.opentui.symbols.textBufferGetLineHighlightsPtr(D,J,S(K));if(!Q)return[];let X=Number(K[0]),Y=X*AK.size,Z=ED(Q,0,Y),_=AK.unpackList(Z,X);return this.opentui.symbols.textBufferFreeLineHighlights(Q,X),_}textBufferGetHighlightCount(D){return this.opentui.symbols.textBufferGetHighlightCount(D)}getArenaAllocatedBytes(){let D=this.opentui.symbols.getArenaAllocatedBytes();return typeof D==="bigint"?Number(D):D}getBuildOptions(){let D=new ArrayBuffer(iX.size);this.opentui.symbols.getBuildOptions(S(D));let J=iX.unpack(D);return{gpaSafeStats:!!J.gpaSafeStats,gpaMemoryLimitTracking:!!J.gpaMemoryLimitTracking}}getAllocatorStats(){let D=new ArrayBuffer(lX.size);this.opentui.symbols.getAllocatorStats(S(D));let J=lX.unpack(D);return{totalRequestedBytes:VJ(J.totalRequestedBytes),activeAllocations:VJ(J.activeAllocations),smallAllocations:VJ(J.smallAllocations),largeAllocations:VJ(J.largeAllocations),requestedBytesValid:!!J.requestedBytesValid}}bufferDrawTextBufferView(D,J,K,Q){this.opentui.symbols.bufferDrawTextBufferView(D,J,K,Q)}bufferDrawEditorView(D,J,K,Q){this.opentui.symbols.bufferDrawEditorView(D,J,K,Q)}createEditorView(D,J,K){let Q=this.opentui.symbols.createEditorView(D,J,K);if(!Q)throw Error("Failed to create EditorView");return Q}destroyEditorView(D){this.opentui.symbols.destroyEditorView(D)}editorViewSetViewportSize(D,J,K){this.opentui.symbols.editorViewSetViewportSize(D,J,K)}editorViewSetViewport(D,J,K,Q,X,Y){this.opentui.symbols.editorViewSetViewport(D,J,K,Q,X,KD(Y))}editorViewGetViewport(D){let J=new Uint32Array(1),K=new Uint32Array(1),Q=new Uint32Array(1),X=new Uint32Array(1);return this.opentui.symbols.editorViewGetViewport(D,S(J),S(K),S(Q),S(X)),{offsetX:J[0],offsetY:K[0],width:Q[0],height:X[0]}}editorViewSetScrollMargin(D,J){this.opentui.symbols.editorViewSetScrollMargin(D,J)}editorViewSetWrapMode(D,J){let K=J==="none"?0:J==="char"?1:2;this.opentui.symbols.editorViewSetWrapMode(D,K)}editorViewGetVirtualLineCount(D){return this.opentui.symbols.editorViewGetVirtualLineCount(D)}editorViewGetTotalVirtualLineCount(D){return this.opentui.symbols.editorViewGetTotalVirtualLineCount(D)}editorViewGetTextBufferView(D){let J=this.opentui.symbols.editorViewGetTextBufferView(D);if(!J)throw Error("Failed to get TextBufferView from EditorView");return J}editorViewGetLineInfo(D){let J=new ArrayBuffer(QJ.size);this.opentui.symbols.editorViewGetLineInfoDirect(D,S(J));let K=QJ.unpack(J),Q=K.startCols,X=K.widthCols,Y=K.widthColsMax;return{lineStartCols:Q,lineWidthCols:X,lineWidthColsMax:Y,lineSources:K.sources,lineWraps:K.wraps}}editorViewGetLogicalLineInfo(D){let J=new ArrayBuffer(QJ.size);this.opentui.symbols.editorViewGetLogicalLineInfoDirect(D,S(J));let K=QJ.unpack(J),Q=K.startCols,X=K.widthCols,Y=K.widthColsMax;return{lineStartCols:Q,lineWidthCols:X,lineWidthColsMax:Y,lineSources:K.sources,lineWraps:K.wraps}}createEditBuffer(D){let J=D==="wcwidth"?0:1,K=this.opentui.symbols.createEditBuffer(J,this.eventSinkPtr);if(!K)throw Error("Failed to create EditBuffer");return K}destroyEditBuffer(D){this.opentui.symbols.destroyEditBuffer(D)}editBufferSetText(D,J){this.opentui.symbols.editBufferSetText(D,J,J.length)}editBufferSetTextFromMem(D,J){this.opentui.symbols.editBufferSetTextFromMem(D,J)}editBufferReplaceText(D,J){this.opentui.symbols.editBufferReplaceText(D,J,J.length)}editBufferReplaceTextFromMem(D,J){this.opentui.symbols.editBufferReplaceTextFromMem(D,J)}editBufferGetText(D,J){let K=new Uint8Array(J),Q=this.opentui.symbols.editBufferGetText(D,S(K),J),X=typeof Q==="bigint"?Number(Q):Q;if(X===0)return null;return K.slice(0,X)}editBufferInsertChar(D,J){let K=this.encoder.encode(J);this.opentui.symbols.editBufferInsertChar(D,K,K.length)}editBufferInsertText(D,J){let K=this.encoder.encode(J);this.opentui.symbols.editBufferInsertText(D,K,K.length)}editBufferDeleteChar(D){this.opentui.symbols.editBufferDeleteChar(D)}editBufferDeleteCharBackward(D){this.opentui.symbols.editBufferDeleteCharBackward(D)}editBufferDeleteRange(D,J,K,Q,X){this.opentui.symbols.editBufferDeleteRange(D,J,K,Q,X)}editBufferNewLine(D){this.opentui.symbols.editBufferNewLine(D)}editBufferDeleteLine(D){this.opentui.symbols.editBufferDeleteLine(D)}editBufferMoveCursorLeft(D){this.opentui.symbols.editBufferMoveCursorLeft(D)}editBufferMoveCursorRight(D){this.opentui.symbols.editBufferMoveCursorRight(D)}editBufferMoveCursorUp(D){this.opentui.symbols.editBufferMoveCursorUp(D)}editBufferMoveCursorDown(D){this.opentui.symbols.editBufferMoveCursorDown(D)}editBufferGotoLine(D,J){this.opentui.symbols.editBufferGotoLine(D,J)}editBufferSetCursor(D,J,K){this.opentui.symbols.editBufferSetCursor(D,J,K)}editBufferSetCursorToLineCol(D,J,K){this.opentui.symbols.editBufferSetCursorToLineCol(D,J,K)}editBufferSetCursorByOffset(D,J){this.opentui.symbols.editBufferSetCursorByOffset(D,J)}editBufferGetCursorPosition(D){let J=new ArrayBuffer(hD.size);return this.opentui.symbols.editBufferGetCursorPosition(D,S(J)),hD.unpack(J)}editBufferGetId(D){return this.opentui.symbols.editBufferGetId(D)}editBufferGetTextBuffer(D){let J=this.opentui.symbols.editBufferGetTextBuffer(D);if(!J)throw Error("Failed to get TextBuffer from EditBuffer");return J}editBufferDebugLogRope(D){this.opentui.symbols.editBufferDebugLogRope(D)}editBufferUndo(D,J){let K=new Uint8Array(J),Q=this.opentui.symbols.editBufferUndo(D,S(K),J),X=typeof Q==="bigint"?Number(Q):Q;if(X===0)return null;return K.slice(0,X)}editBufferRedo(D,J){let K=new Uint8Array(J),Q=this.opentui.symbols.editBufferRedo(D,S(K),J),X=typeof Q==="bigint"?Number(Q):Q;if(X===0)return null;return K.slice(0,X)}editBufferCanUndo(D){return this.opentui.symbols.editBufferCanUndo(D)}editBufferCanRedo(D){return this.opentui.symbols.editBufferCanRedo(D)}editBufferClearHistory(D){this.opentui.symbols.editBufferClearHistory(D)}editBufferClear(D){this.opentui.symbols.editBufferClear(D)}editBufferGetNextWordBoundary(D){let J=new ArrayBuffer(hD.size);return this.opentui.symbols.editBufferGetNextWordBoundary(D,S(J)),hD.unpack(J)}editBufferGetPrevWordBoundary(D){let J=new ArrayBuffer(hD.size);return this.opentui.symbols.editBufferGetPrevWordBoundary(D,S(J)),hD.unpack(J)}editBufferGetEOL(D){let J=new ArrayBuffer(hD.size);return this.opentui.symbols.editBufferGetEOL(D,S(J)),hD.unpack(J)}editBufferOffsetToPosition(D,J){let K=new ArrayBuffer(hD.size);if(!this.opentui.symbols.editBufferOffsetToPosition(D,J,S(K)))return null;return hD.unpack(K)}editBufferPositionToOffset(D,J,K){return this.opentui.symbols.editBufferPositionToOffset(D,J,K)}editBufferGetLineStartOffset(D,J){return this.opentui.symbols.editBufferGetLineStartOffset(D,J)}editBufferGetTextRange(D,J,K,Q){let X=new Uint8Array(Q),Y=this.opentui.symbols.editBufferGetTextRange(D,J,K,S(X),Q),Z=typeof Y==="bigint"?Number(Y):Y;if(Z===0)return null;return X.slice(0,Z)}editBufferGetTextRangeByCoords(D,J,K,Q,X,Y){let Z=new Uint8Array(Y),_=this.opentui.symbols.editBufferGetTextRangeByCoords(D,J,K,Q,X,S(Z),Y),L=typeof _==="bigint"?Number(_):_;if(L===0)return null;return Z.slice(0,L)}editorViewSetSelection(D,J,K,Q,X){let Y=QD(Q),Z=QD(X);this.opentui.symbols.editorViewSetSelection(D,J,K,Y,Z)}editorViewResetSelection(D){this.opentui.symbols.editorViewResetSelection(D)}editorViewGetSelection(D){let J=this.opentui.symbols.editorViewGetSelection(D);if(J===0xffff_ffff_ffff_ffffn)return null;let K=Number(J>>32n),Q=Number(J&0xffff_ffffn);return{start:K,end:Q}}editorViewSetLocalSelection(D,J,K,Q,X,Y,Z,_,L){let N=QD(Y),V=QD(Z);return this.opentui.symbols.editorViewSetLocalSelection(D,J,K,Q,X,N,V,KD(_),KD(L))}editorViewUpdateSelection(D,J,K,Q){let X=QD(K),Y=QD(Q);this.opentui.symbols.editorViewUpdateSelection(D,J,X,Y)}editorViewUpdateLocalSelection(D,J,K,Q,X,Y,Z,_,L){let N=QD(Y),V=QD(Z);return this.opentui.symbols.editorViewUpdateLocalSelection(D,J,K,Q,X,N,V,KD(_),KD(L))}editorViewResetLocalSelection(D){this.opentui.symbols.editorViewResetLocalSelection(D)}editorViewGetSelectedTextBytes(D,J){let K=new Uint8Array(J),Q=this.opentui.symbols.editorViewGetSelectedTextBytes(D,S(K),J),X=typeof Q==="bigint"?Number(Q):Q;if(X===0)return null;return K.slice(0,X)}editorViewGetCursor(D){let J=new Uint32Array(1),K=new Uint32Array(1);return this.opentui.symbols.editorViewGetCursor(D,S(J),S(K)),{row:J[0],col:K[0]}}editorViewGetText(D,J){let K=new Uint8Array(J),Q=this.opentui.symbols.editorViewGetText(D,S(K),J),X=typeof Q==="bigint"?Number(Q):Q;if(X===0)return null;return K.slice(0,X)}editorViewGetVisualCursor(D){let J=new ArrayBuffer(wD.size);return this.opentui.symbols.editorViewGetVisualCursor(D,S(J)),wD.unpack(J)}editorViewMoveUpVisual(D){this.opentui.symbols.editorViewMoveUpVisual(D)}editorViewMoveDownVisual(D){this.opentui.symbols.editorViewMoveDownVisual(D)}editorViewDeleteSelectedText(D){this.opentui.symbols.editorViewDeleteSelectedText(D)}editorViewSetCursorByOffset(D,J){this.opentui.symbols.editorViewSetCursorByOffset(D,J)}editorViewGetNextWordBoundary(D){let J=new ArrayBuffer(wD.size);return this.opentui.symbols.editorViewGetNextWordBoundary(D,S(J)),wD.unpack(J)}editorViewGetPrevWordBoundary(D){let J=new ArrayBuffer(wD.size);return this.opentui.symbols.editorViewGetPrevWordBoundary(D,S(J)),wD.unpack(J)}editorViewGetEOL(D){let J=new ArrayBuffer(wD.size);return this.opentui.symbols.editorViewGetEOL(D,S(J)),wD.unpack(J)}editorViewGetVisualSOL(D){let J=new ArrayBuffer(wD.size);return this.opentui.symbols.editorViewGetVisualSOL(D,S(J)),wD.unpack(J)}editorViewGetVisualEOL(D){let J=new ArrayBuffer(wD.size);return this.opentui.symbols.editorViewGetVisualEOL(D,S(J)),wD.unpack(J)}bufferPushScissorRect(D,J,K,Q,X){this.opentui.symbols.bufferPushScissorRect(D,J,K,Q,X)}bufferPopScissorRect(D){this.opentui.symbols.bufferPopScissorRect(D)}bufferClearScissorRects(D){this.opentui.symbols.bufferClearScissorRects(D)}bufferPushOpacity(D,J){this.opentui.symbols.bufferPushOpacity(D,J)}bufferPopOpacity(D){this.opentui.symbols.bufferPopOpacity(D)}bufferGetCurrentOpacity(D){return this.opentui.symbols.bufferGetCurrentOpacity(D)}bufferClearOpacity(D){this.opentui.symbols.bufferClearOpacity(D)}getTerminalCapabilities(D){let J=new ArrayBuffer(vX.size);this.opentui.symbols.getTerminalCapabilities(D,S(J));let K=vX.unpack(J);return{kitty_keyboard:K.kitty_keyboard,kitty_graphics:K.kitty_graphics,rgb:K.rgb,ansi256:K.ansi256,unicode:K.unicode,sgr_pixels:K.sgr_pixels,color_scheme_updates:K.color_scheme_updates,explicit_width:K.explicit_width,scaled_text:K.scaled_text,sixel:K.sixel,focus_tracking:K.focus_tracking,sync:K.sync,bracketed_paste:K.bracketed_paste,hyperlinks:K.hyperlinks,osc52:K.osc52,notifications:K.notifications,explicit_cursor_positioning:K.explicit_cursor_positioning,in_tmux:K.in_tmux,terminal:{name:K.term_name??"",version:K.term_version??"",from_xtversion:K.term_from_xtversion}}}processCapabilityResponse(D,J){let K=this.encoder.encode(J);this.opentui.symbols.processCapabilityResponse(D,K,K.length)}encodeUnicode(D,J){let K=this.encoder.encode(D),Q=J==="wcwidth"?0:1,X=new ArrayBuffer(8),Y=new ArrayBuffer(8);if(!this.opentui.symbols.encodeUnicode(K,K.length,S(X),S(Y),Q))return null;let _=new BigUint64Array(X),L=new BigUint64Array(Y),N=GK(_[0]),V=Number(L[0]);if(V===0)return{ptr:N,data:[]};let G=V*dX.size,O=ED(N,0,G),U=dX.unpackList(O,V);return{ptr:N,data:U}}freeUnicode(D){this.opentui.symbols.freeUnicode(D.ptr,D.data.length)}bufferDrawChar(D,J,K,Q,X,Y,Z=0){this.opentui.symbols.bufferDrawChar(D,J,K,Q,$D(X),$D(Y),Z)}createAudioEngine(D){let J=D==null?null:l2.pack(D),K=this.opentui.symbols.createAudioEngine(J?S(J):null);return K?GK(K):null}destroyAudioEngine(D){this.opentui.symbols.destroyAudioEngine(D)}audioRefreshPlaybackDevices(D){return this.opentui.symbols.audioRefreshPlaybackDevices(D)}audioGetPlaybackDeviceCount(D){return this.opentui.symbols.audioGetPlaybackDeviceCount(D)}audioGetPlaybackDeviceName(D,J){let K=new Uint8Array(512),Q=VJ(this.opentui.symbols.audioGetPlaybackDeviceName(D,J,S(K),K.length)),X=Math.max(0,Math.min(K.length,Q));return this.decoder.decode(K.subarray(0,X))}audioIsPlaybackDeviceDefault(D,J){return this.opentui.symbols.audioIsPlaybackDeviceDefault(D,J)}audioSelectPlaybackDevice(D,J){return this.opentui.symbols.audioSelectPlaybackDevice(D,J)}audioClearPlaybackDeviceSelection(D){this.opentui.symbols.audioClearPlaybackDeviceSelection(D)}audioStart(D,J){let K=J==null?null:a2.pack(J);return this.opentui.symbols.audioStart(D,K?S(K):null)}audioStartMixer(D){return this.opentui.symbols.audioStartMixer(D)}audioStop(D){return this.opentui.symbols.audioStop(D)}audioLoad(D,J){let K=new ArrayBuffer(4),Q=this.opentui.symbols.audioLoad(D,S(J),J.length,S(K));if(Q!==0)return{status:Q,soundId:null};let X=new Uint32Array(K);return{status:Q,soundId:X[0]}}audioUnload(D,J){return this.opentui.symbols.audioUnload(D,J)}audioPlay(D,J,K){let Q=new ArrayBuffer(4),X=K?s2.pack(K):null,Y=this.opentui.symbols.audioPlay(D,J,X?S(X):null,S(Q));if(Y!==0)return{status:Y,voiceId:null};let Z=new Uint32Array(Q);return{status:Y,voiceId:Z[0]}}audioStopVoice(D,J){return this.opentui.symbols.audioStopVoice(D,J)}audioSetVoiceGroup(D,J,K){return this.opentui.symbols.audioSetVoiceGroup(D,J,K)}audioCreateGroup(D,J){let K=new ArrayBuffer(4),Q=this.encoder.encode(J),X=this.opentui.symbols.audioCreateGroup(D,S(Q),Q.length,S(K));if(X!==0)return{status:X,groupId:null};let Y=new Uint32Array(K);return{status:X,groupId:Y[0]}}audioSetGroupVolume(D,J,K){return this.opentui.symbols.audioSetGroupVolume(D,J,K)}audioSetMasterVolume(D,J){return this.opentui.symbols.audioSetMasterVolume(D,J)}audioMixToBuffer(D,J,K,Q){return this.opentui.symbols.audioMixToBuffer(D,S(J),K,Q)}audioEnableTap(D,J,K){return this.opentui.symbols.audioEnableTap(D,J,K)}audioReadTap(D,J,K,Q){let X=new ArrayBuffer(4),Y=this.opentui.symbols.audioReadTap(D,S(J),K,Q,S(X));if(Y!==0)return{status:Y,framesRead:0};let Z=new Uint32Array(X);return{status:Y,framesRead:Z[0]??0}}audioGetStats(D){let J=new ArrayBuffer(nX.size);if(this.opentui.symbols.audioGetStats(D,S(J))!==0)return null;let Q=nX.unpack(J);return{soundsLoaded:Q.soundsLoaded,voicesActive:Q.voicesActive,framesMixed:typeof Q.framesMixed==="bigint"?Q.framesMixed:BigInt(Q.framesMixed),lockMisses:Q.lockMisses,lastPeak:Q.lastPeak,lastRms:Q.lastRms}}registerNativeSpanFeedStream(D,J){let K=this.ensureNativeSpanFeedCallback();this.nativeSpanFeedHandlers.set(D,J),this.opentui.symbols.streamSetCallback(D,K.ptr)}unregisterNativeSpanFeedStream(D){this.opentui.symbols.streamSetCallback(D,null),this.nativeSpanFeedHandlers.delete(D)}createNativeSpanFeed(D){let J=D==null?null:sX.pack(D),K=this.opentui.symbols.createNativeSpanFeed(J?S(J):null);if(!K)throw Error("Failed to create stream");return K}attachNativeSpanFeed(D){return this.opentui.symbols.attachNativeSpanFeed(D)}destroyNativeSpanFeed(D){this.opentui.symbols.destroyNativeSpanFeed(D),this.nativeSpanFeedHandlers.delete(D)}streamWrite(D,J){let K=typeof J==="string"?this.encoder.encode(J):J;return this.opentui.symbols.streamWrite(D,S(K),K.length)}streamCommit(D){return this.opentui.symbols.streamCommit(D)}streamDrainSpans(D,J,K){let Q=this.opentui.symbols.streamDrainSpans(D,S(J),K);return VJ(Q)}streamClose(D){return this.opentui.symbols.streamClose(D)}streamSetOptions(D,J){let K=sX.pack(J);return this.opentui.symbols.streamSetOptions(D,S(K))}streamGetStats(D){let J=new ArrayBuffer(oX.size);if(this.opentui.symbols.streamGetStats(D,S(J))!==0)return null;let Q=oX.unpack(J);return{bytesWritten:typeof Q.bytesWritten==="bigint"?Q.bytesWritten:BigInt(Q.bytesWritten),spansCommitted:typeof Q.spansCommitted==="bigint"?Q.spansCommitted:BigInt(Q.spansCommitted),chunks:Q.chunks,pendingSpans:Q.pendingSpans}}streamReserve(D,J){let K=new ArrayBuffer(rX.size),Q=this.opentui.symbols.streamReserve(D,J,S(K));if(Q!==0)return{status:Q,info:null};return{status:Q,info:rX.unpack(K)}}streamCommitReserved(D,J){return this.opentui.symbols.streamCommitReserved(D,J)}createSyntaxStyle(){let D=this.opentui.symbols.createSyntaxStyle();if(!D)throw Error("Failed to create SyntaxStyle");return D}destroySyntaxStyle(D){this.opentui.symbols.destroySyntaxStyle(D)}syntaxStyleRegister(D,J,K,Q,X){let Y=this.encoder.encode(J),Z=QD(K),_=QD(Q);return this.opentui.symbols.syntaxStyleRegister(D,Y,Y.length,Z,_,X)}syntaxStyleResolveByName(D,J){let K=this.encoder.encode(J),Q=this.opentui.symbols.syntaxStyleResolveByName(D,K,K.length);return Q===0?null:Q}syntaxStyleGetStyleCount(D){let J=this.opentui.symbols.syntaxStyleGetStyleCount(D);return typeof J==="bigint"?Number(J):J}editorViewSetPlaceholderStyledText(D,J){let K=J.filter((X)=>X.text.length>0);if(K.length===0){this.opentui.symbols.editorViewSetPlaceholderStyledText(D,null,0);return}let Q=cX.packList(K);this.opentui.symbols.editorViewSetPlaceholderStyledText(D,S(Q),K.length)}editorViewSetTabIndicator(D,J){this.opentui.symbols.editorViewSetTabIndicator(D,J)}editorViewSetTabIndicatorColor(D,J){this.opentui.symbols.editorViewSetTabIndicatorColor(D,$D(J))}onNativeEvent(D,J){this._nativeEvents.on(D,J)}onceNativeEvent(D,J){this._nativeEvents.once(D,J)}offNativeEvent(D,J){this._nativeEvents.off(D,J)}onAnyNativeEvent(D){this._anyEventHandlers.push(D)}}var kK,dJ;function w7(D){if(kK!==D)kK=D,dJ=void 0}function bD(){if(!dJ)try{dJ=new qQ(kK)}catch(D){throw Error(`Failed to initialize OpenTUI render library: ${D instanceof Error?D.message:"Unknown error"}`)}return dJ}try{dJ=new qQ(kK)}catch(D){}class xQ{lib;bufferPtr;_length=0;_byteSize=0;_lineInfo;_destroyed=!1;_syntaxStyle;_textBytes;_memId;_appendedChunks=[];constructor(D,J){this.lib=D,this.bufferPtr=J}static create(D){return bD().createTextBuffer(D)}guard(){if(this._destroyed)throw Error("TextBuffer is destroyed")}setText(D){if(this.guard(),this._textBytes=this.lib.encoder.encode(D),this._memId===void 0)this._memId=this.lib.textBufferRegisterMemBuffer(this.bufferPtr,this._textBytes,!1);else this.lib.textBufferReplaceMemBuffer(this.bufferPtr,this._memId,this._textBytes,!1);this.lib.textBufferSetTextFromMem(this.bufferPtr,this._memId),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0,this._appendedChunks=[]}append(D){this.guard();let J=this.lib.encoder.encode(D);this._appendedChunks.push(J),this.lib.textBufferAppend(this.bufferPtr,J),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0}loadFile(D){if(this.guard(),!this.lib.textBufferLoadFile(this.bufferPtr,D))throw Error(`Failed to load file: ${D}`);this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0,this._textBytes=void 0}setStyledText(D){this.guard(),this.lib.textBufferSetStyledText(this.bufferPtr,D.chunks),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0}setDefaultFg(D){this.guard(),this.lib.textBufferSetDefaultFg(this.bufferPtr,D)}setDefaultBg(D){this.guard(),this.lib.textBufferSetDefaultBg(this.bufferPtr,D)}setDefaultAttributes(D){this.guard(),this.lib.textBufferSetDefaultAttributes(this.bufferPtr,D)}resetDefaults(){this.guard(),this.lib.textBufferResetDefaults(this.bufferPtr)}getLineCount(){return this.guard(),this.lib.textBufferGetLineCount(this.bufferPtr)}get length(){return this.guard(),this._length}get byteSize(){return this.guard(),this._byteSize}get ptr(){return this.guard(),this.bufferPtr}getPlainText(){if(this.guard(),this._byteSize===0)return"";let D=this.lib.getPlainTextBytes(this.bufferPtr,this._byteSize);if(!D)return"";return this.lib.decoder.decode(D)}getTextRange(D,J){if(this.guard(),D>=J)return"";if(this._byteSize===0)return"";let K=this.lib.textBufferGetTextRange(this.bufferPtr,D,J,this._byteSize);if(!K)return"";return this.lib.decoder.decode(K)}addHighlightByCharRange(D){this.guard(),this.lib.textBufferAddHighlightByCharRange(this.bufferPtr,D)}addHighlight(D,J){this.guard(),this.lib.textBufferAddHighlight(this.bufferPtr,D,J)}removeHighlightsByRef(D){this.guard(),this.lib.textBufferRemoveHighlightsByRef(this.bufferPtr,D)}clearLineHighlights(D){this.guard(),this.lib.textBufferClearLineHighlights(this.bufferPtr,D)}clearAllHighlights(){this.guard(),this.lib.textBufferClearAllHighlights(this.bufferPtr)}getLineHighlights(D){return this.guard(),this.lib.textBufferGetLineHighlights(this.bufferPtr,D)}getHighlightCount(){return this.guard(),this.lib.textBufferGetHighlightCount(this.bufferPtr)}setSyntaxStyle(D){this.guard(),this._syntaxStyle=D??void 0,this.lib.textBufferSetSyntaxStyle(this.bufferPtr,D?.ptr??null)}getSyntaxStyle(){return this.guard(),this._syntaxStyle??null}setTabWidth(D){this.guard(),this.lib.textBufferSetTabWidth(this.bufferPtr,D)}getTabWidth(){return this.guard(),this.lib.textBufferGetTabWidth(this.bufferPtr)}clear(){this.guard(),this.lib.textBufferClear(this.bufferPtr),this._length=0,this._byteSize=0,this._lineInfo=void 0,this._textBytes=void 0,this._appendedChunks=[]}reset(){this.guard(),this.lib.textBufferReset(this.bufferPtr),this._length=0,this._byteSize=0,this._lineInfo=void 0,this._textBytes=void 0,this._memId=void 0,this._appendedChunks=[]}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyTextBuffer(this.bufferPtr)}}function Q5(D,J){if(typeof J.width==="number"){if(J.width<0)throw TypeError(`Invalid width for Renderable ${D}: ${J.width}`)}if(typeof J.height==="number"){if(J.height<0)throw TypeError(`Invalid height for Renderable ${D}: ${J.height}`)}}function aJ(D){if(typeof D==="string"&&D.endsWith("%")){let J=D.slice(0,-1),K=parseFloat(J);return!Number.isNaN(K)}return!1}function WD(D){if(typeof D==="number"&&!Number.isNaN(D))return!0;if(D==="auto")return!0;return aJ(D)}function GD(D){if(typeof D==="number"&&!Number.isNaN(D))return!0;return aJ(D)}function aD(D){if(typeof D==="number"&&!Number.isNaN(D))return!0;if(D==="auto")return!0;return aJ(D)}function X5(D){return D==="relative"||D==="absolute"}function Y5(D){return D==="visible"||D==="hidden"||D==="scroll"}function NK(D){return aD(D)}function eX(D){if(D===void 0||D==="auto")return!0;if(typeof D==="number"&&!Number.isNaN(D))return!0;return!1}function XJ(D){if(D===void 0)return!0;if(typeof D==="number"&&!Number.isNaN(D))return!0;return aJ(D)}var DZ=Symbol.for("@opentui/core/Renderable"),Z5;((D)=>{D.LAYOUT_CHANGED="layout-changed",D.ADDED="added",D.REMOVED="removed",D.RESIZED="resized"})(Z5||={});var _5;((D)=>{D.FOCUSED="focused",D.BLURRED="blurred",D.DESTROYED="destroyed"})(_5||={});function fJ(D){return!!D?.[DZ]}class FK extends K5{[DZ]=!0;static renderableNumber=1;_id;num;_dirty=!1;parent=null;_visible=!0;constructor(D){super();this.num=FK.renderableNumber++,this._id=D.id??`renderable-${this.num}`}get id(){return this._id}set id(D){this._id=D}get isDirty(){return this._dirty}markClean(){this._dirty=!1}markDirty(){this._dirty=!0}destroy(){}destroyRecursively(){}get visible(){return this._visible}set visible(D){this._visible=D}}var IK=PK.Config.create();IK.setUseWebDefaults(!1);IK.setPointScaleFactor(1);class ID extends FK{static renderablesByNumber=new Map;_isDestroyed=!1;_ctx;_translateX=0;_translateY=0;_x=0;_y=0;_screenX=0;_screenY=0;_width;_height;_widthValue=0;_heightValue=0;_zIndex;selectable=!1;buffered;frameBuffer=null;_focusable=!1;_focused=!1;_hasFocusedDescendant=!1;keypressHandler=null;pasteHandler=null;_live=!1;_liveCount=0;_sizeChangeListener=void 0;_mouseListener=null;_mouseListeners={};_pasteListener=void 0;_keyListeners={};yogaNode;_positionType="relative";_overflow="visible";_position={};_opacity=1;_flexShrink=1;renderableMapById=new Map;_childrenInLayoutOrder=[];_childrenInZIndexOrder=[];needsZIndexSort=!1;parent=null;childrenPrimarySortDirty=!0;childrenSortedByPrimaryAxis=[];_shouldUpdateBefore=new Set;_lastLayoutFrame=-1;onLifecyclePass=null;renderBefore;renderAfter;constructor(D,J){super(J);if(this._ctx=D,ID.renderablesByNumber.set(this.num,this),Q5(this.id,J),this.renderBefore=J.renderBefore,this.renderAfter=J.renderAfter,this._width=J.width??"auto",this._height=J.height??"auto",typeof this._width==="number")this._widthValue=this._width;if(typeof this._height==="number")this._heightValue=this._height;if(this._zIndex=J.zIndex??0,this._visible=J.visible!==!1,this.buffered=J.buffered??!1,this._live=J.live??!1,this._liveCount=this._live&&this._visible?1:0,this._opacity=J.opacity!==void 0?Math.max(0,Math.min(1,J.opacity)):1,this.yogaNode=PK.Node.create(IK),this.yogaNode.setDisplay(this._visible?CD.Flex:CD.None),this.setupYogaProperties(J),this.applyEventOptions(J),this.buffered)this.createFrameBuffer()}get id(){return this._id}set id(D){if(this.parent)this.parent.renderableMapById.delete(this.id),this.parent.renderableMapById.set(D,this);super.id=D}get focusable(){return this._focusable}set focusable(D){this._focusable=D}get ctx(){return this._ctx}get visible(){return this._visible}get primaryAxis(){let D=this.yogaNode.getFlexDirection();return D===2||D===3?"row":"column"}set visible(D){if(this._visible===D)return;let J=this._visible;if(this._visible=D,this.yogaNode.setDisplay(D?CD.Flex:CD.None),this._live){if(!J&&D)this.propagateLiveCount(1);else if(J&&!D)this.propagateLiveCount(-1)}if(this._focused)this.blur();this.requestRender()}get opacity(){return this._opacity}set opacity(D){let J=Math.max(0,Math.min(1,D));if(this._opacity!==J)this._opacity=J,this.requestRender()}hasSelection(){return!1}onSelectionChanged(D){return!1}getSelectedText(){return""}shouldStartSelection(D,J){return!1}focus(){if(this._isDestroyed||this._focused||!this._focusable)return;this._focused=!0,this._ctx.focusRenderable(this),this.requestRender(),this.keypressHandler=(D)=>{if(this._isDestroyed)return;if(this._keyListeners.down?.(D),this._isDestroyed)return;if(!D.defaultPrevented&&this.handleKeyPress)this.handleKeyPress(D)},this.pasteHandler=(D)=>{if(this._isDestroyed)return;if(this._pasteListener?.call(this,D),this._isDestroyed)return;if(!D.defaultPrevented&&this.handlePaste)this.handlePaste(D)},this.ctx._internalKeyInput.onInternal("keypress",this.keypressHandler),this.ctx._internalKeyInput.onInternal("paste",this.pasteHandler),this.propagateFocusChange(!0),this.emit("focused")}propagateFocusChange(D){let J=this.parent;while(J){if(J._hasFocusedDescendant!==D)J._hasFocusedDescendant=D,J.markDirty();J=J.parent}this.requestRender()}blur(){if(!this._focused||!this._focusable)return;if(this._ctx.blurRenderable(this),this._focused=!1,this.requestRender(),this.keypressHandler)this.ctx._internalKeyInput.offInternal("keypress",this.keypressHandler),this.keypressHandler=null;if(this.pasteHandler)this.ctx._internalKeyInput.offInternal("paste",this.pasteHandler),this.pasteHandler=null;this.propagateFocusChange(!1),this.emit("blurred")}get focused(){return this._focused}get hasFocusedDescendant(){return this._hasFocusedDescendant}get live(){return this._live}get liveCount(){return this._liveCount}set live(D){if(this._live===D)return;if(this._live=D,this._visible){let J=D?1:-1;this.propagateLiveCount(J)}}propagateLiveCount(D){this._liveCount+=D,this.parent?.propagateLiveCount(D)}findDescendantById(D){for(let J of this._childrenInLayoutOrder){if(J.id===D)return J;if(fJ(J)){let K=J.findDescendantById(D);if(K)return K}}return}requestRender(){this.markDirty(),this._ctx.requestRender()}get translateX(){return this._translateX}set translateX(D){if(this._translateX===D)return;this._translateX=D;let J=this.parent?this.parent._screenX:0;if(this._screenX=J+this._x+this._translateX,this.parent)this.parent.childrenPrimarySortDirty=!0;this.requestRender()}get translateY(){return this._translateY}set translateY(D){if(this._translateY===D)return;this._translateY=D;let J=this.parent?this.parent._screenY:0;if(this._screenY=J+this._y+this._translateY,this.parent)this.parent.childrenPrimarySortDirty=!0;this.requestRender()}get screenX(){return(this.parent?this.parent._screenX:0)+this._x+this._translateX}get screenY(){return(this.parent?this.parent._screenY:0)+this._y+this._translateY}get x(){if(this.parent)return this.parent.x+this._x+this._translateX;return this._x+this._translateX}set x(D){this.left=D}get top(){return this._position.top}set top(D){if(aD(D)||D===void 0)this.setPosition({top:D})}get right(){return this._position.right}set right(D){if(aD(D)||D===void 0)this.setPosition({right:D})}get bottom(){return this._position.bottom}set bottom(D){if(aD(D)||D===void 0)this.setPosition({bottom:D})}get left(){return this._position.left}set left(D){if(aD(D)||D===void 0)this.setPosition({left:D})}get y(){if(this.parent)return this.parent.y+this._y+this._translateY;return this._y+this._translateY}set y(D){this.top=D}get width(){return this._widthValue}set width(D){if(!NK(D)||this._width===D)return;if(this._width=D,this.yogaNode.setWidth(D),typeof D==="number"&&this._flexShrink===1)this._flexShrink=0,this.yogaNode.setFlexShrink(0);this.requestRender()}get height(){return this._heightValue}set height(D){if(!NK(D)||this._height===D)return;if(this._height=D,this.yogaNode.setHeight(D),typeof D==="number"&&this._flexShrink===1)this._flexShrink=0,this.yogaNode.setFlexShrink(0);this.requestRender()}get zIndex(){return this._zIndex}set zIndex(D){if(this._zIndex!==D)this._zIndex=D,this.parent?.requestZIndexSort(),this.requestRender()}requestZIndexSort(){this.needsZIndexSort=!0}ensureZIndexSorted(){if(this.needsZIndexSort)this._childrenInZIndexOrder.sort((D,J)=>D.zIndex>J.zIndex?1:D.zIndex<J.zIndex?-1:0),this.needsZIndexSort=!1}getChildrenSortedByPrimaryAxis(){if(!this.childrenPrimarySortDirty&&this.childrenSortedByPrimaryAxis.length===this._childrenInLayoutOrder.length)return this.childrenSortedByPrimaryAxis;let D=this.yogaNode.getFlexDirection(),J=D===2||D===3?"x":"y",K=[...this._childrenInLayoutOrder];return K.sort((Q,X)=>{let Y=J==="y"?Q.screenY:Q.screenX,Z=J==="y"?X.screenY:X.screenX;return Y-Z}),this.childrenSortedByPrimaryAxis=K,this.childrenPrimarySortDirty=!1,this.childrenSortedByPrimaryAxis}setupYogaProperties(D){let J=this.yogaNode;if(eX(D.flexBasis))J.setFlexBasis(D.flexBasis);if(XJ(D.minWidth))J.setMinWidth(D.minWidth);if(XJ(D.minHeight))J.setMinHeight(D.minHeight);if(D.flexGrow!==void 0)J.setFlexGrow(D.flexGrow);else J.setFlexGrow(0);if(D.flexShrink!==void 0)this._flexShrink=D.flexShrink,J.setFlexShrink(D.flexShrink);else{let Q=typeof D.width==="number",X=typeof D.height==="number";this._flexShrink=Q||X?0:1,J.setFlexShrink(this._flexShrink)}if(J.setFlexDirection(NX(D.flexDirection)),J.setFlexWrap(UX(D.flexWrap)),J.setAlignItems(LX(D.alignItems)),J.setJustifyContent(VX(D.justifyContent)),J.setAlignSelf(AX(D.alignSelf)),NK(D.width))this._width=D.width,this.yogaNode.setWidth(D.width);if(NK(D.height))this._height=D.height,this.yogaNode.setHeight(D.height);if(this._positionType=D.position==="absolute"?"absolute":"relative",this._positionType!=="relative")J.setPositionType(HX(this._positionType));if(this._overflow=D.overflow==="hidden"?"hidden":D.overflow==="scroll"?"scroll":"visible",this._overflow!=="visible")J.setOverflow(MX(this._overflow));if(D.top!==void 0||D.right!==void 0||D.bottom!==void 0||D.left!==void 0)this._position={top:D.top,right:D.right,bottom:D.bottom,left:D.left},this.updateYogaPosition(this._position);if(XJ(D.maxWidth))J.setMaxWidth(D.maxWidth);if(XJ(D.maxHeight))J.setMaxHeight(D.maxHeight);this.setupMarginAndPadding(D)}setupMarginAndPadding(D){let J=this.yogaNode;if(WD(D.margin))J.setMargin(E.All,D.margin);if(WD(D.marginX))J.setMargin(E.Horizontal,D.marginX);if(WD(D.marginY))J.setMargin(E.Vertical,D.marginY);if(WD(D.marginTop))J.setMargin(E.Top,D.marginTop);if(WD(D.marginRight))J.setMargin(E.Right,D.marginRight);if(WD(D.marginBottom))J.setMargin(E.Bottom,D.marginBottom);if(WD(D.marginLeft))J.setMargin(E.Left,D.marginLeft);if(GD(D.padding))J.setPadding(E.All,D.padding);if(GD(D.paddingX))J.setPadding(E.Horizontal,D.paddingX);if(GD(D.paddingY))J.setPadding(E.Vertical,D.paddingY);if(GD(D.paddingTop))J.setPadding(E.Top,D.paddingTop);if(GD(D.paddingRight))J.setPadding(E.Right,D.paddingRight);if(GD(D.paddingBottom))J.setPadding(E.Bottom,D.paddingBottom);if(GD(D.paddingLeft))J.setPadding(E.Left,D.paddingLeft)}set position(D){if(!X5(D)||this._positionType===D)return;this._positionType=D,this.yogaNode.setPositionType(HX(D)),this.requestRender()}get overflow(){return this._overflow}set overflow(D){if(!Y5(D)||this._overflow===D)return;this._overflow=D,this.yogaNode.setOverflow(MX(D)),this.requestRender()}setPosition(D){this._position={...this._position,...D},this.updateYogaPosition(D)}updateYogaPosition(D){let J=this.yogaNode,{top:K,right:Q,bottom:X,left:Y}=D;if(aD(K))if(K==="auto")J.setPositionAuto(E.Top);else J.setPosition(E.Top,K);if(aD(Q))if(Q==="auto")J.setPositionAuto(E.Right);else J.setPosition(E.Right,Q);if(aD(X))if(X==="auto")J.setPositionAuto(E.Bottom);else J.setPosition(E.Bottom,X);if(aD(Y))if(Y==="auto")J.setPositionAuto(E.Left);else J.setPosition(E.Left,Y);this.requestRender()}set flexGrow(D){if(D==null)this.yogaNode.setFlexGrow(0);else this.yogaNode.setFlexGrow(D);this.requestRender()}set flexShrink(D){let J=D==null?1:D;this._flexShrink=J,this.yogaNode.setFlexShrink(J),this.requestRender()}set flexDirection(D){this.yogaNode.setFlexDirection(NX(D)),this.requestRender()}set flexWrap(D){this.yogaNode.setFlexWrap(UX(D)),this.requestRender()}set alignItems(D){this.yogaNode.setAlignItems(LX(D)),this.requestRender()}set justifyContent(D){this.yogaNode.setJustifyContent(VX(D)),this.requestRender()}set alignSelf(D){this.yogaNode.setAlignSelf(AX(D)),this.requestRender()}set flexBasis(D){if(eX(D))this.yogaNode.setFlexBasis(D),this.requestRender()}set minWidth(D){if(XJ(D))this.yogaNode.setMinWidth(D),this.requestRender()}set maxWidth(D){if(XJ(D))this.yogaNode.setMaxWidth(D),this.requestRender()}set minHeight(D){if(XJ(D))this.yogaNode.setMinHeight(D),this.requestRender()}set maxHeight(D){if(XJ(D))this.yogaNode.setMaxHeight(D),this.requestRender()}set margin(D){if(WD(D))this.yogaNode.setMargin(E.All,D),this.requestRender()}set marginX(D){if(WD(D))this.yogaNode.setMargin(E.Horizontal,D),this.requestRender()}set marginY(D){if(WD(D))this.yogaNode.setMargin(E.Vertical,D),this.requestRender()}set marginTop(D){if(WD(D))this.yogaNode.setMargin(E.Top,D),this.requestRender()}get marginTop(){let D=this.yogaNode.getMargin(E.Top);if(typeof D==="number")return D;if(typeof D==="object"&&D&&"value"in D&&typeof D.value==="number")return D.value;return 0}set marginRight(D){if(WD(D))this.yogaNode.setMargin(E.Right,D),this.requestRender()}set marginBottom(D){if(WD(D))this.yogaNode.setMargin(E.Bottom,D),this.requestRender()}set marginLeft(D){if(WD(D))this.yogaNode.setMargin(E.Left,D),this.requestRender()}set padding(D){if(GD(D))this.yogaNode.setPadding(E.All,D),this.requestRender()}set paddingX(D){if(GD(D))this.yogaNode.setPadding(E.Horizontal,D),this.requestRender()}set paddingY(D){if(GD(D))this.yogaNode.setPadding(E.Vertical,D),this.requestRender()}set paddingTop(D){if(GD(D))this.yogaNode.setPadding(E.Top,D),this.requestRender()}set paddingRight(D){if(GD(D))this.yogaNode.setPadding(E.Right,D),this.requestRender()}set paddingBottom(D){if(GD(D))this.yogaNode.setPadding(E.Bottom,D),this.requestRender()}set paddingLeft(D){if(GD(D))this.yogaNode.setPadding(E.Left,D),this.requestRender()}getLayoutNode(){return this.yogaNode}updateFromLayout(){let D=this._ctx.frameId;if(this._lastLayoutFrame===D)return;this._lastLayoutFrame=D;let J=this.yogaNode.getComputedLayout(),K=this._x,Q=this._y,X=this._widthValue,Y=this._heightValue;this._x=J.left,this._y=J.top;let Z=this.parent?this.parent._screenX:0,_=this.parent?this.parent._screenY:0;this._screenX=Z+this._x+this._translateX,this._screenY=_+this._y+this._translateY;let L=Math.max(J.width,1),N=Math.max(J.height,1),V=X!==L||Y!==N;if(this._widthValue=L,this._heightValue=N,V)this.onLayoutResize(L,N);if(K!==this._x||Q!==this._y){if(this.parent)this.parent.childrenPrimarySortDirty=!0}}onLayoutResize(D,J){if(this._visible)this.handleFrameBufferResize(D,J),this.onResize(D,J),this.requestRender()}handleFrameBufferResize(D,J){if(!this.buffered)return;if(D<=0||J<=0)return;if(this.frameBuffer)this.frameBuffer.resize(D,J);else this.createFrameBuffer()}createFrameBuffer(){let D=this.width,J=this.height;if(D<=0||J<=0)return;try{let K=this._ctx.widthMethod;this.frameBuffer=fD.create(D,J,K,{respectAlpha:!0,id:`framebuffer-${this.id}`})}catch(K){console.error(`Failed to create frame buffer for ${this.id}:`,K),this.frameBuffer=null}}onResize(D,J){this.onSizeChange?.(),this.emit("resize")}replaceParent(D){if(D.parent)D.parent.remove(D.id);D.parent=this}add(D,J){if(!D)return-1;let K=DY(this._ctx,D);if(!K)return-1;if(K.isDestroyed)return console.warn(`Renderable with id ${K.id} was already destroyed, skipping add`),-1;let Q=J!==void 0?this._childrenInLayoutOrder[J]:void 0;if(Q)return this.insertBefore(K,Q);if(K.parent===this)this.yogaNode.removeChild(K.getLayoutNode()),this._childrenInLayoutOrder.splice(this._childrenInLayoutOrder.indexOf(K),1);else{if(this.replaceParent(K),this.needsZIndexSort=!0,this.renderableMapById.set(K.id,K),this._childrenInZIndexOrder.push(K),typeof K.onLifecyclePass==="function")this._ctx.registerLifecyclePass(K);if(K._liveCount>0)this.propagateLiveCount(K._liveCount)}let X=K.getLayoutNode(),Y=this._childrenInLayoutOrder.length;return this._childrenInLayoutOrder.push(K),this.yogaNode.insertChild(X,Y),this.childrenPrimarySortDirty=!0,this._shouldUpdateBefore.add(K),this.requestRender(),Y}insertBefore(D,J){if(!J)return this.add(D);if(!D)return-1;let K=DY(this._ctx,D);if(!K)return-1;if(K.isDestroyed)return console.warn(`Renderable with id ${K.id} was already destroyed, skipping insertBefore`),-1;if(!fJ(J))throw Error("Anchor must be a Renderable");if(J.isDestroyed)return console.warn(`Anchor with id ${J.id} was already destroyed, skipping insertBefore`),-1;if(!this.renderableMapById.has(J.id))return console.warn(`Anchor with id ${J.id} does not exist within the parent ${this.id}, skipping insertBefore`),-1;if(K===J||K.id===J.id)return console.warn(`Anchor is the same as the node ${K.id} being inserted, skipping insertBefore`),-1;if(K.parent===this)this.yogaNode.removeChild(K.getLayoutNode()),this._childrenInLayoutOrder.splice(this._childrenInLayoutOrder.indexOf(K),1);else{if(this.replaceParent(K),this.needsZIndexSort=!0,this.renderableMapById.set(K.id,K),this._childrenInZIndexOrder.push(K),typeof K.onLifecyclePass==="function")this._ctx.registerLifecyclePass(K);if(K._liveCount>0)this.propagateLiveCount(K._liveCount)}this.childrenPrimarySortDirty=!0;let Q=this._childrenInLayoutOrder.indexOf(J),X=Math.max(0,Math.min(Q,this._childrenInLayoutOrder.length));return this._childrenInLayoutOrder.splice(X,0,K),this.yogaNode.insertChild(K.getLayoutNode(),X),this._shouldUpdateBefore.add(K),this.requestRender(),X}getRenderable(D){return this.renderableMapById.get(D)}remove(D){if(!D)return;if(this.renderableMapById.has(D)){let J=this.renderableMapById.get(D);if(J){if(J._liveCount>0)this.propagateLiveCount(-J._liveCount);let K=J.getLayoutNode();this.yogaNode.removeChild(K),this.requestRender(),J.onRemove(),J.parent=null,this._ctx.unregisterLifecyclePass(J),this.renderableMapById.delete(D);let Q=this._childrenInLayoutOrder.findIndex((Y)=>Y.id===D);if(Q!==-1)this._childrenInLayoutOrder.splice(Q,1);let X=this._childrenInZIndexOrder.findIndex((Y)=>Y.id===D);if(X!==-1)this._childrenInZIndexOrder.splice(X,1);this.childrenPrimarySortDirty=!0}}}onRemove(){}getChildren(){return[...this._childrenInLayoutOrder]}getChildrenCount(){return this._childrenInLayoutOrder.length}updateLayout(D,J=[]){if(!this.visible)return;if(this.onUpdate(D),this._isDestroyed)return;if(this.updateFromLayout(),this._shouldUpdateBefore.size>0){for(let X of this._shouldUpdateBefore)if(!X.isDestroyed)X.updateFromLayout();this._shouldUpdateBefore.clear()}if(this._isDestroyed)return;let K=this._opacity<1;if(K)J.push({action:"pushOpacity",opacity:this._opacity});J.push({action:"render",renderable:this}),this.ensureZIndexSorted();let Q=this._overflow!=="visible"&&this.width>0&&this.height>0;if(Q){let X=this.getScissorRect();J.push({action:"pushScissorRect",x:X.x,y:X.y,width:X.width,height:X.height,screenX:this._screenX,screenY:this._screenY})}if(!this._hasVisibleChildFilter())for(let X of this._childrenInZIndexOrder)X.updateLayout(D,J);else{for(let Z of this._childrenInZIndexOrder){if(Z.isDestroyed)continue;Z.updateFromLayout()}let X=this._getVisibleChildren(),Y=new Set(X);for(let Z of this._childrenInZIndexOrder){if(!Y.has(Z.num))continue;Z.updateLayout(D,J)}}if(Q)J.push({action:"popScissorRect"});if(K)J.push({action:"popOpacity"})}render(D,J){let K=D;if(this.buffered&&this.frameBuffer)K=this.frameBuffer;if(this.renderBefore)this.renderBefore.call(this,K,J);if(this.renderSelf(K,J),this.renderAfter)this.renderAfter.call(this,K,J);let Q=this._screenX,X=this._screenY;if(this.markClean(),this._ctx.addToHitGrid(Q,X,this.width,this.height,this.num),this.buffered&&this.frameBuffer)D.drawFrameBuffer(Q,X,this.frameBuffer)}_hasVisibleChildFilter(){return this._getVisibleChildren!==ID.prototype._getVisibleChildren}_getVisibleChildren(){return this._childrenInZIndexOrder.map((D)=>D.num)}onUpdate(D){}getScissorRect(){return{x:this.buffered?0:this._screenX,y:this.buffered?0:this._screenY,width:this.width,height:this.height}}renderSelf(D,J){}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this.emit("destroyed"),this.parent)this.parent.remove(this.id);if(this.frameBuffer)this.frameBuffer.destroy(),this.frameBuffer=null;for(let D of this._childrenInLayoutOrder)this.remove(D.id);this._childrenInLayoutOrder=[],this.renderableMapById.clear(),ID.renderablesByNumber.delete(this.num),this.blur(),this.removeAllListeners(),this.destroySelf();try{this.yogaNode.free()}catch(D){}}destroyRecursively(){let D=[...this._childrenInLayoutOrder];for(let J of D)J.destroyRecursively();this.destroy()}destroySelf(){}processMouseEvent(D){if(this._mouseListener?.call(this,D),this._mouseListeners[D.type]?.call(this,D),this.onMouseEvent(D),this.parent&&!D.propagationStopped)this.parent.processMouseEvent(D)}onMouseEvent(D){}set onMouse(D){if(D)this._mouseListener=D;else this._mouseListener=null}set onMouseDown(D){if(D)this._mouseListeners.down=D;else delete this._mouseListeners.down}set onMouseUp(D){if(D)this._mouseListeners.up=D;else delete this._mouseListeners.up}set onMouseMove(D){if(D)this._mouseListeners.move=D;else delete this._mouseListeners.move}set onMouseDrag(D){if(D)this._mouseListeners.drag=D;else delete this._mouseListeners.drag}set onMouseDragEnd(D){if(D)this._mouseListeners["drag-end"]=D;else delete this._mouseListeners["drag-end"]}set onMouseDrop(D){if(D)this._mouseListeners.drop=D;else delete this._mouseListeners.drop}set onMouseOver(D){if(D)this._mouseListeners.over=D;else delete this._mouseListeners.over}set onMouseOut(D){if(D)this._mouseListeners.out=D;else delete this._mouseListeners.out}set onMouseScroll(D){if(D)this._mouseListeners.scroll=D;else delete this._mouseListeners.scroll}set onPaste(D){this._pasteListener=D}get onPaste(){return this._pasteListener}set onKeyDown(D){if(D)this._keyListeners.down=D;else delete this._keyListeners.down}get onKeyDown(){return this._keyListeners.down}set onSizeChange(D){this._sizeChangeListener=D}get onSizeChange(){return this._sizeChangeListener}applyEventOptions(D){this.onMouse=D.onMouse,this.onMouseDown=D.onMouseDown,this.onMouseUp=D.onMouseUp,this.onMouseMove=D.onMouseMove,this.onMouseDrag=D.onMouseDrag,this.onMouseDragEnd=D.onMouseDragEnd,this.onMouseDrop=D.onMouseDrop,this.onMouseOver=D.onMouseOver,this.onMouseOut=D.onMouseOut,this.onMouseScroll=D.onMouseScroll,this.onPaste=D.onPaste,this.onKeyDown=D.onKeyDown,this.onSizeChange=D.onSizeChange}}class bJ extends ID{renderList=[];constructor(D){super(D,{id:"__root__",zIndex:0,visible:!0,width:D.width,height:D.height,enableLayout:!0});if(this.yogaNode)this.yogaNode.free();this.yogaNode=PK.Node.create(IK),this.yogaNode.setWidth(D.width),this.yogaNode.setHeight(D.height),this.yogaNode.setFlexDirection(zD.Column),this.calculateLayout()}render(D,J){if(!this.visible)return;for(let K of this._ctx.getLifecyclePasses())K.onLifecyclePass?.call(K);if(this.yogaNode.isDirty())this.calculateLayout();this.renderList.length=0,this.updateLayout(J,this.renderList),this._ctx.clearHitGridScissorRects();for(let K=1;K<this.renderList.length;K++){let Q=this.renderList[K];switch(Q.action){case"render":if(!Q.renderable.isDestroyed)Q.renderable.render(D,J);break;case"pushScissorRect":D.pushScissorRect(Q.x,Q.y,Q.width,Q.height),this._ctx.pushHitGridScissorRect(Q.screenX,Q.screenY,Q.width,Q.height);break;case"popScissorRect":D.popScissorRect(),this._ctx.popHitGridScissorRect();break;case"pushOpacity":D.pushOpacity(Q.opacity);break;case"popOpacity":D.popOpacity();break}}}propagateLiveCount(D){let J=this._liveCount;if(this._liveCount+=D,J===0&&this._liveCount>0)this._ctx.requestLive();else if(J>0&&this._liveCount===0)this._ctx.dropLive()}calculateLayout(){this.yogaNode.calculateLayout(this.width,this.height,RD.LTR),this.emit("layout-changed")}resize(D,J){this.width=D,this.height=J,this.emit("resized",{width:D,height:J})}}var JZ=Symbol.for("@opentui/core/VNode");function WQ(D){return typeof D==="function"&&D.prototype&&ID.prototype.isPrototypeOf(D.prototype)}function TQ(D){let J=[];for(let K of D)if(Array.isArray(K))J.push(...TQ(K));else if(K!==null&&K!==void 0&&K!==!1)J.push(K);return J}function q7(D,J,...K){if(typeof D!=="function")throw TypeError("h() received an invalid vnode type");let Q={[JZ]:!0,type:D,props:J,children:TQ(K),__pendingCalls:[]};if(WQ(D))return new Proxy(Q,{get(X,Y,Z){if(Y in X)return Reflect.get(X,Y,Z);if(typeof Y==="string"){let _=D.prototype;if(_&&(typeof _[Y]==="function"||Object.getOwnPropertyDescriptor(_,Y)||Object.getOwnPropertyDescriptor(Object.getPrototypeOf(_),Y)))return(...N)=>{return X.__pendingCalls=X.__pendingCalls||[],X.__pendingCalls.push({method:Y,args:N}),X}}return Reflect.get(X,Y,Z)},set(X,Y,Z,_){if(typeof Y==="string"&&WQ(D)){let L=D.prototype,N=Object.getOwnPropertyDescriptor(L,Y)||Object.getOwnPropertyDescriptor(Object.getPrototypeOf(L),Y);if(N&&N.set)return X.__pendingCalls=X.__pendingCalls||[],X.__pendingCalls.push({method:Y,args:[Z],isProperty:!0}),!0}return Reflect.set(X,Y,Z,_)}});return Q}function A5(D){return D&&D[JZ]}function DY(D,J){if(fJ(J))return J;if(A5(J))return kQ(D,J);return console.warn("maybeMakeRenderable received an invalid node",$5.inspect(J,{depth:2})),null}function GQ(D,J){if(!J||Object.keys(J).length===0)return D;let K=new Map,Q=(Y)=>{if(K.has(Y)){let _=K.get(Y);if(_!==void 0)return _}let Z=D.findDescendantById(Y);if(Z)K.set(Y,Z);return Z};return new Proxy(D,{get(Y,Z,_){if(typeof Z==="string"&&J[Z]){let L=Q(J[Z]);if(L){let N=L[Z];if(typeof N==="function")return N.bind(L);return N}}return Reflect.get(Y,Z,_)},set(Y,Z,_,L){if(typeof Z==="string"&&J[Z]){let N=Q(J[Z]);if(N)return Reflect.set(N,Z,_)}return Reflect.set(Y,Z,_,L)}})}function kQ(D,J){if(fJ(J))return J;if(!J||typeof J!=="object")throw TypeError("mount() received an invalid vnode");let K=J,{type:Q,props:X}=K,Y=TQ(K.children||[]),Z=K.__delegateMap;if(WQ(Q)){let N=new Q(D,X||{});for(let O of Y)if(fJ(O))N.add(O);else{let U=kQ(D,O);N.add(U)}let V=GQ(N,Z),G=K.__pendingCalls;if(G)for(let O of G)if(O.isProperty)V[O.method]=O.args[0];else V[O.method].apply(V,O.args);return V}let _=Q(X||{},Y),L=kQ(D,_);return GQ(L,Z)}function x7(D,J){if(fJ(J))return GQ(J,D);if(!J||typeof J!=="object")return J;return J.__delegateMap={...J.__delegateMap||{},...D},J}class SQ{lib;viewPtr;textBuffer;_destroyed=!1;constructor(D,J,K){this.lib=D,this.viewPtr=J,this.textBuffer=K}static create(D){let J=bD(),K=J.createTextBufferView(D.ptr);return new SQ(J,K,D)}guard(){if(this._destroyed)throw Error("TextBufferView is destroyed")}get ptr(){return this.guard(),this.viewPtr}setSelection(D,J,K,Q){this.guard(),this.lib.textBufferViewSetSelection(this.viewPtr,D,J,K||null,Q||null)}updateSelection(D,J,K){this.guard(),this.lib.textBufferViewUpdateSelection(this.viewPtr,D,J||null,K||null)}resetSelection(){this.guard(),this.lib.textBufferViewResetSelection(this.viewPtr)}getSelection(){return this.guard(),this.lib.textBufferViewGetSelection(this.viewPtr)}hasSelection(){return this.guard(),this.getSelection()!==null}setLocalSelection(D,J,K,Q,X,Y){return this.guard(),this.lib.textBufferViewSetLocalSelection(this.viewPtr,D,J,K,Q,X||null,Y||null)}updateLocalSelection(D,J,K,Q,X,Y){return this.guard(),this.lib.textBufferViewUpdateLocalSelection(this.viewPtr,D,J,K,Q,X||null,Y||null)}resetLocalSelection(){this.guard(),this.lib.textBufferViewResetLocalSelection(this.viewPtr)}setWrapWidth(D){this.guard(),this.lib.textBufferViewSetWrapWidth(this.viewPtr,D??0)}setWrapMode(D){this.guard(),this.lib.textBufferViewSetWrapMode(this.viewPtr,D)}setFirstLineOffset(D){this.guard(),this.lib.textBufferViewSetFirstLineOffset(this.viewPtr,D)}setViewportSize(D,J){this.guard(),this.lib.textBufferViewSetViewportSize(this.viewPtr,D,J)}setViewport(D,J,K,Q){this.guard(),this.lib.textBufferViewSetViewport(this.viewPtr,D,J,K,Q)}get lineInfo(){return this.guard(),this.lib.textBufferViewGetLineInfo(this.viewPtr)}get logicalLineInfo(){return this.guard(),this.lib.textBufferViewGetLogicalLineInfo(this.viewPtr)}getSelectedText(){this.guard();let D=this.textBuffer.byteSize;if(D===0)return"";let J=this.lib.textBufferViewGetSelectedTextBytes(this.viewPtr,D);if(!J)return"";return this.lib.decoder.decode(J)}getPlainText(){this.guard();let D=this.textBuffer.byteSize;if(D===0)return"";let J=this.lib.textBufferViewGetPlainTextBytes(this.viewPtr,D);if(!J)return"";return this.lib.decoder.decode(J)}setTabIndicator(D){this.guard();let J=typeof D==="string"?D.codePointAt(0)??0:D;this.lib.textBufferViewSetTabIndicator(this.viewPtr,J)}setTabIndicatorColor(D){this.guard(),this.lib.textBufferViewSetTabIndicatorColor(this.viewPtr,D)}setTruncate(D){this.guard(),this.lib.textBufferViewSetTruncate(this.viewPtr,D)}measureForDimensions(D,J){return this.guard(),this.lib.textBufferViewMeasureForDimensions(this.viewPtr,D,J)}getVirtualLineCount(){return this.guard(),this.lib.textBufferViewGetVirtualLineCount(this.viewPtr)}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyTextBufferView(this.viewPtr)}}class sD extends L5{static registry=new Map;static nativeEventsSubscribed=!1;lib;bufferPtr;textBufferPtr;id;_destroyed=!1;_textBytes=[];_singleTextBytes=null;_singleTextMemId=null;_syntaxStyle;constructor(D,J){super();this.lib=D,this.bufferPtr=J,this.textBufferPtr=D.editBufferGetTextBuffer(J),this.id=D.editBufferGetId(J),sD.registry.set(this.id,this),sD.subscribeToNativeEvents(D)}static create(D){let J=bD(),K=J.createEditBuffer(D);return new sD(J,K)}static subscribeToNativeEvents(D){if(sD.nativeEventsSubscribed)return;sD.nativeEventsSubscribed=!0,D.onAnyNativeEvent((J,K)=>{let Q=new Uint16Array(K);if(J.startsWith("eb_")&&Q.length>=1){let X=Q[0],Y=sD.registry.get(X);if(Y){let Z=J.slice(3),_=K.slice(2);Y.emit(Z,_)}}})}guard(){if(this._destroyed)throw Error("EditBuffer is destroyed")}get ptr(){return this.guard(),this.bufferPtr}setText(D){this.guard();let J=this.lib.encoder.encode(D);if(this._singleTextMemId!==null)this.lib.textBufferReplaceMemBuffer(this.textBufferPtr,this._singleTextMemId,J,!1);else this._singleTextMemId=this.lib.textBufferRegisterMemBuffer(this.textBufferPtr,J,!1);this._singleTextBytes=J,this.lib.editBufferSetTextFromMem(this.bufferPtr,this._singleTextMemId)}setTextOwned(D){this.guard();let J=this.lib.encoder.encode(D);this.lib.editBufferSetText(this.bufferPtr,J)}replaceText(D){this.guard();let J=this.lib.encoder.encode(D);this._textBytes.push(J);let K=this.lib.textBufferRegisterMemBuffer(this.textBufferPtr,J,!1);this.lib.editBufferReplaceTextFromMem(this.bufferPtr,K)}replaceTextOwned(D){this.guard();let J=this.lib.encoder.encode(D);this.lib.editBufferReplaceText(this.bufferPtr,J)}getLineCount(){return this.guard(),this.lib.textBufferGetLineCount(this.textBufferPtr)}getText(){this.guard();let D=1048576,J=this.lib.editBufferGetText(this.bufferPtr,D);if(!J)return"";return this.lib.decoder.decode(J)}insertChar(D){this.guard(),this.lib.editBufferInsertChar(this.bufferPtr,D)}insertText(D){this.guard(),this.lib.editBufferInsertText(this.bufferPtr,D)}deleteChar(){this.guard(),this.lib.editBufferDeleteChar(this.bufferPtr)}deleteCharBackward(){this.guard(),this.lib.editBufferDeleteCharBackward(this.bufferPtr)}deleteRange(D,J,K,Q){this.guard(),this.lib.editBufferDeleteRange(this.bufferPtr,D,J,K,Q)}newLine(){this.guard(),this.lib.editBufferNewLine(this.bufferPtr)}deleteLine(){this.guard(),this.lib.editBufferDeleteLine(this.bufferPtr)}moveCursorLeft(){this.guard(),this.lib.editBufferMoveCursorLeft(this.bufferPtr)}moveCursorRight(){this.guard(),this.lib.editBufferMoveCursorRight(this.bufferPtr)}moveCursorUp(){this.guard(),this.lib.editBufferMoveCursorUp(this.bufferPtr)}moveCursorDown(){this.guard(),this.lib.editBufferMoveCursorDown(this.bufferPtr)}gotoLine(D){this.guard(),this.lib.editBufferGotoLine(this.bufferPtr,D)}setCursor(D,J){this.guard(),this.lib.editBufferSetCursor(this.bufferPtr,D,J)}setCursorToLineCol(D,J){this.guard(),this.lib.editBufferSetCursorToLineCol(this.bufferPtr,D,J)}setCursorByOffset(D){this.guard(),this.lib.editBufferSetCursorByOffset(this.bufferPtr,D)}getCursorPosition(){return this.guard(),this.lib.editBufferGetCursorPosition(this.bufferPtr)}getNextWordBoundary(){this.guard();let D=this.lib.editBufferGetNextWordBoundary(this.bufferPtr);return{row:D.row,col:D.col,offset:D.offset}}getPrevWordBoundary(){this.guard();let D=this.lib.editBufferGetPrevWordBoundary(this.bufferPtr);return{row:D.row,col:D.col,offset:D.offset}}getEOL(){this.guard();let D=this.lib.editBufferGetEOL(this.bufferPtr);return{row:D.row,col:D.col,offset:D.offset}}offsetToPosition(D){this.guard();let J=this.lib.editBufferOffsetToPosition(this.bufferPtr,D);if(!J)return null;return{row:J.row,col:J.col}}positionToOffset(D,J){return this.guard(),this.lib.editBufferPositionToOffset(this.bufferPtr,D,J)}getLineStartOffset(D){return this.guard(),this.lib.editBufferGetLineStartOffset(this.bufferPtr,D)}getTextRange(D,J){if(this.guard(),D>=J)return"";let K=1048576,Q=this.lib.editBufferGetTextRange(this.bufferPtr,D,J,K);if(!Q)return"";return this.lib.decoder.decode(Q)}getTextRangeByCoords(D,J,K,Q){this.guard();let X=1048576,Y=this.lib.editBufferGetTextRangeByCoords(this.bufferPtr,D,J,K,Q,X);if(!Y)return"";return this.lib.decoder.decode(Y)}debugLogRope(){this.guard(),this.lib.editBufferDebugLogRope(this.bufferPtr)}undo(){this.guard();let D=256,J=this.lib.editBufferUndo(this.bufferPtr,D);if(!J)return null;return this.lib.decoder.decode(J)}redo(){this.guard();let D=256,J=this.lib.editBufferRedo(this.bufferPtr,D);if(!J)return null;return this.lib.decoder.decode(J)}canUndo(){return this.guard(),this.lib.editBufferCanUndo(this.bufferPtr)}canRedo(){return this.guard(),this.lib.editBufferCanRedo(this.bufferPtr)}clearHistory(){this.guard(),this.lib.editBufferClearHistory(this.bufferPtr)}setDefaultFg(D){this.guard(),this.lib.textBufferSetDefaultFg(this.textBufferPtr,D)}setDefaultBg(D){this.guard(),this.lib.textBufferSetDefaultBg(this.textBufferPtr,D)}setDefaultAttributes(D){this.guard(),this.lib.textBufferSetDefaultAttributes(this.textBufferPtr,D)}resetDefaults(){this.guard(),this.lib.textBufferResetDefaults(this.textBufferPtr)}setSyntaxStyle(D){this.guard(),this._syntaxStyle=D??void 0,this.lib.textBufferSetSyntaxStyle(this.textBufferPtr,D?.ptr??null)}getSyntaxStyle(){return this.guard(),this._syntaxStyle??null}addHighlight(D,J){this.guard(),this.lib.textBufferAddHighlight(this.textBufferPtr,D,J)}addHighlightByCharRange(D){this.guard(),this.lib.textBufferAddHighlightByCharRange(this.textBufferPtr,D)}removeHighlightsByRef(D){this.guard(),this.lib.textBufferRemoveHighlightsByRef(this.textBufferPtr,D)}clearLineHighlights(D){this.guard(),this.lib.textBufferClearLineHighlights(this.textBufferPtr,D)}clearAllHighlights(){this.guard(),this.lib.textBufferClearAllHighlights(this.textBufferPtr)}getLineHighlights(D){return this.guard(),this.lib.textBufferGetLineHighlights(this.textBufferPtr,D)}clear(){this.guard(),this.lib.editBufferClear(this.bufferPtr)}destroy(){if(this._destroyed)return;this._destroyed=!0,sD.registry.delete(this.id),this.lib.destroyEditBuffer(this.bufferPtr)}}class gQ{lib;viewPtr;editBuffer;_destroyed=!1;_extmarksController;_textBufferViewPtr;constructor(D,J,K){this.lib=D,this.viewPtr=J,this.editBuffer=K}static create(D,J,K){let Q=bD(),X=Q.createEditorView(D.ptr,J,K);return new gQ(Q,X,D)}guard(){if(this._destroyed)throw Error("EditorView is destroyed")}get ptr(){return this.guard(),this.viewPtr}setViewportSize(D,J){this.guard(),this.lib.editorViewSetViewportSize(this.viewPtr,D,J)}setViewport(D,J,K,Q,X=!0){this.guard(),this.lib.editorViewSetViewport(this.viewPtr,D,J,K,Q,X)}getViewport(){return this.guard(),this.lib.editorViewGetViewport(this.viewPtr)}setScrollMargin(D){this.guard(),this.lib.editorViewSetScrollMargin(this.viewPtr,D)}setWrapMode(D){this.guard(),this.lib.editorViewSetWrapMode(this.viewPtr,D)}getVirtualLineCount(){return this.guard(),this.lib.editorViewGetVirtualLineCount(this.viewPtr)}getTotalVirtualLineCount(){return this.guard(),this.lib.editorViewGetTotalVirtualLineCount(this.viewPtr)}setSelection(D,J,K,Q){this.guard(),this.lib.editorViewSetSelection(this.viewPtr,D,J,K||null,Q||null)}updateSelection(D,J,K){this.guard(),this.lib.editorViewUpdateSelection(this.viewPtr,D,J||null,K||null)}resetSelection(){this.guard(),this.lib.editorViewResetSelection(this.viewPtr)}getSelection(){return this.guard(),this.lib.editorViewGetSelection(this.viewPtr)}hasSelection(){return this.guard(),this.getSelection()!==null}setLocalSelection(D,J,K,Q,X,Y,Z,_){return this.guard(),this.lib.editorViewSetLocalSelection(this.viewPtr,D,J,K,Q,X||null,Y||null,Z??!1,_??!1)}updateLocalSelection(D,J,K,Q,X,Y,Z,_){return this.guard(),this.lib.editorViewUpdateLocalSelection(this.viewPtr,D,J,K,Q,X||null,Y||null,Z??!1,_??!1)}resetLocalSelection(){this.guard(),this.lib.editorViewResetLocalSelection(this.viewPtr)}getSelectedText(){this.guard();let D=1048576,J=this.lib.editorViewGetSelectedTextBytes(this.viewPtr,D);if(!J)return"";return this.lib.decoder.decode(J)}getCursor(){return this.guard(),this.lib.editorViewGetCursor(this.viewPtr)}getText(){this.guard();let D=1048576,J=this.lib.editorViewGetText(this.viewPtr,D);if(!J)return"";return this.lib.decoder.decode(J)}getVisualCursor(){return this.guard(),this.lib.editorViewGetVisualCursor(this.viewPtr)}moveUpVisual(){this.guard(),this.lib.editorViewMoveUpVisual(this.viewPtr)}moveDownVisual(){this.guard(),this.lib.editorViewMoveDownVisual(this.viewPtr)}deleteSelectedText(){this.guard(),this.lib.editorViewDeleteSelectedText(this.viewPtr)}setCursorByOffset(D){this.guard(),this.lib.editorViewSetCursorByOffset(this.viewPtr,D)}getNextWordBoundary(){return this.guard(),this.lib.editorViewGetNextWordBoundary(this.viewPtr)}getPrevWordBoundary(){return this.guard(),this.lib.editorViewGetPrevWordBoundary(this.viewPtr)}getEOL(){return this.guard(),this.lib.editorViewGetEOL(this.viewPtr)}getVisualSOL(){return this.guard(),this.lib.editorViewGetVisualSOL(this.viewPtr)}getVisualEOL(){return this.guard(),this.lib.editorViewGetVisualEOL(this.viewPtr)}getLineInfo(){return this.guard(),this.lib.editorViewGetLineInfo(this.viewPtr)}getLogicalLineInfo(){return this.guard(),this.lib.editorViewGetLogicalLineInfo(this.viewPtr)}get extmarks(){if(!this._extmarksController)this._extmarksController=t1(this.editBuffer,this);return this._extmarksController}setPlaceholderStyledText(D){this.guard(),this.lib.editorViewSetPlaceholderStyledText(this.viewPtr,D)}setTabIndicator(D){this.guard();let J=typeof D==="string"?D.codePointAt(0)??0:D;this.lib.editorViewSetTabIndicator(this.viewPtr,J)}setTabIndicatorColor(D){this.guard(),this.lib.editorViewSetTabIndicatorColor(this.viewPtr,D)}measureForDimensions(D,J){if(this.guard(),!this._textBufferViewPtr)this._textBufferViewPtr=this.lib.editorViewGetTextBufferView(this.viewPtr);return this.lib.textBufferViewMeasureForDimensions(this._textBufferViewPtr,D,J)}destroy(){if(this._destroyed)return;if(this._extmarksController)this._extmarksController.destroy(),this._extmarksController=void 0;this._destroyed=!0,this.lib.destroyEditorView(this.viewPtr)}}function N5(D){let J={};for(let K of D){let Q={};if(K.style.foreground)Q.fg=c(K.style.foreground);if(K.style.background)Q.bg=c(K.style.background);if(K.style.bold!==void 0)Q.bold=K.style.bold;if(K.style.italic!==void 0)Q.italic=K.style.italic;if(K.style.underline!==void 0)Q.underline=K.style.underline;if(K.style.dim!==void 0)Q.dim=K.style.dim;for(let X of K.scope)J[X]=Q}return J}class mJ{lib;stylePtr;_destroyed=!1;nameCache=new Map;styleDefs=new Map;mergedCache=new Map;constructor(D,J){this.lib=D,this.stylePtr=J}static create(){let D=bD(),J=D.createSyntaxStyle();return new mJ(D,J)}static fromTheme(D){let J=mJ.create(),K=N5(D);for(let[Q,X]of Object.entries(K))J.registerStyle(Q,X);return J}static fromStyles(D){let J=mJ.create();for(let[K,Q]of Object.entries(D))J.registerStyle(K,Q);return J}guard(){if(this._destroyed)throw Error("NativeSyntaxStyle is destroyed")}registerStyle(D,J){this.guard();let K=_J({bold:J.bold,italic:J.italic,underline:J.underline,dim:J.dim}),Q=J.fg?c(J.fg):null,X=J.bg?c(J.bg):null,Y=this.lib.syntaxStyleRegister(this.stylePtr,D,Q,X,K);return this.nameCache.set(D,Y),this.styleDefs.set(D,{...J,fg:Q??void 0,bg:X??void 0}),Y}resolveStyleId(D){this.guard();let J=this.nameCache.get(D);if(J!==void 0)return J;let K=this.lib.syntaxStyleResolveByName(this.stylePtr,D);if(K!==null)this.nameCache.set(D,K);return K}getStyleId(D){this.guard();let J=this.resolveStyleId(D);if(J!==null)return J;if(D.includes(".")){let K=D.split(".")[0];return this.resolveStyleId(K)}return null}get ptr(){return this.guard(),this.stylePtr}getStyleCount(){return this.guard(),this.lib.syntaxStyleGetStyleCount(this.stylePtr)}clearNameCache(){this.nameCache.clear()}getStyle(D){if(this.guard(),Object.prototype.hasOwnProperty.call(this.styleDefs,D))return;let J=this.styleDefs.get(D);if(J)return J;if(D.includes(".")){let K=D.split(".")[0];if(Object.prototype.hasOwnProperty.call(this.styleDefs,K))return;return this.styleDefs.get(K)}return}mergeStyles(...D){this.guard();let J=D.join(":"),K=this.mergedCache.get(J);if(K)return K;let Q={};for(let Z of D){let _=this.getStyle(Z);if(!_)continue;if(_.fg)Q.fg=_.fg;if(_.bg)Q.bg=_.bg;if(_.bold!==void 0)Q.bold=_.bold;if(_.italic!==void 0)Q.italic=_.italic;if(_.underline!==void 0)Q.underline=_.underline;if(_.dim!==void 0)Q.dim=_.dim}let X=_J({bold:Q.bold,italic:Q.italic,underline:Q.underline,dim:Q.dim}),Y={fg:Q.fg,bg:Q.bg,attributes:X};return this.mergedCache.set(J,Y),Y}clearCache(){this.guard(),this.mergedCache.clear()}getCacheSize(){return this.guard(),this.mergedCache.size}getAllStyles(){return this.guard(),new Map(this.styleDefs)}getRegisteredNames(){return this.guard(),Array.from(this.styleDefs.keys())}destroy(){if(this._destroyed)return;this._destroyed=!0,this.nameCache.clear(),this.styleDefs.clear(),this.mergedCache.clear(),this.lib.destroySyntaxStyle(this.stylePtr)}}function CJ(D){if(D===void 0)return!0;if(typeof D==="number"&&!Number.isNaN(D))return!0;return aJ(D)}class KZ extends ID{_backgroundColor;_border;_borderStyle;_borderColor;_focusedBorderColor;_customBorderCharsObj;_customBorderChars;borderSides;shouldFill;_title;_titleAlignment;_bottomTitle;_bottomTitleAlignment;_defaultOptions={backgroundColor:"transparent",borderStyle:"single",border:!1,borderColor:"#FFFFFF",shouldFill:!0,titleAlignment:"left",bottomTitleAlignment:"left",focusedBorderColor:"#00AAFF"};constructor(D,J){super(D,J);if(J.focusable===!0)this._focusable=!0;if(this._backgroundColor=c(J.backgroundColor||this._defaultOptions.backgroundColor),this._border=J.border??this._defaultOptions.border,!J.border&&(J.borderStyle||J.borderColor||J.focusedBorderColor||J.customBorderChars))this._border=!0;if(this._borderStyle=LQ(J.borderStyle,this._defaultOptions.borderStyle),this._borderColor=c(J.borderColor||this._defaultOptions.borderColor),this._focusedBorderColor=c(J.focusedBorderColor||this._defaultOptions.focusedBorderColor),this._customBorderCharsObj=J.customBorderChars,this._customBorderChars=this._customBorderCharsObj?zJ(this._customBorderCharsObj):void 0,this.borderSides=dK(this._border),this.shouldFill=J.shouldFill??this._defaultOptions.shouldFill,this._title=J.title,this._titleAlignment=J.titleAlignment||this._defaultOptions.titleAlignment,this._bottomTitle=J.bottomTitle,this._bottomTitleAlignment=J.bottomTitleAlignment||this._defaultOptions.bottomTitleAlignment,this.applyYogaBorders(),J.gap!==void 0||J.rowGap!==void 0||J.columnGap!==void 0)this.applyYogaGap(J)}initializeBorder(){if(this._border===!1)this._border=!0,this.borderSides=dK(this._border),this.applyYogaBorders()}get customBorderChars(){return this._customBorderCharsObj}set customBorderChars(D){this._customBorderCharsObj=D,this._customBorderChars=D?zJ(D):void 0,this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(D){let J=c(D??this._defaultOptions.backgroundColor);if(this._backgroundColor!==J)this._backgroundColor=J,this.requestRender()}get border(){return this._border}set border(D){if(this._border!==D)this._border=D,this.borderSides=dK(D),this.applyYogaBorders(),this.requestRender()}get borderStyle(){return this._borderStyle}set borderStyle(D){let J=LQ(D,this._defaultOptions.borderStyle);if(this._borderStyle!==J||!this._border)this._borderStyle=J,this._customBorderChars=void 0,this.initializeBorder(),this.requestRender()}get borderColor(){return this._borderColor}set borderColor(D){let J=c(D??this._defaultOptions.borderColor);if(this._borderColor!==J)this._borderColor=J,this.initializeBorder(),this.requestRender()}get focusedBorderColor(){return this._focusedBorderColor}set focusedBorderColor(D){let J=c(D??this._defaultOptions.focusedBorderColor);if(this._focusedBorderColor!==J){if(this._focusedBorderColor=J,this.initializeBorder(),this._focused)this.requestRender()}}get title(){return this._title}set title(D){if(this._title!==D)this._title=D,this.requestRender()}get titleAlignment(){return this._titleAlignment}set titleAlignment(D){if(this._titleAlignment!==D)this._titleAlignment=D,this.requestRender()}get bottomTitle(){return this._bottomTitle}set bottomTitle(D){if(this._bottomTitle!==D)this._bottomTitle=D,this.requestRender()}get bottomTitleAlignment(){return this._bottomTitleAlignment}set bottomTitleAlignment(D){if(this._bottomTitleAlignment!==D)this._bottomTitleAlignment=D,this.requestRender()}renderSelf(D){let J=this.borderSides.top||this.borderSides.right||this.borderSides.bottom||this.borderSides.left,K=this.shouldFill&&this._backgroundColor.a>0;if(!J&&!K)return;let X=this._focusable&&(this._focused||this._hasFocusedDescendant)?this._focusedBorderColor:this._borderColor,Y=this._screenX,Z=this._screenY;D.drawBox({x:Y,y:Z,width:this.width,height:this.height,borderStyle:this._borderStyle,customBorderChars:this._customBorderChars,border:this._border,borderColor:X,backgroundColor:this._backgroundColor,shouldFill:this.shouldFill,title:this._title,titleAlignment:this._titleAlignment,bottomTitle:this._bottomTitle,bottomTitleAlignment:this._bottomTitleAlignment})}getScissorRect(){let D=super.getScissorRect();if(!this.borderSides.top&&!this.borderSides.right&&!this.borderSides.bottom&&!this.borderSides.left)return D;let J=this.borderSides.left?1:0,K=this.borderSides.right?1:0,Q=this.borderSides.top?1:0,X=this.borderSides.bottom?1:0;return{x:D.x+J,y:D.y+Q,width:Math.max(0,D.width-J-K),height:Math.max(0,D.height-Q-X)}}applyYogaBorders(){let D=this.yogaNode;D.setBorder(E.Left,this.borderSides.left?1:0),D.setBorder(E.Right,this.borderSides.right?1:0),D.setBorder(E.Top,this.borderSides.top?1:0),D.setBorder(E.Bottom,this.borderSides.bottom?1:0),this.requestRender()}applyYogaGap(D){let J=this.yogaNode;if(CJ(D.gap))J.setGap(OD.All,D.gap);if(CJ(D.rowGap))J.setGap(OD.Row,D.rowGap);if(CJ(D.columnGap))J.setGap(OD.Column,D.columnGap)}set gap(D){if(CJ(D))this.yogaNode.setGap(OD.All,D),this.requestRender()}set rowGap(D){if(CJ(D))this.yogaNode.setGap(OD.Row,D),this.requestRender()}set columnGap(D){if(CJ(D))this.yogaNode.setGap(OD.Column,D),this.requestRender()}}class yQ extends ID{selectable=!0;_defaultFg;_defaultBg;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_scrollX=0;_scrollY=0;_truncate=!1;_firstLineOffset=0;textBuffer;textBufferView;_textBufferSyntaxStyle;_defaultOptions={fg:l.fromValues(1,1,1,1),bg:l.fromValues(0,0,0,0),selectionBg:void 0,selectionFg:void 0,selectable:!0,attributes:0,wrapMode:"word",tabIndicator:void 0,tabIndicatorColor:void 0,truncate:!1};constructor(D,J){super(D,J);if(this._defaultFg=c(J.fg??this._defaultOptions.fg),this._defaultBg=c(J.bg??this._defaultOptions.bg),this._defaultAttributes=J.attributes??this._defaultOptions.attributes,this._selectionBg=J.selectionBg?c(J.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=J.selectionFg?c(J.selectionFg):this._defaultOptions.selectionFg,this.selectable=J.selectable??this._defaultOptions.selectable,this._wrapMode=J.wrapMode??this._defaultOptions.wrapMode,this._tabIndicator=J.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=J.tabIndicatorColor?c(J.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this._truncate=J.truncate??this._defaultOptions.truncate,this.textBuffer=xQ.create(this._ctx.widthMethod),this.textBufferView=SQ.create(this.textBuffer),this._firstLineOffset=D.claimFirstLineOffset?.(this)??0,this._textBufferSyntaxStyle=mJ.create(),this.textBuffer.setSyntaxStyle(this._textBufferSyntaxStyle),this.textBufferView.setWrapMode(this._wrapMode),this.textBufferView.setFirstLineOffset(this._firstLineOffset),this.setupMeasureFunc(),this.textBuffer.setDefaultFg(this._defaultFg),this.textBuffer.setDefaultBg(this._defaultBg),this.textBuffer.setDefaultAttributes(this._defaultAttributes),this._tabIndicator!==void 0)this.textBufferView.setTabIndicator(this._tabIndicator);if(this._tabIndicatorColor!==void 0)this.textBufferView.setTabIndicatorColor(this._tabIndicatorColor);if(this._wrapMode!=="none"&&this.width>0)this.textBufferView.setWrapWidth(this.width);if(this.width>0&&this.height>0)this.textBufferView.setViewport(this._scrollX,this._scrollY,this.width,this.height);this.textBufferView.setTruncate(this._truncate),this.updateTextInfo()}onMouseEvent(D){if(D.type==="scroll")this.handleScroll(D)}handleScroll(D){if(!D.scroll)return;let{direction:J,delta:K}=D.scroll;if(J==="up")this.scrollY-=K;else if(J==="down")this.scrollY+=K;if(this._wrapMode==="none"){if(J==="left")this.scrollX-=K;else if(J==="right")this.scrollX+=K}}get lineInfo(){return this.textBufferView.logicalLineInfo}get lineCount(){return this.textBuffer.getLineCount()}get virtualLineCount(){return this.textBufferView.getVirtualLineCount()}get scrollY(){return this._scrollY}set scrollY(D){let J=Math.max(0,this.scrollHeight-this.height),K=Math.max(0,Math.min(D,J));if(this._scrollY!==K)this._scrollY=K,this.updateViewportOffset(),this.requestRender()}get scrollX(){return this._scrollX}set scrollX(D){let J=Math.max(0,this.scrollWidth-this.width),K=Math.max(0,Math.min(D,J));if(this._scrollX!==K)this._scrollX=K,this.updateViewportOffset(),this.requestRender()}get scrollWidth(){return this.lineInfo.lineWidthColsMax}get scrollHeight(){return this.lineInfo.lineStartCols.length}get maxScrollY(){return Math.max(0,this.scrollHeight-this.height)}get maxScrollX(){return Math.max(0,this.scrollWidth-this.width)}updateViewportOffset(){if(this.width>0&&this.height>0)this.textBufferView.setViewport(this._scrollX,this._scrollY,this.width,this.height)}get plainText(){return this.textBuffer.getPlainText()}get textLength(){return this.textBuffer.length}get fg(){return this._defaultFg}set fg(D){let J=c(D??this._defaultOptions.fg);if(this._defaultFg!==J)this._defaultFg=J,this.textBuffer.setDefaultFg(this._defaultFg),this.onFgChanged(J),this.requestRender()}get selectionBg(){return this._selectionBg}set selectionBg(D){let J=D?c(D):this._defaultOptions.selectionBg;if(this._selectionBg!==J){if(this._selectionBg=J,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get selectionFg(){return this._selectionFg}set selectionFg(D){let J=D?c(D):this._defaultOptions.selectionFg;if(this._selectionFg!==J){if(this._selectionFg=J,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get bg(){return this._defaultBg}set bg(D){let J=c(D??this._defaultOptions.bg);if(this._defaultBg!==J)this._defaultBg=J,this.textBuffer.setDefaultBg(this._defaultBg),this.onBgChanged(J),this.requestRender()}get attributes(){return this._defaultAttributes}set attributes(D){if(this._defaultAttributes!==D)this._defaultAttributes=D,this.textBuffer.setDefaultAttributes(this._defaultAttributes),this.onAttributesChanged(D),this.requestRender()}get wrapMode(){return this._wrapMode}set wrapMode(D){if(this._wrapMode!==D){if(this._wrapMode=D,this.textBufferView.setWrapMode(this._wrapMode),D!=="none"&&this.width>0)this.textBufferView.setWrapWidth(this.width);this.yogaNode.markDirty(),this.requestRender()}}get tabIndicator(){return this._tabIndicator}set tabIndicator(D){if(this._tabIndicator!==D){if(this._tabIndicator=D,D!==void 0)this.textBufferView.setTabIndicator(D);this.requestRender()}}get tabIndicatorColor(){return this._tabIndicatorColor}set tabIndicatorColor(D){let J=D?c(D):void 0;if(this._tabIndicatorColor!==J){if(this._tabIndicatorColor=J,J!==void 0)this.textBufferView.setTabIndicatorColor(J);this.requestRender()}}get truncate(){return this._truncate}set truncate(D){if(this._truncate!==D)this._truncate=D,this.textBufferView.setTruncate(D),this.requestRender()}onResize(D,J){this.textBufferView.setViewport(this._scrollX,this._scrollY,D,J),this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change")}refreshLocalSelection(){if(this.lastLocalSelection)return this.updateLocalSelection(this.lastLocalSelection);return!1}updateLocalSelection(D){if(!D?.isActive)return this.textBufferView.resetLocalSelection(),!0;return this.textBufferView.setLocalSelection(D.anchorX,D.anchorY,D.focusX,D.focusY,this._selectionBg,this._selectionFg)}updateTextInfo(){if(this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change")}setupMeasureFunc(){let D=(J,K,Q,X)=>{let Y;if(K===FD.Undefined||isNaN(J))Y=0;else Y=J;let Z=isNaN(Q)?1:Q,_=this.textBufferView.measureForDimensions(Math.floor(Y),Math.floor(Z)),L=_?Math.max(1,_.widthColsMax):1,N=_?Math.max(1,_.lineCount):1;if(K===FD.AtMost&&this._positionType!=="absolute")return{width:Math.min(Y,L),height:Math.min(Z,N)};return{width:L,height:N}};this.yogaNode.setMeasureFunc(D)}shouldStartSelection(D,J){if(!this.selectable)return!1;let K=D-this.x,Q=J-this.y;return K>=0&&K<this.width&&Q>=0&&Q<this.height}onSelectionChanged(D){let J=BY(D,this.x,this.y);this.lastLocalSelection=J;let K;if(!J?.isActive)this.textBufferView.resetLocalSelection(),K=!0;else if(D?.isStart)K=this.textBufferView.setLocalSelection(J.anchorX,J.anchorY,J.focusX,J.focusY,this._selectionBg,this._selectionFg);else K=this.textBufferView.updateLocalSelection(J.anchorX,J.anchorY,J.focusX,J.focusY,this._selectionBg,this._selectionFg);if(K)this.requestRender();return this.hasSelection()}getSelectedText(){return this.textBufferView.getSelectedText()}hasSelection(){return this.textBufferView.hasSelection()}getSelection(){return this.textBufferView.getSelection()}render(D,J){if(!this.visible)return;let K=this._screenX,Q=this._screenY;if(this.markClean(),this._ctx.addToHitGrid(K,Q,this.width,this.height,this.num),this.renderSelf(D),this.buffered&&this.frameBuffer)D.drawFrameBuffer(K,Q,this.frameBuffer)}renderSelf(D){if(this.textBuffer.ptr)D.drawTextBuffer(this.textBufferView,this._screenX,this._screenY)}destroy(){if(this.isDestroyed)return;this.textBuffer.setSyntaxStyle(null),this._textBufferSyntaxStyle.destroy(),this.textBufferView.destroy(),this.textBuffer.destroy(),super.destroy()}onFgChanged(D){}onBgChanged(D){}onAttributesChanged(D){}}class QZ extends yQ{_content;_filetype;_syntaxStyle;_isHighlighting=!1;_treeSitterClient;_highlightsDirty=!1;_highlightSnapshotId=0;_conceal;_drawUnstyledText;_shouldRenderTextBuffer=!0;_streaming;_hadInitialContent=!1;_lastHighlights=[];_baseHighlight;_onHighlight;_onChunks;_highlightingPromise=Promise.resolve();_contentDefaultOptions={content:"",conceal:!0,drawUnstyledText:!0,streaming:!1};constructor(D,J){super(D,J);if(this._content=J.content??this._contentDefaultOptions.content,this._filetype=J.filetype,this._syntaxStyle=J.syntaxStyle,this._treeSitterClient=J.treeSitterClient??bY(),this._conceal=J.conceal??this._contentDefaultOptions.conceal,this._drawUnstyledText=J.drawUnstyledText??this._contentDefaultOptions.drawUnstyledText,this._streaming=J.streaming??this._contentDefaultOptions.streaming,this._baseHighlight=J.baseHighlight,this._onHighlight=J.onHighlight,this._onChunks=J.onChunks,this._content.length>0)this.textBuffer.setText(this._content),this.updateTextInfo(),this._shouldRenderTextBuffer=this._drawUnstyledText||!this._filetype;this._highlightsDirty=this._content.length>0}get content(){return this._content}set content(D){if(this._content!==D){if(this._content=D,this._highlightsDirty=!0,this._highlightSnapshotId++,this._streaming&&!this._drawUnstyledText&&this._filetype){this.requestRender();return}this.textBuffer.setText(D),this.updateTextInfo()}}get filetype(){return this._filetype}set filetype(D){if(this._filetype!==D)this._filetype=D,this._highlightsDirty=!0}get syntaxStyle(){return this._syntaxStyle}set syntaxStyle(D){if(this._syntaxStyle!==D)this._syntaxStyle=D,this._highlightsDirty=!0}get conceal(){return this._conceal}set conceal(D){if(this._conceal!==D)this._conceal=D,this._highlightsDirty=!0}get drawUnstyledText(){return this._drawUnstyledText}set drawUnstyledText(D){if(this._drawUnstyledText!==D)this._drawUnstyledText=D,this._highlightsDirty=!0}get streaming(){return this._streaming}set streaming(D){if(this._streaming!==D)this._streaming=D,this._hadInitialContent=!1,this._lastHighlights=[],this._highlightsDirty=!0}get treeSitterClient(){return this._treeSitterClient}set treeSitterClient(D){if(this._treeSitterClient!==D)this._treeSitterClient=D,this._highlightsDirty=!0}get onHighlight(){return this._onHighlight}get baseHighlight(){return this._baseHighlight}set baseHighlight(D){if(this._baseHighlight!==D)this._baseHighlight=D,this._highlightsDirty=!0}set onHighlight(D){if(this._onHighlight!==D)this._onHighlight=D,this._highlightsDirty=!0}get onChunks(){return this._onChunks}set onChunks(D){if(this._onChunks!==D)this._onChunks=D,this._highlightsDirty=!0}get isHighlighting(){return this._isHighlighting}get highlightingDone(){return this._highlightingPromise}async transformChunks(D,J){if(!this._onChunks)return D;return await this._onChunks(D,J)??D}ensureVisibleTextBeforeHighlight(){if(this.isDestroyed)return;let D=this._content;if(!this._filetype){this._shouldRenderTextBuffer=!0;return}let J=this._streaming&&!this._hadInitialContent,K=this._streaming?J&&this._drawUnstyledText:this._drawUnstyledText;if(this._streaming&&!J)this._shouldRenderTextBuffer=!0;else if(K)this.textBuffer.setText(D),this._shouldRenderTextBuffer=!0;else this._shouldRenderTextBuffer=!1}async startHighlight(){let D=this._content,J=this._filetype,K=++this._highlightSnapshotId;if(!J)return;if(this._streaming&&!this._hadInitialContent)this._hadInitialContent=!0;this._isHighlighting=!0;try{let X=await this._treeSitterClient.highlightOnce(D,J);if(K!==this._highlightSnapshotId){this.requestRender();return}if(this.isDestroyed)return;let Y=X.highlights??[];if(this._onHighlight&&Y.length>=0){let Z={content:D,filetype:J,syntaxStyle:this._syntaxStyle},_=await this._onHighlight(Y,Z);if(_!==void 0)Y=_}if(K!==this._highlightSnapshotId){this.requestRender();return}if(this.isDestroyed)return;if(Y.length>0){if(this._streaming)this._lastHighlights=Y}if(Y.length>0||this._onChunks||this._baseHighlight){let Z={content:D,filetype:J,syntaxStyle:this._syntaxStyle,highlights:Y},_=fY(D,Y,this._syntaxStyle,{enabled:this._conceal,baseHighlight:this._baseHighlight});if(_=await this.transformChunks(_,Z),K!==this._highlightSnapshotId){this.requestRender();return}if(this.isDestroyed)return;let L=new tD(_);this.textBuffer.setStyledText(L)}else this.textBuffer.setText(D);this._shouldRenderTextBuffer=!0,this._isHighlighting=!1,this._highlightsDirty=!1,this.updateTextInfo(),this.requestRender()}catch(X){if(K!==this._highlightSnapshotId){this.requestRender();return}if(console.warn("Code highlighting failed, falling back to plain text:",X),this.isDestroyed)return;this.textBuffer.setText(D),this._shouldRenderTextBuffer=!0,this._isHighlighting=!1,this._highlightsDirty=!1,this.updateTextInfo(),this.requestRender()}}getLineHighlights(D){return this.textBuffer.getLineHighlights(D)}renderSelf(D){if(this._highlightsDirty){if(this.isDestroyed)return;if(this._content.length===0)this._shouldRenderTextBuffer=!1,this._highlightsDirty=!1;else if(!this._filetype)this._shouldRenderTextBuffer=!0,this._highlightsDirty=!1;else this.ensureVisibleTextBeforeHighlight(),this._highlightsDirty=!1,this._highlightingPromise=this.startHighlight()}if(!this._shouldRenderTextBuffer)return;super.renderSelf(D)}}var XZ=Symbol.for("@opentui/core/TextNodeRenderable");function VK(D){return!!D?.[XZ]}function JY(D){return D.chunks.map((J)=>{let K=new uJ({fg:J.fg,bg:J.bg,attributes:J.attributes,link:J.link});return K.add(J.text),K})}class uJ extends FK{[XZ]=!0;_fg;_bg;_attributes;_link;_children=[];parent=null;constructor(D){super(D);this._fg=D.fg?c(D.fg):void 0,this._bg=D.bg?c(D.bg):void 0,this._attributes=D.attributes??0,this._link=D.link}get children(){return this._children}set children(D){this._children=D,this.requestRender()}requestRender(){this.markDirty(),this.parent?.requestRender()}add(D,J){if(typeof D==="string"){if(J!==void 0)return this._children.splice(J,0,D),this.requestRender(),J;let K=this._children.length;return this._children.push(D),this.requestRender(),K}if(VK(D)){if(J!==void 0)return this._children.splice(J,0,D),D.parent=this,this.requestRender(),J;let K=this._children.length;return this._children.push(D),D.parent=this,this.requestRender(),K}if(G0(D)){let K=JY(D);if(J!==void 0)return this._children.splice(J,0,...K),K.forEach((X)=>X.parent=this),this.requestRender(),J;let Q=this._children.length;return this._children.push(...K),K.forEach((X)=>X.parent=this),this.requestRender(),Q}throw Error("TextNodeRenderable only accepts strings, TextNodeRenderable instances, or StyledText instances")}replace(D,J){if(this._children[J]=D,typeof D!=="string")D.parent=this;this.requestRender()}insertBefore(D,J){if(!J||!VK(J))throw Error("Anchor must be a TextNodeRenderable");let K=this._children.indexOf(J);if(K===-1)throw Error("Anchor node not found in children");if(typeof D==="string")this._children.splice(K,0,D);else if(VK(D))this._children.splice(K,0,D),D.parent=this;else if(D instanceof tD){let Q=JY(D);this._children.splice(K,0,...Q),Q.forEach((X)=>X.parent=this)}else throw Error("Child must be a string, TextNodeRenderable, or StyledText instance");return this.requestRender(),this}remove(D){let J=this.getRenderableIndex(D);if(J===-1)throw Error("Child not found in children");let K=this._children[J];return this._children.splice(J,1),K.parent=null,this.requestRender(),this}clear(){this._children=[],this.requestRender()}mergeStyles(D){return{fg:this._fg??D.fg,bg:this._bg??D.bg,attributes:this._attributes|D.attributes,link:this._link??D.link}}gatherWithInheritedStyle(D={fg:void 0,bg:void 0,attributes:0}){let J=this.mergeStyles(D),K=[];for(let Q of this._children)if(typeof Q==="string")K.push({__isChunk:!0,text:Q,fg:J.fg,bg:J.bg,attributes:J.attributes,link:J.link});else{let X=Q.gatherWithInheritedStyle(J);K.push(...X)}return this.markClean(),K}static fromString(D,J={}){let K=new uJ(J);return K.add(D),K}static fromNodes(D,J={}){let K=new uJ(J);for(let Q of D)K.add(Q);return K}toChunks(D={fg:void 0,bg:void 0,attributes:0}){return this.gatherWithInheritedStyle(D)}getChildren(){return this._children.filter((D)=>typeof D!=="string")}getChildrenCount(){return this._children.length}getRenderable(D){return this._children.find((J)=>typeof J!=="string"&&J.id===D)}getRenderableIndex(D){return this._children.findIndex((J)=>VK(J)&&J.id===D)}get fg(){return this._fg}set fg(D){if(!D){this._fg=void 0,this.requestRender();return}this._fg=c(D),this.requestRender()}set bg(D){if(!D){this._bg=void 0,this.requestRender();return}this._bg=c(D),this.requestRender()}get bg(){return this._bg}set attributes(D){this._attributes=D,this.requestRender()}get attributes(){return this._attributes}set link(D){this._link=D,this.requestRender()}get link(){return this._link}findDescendantById(D){return}}class YZ extends uJ{ctx;textParent;constructor(D,J,K){super(J);this.ctx=D,this.textParent=K}requestRender(){this.markDirty(),this.ctx.requestRender()}}class ZZ extends yQ{_text;_hasManualStyledText=!1;rootTextNode;_contentDefaultOptions={content:""};constructor(D,J){super(D,J);let K=J.content??this._contentDefaultOptions.content,Q=typeof K==="string"?aK(K):K;this._text=Q,this._hasManualStyledText=J.content!==void 0&&K!=="",this.rootTextNode=new YZ(D,{id:`${this.id}-root`,fg:this._defaultFg,bg:this._defaultBg,attributes:this._defaultAttributes},this),this.updateTextBuffer(Q)}updateTextBuffer(D){this.textBuffer.setStyledText(D),this.clearChunks(D)}clearChunks(D){}get content(){return this._text}get chunks(){return this._text.chunks}get textNode(){return this.rootTextNode}set content(D){this._hasManualStyledText=!0;let J=typeof D==="string"?aK(D):D;if(this._text!==J)this._text=J,this.updateTextBuffer(J),this.updateTextInfo()}updateTextFromNodes(){if(this.rootTextNode.isDirty&&!this._hasManualStyledText){let D=this.rootTextNode.gatherWithInheritedStyle({fg:this._defaultFg,bg:this._defaultBg,attributes:this._defaultAttributes,link:void 0});this.textBuffer.setStyledText(new tD(D)),this.refreshLocalSelection(),this.yogaNode.markDirty()}}add(D,J){return this.rootTextNode.add(D,J)}remove(D){this.rootTextNode.remove(D)}insertBefore(D,J){return this.rootTextNode.insertBefore(D,J),this.rootTextNode.children.indexOf(D)}getTextChildren(){return this.rootTextNode.getChildren()}clear(){this.rootTextNode.clear();let D=aK("");this._text=D,this.updateTextBuffer(D),this.updateTextInfo(),this.requestRender()}onLifecyclePass=()=>{this.updateTextFromNodes()};onFgChanged(D){this.rootTextNode.fg=D}onBgChanged(D){this.rootTextNode.bg=D}onAttributesChanged(D){this.rootTextNode.attributes=D}destroy(){this.rootTextNode.children.length=0,super.destroy()}}class $Z extends j5{output=[];constructor(){super()}get size(){return this.output.length}write(D,J){this.output.push({stream:D,output:J}),this.emit("write",D,J)}claimOutput(){let D=this.output.map((J)=>J.output).join("");return this.clear(),D}clear(){this.output=[]}}class PQ extends U5{stream;capture;isTTY=!0;columns=process.stdout.columns||80;rows=process.stdout.rows||24;constructor(D,J){super();this.stream=D,this.capture=J}_write(D,J,K){let Q=D.toString();this.capture.write(this.stream,Q),K()}getColorDepth(){return process.stdout.getColorDepth?.()||8}}var QY={enter:"return",esc:"escape",kp0:"0",kp1:"1",kp2:"2",kp3:"3",kp4:"4",kp5:"5",kp6:"6",kp7:"7",kp8:"8",kp9:"9",kpdecimal:".",kpdivide:"/",kpmultiply:"*",kpminus:"-",kpplus:"+",kpenter:"enter",kpequal:"=",kpseparator:",",kpleft:"left",kpright:"right",kpup:"up",kpdown:"down",kppageup:"pageup",kppagedown:"pagedown",kphome:"home",kpend:"end",kpinsert:"insert",kpdelete:"delete"};function XY(D,J){return{...D,...J}}function XQ(D,J){let K=new Map;for(let Q of D){let X=qJ(Q);K.set(X,Q)}for(let Q of J){let X=qJ(Q);K.set(X,Q)}return Array.from(K.values())}function qJ(D){return`${D.name}:${D.ctrl?1:0}:${D.shift?1:0}:${D.meta?1:0}:${D.super?1:0}`}function O5(D){if(D===void 0||D<32||D===127)return;try{let J=String.fromCodePoint(D);if(J.length===1&&J>="A"&&J<="Z")return J.toLowerCase();return J}catch{return}}function AZ(D){let J=new Set([D.name]),K=O5(D.baseCode);if(K)J.add(K);return[...J].map((Q)=>qJ({...D,name:Q}))}function W5(D,J){for(let K of AZ(J)){let Q=D.get(K);if(Q!==void 0)return Q}return}function G5(D,J){let K=qJ(J);return AZ(D).includes(K)}function YQ(D,J){let K=new Map,Q=J||{};for(let X of D){let Y=qJ(X);K.set(Y,X.action)}for(let X of D){let Y=Q[X.name]||X.name;if(Y!==X.name){let Z=qJ({...X,name:Y});K.set(Z,X.action)}}return K}function k5(D){let J=[];if(D.ctrl)J.push("ctrl");if(D.shift)J.push("shift");if(D.meta)J.push("meta");if(D.super)J.push("super");return J.push(D.name),J.join("+")}function P5(){let J=Error().stack?.split(`
|
|
43
|
+
`).slice(5)||[];if(!J.length)return null;let K=J[0].trim(),Q=/at\s+(?:([\w$.<>]+)\s+\()?((?:\/|[A-Za-z]:\\)[^:]+):(\d+):(\d+)\)?/,X=K.match(Q);if(!X)return null;let Y=X[1]||"<anonymous>",Z=X[2],_=Z.split(/[\\/]/).pop()||"<unknown>",L=parseInt(X[3],10)||0,N=parseInt(X[4],10)||0;return{functionName:Y,fullPath:Z,fileName:_,lineNumber:L,columnNumber:N}}var BQ=OJ("ConsoleCapture",()=>new $Z);AD({name:"OTUI_USE_CONSOLE",description:"Whether to use the console. Will not capture console output if set to false.",type:"boolean",default:!0});AD({name:"SHOW_CONSOLE",description:"Show the console at startup if set to true.",type:"boolean",default:!1});class LZ extends _Z{_cachedLogs=[];MAX_CACHE_SIZE=1000;_collectCallerInfo=!1;_cachingEnabled=!0;_originalConsole=null;get cachedLogs(){return this._cachedLogs}constructor(){super()}activate(){if(!this._originalConsole)this._originalConsole=global.console;this.setupConsoleCapture(),this.overrideConsoleMethods()}setupConsoleCapture(){if(!XD.OTUI_USE_CONSOLE)return;let D=new PQ("stdout",BQ),J=new PQ("stderr",BQ);global.console=new V5({stdout:D,stderr:J,colorMode:!0,inspectOptions:{compact:!1,breakLength:80,depth:2}})}overrideConsoleMethods(){if(console.log=(...D)=>{this.appendToConsole("LOG",...D)},console.info=(...D)=>{this.appendToConsole("INFO",...D)},console.warn=(...D)=>{this.appendToConsole("WARN",...D)},console.error=(...D)=>{this.appendToConsole("ERROR",...D)},console.debug=(...D)=>{this.appendToConsole("DEBUG",...D)},typeof console.timeStamp!=="function")console.timeStamp=()=>{}}setCollectCallerInfo(D){this._collectCallerInfo=D}clearConsole(){this._cachedLogs=[]}setCachingEnabled(D){this._cachingEnabled=D}deactivate(){this.restoreOriginalConsole()}restoreOriginalConsole(){if(this._originalConsole)global.console=this._originalConsole}addLogEntry(D,...J){let K=this._collectCallerInfo?P5():null,Q=[new Date,D,J,K];if(this._cachingEnabled){if(this._cachedLogs.length>=this.MAX_CACHE_SIZE)this._cachedLogs.shift();this._cachedLogs.push(Q)}return Q}appendToConsole(D,...J){if(this._cachedLogs.length>=this.MAX_CACHE_SIZE)this._cachedLogs.shift();let K=this.addLogEntry(D,...J);this.emit("entry",K)}destroy(){this.deactivate()}}var kD=OJ("TerminalConsoleCache",()=>{let D=new LZ;return process.on("exit",()=>{D.destroy()}),D}),B5;((D)=>{D.TOP="top",D.BOTTOM="bottom",D.LEFT="left",D.RIGHT="right"})(B5||={});var ZQ=[{name:"up",action:"scroll-up"},{name:"down",action:"scroll-down"},{name:"up",shift:!0,action:"scroll-to-top"},{name:"down",shift:!0,action:"scroll-to-bottom"},{name:"p",ctrl:!0,action:"position-previous"},{name:"o",ctrl:!0,action:"position-next"},{name:"+",action:"size-increase"},{name:"=",shift:!0,action:"size-increase"},{name:"-",action:"size-decrease"},{name:"s",ctrl:!0,action:"save-logs"},{name:"c",ctrl:!0,shift:!0,action:"copy-selection"}],C5={position:"bottom",sizePercent:30,zIndex:1/0,colorInfo:"#00FFFF",colorWarn:"#FFFF00",colorError:"#FF0000",colorDebug:"#808080",colorDefault:"#FFFFFF",backgroundColor:l.fromValues(0.1,0.1,0.1,0.7),startInDebugMode:!1,title:"Console",titleBarColor:l.fromValues(0.05,0.05,0.05,0.7),titleBarTextColor:"#FFFFFF",cursorColor:"#00A0FF",maxStoredLogs:2000,maxDisplayLines:3000,onCopySelection:void 0,keyBindings:void 0,keyAliasMap:void 0,selectionColor:l.fromValues(0.3,0.5,0.8,0.5),copyButtonColor:"#00A0FF"},YJ=2;class NZ extends _Z{isVisible=!1;isFocused=!1;renderer;keyHandler;options;_debugModeEnabled=!1;frameBuffer=null;consoleX=0;consoleY=0;consoleWidth=0;consoleHeight=0;scrollTopIndex=0;isScrolledToBottom=!0;currentLineIndex=0;_displayLines=[];_allLogEntries=[];_needsFrameBufferUpdate=!1;_entryListener;_selectionStart=null;_selectionEnd=null;_isDragging=!1;_copyButtonBounds={x:0,y:0,width:0,height:0};_autoScrollInterval=null;clock;_keyBindingsMap;_keyAliasMap;_keyBindings;_mergedKeyBindings;_actionHandlers;markNeedsRerender(){this._needsFrameBufferUpdate=!0,this.renderer.requestRender()}getCopyButtonLabel(){let D=this._mergedKeyBindings.filter((K)=>K.action==="copy-selection"),J=D[D.length-1];if(J)return`[Copy (${k5(J)})]`;return"[Copy]"}_rgbaInfo;_rgbaWarn;_rgbaError;_rgbaDebug;_rgbaDefault;backgroundColor;_rgbaTitleBar;_rgbaTitleBarText;_title;_rgbaCursor;_rgbaSelection;_rgbaCopyButton;_positions=["top","right","bottom","left"];constructor(D,J={}){super();if(this.renderer=D,this.clock=J.clock??new iJ,this.options={...C5,...J},this.keyHandler=this.handleKeyPress.bind(this),this._debugModeEnabled=this.options.startInDebugMode,kD.setCollectCallerInfo(this._debugModeEnabled),this._rgbaInfo=c(this.options.colorInfo),this._rgbaWarn=c(this.options.colorWarn),this._rgbaError=c(this.options.colorError),this._rgbaDebug=c(this.options.colorDebug),this._rgbaDefault=c(this.options.colorDefault),this.backgroundColor=c(this.options.backgroundColor),this._rgbaTitleBar=c(this.options.titleBarColor),this._rgbaTitleBarText=c(this.options.titleBarTextColor||this.options.colorDefault),this._title=this.options.title,this._rgbaCursor=c(this.options.cursorColor),this._rgbaSelection=c(this.options.selectionColor),this._rgbaCopyButton=c(this.options.copyButtonColor),this._keyAliasMap=XY(QY,J.keyAliasMap||{}),this._keyBindings=J.keyBindings||[],this._mergedKeyBindings=XQ(ZQ,this._keyBindings),this._keyBindingsMap=YQ(this._mergedKeyBindings,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._updateConsoleDimensions(),this._scrollToBottom(!0),this._entryListener=(K)=>{this._handleNewLog(K)},kD.on("entry",this._entryListener),XD.SHOW_CONSOLE)this.show()}buildActionHandlers(){return new Map([["scroll-up",()=>this.scrollUp()],["scroll-down",()=>this.scrollDown()],["scroll-to-top",()=>this.scrollToTop()],["scroll-to-bottom",()=>this.scrollToBottomAction()],["position-previous",()=>this.positionPrevious()],["position-next",()=>this.positionNext()],["size-increase",()=>this.sizeIncrease()],["size-decrease",()=>this.sizeDecrease()],["save-logs",()=>this.saveLogsAction()],["copy-selection",()=>this.triggerCopyAction()]])}activate(){kD.activate()}deactivate(){kD.deactivate()}_handleNewLog(D){if(!this.isVisible)return;if(this._allLogEntries.push(D),this._allLogEntries.length>this.options.maxStoredLogs)this._allLogEntries.splice(0,this._allLogEntries.length-this.options.maxStoredLogs);let J=this._processLogEntry(D);if(this._displayLines.push(...J),this._displayLines.length>this.options.maxDisplayLines){this._displayLines.splice(0,this._displayLines.length-this.options.maxDisplayLines);let K=this._displayLines.length-this.options.maxDisplayLines;this.scrollTopIndex=Math.max(0,this.scrollTopIndex-K)}if(this.isScrolledToBottom)this._scrollToBottom();this.markNeedsRerender()}_updateConsoleDimensions(D,J){let K=D??this.renderer.width,Q=J??this.renderer.height,X=this.options.sizePercent/100;switch(this.options.position){case"top":this.consoleX=0,this.consoleY=0,this.consoleWidth=K,this.consoleHeight=Math.max(1,Math.floor(Q*X));break;case"bottom":this.consoleHeight=Math.max(1,Math.floor(Q*X)),this.consoleWidth=K,this.consoleX=0,this.consoleY=Q-this.consoleHeight;break;case"left":this.consoleWidth=Math.max(1,Math.floor(K*X)),this.consoleHeight=Q,this.consoleX=0,this.consoleY=0;break;case"right":this.consoleWidth=Math.max(1,Math.floor(K*X)),this.consoleHeight=Q,this.consoleY=0,this.consoleX=K-this.consoleWidth;break}this.currentLineIndex=Math.max(0,Math.min(this.currentLineIndex,this.consoleHeight-1))}handleKeyPress(D){if(D.name==="escape"){this.blur();return}let J=W5(this._keyBindingsMap,D);if(J){let K=this._actionHandlers.get(J);if(K){K();return}}}scrollUp(){let D=Math.max(1,this.consoleHeight-1);if(this.currentLineIndex>0)this.currentLineIndex--,this.markNeedsRerender();else if(this.scrollTopIndex>0)this.scrollTopIndex--,this.isScrolledToBottom=!1,this.markNeedsRerender();return!0}scrollDown(){let D=this._displayLines.length,J=Math.max(1,this.consoleHeight-1),K=Math.max(0,D-J);if(this.currentLineIndex<J-1&&this.scrollTopIndex+this.currentLineIndex<D-1)this.currentLineIndex++,this.markNeedsRerender();else if(this.scrollTopIndex<K)this.scrollTopIndex++,this.isScrolledToBottom=this.scrollTopIndex===K,this.markNeedsRerender();return!0}scrollToTop(){if(this.scrollTopIndex>0||this.currentLineIndex>0)this.scrollTopIndex=0,this.currentLineIndex=0,this.isScrolledToBottom=this._displayLines.length<=Math.max(1,this.consoleHeight-1),this.markNeedsRerender();return!0}scrollToBottomAction(){let D=Math.max(1,this.consoleHeight-1),J=Math.max(0,this._displayLines.length-D);if(this.scrollTopIndex<J||!this.isScrolledToBottom)this._scrollToBottom(!0),this.markNeedsRerender();return!0}positionPrevious(){let J=(this._positions.indexOf(this.options.position)-1+this._positions.length)%this._positions.length;return this.options.position=this._positions[J],this.resize(this.renderer.width,this.renderer.height),!0}positionNext(){let J=(this._positions.indexOf(this.options.position)+1)%this._positions.length;return this.options.position=this._positions[J],this.resize(this.renderer.width,this.renderer.height),!0}sizeIncrease(){return this.options.sizePercent=Math.min(100,this.options.sizePercent+5),this.resize(this.renderer.width,this.renderer.height),!0}sizeDecrease(){return this.options.sizePercent=Math.max(10,this.options.sizePercent-5),this.resize(this.renderer.width,this.renderer.height),!0}saveLogsAction(){return this.saveLogsToFile(),!0}triggerCopyAction(){return this.triggerCopy(),!0}attachStdin(){if(this.isFocused)return;this.renderer.keyInput.on("keypress",this.keyHandler),this.isFocused=!0}detachStdin(){if(!this.isFocused)return;this.renderer.keyInput.off("keypress",this.keyHandler),this.isFocused=!1}formatTimestamp(D){return new Intl.DateTimeFormat("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(D)}formatArguments(D){return D.map((J)=>{if(J instanceof Error){let K=J;return`Error: ${K.message}
|
|
44
|
+
`+(K.stack?`${K.stack}
|
|
45
|
+
`:"")}if(typeof J==="object"&&J!==null)try{return KY.inspect(J,{depth:2})}catch(K){return String(J)}try{return KY.inspect(J,{depth:2})}catch(K){return String(J)}}).join(" ")}resize(D,J){if(this._updateConsoleDimensions(D,J),this.frameBuffer){this.frameBuffer.resize(this.consoleWidth,this.consoleHeight);let K=this._displayLines.length,Q=Math.max(1,this.consoleHeight-1),X=Math.max(0,K-Q);this.scrollTopIndex=Math.min(this.scrollTopIndex,X),this.isScrolledToBottom=this.scrollTopIndex===X;let Y=Math.min(Q,K-this.scrollTopIndex);if(this.currentLineIndex=Math.max(0,Math.min(this.currentLineIndex,Y-1)),this.isVisible)this.markNeedsRerender()}}clear(){kD.clearConsole(),this._allLogEntries=[],this._displayLines=[],this.markNeedsRerender()}toggle(){if(this.isVisible)if(this.isFocused)this.hide();else this.focus();else this.show();if(!this.renderer.isRunning)this.renderer.requestRender()}focus(){this.attachStdin(),this._scrollToBottom(!0),this.markNeedsRerender()}blur(){this.detachStdin(),this.markNeedsRerender()}show(){if(!this.isVisible){if(this.isVisible=!0,this._processCachedLogs(),kD.setCachingEnabled(!1),!this.frameBuffer)this.frameBuffer=fD.create(this.consoleWidth,this.consoleHeight,this.renderer.widthMethod,{respectAlpha:this.backgroundColor.a<1,id:"console framebuffer"});let D=kD.cachedLogs.length,J=Math.min(this.consoleHeight,D);this.currentLineIndex=Math.max(0,J-1),this.scrollTopIndex=0,this._scrollToBottom(!0),this.focus(),this.markNeedsRerender()}}hide(){if(this.isVisible)this.isVisible=!1,this.blur(),kD.setCachingEnabled(!0)}destroy(){this.stopAutoScroll(),this.hide(),this.deactivate(),kD.off("entry",this._entryListener)}getCachedLogs(){return kD.cachedLogs.map((D)=>D[0].toISOString()+" "+D.slice(1).join(" ")).join(`
|
|
46
|
+
`)}updateFrameBuffer(){if(!this.frameBuffer)return;this.frameBuffer.clear(this.backgroundColor);let D=this._displayLines,J=D.length,K=Math.max(1,this.consoleHeight-1);this.frameBuffer.fillRect(0,0,this.consoleWidth,1,this._rgbaTitleBar);let Q=`${this._title}${this.isFocused?" (Focused)":""}`,X=Math.max(0,Math.floor((this.consoleWidth-Q.length)/2));this.frameBuffer.drawText(Q,X,0,this._rgbaTitleBarText,this._rgbaTitleBar);let Y=this.getCopyButtonLabel(),Z=this.consoleWidth-Y.length-1;if(Z>=0){let G=this.hasSelection(),O=l.fromInts(100,100,100,255),U=G?this._rgbaCopyButton:O;this.frameBuffer.drawText(Y,Z,0,U,this._rgbaTitleBar),this._copyButtonBounds={x:Z,y:0,width:Y.length,height:1}}else this._copyButtonBounds={x:-1,y:-1,width:0,height:0};let _=this.scrollTopIndex,L=Math.min(_+K,J),N=D.slice(_,L),V=1;for(let G=0;G<N.length;G++){if(V>=this.consoleHeight)break;let O=N[G],U=_+G,k=this._rgbaDefault;switch(O.level){case"INFO":k=this._rgbaInfo;break;case"WARN":k=this._rgbaWarn;break;case"ERROR":k=this._rgbaError;break;case"DEBUG":k=this._rgbaDebug;break}let F=O.indent?" ".repeat(YJ):"",P=O.text,W=this.consoleWidth-1-(O.indent?YJ:0);if(this.isFocused&&V-1===this.currentLineIndex)this.frameBuffer.drawText(">",0,V,this._rgbaCursor,this.backgroundColor);else this.frameBuffer.drawText(" ",0,V,this._rgbaDefault,this.backgroundColor);let T=`${F}${P.substring(0,W)}`,g=this.getLineSelectionRange(U);if(g){let h=Math.max(0,g.start),y=Math.min(T.length,g.end);if(h>0)this.frameBuffer.drawText(T.substring(0,h),1,V,k);if(h<y)this.frameBuffer.fillRect(1+h,V,y-h,1,this._rgbaSelection),this.frameBuffer.drawText(T.substring(h,y),1+h,V,k,this._rgbaSelection);if(y<T.length)this.frameBuffer.drawText(T.substring(y),1+y,V,k)}else this.frameBuffer.drawText(T,1,V,k);V++}}renderToBuffer(D){if(!this.isVisible||!this.frameBuffer)return;if(this._needsFrameBufferUpdate)this.updateFrameBuffer(),this._needsFrameBufferUpdate=!1;D.drawFrameBuffer(this.consoleX,this.consoleY,this.frameBuffer)}setDebugMode(D){if(this._debugModeEnabled=D,kD.setCollectCallerInfo(D),this.isVisible)this.markNeedsRerender()}toggleDebugMode(){this.setDebugMode(!this._debugModeEnabled)}set keyBindings(D){this._keyBindings=D,this._mergedKeyBindings=XQ(ZQ,D),this._keyBindingsMap=YQ(this._mergedKeyBindings,this._keyAliasMap),this.markNeedsRerender()}set keyAliasMap(D){this._keyAliasMap=XY(QY,D),this._mergedKeyBindings=XQ(ZQ,this._keyBindings),this._keyBindingsMap=YQ(this._mergedKeyBindings,this._keyAliasMap),this.markNeedsRerender()}set onCopySelection(D){this.options.onCopySelection=D}get onCopySelection(){return this.options.onCopySelection}_scrollToBottom(D=!1){let J=this._displayLines.length,K=Math.max(1,this.consoleHeight-1),Q=Math.max(0,J-K);this.scrollTopIndex=Q,this.isScrolledToBottom=!0;let X=Math.min(K,J-this.scrollTopIndex);if(D||this.currentLineIndex>=X)this.currentLineIndex=Math.max(0,X-1)}_processLogEntry(D){let[J,K,Q,X]=D,Y=[],Z=this.formatTimestamp(J),_=X?`${X.fileName}:${X.lineNumber}`:"unknown",L=`[${Z}] [${K}]`+(this._debugModeEnabled?` [${_}]`:"")+" ",V=this.formatArguments(Q).split(`
|
|
47
|
+
`);for(let G=0;G<V.length;G++){let O=V[G],U=G===0,k=this.consoleWidth-1-(U?0:YJ),F=U?L:" ".repeat(YJ),P=U?F+O:O,W=0;while(W<P.length||U&&W===0&&P.length===0){let f=P.substring(W,W+k),T=W===0;if(Y.push({text:T&&!U?F+f:f,level:K,indent:!U||!T}),W+=k,U&&W===0&&P.length===0)break}}return Y}_processCachedLogs(){let D=[...kD.cachedLogs];if(kD.clearConsole(),this._allLogEntries.push(...D),this._allLogEntries.length>this.options.maxStoredLogs)this._allLogEntries.splice(0,this._allLogEntries.length-this.options.maxStoredLogs);for(let J of D){let K=this._processLogEntry(J);this._displayLines.push(...K)}if(this._displayLines.length>this.options.maxDisplayLines)this._displayLines.splice(0,this._displayLines.length-this.options.maxDisplayLines)}hasSelection(){if(this._selectionStart===null||this._selectionEnd===null)return!1;return this._selectionStart.line!==this._selectionEnd.line||this._selectionStart.col!==this._selectionEnd.col}normalizeSelection(){if(!this._selectionStart||!this._selectionEnd)return null;let D=this._selectionStart,J=this._selectionEnd;if(D.line<J.line||D.line===J.line&&D.col<=J.col)return{startLine:D.line,startCol:D.col,endLine:J.line,endCol:J.col};else return{startLine:J.line,startCol:J.col,endLine:D.line,endCol:D.col}}getSelectedText(){let D=this.normalizeSelection();if(!D)return"";let J=[];for(let K=D.startLine;K<=D.endLine;K++){if(K<0||K>=this._displayLines.length)continue;let Q=this._displayLines[K],X=Q.indent?" ".repeat(YJ):"",Y=this.consoleWidth-1-(Q.indent?YJ:0),Z=X+Q.text.substring(0,Y),_=Z;if(K===D.startLine&&K===D.endLine)_=Z.substring(D.startCol,D.endCol);else if(K===D.startLine)_=Z.substring(D.startCol);else if(K===D.endLine)_=Z.substring(0,D.endCol);J.push(_)}return J.join(`
|
|
48
|
+
`)}clearSelection(){this._selectionStart=null,this._selectionEnd=null,this._isDragging=!1,this.stopAutoScroll()}stopAutoScroll(){if(this._autoScrollInterval!==null)this.clock.clearInterval(this._autoScrollInterval),this._autoScrollInterval=null}startAutoScroll(D){this.stopAutoScroll(),this._autoScrollInterval=this.clock.setInterval(()=>{if(D==="up")if(this.scrollTopIndex>0){if(this.scrollTopIndex--,this.isScrolledToBottom=!1,this._selectionEnd)this._selectionEnd={line:this.scrollTopIndex,col:this._selectionEnd.col};this.markNeedsRerender()}else this.stopAutoScroll();else{let J=this._displayLines.length,K=Math.max(1,this.consoleHeight-1),Q=Math.max(0,J-K);if(this.scrollTopIndex<Q){if(this.scrollTopIndex++,this.isScrolledToBottom=this.scrollTopIndex===Q,this._selectionEnd){let X=this.scrollTopIndex+K-1;this._selectionEnd={line:Math.min(X,J-1),col:this._selectionEnd.col}}this.markNeedsRerender()}else this.stopAutoScroll()}},50)}triggerCopy(){if(!this.hasSelection())return;let D=this.getSelectedText();if(D&&this.options.onCopySelection){try{this.options.onCopySelection(D)}catch{}this.clearSelection(),this.markNeedsRerender()}}getLineSelectionRange(D){let J=this.normalizeSelection();if(!J)return null;if(D<J.startLine||D>J.endLine)return null;let K=this._displayLines[D];if(!K)return null;let Q=K.indent?" ".repeat(YJ):"",X=this.consoleWidth-1-(K.indent?YJ:0),Y=Q.length+Math.min(K.text.length,X),Z=0,_=Y;if(D===J.startLine)Z=Math.max(0,J.startCol);if(D===J.endLine)_=Math.min(Y,J.endCol);if(Z>=_)return null;return{start:Z,end:_}}handleMouse(D){if(!this.isVisible)return!1;let J=D.x-this.consoleX,K=D.y-this.consoleY;if(J<0||J>=this.consoleWidth||K<0||K>=this.consoleHeight)return!1;if(D.type==="scroll"&&D.scroll){if(D.scroll.direction==="up")this.scrollUp();else if(D.scroll.direction==="down")this.scrollDown();return!0}if(K===0){if(D.type==="down"&&D.button===0&&J>=this._copyButtonBounds.x&&J<this._copyButtonBounds.x+this._copyButtonBounds.width)return this.triggerCopy(),!0;return!0}let Q=this.scrollTopIndex+(K-1),X=Math.max(0,J-1);if(D.type==="down"&&D.button===0)return this.clearSelection(),this._selectionStart={line:Q,col:X},this._selectionEnd={line:Q,col:X},this._isDragging=!0,this.markNeedsRerender(),!0;if(D.type==="drag"&&this._isDragging){this._selectionEnd={line:Q,col:X};let Y=Math.max(1,this.consoleHeight-1),Z=K-1;if(Z<=0)this.startAutoScroll("up");else if(Z>=Y-1)this.startAutoScroll("down");else this.stopAutoScroll();return this.markNeedsRerender(),!0}if(D.type==="up"){if(this._isDragging)this._selectionEnd={line:Q,col:X},this._isDragging=!1,this.stopAutoScroll(),this.markNeedsRerender();return!0}return!0}get visible(){return this.isVisible}get bounds(){return{x:this.consoleX,y:this.consoleY,width:this.consoleWidth,height:this.consoleHeight}}saveLogsToFile(){try{let J=`_console_${Date.now()}.log`,K=H5.join(process.cwd(),J),Q=[...this._allLogEntries,...kD.cachedLogs],X=[];for(let[Z,_,L,N]of Q){let V=this.formatTimestamp(Z),G=N?`${N.fileName}:${N.lineNumber}`:"unknown",O=`[${V}] [${_}]`+(this._debugModeEnabled?` [${G}]`:"")+" ",U=this.formatArguments(L);X.push(O+U)}let Y=X.join(`
|
|
49
|
+
`);M5.writeFileSync(K,Y,"utf8"),console.info(`Console logs saved to: ${J}`)}catch(D){console.error("Failed to save console logs:",D)}}}var VZ=Symbol.for("@opentui/core/EditBufferRenderable"),F5;((D)=>{D.TRAITS_CHANGED="traits-changed"})(F5||={});function I5(D,J){if(D===J)return!0;if(!D||!J)return!D&&!J;if(D.length!==J.length)return!1;return D.every((K,Q)=>K===J[Q])}function w5(D,J){return D.suspend===J.suspend&&D.status===J.status&&I5(D.capture,J.capture)}function MZ(D){return!!(D&&typeof D==="object"&&(VZ in D))}class z5 extends ID{[VZ]=!0;_focusable=!0;selectable=!0;_traits={};_textColor;_backgroundColor;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";_scrollMargin=0.2;_showCursor=!0;_cursorColor;_cursorStyle;lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_cursorChangeListener=void 0;_contentChangeListener=void 0;_autoScrollVelocity=0;_autoScrollAccumulator=0;_scrollSpeed=16;_keyboardSelectionActive=!1;editBuffer;editorView;_defaultOptions={textColor:l.fromValues(1,1,1,1),backgroundColor:"transparent",selectionBg:void 0,selectionFg:void 0,selectable:!0,attributes:0,wrapMode:"word",scrollMargin:0.2,scrollSpeed:16,showCursor:!0,cursorColor:l.fromValues(1,1,1,1),cursorStyle:{style:"block",blinking:!0},tabIndicator:void 0,tabIndicatorColor:void 0};constructor(D,J){super(D,J);if(this._textColor=c(J.textColor??this._defaultOptions.textColor),this._backgroundColor=c(J.backgroundColor??this._defaultOptions.backgroundColor),this._defaultAttributes=J.attributes??this._defaultOptions.attributes,this._selectionBg=J.selectionBg?c(J.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=J.selectionFg?c(J.selectionFg):this._defaultOptions.selectionFg,this.selectable=J.selectable??this._defaultOptions.selectable,this._wrapMode=J.wrapMode??this._defaultOptions.wrapMode,this._scrollMargin=J.scrollMargin??this._defaultOptions.scrollMargin,this._scrollSpeed=J.scrollSpeed??this._defaultOptions.scrollSpeed,this._showCursor=J.showCursor??this._defaultOptions.showCursor,this._cursorColor=c(J.cursorColor??this._defaultOptions.cursorColor),this._cursorStyle=J.cursorStyle??this._defaultOptions.cursorStyle,this._tabIndicator=J.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=J.tabIndicatorColor?c(J.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this.editBuffer=sD.create(this._ctx.widthMethod),this.editorView=gQ.create(this.editBuffer,this.width||80,this.height||24),this.editorView.setWrapMode(this._wrapMode),this.editorView.setScrollMargin(this._scrollMargin),this.editBuffer.setDefaultFg(this._textColor),this.editBuffer.setDefaultBg(this._backgroundColor),this.editBuffer.setDefaultAttributes(this._defaultAttributes),J.syntaxStyle)this.editBuffer.setSyntaxStyle(J.syntaxStyle);if(this._tabIndicator!==void 0)this.editorView.setTabIndicator(this._tabIndicator);if(this._tabIndicatorColor!==void 0)this.editorView.setTabIndicatorColor(this._tabIndicatorColor);this.setupMeasureFunc(),this.setupEventListeners(J)}get lineInfo(){return this.editorView.getLogicalLineInfo()}setupEventListeners(D){this._cursorChangeListener=D.onCursorChange,this._contentChangeListener=D.onContentChange,this.editBuffer.on("cursor-changed",()=>{if(this._cursorChangeListener){let J=this.editBuffer.getCursorPosition();this._cursorChangeListener({line:J.row,visualColumn:J.col})}}),this.editBuffer.on("content-changed",()=>{if(this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change"),this._contentChangeListener)this._contentChangeListener({})})}get lineCount(){return this.editBuffer.getLineCount()}get virtualLineCount(){return this.editorView.getVirtualLineCount()}get scrollY(){return this.editorView.getViewport().offsetY}get plainText(){return this.editBuffer.getText()}get logicalCursor(){return this.editBuffer.getCursorPosition()}get visualCursor(){return this.editorView.getVisualCursor()}get cursorOffset(){return this.editorView.getVisualCursor().offset}set cursorOffset(D){this.editorView.setCursorByOffset(D),this.requestRender()}get cursorCharacterOffset(){let D=this.plainText.length;if(D<=0)return;let J=this.logicalCursor,K=this.cursorOffset;if(K>=D){if(J.col>0)return D-1;return 0}if(this.plainText[K]===`
|
|
50
|
+
`&&J.col>0)return K-1;return K}get textColor(){return this._textColor}set textColor(D){let J=c(D??this._defaultOptions.textColor);if(this._textColor!==J)this._textColor=J,this.editBuffer.setDefaultFg(J),this.requestRender()}get selectionBg(){return this._selectionBg}get traits(){return this._traits}set traits(D){if(w5(this._traits,D))return;let J=this._traits;this._traits=D,this.emit("traits-changed",D,J)}set selectionBg(D){let J=D?c(D):this._defaultOptions.selectionBg;if(this._selectionBg!==J)this._selectionBg=J,this.refreshSelectionStyle(),this.requestRender()}get selectionFg(){return this._selectionFg}set selectionFg(D){let J=D?c(D):this._defaultOptions.selectionFg;if(this._selectionFg!==J)this._selectionFg=J,this.refreshSelectionStyle(),this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(D){let J=c(D??this._defaultOptions.backgroundColor);if(this._backgroundColor!==J)this._backgroundColor=J,this.editBuffer.setDefaultBg(J),this.requestRender()}get attributes(){return this._defaultAttributes}set attributes(D){if(this._defaultAttributes!==D)this._defaultAttributes=D,this.editBuffer.setDefaultAttributes(D),this.requestRender()}get wrapMode(){return this._wrapMode}set wrapMode(D){if(this._wrapMode!==D)this._wrapMode=D,this.editorView.setWrapMode(D),this.yogaNode.markDirty(),this.requestRender()}get showCursor(){return this._showCursor}set showCursor(D){if(this._showCursor!==D){if(this._showCursor=D,!D&&this._focused)this._ctx.setCursorPosition(0,0,!1);this.requestRender()}}get cursorColor(){return this._cursorColor}set cursorColor(D){let J=c(D);if(this._cursorColor!==J){if(this._cursorColor=J,this._focused)this.requestRender()}}get cursorStyle(){return this._cursorStyle}set cursorStyle(D){let J=D;if(this.cursorStyle.style!==J.style||this.cursorStyle.blinking!==J.blinking){if(this._cursorStyle=J,this._focused)this.requestRender()}}get tabIndicator(){return this._tabIndicator}set tabIndicator(D){if(this._tabIndicator!==D){if(this._tabIndicator=D,D!==void 0)this.editorView.setTabIndicator(D);this.requestRender()}}get tabIndicatorColor(){return this._tabIndicatorColor}set tabIndicatorColor(D){let J=D?c(D):void 0;if(this._tabIndicatorColor!==J){if(this._tabIndicatorColor=J,J!==void 0)this.editorView.setTabIndicatorColor(J);this.requestRender()}}get scrollSpeed(){return this._scrollSpeed}set scrollSpeed(D){this._scrollSpeed=Math.max(0,D)}onMouseEvent(D){if(D.type==="scroll")this.handleScroll(D)}handleScroll(D){if(!D.scroll)return;let{direction:J,delta:K}=D.scroll,Q=this.editorView.getViewport();if(J==="up"){let X=Math.max(0,Q.offsetY-K);this.editorView.setViewport(Q.offsetX,X,Q.width,Q.height,!0),this.requestRender()}else if(J==="down"){let X=this.editorView.getTotalVirtualLineCount(),Y=Math.max(0,X-Q.height),Z=Math.min(Q.offsetY+K,Y);this.editorView.setViewport(Q.offsetX,Z,Q.width,Q.height,!0),this.requestRender()}if(this._wrapMode==="none"){if(J==="left"){let X=Math.max(0,Q.offsetX-K);this.editorView.setViewport(X,Q.offsetY,Q.width,Q.height,!0),this.requestRender()}else if(J==="right"){let X=Q.offsetX+K;this.editorView.setViewport(X,Q.offsetY,Q.width,Q.height,!0),this.requestRender()}}}onResize(D,J){this.editorView.setViewportSize(D,J)}refreshLocalSelection(){if(this.lastLocalSelection)return this.updateLocalSelection(this.lastLocalSelection);return!1}updateLocalSelection(D){if(!D?.isActive)return this.editorView.resetLocalSelection(),!0;return this.editorView.setLocalSelection(D.anchorX,D.anchorY,D.focusX,D.focusY,this._selectionBg,this._selectionFg,!1)}shouldStartSelection(D,J){if(!this.selectable)return!1;let K=D-this.x,Q=J-this.y;return K>=0&&K<this.width&&Q>=0&&Q<this.height}onSelectionChanged(D){let J=BY(D,this.x,this.y);this.lastLocalSelection=J;let K=!0,Q=this._keyboardSelectionActive,X;if(!J?.isActive)this._keyboardSelectionActive=!1,this.editorView.resetLocalSelection(),X=!0;else if(D?.isStart)X=this.editorView.setLocalSelection(J.anchorX,J.anchorY,J.focusX,J.focusY,this._selectionBg,this._selectionFg,K,Q);else X=this.editorView.updateLocalSelection(J.anchorX,J.anchorY,J.focusX,J.focusY,this._selectionBg,this._selectionFg,K,Q);if(X&&J?.isActive&&D?.isDragging){let Y=this.editorView.getViewport(),Z=J.focusY,_=Math.max(1,Math.floor(Y.height*this._scrollMargin));if(Z<_)this._autoScrollVelocity=-this._scrollSpeed;else if(Z>=Y.height-_)this._autoScrollVelocity=this._scrollSpeed;else this._autoScrollVelocity=0}else this._keyboardSelectionActive=!1,this._autoScrollVelocity=0,this._autoScrollAccumulator=0;if(X)this.requestRender();return this.hasSelection()}onUpdate(D){if(super.onUpdate(D),this._autoScrollVelocity!==0&&this.hasSelection()){let J=D/1000;this._autoScrollAccumulator+=this._autoScrollVelocity*J;let K=Math.floor(Math.abs(this._autoScrollAccumulator));if(K>0){let Q=this._autoScrollVelocity>0?1:-1,X=this.editorView.getViewport(),Y=this.editorView.getTotalVirtualLineCount(),Z=Math.max(0,Y-X.height),_=Math.max(0,Math.min(X.offsetY+Q*K,Z));if(_!==X.offsetY)this.editorView.setViewport(X.offsetX,_,X.width,X.height,!1),this._ctx.requestSelectionUpdate();this._autoScrollAccumulator-=Q*K}}}getSelectedText(){return this.editorView.getSelectedText()}hasSelection(){return this.editorView.hasSelection()}getSelection(){return this.editorView.getSelection()}refreshSelectionStyle(){if(this.lastLocalSelection){this.updateLocalSelection(this.lastLocalSelection);return}let D=this.getSelection();if(!D)return;this.editorView.setSelection(D.start,D.end,this._selectionBg,this._selectionFg)}deleteSelectedText(){this.editorView.deleteSelectedText(),this._ctx.clearSelection(),this.requestRender()}setSelection(D,J){this.lastLocalSelection=null,this.editorView.resetLocalSelection(),this._ctx.clearSelection(),this.editorView.setSelection(D,J,this._selectionBg,this._selectionFg),this.requestRender()}setSelectionInclusive(D,J){this.setSelection(Math.min(D,J),Math.max(D,J)+1)}clearSelection(){let D=this.hasSelection();if(this.lastLocalSelection=null,this.editorView.resetSelection(),this.editorView.resetLocalSelection(),this._ctx.clearSelection(),D)this.requestRender();return D}deleteSelection(){if(!this.hasSelection())return!1;return this.lastLocalSelection=null,this.deleteSelectedText(),!0}setCursor(D,J){this.editBuffer.setCursor(D,J),this.requestRender()}insertChar(D){if(this.hasSelection())this.deleteSelectedText();this.editBuffer.insertChar(D),this.requestRender()}insertText(D){if(this.hasSelection())this.deleteSelectedText();this.editBuffer.insertText(D),this.requestRender()}deleteChar(){if(this.hasSelection())return this.deleteSelectedText(),!0;return this._ctx.clearSelection(),this.editBuffer.deleteChar(),this.requestRender(),!0}deleteCharBackward(){if(this.hasSelection())return this.deleteSelectedText(),!0;return this._ctx.clearSelection(),this.editBuffer.deleteCharBackward(),this.requestRender(),!0}newLine(){return this._ctx.clearSelection(),this.editBuffer.newLine(),this.requestRender(),!0}deleteLine(){return this._ctx.clearSelection(),this.editBuffer.deleteLine(),this.requestRender(),!0}moveCursorLeft(D){let J=D?.select??!1;if(!J&&this.hasSelection()){let K=this.getSelection();return this.editBuffer.setCursorByOffset(K.start),this._ctx.clearSelection(),this.requestRender(),!0}return this.updateSelectionForMovement(J,!0),this.editBuffer.moveCursorLeft(),this.updateSelectionForMovement(J,!1),this.requestRender(),!0}moveCursorRight(D){let J=D?.select??!1;if(!J&&this.hasSelection()){let K=this.getSelection(),Q=this.cursorOffset===K.start?K.end-1:K.end;return this.editBuffer.setCursorByOffset(Q),this._ctx.clearSelection(),this.requestRender(),!0}return this.updateSelectionForMovement(J,!0),this.editBuffer.moveCursorRight(),this.updateSelectionForMovement(J,!1),this.requestRender(),!0}moveCursorUp(D){let J=D?.select??!1;return this.updateSelectionForMovement(J,!0),this.editorView.moveUpVisual(),this.updateSelectionForMovement(J,!1),this.requestRender(),!0}moveCursorDown(D){let J=D?.select??!1;return this.updateSelectionForMovement(J,!0),this.editorView.moveDownVisual(),this.updateSelectionForMovement(J,!1),this.requestRender(),!0}gotoLine(D){this.editBuffer.gotoLine(D),this.requestRender()}gotoLineStart(){this.setCursor(this.logicalCursor.row,0)}gotoLineTextEnd(){let D=this.editBuffer.getEOL();this.setCursor(D.row,D.col)}gotoLineHome(D){let J=D?.select??!1;this.updateSelectionForMovement(J,!0);let K=this.editorView.getCursor();if(K.col===0&&K.row>0){this.editBuffer.setCursor(K.row-1,0);let Q=this.editBuffer.getEOL();this.editBuffer.setCursor(Q.row,Q.col)}else this.editBuffer.setCursor(K.row,0);return this.updateSelectionForMovement(J,!1),this.requestRender(),!0}gotoLineEnd(D){let J=D?.select??!1;this.updateSelectionForMovement(J,!0);let K=this.editorView.getCursor(),Q=this.editBuffer.getEOL(),X=this.editBuffer.getLineCount();if(K.col===Q.col&&K.row<X-1)this.editBuffer.setCursor(K.row+1,0);else this.editBuffer.setCursor(Q.row,Q.col);return this.updateSelectionForMovement(J,!1),this.requestRender(),!0}gotoVisualLineHome(D){let J=D?.select??!1;this.updateSelectionForMovement(J,!0);let K=this.editorView.getVisualSOL();return this.editBuffer.setCursor(K.logicalRow,K.logicalCol),this.updateSelectionForMovement(J,!1),this.requestRender(),!0}gotoVisualLineEnd(D){let J=D?.select??!1;this.updateSelectionForMovement(J,!0);let K=this.editorView.getVisualEOL();return this.editBuffer.setCursor(K.logicalRow,K.logicalCol),this.updateSelectionForMovement(J,!1),this.requestRender(),!0}gotoBufferHome(D){let J=D?.select??!1;return this.updateSelectionForMovement(J,!0),this.editBuffer.setCursor(0,0),this.updateSelectionForMovement(J,!1),this.requestRender(),!0}gotoBufferEnd(D){let J=D?.select??!1;return this.updateSelectionForMovement(J,!0),this.editBuffer.gotoLine(999999),this.updateSelectionForMovement(J,!1),this.requestRender(),!0}selectAll(){return this.updateSelectionForMovement(!1,!0),this.editBuffer.setCursor(0,0),this.gotoBufferEnd({select:!0})}deleteToLineEnd(){let D=this.editorView.getCursor(),J=this.editBuffer.getEOL();if(J.col>D.col)this.editBuffer.deleteRange(D.row,D.col,J.row,J.col);return this.requestRender(),!0}deleteToLineStart(){let D=this.editorView.getCursor();if(D.col>0)this.editBuffer.deleteRange(D.row,0,D.row,D.col);else if(D.row>0)this.editBuffer.deleteCharBackward();return this.requestRender(),!0}undo(){return this._ctx.clearSelection(),this.editBuffer.undo(),this.requestRender(),!0}redo(){return this._ctx.clearSelection(),this.editBuffer.redo(),this.requestRender(),!0}moveWordForward(D){let J=D?.select??!1;this.updateSelectionForMovement(J,!0);let K=this.editBuffer.getNextWordBoundary();return this.editBuffer.setCursorByOffset(K.offset),this.updateSelectionForMovement(J,!1),this.requestRender(),!0}moveWordBackward(D){let J=D?.select??!1;this.updateSelectionForMovement(J,!0);let K=this.editBuffer.getPrevWordBoundary();return this.editBuffer.setCursorByOffset(K.offset),this.updateSelectionForMovement(J,!1),this.requestRender(),!0}deleteWordForward(){if(this.hasSelection())return this.deleteSelectedText(),!0;let D=this.editBuffer.getCursorPosition(),J=this.editBuffer.getNextWordBoundary();if(J.offset>D.offset)this.editBuffer.deleteRange(D.row,D.col,J.row,J.col);return this._ctx.clearSelection(),this.requestRender(),!0}deleteWordBackward(){if(this.hasSelection())return this.deleteSelectedText(),!0;let D=this.editBuffer.getCursorPosition(),J=this.editBuffer.getPrevWordBoundary();if(J.offset<D.offset)this.editBuffer.deleteRange(J.row,J.col,D.row,D.col);return this._ctx.clearSelection(),this.requestRender(),!0}setupMeasureFunc(){let D=(J,K,Q,X)=>{let Y;if(K===FD.Undefined||isNaN(J))Y=0;else Y=J;let Z=isNaN(Q)?1:Q,_=this.editorView.measureForDimensions(Math.floor(Y),Math.floor(Z)),L=_?Math.max(1,_.widthColsMax):1,N=_?Math.max(1,_.lineCount):1;if(K===FD.AtMost&&this._positionType!=="absolute")return{width:Math.min(Y,L),height:Math.min(Z,N)};return{width:L,height:N}};this.yogaNode.setMeasureFunc(D)}render(D,J){if(!this.visible)return;if(this.isDestroyed)return;let K=this._screenX,Q=this._screenY;this.markClean(),this._ctx.addToHitGrid(K,Q,this.width,this.height,this.num),this.renderSelf(D),this.renderCursor(D)}renderSelf(D){D.drawEditorView(this.editorView,this._screenX,this._screenY)}renderCursor(D){if(!this._showCursor||!this._focused)return;let J=this.editorView.getVisualCursor(),K=this._screenX,Q=this._screenY,X=K+J.visualCol+1,Y=Q+J.visualRow+1;this._ctx.setCursorPosition(X,Y,!0),this._ctx.setCursorStyle({...this._cursorStyle,color:this._cursorColor})}focus(){super.focus(),this._ctx.setCursorStyle({...this._cursorStyle,color:this._cursorColor}),this.requestRender()}blur(){super.blur(),this._ctx.setCursorPosition(0,0,!1),this.requestRender()}onRemove(){if(this._focused)this._ctx.setCursorPosition(0,0,!1)}destroy(){if(this.isDestroyed)return;if(this.traits={},this._focused)this._ctx.setCursorPosition(0,0,!1),this.blur();this.editorView.destroy(),this.editBuffer.destroy(),super.destroy()}set onCursorChange(D){this._cursorChangeListener=D}get onCursorChange(){return this._cursorChangeListener}set onContentChange(D){this._contentChangeListener=D}get onContentChange(){return this._contentChangeListener}get syntaxStyle(){return this.editBuffer.getSyntaxStyle()}set syntaxStyle(D){this.editBuffer.setSyntaxStyle(D),this.requestRender()}addHighlight(D,J){this.editBuffer.addHighlight(D,J),this.requestRender()}addHighlightByCharRange(D){this.editBuffer.addHighlightByCharRange(D),this.requestRender()}removeHighlightsByRef(D){this.editBuffer.removeHighlightsByRef(D),this.requestRender()}clearLineHighlights(D){this.editBuffer.clearLineHighlights(D),this.requestRender()}clearAllHighlights(){this.editBuffer.clearAllHighlights(),this.requestRender()}getLineHighlights(D){return this.editBuffer.getLineHighlights(D)}setText(D){this.editBuffer.setText(D),this.yogaNode.markDirty(),this.requestRender()}replaceText(D){this.editBuffer.replaceText(D),this.yogaNode.markDirty(),this.requestRender()}clear(){this.editBuffer.clear(),this.editBuffer.clearAllHighlights(),this.yogaNode.markDirty(),this.requestRender()}deleteRange(D,J,K,Q){this.editBuffer.deleteRange(D,J,K,Q),this.yogaNode.markDirty(),this.requestRender()}getTextRange(D,J){return this.editBuffer.getTextRange(D,J)}getTextRangeByCoords(D,J,K,Q){return this.editBuffer.getTextRangeByCoords(D,J,K,Q)}updateSelectionForMovement(D,J){if(!this.selectable)return;if(!D){this._keyboardSelectionActive=!1,this._ctx.clearSelection();return}this._keyboardSelectionActive=!0;let K=this.editorView.getVisualCursor(),Q=this.x+K.visualCol,X=this.y+K.visualRow;if(J){if(!this._ctx.hasSelection)this._ctx.startSelection(this,Q,X);return}this._ctx.updateSelection(this,Q,X,{finishDragging:!0})}}var lD={switchToAlternateScreen:"\x1B[?1049h",switchToMainScreen:"\x1B[?1049l",reset:"\x1B[0m",scrollDown:(D)=>`\x1B[${D}T`,scrollUp:(D)=>`\x1B[${D}S`,moveCursor:(D,J)=>`\x1B[${D};${J}H`,moveCursorAndClear:(D,J)=>`\x1B[${D};${J}H\x1B[J`,setRgbBackground:(D,J,K)=>`\x1B[48;2;${D};${J};${K}m`,resetBackground:"\x1B[49m",bracketedPasteStart:"\x1B[200~",bracketedPasteEnd:"\x1B[201~"};function f5(D,J=new TextEncoder){let K=Buffer.from(D).toString("base64");return J.encode(K)}class HZ{lib;rendererPtr;constructor(D,J){this.lib=D,this.rendererPtr=J}copyToClipboardOSC52(D,J=0){if(!this.isOsc52Supported())return!1;let K=f5(D,this.lib.encoder);return this.lib.copyToClipboardOSC52(this.rendererPtr,J,K)}clearClipboardOSC52(D=0){if(!this.isOsc52Supported())return!1;return this.lib.clearClipboardOSC52(this.rendererPtr,D)}isOsc52Supported(){let D=this.lib.getTerminalCapabilities(this.rendererPtr);return Boolean(D?.osc52)}}function q5(D,J,K="column",Q=10,X=16){if(D.width<=0||D.height<=0)return[];if(J.length===0)return[];if(J.length<X)return J;let Y=D.y-Q,Z=D.y+D.height+Q,_=D.x-Q,L=D.x+D.width+Q,N=K==="row",V=J,G=V.length;if(G===0)return[];let O=N?_:Y,U=N?L:Z,k=0,F=G-1,P=-1;while(k<=F){let y=k+F>>1,B=V[y],I=N?B.screenX:B.screenY;if((N?B.screenX+B.width:B.screenY+B.height)<O)k=y+1;else if(I>U)F=y-1;else{P=y;break}}let W=[];if(P===-1)P=k>0?k-1:0;let f=50,T=P,g=0;while(T-1>=0){let y=V[T-1];if((N?y.screenX+y.width:y.screenY+y.height)<=O){if(g++,g>=f)break}else g=0;T--}let h=P+1;while(h<G){let y=V[h];if((N?y.screenX:y.screenY)>=U)break;h++}for(let y=T;y<h;y++){let B=V[y],I=N?B.screenX:B.screenY;if((N?B.screenX+B.width:B.screenY+B.height)<=O)continue;if(I>=U)break;if(N){if(B.screenY+B.height<Y)continue;if(B.screenY>Z)continue}else{if(B.screenX+B.width<_)continue;if(B.screenX>L)continue}W.push(B)}if(W.length>1)W.sort((y,B)=>y.zIndex>B.zIndex?1:y.zIndex<B.zIndex?-1:0);return W}function cJ(D,J,K,Q){let X=Math.max(J,0),Y=Math.max(K,0);if(D!=="split-footer")return{effectiveFooterHeight:0,renderOffset:0,renderWidth:X,renderHeight:Y};let Z=Math.min(Q,Y);return{effectiveFooterHeight:Z,renderOffset:Y-Z,renderWidth:X,renderHeight:Z}}function x5(D){if(/\x1b\[\?\d+(?:;\d+)*\$y/.test(D))return!0;if(/\x1b\[1;(?!1R)\d+R/.test(D))return!0;if(/\x1bP>\|[\s\S]*?\x1b\\/.test(D))return!0;if(/\x1b_G[\s\S]*?\x1b\\/.test(D))return!0;if(/\x1b\[\?\d+(?:;\d+)?u/.test(D))return!0;if(/\x1b\[\?[0-9;]*c/.test(D))return!0;if(/\x1b\]99;[^\x07\x1b]*i=opentui-notifications[^\x07\x1b]*p=\?[\s\S]*?(?:\x07|\x1b\\)/.test(D))return!0;if(/\x1b\]1337;Capabilities=[\s\S]*?(?:\x07|\x1b\\)/.test(D))return!0;return!1}function T5(D){return/\x1b\[4;\d+;\d+t/.test(D)}function S5(D){let J=D.match(/\x1b\[4;(\d+);(\d+)t/);if(J)return{width:parseInt(J[2]),height:parseInt(J[1])};return null}var YY=/\x1b](10|11);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g;function _Q(D){let J=parseInt(D,16),K=(1<<4*D.length)-1;return Math.round(J/K*255).toString(16).padStart(2,"0")}function g5(D,J,K,Q){if(Q)return`#${Q.toLowerCase()}`;if(D&&J&&K)return`#${_Q(D)}${_Q(J)}${_Q(K)}`;return"#000000"}function y5(D){let[J,K,Q]=c(D).toInts();return(J*299+K*587+Q*114)/1000>128?"light":"dark"}class RQ{host;clock;static QUERY_TIMEOUT_MS=250;_themeMode=null;themeQueryPending=!0;themeOscForeground=null;themeOscBackground=null;themeRefreshTimeoutId=null;waiters=new Set;constructor(D,J){this.host=D,this.clock=J}get themeMode(){return this._themeMode}waitForThemeMode(D,J){if(this._themeMode!==null||J||D===0)return Promise.resolve(this._themeMode);return new Promise((K)=>{let Q={resolve:K,timeoutHandle:null};if(D>0)Q.timeoutHandle=this.clock.setTimeout(()=>{this.waiters.delete(Q),Q.timeoutHandle=null,K(this._themeMode)},D);this.waiters.add(Q)})}cancelRefresh(){if(this.themeRefreshTimeoutId===null)return;this.clock.clearTimeout(this.themeRefreshTimeoutId),this.themeRefreshTimeoutId=null,this.themeQueryPending=!1}dispose(){this.cancelRefresh();for(let D of this.waiters){if(D.timeoutHandle!==null)this.clock.clearTimeout(D.timeoutHandle);D.resolve(this._themeMode)}this.waiters.clear()}handleSequence(D){if(D==="\x1B[?997;1n"||D==="\x1B[?997;2n")return this.requestThemeOscColors(),{handled:!0,changedMode:null};let J=!1,K;YY.lastIndex=0;while(K=YY.exec(D)){J=!0;let Y=g5(K[2],K[3],K[4],K[5]);if(K[1]==="10")this.themeOscForeground=Y;else this.themeOscBackground=Y}if(!J)return{handled:!1,changedMode:null};if(!this.themeQueryPending)return{handled:!0,changedMode:null};if(!this.themeOscForeground||!this.themeOscBackground)return{handled:!0,changedMode:null};let Q=y5(this.themeOscBackground),X=this.applyThemeMode(Q);return this.completeThemeQuery(),{handled:!0,changedMode:X}}clearThemeRefreshTimeout(){if(this.themeRefreshTimeoutId===null)return;this.clock.clearTimeout(this.themeRefreshTimeoutId),this.themeRefreshTimeoutId=null}completeThemeQuery(){this.clearThemeRefreshTimeout(),this.themeQueryPending=!1}requestThemeOscColors(){if(this.themeRefreshTimeoutId!==null)return;this.themeQueryPending=!0,this.themeOscForeground=null,this.themeOscBackground=null,this.host.queryThemeColors(),this.clearThemeRefreshTimeout(),this.themeRefreshTimeoutId=this.clock.setTimeout(()=>{this.completeThemeQuery()},RQ.QUERY_TIMEOUT_MS)}applyThemeMode(D){let J=this._themeMode!==D;if(this._themeMode=D,!J)return null;for(let K of this.waiters){if(K.timeoutHandle!==null)this.clock.clearTimeout(K.timeoutHandle);K.resolve(D)}return this.waiters.clear(),D}}AD({name:"OTUI_DUMP_CAPTURES",description:"Dump captured stdout and console caches when the renderer exit handler runs.",type:"boolean",default:!1});AD({name:"OTUI_NO_NATIVE_RENDER",description:"Skip the Zig/native frame renderer. Useful for debugging the render loop; split-footer stdout flushing may still write ANSI.",type:"boolean",default:!1});AD({name:"OTUI_USE_ALTERNATE_SCREEN",description:"When explicitly set, force screen mode selection: true=alternate-screen, false=main-screen.",type:"boolean",default:!0});AD({name:"OTUI_OVERRIDE_STDOUT",description:"When explicitly set, force stdout routing: false=passthrough, true=capture in split-footer mode.",type:"boolean",default:!0});AD({name:"OTUI_DEBUG",description:"Enable debug mode to capture all raw input for debugging purposes.",type:"boolean",default:!1});AD({name:"OTUI_SHOW_STATS",description:"Show the debug overlay at startup.",type:"boolean",default:!1});var hQ=12,R5=4,h5=l.fromValues(0,0,0,0),p5=0;function jZ(D){if(D===void 0)return hQ;if(!Number.isFinite(D))throw Error("footerHeight must be a finite number");let J=Math.trunc(D);if(J<=0)throw Error("footerHeight must be greater than 0");return J}function OZ(D){let J=D.screenMode??"alternate-screen";if(process.env.OTUI_USE_ALTERNATE_SCREEN!==void 0)J=XD.OTUI_USE_ALTERNATE_SCREEN?"alternate-screen":"main-screen";let K=J==="split-footer"?jZ(D.footerHeight):hQ,Q=D.externalOutputMode??(J==="split-footer"?"capture-stdout":"passthrough");if(process.env.OTUI_OVERRIDE_STDOUT!==void 0)Q=XD.OTUI_OVERRIDE_STDOUT&&J==="split-footer"?"capture-stdout":"passthrough";if(Q==="capture-stdout"&&J!=="split-footer")throw Error('externalOutputMode "capture-stdout" requires screenMode "split-footer"');return{screenMode:J,footerHeight:K,externalOutputMode:Q}}class WZ{commits=[];get size(){return this.commits.length}writeSnapshot(D){this.commits.push(D)}peek(){return this.commits}claim(D=Number.POSITIVE_INFINITY){if(this.commits.length===0)return[];let J=Number.isFinite(D)?Math.max(1,Math.trunc(D)):this.commits.length;if(J>=this.commits.length){let Q=this.commits;return this.commits=[],Q}let K=this.commits.slice(0,J);return this.commits=this.commits.slice(J),K}clear(){for(let D of this.commits)D.snapshot.destroy();this.commits=[]}}var E5=3221225472,b5=3221225472;class UK extends UZ{width;height;frameId=0;widthMethod;capabilities=null;hasSelection=!1;currentFocusedRenderable=null;keyInput;_internalKeyInput;lifecyclePasses=new Set;constructor(D,J,K){super();this.width=D,this.height=J,this.widthMethod=K,this.keyInput=new CQ,this._internalKeyInput=new FQ}addToHitGrid(D,J,K,Q,X){}pushHitGridScissorRect(D,J,K,Q){}popHitGridScissorRect(){}clearHitGridScissorRects(){}requestRender(){}setCursorPosition(D,J,K){}setCursorStyle(D){}setCursorColor(D){}setMousePointer(D){}requestLive(){}dropLive(){}getSelection(){return null}get currentFocusedEditor(){if(!this.currentFocusedRenderable)return null;if(!MZ(this.currentFocusedRenderable))return null;return this.currentFocusedRenderable}requestSelectionUpdate(){}focusRenderable(D){this.currentFocusedRenderable=D}blurRenderable(D){if(this.currentFocusedRenderable===D)this.currentFocusedRenderable=null}registerLifecyclePass(D){this.lifecyclePasses.add(D)}unregisterLifecyclePass(D){this.lifecyclePasses.delete(D)}getLifecyclePasses(){return this.lifecyclePasses}clearSelection(){}startSelection(D,J,K){}updateSelection(D,J,K,Q){}}var c5=["TMUX","TERM","OPENTUI_GRAPHICS","TERM_PROGRAM","TERM_PROGRAM_VERSION","TERM_FEATURES","ALACRITTY_SOCKET","ALACRITTY_LOG","COLORTERM","TERMUX_VERSION","VHS_RECORD","OPENTUI_FORCE_WCWIDTH","OPENTUI_FORCE_UNICODE","OPENTUI_FORCE_NOZWJ","OPENTUI_FORCE_EXPLICIT_WIDTH","WT_SESSION","STY","WSL_DISTRO_NAME","WSL_INTEROP"],GZ=1,v5=2,kZ=4,d5=8,m5=16,u5=67108864,$Q=16;function i5(D){if(!D)return 0;let J=0;if(D.disambiguate!==!1)J|=GZ;if(D.alternateKeys!==!1)J|=kZ;if(D.events===!0)J|=v5;if(D.allKeysAsEscapes===!0)J|=d5;if(D.reportText===!0)J|=m5;return J}class PD{type;button;x;y;source;modifiers;scroll;target;isDragging;_propagationStopped=!1;_defaultPrevented=!1;get propagationStopped(){return this._propagationStopped}get defaultPrevented(){return this._defaultPrevented}constructor(D,J){this.target=D,this.type=J.type,this.button=J.button,this.x=J.x,this.y=J.y,this.modifiers=J.modifiers,this.scroll=J.scroll,this.source=J.source,this.isDragging=J.isDragging}stopPropagation(){this._propagationStopped=!0}preventDefault(){this._defaultPrevented=!0}}var l5;((D)=>{D[D.LEFT=0]="LEFT",D[D.MIDDLE=1]="MIDDLE",D[D.RIGHT=2]="RIGHT",D[D.WHEEL_UP=4]="WHEEL_UP",D[D.WHEEL_DOWN=5]="WHEEL_DOWN"})(l5||={});var ZY=OJ("RendererTracker",()=>{let D=new Set;return{addRenderer:(J)=>{D.add(J)},removeRenderer:(J)=>{if(D.delete(J),D.size===0){if(process.stdin.pause(),b0("tree-sitter-client"))bY().destroy(),E0("tree-sitter-client")}}}});async function c7(D={}){if(process.argv.includes("--delay-start"))await new Promise((U)=>setTimeout(U,5000));let J=D.stdin||process.stdin,K=D.stdout||process.stdout,{screenMode:Q,footerHeight:X}=OZ(D),Y=K.columns||80,Z=K.rows||24,_=cJ(Q,Y,Z,X),L=bD(),N=L.createRenderer(_.renderWidth,_.renderHeight,{remote:D.remote??!1,testing:D.testing??!1});if(!N)throw Error("Failed to create renderer");if(D.useThread===void 0)D.useThread=!0;if(process.platform==="linux")D.useThread=!1;L.setUseThread(N,D.useThread);let V=D.useKittyKeyboard??{},G=i5(V);L.setKittyKeyboardFlags(N,G);let O=new pQ(L,N,J,K,Y,Z,D);if(!D.testing)await O.setupTerminal();return O}var a5;((D)=>{D.RESIZE="resize",D.FRAME="frame",D.EXTERNAL_OUTPUT="external_output",D.FOCUS="focus",D.BLUR="blur",D.FOCUSED_RENDERABLE="focused_renderable",D.FOCUSED_EDITOR="focused_editor",D.THEME_MODE="theme_mode",D.PALETTE="palette",D.CAPABILITIES="capabilities",D.SELECTION="selection",D.DEBUG_OVERLAY_TOGGLE="debugOverlay:toggle",D.DESTROY="destroy",D.MEMORY_SNAPSHOT="memory:snapshot"})(a5||={});var s5;((D)=>{D.IDLE="idle",D.AUTO_STARTED="auto_started",D.EXPLICIT_STARTED="explicit_started",D.EXPLICIT_PAUSED="explicit_paused",D.EXPLICIT_SUSPENDED="explicit_suspended",D.EXPLICIT_STOPPED="explicit_stopped"})(s5||={});class pQ extends UZ{static animationFrameId=0;lib;rendererPtr;stdin;stdout;exitOnCtrlC;exitSignals;_exitListenersAdded=!1;_isDestroyed=!1;_destroyPending=!1;_destroyFinalized=!1;_destroyCleanupPrepared=!1;nextRenderBuffer;currentRenderBuffer;_isRunning=!1;_targetFps=30;_maxFps=60;automaticMemorySnapshot=!1;memorySnapshotInterval;memorySnapshotTimer=null;lastMemorySnapshot={heapUsed:0,heapTotal:0,arrayBuffers:0};root;width;height;_useThread=!1;gatherStats=!1;frameTimes=[];maxStatSamples=300;postProcessFns=[];backgroundColor=l.fromInts(0,0,0,0);waitingForPixelResolution=!1;clock;rendering=!1;renderingNative=!1;renderTimeout=null;lastTime=0;frameCount=0;_frameId=0;lastFpsTime=0;currentFps=0;targetFrameTime=1000/this._targetFps;minTargetFrameTime=1000/this._maxFps;immediateRerenderRequested=!1;updateScheduled=!1;liveRequestCounter=0;_controlState="idle";frameCallbacks=[];renderStats={frameCount:0,fps:0,renderTime:0,frameCallbackTime:0};debugOverlay={enabled:XD.OTUI_SHOW_STATS,corner:3};_console;_resolution=null;_keyHandler;stdinParser=null;oscSubscribers=new Set;hasLoggedStdinParserError=!1;animationRequest=new Map;resizeTimeoutId=null;capabilityTimeoutId=null;xtVersionWaiters=new Set;splitStartupSeedTimeoutId=null;pendingSplitStartupCursorSeed=!1;resizeDebounceDelay=100;enableMouseMovement=!1;_useMouse=!0;autoFocus=!0;_screenMode="alternate-screen";_footerHeight=hQ;_externalOutputMode="passthrough";clearOnShutdown=!0;_suspendedMouseEnabled=!1;_previousControlState="idle";pendingSuspendedTerminalSetup=!1;suspendedNonAltSurfacePreserved=!1;capturedRenderable;lastOverRenderableNum=0;lastOverRenderable;currentSelection=null;selectionContainers=[];clipboard;_splitHeight=0;renderOffset=0;splitTailColumn=0;pendingSplitFooterTransition=null;forceFullRepaintRequested=!1;maxSplitCommitsPerFrame=8;_terminalWidth=0;_terminalHeight=0;_terminalIsSetup=!1;externalOutputQueue=new WZ;pendingExternalOutputMode=null;realStdoutWrite;_useConsole=!0;sigwinchHandler=(()=>{let D=this.stdout.columns||80,J=this.stdout.rows||24;this.handleResize(D,J)}).bind(this);_capabilities=null;_latestPointer={x:0,y:0};_hasPointer=!1;_lastPointerModifiers={shift:!1,alt:!1,ctrl:!1};_currentMousePointerStyle=void 0;_currentFocusedRenderable=null;lifecyclePasses=new Set;_openConsoleOnError=!0;_paletteDetector=null;_paletteCache=new Map;_paletteDetectionPromise=null;_paletteDetectionSize=0;_paletteEpoch=0;_nativePaletteSignature=null;_emittedPaletteSignature=null;_palettePublishGeneration=0;_onDestroy;themeModeState;_terminalFocusState=null;sequenceHandlers=[];prependedInputHandlers=[];shouldRestoreModesOnNextFocus=!1;themeModeHandler;idleResolvers=[];_debugInputs=[];_debugModeEnabled=XD.OTUI_DEBUG;handleError=((D)=>{if(console.error(D),this._openConsoleOnError)this.console.show()}).bind(this);dumpOutputCache(D=""){let J=this.console.getCachedLogs(),K=BQ.claimOutput(),Q=this.externalOutputQueue.claim(),X="";for(let Y of Q)X+=`[snapshot ${Y.snapshot.width}x${Y.snapshot.height}]
|
|
51
|
+
`,Y.snapshot.destroy();if(K.length>0||X.length>0||J.length>0)this.realStdoutWrite.call(this.stdout,D);if(J.length>0)this.realStdoutWrite.call(this.stdout,`Console cache:
|
|
52
|
+
`),this.realStdoutWrite.call(this.stdout,J);if(K.length>0)this.realStdoutWrite.call(this.stdout,`
|
|
53
|
+
Captured console output:
|
|
54
|
+
`),this.realStdoutWrite.call(this.stdout,K+`
|
|
55
|
+
`);if(X.length>0)this.realStdoutWrite.call(this.stdout,`
|
|
56
|
+
Captured external output:
|
|
57
|
+
`),this.realStdoutWrite.call(this.stdout,X+`
|
|
58
|
+
`);this.realStdoutWrite.call(this.stdout,lD.reset)}exitHandler=(()=>{if(this.destroy(),XD.OTUI_DUMP_CAPTURES)q1(100).then(()=>{this.dumpOutputCache(`=== CAPTURED OUTPUT ===
|
|
59
|
+
`)})}).bind(this);warningHandler=((D)=>{console.warn(JSON.stringify(D.message,null,2))}).bind(this);get controlState(){return this._controlState}constructor(D,J,K,Q,X,Y,Z={}){super();ZY.addRenderer(this),this.stdin=K,this.stdout=Q,this.realStdoutWrite=Q.write,this.lib=D,this._terminalWidth=Q.columns??X,this._terminalHeight=Q.rows??Y,this._useThread=Z.useThread===void 0?!1:Z.useThread;let{screenMode:_,footerHeight:L,externalOutputMode:N}=OZ(Z);this._externalOutputMode=N;let V=cJ(_,this._terminalWidth,this._terminalHeight,L);this.width=V.renderWidth,this.height=V.renderHeight,this._splitHeight=V.effectiveFooterHeight,this.renderOffset=_==="split-footer"?0:V.renderOffset,this._footerHeight=L,this.rendererPtr=J,this.clearOnShutdown=Z.clearOnShutdown??!0,this.lib.setClearOnShutdown(this.rendererPtr,this.clearOnShutdown);let G=Z.forwardEnvKeys??(Z.remote?[]:[...c5]);for(let P of G){let W=process.env[P];if(W===void 0)continue;this.lib.setTerminalEnvVar(this.rendererPtr,P,W)}if(this.exitOnCtrlC=Z.exitOnCtrlC===void 0?!0:Z.exitOnCtrlC,this.exitSignals=Z.exitSignals||["SIGINT","SIGTERM","SIGQUIT","SIGABRT","SIGHUP","SIGBREAK","SIGPIPE","SIGBUS"],this.clipboard=new HZ(this.lib,this.rendererPtr),this.resizeDebounceDelay=Z.debounceDelay||100,this.targetFps=Z.targetFps||30,this.maxFps=Z.maxFps||60,this.clock=Z.clock??new iJ,this.themeModeState=new RQ({queryThemeColors:()=>{this.lib.queryThemeColors(this.rendererPtr)}},this.clock),this.themeModeHandler=(P)=>{let W=this.themeModeState.handleSequence(P);if(W.changedMode){if(this.clearPaletteCache(),this.shouldSyncNativePaletteState()||this.listenerCount("palette")>0)this.refreshPalette();this.emit("theme_mode",W.changedMode)}return W.handled},this.memorySnapshotInterval=Z.memorySnapshotInterval??0,this.gatherStats=Z.gatherStats||!1,this.maxStatSamples=Z.maxStatSamples||300,this.enableMouseMovement=Z.enableMouseMovement??!0,this._useMouse=Z.useMouse??!0,this.autoFocus=Z.autoFocus??!0,this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this.currentRenderBuffer=this.lib.getCurrentBuffer(this.rendererPtr),this.postProcessFns=Z.postProcessFns||[],this.prependedInputHandlers=Z.prependInputHandlers||[],this.root=new bJ(this),this.memorySnapshotInterval>0)this.startMemorySnapshotTimer();process.on("SIGWINCH",this.sigwinchHandler),process.on("warning",this.warningHandler),process.on("uncaughtException",this.handleError),process.on("unhandledRejection",this.handleError),process.on("beforeExit",this.exitHandler);let U=(Z.useKittyKeyboard??{})!==null;this._keyHandler=new FQ,this._keyHandler.on("keypress",(P)=>{if(this.exitOnCtrlC&&G5(P,{name:"c",ctrl:!0})){process.nextTick(()=>{this.destroy()});return}}),this.addExitListeners();let k=Z.stdinParserMaxBufferBytes??u5;if(this.stdinParser=new zY({timeoutMs:20,maxPendingBytes:k,armTimeouts:!0,onTimeoutFlush:()=>{this.drainStdinParser()},useKittyKeyboard:U,protocolContext:{kittyKeyboardEnabled:U,privateCapabilityRepliesActive:!1,pixelResolutionQueryActive:!1,explicitWidthCprActive:!1,startupCursorCprActive:!1},clock:this.clock}),this._console=new NZ(this,{...Z.consoleOptions??{},clock:this.clock}),this.consoleMode=Z.consoleMode??"console-overlay",this.applyScreenMode(_,!1,!1),this.stdout.write=N==="capture-stdout"?this.interceptStdoutWrite:this.realStdoutWrite,this._openConsoleOnError=Z.openConsoleOnError??!0,this._onDestroy=Z.onDestroy,global.requestAnimationFrame=(P)=>{let W=pQ.animationFrameId++;return this.animationRequest.set(W,P),this.requestLive(),W},global.cancelAnimationFrame=(P)=>{this.animationRequest.delete(P)},!global.window)global.window={};if(global.window.requestAnimationFrame=requestAnimationFrame,XD.OTUI_NO_NATIVE_RENDER)this.renderNative=()=>{if(this._splitHeight>0)this.flushStdoutCache(this._splitHeight)};this.setupInput()}addExitListeners(){if(this._exitListenersAdded||this.exitSignals.length===0)return;this.exitSignals.forEach((D)=>{process.addListener(D,this.exitHandler)}),this._exitListenersAdded=!0}removeExitListeners(){if(!this._exitListenersAdded||this.exitSignals.length===0)return;this.exitSignals.forEach((D)=>{process.removeListener(D,this.exitHandler)}),this._exitListenersAdded=!1}get isDestroyed(){return this._isDestroyed}registerLifecyclePass(D){this.lifecyclePasses.add(D)}unregisterLifecyclePass(D){this.lifecyclePasses.delete(D)}getLifecyclePasses(){return this.lifecyclePasses}get currentFocusedRenderable(){return this._currentFocusedRenderable}get currentFocusedEditor(){if(!this._currentFocusedRenderable)return null;if(!MZ(this._currentFocusedRenderable))return null;return this._currentFocusedRenderable}normalizeClockTime(D,J){if(Number.isFinite(D))return D;return Number.isFinite(J)?J:0}getElapsedMs(D,J){if(!Number.isFinite(D)||!Number.isFinite(J))return 0;return Math.max(D-J,0)}focusRenderable(D){if(this._currentFocusedRenderable===D)return;let J=this._currentFocusedRenderable,K=this.currentFocusedEditor;this._currentFocusedRenderable=D,J?.blur();let Q=this.currentFocusedEditor;if(K!==Q)this.emit("focused_editor",Q,K);this.emit("focused_renderable",D,J)}blurRenderable(D){if(this._currentFocusedRenderable!==D)return;let J=this.currentFocusedEditor;if(this._currentFocusedRenderable=null,J!==null)this.emit("focused_editor",null,J);this.emit("focused_renderable",null,D)}setCapturedRenderable(D){if(this.capturedRenderable===D)return;this.capturedRenderable=D}addToHitGrid(D,J,K,Q,X){if(X!==this.capturedRenderable?.num)this.lib.addToHitGrid(this.rendererPtr,D,J,K,Q,X)}pushHitGridScissorRect(D,J,K,Q){this.lib.hitGridPushScissorRect(this.rendererPtr,D,J,K,Q)}popHitGridScissorRect(){this.lib.hitGridPopScissorRect(this.rendererPtr)}clearHitGridScissorRects(){this.lib.hitGridClearScissorRects(this.rendererPtr)}get widthMethod(){return this.capabilities?.unicode==="wcwidth"?"wcwidth":"unicode"}get frameId(){return this._frameId}writeOut(D,J,K){if(this.rendererPtr&&this._useThread){let Q=typeof D==="string"?D:D?.toString()??"";if(this.lib.writeOut(this.rendererPtr,Q),typeof K==="function")process.nextTick(K);return!0}return this.realStdoutWrite.call(this.stdout,D,J,K)}requestRender(){if(this._controlState==="explicit_suspended")return;if(this._isRunning)return;if(this.rendering){this.immediateRerenderRequested=!0;return}if(!this.updateScheduled&&!this.renderTimeout){this.updateScheduled=!0;let D=this.normalizeClockTime(this.clock.now(),this.lastTime),J=this.getElapsedMs(D,this.lastTime),K=Math.max(this.minTargetFrameTime-J,0);if(K===0){process.nextTick(()=>this.activateFrame());return}this.clock.setTimeout(()=>this.activateFrame(),K)}}async activateFrame(){if(!this.updateScheduled){this.resolveIdleIfNeeded();return}try{await this.loop()}finally{this.updateScheduled=!1,this.resolveIdleIfNeeded()}}get consoleMode(){return this._useConsole?"console-overlay":"disabled"}set consoleMode(D){if(this._useConsole=D==="console-overlay",this._useConsole)this.console.activate();else this.console.deactivate()}get isRunning(){return this._isRunning}isIdleNow(){return!this._isRunning&&!this.rendering&&!this.renderTimeout&&!this.updateScheduled&&!this.immediateRerenderRequested}resolveIdleIfNeeded(){if(!this.isIdleNow())return;let D=this.idleResolvers.splice(0);for(let J of D)J()}idle(){if(this._isDestroyed)return Promise.resolve();if(this.isIdleNow())return Promise.resolve();return new Promise((D)=>{this.idleResolvers.push(D)})}getSchedulerState(){return{isRunning:this._isRunning,isRendering:this.rendering,hasScheduledRender:Boolean(this.renderTimeout||this.updateScheduled||this.immediateRerenderRequested)}}get resolution(){return this._resolution}get console(){return this._console}get keyInput(){return this._keyHandler}get _internalKeyInput(){return this._keyHandler}get terminalWidth(){return this._terminalWidth}get terminalHeight(){return this._terminalHeight}get useThread(){return this._useThread}get targetFps(){return this._targetFps}set targetFps(D){this._targetFps=D,this.targetFrameTime=1000/this._targetFps}get maxFps(){return this._maxFps}set maxFps(D){this._maxFps=D,this.minTargetFrameTime=1000/this._maxFps}get useMouse(){return this._useMouse}set useMouse(D){if(this._useMouse===D)return;if(this._useMouse=D,D)this.enableMouse();else this.disableMouse()}get screenMode(){return this._screenMode}set screenMode(D){if(this.externalOutputMode==="capture-stdout"&&D!=="split-footer"){if(this.pendingExternalOutputMode==="passthrough")this.flushPendingSplitOutputBeforeLeavingSplitFooter();if(this.externalOutputMode!=="capture-stdout"){this.applyScreenMode(D);return}throw Error('externalOutputMode "capture-stdout" requires screenMode "split-footer"')}this.applyScreenMode(D)}get footerHeight(){return this._footerHeight}set footerHeight(D){let J=jZ(D);if(J===this._footerHeight)return;if(this._footerHeight=J,this.screenMode==="split-footer")this.applyScreenMode("split-footer")}get externalOutputMode(){return this._externalOutputMode}set externalOutputMode(D){if(D==="capture-stdout"&&this.screenMode!=="split-footer")throw Error('externalOutputMode "capture-stdout" requires screenMode "split-footer"');let J=this._externalOutputMode;if(J===D){if(this.pendingExternalOutputMode!==null&&this.pendingExternalOutputMode!==D)this.pendingExternalOutputMode=null;return}let K=this.canFlushSplitOutputBeforeTransition(),Q=J==="capture-stdout"&&D==="passthrough"&&this._screenMode==="split-footer"&&this._splitHeight>0;if(Q&&this.externalOutputQueue.size>0&&!K){this.pendingExternalOutputMode="passthrough";return}if(Q&&K)this.flushPendingSplitOutputBeforeTransition();this.pendingExternalOutputMode=null,this.applyExternalOutputMode(D),this.afterExternalOutputModeChanged(J,D)}applyExternalOutputMode(D){this._externalOutputMode=D,this.stdout.write=D==="capture-stdout"?this.interceptStdoutWrite:this.realStdoutWrite}afterExternalOutputModeChanged(D,J){if(this._screenMode==="split-footer"&&this._splitHeight>0&&J==="capture-stdout"){let K=this.renderOffset+1,Q=this._splitHeight;if(this.clearPendingSplitFooterTransition(),this.resetSplitScrollback(this.getSplitCursorSeedRows()),D==="passthrough"&&this._terminalIsSetup){let X=this.renderOffset+1;if(K!==X)this.setPendingSplitFooterTransition({mode:"clear-stale-rows",sourceTopLine:K,sourceHeight:Q,targetTopLine:X,targetHeight:this._splitHeight,scrollLines:0}),this.forceFullRepaintRequested=!0}this.requestRender();return}if(this._screenMode==="split-footer"&&this._splitHeight>0&&D==="capture-stdout"&&J==="passthrough"){this.clearPendingSplitFooterTransition();return}this.syncSplitFooterState()}applyPendingExternalOutputModeIfReady(){let D=this.pendingExternalOutputMode;if(D===null||this.externalOutputQueue.size>0)return;let J=this._externalOutputMode;if(this.pendingExternalOutputMode=null,J===D)return;this.applyExternalOutputMode(D),this.afterExternalOutputModeChanged(J,D)}flushPendingSplitOutputBeforeLeavingSplitFooter(){if(this.pendingExternalOutputMode!=="passthrough")return;if(this.isSplitCursorSeedFrameBlocked()&&this._controlState!=="explicit_suspended")this.abortSplitStartupCursorSeed();if(this.flushPendingSplitOutputBeforeTransition(),this.pendingExternalOutputMode!==null)throw Error("Cannot leave split-footer while captured output is pending")}get liveRequestCount(){return this.liveRequestCounter}get currentControlState(){return this._controlState}get capabilities(){return this._capabilities}triggerNotification(D,J){if(this._isDestroyed)return!1;return this.lib.triggerNotification(this.rendererPtr,D,J)}get themeMode(){return this.themeModeState.themeMode}waitForThemeMode(D=1000){if(!Number.isFinite(D)||D<0)throw Error("timeoutMs must be a non-negative finite number");return this.themeModeState.waitForThemeMode(D,this._isDestroyed)}getDebugInputs(){return[...this._debugInputs]}get useKittyKeyboard(){return this.lib.getKittyKeyboardFlags(this.rendererPtr)>0}set useKittyKeyboard(D){let J=D?GZ|kZ:0;this.lib.setKittyKeyboardFlags(this.rendererPtr,J)}createScrollbackSurface(D={}){if(this._screenMode!=="split-footer"||this._externalOutputMode!=="capture-stdout")throw Error('createScrollbackSurface requires screenMode "split-footer" and externalOutputMode "capture-stdout"');let J=this,K=p5++,Q=D.startOnNewLine??!0,X=J.getPendingSplitTailColumn(),Y=!Q&&X>0&&X<J.width?X:0,Z=new UK(J.width,1,J.widthMethod),_=null,L=Object.create(Z);Object.defineProperty(L,"claimFirstLineOffset",{value:(p)=>{if(_?.isDestroyed)_=null;if(_)return 0;return _=p??null,Y},enumerable:!0,configurable:!0});let N=new bJ(L),V=new KZ(L,{id:`scrollback-surface-root-${K}`,position:"absolute",left:0,top:0,width:J.width,height:"auto",border:!1,backgroundColor:"transparent",shouldFill:!1,flexDirection:"column"});N.add(V);let G=J.width,O=1,U=J.widthMethod,k=!1,F=!1,P=Q,W=fD.create(G,O,U,{id:`scrollback-surface-buffer-${K}`}),f=()=>{i()},T=()=>{if(k)throw Error("ScrollbackSurface is destroyed")},g=()=>{if(!F)throw Error("ScrollbackSurface.commitRows requires render() before commitRows()")},h=()=>{if(J.width!==G||J.widthMethod!==U)throw Error("ScrollbackSurface.commitRows requires render() after renderer geometry changes")},y=(p,m)=>{if(!Number.isInteger(p)||!Number.isInteger(m))throw Error("ScrollbackSurface.commitRows requires finite integer row bounds");if(p<0)throw Error("ScrollbackSurface.commitRows requires startRow >= 0");if(m<p)throw Error("ScrollbackSurface.commitRows requires endRowExclusive >= startRow");if(m>O)throw Error("ScrollbackSurface.commitRows row range exceeds rendered surface height")},B=(p)=>{let m=[];if(p instanceof QZ&&p.isHighlighting)m.push(p);for(let JD of p.getChildren())m.push(...B(JD));return m},I=async(p,m)=>{await new Promise((JD,a)=>{let n=!1,YD=J.clock.setTimeout(()=>{if(n)return;n=!0,a(Error("ScrollbackSurface.settle timed out waiting for CodeRenderable highlighting"))},m);Promise.all(p.map((WJ)=>WJ.highlightingDone)).then(()=>{if(n)return;n=!0,J.clock.clearTimeout(YD),JD()},(WJ)=>{if(n)return;n=!0,J.clock.clearTimeout(YD),a(WJ)})})},b=()=>{T();let{width:p,widthMethod:m}=J;Z.width=p,Z.widthMethod=m,V.width=p;let JD=(n)=>{Z.height=n,N.resize(p,n),W.resize(p,n),W.clear(h5),Z.frameId+=1,N.render(W,0)},a=Math.max(1,O);if(U!==m)W.destroy(),W=fD.create(p,a,m,{id:`scrollback-surface-buffer-${K}`});else W.resize(p,a);for(let n=0;n<R5;n+=1){JD(a);let YD=Math.max(1,V.height);if(YD===a){G=p,O=YD,U=m,F=!0;return}a=YD}JD(a),G=p,O=a,U=m,F=!0},v=async(p=2000)=>{T();let m=J.clock.now();b();while(!0){T();let JD=B(V);if(JD.length===0)return;let a=p-(J.clock.now()-m);if(a<=0)throw Error("ScrollbackSurface.settle timed out waiting for CodeRenderable highlighting");await I(JD,a),T(),b()}},u=(p,m,JD={})=>{if(T(),g(),h(),y(p,m),p===m)return;let a=m-p,n=fD.create(G,a,U,{id:`scrollback-surface-commit-${K}`});try{n.drawFrameBuffer(0,0,W,0,p,G,a),J.enqueueRenderedScrollbackCommit({snapshot:n,rowColumns:JD.rowColumns,startOnNewLine:P,trailingNewline:JD.trailingNewline??!0}),P=!1}catch(YD){throw n.destroy(),YD}},i=()=>{if(k)return;k=!0,J.off("destroy",f);let p=null;try{N.destroyRecursively()}catch(m){p=m}try{W.destroy()}catch(m){if(p===null)p=m}if(L.removeAllListeners(),Z.removeAllListeners(),p!==null)throw p};return J.on("destroy",f),{get renderContext(){return L},get root(){return V},get width(){return G},get height(){return O},get isDestroyed(){return k},render:b,settle:v,commitRows:u,destroy:i}}writeToScrollback(D){if(this._screenMode!=="split-footer"||this._externalOutputMode!=="capture-stdout")throw Error('writeToScrollback requires screenMode "split-footer" and externalOutputMode "capture-stdout"');let J=new UK(this.width,this.height,this.widthMethod),K=D({width:this.width,widthMethod:this.widthMethod,tailColumn:this.getPendingSplitTailColumn(),renderContext:J});if(!K||!K.root)throw Error("writeToScrollback must return a snapshot root renderable");let Q=!1,X=null,Y=null;try{let Z=K.root,_=this.getSnapshotWidth(K.width,Z.width),L=this.getSnapshotHeight(K.height,Z.height);J.width=_,J.height=L,J.widthMethod=this.widthMethod,X=new bJ(J),Y=fD.create(_,L,this.widthMethod,{id:"scrollback-snapshot-commit"}),X.add(Z),X.render(Y,0),this.enqueueRenderedScrollbackCommit({snapshot:Y,rowColumns:K.rowColumns,startOnNewLine:K.startOnNewLine,trailingNewline:K.trailingNewline})}catch(Z){throw Q=!0,Y?.destroy(),Z}finally{let Z=null;try{if(X)X.destroyRecursively();else K.root.destroyRecursively()}catch(_){Z=_}try{K.teardown?.()}catch(_){if(Z===null)Z=_}if(!Q&&Z)throw Z}}getSnapshotWidth(D,J){let K=D??J;if(!Number.isFinite(K))throw Error("writeToScrollback produced a non-finite width");return Math.min(Math.max(Math.trunc(K),1),Math.max(this.width,1))}getSnapshotHeight(D,J){let K=D??J;if(!Number.isFinite(K))throw Error("writeToScrollback produced a non-finite height");return Math.max(Math.trunc(K),1)}getSnapshotRowWidths(D,J){let K=[],Q=Math.min(Math.max(Math.trunc(J),0),D.width),X=D.buffers.char;for(let Y=0;Y<D.height;Y+=1){let Z=Q;while(Z>0){let _=X[Y*D.width+Z-1];if(_===0||(_&b5)===E5){Z-=1;continue}break}K.push(Z)}return K}advanceSplitTailColumn(D,J,K){if(J<=0)return D;let Q=D,X=J;while(X>0){if(Q>=K)Q=0;let Y=Math.min(X,K-Q);if(Q+=Y,X-=Y,X>0&&Q>=K)Q=0}return Q}getSplitTailColumnAfterCommit(D,J,K){let Q=J;if(D.startOnNewLine&&Q>0)Q=0;let X=this.getSnapshotRowWidths(D.snapshot,D.rowColumns);for(let[Y,Z]of X.entries())if(Q=this.advanceSplitTailColumn(Q,Z,K),Y<X.length-1||D.trailingNewline)Q=0;return Q}recordSplitCommit(D){this.splitTailColumn=this.getSplitTailColumnAfterCommit(D,this.splitTailColumn,Math.max(this.width,1))}getPendingSplitTailColumn(){let D=Math.max(this.width,1),J=this.splitTailColumn;for(let K of this.externalOutputQueue.peek())J=this.getSplitTailColumnAfterCommit(K,J,D);return J}enqueueRenderedScrollbackCommit(D){if(this._screenMode!=="split-footer"||this._externalOutputMode!=="capture-stdout")throw Error('scrollback commit requires screenMode "split-footer" and externalOutputMode "capture-stdout"');let J=Math.min(Math.max(Math.trunc(D.rowColumns??D.snapshot.width),0),D.snapshot.width);this.enqueueSplitCommit({snapshot:D.snapshot,rowColumns:J,startOnNewLine:D.startOnNewLine??!0,trailingNewline:D.trailingNewline??!0}),this.requestRender()}enqueueSplitCommit(D){if(this.externalOutputQueue.writeSnapshot(D),this.listenerCount("external_output")>0)this.emit("external_output",D)}createStdoutSnapshotCommit(D,J){let K=new UK(this.width,1,this.widthMethod),Q=Math.max(1,this.width),X=[...D],Y=Math.min(X.length,Q),Z=X.slice(0,Q).join(""),_=new bJ(K),L=new ZZ(K,{id:"captured-stdout-snapshot",position:"absolute",left:0,top:0,width:Math.max(1,Y),height:1,content:Z}),N=fD.create(Math.max(1,Y),1,this.widthMethod,{id:"captured-stdout-snapshot"});try{return _.add(L),_.render(N,0),{snapshot:N,rowColumns:Y,startOnNewLine:!1,trailingNewline:J}}catch(V){throw N.destroy(),V}finally{_.destroyRecursively()}}splitStdoutRows(D){let J=[],K="";for(let Q of D){if(Q==="\r"){K="";continue}if(Q===`
|
|
60
|
+
`){J.push({line:K,trailingNewline:!0}),K="";continue}K+=Q}if(K.length>0)J.push({line:K,trailingNewline:!1});return J}createStdoutSnapshotCommits(D){if(D.length===0)return[];let J=[],K=Math.max(1,this.width);for(let Q of this.splitStdoutRows(D)){let X=[...Q.line];if(X.length===0){J.push(this.createStdoutSnapshotCommit("",Q.trailingNewline));continue}let Y=0;while(Y<X.length){let Z=X.slice(Y,Y+K).join("");Y+=K;let _=Y>=X.length;J.push(this.createStdoutSnapshotCommit(Z,_?Q.trailingNewline:!1))}}return J}flushPendingSplitCommits(D=!1,J=!1){let K=this.externalOutputQueue.claim(J?Number.POSITIVE_INFINITY:this.maxSplitCommitsPerFrame),Q=!1,X=K.length-1;for(let[Y,Z]of K.entries()){let _=D&&Y===X,L=Y===0,N=Y===X;try{this.renderOffset=this.lib.commitSplitFooterSnapshot(this.rendererPtr,Z.snapshot,Z.rowColumns,Z.startOnNewLine,Z.trailingNewline,this.getSplitPinnedRenderOffset(),_,L,N),this.recordSplitCommit(Z),Q=!0}finally{Z.snapshot.destroy()}}if(!Q)this.renderOffset=this.lib.repaintSplitFooter(this.rendererPtr,this.getSplitPinnedRenderOffset(),D);if(this.pendingSplitFooterTransition=null,this.externalOutputQueue.size>0)this.requestRender();else this.applyPendingExternalOutputModeIfReady()}interceptStdoutWrite=(D,J,K)=>{let Q=typeof J==="function"?J:K,X=typeof J==="string"?J:void 0,Y=typeof D==="string"?D:D?.toString(X)??"";if(this._externalOutputMode==="capture-stdout"&&this._screenMode==="split-footer"&&this._splitHeight>0){let Z=this.createStdoutSnapshotCommits(Y);for(let _ of Z)this.enqueueSplitCommit(_);if(Z.length>0)this.requestRender()}if(typeof Q==="function")process.nextTick(Q);return!0};getSplitPinnedRenderOffset(){return this._screenMode==="split-footer"?Math.max(this._terminalHeight-this._splitHeight,0):0}getSplitCursorSeedRows(){let D=this.lib.getCursorState(this.rendererPtr),J=Number.isFinite(D.y)?Math.max(Math.trunc(D.y),1):1;return Math.min(J,Math.max(this._terminalHeight,1))}isSplitCursorSeedFrameBlocked(){return this._screenMode==="split-footer"&&this._externalOutputMode==="capture-stdout"&&this._splitHeight>0&&this.pendingSplitStartupCursorSeed&&this.splitStartupSeedTimeoutId!==null}canFlushSplitOutputBeforeTransition(D=!1){return this._terminalIsSetup&&(D||this._controlState!=="explicit_suspended")&&!this.isSplitCursorSeedFrameBlocked()}clearSplitStartupCursorSeed(){if(this.pendingSplitStartupCursorSeed=!1,this.splitStartupSeedTimeoutId!==null)this.clock.clearTimeout(this.splitStartupSeedTimeoutId),this.splitStartupSeedTimeoutId=null}abortSplitStartupCursorSeed(){this.clearSplitStartupCursorSeed(),this.stdinParser?.abortPendingStartupCursorCpr(),this.updateStdinParserProtocolContext({startupCursorCprActive:!1})}flushPendingSplitOutputBeforeTransition(D=!1,J={}){let K=this.externalOutputQueue.size>0||this.pendingExternalOutputMode!==null;if(this._screenMode!=="split-footer"||this._splitHeight<=0||this._externalOutputMode!=="capture-stdout"&&!(J.allowPassthrough&&K))return;if(!this.canFlushSplitOutputBeforeTransition(J.allowSuspended??!1))return;if(this.externalOutputQueue.size===0&&!D){this.applyPendingExternalOutputModeIfReady();return}this.flushPendingSplitCommits(this._externalOutputMode==="capture-stdout"?D:!1,!0)}resetSplitScrollback(D=0){this.splitTailColumn=0,this.renderOffset=this.lib.resetSplitScrollback(this.rendererPtr,D,this.getSplitPinnedRenderOffset())}syncSplitScrollback(){this.renderOffset=this.lib.syncSplitScrollback(this.rendererPtr,this.getSplitPinnedRenderOffset())}getSplitOutputOffset(D=this.renderOffset){return this.lib.getSplitOutputOffset(this.rendererPtr,D)}clearPendingSplitFooterTransition(){if(this.pendingSplitFooterTransition===null)return;this.pendingSplitFooterTransition=null,this.lib.clearPendingSplitFooterTransition(this.rendererPtr)}setPendingSplitFooterTransition(D){this.pendingSplitFooterTransition=D,this.lib.setPendingSplitFooterTransition(this.rendererPtr,D.mode==="viewport-scroll"?1:2,D.sourceTopLine,D.sourceHeight,D.targetTopLine,D.targetHeight,D.scrollLines??0)}syncSplitFooterState(){if(!(this._screenMode==="split-footer"&&this._splitHeight>0)){this.clearPendingSplitFooterTransition(),this.splitTailColumn=0,this.lib.resetSplitScrollback(this.rendererPtr,0,0),this.renderOffset=0,this.lib.setRenderOffset(this.rendererPtr,this.renderOffset);return}if(this._externalOutputMode==="capture-stdout")this.syncSplitScrollback();else this.clearPendingSplitFooterTransition(),this.splitTailColumn=0,this.lib.resetSplitScrollback(this.rendererPtr,0,0),this.renderOffset=this.getSplitPinnedRenderOffset(),this.lib.setRenderOffset(this.rendererPtr,this.renderOffset)}clearStaleSplitSurfaceRows(D,J,K,Q){if(!this._terminalIsSetup||J<=0||this._terminalHeight<=0)return;let X=this._terminalHeight,Y=Math.max(1,D),Z=Math.min(X,D+J-1);if(Z<Y)return;let _=Math.max(1,K),L=Math.min(X,K+Math.max(Q,0)-1),N="";for(let V=Y;V<=Z;V+=1){if(V>=_&&V<=L)continue;N+=`${lD.moveCursor(V,1)}\x1B[2K`}if(N.length>0)this.writeOut(N)}applyScreenMode(D,J=!0,K=!0){let Q=this._screenMode,X=this._splitHeight,Y=cJ(D,this._terminalWidth,this._terminalHeight,this._footerHeight),Z=Y.effectiveFooterHeight;if(Q===D&&X===Z)return;let _=this._terminalIsSetup&&this._controlState!=="explicit_suspended",L=Q==="alternate-screen",N=D==="alternate-screen",V=this._terminalIsSetup&&L!==N,G=X>0&&Z===0;if(_&&X>0)this.flushPendingSplitOutputBeforeTransition();let O=this.renderOffset+1,U=this._terminalIsSetup&&Q==="split-footer"&&D==="split-footer"&&this._externalOutputMode==="capture-stdout"&&X>0&&Z>0&&!V,k=this.pendingSplitStartupCursorSeed&&this.splitStartupSeedTimeoutId!==null,F=this.pendingSplitFooterTransition?.sourceTopLine??O,P=this.pendingSplitFooterTransition?.sourceHeight??X,W=Math.max(F-1,0),f=Q==="split-footer"&&X>0&&this._externalOutputMode==="capture-stdout"?this.getSplitOutputOffset(W):W,T=Y.renderOffset,g=D==="split-footer"&&Z>0&&this._externalOutputMode==="capture-stdout"?this.getSplitOutputOffset(T):T,h=this.pendingSplitFooterTransition,y=h!==null&&Z===P,B=y&&h.mode==="viewport-scroll"&&(h.scrollLines??0)>0,I=Z>0&&Z<P,b=Z>P&&P>0,v=D!=="split-footer"||Z===0?0:B?h.targetTopLine-1:y?W:I&&W>0?W:I?g:b?Math.max(g,Math.min(W,T)):T,u=v+1,i=B?h.scrollLines??0:Z>0&&!y?Math.max(f-g,0):0,p=(!I||B)&&i>0?"viewport-scroll":"clear-stale-rows",JD=v>W||I,a=_&&!V&&!U&&JD&&Z>0;if(_&&G)this.clearPendingSplitFooterTransition(),this.renderOffset=0,this.lib.setRenderOffset(this.rendererPtr,0);if(_&&!V&&!U){if(X===0&&Z>0){let n=this._terminalHeight-Z,YD=lD.scrollDown(n);this.writeOut(YD)}else if(i>0){let n=i,YD=lD.scrollUp(n);this.writeOut(YD)}}if(this._screenMode=D,this._splitHeight=Z,this.width=Y.renderWidth,this.height=Y.renderHeight,this.lib.resizeRenderer(this.rendererPtr,this.width,this.height),this._screenMode==="split-footer"&&this._externalOutputMode==="capture-stdout"){if(Q!=="split-footer")this.resetSplitScrollback(this.getSplitCursorSeedRows());else this.renderOffset=v,this.lib.setRenderOffset(this.rendererPtr,this.renderOffset);if(U){if(k)this.clearPendingSplitFooterTransition();else this.setPendingSplitFooterTransition({mode:p,sourceTopLine:F,sourceHeight:P,targetTopLine:u,targetHeight:Z,scrollLines:i});this.forceFullRepaintRequested=!0}else if(a)this.clearPendingSplitFooterTransition(),this.clearStaleSplitSurfaceRows(F,P,u,Z);else this.clearPendingSplitFooterTransition()}else if(this.syncSplitFooterState(),a)this.clearStaleSplitSurfaceRows(F,P,this.renderOffset+1,Z);if(this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this.currentRenderBuffer=this.lib.getCurrentBuffer(this.rendererPtr),this._console.resize(this.width,this.height),this.root.resize(this.width,this.height),V){if(_)this.lib.suspendRenderer(this.rendererPtr),this.lib.setupTerminal(this.rendererPtr,N),this.pendingSuspendedTerminalSetup=!1;else this.pendingSuspendedTerminalSetup=!0;if(_&&this._useMouse)this.enableMouse()}if(J)this.emit("resize",this.width,this.height);if(K)this.requestRender()}flushStdoutCache(D,J=!1){if(this.externalOutputQueue.size===0&&!J)return!1;let K=this.externalOutputQueue.claim(),Q="";for(let N of K)Q+=`[snapshot ${N.snapshot.width}x${N.snapshot.height}]
|
|
61
|
+
`,N.snapshot.destroy();let X=this.renderOffset+1,Y=lD.moveCursorAndClear(X,1),Z=this.renderOffset+1,_=lD.moveCursor(Z,1),L="";if(D>0){let N=this.backgroundColor.toInts(),V=" ".repeat(this.width)+`
|
|
62
|
+
`.repeat(D);if(N[3]===0)L=V;else L=lD.setRgbBackground(N[0],N[1],N[2])+V+lD.resetBackground}return this.writeOut(Y+_+Q+L),!0}enableMouse(){this._useMouse=!0,this.lib.enableMouse(this.rendererPtr,this.enableMouseMovement)}disableMouse(){this._useMouse=!1,this.setCapturedRenderable(void 0),this.stdinParser?.resetMouseState(),this.lib.disableMouse(this.rendererPtr)}enableKittyKeyboard(D=3){this.lib.enableKittyKeyboard(this.rendererPtr,D),this.updateStdinParserProtocolContext({kittyKeyboardEnabled:!0})}disableKittyKeyboard(){this.lib.disableKittyKeyboard(this.rendererPtr),this.updateStdinParserProtocolContext({kittyKeyboardEnabled:!1},!0)}set useThread(D){this._useThread=D,this.lib.setUseThread(this.rendererPtr,D)}async setupTerminal(){if(this._terminalIsSetup)return;this._terminalIsSetup=!0;let D=this._screenMode==="split-footer"&&this._externalOutputMode==="capture-stdout";if(this.updateStdinParserProtocolContext({privateCapabilityRepliesActive:!0,explicitWidthCprActive:!0,startupCursorCprActive:D}),this.lib.setupTerminal(this.rendererPtr,this._screenMode==="alternate-screen"),this._capabilities=this.lib.getTerminalCapabilities(this.rendererPtr),this.debugOverlay.enabled){if(this.lib.setDebugOverlay(this.rendererPtr,!0,this.debugOverlay.corner),!this.memorySnapshotInterval)this.memorySnapshotInterval=3000,this.startMemorySnapshotTimer(),this.automaticMemorySnapshot=!0}if(this.capabilityTimeoutId=this.clock.setTimeout(()=>{if(this.capabilityTimeoutId=null,this.clearSplitStartupCursorSeed(),this._screenMode==="split-footer"&&this._externalOutputMode==="capture-stdout")this.requestRender();this.removeInputHandler(this.capabilityHandler),this.updateStdinParserProtocolContext({privateCapabilityRepliesActive:!1,explicitWidthCprActive:!1,startupCursorCprActive:!1},!0),this.resolveXtVersionWaiters()},5000),this._useMouse)this.enableMouse();if(this._screenMode==="split-footer"&&this._externalOutputMode==="capture-stdout"){if(this.pendingSplitStartupCursorSeed=!0,this.splitStartupSeedTimeoutId!==null)this.clock.clearTimeout(this.splitStartupSeedTimeoutId);this.splitStartupSeedTimeoutId=this.clock.setTimeout(()=>{if(this.splitStartupSeedTimeoutId=null,!this.pendingSplitStartupCursorSeed)return;if(this.updateStdinParserProtocolContext({startupCursorCprActive:!1}),this._screenMode==="split-footer"&&this._externalOutputMode==="capture-stdout")this.requestRender();this.flushPendingSplitOutputBeforeTransition(!1,{allowPassthrough:!0})},120)}if(this.queryPixelResolution(),this.shouldSyncNativePaletteState())this.refreshPalette()}stdinListener=((D)=>{let J=Buffer.isBuffer(D)?D:Buffer.from(D);if(!this.stdinParser)return;try{this.stdinParser.push(J),this.drainStdinParser()}catch(K){this.handleStdinParserFailure(K)}}).bind(this);addInputHandler(D){this.sequenceHandlers.push(D)}prependInputHandler(D){this.sequenceHandlers.unshift(D)}removeInputHandler(D){this.sequenceHandlers=this.sequenceHandlers.filter((J)=>J!==D)}updateStdinParserProtocolContext(D,J=!1){if(!this.stdinParser)return;if(this.stdinParser.updateProtocolContext(D),J)this.drainStdinParser()}subscribeOsc(D){return this.oscSubscribers.add(D),()=>{this.oscSubscribers.delete(D)}}processCapabilitySequence(D,J){let K=x5(D);if(!(K||J&&this.capabilityTimeoutId!==null))return!1;if(this.lib.processCapabilityResponse(this.rendererPtr,D),this._capabilities=this.lib.getTerminalCapabilities(this.rendererPtr),this._capabilities?.terminal?.from_xtversion)this.resolveXtVersionWaiters();if(K)this.forceFullRepaintRequested=!0,this.requestRender();this.emit("capabilities",this._capabilities);let X=this.pendingSplitStartupCursorSeed;if(X&&J&&this._screenMode==="split-footer"&&this._externalOutputMode==="capture-stdout"){if(this.resetSplitScrollback(this.getSplitCursorSeedRows()),this.clearPendingSplitFooterTransition(),this.clearSplitStartupCursorSeed(),this.updateStdinParserProtocolContext({startupCursorCprActive:!1}),this.requestRender(),this.pendingExternalOutputMode==="passthrough")this.flushPendingSplitOutputBeforeTransition()}let Y=X&&J&&this.splitStartupSeedTimeoutId!==null;return K||Y}capabilityHandler=((D)=>{return this.processCapabilitySequence(D,!1)}).bind(this);focusHandler=((D)=>{if(D==="\x1B[I"){if(this.shouldRestoreModesOnNextFocus)this.lib.restoreTerminalModes(this.rendererPtr),this.shouldRestoreModesOnNextFocus=!1;if(this._terminalFocusState!==!0)this._terminalFocusState=!0,this.emit("focus");return!0}if(D==="\x1B[O"){if(this.shouldRestoreModesOnNextFocus=!0,this._terminalFocusState!==!1)this._terminalFocusState=!1,this.emit("blur");return!0}return!1}).bind(this);dispatchSequenceHandlers(D){if(this._debugModeEnabled)this._debugInputs.push({timestamp:new Date().toISOString(),sequence:D});for(let J of this.sequenceHandlers)if(J(D))return!0;return!1}drainStdinParser(){if(!this.stdinParser)return;this.stdinParser.drain((D)=>{this.handleStdinEvent(D)})}handleStdinEvent(D){switch(D.type){case"key":if(this.dispatchSequenceHandlers(D.raw))return;this._keyHandler.processParsedKey(D.key);return;case"mouse":if(this._useMouse&&this.processSingleMouseEvent(D.event))return;this.dispatchSequenceHandlers(D.raw);return;case"paste":this._keyHandler.processPaste(D.bytes,D.metadata);return;case"response":if(D.protocol==="osc")for(let J of this.oscSubscribers)J(D.sequence);if(D.protocol==="cpr"&&this.processCapabilitySequence(D.sequence,!0))return;this.dispatchSequenceHandlers(D.sequence);return}}handleStdinParserFailure(D){if(!this.hasLoggedStdinParserError)this.hasLoggedStdinParserError=!0,console.error("[stdin-parser-error] parser failure, resetting parser",D);try{this.stdinParser?.reset()}catch(J){console.error("stdin parser reset failed after parser error",J)}}setupInput(){for(let D of this.prependedInputHandlers)this.addInputHandler(D);if(this.addInputHandler((D)=>{if(T5(D)&&this.waitingForPixelResolution){let J=S5(D);if(J)this._resolution=J;return this.waitingForPixelResolution=!1,this.updateStdinParserProtocolContext({pixelResolutionQueryActive:!1},!0),!0}return!1}),this.addInputHandler(this.capabilityHandler),this.addInputHandler(this.focusHandler),this.addInputHandler(this.themeModeHandler),this.stdin.setRawMode)this.stdin.setRawMode(!0);this.stdin.on("data",this.stdinListener),this.stdin.resume()}dispatchMouseEvent(D,J){let K=new PD(D,J);if(D.processMouseEvent(K),this.autoFocus&&K.type==="down"&&K.button===0&&!K.defaultPrevented){let Q=D;while(Q){if(Q.focusable){Q.focus();break}Q=Q.parent}}return K}processSingleMouseEvent(D){if(this._splitHeight>0){if(D.y<this.renderOffset)return!1;D.y-=this.renderOffset}if(this._latestPointer.x=D.x,this._latestPointer.y=D.y,this._hasPointer=!0,this._lastPointerModifiers=D.modifiers,this._console.visible){let Y=this._console.bounds;if(D.x>=Y.x&&D.x<Y.x+Y.width&&D.y>=Y.y&&D.y<Y.y+Y.height){let Z=new PD(null,D);if(this._console.handleMouse(Z))return!0}}if(D.type==="scroll"){let Y=this.hitTest(D.x,D.y),Z=ID.renderablesByNumber.get(Y),_=this._currentFocusedRenderable&&!this._currentFocusedRenderable.isDestroyed&&this._currentFocusedRenderable.focused?this._currentFocusedRenderable:null,L=Z??_;if(L){let N=new PD(L,D);L.processMouseEvent(N)}return!0}let J=this.hitTest(D.x,D.y),K=J===this.lastOverRenderableNum;this.lastOverRenderableNum=J;let Q=ID.renderablesByNumber.get(J);if(D.type==="down"&&D.button===0&&!this.currentSelection?.isDragging&&!D.modifiers.ctrl){if(Boolean(Q&&Q.selectable&&!Q.isDestroyed&&Q.shouldStartSelection(D.x,D.y))&&Q)return this.startSelection(Q,D.x,D.y),this.dispatchMouseEvent(Q,D),!0}if(D.type==="drag"&&this.currentSelection?.isDragging){if(this.updateSelection(Q,D.x,D.y),Q){let Y=new PD(Q,{...D,isDragging:!0});Q.processMouseEvent(Y)}return!0}if(D.type==="up"&&this.currentSelection?.isDragging){if(Q){let Y=new PD(Q,{...D,isDragging:!0});Q.processMouseEvent(Y)}return this.finishSelection(),!0}if(D.type==="down"&&D.button===0&&this.currentSelection){if(D.modifiers.ctrl)return this.currentSelection.isDragging=!0,this.updateSelection(Q,D.x,D.y),!0}if(!K&&(D.type==="drag"||D.type==="move")){if(this.lastOverRenderable&&this.lastOverRenderable!==this.capturedRenderable&&!this.lastOverRenderable.isDestroyed){let Y=new PD(this.lastOverRenderable,{...D,type:"out"});this.lastOverRenderable.processMouseEvent(Y)}if(this.lastOverRenderable=Q,Q){let Y=new PD(Q,{...D,type:"over",source:this.capturedRenderable});Q.processMouseEvent(Y)}}if(this.capturedRenderable&&D.type!=="up"){let Y=new PD(this.capturedRenderable,D);return this.capturedRenderable.processMouseEvent(Y),!0}if(this.capturedRenderable&&D.type==="up"){let Y=new PD(this.capturedRenderable,{...D,type:"drag-end"});if(this.capturedRenderable.processMouseEvent(Y),this.capturedRenderable.processMouseEvent(new PD(this.capturedRenderable,D)),Q){let Z=new PD(Q,{...D,type:"drop",source:this.capturedRenderable});Q.processMouseEvent(Z)}this.lastOverRenderable=this.capturedRenderable,this.lastOverRenderableNum=this.capturedRenderable.num,this.setCapturedRenderable(void 0),this.requestRender()}let X;if(Q){if(D.type==="drag"&&D.button===0)this.setCapturedRenderable(Q);else this.setCapturedRenderable(void 0);X=this.dispatchMouseEvent(Q,D)}else this.setCapturedRenderable(void 0),this.lastOverRenderable=void 0;if(!X?.defaultPrevented&&D.type==="down"&&this.currentSelection)this.clearSelection();return!0}recheckHoverState(){if(this._isDestroyed||!this._hasPointer)return;if(this.capturedRenderable)return;let D=this.hitTest(this._latestPointer.x,this._latestPointer.y),J=ID.renderablesByNumber.get(D),K=this.lastOverRenderable;if(K?.num===D){this.lastOverRenderableNum=D;return}let Q={type:"move",button:0,x:this._latestPointer.x,y:this._latestPointer.y,modifiers:this._lastPointerModifiers};if(K&&!K.isDestroyed){let X=new PD(K,{...Q,type:"out"});K.processMouseEvent(X)}if(this.lastOverRenderable=J,this.lastOverRenderableNum=D,J){let X=new PD(J,{...Q,type:"over"});J.processMouseEvent(X)}}setMousePointer(D){this._currentMousePointerStyle=D,this.lib.setCursorStyleOptions(this.rendererPtr,{cursor:D})}hitTest(D,J){return this.lib.checkHit(this.rendererPtr,D,J)}takeMemorySnapshot(){if(this._isDestroyed)return;let D=process.memoryUsage();this.lastMemorySnapshot={heapUsed:D.heapUsed,heapTotal:D.heapTotal,arrayBuffers:D.arrayBuffers},this.lib.updateMemoryStats(this.rendererPtr,this.lastMemorySnapshot.heapUsed,this.lastMemorySnapshot.heapTotal,this.lastMemorySnapshot.arrayBuffers),this.emit("memory:snapshot",this.lastMemorySnapshot)}startMemorySnapshotTimer(){this.stopMemorySnapshotTimer(),this.memorySnapshotTimer=this.clock.setInterval(()=>{this.takeMemorySnapshot()},this.memorySnapshotInterval)}stopMemorySnapshotTimer(){if(this.memorySnapshotTimer)this.clock.clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}setMemorySnapshotInterval(D){if(this.memorySnapshotInterval=D,this._isRunning&&D>0)this.startMemorySnapshotTimer();else if(D<=0&&this.memorySnapshotTimer)this.clock.clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}handleResize(D,J){if(this._isDestroyed)return;if(this._splitHeight>0){this.processResize(D,J);return}if(this.resizeTimeoutId!==null)this.clock.clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;this.resizeTimeoutId=this.clock.setTimeout(()=>{this.resizeTimeoutId=null,this.processResize(D,J)},this.resizeDebounceDelay)}queryPixelResolution(){this.waitingForPixelResolution=!0,this.updateStdinParserProtocolContext({pixelResolutionQueryActive:!0}),this.lib.queryPixelResolution(this.rendererPtr)}processResize(D,J){if(D===this._terminalWidth&&J===this._terminalHeight)return;if(this._terminalIsSetup&&this._controlState!=="explicit_suspended"&&!this.isSplitCursorSeedFrameBlocked())this.flushPendingSplitOutputBeforeTransition();let K=this.pendingSplitFooterTransition,Q=cJ(this._screenMode,this._terminalWidth,this._terminalHeight,this._footerHeight),X=this._terminalWidth,Y=this._terminalHeight,Z=K?.sourceHeight??Q.effectiveFooterHeight;this._terminalWidth=D,this._terminalHeight=J,this.queryPixelResolution(),this.setCapturedRenderable(void 0),this.stdinParser?.resetMouseState();let _=cJ(this._screenMode,this._terminalWidth,this._terminalHeight,this._footerHeight);if(this._screenMode==="split-footer"){let N=null;if(D<X&&Z>0)N=Math.max(Y-Z*2,1);if(K!==null)N=N===null?K.sourceTopLine:Math.min(N,K.sourceTopLine);if(N!==null){let V=lD.moveCursorAndClear(N,1);this.writeOut(V)}this.currentRenderBuffer.clear(this.backgroundColor)}if(this.clearPendingSplitFooterTransition(),this._splitHeight=_.effectiveFooterHeight,this.width=_.renderWidth,this.height=_.renderHeight,this.lib.resizeRenderer(this.rendererPtr,this.width,this.height),this._screenMode==="split-footer"&&this._externalOutputMode==="capture-stdout")this.syncSplitScrollback();else this.syncSplitFooterState();this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this.currentRenderBuffer=this.lib.getCurrentBuffer(this.rendererPtr),this._console.resize(this.width,this.height),this.root.resize(this.width,this.height),this.emit("resize",this.width,this.height),this.requestRender()}setBackgroundColor(D){let J=c(D);this.lib.setBackgroundColor(this.rendererPtr,J),this.backgroundColor=J,this.nextRenderBuffer.clear(J),this.requestRender()}toggleDebugOverlay(){let D=!this.debugOverlay.enabled;if(D&&!this.memorySnapshotInterval)this.memorySnapshotInterval=3000,this.startMemorySnapshotTimer(),this.automaticMemorySnapshot=!0;else if(!D&&this.automaticMemorySnapshot)this.stopMemorySnapshotTimer(),this.memorySnapshotInterval=0,this.automaticMemorySnapshot=!1;this.debugOverlay.enabled=!this.debugOverlay.enabled,this.lib.setDebugOverlay(this.rendererPtr,this.debugOverlay.enabled,this.debugOverlay.corner),this.emit("debugOverlay:toggle",this.debugOverlay.enabled),this.requestRender()}configureDebugOverlay(D){this.debugOverlay.enabled=D.enabled??this.debugOverlay.enabled,this.debugOverlay.corner=D.corner??this.debugOverlay.corner,this.lib.setDebugOverlay(this.rendererPtr,this.debugOverlay.enabled,this.debugOverlay.corner),this.requestRender()}setTerminalTitle(D){this.lib.setTerminalTitle(this.rendererPtr,D)}resetTerminalBgColor(){process.stdout.write("\x1B]111\x07")}copyToClipboardOSC52(D,J){return this.clipboard.copyToClipboardOSC52(D,J)}clearClipboardOSC52(D){return this.clipboard.clearClipboardOSC52(D)}isOsc52Supported(){return this._capabilities?.osc52??this.clipboard.isOsc52Supported()}dumpHitGrid(){this.lib.dumpHitGrid(this.rendererPtr)}dumpBuffers(D){this.lib.dumpBuffers(this.rendererPtr,D)}dumpStdoutBuffer(D){this.lib.dumpStdoutBuffer(this.rendererPtr,D)}static setCursorPosition(D,J,K,Q=!0){bD().setCursorPosition(D.rendererPtr,J,K,Q)}static setCursorStyle(D,J){if(bD().setCursorStyleOptions(D.rendererPtr,J),J.cursor!==void 0)D._currentMousePointerStyle=J.cursor}static setCursorColor(D,J){bD().setCursorColor(D.rendererPtr,J)}setCursorPosition(D,J,K=!0){this.lib.setCursorPosition(this.rendererPtr,D,J,K)}setCursorStyle(D){if(this.lib.setCursorStyleOptions(this.rendererPtr,D),D.cursor!==void 0)this._currentMousePointerStyle=D.cursor}setCursorColor(D){this.lib.setCursorColor(this.rendererPtr,D)}getCursorState(){return this.lib.getCursorState(this.rendererPtr)}addPostProcessFn(D){this.postProcessFns.push(D)}removePostProcessFn(D){this.postProcessFns=this.postProcessFns.filter((J)=>J!==D)}clearPostProcessFns(){this.postProcessFns=[]}setFrameCallback(D){this.frameCallbacks.push(D)}removeFrameCallback(D){this.frameCallbacks=this.frameCallbacks.filter((J)=>J!==D)}clearFrameCallbacks(){this.frameCallbacks=[]}requestLive(){if(this.liveRequestCounter++,this._controlState==="idle"&&this.liveRequestCounter>0)this._controlState="auto_started",this.internalStart()}dropLive(){if(this.liveRequestCounter=Math.max(0,this.liveRequestCounter-1),this._controlState==="auto_started"&&this.liveRequestCounter===0)this._controlState="idle",this.internalPause()}start(){this._controlState="explicit_started",this.internalStart()}auto(){this._controlState=this._isRunning?"auto_started":"idle"}internalStart(){if(!this._isRunning&&!this._isDestroyed){if(this._isRunning=!0,this.updateScheduled=!1,this.memorySnapshotInterval>0)this.startMemorySnapshotTimer();this.startRenderLoop()}}pause(){this._controlState="explicit_paused",this.internalPause()}suspend(){if(this._previousControlState=this._controlState,this._controlState="explicit_suspended",this.internalPause(),this._terminalIsSetup)this.clearSplitStartupCursorSeed(),this.flushPendingSplitOutputBeforeTransition(!0,{allowSuspended:!0}),this.suspendedNonAltSurfacePreserved=this._screenMode!=="alternate-screen"&&this.renderOffset>0;else this.suspendedNonAltSurfacePreserved=!1;if(this._suspendedMouseEnabled=this._useMouse,this.disableMouse(),this.removeExitListeners(),this.waitingForPixelResolution=!1,this.updateStdinParserProtocolContext({privateCapabilityRepliesActive:!1,pixelResolutionQueryActive:!1,explicitWidthCprActive:!1,startupCursorCprActive:!1}),this.stdinParser?.reset(),this.stdin.removeListener("data",this.stdinListener),this.themeModeState.cancelRefresh(),this.lib.suspendRenderer(this.rendererPtr),this.stdin.setRawMode)this.stdin.setRawMode(!1);this.stdin.pause()}resume(){if(this.stdin.setRawMode)this.stdin.setRawMode(!0);while(this.stdin.read()!==null);this.stdin.on("data",this.stdinListener),this.stdin.resume(),this.addExitListeners();let D=this.pendingSuspendedTerminalSetup&&this._screenMode!=="alternate-screen"&&this.suspendedNonAltSurfacePreserved&&this.renderOffset>0;if(this.pendingSuspendedTerminalSetup)if(this.pendingSuspendedTerminalSetup=!1,D)this.lib.resumeRenderer(this.rendererPtr);else this.lib.setupTerminal(this.rendererPtr,this._screenMode==="alternate-screen");else this.lib.resumeRenderer(this.rendererPtr);if(this.suspendedNonAltSurfacePreserved=!1,this.flushPendingSplitOutputBeforeTransition(!1,{allowSuspended:!0,allowPassthrough:!0}),this._screenMode==="split-footer"&&this._splitHeight>0)this.syncSplitFooterState();if(this._suspendedMouseEnabled)this.enableMouse();if(this.forceFullRepaintRequested=!0,this._controlState=this._previousControlState,this._previousControlState==="auto_started"||this._previousControlState==="explicit_started")this.internalStart();else this.requestRender()}internalPause(){if(this._isRunning=!1,this.renderTimeout)this.clock.clearTimeout(this.renderTimeout),this.renderTimeout=null;if(!this.rendering)this.resolveIdleIfNeeded()}stop(){this._controlState="explicit_stopped",this.internalStop()}internalStop(){if(this.isRunning&&!this._isDestroyed){if(this._isRunning=!1,this.memorySnapshotTimer)this.clock.clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null;if(this.renderTimeout)this.clock.clearTimeout(this.renderTimeout),this.renderTimeout=null;if(!this.rendering)this.resolveIdleIfNeeded()}}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this._destroyPending=!0,this._palettePublishGeneration++,this.rendering){this.prepareDestroyDuringRender();return}this.finalizeDestroy()}cleanupBeforeDestroy(){if(this._destroyCleanupPrepared)return;if(this._destroyCleanupPrepared=!0,process.removeListener("SIGWINCH",this.sigwinchHandler),process.removeListener("uncaughtException",this.handleError),process.removeListener("unhandledRejection",this.handleError),process.removeListener("warning",this.warningHandler),process.removeListener("beforeExit",this.exitHandler),this.removeExitListeners(),this.resizeTimeoutId!==null)this.clock.clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;if(this.capabilityTimeoutId!==null)this.clock.clearTimeout(this.capabilityTimeoutId),this.capabilityTimeoutId=null;if(this.clearSplitStartupCursorSeed(),this.memorySnapshotTimer)this.clock.clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null;if(this.renderTimeout)this.clock.clearTimeout(this.renderTimeout),this.renderTimeout=null;if(this.themeModeState.cancelRefresh(),this._isRunning=!1,this.waitingForPixelResolution=!1,this.updateStdinParserProtocolContext({privateCapabilityRepliesActive:!1,pixelResolutionQueryActive:!1,explicitWidthCprActive:!1,startupCursorCprActive:!1},!0),this._useMouse=!1,this.setCapturedRenderable(void 0),this.stdin.removeListener("data",this.stdinListener),this.stdin.setRawMode)this.stdin.setRawMode(!1);if(this.externalOutputMode="passthrough",this._splitHeight>0)this.flushStdoutCache(this._splitHeight,!0)}prepareDestroyDuringRender(){this.cleanupBeforeDestroy(),this.lib.suspendRenderer(this.rendererPtr)}finalizeDestroy(){if(this._destroyFinalized)return;if(this._destroyFinalized=!0,this._destroyPending=!1,this.cleanupBeforeDestroy(),this._paletteDetector)this._paletteDetector.cleanup(),this._paletteDetector=null;this._paletteCache.clear(),this._paletteDetectionPromise=null,this._paletteDetectionSize=0,this._nativePaletteSignature=null,this._emittedPaletteSignature=null,this._paletteEpoch=0,this.resolveXtVersionWaiters(),this.themeModeState.dispose(),this.emit("destroy");try{this.root.destroyRecursively()}catch(D){console.error("Error destroying root renderable:",D instanceof Error?D.stack:String(D))}if(this.stdinParser?.destroy(),this.stdinParser=null,this.oscSubscribers.clear(),this._console.destroy(),this._splitHeight>0&&this._terminalIsSetup&&this._controlState!=="explicit_suspended"){if(this.flushPendingSplitOutputBeforeTransition(!0),this.renderOffset=0,this.clearOnShutdown)this.lib.setRenderOffset(this.rendererPtr,0)}if(this._externalOutputMode="passthrough",this.pendingExternalOutputMode=null,this.stdout.write=this.realStdoutWrite,this.externalOutputQueue.clear(),this.lib.destroyRenderer(this.rendererPtr),ZY.removeRenderer(this),this._onDestroy)try{this._onDestroy()}catch(D){console.error("Error in onDestroy callback:",D instanceof Error?D.stack:String(D))}this.resolveIdleIfNeeded()}startRenderLoop(){if(!this._isRunning)return;this.lastTime=this.normalizeClockTime(this.clock.now(),0),this.frameCount=0,this.lastFpsTime=this.lastTime,this.currentFps=0,this.loop()}async loop(){if(this.rendering||this._isDestroyed)return;if(this.renderTimeout=null,this.rendering=!0,this.renderTimeout)this.clock.clearTimeout(this.renderTimeout),this.renderTimeout=null;try{this._frameId++;let D=this.normalizeClockTime(this.clock.now(),this.lastTime),K=this.getElapsedMs(D,this.lastTime);if(this.lastTime=D,this.frameCount++,this.getElapsedMs(D,this.lastFpsTime)>=1000)this.currentFps=this.frameCount,this.frameCount=0,this.lastFpsTime=D;this.renderStats.frameCount++,this.renderStats.fps=this.currentFps;let Q=performance.now(),X=Array.from(this.animationRequest.values());this.animationRequest.clear();let Y=performance.now();for(let V of X)V(K),this.dropLive();let _=performance.now()-Y,L=performance.now();for(let V of this.frameCallbacks)try{await V(K)}catch(G){console.error("Error in frame callback:",G)}let N=performance.now();this.renderStats.frameCallbackTime=N-L,this.root.render(this.nextRenderBuffer,K);for(let V of this.postProcessFns)V(this.nextRenderBuffer,K);if(this._console.renderToBuffer(this.nextRenderBuffer),!this._isDestroyed){if(this.renderNative(),this._useMouse&&this.lib.getHitGridDirty(this.rendererPtr))this.recheckHoverState();let V=performance.now()-Q;if(this.lib.updateStats(this.rendererPtr,V,this.renderStats.fps,this.renderStats.frameCallbackTime),this.listenerCount("frame")>0)this.emit("frame",{frameId:this.frameId});if(this.gatherStats)this.collectStatSample(V);if(this._isRunning||this.immediateRerenderRequested){let G=this.immediateRerenderRequested?this.minTargetFrameTime:this.targetFrameTime,O=Math.max(1,G-Math.floor(V));this.immediateRerenderRequested=!1,this.renderTimeout=this.clock.setTimeout(()=>{this.renderTimeout=null,this.loop()},O)}else this.clock.clearTimeout(this.renderTimeout),this.renderTimeout=null}}finally{if(this.rendering=!1,this._destroyPending)this.finalizeDestroy();this.resolveIdleIfNeeded()}}intermediateRender(){this.immediateRerenderRequested=!0,this.loop()}renderNative(){if(this.renderingNative)throw console.error("Rendering called concurrently"),Error("Rendering called concurrently");if(this.renderingNative=!0,this.isSplitCursorSeedFrameBlocked()){this.renderingNative=!1;return}if(this._splitHeight>0&&this._externalOutputMode==="capture-stdout"){let D=this.forceFullRepaintRequested;this.forceFullRepaintRequested=!1,this.flushPendingSplitCommits(D,this.pendingExternalOutputMode==="passthrough"),this.pendingSplitFooterTransition=null}else{let D=this.forceFullRepaintRequested;this.forceFullRepaintRequested=!1,this.pendingSplitFooterTransition=null,this.lib.render(this.rendererPtr,D)}this.renderingNative=!1}collectStatSample(D){if(this.frameTimes.push(D),this.frameTimes.length>this.maxStatSamples)this.frameTimes.shift()}getNativeStats(){return this.lib.getRenderStats(this.rendererPtr)}getStats(){let D=this.getNativeStats(),J=[...this.frameTimes],K=J.reduce((Z,_)=>Z+_,0),Q=J.length?K/J.length:0,X=J.length?Math.min(...J):0,Y=J.length?Math.max(...J):0;return{...D,fps:this.renderStats.fps,frameCount:this.renderStats.frameCount,frameTimes:J,averageFrameTime:Q,minFrameTime:X,maxFrameTime:Y,frameCallbackTime:this.renderStats.frameCallbackTime}}resetStats(){this.frameTimes=[],this.renderStats.frameCount=0}setGatherStats(D){if(this.gatherStats=D,!D)this.frameTimes=[]}getSelection(){return this.currentSelection}get hasSelection(){return!!this.currentSelection}getSelectionContainer(){return this.selectionContainers.length>0?this.selectionContainers[this.selectionContainers.length-1]:null}clearSelection(){if(this.currentSelection){for(let D of this.currentSelection.touchedRenderables)if(D.selectable&&!D.isDestroyed)D.onSelectionChanged(null);this.currentSelection=null}this.selectionContainers=[]}startSelection(D,J,K){if(!D.selectable)return;this.clearSelection(),this.selectionContainers.push(D.parent||this.root),this.currentSelection=new PY(D,{x:J,y:K},{x:J,y:K}),this.currentSelection.isStart=!0,this.notifySelectablesOfSelectionChange()}updateSelection(D,J,K,Q){if(this.currentSelection){if(this.currentSelection.isStart=!1,this.currentSelection.focus={x:J,y:K},Q?.finishDragging)this.currentSelection.isDragging=!1;if(this.selectionContainers.length>0){let X=this.selectionContainers[this.selectionContainers.length-1];if(!D||!this.isWithinContainer(D,X)){let Y=X.parent||this.root;this.selectionContainers.push(Y)}else if(D&&this.selectionContainers.length>1){let Y=this.selectionContainers.indexOf(D);if(Y===-1){let Z=D.parent||this.root;Y=this.selectionContainers.indexOf(Z)}if(Y!==-1&&Y<this.selectionContainers.length-1)this.selectionContainers=this.selectionContainers.slice(0,Y+1)}}this.notifySelectablesOfSelectionChange()}}requestSelectionUpdate(){if(this.currentSelection?.isDragging){let D=this._latestPointer,J=this.hitTest(D.x,D.y),K=ID.renderablesByNumber.get(J);this.updateSelection(K,D.x,D.y)}}isWithinContainer(D,J){let K=D;while(K){if(K===J)return!0;K=K.parent}return!1}finishSelection(){if(this.currentSelection)this.currentSelection.isDragging=!1,this.emit("selection",this.currentSelection),this.notifySelectablesOfSelectionChange()}notifySelectablesOfSelectionChange(){let D=[],J=[],K=this.selectionContainers.length>0?this.selectionContainers[this.selectionContainers.length-1]:this.root;if(this.currentSelection){this.walkSelectableRenderables(K,this.currentSelection.bounds,D,J);for(let Q of this.currentSelection.touchedRenderables)if(!J.includes(Q)&&!Q.isDestroyed)Q.onSelectionChanged(null);this.currentSelection.updateSelectedRenderables(D),this.currentSelection.updateTouchedRenderables(J)}}walkSelectableRenderables(D,J,K,Q){let X=q5(J,D.getChildrenSortedByPrimaryAxis(),D.primaryAxis,0,0);for(let Y of X){if(Y.selectable){if(Y.onSelectionChanged(this.currentSelection))K.push(Y);Q.push(Y)}if(Y.getChildrenCount()>0)this.walkSelectableRenderables(Y,J,K,Q)}}get paletteDetectionStatus(){if(this._paletteDetectionPromise)return"detecting";if(this._paletteCache.size>0)return"cached";return"idle"}getCachedPaletteBySize(D){let J=this._paletteCache.get(D);if(J)return J;let K=[...this._paletteCache.keys()].sort((Y,Z)=>Y-Z).find((Y)=>Y>=D);if(K===void 0)return null;let Q=this._paletteCache.get(K);if(!Q)return null;let X={...Q,palette:Q.palette.slice(0,D)};return this._paletteCache.set(D,X),X}ensurePaletteDetector(){if(!this._paletteDetector){let D=Boolean(this.capabilities?.in_tmux||this.capabilities?.terminal?.name?.toLowerCase()?.includes("tmux")),J=this.capabilities?.terminal?.name?.toLowerCase()?.includes("tmux")&&this.capabilities?.terminal?.version?.localeCompare("3.6")<0;this._paletteDetector=J2({stdin:this.stdin,stdout:this.stdout,writeFn:(K)=>this._isDestroyed?!1:this.writeOut(K),isLegacyTmux:J,isTmux:D,oscSource:{subscribeOsc:this.subscribeOsc.bind(this)},clock:this.clock})}return this._paletteDetector}syncNativePaletteState(D){let J=qX(D);if(this._nativePaletteSignature!==J)this._paletteEpoch=this._paletteEpoch+1>>>0;this._nativePaletteSignature=J;let K=mY(D);this.lib.rendererSetPaletteState(this.rendererPtr,K.palette,K.defaultForeground,K.defaultBackground,this._paletteEpoch)}emitPaletteChange(D){if(this.listenerCount("palette")===0)return;let J=qX(D);if(this._emittedPaletteSignature===J)return;this._emittedPaletteSignature=J,this.emit("palette",D)}resolveXtVersionWaiters(){if(this.xtVersionWaiters.size===0)return;let D=[...this.xtVersionWaiters];this.xtVersionWaiters.clear();for(let J of D)J()}waitForXtVersion(){if(this.capabilityTimeoutId===null||this._capabilities?.terminal?.from_xtversion)return Promise.resolve();return new Promise((D)=>{this.xtVersionWaiters.add(D)})}shouldSyncNativePaletteState(){return Boolean(this._terminalIsSetup&&!this._isDestroyed&&this._capabilities?.ansi256&&!this._capabilities?.rgb)}refreshPalette(){let D=this._palettePublishGeneration;this.getPalette({size:$Q}).then(()=>{if(this._isDestroyed)return;if(this._palettePublishGeneration===D)this.requestRender()}).catch(()=>{})}clearPaletteCache(){this._palettePublishGeneration++,this._paletteCache.clear()}async getPalette(D){if(this._controlState==="explicit_suspended")throw Error("Cannot detect palette while renderer is suspended");let J=D?.size??16,K=D?.timeout,Q=this.getCachedPaletteBySize(J);if(Q)return Q;let X=this._capabilities?.terminal,Y=X?.name?.toLowerCase()==="tmux"&&Boolean(X.version);if(this._capabilities?.in_tmux&&!Y){await this.waitForXtVersion();let V=this.getCachedPaletteBySize(J);if(V)return V}if(this._paletteDetectionPromise){if(this._paletteDetectionSize>=J)return this._paletteDetectionPromise.then((G)=>{let O=this.getCachedPaletteBySize(J);if(O)return O;let U={...G,palette:G.palette.slice(0,J)};return this._paletteCache.set(J,U),U});await this._paletteDetectionPromise;let V=this.getCachedPaletteBySize(J);if(V)return V}let Z=this.ensurePaletteDetector(),_=this._palettePublishGeneration;this._paletteDetectionSize=J,this._paletteDetectionPromise=Z.detect({...D,timeout:K}).then((V)=>{if(this._paletteCache.set(V.palette.length,V),this._paletteDetectionPromise=null,this._paletteDetectionSize=0,!this._isDestroyed&&this._palettePublishGeneration===_){if(this.emitPaletteChange(V),this.shouldSyncNativePaletteState()&&V.palette.length>=$Q)this.syncNativePaletteState(V);else if(this.shouldSyncNativePaletteState()&&!this._paletteCache.has($Q))this.refreshPalette()}return V}).catch((V)=>{throw this._paletteDetectionPromise=null,this._paletteDetectionSize=0,V});let L=await this._paletteDetectionPromise;return this.getCachedPaletteBySize(J)??L}}
|
|
63
|
+
export{aZ as gc,sZ as hc,FD as ic,J0 as jc,LQ as kc,YK as lc,o5 as mc,dK as nc,zJ as oc,K0 as pc,MK as qc,AY as rc,CQ as sc,FQ as tc,LY as uc,NY as vc,VY as wc,MY as xc,l as yc,YX as zc,NQ as Ac,n5 as Bc,t5 as Cc,c as Dc,V0 as Ec,e5 as Fc,H0 as Gc,lK as Hc,D6 as Ic,iD as Jc,J6 as Kc,U0 as Lc,K6 as Mc,j0 as Nc,O0 as Oc,_J as Pc,Q6 as Qc,X6 as Rc,Y6 as Sc,G0 as Tc,tD as Uc,aK as Vc,Z6 as Wc,_6 as Xc,$6 as Yc,A6 as Zc,L6 as _c,N6 as $c,V6 as ad,M6 as bd,H6 as cd,U6 as dd,j6 as ed,O6 as fd,W6 as gd,G6 as hd,k6 as id,P6 as jd,B6 as kd,C6 as ld,F6 as md,I6 as nd,w6 as od,z6 as pd,f6 as qd,q6 as rd,x6 as sd,T6 as td,S6 as ud,g6 as vd,y6 as wd,R6 as xd,h6 as yd,p6 as zd,E6 as Ad,b6 as Bd,c6 as Cd,v6 as Dd,iJ as Ed,x0 as Fd,m6 as Gd,$X as Hd,R0 as Id,h0 as Jd,AX as Kd,LX as Ld,u6 as Md,i6 as Nd,l6 as Od,a6 as Pd,s6 as Qd,NX as Rd,o6 as Sd,VX as Td,r6 as Ud,n6 as Vd,MX as Wd,HX as Xd,t6 as Yd,UX as Zd,jK as _d,PY as $d,BY as ae,p0 as be,$J as ce,AD as de,e6 as ee,D7 as fe,J7 as ge,XD as he,zY as ie,fY as je,Q7 as ke,CX as le,N7 as me,RY as ne,hY as oe,s1 as pe,o1 as qe,MQ as re,EY as se,n1 as te,j7 as ue,bY as ve,vY as we,t1 as xe,dY as ye,J2 as ze,mY as Ae,qX as Be,O7 as Ce,W7 as De,G7 as Ee,ED as Fe,fD as Ge,I7 as He,J5 as Ie,w7 as Je,bD as Ke,xQ as Le,Z5 as Me,_5 as Ne,fJ as Oe,FK as Pe,ID as Qe,bJ as Re,q7 as Se,A5 as Te,DY as Ue,GQ as Ve,kQ as We,x7 as Xe,SQ as Ye,sD as Ze,gQ as _e,N5 as $e,mJ as af,KZ as bf,yQ as cf,QZ as df,VK as ef,uJ as ff,YZ as gf,ZZ as hf,QY as if,XY as jf,XQ as kf,W5 as lf,YQ as mf,BQ as nf,B5 as of,NZ as pf,F5 as qf,MZ as rf,z5 as sf,lD as tf,q5 as uf,cJ as vf,i5 as wf,PD as xf,l5 as yf,c7 as zf,a5 as Af,s5 as Bf,pQ as Cf};
|