@techandsoftware/teletext
Advanced tools
Comparing version 0.13.4 to 0.14.0
// SPDX-FileCopyrightText: (c) 2023 Tech and Software Ltd. | ||
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-uk.ltd.TechAndSoftware-1.0 | ||
// LicenseRef-uk.ltd.TechAndSoftware-1.0 refers to https://tech-and-software.ltd.uk/LICENSES/LicenseRef-uk.ltd.TechAndSoftware-1.0.txt | ||
class t{static tt(t,i){const e=(t=t.replace(/-/g,"+").replace(/_/g,"/")).length%4;if(e){if(1===e)throw Error("Utils.decodeBase64URLEncoded E16: Input base64url string is the wrong length to determine padding");t+=Array(5-e).join("=")}const n=i(t),r=[];let h=[];for(const t of function*(t){let i=6,e=0;for(const n of t){const t=s(n.charCodeAt(0));for(const s of t)e|=s<<i,i--,i<0&&(yield e,i=6,e=0)}i<6&&(yield e)}(n))h.push(String.fromCharCode(t)),40==h.length&&(r.push(h.join("")),h=[]);return h.length<40&&r.push(h.join("")),r}static st(t){const s=[];let i=!1;for(const e of[...t]){const t=e.charCodeAt(0);27==t?i=!0:t>=128&&t<=159?(s.push(String.fromCharCode(t-128)),i=!1):t>=160?(s.push(""),i=!1):i?(s.push(String.fromCharCode(t-64)),i=!1):s.push(e)}return s}static it(s){const i=[],e=/^OL,(\d{1,2}),(.*)/;for(const n of[...s]){const s=n.match(e);null!=s&&(i[s[1]]=t.st(s[2]))}return i}static et(t){return-1!="ﻰﺋﺊﭼﭽﭘﭙﮔﻎﻼﻬﻪﻊﺔﺒﺘﺎﺑﺗﺛﺟﺣﺧﺳﺷﺻﺿﻃﻇﻋﻏﺜﺠﺤﺨـﻓﻗﻛﻟﻣﻧﻫﻰﻳﻴﻌﻐﻔﻘﻠﻤﻨ".indexOf(t)}}function s(t){let s=[];for(let i=7;i>=0;i--)s.push(t&1<<i?1:0);return s}const i={ENGINEERING:"QIECBAgQIIcWLGg2EDdy3QIKnXKgYtUE7f2QA2TB0wYr2DECAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAYMS54fzJmix4-YCDToOLOjyZ0WLSkzo6AkcGHuZUcRHlB4dgyAAQAEABAAQAEABAAQAEABAAQAEABAAQAEABAAQAEABAAWDP9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_YNCho9zImSoAqBGoAp0FUy8-iChhz5UCA4MPEuZYgTAFyAFg1_f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f2DYCAAoACACeQHkBdYTJlixIkSKlSJEoUKIEBQABAAQAEABYN_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_39g4AgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgGDn9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_YsAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIBix_f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f2LICAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAYs_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_39i0AgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgGLX9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_Ytq-jT0yg7OXZs39w0Pzh3Ao_LLl3BZuHPl3dMIGllyBIWzrlLmkKJGTSJUycsoUqlZJYtXLzLBiyZlWjVs3IuHLp2UePXz9AgQokaBIlTJ0ChSqVoFi1cvQMGLJmgaNWzdA4cunaB49fP0ECDChoIkWNHQSJMqWgmTZ09BQo0qaCpVrV0FizatoLl29fQYMOLGgyZc2dBo06taDZt3b0HDjy5oOnXt3QePPr2g-ff38pgw4sZHJlzZyujTq1ktm3dvNcOPLmW6de3cn48-vZf59_fwZiHv3Y8uHYIjbMPPQDVCxcLf4E0-mXDk8mI-_dlFCn5a9_DKr6q-qvqr6q-qvqr6AFS390DJoGQKr6q-qvqr6q-qvqr6o",ADVERT:"QIECBAgQIJ9KDDmRUDZi3QU8PRk1QQeHIHDaIEDJiwYumDACdDwcnbLy6aeeXbl3dECBAgQIECBAgQIECBAgQIHwZkvcoCx0og8LNGjYwQPEjzpoWaNjBA82YHnTQwabEjTpowPEiBAgLHSiBbs1atjFA9SPe2pZqQNUHX1qQatSlrqQNW-5UsaIECAsdKIFidUqQJUCVAlVKlipchQJUCJanVIEqpAlSqlC5CgQIEB0ogQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQHSKBAgQYEH7ogQaGCApw_fEm54R3PCm5JuSKHoFUEVIECAudIoECBB6-___TB-_v0JTU_WqkZHFyQKHmjYgYBECpAqQIC50igQIEH___3_-iD__6FFSAig-IP6JCg26lzRr3avEgFUgLnSKBAg1f1X9lv_9NSBAgI6G-HX1V_EqBUqQJUqXBzagVSAudIoECD9_Qa2qL__6IMDzoq682qdAgQIEARAgQIECBAgVIC50igQIP_9AiaoFX__0VfV_1kjQIECBAgQBECBAgAoECpAgLnSKBBq__0CBCgQa___oreokCBAgQIECBAgQBECBAgVIECAudIoEHr__QIECBAg3_36FAgQIECBAgQIECAIgQIFSBAgQIAZ0igQf_7dAgKIECAinKf9bTR9QIv-N6i_ofzNagQIECBAgJnSKDR__tUBRAoe6NiBB_XYf_rqg_q2iD-gRb-iBAgQIECAmdIoNX_-1QFECDrq9IMH9h664P_D-w34P7DZ4ToECBAgQICZ0ig___5TQ8SfEHzQ82MPCzpoedEHzA82MPjDQ0-LNDSk0JnSOD___lNXVh_Qf9T3cx_oP-prqa_1S3Y0_q_zX-s1NdTUmdI6v_9-U1NUH9B_1NdTX-g_6mvpL_wMNTX-g1Nf6DAz1tSZ0j-_v0JREjQokaFEhRIUSNCiRoUCNAjRoEaBEhRo0CNGgBnSP9OgQFECCNPpIIVKfDkVaUWmggzoiCFPny5M6PTQIECAGdIjUAGlJnR0DBu5coGrFm0YMEE-kgpxYqChBjxUDNuwQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy92np007s6AFSy9tOXvzQA7O_ryQTd-7L5DQVtpBJ3ZMvg",UK:"QIECBAgQIIcWLGg2EDFy2QIJu_cgZNUETLjQA2TN0xYr2DAodJIECBAgQIEGDB4_PUCBAgQIECBAgQIECBAgQIEANkvaMih0kgQIECDA1Qfv__OgQYGCBAgQIECBAgQIECBAgQIECBAgKHSSBAgQIH6FR-__-v7___oECBAgQIEAORPmxUE6LXpoECAodJIECBAoQKum7______9-gQIECBAgQA82_Zs39-aB8-QIAh0kgQIECBAgSev_____v06BAgQIECBAgQIECBAgQIECBAgKHSSBAgQIECBR00____-_w9GCBAgQIECBAgQIECBAgQIECAodJIECBAgQIECD8rx________ECBAgQIECBAgQIECBAgQICh0kgQIECBAgQLETRlv_______6oECBAgQIECBAgQIECBAgKHSyBAgQIHGQlwYIEH_-_x_____9-dECBAgQIECBAgQIECAIdLIECDAmJbfz_-0RJ0qBV________7sECBAgQIECBAgQIAh0sgQIMzAl-__fX5Sg0JECvX______586IECBAgQIECBAgCHSyBAgwJiW9OjX_0qBAgQIEX________-l8fPjBAgQIECAIdLIEHBYhQIECBQxQICWDhg5fv____________tUCBAgQIAh0sgzIECBAgQIEGlAgQEtP_______________-lQIECBAgCHSyBUwQIECBAgQakCBASQqv_____________-6FAgQIECAIdLIECJygQIECBAgaoEBJBg______________5-OiBAgQIAh0sgQKGKBAgQIEHBKgJIMH7____8v__________QoECBAgCHSyBRmQIECBA4RoECAkgVoVaNel________r16FAgQIECAIdLINCFAgwOEyBAgQICSBAgQePn7___r06RAgQIECBAgQIAh0sgQLeKxCgQIECBAgJIECDR__v0aNGhQIECBAgQIECBAgCHSSBAgQIECBAgQIECBAgQYP3_-1QIECBAgQIECBAgQIECAIdJIECBAgQIECBAgQIECBB6boUSBAgQIECBAgQIECBAgQIAh0kgQIECBAgQIECBAgQIFStAgQIECBAgQIECBAgQIECBAgAzsvjognZe_MFIy4cmzTuy8wdTfwQU-G_l0DVKy-lhyad6A",SPLASH:"QIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECAsaMIEGDx8YIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQICxowg0N2bdmgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgLGjCBFvz9_6BAZQIECBAgQIECAig0NECBAgQIECBAgQIECAsaMcOD5tjyoGCBAgQIECBAgQICLhCgQIECBAgQIECBAgQICxowoTod79ArSEcHBAgQIECBAg0ITKBAgQcGCBAgQIECBAgLGjCBBgXIUCAyRXmlLBAgQIECBuZ4fPn___aoECBAgQIECBAaQIECBAgQIEBFAgQaTPDh8-f___-vXo9f9qgQIECBAgQIECBAgQIEBFAgQcOHz5____69ejRoECBAg__0CBAgQIECBAgQIECBAgQEUCL___r16NGXQIOHDh8-NCOD-3QIECBAgQIECBAgQIECBARQINf0ug-fPi9evRo0aBAgI6v6VAgQIECBAgQIECBAgQIEBFAgRf2hfBw4cOHD58-fPiAj-_oECBAgQIECBAgQIECBAgQEUCBBr-l0SNGjRo0CBAgQEcH9qgQIECBAgQIECBAgQIECBARQIECL-0Lr169ev-fPnxAR1f0KBAgQIECBAgQIAiBAgQIEBFAgQINf3hw4cOCBAgQIEBH-_QIECBAgQIECBAgCIECBAgQIEB1ARRL1-_____________7VAgOIECBAgQIECAIgQIECBAgQHUBNAgQf26BAgQIN_8ijRoECA4gQIECBAgQIAiBAgQIECA6gQE0CDV_QoECBAgRf2iBAgQIEBxAgQIECBAgCIECBAgQIDqBAgQE0aFAgQIECBAgQIECBAgQHECBAgQIECAIgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIBp0Kg3cNqDSggdMuPRh3ZOe_N074eWVf0y7MvTL46IECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQKMalAyYMmaCplx6ECZBT35unfDyyoJnTIuQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECA"},e="http://www.w3.org/2000/svg";let n,r,h=0;class _{constructor(){}nt(){return this.rt}ht(){this.rt=null}_t(t,s){if("object"==typeof t)for(const s in t)null==t[s]?this.rt.removeAttribute(s):this.rt.setAttribute(s,t[s]);else{if(void 0===s)return this.rt.getAttribute(t);null==s?this.rt.removeAttribute(t):this.rt.setAttribute(t,s)}return this}ot(t){if(!this.lt(t)){const s=this.At();s.push(t),this.rt.setAttribute("class",s.join(" "))}return this}lt(t){return-1!==this.At().indexOf(t)}At(){const t=this.rt.getAttribute("class");return null==t?[]:t.split(" ")}gt(t){return this.lt(t)&&this.rt.setAttribute("class",this.At().filter((s=>s!==t)).join(" ")),this}ct(t){return this.lt(t)?this.gt(t):this.ot(t),this}ut(t,s){if("object"==typeof t)for(const s in t)null==t[s]?delete this.rt.dataset[s]:this.rt.dataset[s]=t[s];else{if(void 0===s)return this.rt.dataset[t];null==s?delete this.rt.dataset[t]:this.rt.dataset[t]=s}return this}}class o extends _{constructor(t){return super(),n=t,r=n.document,this.rt=r.createElementNS(e,"svg"),this.rt.setAttribute("xmlns",e),this}Ct(t){const s=r.querySelector(t);if(!s)throw Error("@techandsoftware/teletext: E117: addTo failed to match provided selector");return s.appendChild(this.rt),this}Et(t){return this.rt.setAttribute("viewBox",t),this}It(t,s){return this.rt.setAttribute("width",t),this.rt.setAttribute("height",s),this}Bt(t){const s=r.createElementNS(e,"style");return s.append(t),this.rt.append(s),this}ft(){const t=new l;return this.rt.append(t.nt()),t}Qt(){return this.rt.clientWidth}dt(){return this.rt.clientHeight}bt(t){const s=new c(t);return this.rt.append(s.nt()),s}}class l extends _{constructor(){return super(),this.rt=r.createElementNS(e,"g"),this.yt=[],this}ft(){const t=new l;return this.rt.append(t.nt()),this.yt.push(t),t}wt(t){const s=new u(t);return this.rt.append(s.nt()),this.yt.push(s),s}xt(){const t=new C;return this.rt.append(t.nt()),t}St(t,s){const i=new I(t,s);return this.rt.append(i.nt()),this.yt.push(i),i}vt(){return this.yt[this.yt.length-1]}Ut(){return this.yt}kt(t){return this.rt.setAttribute("clip-path",`url("#${t.nt().id}")`),this}Rt(){return this.rt.removeAttribute("clip-path"),this}Dt(){this.rt.parentNode&&this.rt.parentNode.removeChild(this.rt),this.rt=null,this.yt.forEach((t=>t.ht())),this.yt=[]}Ft(t,s,i,e){const n=new B(t,s,i,e);return this.rt.append(n.nt()),this.yt.push(n),n}Gt(t){const s=new g(t);return this.rt.append(s.nt()),this.yt.push(s),s}Lt(t,s){const i=new A(t,s);return this.rt.append(i.nt()),this.yt.push(i),i}Ht(t,s){const i=new a(t,s);return this.rt.append(i.nt()),this.yt.push(i),i}}class a extends _{constructor(){return super(),this.rt=r.createElementNS(e,"svg"),this}attr(...t){return this._t(...t)}get node(){return this.nt()}}class A extends _{constructor(t,s){return super(),this.rt=r.createElementNS(e,"image"),this.rt.setAttribute("width",parseInt(t)),this.rt.setAttribute("height",parseInt(s)),this}attr(...t){return this._t(...t)}}class g extends _{constructor(t){return super(),this.rt=r.createElementNS(e,"use"),this.rt.setAttribute("href","#"+t),this}Nt(t){return this.rt.setAttribute("fill",t),this}jt(t,s){return this.rt.setAttribute("x",t),this.rt.setAttribute("y",s),this}}class c extends _{constructor(t){return super(),this.rt=r.createElementNS(e,"symbol"),this.rt.setAttribute("id",t),this}St(t,s){const i=new I(t,s);return this.rt.append(i.nt()),i}}class u extends _{constructor(t){return super(),this.rt=r.createElementNS(e,"text"),this.rt.append(t),this}wt(t){return this.rt.textContent=t,this}Nt(t){return this.rt.setAttribute("fill",t),this}}class C extends _{constructor(){return super(),this.rt=r.createElementNS(e,"defs"),this}Ot(){const t=new E;return this.rt.append(t.nt()),t}Pt(t){return[...this.rt.querySelectorAll(t)].map(f)}St(t,s){const i=new I(t,s);return this.rt.append(i.nt()),i}}class E extends _{constructor(){return super(),this.rt=r.createElementNS(e,"clipPath"),this.rt.setAttribute("id","clipPath-"+h),h++,this}Ut(){return[...this.rt.children].map(f)}qt(t){this.rt.appendChild(t.nt())}}class I extends _{constructor(t,s){if(super(),t instanceof n.SVGElement)return this.rt=t,this;const i=t;return this.rt=r.createElementNS(e,"rect"),this.rt.setAttribute("width",parseInt(i)),this.rt.setAttribute("height",parseInt(s)),this}Nt(t){return this.rt.setAttribute("fill",t),this}jt(t,s){return this.rt.setAttribute("x",t),this.rt.setAttribute("y",s),this}Qt(t){return void 0===t?parseInt(this.rt.getAttribute("width")):(this.rt.setAttribute("width",parseInt(t)),this)}dt(t){return void 0===t?parseInt(this.rt.getAttribute("height")):(this.rt.setAttribute("height",parseInt(t)),this)}Dt(){this.rt.parentNode&&this.rt.parentNode.removeChild(this.rt),this.rt=null}}class B extends _{constructor(t,s,i,n){return super(),this.rt=r.createElementNS(e,"line"),this.rt.setAttribute("x1",t),this.rt.setAttribute("y1",s),this.rt.setAttribute("x2",i),this.rt.setAttribute("y2",n),this}}function f(t){let s;if("SVGRectElement"!==t.constructor.name)throw Error("SVG:wrapSVGElement Unable to wrap SVG element of type "+t.constructor.name);return s=new I(t),s}const Q={BLACK:Symbol(),RED:Symbol(),GREEN:Symbol(),YELLOW:Symbol(),BLUE:Symbol(),MAGENTA:Symbol(),CYAN:Symbol(),WHITE:Symbol()};Object.freeze(Q);const d={Mt:Symbol(),Tt:Symbol(),zt:Symbol(),Jt:Symbol()};Object.freeze(d);const p={Vt:Symbol(),Yt:Symbol(),Kt:Symbol(),Zt:Symbol()};Object.freeze(p);class b{static charFromTextColour(t){if(t in v)return v[t];throw Error("Attributes.charFromTextColour: bad colour: "+t)}static charFromGraphicColour(t){if(t in U)return U[t];throw Error("Attributes.charFromGraphicColour: bad colour")}static charFromAttribute(t){if(t in k)return k[t];throw Error("Attributes.charFromAttribute: bad attribute")}}function y(t){return m[t]}b.TEXT_COLOUR=d.Mt,b.MOSAIC_COLOUR=Symbol(),b.NEW_BACKGROUND=Symbol(),b.BLACK_BACKGROUND=Symbol(),b.CONTIGUOUS_GRAPHICS=d.Tt,b.SEPARATED_GRAPHICS=d.zt,b.ESC=Symbol(),b.FLASH=Symbol(),b.STEADY=Symbol(),b.NORMAL_SIZE=p.Vt,b.DOUBLE_HEIGHT=p.Yt,b.DOUBLE_WIDTH=p.Kt,b.DOUBLE_SIZE=p.Zt,b.CONCEAL=Symbol(),b.HOLD_MOSAICS=Symbol(),b.RELEASE_MOSAICS=Symbol(),b.START_BOX=Symbol(),b.END_BOX=Symbol(),b.Xt=Symbol();const m={[Q.BLACK]:"#000",[Q.RED]:"#f00",[Q.GREEN]:"#0f0",[Q.YELLOW]:"#ff0",[Q.BLUE]:"#00f",[Q.MAGENTA]:"#f0f",[Q.CYAN]:"#0ff",[Q.WHITE]:"#fff"};Object.freeze(m);const w={"\0":Q.BLACK,"":Q.RED,"":Q.GREEN,"":Q.YELLOW,"":Q.BLUE,"":Q.MAGENTA,"":Q.CYAN,"":Q.WHITE};Object.freeze(w);const x={"":Q.BLACK,"":Q.RED,"":Q.GREEN,"":Q.YELLOW,"":Q.BLUE,"":Q.MAGENTA,"":Q.CYAN,"":Q.WHITE};Object.freeze(x);const S={"\b":b.FLASH,"\t":b.STEADY,"\n":b.END_BOX,"\v":b.START_BOX,"\f":b.NORMAL_SIZE,"\r":b.DOUBLE_HEIGHT,"":b.DOUBLE_WIDTH,"":b.DOUBLE_SIZE,"":b.CONCEAL,"":b.CONTIGUOUS_GRAPHICS,"":b.SEPARATED_GRAPHICS,"":b.ESC,"":b.BLACK_BACKGROUND,"":b.NEW_BACKGROUND,"":b.HOLD_MOSAICS,"":b.RELEASE_MOSAICS},v={};for(const t in w)v[w[t]]=t,S[t]=w[t];Object.freeze(v);const U={};for(const t in x)U[x[t]]=t,S[t]=x[t];Object.freeze(U),Object.freeze(S);const k={};for(const t in S)k[S[t]]=t;Object.freeze(k);const R={0:Symbol(),1:Symbol(),1.5:Symbol(),2.5:Symbol()};Object.freeze(R);const D={};D[R[0]]=[1,2,3,4,5,6,7,8,9,17,18,19,20,21,22,23],D[R[1]]=[...D[R[0]]].concat([10,11,12,13,24,25,26,27,28,29,30,31]),D[R[1.5]]=[...D[R[1]]].concat([0,16]),D[R[2.5]]=[...D[R[1.5]]].concat([14,15]),Object.freeze(D);const F=10,G=10,L={Wt:{$t:10.4,ts:-5.2},ss:{$t:G,ts:-4.5}};Object.freeze(L);class H{constructor(t,s){this.es=new o(s).Et("0 0 400 250").It(600,500)._t({preserveAspectRatio:"none",style:"font-family: sans-serif"}).Bt("@font-face {\nfont-family: 'Unscii';\nsrc: url('fonts/unscii-16.woff') format('woff'), \nurl('fonts/unscii-16.ttf') format('truetype'),\nurl('fonts/unscii-16.otf') format('opentype');\nunicode-range: U+0000-00FF, U+2022, U+2500, U+2502, U+250C, U+2510, U+2514, U+2518, U+251C, U+251D, U+2524, U+2525, U+252C, U+252F, U+2534, U+2537, U+253C, U+253F, U+2588, U+258C, U+2590, U+2592, U+25CB, U+25CF, U+25E2-25E5, U+2B60-2B63, U+E0C0-E0FF, U+1FB00-1FB70, U+1FB75, U+1FBA0-1FBA7;\n-webkit-font-smoothing: none;\nfont-smooth: never;\n}\n@font-face {\nfont-family: 'Bedstead';\nsrc: url('fonts/bedstead.otf') format('opentype');\nunicode-range: U+0000-00FF;\n}\n@keyframes blink {\nto {\nvisibility: hidden;\n}\n}\n@keyframes fancyblink {\nfrom {\nfilter: none;\nopacity: 0.7;\n}\n33% {\nfilter: none;\nopacity: 1;\n}\n66% {\nfilter: blur(0px);\nopacity: 1;\n}\n95% {\nfilter: blur(4px);\nopacity: 0;\n}\nto {\nfilter: blur(0px);\nopacity: 0;\n}\n}\n#textlayer {\nfont-size: 10px;\n}\n.mosaic {\nfont-family: 'Unscii';\nfont-size: 10.3px;\n}\n.mosaic_separated {\nfont-family: 'Unscii';\nfont-size: 10px;\n}\n.flash_flashing .flash {\n/* animation: blink 2s steps(3, start) infinite; */\nanimation: fancyblink 2s linear infinite;\n}\n.conceal_concealed .conceal {\nvisibility: hidden;\n}\nsvg #background {\ntransition-property: opacity;\ntransition-duration: 0.25s;\n}\nsvg {\nbackground-color: transparent;\n}\nsvg use {\nshape-rendering: crispEdges;\n}\nrect { color: orange; }\n"),this.d=this.es.ft()._t("class","conceal_concealed flash_flashing"),this.ns=1.2,this.rs(),this.hs(),this._s=null,this.os=t,this.ls=this.os.gs.As((()=>this.cs())),this.us=!1,this.Cs=!1,this.Es=!1,this.Is={}}Ct(t){this.es.Ct(t)}Bs(){this.os.gs.Bs(this.ls),this.ls=null}cs(){let t=!1,s=!1;this.Es=!1,this.d.gt("flash_flashing"),this.fs.forEach(((i,e)=>{let n=!1;if(this.Qs(e),t)return t=!1,void this.ds(i,e);const r=this.os.ps(e);let h,_;i.forEach(((t,i)=>{if(n)return n=!1,this.bs(t),this.ys(e),void(_&&this.ws());const o=r.xs(i),l=y(o.Ss),a=o.vs(),A=y(o.Us),g=this.ks(o.Rs,a,o.et);this.Ds(t,o,g,A,i,e,a),o.Fs&&(_?this.ws():this.Gs(e,i),this.Es=!0),h==l?this.ys(e):this.Ls(e,i,l),o.It!=p.Kt&&o.It!=p.Zt||(n=!0),h=l,_=o.Fs,o.Hs&&(s=!0)})),r.Ns?(this.js(e),this.Os(),t=!0):t=!1,this.Ps(e)})),"qs"in this.Is&&this.Is.qs(this.es.Qt(),this.es.dt()),this.d.ot("conceal_concealed"),s&&setTimeout((()=>this.d.ot("flash_flashing")),100),this.Ms()}Qs(t){this.Ts(t),this.zs(t)}ds(t,s){"Js"in this.Is&&this.Is.Js(t.length,s),t.forEach((t=>this.bs(t)))}bs(t){t.wt(" ")._t({dx:null,dy:null,textLength:null,lengthAdjust:null,"text-anchor":null,transform:null,class:null})}Ds(t,s,i,e,n,r,h){this.Vs(t,s,i,e,n,r),s.Rs==d.Tt&&h||s.Rs==d.Jt?t.ot("mosaic"):s.Rs==d.zt&&h&&t.ot("mosaic_separated")}Vs(t,s,i,e,n,r){t.wt(s.Ys)._t(i).Nt(e),s.It==p.Yt?t._t("transform",`translate(0 ${M(r)}) scale(1 2)`):s.It==p.Kt?t._t("transform",`translate(${T(n)} 0) scale(2 1)`):s.It==p.Zt&&t._t("transform",`translate(${T(n)} ${M(r)}) scale(2 2)`),s.Hs&&t.ot("flash"),s.Ks&&t.ot("conceal")}Zs(){this.d.ct("conceal_concealed")}Xs(t){let s=t;"native"==t?s='-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif':"default"==t&&(s="sans-serif"),this.es._t("style","font-family: "+s)}Ws(){this._s?(this._s.Dt(),this._s=null):this.$s()}ti(){this.Cs?(this.Cs=!1,this.si._t("opacity",null).Rt()):(this.Cs=!0,this.ii())}ei(t){this.ns=t,this.ni(this.es.dt())}ni(t){this.es.It("natural"==this.ns?1.6*t:t*this.ns,t)}ii(){this.us&&this.Es?this.si._t("opacity",.3):this.Es?this.si.kt(this.ri)._t("opacity",.3):this.si._t("opacity",0)}Ms(){this.Cs&&this.ii()}hi(){this.us?(this.d.Rt(),this.us=!1):(this.d.kt(this.ri),this.us=!0),this.Ms()}$s(){this._s=this.d.ft();for(let t=0;t<25;t++)this._s.Ft(0,t*F,399,t*F)._t({stroke:"#555","stroke-width":.5});for(let t=0;t<40;t++)this._s.Ft(t*G,0,t*G,249)._t({stroke:"#555","stroke-width":.5})}hs(){this._i=this.d.xt(),this.oi=null,this.ri=this._i.Ot()}rs(){this.li(),this.ai()}li(){const t=this.d.ft();t._t({"shape-rendering":"crispEdges",id:"background"}),this.Ai=[],this.si=t}ai(){const t=[],s=this.d.ft()._t({"text-anchor":"middle",fill:"#fff"})._t("id","textlayer");for(let i=0;i<25;i++){const e=[];for(let t=0;t<40;t++)e.push(s.wt(String.fromCharCode(32+95*Math.random()))._t({x:t*G+5,y:i*F+8}));t.push(e)}this.fs=t,this.gi=s}zs(t){this.ri.Ut().filter((s=>s.ut("r")==t)).forEach((t=>t.Dt()))}Ts(t){this.Ai[t]&&this.Ai[t].Dt(),this.Ai[t]=this.si.ft()}ys(t){const s=this.Ai[t].vt(),i=s.Qt();s.Qt(i+G)}Ls(t,s,i){const e=s*G,n=t*F;this.Ai[t].St(G,F).Nt(i).jt(e,n)}ws(){const t=this.oi.Qt();this.oi.Qt(t+G)}js(t){this.Ai[t].Ut().forEach((t=>t._t("height",20)))}Os(){this._i.Pt("[data-boxbuffer]").forEach((t=>t.dt(20)))}Gs(t,s){const i=s*G,e=t*F;this.oi=this._i.St(G,F).ut("boxbuffer",!0).jt(i,e)}Ps(t){this._i.Pt("[data-boxbuffer]").forEach((s=>{s.ut({r:t,boxbuffer:null}),this.ri.qt(s)}))}ks(t,s,i){return t==d.Tt&&s||t==d.Jt?{dx:L.Wt.ts,dy:-.15,textLength:L.Wt.$t,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:t==d.zt&&s?{dx:L.ss.ts,dy:null,textLength:L.ss.$t,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:{dx:null,dy:null,textLength:i?G:null,lengthAdjust:i?"spacingAndGlyphs":null,"text-anchor":null,transform:null,class:null}}registerPlugin(t,s){return"renderBackground"in s&&(this.Is.ci=s.renderBackground),"renderMosaic"in s&&(this.Is.ui=s.renderMosaic),"endOfPageUpdate"in s&&(this.Is.qs=s.endOfPageUpdate),"clearCellsForRow"in s&&(this.Is.Js=s.clearCellsForRow),{lookupColour:N,isDoubleHeight:j,isDoubleWidth:O,isDoubleSize:P,isSeparatedMosaic:q,createImageOverlay:this.Ci.bind(this),createSVGOverlay:this.Ei.bind(this)}}Ci(){const t=this.d.Lt(400,250);return t._t("preserveAspectRatio","none"),t}Ei(){const t=this.d.Ht();return t._t("preserveAspectRatio","none"),t}}H.Ii=G,H.Bi=F,H.fi=20,H.Qi=20,H.di=400,H.pi=250,H.bi=L,H.ROWS=25,H.COLS=40;const N=t=>y(t),j=t=>t==p.Yt,O=t=>t==p.Kt,P=t=>t==p.Zt,q=t=>t==d.zt,M=t=>0-t*F,T=t=>0-t*G,z={g0_latin:{$:"¤","":"■"},g0_latin__czech_slovak:{"#":"#",$:"ů","@":"č","[":"ť","\\":"ž","]":"ý","^":"í",_:"ř","`":"é","{":"á","|":"|","}":"ú","~":"š"},g0_latin__english:{"#":"£",$:"$","@":"@","[":"←","\\":"½","]":"→","^":"↑",_:"#","`":"—","{":"¼","|":"‖","}":"¾","~":"÷"},g0_latin__estonian:{"#":"#",$:"õ","@":"Š","[":"Ä","\\":"Ö","]":"Ž","^":"Ü",_:"Õ","`":"š","{":"ä","|":"ö","}":"ž","~":"ü"},g0_latin__french:{"#":"é",$:"ï","@":"à","[":"ë","\\":"ê","]":"ù","^":"î",_:"#","`":"è","{":"â","|":"ô","}":"û","~":"ç"},g0_latin__german:{"#":"#",$:"$","@":"§","[":"Ä","\\":"Ö","]":"Ü","^":"^",_:"_","`":"°","{":"ä","|":"ö","}":"ü","~":"ß"},g0_latin__italian:{"#":"£",$:"$","@":"é","[":"°","\\":"ç","]":"→","^":"↑",_:"#","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},g0_latin__latvian_lithuanian:{"#":"#",$:"$","@":"Š","[":"ė","\\":"ę","]":"Ž","^":"č",_:"ū","`":"š","{":"ą","|":"ų","}":"ž","~":"į"},g0_latin__polish:{"#":"#",$:"ń","@":"ą","[":"Ƶ","\\":"Ś","]":"Ł","^":"ć",_:"ó","`":"ę","{":"ż","|":"ś","}":"ł","~":"ź"},g0_latin__portuguese_spanish:{"#":"ç",$:"$","@":"¡","[":"á","\\":"é","]":"í","^":"ó",_:"ú","`":"¿","{":"ü","|":"ñ","}":"è","~":"à"},g0_latin__romanian:{"#":"#",$:"¤","@":"Ț","[":"Â","\\":"Ș","]":"Ă","^":"Î",_:"ı","`":"ț","{":"â","|":"ș","}":"ă","~":"î"},g0_latin__serbian_croatian_slovenian:{"#":"#",$:"Ë","@":"Č","[":"Ć","\\":"Ž","]":"Đ","^":"Š",_:"ë","`":"č","{":"ć","|":"ž","}":"đ","~":"š"},g0_latin__swedish_finnish_hungarian:{"#":"#",$:"¤","@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü",_:"_","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},g0_latin__turkish:{"#":"₺",$:"ğ","@":"İ","[":"Ş","\\":"Ö","]":"Ç","^":"Ü",_:"Ğ","`":"ı","{":"ş","|":"ö","}":"ç","~":"ü"},g2_latin:{0:"°",1:"±",2:"²",3:"³",4:"×",5:"µ",6:"¶",7:"·",8:"÷",9:"’","!":"¡",'"':"¢","#":"£","%":"¥","&":"#","'":"§","(":"¤",")":"‘","*":"“","+":"«",",":"←","-":"↑",".":"→","/":"↓",":":"”",";":"»","<":"¼","=":"½",">":"¾","?":"¿","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"—",Q:"¹",R:"®",S:"©",T:"™",U:"♪",V:"₠",W:"‰",X:"α",Y:null,Z:null,"[":null,"\\":"⅛","]":"⅜","^":"⅝",_:"⅞","`":"Ω",a:"Æ",b:"Ð",c:"ª",d:"Ħ",e:null,f:"IJ",g:"Ŀ",h:"Ł",i:"Ø",j:"Œ",k:"º",l:"Þ",m:"Ŧ",n:"Ŋ",o:"ʼn",p:"ĸ",q:"æ",r:"đ",s:"ð",t:"ħ",u:"ı",v:"ij",w:"ŀ",x:"ł",y:"ø",z:"œ","{":"ß","|":"þ","}":"ŧ","~":"ŋ","":"■"},g0_greek:{"<":"«",">":"»","@":"ΐ",A:"Α",B:"Β",C:"Γ",D:"Δ",E:"Ε",F:"Ζ",G:"Η",H:"Θ",I:"Ι",J:"Κ",K:"Λ",L:"Μ",M:"Ν",N:"Ξ",O:"Ο",P:"Π",Q:"Ρ",R:"ʹ",S:"Σ",T:"Τ",U:"Υ",V:"Φ",W:"Χ",X:"Ψ",Y:"Ω",Z:"Ϊ","[":"Ϋ","\\":"ά","]":"έ","^":"ή",_:"ί","`":"ΰ",a:"α",b:"β",c:"γ",d:"δ",e:"ε",f:"ζ",g:"η",h:"θ",i:"ι",j:"κ",k:"λ",l:"μ",m:"ν",n:"ξ",o:"ο",p:"π",q:"ρ",r:"ς",s:"σ",t:"τ",u:"υ",v:"φ",w:"χ",x:"ψ",y:"ω",z:"ϊ","{":"ϋ","|":"ό","}":"ύ","~":"ώ","":"■"},g2_greek:{0:"°",1:"±",2:"²",3:"³",4:"×",5:"m",6:"n",7:"p",8:"÷",9:"’","!":"a",'"':"b","#":"£",$:"e","%":"h","&":"i","'":"§","(":":",")":"‘","*":"“","+":"k",",":"←","-":"↑",".":"→","/":"↓",":":"”",";":"t","<":"¼","=":"½",">":"¾","?":"x","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"?",Q:"¹",R:"®",S:"©",T:"™",U:"♪",V:"₠",W:"‰",X:"ɑ",Y:"Ί",Z:"Ύ","[":"Ώ","\\":"⅛","]":"⅜","^":"⅝",_:"⅞","`":"C",a:"D",b:"F",c:"G",d:"J",e:"L",f:"Q",g:"R",h:"S",i:"U",j:"V",k:"W",l:"Y",m:"Z",n:"Ά",o:"Ή",p:"c",q:"d",r:"f",s:"g",t:"j",u:"l",v:"q",w:"r",x:"s",y:"u",z:"v","{":"w","|":"y","}":"z","~":"Έ","":"■"},g0_cyrillic:{"@":"Ю",A:"А",B:"Б",C:"Ц",D:"Д",E:"Е",F:"Ф",G:"Г",H:"Х",I:"И",J:"Ѝ",K:"К",L:"Л",M:"М",N:"Н",O:"О",P:"П",Q:"Я",R:"Р",S:"С",T:"Т",U:"У",V:"Ж",W:"В",X:"Ь",Z:"З","[":"Ш","]":"Щ","^":"Ч","`":"ю",a:"а",b:"б",c:"ц",d:"д",e:"е",f:"ф",g:"г",h:"х",i:"и",j:"ѝ",k:"к",l:"л",m:"м",n:"н",o:"о",p:"п",q:"я",r:"р",s:"с",t:"т",u:"у",v:"ж",w:"в",x:"ь",z:"з","{":"ш","}":"щ","~":"ч","":"■"},g0_cyrillic__russian_bulgarian:{"&":"ы",Y:"Ъ","\\":"Э",_:"Ы",y:"ъ","|":"э"},g0_cyrillic__serbian_croatian:{"@":"Ч",J:"Ј",Q:"Ќ",V:"В",W:"Ѓ",X:"Љ",Y:"Њ","[":"Ћ","\\":"Ж","]":"Ђ","^":"Ш",_:"Џ","`":"ч",j:"ј",q:"ќ",v:"в",w:"ѓ",x:"љ",y:"њ","{":"ћ","|":"ж","}":"ђ","~":"ш"},g0_cyrillic__ukranian:{"&":"ї",Y:"І","\\":"Є",_:"Ї",y:"і","|":"є"},g2_cyrillic:{0:"m",1:"n",2:"p",3:"t",4:"x",5:"x",6:"°",7:"±",8:"²",9:"³","!":"a",'"':"b","#":"£",$:"e","%":"h","&":"i","'":"§","(":":",")":"‘","*":"“","+":"k",",":"←","-":"↑",".":"→","/":"↓",":":"¼",";":"½","<":"¾","=":"÷",">":"’","?":"”","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"?",Q:"©",R:"®",S:"¹",T:"ɑ",U:"Ί",V:"Ύ",W:"Ώ",X:"‰",Y:"₠",Z:"™","[":"⅛","\\":"⅜","]":"⅝","^":"⅞",_:"♪","`":"C",a:"D",b:"F",c:"G",d:"J",e:"L",f:"Q",g:"R",h:"S",i:"U",j:"V",k:"W",l:"Y",m:"Z",n:"Ά",o:"Ή",p:"c",q:"d",r:"f",s:"g",t:"j",u:"l",v:"q",w:"r",x:"s",y:"u",z:"v","{":"w","|":"y","}":"z","~":"Έ","":"■"},g0_arabic:{"#":"£","&":"ﻰ","'":"ﻱ","(":")",")":"(",";":"؛","<":">",">":"<","?":"؟","@":"ﺔ",A:"ﺀ",B:"ﺒ",C:"ﺏ",D:"ﺘ",E:"ﺕ",F:"ﺎ",G:"ﺍ",H:"ﺑ",I:"ﺓ",J:"ﺗ",K:"ﺛ",L:"ﺟ",M:"ﺣ",N:"ﺧ",O:"ﺩ",P:"ﺫ",Q:"ﺭ",R:"ﺯ",S:"ﺳ",T:"ﺷ",U:"ﺻ",V:"ﺿ",W:"ﻃ",X:"ﻇ",Y:"ﻋ",Z:"ﻏ","[":"ﺜ","\\":"ﺠ","]":"ﺤ","^":"ﺨ",_:"#","`":"ـ",a:"ﻓ",b:"ﻗ",c:"ﻛ",d:"ﻟ",e:"ﻣ",f:"ﻧ",g:"ﻫ",h:"ﻭ",i:"ﻰ",j:"ﻳ",k:"ﺙ",l:"ﺝ",m:"ﺡ",n:"ﺥ",o:"ﻴ",p:"ﻯ",q:"ﻌ",r:"ﻐ",s:"ﻔ",t:"ﻑ",u:"ﻘ",v:"ﻕ",w:"ﻙ",x:"ﻠ",y:"ﻝ",z:"ﻤ","{":"ﻡ","|":"ﻨ","}":"ﻥ","~":"ﻻ","":"■"},g2_arabic:{0:"٠",1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩","!":"ﻉ",'"':"ﺁ","#":"ﺃ",$:"ﺅ","%":"ﺇ","&":"ﺋ","'":"ﺊ","(":"ﭼ",")":"ﭽ","*":"ﭺ","+":"ﭘ",",":"ﭙ","-":"ﭖ",".":"ﮊ","/":"ﮔ",":":"ﻎ",";":"ﻍ","<":"ﻼ","=":"ﻬ",">":"ﻪ","?":"ﻩ","@":"à","[":"ë","\\":"ê","]":"ù","^":"î",_:"ﻊ","`":"é","{":"â","|":"ô","}":"û","~":"ç","":"■"},g0_hebrew:{"#":"£","[":"←","\\":"½","]":"→","^":"↑",_:"#","`":"א",a:"ב",b:"ג",c:"ד",d:"ה",e:"ו",f:"ז",g:"ח",h:"ט",i:"י",j:"ך",k:"כ",l:"ל",m:"ם",n:"מ",o:"ן",p:"נ",q:"ס",r:"ע",s:"ף",t:"פ",u:"ץ",v:"צ",w:"ק",x:"ר",y:"ש",z:"ת","{":"₪","|":"‖","}":"¾","~":"÷","":"■"},g1_block_mosaic_to_unicode__legacy_computing:{0:"🬏",1:"🬐",2:"🬑",3:"🬒",4:"🬓",5:"▌",6:"🬔",7:"🬕",8:"🬖",9:"🬗"," ":" ","!":"🬀",'"':"🬁","#":"🬂",$:"🬃","%":"🬄","&":"🬅","'":"🬆","(":"🬇",")":"🬈","*":"🬉","+":"🬊",",":"🬋","-":"🬌",".":"🬍","/":"🬎",":":"🬘",";":"🬙","<":"🬚","=":"🬛",">":"🬜","?":"🬝","`":"🬞",a:"🬟",b:"🬠",c:"🬡",d:"🬢",e:"🬣",f:"🬤",g:"🬥",h:"🬦",i:"🬧",j:"▐",k:"🬨",l:"🬩",m:"🬪",n:"🬫",o:"🬬",p:"🬭",q:"🬮",r:"🬯",s:"🬰",t:"🬱",u:"🬲",v:"🬳",w:"🬴",x:"🬵",y:"🬶",z:"🬷","{":"🬸","|":"🬹","}":"🬺","~":"🬻","":"█"},g1_block_mosaic_to_unicode__unscii_separated:{0:"",1:"",2:"",3:"",4:"",5:"",6:"",7:"",8:"",9:""," ":" ","!":"",'"':"","#":"",$:"","%":"","&":"","'":"","(":"",")":"","*":"","+":"",",":"","-":"",".":"","/":"",":":"",";":"","<":"","=":"",">":"","?":"","`":"",a:"",b:"",c:"",d:"",e:"",f:"",g:"",h:"",i:"",j:"",k:"",l:"",m:"",n:"",o:"",p:"",q:"",r:"",s:"",t:"",u:"",v:"",w:"",x:"",y:"",z:"","{":"","|":"","}":"","~":"","":""},g3:{0:"🭇",1:"🭈",2:"🭉",3:"🭊",4:"🭋",5:"◢",6:"🭌",7:"🭍",8:"🭎",9:"🭏"," ":"🬼","!":"🬽",'"':"🬾","#":"🬿",$:"🭀","%":"◣","&":"🭁","'":"🭂","(":"🭃",")":"🭄","*":"🭅","+":"🭆",",":"🭨","-":"🭩",".":"🭰","/":"▒",":":"🭐",";":"🭑","<":"🭪","=":"🭫",">":"🭵","?":"█","@":"┷",A:"┯",B:"┝",C:"┥",D:"🮤",E:"🮥",F:"🮦",G:"🮧",H:"🮠",I:"🮡",J:"🮢",K:"🮣",L:"┿",M:"•",N:"●",O:"○",P:"│",Q:"─",R:"┌",S:"┐",T:"└",U:"┘",V:"├",W:"┤",X:"┬",Y:"┴",Z:"┼","[":"→","\\":"←","]":"↑","^":"↓",_:" ","`":"🭒",a:"🭓",b:"🭔",c:"🭕",d:"🭖",e:"◥",f:"🭗",g:"🭘",h:"🭙",i:"🭚",j:"🭛",k:"🭜",l:"🭬",m:"🭭",n:null,o:null,p:"🭝",q:"🭞",r:"🭟",s:"🭠",t:"🭡",u:"◤",v:"🭢",w:"🭣",x:"🭤",y:"🭥",z:"🭦","{":"🭧","|":"🭮","}":"🭯","~":null,"":null}},J={};class V{constructor(t){this.type=t.Rs,this.flashing=t.Hs,this.concealed=t.Ks,this.size=t.It,this.sextants=t.yi()}}class Y{constructor(){this.mi=" ",this.wi=" ",this.xi=Q.WHITE,this.Si=Q.BLACK,this.vi=d.Mt,this.Ui=!1,this.ki=p.Vt,this.Ri=!1,this.Di=!1,this.Fi=null,this.Gi=!1,this.Li=null,this.Hi=null}set Ni(t){this.mi=t}get Ni(){return this.mi}set Us(t){this.xi=t}get Us(){return this.xi}set Ss(t){this.Si=t}get Ss(){return this.Si}get et(){return this.Gi}ji(s){const i=this.vi==d.Tt||this.vi==d.zt;this.vi==d.Mt||0==(32&this.mi.charCodeAt(0))&&i?(this.wi=Z(this.mi,s),this.Li>0&&(this.wi+=z.g2_latin[String.fromCharCode(this.Li+64)]),this.Gi=!1,"g0_arabic"!=s&&"g2_arabic"!=s||(this.Gi=t.et(this.wi))):this.vi==d.Tt?this.wi=Z(this.mi,"g1_block_mosaic_to_unicode__legacy_computing"):this.vi==d.zt?this.wi=Z(this.mi,"g1_block_mosaic_to_unicode__unscii_separated"):this.vi==d.Jt&&(this.wi=Z(this.mi,"g3")),this.Fi=null}Oi(t){if(this.vi!=d.Tt&&this.vi!=d.zt||!t.Pi)this.Fi=null,this.wi=" ";else{this.Fi=t.Ys,this.vi=t.Rs;let s="g1_block_mosaic_to_unicode__legacy_computing";this.vi==d.zt&&(s="g1_block_mosaic_to_unicode__unscii_separated"),this.wi=Z(t.Ys,s)}}get Ys(){return this.wi}get Rs(){return this.vi}set Rs(t){this.vi=t}set Hs(t){this.Ui=t}get Hs(){return this.Ui}get It(){return this.ki}set It(t){this.ki=t}set Ks(t){this.Ri=t}get Ks(){return this.Ri}set Fs(t){this.Di=t}get Fs(){return this.Di}vs(){const t=null!=this.Fi?this.Fi.charCodeAt(0):this.mi.charCodeAt(0);return t<=127&&32==(32&t)}qi(){const t=this.mi.charCodeAt(0);return(this.vi==d.Tt||this.vi==d.zt)&&t<=127&&32==(32&t)}yi(){const t=null!=this.Fi?this.Fi.charCodeAt(0):this.mi.charCodeAt(0);if(t>127)return null;if(t in J)return J[t];const s=t>=96?t-64:t-32,i=[];for(let t=0;t<6;t++)i.push(s&1<<t?"1":"0");return J[t]=i,i}}class K extends Y{constructor(t){super(),Object.assign(this,t)}set Mi(t){this.Li=t}get Mi(){return this.Li}set Ti(t){this.Hi=t}get Ys(){return null==this.Hi?this.wi:this.Hi}}function Z(t,s){if(!(s in z))throw Error("Cell getCharWithEncoding: bad encoding: "+s);if(t in z[s])return z[s][t];const i=s.match(/^(.+)__/);if(null!=i){const e=i[1];if(t in z[e])return z[s][t]=z[e][t],z[e][t]}return t}class X extends H{constructor(t,s,i){super(t,i),this.zi=s,this.Ji=new Set}rs(){super.rs(),this.Vi=[],this.Yi=this.d.ft()}Qs(t){super.Qs(t),this.Ki(t)}Ds(t,s,i,e,n,r,h){"ci"in this.Is&&this.Is.ci(r,n,s.It,s.Ss),s.Rs!=d.Mt&&s.Rs!=d.Jt&&h?h&&(t.wt(" ")._t(i),this.Zi(r,n,s,e)):(this.Vs(t,s,i,e,n,r),s.Rs==d.Jt&&t.ot("mosaic"))}Zi(t,s,i,e){if("ui"in this.Is){const n=new V(i);if(this.Is.ui(t,s,n,e))return}const n=i.yi();if(!n.includes("1"))return;let r=i.Rs==d.Tt?"c":"s";r+=n.join("");let h,_=H.Ii,o=H.Bi;if(i.Rs==d.Tt&&(_=H.Ii+.3,o=H.Bi+.2),!this.Ji.has(r)){this.Ji.add(r);const t=this.es.bt(r);if(i.Rs==d.Tt){t._t({preserveAspectRatio:"none",width:_,height:o,viewBox:"0 0 12 18"});for(let s=0;s<6;s++)"1"==n[s]&&t.St(6,6).jt(s%2*6,6*Math.floor(s/2))}else{t._t({preserveAspectRatio:"none",width:_,height:o,viewBox:"0 0 12 18"});for(let s=0;s<6;s++)"1"==n[s]&&t.St(4,4).jt(s%2*6+1,6*Math.floor(s/2)+2)}}h=i.Rs==d.Tt?this.Vi[t].Gt(r).jt(s*H.Ii-.15,t*H.Bi-.1).Nt(e):this.Vi[t].Gt(r).jt(s*H.Ii,t*H.Bi).Nt(e),this.zi&&h._t({width:_,height:o}),i.It!=p.Yt&&i.It!=p.Zt||h._t("height",H.Qi),i.It!=p.Kt&&i.It!=p.Zt||h._t("width",H.fi),i.Hs&&h.ot("flash"),i.Ks&&h.ot("conceal")}Ki(t){this.Vi[t]&&this.Vi[t].Dt(),this.Vi[t]=this.Yi.ft()}ks(t,s,i){return t==d.Jt?{dx:H.bi.Wt.ts,dy:-.15,textLength:H.bi.Wt.$t,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:{dx:null,dy:null,textLength:i?H.Ii:null,lengthAdjust:i?"spacingAndGlyphs":null,"text-anchor":null,transform:null,class:null}}}class W{constructor(t){this.os=t,this.Xi=0,this.Wi=0,this.$i=[]}pos(t,s){return(t=parseInt(t))<0||t>39||(s=parseInt(s))<0||s>24||(this.Xi=t,this.Wi=s),this}putG0(t,s){let i=null;if(void 0!==s){const t=parseInt(s);t>=0&&t<=15&&(i=t)}const e=t.charCodeAt(0);return e<32||e>127||this.$i.push({te:this.Xi,se:this.Wi,Rs:"g0",Ys:t,Mi:i}),this}putG1(t){const s=t.charCodeAt(0);return s<32||s>127||s>=64&&s<=95||this.$i.push({te:this.Xi,se:this.Wi,Rs:"g1",Ys:t}),this}putG2(t){const s=t.charCodeAt(0);return s<32||s>127||this.$i.push({te:this.Xi,se:this.Wi,Rs:"g2",Ys:t}),this}putG3(t){const s=t.charCodeAt(0);return s<32||s>127||this.$i.push({te:this.Xi,se:this.Wi,Rs:"g3",Ys:t}),this}putAt(){return this.$i.push({te:this.Xi,se:this.Wi,Rs:"char",Ys:"@"}),this}end(){return this.os.ie(this.$i),this.os.ee(),this}}class $ extends H{}const tt=["SPLASH","ENGINEERING","ADVERT","UK"];class st{constructor(t,s){if(this.ne=null,"object"==typeof window&&(this.ne=window),this.re={he:!0},"object"==typeof s&&("webkitCompat"in s&&!s.webkitCompat&&(this.re.he=!1),"dom"in s&&(this.ne=s.dom)),null==this.ne)throw Error("TeletextController E24: No window dom object available");this._e=new X(t,this.re.he,this.ne),this.os=t,this.oe=1,this.le=0,this.ae(),this.Ae=null,this.ge=null,this.ce=0,this.ue=0,this.Ce=null}setRowFromOutputLine(s,i){const e=t.st(i);this.os.Ee(s,e)}setRow(t,s){this.os.Ee(t,s)}setPageFromOutputLines(s,i){const e=t.it(s);void 0!==i&&(e[0]=this.Ie(i)),this.setPageRows(e)}setPageRows(t){this.os.Be(),this.os.fe(t)}Ie(s){return(s=t.st(s)).join("").substring(0,32).padStart(40," ")}showTestPage(){this.loadPageFromEncodedString(i[tt[this.le]]),this.le++,4==this.le&&(this.le=0)}showRandomisedPage(){const t=[];for(let s=0;s<25;s++){const s=[];for(let t=0;t<40;t++)s.push(String.fromCharCode(127*Math.random()));t.push(s.join(""))}this.setPageRows(t)}loadPageFromEncodedString(s,i){const e=t.tt(s,this.ne.atob);void 0!==i&&(e[0]=this.Ie(i)),this.setPageRows(e)}ae(){this.ne.addEventListener("ttx.reveal",(()=>this._e.Zs())),this.ne.addEventListener("ttx.mix",(()=>this._e.ti())),this.ne.addEventListener("ttx.subtitlemode",(()=>this._e.hi()))}toggleReveal(){this._e.Zs()}toggleMixMode(){this._e.ti()}toggleBoxMode(){this._e.hi()}toggleGrid(){this._e.Ws()}setLevel(t){this.os.Qe(t)}addTo(t){this.de=t,this._e.Ct(t)}setFont(t){this.Ce=t,this._e.Xs(t)}clearScreen(t){this.os.Be(),this.os.pe(t)}setAspectRatio(t){if("natural"==t)return void this._e.ei(t);const s=parseFloat(t);if(Number.isNaN(s))throw Error("E80 setAspectRatio: bad number");this._e.ei(s)}setHeight(t){const s=parseFloat(t);if(Number.isNaN(s))throw Error("E98 setHeight: bad number");this._e.ni(s),this.ge=s}setDefaultG0Charset(t,s){if(null==t.match(/g0_/))throw Error("E130 setDefaultG0Charset: Bad g0 set");this.os.be(t,s)}setSecondG0Charset(t,s){if(null==t.match(/g0_/))throw Error("E136 setSecondG0Charset: Bad g0 set");this.os.ye(t,s)}setG2Charset(t,s){if(null==t.match(/g2_/))throw Error("E142 setG2Charset: Bad g2 set");this.os.me(t,s)}remove(){if(this._e.Bs(),this.de){const t=document.querySelector(this.de);t&&t.removeChild(t.firstChild)}this._e=null}setView(t){switch(this.remove(),t){case"classic__font-for-mosaic":this._e=new $(this.os,this.ne);break;case"classic__graphic-for-mosaic":this._e=new X(this.os,this.re.he,this.ne);break;default:throw Error("setView E126: bad view name:"+t)}this.ge&&this._e.ni(this.ge),this.Ce&&this._e.Xs(this.Ce),this.de&&this._e.Ct(this.de),this.os.ee()}registerViewPlugin(t){t.registerWithView(this._e),this.os.ee()}enhance(){return new W(this.os)}writeBytes(t,s,i){this.os.we(t,s,i)}getBytes(){return this.os.xe()}}class it{constructor(t){this.Se=t,this.ve=[]}As(t){return this.ve.push(t),this.ve.length-1}ee(t){this.ve.forEach((s=>null!=s&&s(this.Se,t)))}Bs(t){this.ve[t]=null}}class et{constructor(){this.Ue=!1,this.ke=[]}get Ns(){return this.Ue}set Ns(t){this.Ue=t}Re(t){this.ke.push(t)}xs(t){if(t>=this.ke.length)throw Error("RowModel.getCell E20 bad cell index");return this.ke[t]}}const nt=25,rt=40,ht=[R[1.5],R[2.5]],_t=new class{constructor(){this.De=[];for(let t=0;t<nt;t++){const t=[];for(let s=0;s<rt;s++)t.push(new Y);this.De.push(t)}this.Fe="g0_latin",this.Ge=null,this.Le="g2_latin",this.He=b.charFromAttribute(b.START_BOX),this.Ne=b.charFromAttribute(b.END_BOX),this.je=R[1],this.Oe=[],this.gs=new it(this)}ee(){this.gs.ee()}Ee(t,s){if(t>=nt)throw Error("PageModel E29 bad row number");this.Pe(t,s),this.gs.ee()}fe(t){(t=t.slice(0,nt)).forEach(((t,s)=>{this.Pe(s,t)})),this.gs.ee()}we(t,s,i){for(let e=s,n=0;e<nt&&n<i.length;e++,n++){const s=[...i[n]].slice(0,rt-t);for(let i=t,n=0;i<rt;i++,n++)this.De[e][i].Ni=s[n]}this.gs.ee()}Pe(t,s){let i=[...s];if(i=i.slice(0,rt),i.forEach(((s,i)=>{const e=s.charCodeAt(0);if(Number.isNaN(e)||e>127)throw Error(`PageModel E51 failed to write row: bad character code (${e}) at row ${t} col ${i}`);this.De[t][i].Ni=s})),i.length<rt)for(let s=i.length;s<rt;s++)this.De[t][s].Ni=" "}Qe(t){this.je=t,this.gs.ee()}pe(t){if(void 0===t||t){const t=[];for(let s=0;s<nt;s++)t.push("");this.fe(t)}else for(let t=0;t<nt;t++)this.Pe(t,"")}be(t,s){this.Fe=t;const i=t.match(/^g0_([a-z]+)/);if(null!=i){const t="g2_"+i[1];t in z?this.Le=t:"hebrew"==i[1]&&(this.Le="g2_arabic")}s&&this.gs.ee()}ye(t,s){this.Ge=t,s&&this.gs.ee()}me(t,s){this.Le=t,s&&this.gs.ee()}ps(t){if(t>=nt)throw Error("PageModel.getRow E42 bad rowNum");const s=new et;let i,e,n=d.Mt,r=Q.WHITE,h=!1,_=p.Vt,o=!1,l=!1,a=!1,A=!1,g=Q.BLACK,c=d.Tt,u={Pi:!1,Ys:" ",Rs:d.Tt},C=[];return ht.includes(this.je)&&(C=this.Oe.filter((s=>s.se==t))),this.De[t].forEach(((E,I)=>{const B=E.Ni,f=((t,s)=>{let i=null,e=null;return s in S&&D[t].includes(s.charCodeAt(0))?s in w?(i=b.TEXT_COLOUR,e=S[s]):s in x?(i=b.MOSAIC_COLOUR,e=S[s]):i=S[s]:s.charCodeAt(0)<=31&&(i=b.Xt),{qe:i,Me:e}})(this.je,B);switch(i=r,E.Rs=n,E.Fs=A,e=o,f.qe!=b.STEADY&&(E.Hs=h),f.qe!=b.NORMAL_SIZE&&(E.It=_),f.qe!=b.CONCEAL&&(E.Ks=l),a&&(f.qe!=b.HOLD_MOSAICS&&(u.Pi=!1,u.Ys=" "),a=!1),f.qe){case b.TEXT_COLOUR:n=d.Mt,r=f.Me,l=!1,E.Oi(u);break;case b.MOSAIC_COLOUR:n=c,r=f.Me,l=!1,E.Oi(u);break;case b.NEW_BACKGROUND:g=i,E.Oi(u);break;case b.BLACK_BACKGROUND:g=Q.BLACK,E.Oi(u);break;case b.CONTIGUOUS_GRAPHICS:c=d.Tt,E.Rs==d.zt&&(E.Rs=d.Tt),n==d.zt&&(n=d.Tt),E.Oi(u);break;case b.SEPARATED_GRAPHICS:c=d.zt,E.Rs==d.Tt&&(E.Rs=d.zt),n==d.Tt&&(n=d.zt),E.Oi(u);break;case b.ESC:this.Ge&&(o=!e),E.Oi(u);break;case b.FLASH:h=!0,E.Oi(u);break;case b.STEADY:E.Hs=!1,h=!1,E.Oi(u);break;case b.NORMAL_SIZE:E.It=p.Vt,_=p.Vt,E.Oi(u);break;case b.DOUBLE_HEIGHT:_=p.Yt,s.Ns=!0,E.Oi(u);break;case b.DOUBLE_WIDTH:_=p.Kt,E.Oi(u);break;case b.DOUBLE_SIZE:_=p.Zt,s.Ns=!0,E.Oi(u);break;case b.CONCEAL:E.Ks=!0,l=!0,E.Oi(u);break;case b.HOLD_MOSAICS:u.Pi=!0,E.Oi(u);break;case b.RELEASE_MOSAICS:a=!0,E.Oi(u);break;case b.START_BOX:I>=1&&this.De[t][I-1].Ni==this.He&&(E.Fs=!0,A=!0),E.Oi(u);break;case b.END_BOX:I+1<rt&&this.De[t][I+1].Ni==this.Ne&&(A=!1),E.Oi(u);break;case b.Xt:E.Oi(u);break;default:E.ji(e?this.Ge:this.Fe),E.qi()&&(u.Ys=B,u.Rs=E.Rs)}E.Us=i,E.Ss=g,C.filter((t=>t.te==I)).forEach((t=>{const s=new K(E);E=s,"g0"==t.Rs?(E.Ni=t.Ys,E.Mi=t.Mi,E.Rs=d.Mt,E.ji(e?this.Ge:this.Fe)):"g1"==t.Rs?this.je==R[2.5]&&(E.Ni=t.Ys,E.Rs=c,E.ji()):"g2"==t.Rs?(E.Ni=t.Ys,E.Rs=d.Mt,E.ji(this.Le)):"g3"==t.Rs?(this.je!=R[1.5]||-1!="Q[\\]".indexOf(t.Ys))&&(E.Ni=t.Ys,E.Rs=d.Jt,E.ji()):"char"==t.Rs&&(E.Ti=t.Ys,E.Rs=d.Mt)})),s.Re(E)})),s}ie(t){this.Oe=t}Be(){this.Oe=[]}xe(){const t=new Uint8Array(1e3);return this.De.forEach(((s,i)=>{s.forEach(((s,e)=>{t[i*rt+e]=s.Ni.charCodeAt(0)}))})),t}};function ot(t){return new st(_t,t)}export{b as Attributes,Q as Colour,R as Level,ot as Teletext};//# sourceMappingURL=teletext.min.js.map | ||
class t{static tt(t,i){const e=(t=t.replace(/-/g,"+").replace(/_/g,"/")).length%4;if(e){if(1===e)throw Error("Utils.decodeBase64URLEncoded E16: Input base64url string is the wrong length to determine padding");t+=Array(5-e).join("=")}const r=i(t),n=[];let _=[];for(const t of function*(t){let i=6,e=0;for(const r of t){const t=s(r.charCodeAt(0));for(const s of t)e|=s<<i,i--,i<0&&(yield e,i=6,e=0)}i<6&&(yield e)}(r))_.push(String.fromCharCode(t)),40==_.length&&(n.push(_.join("")),_=[]);return _.length<40&&n.push(_.join("")),n}static st(t){const s=[];let i=!1;for(const e of[...t]){const t=e.charCodeAt(0);27==t?i=!0:t>=128&&t<=159?(s.push(String.fromCharCode(t-128)),i=!1):t>=160?(s.push(""),i=!1):i?(s.push(String.fromCharCode(t-64)),i=!1):s.push(e)}return s}static it(s){const i=[],e=/^OL,(\d{1,2}),(.*)/;for(const r of[...s]){const s=r.match(e);null!=s&&(i[s[1]]=t.st(s[2]))}return i}static et(t){return-1!="ﻰﺋﺊﭼﭽﭘﭙﮔﻎﻼﻬﻪﻊﺔﺒﺘﺎﺑﺗﺛﺟﺣﺧﺳﺷﺻﺿﻃﻇﻋﻏﺜﺠﺤﺨـﻓﻗﻛﻟﻣﻧﻫﻰﻳﻴﻌﻐﻔﻘﻠﻤﻨ".indexOf(t)}}function s(t){let s=[];for(let i=7;i>=0;i--)s.push(t&1<<i?1:0);return s}const i={ENGINEERING:"QIECBAgQIIcWLGg2EDdy3QIKnXKgYtUE7f2QA2TB0wYr2DECAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAYMS54fzJmix4-YCDToOLOjyZ0WLSkzo6AkcGHuZUcRHlB4dgyAAQAEABAAQAEABAAQAEABAAQAEABAAQAEABAAQAEABAAWDP9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_YNCho9zImSoAqBGoAp0FUy8-iChhz5UCA4MPEuZYgTAFyAFg1_f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f2DYCAAoACACeQHkBdYTJlixIkSKlSJEoUKIEBQABAAQAEABYN_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_39g4AgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgGDn9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_YsAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIBix_f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f2LICAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAYs_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_39i0AgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgGLX9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_Ytq-jT0yg7OXZs39w0Pzh3Ao_LLl3BZuHPl3dMIGllyBIWzrlLmkKJGTSJUycsoUqlZJYtXLzLBiyZlWjVs3IuHLp2UePXz9AgQokaBIlTJ0ChSqVoFi1cvQMGLJmgaNWzdA4cunaB49fP0ECDChoIkWNHQSJMqWgmTZ09BQo0qaCpVrV0FizatoLl29fQYMOLGgyZc2dBo06taDZt3b0HDjy5oOnXt3QePPr2g-ff38pgw4sZHJlzZyujTq1ktm3dvNcOPLmW6de3cn48-vZf59_fwZiHv3Y8uHYIjbMPPQDVCxcLf4E0-mXDk8mI-_dlFCn5a9_DKr6q-qvqr6q-qvqr6AFS390DJoGQKr6q-qvqr6q-qvqr6o",ADVERT:"QIECBAgQIJ9KDDmRUDZi3QU8PRk1QQeHIHDaIEDJiwYumDACdDwcnbLy6aeeXbl3dECBAgQIECBAgQIECBAgQIHwZkvcoCx0og8LNGjYwQPEjzpoWaNjBA82YHnTQwabEjTpowPEiBAgLHSiBbs1atjFA9SPe2pZqQNUHX1qQatSlrqQNW-5UsaIECAsdKIFidUqQJUCVAlVKlipchQJUCJanVIEqpAlSqlC5CgQIEB0ogQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQHSKBAgQYEH7ogQaGCApw_fEm54R3PCm5JuSKHoFUEVIECAudIoECBB6-___TB-_v0JTU_WqkZHFyQKHmjYgYBECpAqQIC50igQIEH___3_-iD__6FFSAig-IP6JCg26lzRr3avEgFUgLnSKBAg1f1X9lv_9NSBAgI6G-HX1V_EqBUqQJUqXBzagVSAudIoECD9_Qa2qL__6IMDzoq682qdAgQIEARAgQIECBAgVIC50igQIP_9AiaoFX__0VfV_1kjQIECBAgQBECBAgAoECpAgLnSKBBq__0CBCgQa___oreokCBAgQIECBAgQBECBAgVIECAudIoEHr__QIECBAg3_36FAgQIECBAgQIECAIgQIFSBAgQIAZ0igQf_7dAgKIECAinKf9bTR9QIv-N6i_ofzNagQIECBAgJnSKDR__tUBRAoe6NiBB_XYf_rqg_q2iD-gRb-iBAgQIECAmdIoNX_-1QFECDrq9IMH9h664P_D-w34P7DZ4ToECBAgQICZ0ig___5TQ8SfEHzQ82MPCzpoedEHzA82MPjDQ0-LNDSk0JnSOD___lNXVh_Qf9T3cx_oP-prqa_1S3Y0_q_zX-s1NdTUmdI6v_9-U1NUH9B_1NdTX-g_6mvpL_wMNTX-g1Nf6DAz1tSZ0j-_v0JREjQokaFEhRIUSNCiRoUCNAjRoEaBEhRo0CNGgBnSP9OgQFECCNPpIIVKfDkVaUWmggzoiCFPny5M6PTQIECAGdIjUAGlJnR0DBu5coGrFm0YMEE-kgpxYqChBjxUDNuwQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy92np007s6AFSy9tOXvzQA7O_ryQTd-7L5DQVtpBJ3ZMvg",UK:"QIECBAgQIIcWLGg2EDFy2QIJu_cgZNUETLjQA2TN0xYr2DAodJIECBAgQIEGDB4_PUCBAgQIECBAgQIECBAgQIEANkvaMih0kgQIECDA1Qfv__OgQYGCBAgQIECBAgQIECBAgQIECBAgKHSSBAgQIH6FR-__-v7___oECBAgQIEAORPmxUE6LXpoECAodJIECBAoQKum7______9-gQIECBAgQA82_Zs39-aB8-QIAh0kgQIECBAgSev_____v06BAgQIECBAgQIECBAgQIECBAgKHSSBAgQIECBR00____-_w9GCBAgQIECBAgQIECBAgQIECAodJIECBAgQIECD8rx________ECBAgQIECBAgQIECBAgQICh0kgQIECBAgQLETRlv_______6oECBAgQIECBAgQIECBAgKHSyBAgQIHGQlwYIEH_-_x_____9-dECBAgQIECBAgQIECAIdLIECDAmJbfz_-0RJ0qBV________7sECBAgQIECBAgQIAh0sgQIMzAl-__fX5Sg0JECvX______586IECBAgQIECBAgCHSyBAgwJiW9OjX_0qBAgQIEX________-l8fPjBAgQIECAIdLIEHBYhQIECBQxQICWDhg5fv____________tUCBAgQIAh0sgzIECBAgQIEGlAgQEtP_______________-lQIECBAgCHSyBUwQIECBAgQakCBASQqv_____________-6FAgQIECAIdLIECJygQIECBAgaoEBJBg______________5-OiBAgQIAh0sgQKGKBAgQIEHBKgJIMH7____8v__________QoECBAgCHSyBRmQIECBA4RoECAkgVoVaNel________r16FAgQIECAIdLINCFAgwOEyBAgQICSBAgQePn7___r06RAgQIECBAgQIAh0sgQLeKxCgQIECBAgJIECDR__v0aNGhQIECBAgQIECBAgCHSSBAgQIECBAgQIECBAgQYP3_-1QIECBAgQIECBAgQIECAIdJIECBAgQIECBAgQIECBB6boUSBAgQIECBAgQIECBAgQIAh0kgQIECBAgQIECBAgQIFStAgQIECBAgQIECBAgQIECBAgAzsvjognZe_MFIy4cmzTuy8wdTfwQU-G_l0DVKy-lhyad6A",SPLASH:"QIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECAsaMIEGDx8YIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQICxowg0N2bdmgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgLGjCBFvz9_6BAZQIECBAgQIECAig0NECBAgQIECBAgQIECAsaMcOD5tjyoGCBAgQIECBAgQICLhCgQIECBAgQIECBAgQICxowoTod79ArSEcHBAgQIECBAg0ITKBAgQcGCBAgQIECBAgLGjCBBgXIUCAyRXmlLBAgQIECBuZ4fPn___aoECBAgQIECBAaQIECBAgQIEBFAgQaTPDh8-f___-vXo9f9qgQIECBAgQIECBAgQIEBFAgQcOHz5____69ejRoECBAg__0CBAgQIECBAgQIECBAgQEUCL___r16NGXQIOHDh8-NCOD-3QIECBAgQIECBAgQIECBARQINf0ug-fPi9evRo0aBAgI6v6VAgQIECBAgQIECBAgQIEBFAgRf2hfBw4cOHD58-fPiAj-_oECBAgQIECBAgQIECBAgQEUCBBr-l0SNGjRo0CBAgQEcH9qgQIECBAgQIECBAgQIECBARQIECL-0Lr169ev-fPnxAR1f0KBAgQIECBAgQIAiBAgQIEBFAgQINf3hw4cOCBAgQIEBH-_QIECBAgQIECBAgCIECBAgQIEB1ARRL1-_____________7VAgOIECBAgQIECAIgQIECBAgQHUBNAgQf26BAgQIN_8ijRoECA4gQIECBAgQIAiBAgQIECA6gQE0CDV_QoECBAgRf2iBAgQIEBxAgQIECBAgCIECBAgQIDqBAgQE0aFAgQIECBAgQIECBAgQHECBAgQIECAIgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIBp0Kg3cNqDSggdMuPRh3ZOe_N074eWVf0y7MvTL46IECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQKMalAyYMmaCplx6ECZBT35unfDyyoJnTIuQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECA"},e="http://www.w3.org/2000/svg";let r,n,_=0;class h{constructor(){}rt(){return this.nt}_t(){this.nt=null}ht(t,s){if("object"==typeof t)for(const s in t)null==t[s]?this.nt.removeAttribute(s):this.nt.setAttribute(s,t[s]);else{if(void 0===s)return this.nt.getAttribute(t);null==s?this.nt.removeAttribute(t):this.nt.setAttribute(t,s)}return this}ot(t){if(!this.lt(t)){const s=this.At();s.push(t),this.nt.setAttribute("class",s.join(" "))}return this}lt(t){return-1!==this.At().indexOf(t)}At(){const t=this.nt.getAttribute("class");return null==t?[]:t.split(" ")}gt(t){return this.lt(t)&&this.nt.setAttribute("class",this.At().filter((s=>s!==t)).join(" ")),this}ct(t){return this.lt(t)?this.gt(t):this.ot(t),this}ut(t,s){if("object"==typeof t)for(const s in t)null==t[s]?delete this.nt.dataset[s]:this.nt.dataset[s]=t[s];else{if(void 0===s)return this.nt.dataset[t];null==s?delete this.nt.dataset[t]:this.nt.dataset[t]=s}return this}}class o extends h{constructor(t){return super(),r=t,n=r.document,this.nt=n.createElementNS(e,"svg"),this.nt.setAttribute("xmlns",e),this}Ct(t){const s=n.querySelector(t);if(!s)throw Error("@techandsoftware/teletext: E117: addTo failed to match provided selector");return s.appendChild(this.nt),this}Et(t){return this.nt.setAttribute("viewBox",t),this}It(t,s){return this.nt.setAttribute("width",t),this.nt.setAttribute("height",s),this}Bt(t){const s=n.createElementNS(e,"style");return s.append(t),this.nt.append(s),this}ft(){const t=new l;return this.nt.append(t.rt()),t}dt(){return this.nt.clientWidth}Qt(){return this.nt.clientHeight}bt(t){const s=new c(t);return this.nt.append(s.rt()),s}}class l extends h{constructor(){return super(),this.nt=n.createElementNS(e,"g"),this.yt=[],this}ft(){const t=new l;return this.nt.append(t.rt()),this.yt.push(t),t}wt(t){const s=new u(t);return this.nt.append(s.rt()),this.yt.push(s),s}St(){const t=new C;return this.nt.append(t.rt()),t}xt(t,s){const i=new I(t,s);return this.nt.append(i.rt()),this.yt.push(i),i}vt(){return this.yt[this.yt.length-1]}Ut(){return this.yt}Rt(t){return this.nt.setAttribute("clip-path",`url("#${t.rt().id}")`),this}Dt(){return this.nt.removeAttribute("clip-path"),this}kt(){this.nt.parentNode&&this.nt.parentNode.removeChild(this.nt),this.nt=null,this.yt.forEach((t=>t._t())),this.yt=[]}Lt(t,s,i,e){const r=new B(t,s,i,e);return this.nt.append(r.rt()),this.yt.push(r),r}Gt(t){const s=new g(t);return this.nt.append(s.rt()),this.yt.push(s),s}Ft(t,s){const i=new a(t,s);return this.nt.append(i.rt()),this.yt.push(i),i}Ot(t,s){const i=new A(t,s);return this.nt.append(i.rt()),this.yt.push(i),i}}class A extends h{constructor(){return super(),this.nt=n.createElementNS(e,"svg"),this}attr(...t){return this.ht(...t)}get node(){return this.rt()}}class a extends h{constructor(t,s){return super(),this.nt=n.createElementNS(e,"image"),this.nt.setAttribute("width",parseInt(t)),this.nt.setAttribute("height",parseInt(s)),this}attr(...t){return this.ht(...t)}}class g extends h{constructor(t){return super(),this.nt=n.createElementNS(e,"use"),this.nt.setAttribute("href","#"+t),this}Ht(t){return this.nt.setAttribute("fill",t),this}Nt(t,s){return this.nt.setAttribute("x",t),this.nt.setAttribute("y",s),this}}class c extends h{constructor(t){return super(),this.nt=n.createElementNS(e,"symbol"),this.nt.setAttribute("id",t),this}xt(t,s){const i=new I(t,s);return this.nt.append(i.rt()),i}}class u extends h{constructor(t){return super(),this.nt=n.createElementNS(e,"text"),this.nt.append(t),this}wt(t){return this.nt.textContent=t,this}Ht(t){return this.nt.setAttribute("fill",t),this}}class C extends h{constructor(){return super(),this.nt=n.createElementNS(e,"defs"),this}jt(){const t=new E;return this.nt.append(t.rt()),t}Pt(t){return[...this.nt.querySelectorAll(t)].map(f)}xt(t,s){const i=new I(t,s);return this.nt.append(i.rt()),i}}class E extends h{constructor(){return super(),this.nt=n.createElementNS(e,"clipPath"),this.nt.setAttribute("id","clipPath-"+_),_++,this}Ut(){return[...this.nt.children].map(f)}Tt(t){this.nt.appendChild(t.rt())}}class I extends h{constructor(t,s){if(super(),t instanceof r.SVGElement)return this.nt=t,this;const i=t;return this.nt=n.createElementNS(e,"rect"),this.nt.setAttribute("width",parseInt(i)),this.nt.setAttribute("height",parseInt(s)),this}Ht(t){return this.nt.setAttribute("fill",t),this}Nt(t,s){return this.nt.setAttribute("x",t),this.nt.setAttribute("y",s),this}dt(t){return void 0===t?parseInt(this.nt.getAttribute("width")):(this.nt.setAttribute("width",parseInt(t)),this)}Qt(t){return void 0===t?parseInt(this.nt.getAttribute("height")):(this.nt.setAttribute("height",parseInt(t)),this)}kt(){this.nt.parentNode&&this.nt.parentNode.removeChild(this.nt),this.nt=null}}class B extends h{constructor(t,s,i,r){return super(),this.nt=n.createElementNS(e,"line"),this.nt.setAttribute("x1",t),this.nt.setAttribute("y1",s),this.nt.setAttribute("x2",i),this.nt.setAttribute("y2",r),this}}function f(t){let s;if("SVGRectElement"!==t.constructor.name)throw Error("SVG:wrapSVGElement Unable to wrap SVG element of type "+t.constructor.name);return s=new I(t),s}const d={BLACK:Symbol(),RED:Symbol(),GREEN:Symbol(),YELLOW:Symbol(),BLUE:Symbol(),MAGENTA:Symbol(),CYAN:Symbol(),WHITE:Symbol()};Object.freeze(d);const Q={Mt:Symbol(),qt:Symbol(),zt:Symbol(),Jt:Symbol()};Object.freeze(Q);const p={Vt:Symbol(),Yt:Symbol(),Kt:Symbol(),Zt:Symbol()};Object.freeze(p);const b={0:Symbol(),1:Symbol(),1.5:Symbol(),2.5:Symbol()};Object.freeze(b);class y{static charFromTextColour(t){if(t in x)return x[t];throw Error("Attributes.charFromTextColour: bad colour: "+t)}static charFromGraphicColour(t){if(t in U)return U[t];throw Error("Attributes.charFromGraphicColour: bad colour")}static charFromAttribute(t){if(t in D)return D[t];throw Error("Attributes.charFromAttribute: bad attribute")}}function m(t){return w[t]}Object.assign(y,{TEXT_COLOUR:Q.ALPHA,MOSAIC_COLOUR:Symbol(),NEW_BACKGROUND:Symbol(),BLACK_BACKGROUND:Symbol(),CONTIGUOUS_GRAPHICS:Q.qt,SEPARATED_GRAPHICS:Q.zt,ESC:Symbol(),FLASH:Symbol(),STEADY:Symbol(),NORMAL_SIZE:p.Vt,DOUBLE_HEIGHT:p.Yt,DOUBLE_WIDTH:p.Kt,DOUBLE_SIZE:p.Zt,CONCEAL:Symbol(),HOLD_MOSAICS:Symbol(),RELEASE_MOSAICS:Symbol(),START_BOX:Symbol(),END_BOX:Symbol(),Xt:Symbol()});const w={[d.BLACK]:"#000",[d.RED]:"#f00",[d.GREEN]:"#0f0",[d.YELLOW]:"#ff0",[d.BLUE]:"#00f",[d.MAGENTA]:"#f0f",[d.CYAN]:"#0ff",[d.WHITE]:"#fff"};Object.freeze(w);const S={"\0":d.BLACK,"":d.RED,"":d.GREEN,"":d.YELLOW,"":d.BLUE,"":d.MAGENTA,"":d.CYAN,"":d.WHITE};Object.freeze(S);const x=L(S),v={"":d.BLACK,"":d.RED,"":d.GREEN,"":d.YELLOW,"":d.BLUE,"":d.MAGENTA,"":d.CYAN,"":d.WHITE};Object.freeze(v);const U=L(v),R={"\b":y.FLASH,"\t":y.STEADY,"\n":y.END_BOX,"\v":y.START_BOX,"\f":y.NORMAL_SIZE,"\r":y.DOUBLE_HEIGHT,"":y.DOUBLE_WIDTH,"":y.DOUBLE_SIZE,"":y.CONCEAL,"":y.CONTIGUOUS_GRAPHICS,"":y.SEPARATED_GRAPHICS,"":y.ESC,"":y.BLACK_BACKGROUND,"":y.NEW_BACKGROUND,"":y.HOLD_MOSAICS,"":y.RELEASE_MOSAICS};Object.assign(R,S),Object.assign(R,v),Object.freeze(R);const D=L(R),k={[b[0]]:[1,2,3,4,5,6,7,8,9,17,18,19,20,21,22,23]};function L(t){const s={};for(const i in t)s[t[i]]=i;return Object.freeze(s)}k[b[1]]=[...k[b[0]],10,11,12,13,24,25,26,27,28,29,30,31],k[b[1.5]]=[...k[b[1]],0,16],k[b[2.5]]=[...k[b[1.5]],14,15],Object.freeze(k);const G=10,F=10,O={Wt:{$t:10.4,ts:-5.2},ss:{$t:F,ts:-4.5}};Object.freeze(O);class H{constructor(t,s){this.es=new o(s).Et("0 0 400 250").It(600,500).ht({preserveAspectRatio:"none",style:"font-family: sans-serif"}).Bt("@font-face {\nfont-family: 'Unscii';\nsrc: url('fonts/unscii-16.woff') format('woff'), \nurl('fonts/unscii-16.ttf') format('truetype'),\nurl('fonts/unscii-16.otf') format('opentype');\nunicode-range: U+0000-00FF, U+2022, U+2500, U+2502, U+250C, U+2510, U+2514, U+2518, U+251C, U+251D, U+2524, U+2525, U+252C, U+252F, U+2534, U+2537, U+253C, U+253F, U+2588, U+258C, U+2590, U+2592, U+25CB, U+25CF, U+25E2-25E5, U+2B60-2B63, U+E0C0-E0FF, U+1FB00-1FB70, U+1FB75, U+1FBA0-1FBA7;\n-webkit-font-smoothing: none;\nfont-smooth: never;\n}\n@font-face {\nfont-family: 'Bedstead';\nsrc: url('fonts/bedstead.otf') format('opentype');\nunicode-range: U+0000-00FF;\n}\n@keyframes blink {\nto {\nvisibility: hidden;\n}\n}\n@keyframes fancyblink {\nfrom {\nfilter: none;\nopacity: 0.7;\n}\n33% {\nfilter: none;\nopacity: 1;\n}\n66% {\nfilter: blur(0px);\nopacity: 1;\n}\n95% {\nfilter: blur(4px);\nopacity: 0;\n}\nto {\nfilter: blur(0px);\nopacity: 0;\n}\n}\n#textlayer {\nfont-size: 10px;\n}\n.mosaic {\nfont-family: 'Unscii';\nfont-size: 10.3px;\n}\n.mosaic_separated {\nfont-family: 'Unscii';\nfont-size: 10px;\n}\n.flash_flashing .flash {\n/* animation: blink 2s steps(3, start) infinite; */\nanimation: fancyblink 2s linear infinite;\n}\n.conceal_concealed .conceal {\nvisibility: hidden;\n}\nsvg #background {\ntransition-property: opacity;\ntransition-duration: 0.25s;\n}\nsvg {\nbackground-color: transparent;\n}\nsvg use {\nshape-rendering: crispEdges;\n}\nrect { color: orange; }\n"),this.d=this.es.ft().ht("class","conceal_concealed flash_flashing"),this.rs=1.2,this.ns(),this._s(),this.hs=null,this.os=t,this.ls=this.os.gs.As((()=>this.cs())),this.us=!1,this.Cs=!1,this.Es=!1,this.Is={}}Ct(t){this.es.Ct(t)}Bs(){this.os.gs.Bs(this.ls),this.ls=null}cs(){let t=!1,s=!1;this.Es=!1,this.d.gt("flash_flashing"),this.fs.forEach(((i,e)=>{let r=!1;if(this.ds(e),t)return t=!1,void this.Qs(i,e);const n=this.os.ps(e);let _,h;i.forEach(((t,i)=>{if(r)return r=!1,this.bs(t),this.ys(e),void(h&&this.ws());const o=n.Ss(i),l=m(o.xs),A=o.vs(),a=m(o.Us),g=this.Rs(o.Ds,A,o.et);this.ks(t,o,g,a,i,e,A),o.Ls&&(h?this.ws():this.Gs(e,i),this.Es=!0),_==l?this.ys(e):this.Fs(e,i,l),o.It!=p.Kt&&o.It!=p.Zt||(r=!0),_=l,h=o.Ls,o.Os&&(s=!0)})),n.Hs?(this.Ns(e),this.js(),t=!0):t=!1,this.Ps(e)})),"Ts"in this.Is&&this.Is.Ts(this.es.dt(),this.es.Qt()),this.d.ot("conceal_concealed"),s&&setTimeout((()=>this.d.ot("flash_flashing")),100),this.Ms()}ds(t){this.qs(t),this.zs(t)}Qs(t,s){"Js"in this.Is&&this.Is.Js(t.length,s),t.forEach((t=>this.bs(t)))}bs(t){t.wt(" ").ht({dx:null,dy:null,textLength:null,lengthAdjust:null,"text-anchor":null,transform:null,class:null})}ks(t,s,i,e,r,n,_){this.Vs(t,s,i,e,r,n),s.Ds==Q.qt&&_||s.Ds==Q.Jt?t.ot("mosaic"):s.Ds==Q.zt&&_&&t.ot("mosaic_separated")}Vs(t,s,i,e,r,n){t.wt(s.Ys).ht(i).Ht(e),s.It==p.Yt?t.ht("transform",`translate(0 ${q(n)}) scale(1 2)`):s.It==p.Kt?t.ht("transform",`translate(${z(r)} 0) scale(2 1)`):s.It==p.Zt&&t.ht("transform",`translate(${z(r)} ${q(n)}) scale(2 2)`),s.Os&&t.ot("flash"),s.Ks&&t.ot("conceal")}Zs(){this.d.ct("conceal_concealed")}Xs(t){let s=t;"native"==t?s='-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif':"default"==t&&(s="sans-serif"),this.es.ht("style","font-family: "+s)}Ws(){this.hs?(this.hs.kt(),this.hs=null):this.$s()}ti(){this.Cs?(this.Cs=!1,this.si.ht("opacity",null).Dt()):(this.Cs=!0,this.ii())}ei(t){this.rs=t,this.ri(this.es.Qt())}ri(t){this.es.It("natural"==this.rs?1.6*t:t*this.rs,t)}ii(){this.us&&this.Es?this.si.ht("opacity",.3):this.Es?this.si.Rt(this.ni).ht("opacity",.3):this.si.ht("opacity",0)}Ms(){this.Cs&&this.ii()}_i(){this.us?(this.d.Dt(),this.us=!1):(this.d.Rt(this.ni),this.us=!0),this.Ms()}hi(){return this.es.rt().outerHTML}$s(){this.hs=this.d.ft();for(let t=0;t<25;t++)this.hs.Lt(0,t*G,399,t*G).ht({stroke:"#555","stroke-width":.5});for(let t=0;t<40;t++)this.hs.Lt(t*F,0,t*F,249).ht({stroke:"#555","stroke-width":.5})}_s(){this.oi=this.d.St(),this.li=null,this.ni=this.oi.jt()}ns(){this.Ai(),this.ai()}Ai(){const t=this.d.ft();t.ht({"shape-rendering":"crispEdges",id:"background"}),this.gi=[],this.si=t}ai(){const t=[],s=this.d.ft().ht({"text-anchor":"middle",fill:"#fff"}).ht("id","textlayer");for(let i=0;i<25;i++){const e=[];for(let t=0;t<40;t++)e.push(s.wt(String.fromCharCode(32+95*Math.random())).ht({x:t*F+5,y:i*G+8}));t.push(e)}this.fs=t,this.ci=s}zs(t){this.ni.Ut().filter((s=>s.ut("r")==t)).forEach((t=>t.kt()))}qs(t){this.gi[t]&&this.gi[t].kt(),this.gi[t]=this.si.ft()}ys(t){const s=this.gi[t].vt(),i=s.dt();s.dt(i+F)}Fs(t,s,i){const e=s*F,r=t*G;this.gi[t].xt(F,G).Ht(i).Nt(e,r)}ws(){const t=this.li.dt();this.li.dt(t+F)}Ns(t){this.gi[t].Ut().forEach((t=>t.ht("height",20)))}js(){this.oi.Pt("[data-boxbuffer]").forEach((t=>t.Qt(20)))}Gs(t,s){const i=s*F,e=t*G;this.li=this.oi.xt(F,G).ut("boxbuffer",!0).Nt(i,e)}Ps(t){this.oi.Pt("[data-boxbuffer]").forEach((s=>{s.ut({r:t,boxbuffer:null}),this.ni.Tt(s)}))}Rs(t,s,i){return t==Q.qt&&s||t==Q.Jt?{dx:O.Wt.ts,dy:-.15,textLength:O.Wt.$t,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:t==Q.zt&&s?{dx:O.ss.ts,dy:null,textLength:O.ss.$t,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:{dx:null,dy:null,textLength:i?F:null,lengthAdjust:i?"spacingAndGlyphs":null,"text-anchor":null,transform:null,class:null}}registerPlugin(t,s){return"renderBackground"in s&&(this.Is.ui=s.renderBackground),"renderMosaic"in s&&(this.Is.Ci=s.renderMosaic),"endOfPageUpdate"in s&&(this.Is.Ts=s.endOfPageUpdate),"clearCellsForRow"in s&&(this.Is.Js=s.clearCellsForRow),{lookupColour:N,isDoubleHeight:j,isDoubleWidth:P,isDoubleSize:T,isSeparatedMosaic:M,createImageOverlay:this.Ei.bind(this),createSVGOverlay:this.Ii.bind(this)}}Ei(){const t=this.d.Ft(400,250);return t.ht("preserveAspectRatio","none"),t}Ii(){const t=this.d.Ot();return t.ht("preserveAspectRatio","none"),t}}H.Bi=F,H.fi=G,H.di=20,H.Qi=20,H.pi=400,H.bi=250,H.yi=O,H.ROWS=25,H.COLS=40;const N=t=>m(t),j=t=>t==p.Yt,P=t=>t==p.Kt,T=t=>t==p.Zt,M=t=>t==Q.zt,q=t=>0-t*G,z=t=>0-t*F,J={g0_latin:{$:"¤","":"■"},g0_latin__czech_slovak:{"#":"#",$:"ů","@":"č","[":"ť","\\":"ž","]":"ý","^":"í",_:"ř","`":"é","{":"á","|":"|","}":"ú","~":"š"},g0_latin__english:{"#":"£",$:"$","@":"@","[":"←","\\":"½","]":"→","^":"↑",_:"#","`":"—","{":"¼","|":"‖","}":"¾","~":"÷"},g0_latin__estonian:{"#":"#",$:"õ","@":"Š","[":"Ä","\\":"Ö","]":"Ž","^":"Ü",_:"Õ","`":"š","{":"ä","|":"ö","}":"ž","~":"ü"},g0_latin__french:{"#":"é",$:"ï","@":"à","[":"ë","\\":"ê","]":"ù","^":"î",_:"#","`":"è","{":"â","|":"ô","}":"û","~":"ç"},g0_latin__german:{"#":"#",$:"$","@":"§","[":"Ä","\\":"Ö","]":"Ü","^":"^",_:"_","`":"°","{":"ä","|":"ö","}":"ü","~":"ß"},g0_latin__italian:{"#":"£",$:"$","@":"é","[":"°","\\":"ç","]":"→","^":"↑",_:"#","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},g0_latin__latvian_lithuanian:{"#":"#",$:"$","@":"Š","[":"ė","\\":"ę","]":"Ž","^":"č",_:"ū","`":"š","{":"ą","|":"ų","}":"ž","~":"į"},g0_latin__polish:{"#":"#",$:"ń","@":"ą","[":"Ƶ","\\":"Ś","]":"Ł","^":"ć",_:"ó","`":"ę","{":"ż","|":"ś","}":"ł","~":"ź"},g0_latin__portuguese_spanish:{"#":"ç",$:"$","@":"¡","[":"á","\\":"é","]":"í","^":"ó",_:"ú","`":"¿","{":"ü","|":"ñ","}":"è","~":"à"},g0_latin__romanian:{"#":"#",$:"¤","@":"Ț","[":"Â","\\":"Ș","]":"Ă","^":"Î",_:"ı","`":"ț","{":"â","|":"ș","}":"ă","~":"î"},g0_latin__serbian_croatian_slovenian:{"#":"#",$:"Ë","@":"Č","[":"Ć","\\":"Ž","]":"Đ","^":"Š",_:"ë","`":"č","{":"ć","|":"ž","}":"đ","~":"š"},g0_latin__swedish_finnish_hungarian:{"#":"#",$:"¤","@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü",_:"_","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},g0_latin__turkish:{"#":"₺",$:"ğ","@":"İ","[":"Ş","\\":"Ö","]":"Ç","^":"Ü",_:"Ğ","`":"ı","{":"ş","|":"ö","}":"ç","~":"ü"},g2_latin:{0:"°",1:"±",2:"²",3:"³",4:"×",5:"µ",6:"¶",7:"·",8:"÷",9:"’","!":"¡",'"':"¢","#":"£","%":"¥","&":"#","'":"§","(":"¤",")":"‘","*":"“","+":"«",",":"←","-":"↑",".":"→","/":"↓",":":"”",";":"»","<":"¼","=":"½",">":"¾","?":"¿","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"—",Q:"¹",R:"®",S:"©",T:"™",U:"♪",V:"₠",W:"‰",X:"α",Y:null,Z:null,"[":null,"\\":"⅛","]":"⅜","^":"⅝",_:"⅞","`":"Ω",a:"Æ",b:"Ð",c:"ª",d:"Ħ",e:null,f:"IJ",g:"Ŀ",h:"Ł",i:"Ø",j:"Œ",k:"º",l:"Þ",m:"Ŧ",n:"Ŋ",o:"ʼn",p:"ĸ",q:"æ",r:"đ",s:"ð",t:"ħ",u:"ı",v:"ij",w:"ŀ",x:"ł",y:"ø",z:"œ","{":"ß","|":"þ","}":"ŧ","~":"ŋ","":"■"},g0_greek:{"<":"«",">":"»","@":"ΐ",A:"Α",B:"Β",C:"Γ",D:"Δ",E:"Ε",F:"Ζ",G:"Η",H:"Θ",I:"Ι",J:"Κ",K:"Λ",L:"Μ",M:"Ν",N:"Ξ",O:"Ο",P:"Π",Q:"Ρ",R:"ʹ",S:"Σ",T:"Τ",U:"Υ",V:"Φ",W:"Χ",X:"Ψ",Y:"Ω",Z:"Ϊ","[":"Ϋ","\\":"ά","]":"έ","^":"ή",_:"ί","`":"ΰ",a:"α",b:"β",c:"γ",d:"δ",e:"ε",f:"ζ",g:"η",h:"θ",i:"ι",j:"κ",k:"λ",l:"μ",m:"ν",n:"ξ",o:"ο",p:"π",q:"ρ",r:"ς",s:"σ",t:"τ",u:"υ",v:"φ",w:"χ",x:"ψ",y:"ω",z:"ϊ","{":"ϋ","|":"ό","}":"ύ","~":"ώ","":"■"},g2_greek:{0:"°",1:"±",2:"²",3:"³",4:"×",5:"m",6:"n",7:"p",8:"÷",9:"’","!":"a",'"':"b","#":"£",$:"e","%":"h","&":"i","'":"§","(":":",")":"‘","*":"“","+":"k",",":"←","-":"↑",".":"→","/":"↓",":":"”",";":"t","<":"¼","=":"½",">":"¾","?":"x","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"?",Q:"¹",R:"®",S:"©",T:"™",U:"♪",V:"₠",W:"‰",X:"ɑ",Y:"Ί",Z:"Ύ","[":"Ώ","\\":"⅛","]":"⅜","^":"⅝",_:"⅞","`":"C",a:"D",b:"F",c:"G",d:"J",e:"L",f:"Q",g:"R",h:"S",i:"U",j:"V",k:"W",l:"Y",m:"Z",n:"Ά",o:"Ή",p:"c",q:"d",r:"f",s:"g",t:"j",u:"l",v:"q",w:"r",x:"s",y:"u",z:"v","{":"w","|":"y","}":"z","~":"Έ","":"■"},g0_cyrillic:{"@":"Ю",A:"А",B:"Б",C:"Ц",D:"Д",E:"Е",F:"Ф",G:"Г",H:"Х",I:"И",J:"Ѝ",K:"К",L:"Л",M:"М",N:"Н",O:"О",P:"П",Q:"Я",R:"Р",S:"С",T:"Т",U:"У",V:"Ж",W:"В",X:"Ь",Z:"З","[":"Ш","]":"Щ","^":"Ч","`":"ю",a:"а",b:"б",c:"ц",d:"д",e:"е",f:"ф",g:"г",h:"х",i:"и",j:"ѝ",k:"к",l:"л",m:"м",n:"н",o:"о",p:"п",q:"я",r:"р",s:"с",t:"т",u:"у",v:"ж",w:"в",x:"ь",z:"з","{":"ш","}":"щ","~":"ч","":"■"},g0_cyrillic__russian_bulgarian:{"&":"ы",Y:"Ъ","\\":"Э",_:"Ы",y:"ъ","|":"э"},g0_cyrillic__serbian_croatian:{"@":"Ч",J:"Ј",Q:"Ќ",V:"В",W:"Ѓ",X:"Љ",Y:"Њ","[":"Ћ","\\":"Ж","]":"Ђ","^":"Ш",_:"Џ","`":"ч",j:"ј",q:"ќ",v:"в",w:"ѓ",x:"љ",y:"њ","{":"ћ","|":"ж","}":"ђ","~":"ш"},g0_cyrillic__ukranian:{"&":"ї",Y:"І","\\":"Є",_:"Ї",y:"і","|":"є"},g2_cyrillic:{0:"m",1:"n",2:"p",3:"t",4:"x",5:"x",6:"°",7:"±",8:"²",9:"³","!":"a",'"':"b","#":"£",$:"e","%":"h","&":"i","'":"§","(":":",")":"‘","*":"“","+":"k",",":"←","-":"↑",".":"→","/":"↓",":":"¼",";":"½","<":"¾","=":"÷",">":"’","?":"”","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"?",Q:"©",R:"®",S:"¹",T:"ɑ",U:"Ί",V:"Ύ",W:"Ώ",X:"‰",Y:"₠",Z:"™","[":"⅛","\\":"⅜","]":"⅝","^":"⅞",_:"♪","`":"C",a:"D",b:"F",c:"G",d:"J",e:"L",f:"Q",g:"R",h:"S",i:"U",j:"V",k:"W",l:"Y",m:"Z",n:"Ά",o:"Ή",p:"c",q:"d",r:"f",s:"g",t:"j",u:"l",v:"q",w:"r",x:"s",y:"u",z:"v","{":"w","|":"y","}":"z","~":"Έ","":"■"},g0_arabic:{"#":"£","&":"ﻰ","'":"ﻱ","(":")",")":"(",";":"؛","<":">",">":"<","?":"؟","@":"ﺔ",A:"ﺀ",B:"ﺒ",C:"ﺏ",D:"ﺘ",E:"ﺕ",F:"ﺎ",G:"ﺍ",H:"ﺑ",I:"ﺓ",J:"ﺗ",K:"ﺛ",L:"ﺟ",M:"ﺣ",N:"ﺧ",O:"ﺩ",P:"ﺫ",Q:"ﺭ",R:"ﺯ",S:"ﺳ",T:"ﺷ",U:"ﺻ",V:"ﺿ",W:"ﻃ",X:"ﻇ",Y:"ﻋ",Z:"ﻏ","[":"ﺜ","\\":"ﺠ","]":"ﺤ","^":"ﺨ",_:"#","`":"ـ",a:"ﻓ",b:"ﻗ",c:"ﻛ",d:"ﻟ",e:"ﻣ",f:"ﻧ",g:"ﻫ",h:"ﻭ",i:"ﻰ",j:"ﻳ",k:"ﺙ",l:"ﺝ",m:"ﺡ",n:"ﺥ",o:"ﻴ",p:"ﻯ",q:"ﻌ",r:"ﻐ",s:"ﻔ",t:"ﻑ",u:"ﻘ",v:"ﻕ",w:"ﻙ",x:"ﻠ",y:"ﻝ",z:"ﻤ","{":"ﻡ","|":"ﻨ","}":"ﻥ","~":"ﻻ","":"■"},g2_arabic:{0:"٠",1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩","!":"ﻉ",'"':"ﺁ","#":"ﺃ",$:"ﺅ","%":"ﺇ","&":"ﺋ","'":"ﺊ","(":"ﭼ",")":"ﭽ","*":"ﭺ","+":"ﭘ",",":"ﭙ","-":"ﭖ",".":"ﮊ","/":"ﮔ",":":"ﻎ",";":"ﻍ","<":"ﻼ","=":"ﻬ",">":"ﻪ","?":"ﻩ","@":"à","[":"ë","\\":"ê","]":"ù","^":"î",_:"ﻊ","`":"é","{":"â","|":"ô","}":"û","~":"ç","":"■"},g0_hebrew:{"#":"£","[":"←","\\":"½","]":"→","^":"↑",_:"#","`":"א",a:"ב",b:"ג",c:"ד",d:"ה",e:"ו",f:"ז",g:"ח",h:"ט",i:"י",j:"ך",k:"כ",l:"ל",m:"ם",n:"מ",o:"ן",p:"נ",q:"ס",r:"ע",s:"ף",t:"פ",u:"ץ",v:"צ",w:"ק",x:"ר",y:"ש",z:"ת","{":"₪","|":"‖","}":"¾","~":"÷","":"■"},g1_block_mosaic_to_unicode__legacy_computing:{0:"🬏",1:"🬐",2:"🬑",3:"🬒",4:"🬓",5:"▌",6:"🬔",7:"🬕",8:"🬖",9:"🬗"," ":" ","!":"🬀",'"':"🬁","#":"🬂",$:"🬃","%":"🬄","&":"🬅","'":"🬆","(":"🬇",")":"🬈","*":"🬉","+":"🬊",",":"🬋","-":"🬌",".":"🬍","/":"🬎",":":"🬘",";":"🬙","<":"🬚","=":"🬛",">":"🬜","?":"🬝","`":"🬞",a:"🬟",b:"🬠",c:"🬡",d:"🬢",e:"🬣",f:"🬤",g:"🬥",h:"🬦",i:"🬧",j:"▐",k:"🬨",l:"🬩",m:"🬪",n:"🬫",o:"🬬",p:"🬭",q:"🬮",r:"🬯",s:"🬰",t:"🬱",u:"🬲",v:"🬳",w:"🬴",x:"🬵",y:"🬶",z:"🬷","{":"🬸","|":"🬹","}":"🬺","~":"🬻","":"█"},g1_block_mosaic_to_unicode__unscii_separated:{0:"",1:"",2:"",3:"",4:"",5:"",6:"",7:"",8:"",9:""," ":" ","!":"",'"':"","#":"",$:"","%":"","&":"","'":"","(":"",")":"","*":"","+":"",",":"","-":"",".":"","/":"",":":"",";":"","<":"","=":"",">":"","?":"","`":"",a:"",b:"",c:"",d:"",e:"",f:"",g:"",h:"",i:"",j:"",k:"",l:"",m:"",n:"",o:"",p:"",q:"",r:"",s:"",t:"",u:"",v:"",w:"",x:"",y:"",z:"","{":"","|":"","}":"","~":"","":""},g3:{0:"🭇",1:"🭈",2:"🭉",3:"🭊",4:"🭋",5:"◢",6:"🭌",7:"🭍",8:"🭎",9:"🭏"," ":"🬼","!":"🬽",'"':"🬾","#":"🬿",$:"🭀","%":"◣","&":"🭁","'":"🭂","(":"🭃",")":"🭄","*":"🭅","+":"🭆",",":"🭨","-":"🭩",".":"🭰","/":"▒",":":"🭐",";":"🭑","<":"🭪","=":"🭫",">":"🭵","?":"█","@":"┷",A:"┯",B:"┝",C:"┥",D:"🮤",E:"🮥",F:"🮦",G:"🮧",H:"🮠",I:"🮡",J:"🮢",K:"🮣",L:"┿",M:"•",N:"●",O:"○",P:"│",Q:"─",R:"┌",S:"┐",T:"└",U:"┘",V:"├",W:"┤",X:"┬",Y:"┴",Z:"┼","[":"→","\\":"←","]":"↑","^":"↓",_:" ","`":"🭒",a:"🭓",b:"🭔",c:"🭕",d:"🭖",e:"◥",f:"🭗",g:"🭘",h:"🭙",i:"🭚",j:"🭛",k:"🭜",l:"🭬",m:"🭭",n:null,o:null,p:"🭝",q:"🭞",r:"🭟",s:"🭠",t:"🭡",u:"◤",v:"🭢",w:"🭣",x:"🭤",y:"🭥",z:"🭦","{":"🭧","|":"🭮","}":"🭯","~":null,"":null}},V={};class Y{constructor(t){this.type=t.Ds,this.flashing=t.Os,this.concealed=t.Ks,this.size=t.It,this.sextants=t.mi()}}class K{constructor(){this.wi=" ",this.Si=" ",this.xi=d.WHITE,this.vi=d.BLACK,this.Ui=Q.Mt,this.Ri=!1,this.Di=p.Vt,this.ki=!1,this.Li=!1,this.Gi=null,this.Fi=!1,this.Oi=null,this.Hi=null}set Ni(t){this.wi=t}get Ni(){return this.wi}set Us(t){this.xi=t}get Us(){return this.xi}set xs(t){this.vi=t}get xs(){return this.vi}get et(){return this.Fi}ji(s){const i=this.Ui==Q.qt||this.Ui==Q.zt;this.Ui==Q.Mt||0==(32&this.wi.charCodeAt(0))&&i?(this.Si=X(this.wi,s),this.Oi>0&&(this.Si+=J.g2_latin[String.fromCharCode(this.Oi+64)]),this.Fi=!1,"g0_arabic"!=s&&"g2_arabic"!=s||(this.Fi=t.et(this.Si))):this.Ui==Q.qt?this.Si=X(this.wi,"g1_block_mosaic_to_unicode__legacy_computing"):this.Ui==Q.zt?this.Si=X(this.wi,"g1_block_mosaic_to_unicode__unscii_separated"):this.Ui==Q.Jt&&(this.Si=X(this.wi,"g3")),this.Gi=null}Pi(t){if(this.Ui!=Q.qt&&this.Ui!=Q.zt||!t.Ti)this.Gi=null,this.Si=" ";else{this.Gi=t.Ys,this.Ui=t.Ds;let s="g1_block_mosaic_to_unicode__legacy_computing";this.Ui==Q.zt&&(s="g1_block_mosaic_to_unicode__unscii_separated"),this.Si=X(t.Ys,s)}}get Ys(){return this.Si}get Ds(){return this.Ui}set Ds(t){this.Ui=t}set Os(t){this.Ri=t}get Os(){return this.Ri}get It(){return this.Di}set It(t){this.Di=t}set Ks(t){this.ki=t}get Ks(){return this.ki}set Ls(t){this.Li=t}get Ls(){return this.Li}vs(){const t=null!=this.Gi?this.Gi.charCodeAt(0):this.wi.charCodeAt(0);return t<=127&&32==(32&t)}Mi(){const t=this.wi.charCodeAt(0);return(this.Ui==Q.qt||this.Ui==Q.zt)&&t<=127&&32==(32&t)}mi(){const t=null!=this.Gi?this.Gi.charCodeAt(0):this.wi.charCodeAt(0);if(t>127)return null;if(t in V)return V[t];const s=t>=96?t-64:t-32,i=[];for(let t=0;t<6;t++)i.push(s&1<<t?"1":"0");return V[t]=i,i}}class Z extends K{constructor(t){super(),Object.assign(this,t)}set qi(t){this.Oi=t}get qi(){return this.Oi}set zi(t){this.Hi=t}get Ys(){return null==this.Hi?this.Si:this.Hi}}function X(t,s){if(!(s in J))throw Error("Cell getCharWithEncoding: bad encoding: "+s);if(t in J[s])return J[s][t];const i=s.match(/^(.+)__/);if(null!=i){const e=i[1];if(t in J[e])return J[s][t]=J[e][t],J[e][t]}return t}class W extends H{constructor(t,s,i){super(t,i),this.Ji=s,this.Vi=new Set}ns(){super.ns(),this.Yi=[],this.Ki=this.d.ft()}ds(t){super.ds(t),this.Zi(t)}ks(t,s,i,e,r,n,_){"ui"in this.Is&&this.Is.ui(n,r,s.It,s.xs),s.Ds!=Q.Mt&&s.Ds!=Q.Jt&&_?_&&(t.wt(" ").ht(i),this.Xi(n,r,s,e)):(this.Vs(t,s,i,e,r,n),s.Ds==Q.Jt&&t.ot("mosaic"))}Xi(t,s,i,e){if("Ci"in this.Is){const r=new Y(i);if(this.Is.Ci(t,s,r,e))return}const r=i.mi();if(!r.includes("1"))return;const n=(i.Ds==Q.qt?"c":"s")+r.join("");let _,h=H.Bi,o=H.fi;if(i.Ds==Q.qt&&(h=H.Bi+.3,o=H.fi+.2),!this.Vi.has(n)){this.Vi.add(n);const t=this.es.bt(n);if(i.Ds==Q.qt){t.ht({preserveAspectRatio:"none",width:h,height:o,viewBox:"0 0 12 18"});for(let s=0;s<6;s++)"1"==r[s]&&t.xt(6,6).Nt(s%2*6,6*Math.floor(s/2))}else{t.ht({preserveAspectRatio:"none",width:h,height:o,viewBox:"0 0 12 18"});for(let s=0;s<6;s++)"1"==r[s]&&t.xt(4,4).Nt(s%2*6+1,6*Math.floor(s/2)+2)}}_=i.Ds==Q.qt?this.Yi[t].Gt(n).Nt(s*H.Bi-.15,t*H.fi-.1).Ht(e):this.Yi[t].Gt(n).Nt(s*H.Bi,t*H.fi).Ht(e),this.Ji&&_.ht({width:h,height:o}),i.It!=p.Yt&&i.It!=p.Zt||_.ht("height",H.Qi),i.It!=p.Kt&&i.It!=p.Zt||_.ht("width",H.di),i.Os&&_.ot("flash"),i.Ks&&_.ot("conceal")}Zi(t){this.Yi[t]&&this.Yi[t].kt(),this.Yi[t]=this.Ki.ft()}Rs(t,s,i){return t==Q.Jt?{dx:H.yi.Wt.ts,dy:-.15,textLength:H.yi.Wt.$t,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:{dx:null,dy:null,textLength:i?H.Bi:null,lengthAdjust:i?"spacingAndGlyphs":null,"text-anchor":null,transform:null,class:null}}}class ${constructor(t){this.os=t,this.Wi=0,this.$i=0,this.te=[]}pos(t,s){return(t=parseInt(t))<0||t>39||(s=parseInt(s))<0||s>24||(this.Wi=t,this.$i=s),this}putG0(t,s){let i=null;if(void 0!==s){const t=parseInt(s);t>=0&&t<=15&&(i=t)}const e=t.charCodeAt(0);return e<32||e>127||this.te.push({se:this.Wi,ie:this.$i,Ds:"g0",Ys:t,qi:i}),this}putG1(t){const s=t.charCodeAt(0);return s<32||s>127||s>=64&&s<=95||this.te.push({se:this.Wi,ie:this.$i,Ds:"g1",Ys:t}),this}putG2(t){const s=t.charCodeAt(0);return s<32||s>127||this.te.push({se:this.Wi,ie:this.$i,Ds:"g2",Ys:t}),this}putG3(t){const s=t.charCodeAt(0);return s<32||s>127||this.te.push({se:this.Wi,ie:this.$i,Ds:"g3",Ys:t}),this}putAt(){return this.te.push({se:this.Wi,ie:this.$i,Ds:"char",Ys:"@"}),this}end(){return this.os.ee(this.te),this.os.re(),this}}class tt extends H{}const st=["SPLASH","ENGINEERING","ADVERT","UK"];class it{constructor(t,s){if(this.ne=null,"object"==typeof window&&(this.ne=window),this._e={he:!0},"object"==typeof s&&("webkitCompat"in s&&!s.webkitCompat&&(this._e.he=!1),"dom"in s&&(this.ne=s.dom)),null==this.ne)throw Error("TeletextController E24: No window dom object available");this.oe=new W(t,this._e.he,this.ne),this.os=t,this.le=1,this.Ae=0,this.ae(),this.ge=null,this.ce=null,this.ue=0,this.Ce=0,this.Ee=null}setRowFromOutputLine(s,i){const e=t.st(i);this.os.Ie(s,e)}setRow(t,s){this.os.Ie(t,s)}setPageFromOutputLines(s,i){const e=t.it(s);void 0!==i&&(e[0]=this.Be(i)),this.setPageRows(e)}setPageRows(t){this.os.fe(),this.os.de(t)}Be(s){return(s=t.st(s)).join("").substring(0,32).padStart(40," ")}showTestPage(){this.loadPageFromEncodedString(i[st[this.Ae]]),this.Ae++,4==this.Ae&&(this.Ae=0)}showRandomisedPage(){const t=[];for(let s=0;s<25;s++){const s=[];for(let t=0;t<40;t++)s.push(String.fromCharCode(127*Math.random()));t.push(s.join(""))}this.setPageRows(t)}loadPageFromEncodedString(s,i){const e=t.tt(s,this.ne.atob);void 0!==i&&(e[0]=this.Be(i)),this.setPageRows(e)}ae(){this.ne.addEventListener("ttx.reveal",(()=>this.oe.Zs())),this.ne.addEventListener("ttx.mix",(()=>this.oe.ti())),this.ne.addEventListener("ttx.subtitlemode",(()=>this.oe._i()))}toggleReveal(){this.oe.Zs()}toggleMixMode(){this.oe.ti()}toggleBoxMode(){this.oe._i()}toggleGrid(){this.oe.Ws()}setLevel(t){this.os.Qe(t)}addTo(t){this.pe=t,this.oe.Ct(t)}setFont(t){this.Ee=t,this.oe.Xs(t)}clearScreen(t){this.os.fe(),this.os.be(t)}setAspectRatio(t){if("natural"==t)return void this.oe.ei(t);const s=parseFloat(t);if(Number.isNaN(s))throw Error("E80 setAspectRatio: bad number");this.oe.ei(s)}setHeight(t){const s=parseFloat(t);if(Number.isNaN(s))throw Error("E98 setHeight: bad number");this.oe.ri(s),this.ce=s}setDefaultG0Charset(t,s){if(null==t.match(/g0_/))throw Error("E130 setDefaultG0Charset: Bad g0 set");this.os.ye(t,s)}setSecondG0Charset(t,s){if(null==t.match(/g0_/))throw Error("E136 setSecondG0Charset: Bad g0 set");this.os.me(t,s)}setG2Charset(t,s){if(null==t.match(/g2_/))throw Error("E142 setG2Charset: Bad g2 set");this.os.we(t,s)}remove(){if(this.oe.Bs(),this.pe){const t=document.querySelector(this.pe);t&&t.removeChild(t.firstChild)}this.oe=null}setView(t){switch(this.remove(),t){case"classic__font-for-mosaic":this.oe=new tt(this.os,this.ne);break;case"classic__graphic-for-mosaic":this.oe=new W(this.os,this._e.he,this.ne);break;default:throw Error("setView E126: bad view name:"+t)}this.ce&&this.oe.ri(this.ce),this.Ee&&this.oe.Xs(this.Ee),this.pe&&this.oe.Ct(this.pe),this.os.re()}registerViewPlugin(t){t.registerWithView(this.oe),this.os.re()}enhance(){return new $(this.os)}writeBytes(t,s,i){this.os.Se(t,s,i)}writeByte(t,s,i,e){this.os.xe(t,s,i,e)}plot(t,s){this.os.ve(t,s)}plotPoints(t,s,i,e){this.os.Ue(t,s,i,e)}getBytes(){return this.os.Re()}getScreenImage(){return this.oe.hi()}updateDisplay(){this.os.re()}}class et{constructor(t){this.De=t,this.ke=[]}As(t){return this.ke.push(t),this.ke.length-1}re(t){this.ke.forEach((s=>null!=s&&s(this.De,t)))}Bs(t){this.ke[t]=null}}class rt{constructor(){this.Le=!1,this.Ge=[]}get Hs(){return this.Le}set Hs(t){this.Le=t}Fe(t){this.Ge.push(t)}Ss(t){if(t>=this.Ge.length)throw Error("RowModel.getCell E20 bad cell index");return this.Ge[t]}}const nt=25,_t=40,ht=[b[1.5],b[2.5]],ot=new class{constructor(){this.Oe=[];for(let t=0;t<nt;t++){const t=[];for(let s=0;s<_t;s++)t.push(new K);this.Oe.push(t)}this.He="g0_latin",this.Ne=null,this.je="g2_latin",this.Pe=y.charFromAttribute(y.START_BOX),this.Te=y.charFromAttribute(y.END_BOX),this.Me=b[1],this.qe=[],this.gs=new et(this)}re(){this.gs.re()}Ie(t,s){if(t>=nt)throw Error("PageModel E29 bad row number");this.ze(t,s),this.gs.re()}de(t){(t=t.slice(0,nt)).forEach(((t,s)=>{this.ze(s,t)})),this.gs.re()}Se(t,s,i){for(let e=s,r=0;e<nt&&r<i.length;e++,r++){const s=[...i[r]].slice(0,_t-t);for(let i=t,r=0;i<_t&&r<s.length;i++,r++)this.Oe[e][i].Ni=s[r]}this.gs.re()}xe(t,s,i,e){t>=0&&t<_t&&s>=0&&s<nt&&(this.Oe[s][t].Ni=i),void 0!==e&&e&&this.gs.re()}ve(t,s,i){const e=Math.floor(s/3),r=Math.floor(t/2),n=this.Oe[e][r].wi.charCodeAt(0);if(n<32)return;if(i?32==n:255==n)return;const _=t-2*r+2*(s-3*e);let h=0;n<64?h=n-32:n>=96&&(h=n-64),i?h&=~(1<<_):h|=1<<_,this.Oe[e][r].wi=String.fromCharCode(h>=32?h+64:h+32)}Ue(t,s,i,e){let r=0,n=0;for(let _=0;_<e.length&&s+r<75;_++)t+n<80&&(255==e[r*i+n]?this.ve(t+n,s+r):this.ve(t+n,s+r,!0)),n++,n==i&&(r++,n=0)}ze(t,s){let i=[...s];if(i=i.slice(0,_t),i.forEach(((s,i)=>{const e=s.charCodeAt(0);if(Number.isNaN(e)||e>127)throw Error(`PageModel E51 failed to write row: bad character code (${e}) at row ${t} col ${i}`);this.Oe[t][i].Ni=s})),i.length<_t)for(let s=i.length;s<_t;s++)this.Oe[t][s].Ni=" "}Qe(t){this.Me=t,this.gs.re()}be(t){if(void 0===t||t){const t=[];for(let s=0;s<nt;s++)t.push("");this.de(t)}else for(let t=0;t<nt;t++)this.ze(t,"")}ye(t,s){this.He=t;const i=t.match(/^g0_([a-z]+)/);if(null!=i){const t="g2_"+i[1];t in J?this.je=t:"hebrew"==i[1]&&(this.je="g2_arabic")}s&&this.gs.re()}me(t,s){this.Ne=t,s&&this.gs.re()}we(t,s){this.je=t,s&&this.gs.re()}ps(t){if(t>=nt)throw Error("PageModel.getRow E42 bad rowNum");const s=new rt;let i,e,r=Q.Mt,n=d.WHITE,_=!1,h=p.Vt,o=!1,l=!1,A=!1,a=!1,g=d.BLACK,c=Q.qt,u={Ti:!1,Ys:" ",Ds:Q.qt},C=[];return ht.includes(this.Me)&&(C=this.qe.filter((s=>s.ie==t))),this.Oe[t].forEach(((E,I)=>{const B=E.Ni,f=((t,s)=>{let i=null,e=null;return s in R&&k[t].includes(s.charCodeAt(0))?s in S?(i=y.TEXT_COLOUR,e=R[s]):s in v?(i=y.MOSAIC_COLOUR,e=R[s]):i=R[s]:s.charCodeAt(0)<=31&&(i=y.Xt),{Je:i,Ve:e}})(this.Me,B);switch(i=n,E.Ds=r,E.Ls=a,e=o,f.Je!=y.STEADY&&(E.Os=_),f.Je!=y.NORMAL_SIZE&&(E.It=h),f.Je!=y.CONCEAL&&(E.Ks=l),A&&(f.Je!=y.HOLD_MOSAICS&&(u.Ti=!1,u.Ys=" "),A=!1),f.Je){case y.TEXT_COLOUR:r=Q.Mt,n=f.Ve,l=!1,E.Pi(u);break;case y.MOSAIC_COLOUR:r=c,n=f.Ve,l=!1,E.Pi(u);break;case y.NEW_BACKGROUND:g=i,E.Pi(u);break;case y.BLACK_BACKGROUND:g=d.BLACK,E.Pi(u);break;case y.CONTIGUOUS_GRAPHICS:c=Q.qt,E.Ds==Q.zt&&(E.Ds=Q.qt),r==Q.zt&&(r=Q.qt),E.Pi(u);break;case y.SEPARATED_GRAPHICS:c=Q.zt,E.Ds==Q.qt&&(E.Ds=Q.zt),r==Q.qt&&(r=Q.zt),E.Pi(u);break;case y.ESC:this.Ne&&(o=!e),E.Pi(u);break;case y.FLASH:_=!0,E.Pi(u);break;case y.STEADY:E.Os=!1,_=!1,E.Pi(u);break;case y.NORMAL_SIZE:E.It=p.Vt,h=p.Vt,E.Pi(u);break;case y.DOUBLE_HEIGHT:h=p.Yt,s.Hs=!0,E.Pi(u);break;case y.DOUBLE_WIDTH:h=p.Kt,E.Pi(u);break;case y.DOUBLE_SIZE:h=p.Zt,s.Hs=!0,E.Pi(u);break;case y.CONCEAL:E.Ks=!0,l=!0,E.Pi(u);break;case y.HOLD_MOSAICS:u.Ti=!0,E.Pi(u);break;case y.RELEASE_MOSAICS:A=!0,E.Pi(u);break;case y.START_BOX:I>=1&&this.Oe[t][I-1].Ni==this.Pe&&(E.Ls=!0,a=!0),E.Pi(u);break;case y.END_BOX:I+1<_t&&this.Oe[t][I+1].Ni==this.Te&&(a=!1),E.Pi(u);break;case y.Xt:E.Pi(u);break;default:E.ji(e?this.Ne:this.He),E.Mi()&&(u.Ys=B,u.Ds=E.Ds)}E.Us=i,E.xs=g,C.filter((t=>t.se==I)).forEach((t=>{const s=new Z(E);E=s,"g0"==t.Ds?(E.Ni=t.Ys,E.qi=t.qi,E.Ds=Q.Mt,E.ji(e?this.Ne:this.He)):"g1"==t.Ds?this.Me==b[2.5]&&(E.Ni=t.Ys,E.Ds=c,E.ji()):"g2"==t.Ds?(E.Ni=t.Ys,E.Ds=Q.Mt,E.ji(this.je)):"g3"==t.Ds?this.Ye(t.Ys)&&(E.Ni=t.Ys,E.Ds=Q.Jt,E.ji()):"char"==t.Ds&&(E.zi=t.Ys,E.Ds=Q.Mt)})),s.Fe(E)})),s}ee(t){this.qe=t}fe(){this.qe=[]}Re(){const t=new Uint8Array(1e3);return this.Oe.forEach(((s,i)=>{s.forEach(((s,e)=>{t[i*_t+e]=s.Ni.charCodeAt(0)}))})),t}Ye(t){return this.Me!=b[1.5]||-1!="Q[\\]".indexOf(t)}};function lt(t){return new it(ot,t)}export{y as Attributes,d as Colour,b as Level,lt as Teletext};//# sourceMappingURL=teletext.min.js.map |
// SPDX-FileCopyrightText: (c) 2023 Tech and Software Ltd. | ||
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-uk.ltd.TechAndSoftware-1.0 | ||
// LicenseRef-uk.ltd.TechAndSoftware-1.0 refers to https://tech-and-software.ltd.uk/LICENSES/LicenseRef-uk.ltd.TechAndSoftware-1.0.txt | ||
var t,s;t=this,s=function(t){"use strict";class s{static tt(t,s){const e=(t=t.replace(/-/g,"+").replace(/_/g,"/")).length%4;if(e){if(1===e)throw Error("Utils.decodeBase64URLEncoded E16: Input base64url string is the wrong length to determine padding");t+=Array(5-e).join("=")}const n=s(t),r=[];let h=[];for(const t of function*(t){let s=6,e=0;for(const n of t){const t=i(n.charCodeAt(0));for(const i of t)e|=i<<s,s--,s<0&&(yield e,s=6,e=0)}s<6&&(yield e)}(n))h.push(String.fromCharCode(t)),40==h.length&&(r.push(h.join("")),h=[]);return h.length<40&&r.push(h.join("")),r}static st(t){const s=[];let i=!1;for(const e of[...t]){const t=e.charCodeAt(0);27==t?i=!0:t>=128&&t<=159?(s.push(String.fromCharCode(t-128)),i=!1):t>=160?(s.push(""),i=!1):i?(s.push(String.fromCharCode(t-64)),i=!1):s.push(e)}return s}static it(t){const i=[],e=/^OL,(\d{1,2}),(.*)/;for(const n of[...t]){const t=n.match(e);null!=t&&(i[t[1]]=s.st(t[2]))}return i}static et(t){return-1!="ﻰﺋﺊﭼﭽﭘﭙﮔﻎﻼﻬﻪﻊﺔﺒﺘﺎﺑﺗﺛﺟﺣﺧﺳﺷﺻﺿﻃﻇﻋﻏﺜﺠﺤﺨـﻓﻗﻛﻟﻣﻧﻫﻰﻳﻴﻌﻐﻔﻘﻠﻤﻨ".indexOf(t)}}function i(t){let s=[];for(let i=7;i>=0;i--)s.push(t&1<<i?1:0);return s}const e={ENGINEERING:"QIECBAgQIIcWLGg2EDdy3QIKnXKgYtUE7f2QA2TB0wYr2DECAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAYMS54fzJmix4-YCDToOLOjyZ0WLSkzo6AkcGHuZUcRHlB4dgyAAQAEABAAQAEABAAQAEABAAQAEABAAQAEABAAQAEABAAWDP9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_YNCho9zImSoAqBGoAp0FUy8-iChhz5UCA4MPEuZYgTAFyAFg1_f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f2DYCAAoACACeQHkBdYTJlixIkSKlSJEoUKIEBQABAAQAEABYN_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_39g4AgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgGDn9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_YsAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIBix_f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f2LICAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAYs_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_39i0AgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgGLX9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_Ytq-jT0yg7OXZs39w0Pzh3Ao_LLl3BZuHPl3dMIGllyBIWzrlLmkKJGTSJUycsoUqlZJYtXLzLBiyZlWjVs3IuHLp2UePXz9AgQokaBIlTJ0ChSqVoFi1cvQMGLJmgaNWzdA4cunaB49fP0ECDChoIkWNHQSJMqWgmTZ09BQo0qaCpVrV0FizatoLl29fQYMOLGgyZc2dBo06taDZt3b0HDjy5oOnXt3QePPr2g-ff38pgw4sZHJlzZyujTq1ktm3dvNcOPLmW6de3cn48-vZf59_fwZiHv3Y8uHYIjbMPPQDVCxcLf4E0-mXDk8mI-_dlFCn5a9_DKr6q-qvqr6q-qvqr6AFS390DJoGQKr6q-qvqr6q-qvqr6o",ADVERT:"QIECBAgQIJ9KDDmRUDZi3QU8PRk1QQeHIHDaIEDJiwYumDACdDwcnbLy6aeeXbl3dECBAgQIECBAgQIECBAgQIHwZkvcoCx0og8LNGjYwQPEjzpoWaNjBA82YHnTQwabEjTpowPEiBAgLHSiBbs1atjFA9SPe2pZqQNUHX1qQatSlrqQNW-5UsaIECAsdKIFidUqQJUCVAlVKlipchQJUCJanVIEqpAlSqlC5CgQIEB0ogQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQHSKBAgQYEH7ogQaGCApw_fEm54R3PCm5JuSKHoFUEVIECAudIoECBB6-___TB-_v0JTU_WqkZHFyQKHmjYgYBECpAqQIC50igQIEH___3_-iD__6FFSAig-IP6JCg26lzRr3avEgFUgLnSKBAg1f1X9lv_9NSBAgI6G-HX1V_EqBUqQJUqXBzagVSAudIoECD9_Qa2qL__6IMDzoq682qdAgQIEARAgQIECBAgVIC50igQIP_9AiaoFX__0VfV_1kjQIECBAgQBECBAgAoECpAgLnSKBBq__0CBCgQa___oreokCBAgQIECBAgQBECBAgVIECAudIoEHr__QIECBAg3_36FAgQIECBAgQIECAIgQIFSBAgQIAZ0igQf_7dAgKIECAinKf9bTR9QIv-N6i_ofzNagQIECBAgJnSKDR__tUBRAoe6NiBB_XYf_rqg_q2iD-gRb-iBAgQIECAmdIoNX_-1QFECDrq9IMH9h664P_D-w34P7DZ4ToECBAgQICZ0ig___5TQ8SfEHzQ82MPCzpoedEHzA82MPjDQ0-LNDSk0JnSOD___lNXVh_Qf9T3cx_oP-prqa_1S3Y0_q_zX-s1NdTUmdI6v_9-U1NUH9B_1NdTX-g_6mvpL_wMNTX-g1Nf6DAz1tSZ0j-_v0JREjQokaFEhRIUSNCiRoUCNAjRoEaBEhRo0CNGgBnSP9OgQFECCNPpIIVKfDkVaUWmggzoiCFPny5M6PTQIECAGdIjUAGlJnR0DBu5coGrFm0YMEE-kgpxYqChBjxUDNuwQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy92np007s6AFSy9tOXvzQA7O_ryQTd-7L5DQVtpBJ3ZMvg",UK:"QIECBAgQIIcWLGg2EDFy2QIJu_cgZNUETLjQA2TN0xYr2DAodJIECBAgQIEGDB4_PUCBAgQIECBAgQIECBAgQIEANkvaMih0kgQIECDA1Qfv__OgQYGCBAgQIECBAgQIECBAgQIECBAgKHSSBAgQIH6FR-__-v7___oECBAgQIEAORPmxUE6LXpoECAodJIECBAoQKum7______9-gQIECBAgQA82_Zs39-aB8-QIAh0kgQIECBAgSev_____v06BAgQIECBAgQIECBAgQIECBAgKHSSBAgQIECBR00____-_w9GCBAgQIECBAgQIECBAgQIECAodJIECBAgQIECD8rx________ECBAgQIECBAgQIECBAgQICh0kgQIECBAgQLETRlv_______6oECBAgQIECBAgQIECBAgKHSyBAgQIHGQlwYIEH_-_x_____9-dECBAgQIECBAgQIECAIdLIECDAmJbfz_-0RJ0qBV________7sECBAgQIECBAgQIAh0sgQIMzAl-__fX5Sg0JECvX______586IECBAgQIECBAgCHSyBAgwJiW9OjX_0qBAgQIEX________-l8fPjBAgQIECAIdLIEHBYhQIECBQxQICWDhg5fv____________tUCBAgQIAh0sgzIECBAgQIEGlAgQEtP_______________-lQIECBAgCHSyBUwQIECBAgQakCBASQqv_____________-6FAgQIECAIdLIECJygQIECBAgaoEBJBg______________5-OiBAgQIAh0sgQKGKBAgQIEHBKgJIMH7____8v__________QoECBAgCHSyBRmQIECBA4RoECAkgVoVaNel________r16FAgQIECAIdLINCFAgwOEyBAgQICSBAgQePn7___r06RAgQIECBAgQIAh0sgQLeKxCgQIECBAgJIECDR__v0aNGhQIECBAgQIECBAgCHSSBAgQIECBAgQIECBAgQYP3_-1QIECBAgQIECBAgQIECAIdJIECBAgQIECBAgQIECBB6boUSBAgQIECBAgQIECBAgQIAh0kgQIECBAgQIECBAgQIFStAgQIECBAgQIECBAgQIECBAgAzsvjognZe_MFIy4cmzTuy8wdTfwQU-G_l0DVKy-lhyad6A",SPLASH:"QIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECAsaMIEGDx8YIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQICxowg0N2bdmgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgLGjCBFvz9_6BAZQIECBAgQIECAig0NECBAgQIECBAgQIECAsaMcOD5tjyoGCBAgQIECBAgQICLhCgQIECBAgQIECBAgQICxowoTod79ArSEcHBAgQIECBAg0ITKBAgQcGCBAgQIECBAgLGjCBBgXIUCAyRXmlLBAgQIECBuZ4fPn___aoECBAgQIECBAaQIECBAgQIEBFAgQaTPDh8-f___-vXo9f9qgQIECBAgQIECBAgQIEBFAgQcOHz5____69ejRoECBAg__0CBAgQIECBAgQIECBAgQEUCL___r16NGXQIOHDh8-NCOD-3QIECBAgQIECBAgQIECBARQINf0ug-fPi9evRo0aBAgI6v6VAgQIECBAgQIECBAgQIEBFAgRf2hfBw4cOHD58-fPiAj-_oECBAgQIECBAgQIECBAgQEUCBBr-l0SNGjRo0CBAgQEcH9qgQIECBAgQIECBAgQIECBARQIECL-0Lr169ev-fPnxAR1f0KBAgQIECBAgQIAiBAgQIEBFAgQINf3hw4cOCBAgQIEBH-_QIECBAgQIECBAgCIECBAgQIEB1ARRL1-_____________7VAgOIECBAgQIECAIgQIECBAgQHUBNAgQf26BAgQIN_8ijRoECA4gQIECBAgQIAiBAgQIECA6gQE0CDV_QoECBAgRf2iBAgQIEBxAgQIECBAgCIECBAgQIDqBAgQE0aFAgQIECBAgQIECBAgQHECBAgQIECAIgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIBp0Kg3cNqDSggdMuPRh3ZOe_N074eWVf0y7MvTL46IECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQKMalAyYMmaCplx6ECZBT35unfDyyoJnTIuQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECA"},n="http://www.w3.org/2000/svg";let r,h,_=0;class o{constructor(){}nt(){return this.rt}ht(){this.rt=null}_t(t,s){if("object"==typeof t)for(const s in t)null==t[s]?this.rt.removeAttribute(s):this.rt.setAttribute(s,t[s]);else{if(void 0===s)return this.rt.getAttribute(t);null==s?this.rt.removeAttribute(t):this.rt.setAttribute(t,s)}return this}ot(t){if(!this.lt(t)){const s=this.At();s.push(t),this.rt.setAttribute("class",s.join(" "))}return this}lt(t){return-1!==this.At().indexOf(t)}At(){const t=this.rt.getAttribute("class");return null==t?[]:t.split(" ")}gt(t){return this.lt(t)&&this.rt.setAttribute("class",this.At().filter((s=>s!==t)).join(" ")),this}ct(t){return this.lt(t)?this.gt(t):this.ot(t),this}ut(t,s){if("object"==typeof t)for(const s in t)null==t[s]?delete this.rt.dataset[s]:this.rt.dataset[s]=t[s];else{if(void 0===s)return this.rt.dataset[t];null==s?delete this.rt.dataset[t]:this.rt.dataset[t]=s}return this}}class l extends o{constructor(t){return super(),r=t,h=r.document,this.rt=h.createElementNS(n,"svg"),this.rt.setAttribute("xmlns",n),this}Ct(t){const s=h.querySelector(t);if(!s)throw Error("@techandsoftware/teletext: E117: addTo failed to match provided selector");return s.appendChild(this.rt),this}Et(t){return this.rt.setAttribute("viewBox",t),this}It(t,s){return this.rt.setAttribute("width",t),this.rt.setAttribute("height",s),this}ft(t){const s=h.createElementNS(n,"style");return s.append(t),this.rt.append(s),this}Bt(){const t=new a;return this.rt.append(t.nt()),t}dt(){return this.rt.clientWidth}Qt(){return this.rt.clientHeight}bt(t){const s=new u(t);return this.rt.append(s.nt()),s}}class a extends o{constructor(){return super(),this.rt=h.createElementNS(n,"g"),this.yt=[],this}Bt(){const t=new a;return this.rt.append(t.nt()),this.yt.push(t),t}wt(t){const s=new C(t);return this.rt.append(s.nt()),this.yt.push(s),s}xt(){const t=new E;return this.rt.append(t.nt()),t}St(t,s){const i=new f(t,s);return this.rt.append(i.nt()),this.yt.push(i),i}vt(){return this.yt[this.yt.length-1]}Ut(){return this.yt}kt(t){return this.rt.setAttribute("clip-path",`url("#${t.nt().id}")`),this}Rt(){return this.rt.removeAttribute("clip-path"),this}Dt(){this.rt.parentNode&&this.rt.parentNode.removeChild(this.rt),this.rt=null,this.yt.forEach((t=>t.ht())),this.yt=[]}Ft(t,s,i,e){const n=new B(t,s,i,e);return this.rt.append(n.nt()),this.yt.push(n),n}Gt(t){const s=new c(t);return this.rt.append(s.nt()),this.yt.push(s),s}Lt(t,s){const i=new g(t,s);return this.rt.append(i.nt()),this.yt.push(i),i}Ht(t,s){const i=new A(t,s);return this.rt.append(i.nt()),this.yt.push(i),i}}class A extends o{constructor(){return super(),this.rt=h.createElementNS(n,"svg"),this}attr(...t){return this._t(...t)}get node(){return this.nt()}}class g extends o{constructor(t,s){return super(),this.rt=h.createElementNS(n,"image"),this.rt.setAttribute("width",parseInt(t)),this.rt.setAttribute("height",parseInt(s)),this}attr(...t){return this._t(...t)}}class c extends o{constructor(t){return super(),this.rt=h.createElementNS(n,"use"),this.rt.setAttribute("href","#"+t),this}jt(t){return this.rt.setAttribute("fill",t),this}Nt(t,s){return this.rt.setAttribute("x",t),this.rt.setAttribute("y",s),this}}class u extends o{constructor(t){return super(),this.rt=h.createElementNS(n,"symbol"),this.rt.setAttribute("id",t),this}St(t,s){const i=new f(t,s);return this.rt.append(i.nt()),i}}class C extends o{constructor(t){return super(),this.rt=h.createElementNS(n,"text"),this.rt.append(t),this}wt(t){return this.rt.textContent=t,this}jt(t){return this.rt.setAttribute("fill",t),this}}class E extends o{constructor(){return super(),this.rt=h.createElementNS(n,"defs"),this}Ot(){const t=new I;return this.rt.append(t.nt()),t}Pt(t){return[...this.rt.querySelectorAll(t)].map(d)}St(t,s){const i=new f(t,s);return this.rt.append(i.nt()),i}}class I extends o{constructor(){return super(),this.rt=h.createElementNS(n,"clipPath"),this.rt.setAttribute("id","clipPath-"+_),_++,this}Ut(){return[...this.rt.children].map(d)}qt(t){this.rt.appendChild(t.nt())}}class f extends o{constructor(t,s){if(super(),t instanceof r.SVGElement)return this.rt=t,this;const i=t;return this.rt=h.createElementNS(n,"rect"),this.rt.setAttribute("width",parseInt(i)),this.rt.setAttribute("height",parseInt(s)),this}jt(t){return this.rt.setAttribute("fill",t),this}Nt(t,s){return this.rt.setAttribute("x",t),this.rt.setAttribute("y",s),this}dt(t){return void 0===t?parseInt(this.rt.getAttribute("width")):(this.rt.setAttribute("width",parseInt(t)),this)}Qt(t){return void 0===t?parseInt(this.rt.getAttribute("height")):(this.rt.setAttribute("height",parseInt(t)),this)}Dt(){this.rt.parentNode&&this.rt.parentNode.removeChild(this.rt),this.rt=null}}class B extends o{constructor(t,s,i,e){return super(),this.rt=h.createElementNS(n,"line"),this.rt.setAttribute("x1",t),this.rt.setAttribute("y1",s),this.rt.setAttribute("x2",i),this.rt.setAttribute("y2",e),this}}function d(t){let s;if("SVGRectElement"!==t.constructor.name)throw Error("SVG:wrapSVGElement Unable to wrap SVG element of type "+t.constructor.name);return s=new f(t),s}const Q={BLACK:Symbol(),RED:Symbol(),GREEN:Symbol(),YELLOW:Symbol(),BLUE:Symbol(),MAGENTA:Symbol(),CYAN:Symbol(),WHITE:Symbol()};Object.freeze(Q);const p={Mt:Symbol(),Tt:Symbol(),zt:Symbol(),Jt:Symbol()};Object.freeze(p);const b={Vt:Symbol(),Yt:Symbol(),Kt:Symbol(),Zt:Symbol()};Object.freeze(b);class y{static charFromTextColour(t){if(t in U)return U[t];throw Error("Attributes.charFromTextColour: bad colour: "+t)}static charFromGraphicColour(t){if(t in k)return k[t];throw Error("Attributes.charFromGraphicColour: bad colour")}static charFromAttribute(t){if(t in R)return R[t];throw Error("Attributes.charFromAttribute: bad attribute")}}function m(t){return w[t]}y.TEXT_COLOUR=p.Mt,y.MOSAIC_COLOUR=Symbol(),y.NEW_BACKGROUND=Symbol(),y.BLACK_BACKGROUND=Symbol(),y.CONTIGUOUS_GRAPHICS=p.Tt,y.SEPARATED_GRAPHICS=p.zt,y.ESC=Symbol(),y.FLASH=Symbol(),y.STEADY=Symbol(),y.NORMAL_SIZE=b.Vt,y.DOUBLE_HEIGHT=b.Yt,y.DOUBLE_WIDTH=b.Kt,y.DOUBLE_SIZE=b.Zt,y.CONCEAL=Symbol(),y.HOLD_MOSAICS=Symbol(),y.RELEASE_MOSAICS=Symbol(),y.START_BOX=Symbol(),y.END_BOX=Symbol(),y.Xt=Symbol();const w={[Q.BLACK]:"#000",[Q.RED]:"#f00",[Q.GREEN]:"#0f0",[Q.YELLOW]:"#ff0",[Q.BLUE]:"#00f",[Q.MAGENTA]:"#f0f",[Q.CYAN]:"#0ff",[Q.WHITE]:"#fff"};Object.freeze(w);const x={"\0":Q.BLACK,"":Q.RED,"":Q.GREEN,"":Q.YELLOW,"":Q.BLUE,"":Q.MAGENTA,"":Q.CYAN,"":Q.WHITE};Object.freeze(x);const S={"":Q.BLACK,"":Q.RED,"":Q.GREEN,"":Q.YELLOW,"":Q.BLUE,"":Q.MAGENTA,"":Q.CYAN,"":Q.WHITE};Object.freeze(S);const v={"\b":y.FLASH,"\t":y.STEADY,"\n":y.END_BOX,"\v":y.START_BOX,"\f":y.NORMAL_SIZE,"\r":y.DOUBLE_HEIGHT,"":y.DOUBLE_WIDTH,"":y.DOUBLE_SIZE,"":y.CONCEAL,"":y.CONTIGUOUS_GRAPHICS,"":y.SEPARATED_GRAPHICS,"":y.ESC,"":y.BLACK_BACKGROUND,"":y.NEW_BACKGROUND,"":y.HOLD_MOSAICS,"":y.RELEASE_MOSAICS},U={};for(const t in x)U[x[t]]=t,v[t]=x[t];Object.freeze(U);const k={};for(const t in S)k[S[t]]=t,v[t]=S[t];Object.freeze(k),Object.freeze(v);const R={};for(const t in v)R[v[t]]=t;Object.freeze(R);const D={0:Symbol(),1:Symbol(),1.5:Symbol(),2.5:Symbol()};Object.freeze(D);const F={};F[D[0]]=[1,2,3,4,5,6,7,8,9,17,18,19,20,21,22,23],F[D[1]]=[...F[D[0]]].concat([10,11,12,13,24,25,26,27,28,29,30,31]),F[D[1.5]]=[...F[D[1]]].concat([0,16]),F[D[2.5]]=[...F[D[1.5]]].concat([14,15]),Object.freeze(F);const G=10,L=10,H={Wt:{$t:10.4,ts:-5.2},ss:{$t:L,ts:-4.5}};Object.freeze(H);class j{constructor(t,s){this.es=new l(s).Et("0 0 400 250").It(600,500)._t({preserveAspectRatio:"none",style:"font-family: sans-serif"}).ft("@font-face {\nfont-family: 'Unscii';\nsrc: url('fonts/unscii-16.woff') format('woff'), \nurl('fonts/unscii-16.ttf') format('truetype'),\nurl('fonts/unscii-16.otf') format('opentype');\nunicode-range: U+0000-00FF, U+2022, U+2500, U+2502, U+250C, U+2510, U+2514, U+2518, U+251C, U+251D, U+2524, U+2525, U+252C, U+252F, U+2534, U+2537, U+253C, U+253F, U+2588, U+258C, U+2590, U+2592, U+25CB, U+25CF, U+25E2-25E5, U+2B60-2B63, U+E0C0-E0FF, U+1FB00-1FB70, U+1FB75, U+1FBA0-1FBA7;\n-webkit-font-smoothing: none;\nfont-smooth: never;\n}\n@font-face {\nfont-family: 'Bedstead';\nsrc: url('fonts/bedstead.otf') format('opentype');\nunicode-range: U+0000-00FF;\n}\n@keyframes blink {\nto {\nvisibility: hidden;\n}\n}\n@keyframes fancyblink {\nfrom {\nfilter: none;\nopacity: 0.7;\n}\n33% {\nfilter: none;\nopacity: 1;\n}\n66% {\nfilter: blur(0px);\nopacity: 1;\n}\n95% {\nfilter: blur(4px);\nopacity: 0;\n}\nto {\nfilter: blur(0px);\nopacity: 0;\n}\n}\n#textlayer {\nfont-size: 10px;\n}\n.mosaic {\nfont-family: 'Unscii';\nfont-size: 10.3px;\n}\n.mosaic_separated {\nfont-family: 'Unscii';\nfont-size: 10px;\n}\n.flash_flashing .flash {\n/* animation: blink 2s steps(3, start) infinite; */\nanimation: fancyblink 2s linear infinite;\n}\n.conceal_concealed .conceal {\nvisibility: hidden;\n}\nsvg #background {\ntransition-property: opacity;\ntransition-duration: 0.25s;\n}\nsvg {\nbackground-color: transparent;\n}\nsvg use {\nshape-rendering: crispEdges;\n}\nrect { color: orange; }\n"),this.d=this.es.Bt()._t("class","conceal_concealed flash_flashing"),this.ns=1.2,this.rs(),this.hs(),this._s=null,this.os=t,this.ls=this.os.gs.As((()=>this.cs())),this.us=!1,this.Cs=!1,this.Es=!1,this.Is={}}Ct(t){this.es.Ct(t)}fs(){this.os.gs.fs(this.ls),this.ls=null}cs(){let t=!1,s=!1;this.Es=!1,this.d.gt("flash_flashing"),this.Bs.forEach(((i,e)=>{let n=!1;if(this.ds(e),t)return t=!1,void this.Qs(i,e);const r=this.os.ps(e);let h,_;i.forEach(((t,i)=>{if(n)return n=!1,this.bs(t),this.ys(e),void(_&&this.ws());const o=r.xs(i),l=m(o.Ss),a=o.vs(),A=m(o.Us),g=this.ks(o.Rs,a,o.et);this.Ds(t,o,g,A,i,e,a),o.Fs&&(_?this.ws():this.Gs(e,i),this.Es=!0),h==l?this.ys(e):this.Ls(e,i,l),o.It!=b.Kt&&o.It!=b.Zt||(n=!0),h=l,_=o.Fs,o.Hs&&(s=!0)})),r.js?(this.Ns(e),this.Os(),t=!0):t=!1,this.Ps(e)})),"qs"in this.Is&&this.Is.qs(this.es.dt(),this.es.Qt()),this.d.ot("conceal_concealed"),s&&setTimeout((()=>this.d.ot("flash_flashing")),100),this.Ms()}ds(t){this.Ts(t),this.zs(t)}Qs(t,s){"Js"in this.Is&&this.Is.Js(t.length,s),t.forEach((t=>this.bs(t)))}bs(t){t.wt(" ")._t({dx:null,dy:null,textLength:null,lengthAdjust:null,"text-anchor":null,transform:null,class:null})}Ds(t,s,i,e,n,r,h){this.Vs(t,s,i,e,n,r),s.Rs==p.Tt&&h||s.Rs==p.Jt?t.ot("mosaic"):s.Rs==p.zt&&h&&t.ot("mosaic_separated")}Vs(t,s,i,e,n,r){t.wt(s.Ys)._t(i).jt(e),s.It==b.Yt?t._t("transform",`translate(0 ${T(r)}) scale(1 2)`):s.It==b.Kt?t._t("transform",`translate(${z(n)} 0) scale(2 1)`):s.It==b.Zt&&t._t("transform",`translate(${z(n)} ${T(r)}) scale(2 2)`),s.Hs&&t.ot("flash"),s.Ks&&t.ot("conceal")}Zs(){this.d.ct("conceal_concealed")}Xs(t){let s=t;"native"==t?s='-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif':"default"==t&&(s="sans-serif"),this.es._t("style","font-family: "+s)}Ws(){this._s?(this._s.Dt(),this._s=null):this.$s()}ti(){this.Cs?(this.Cs=!1,this.si._t("opacity",null).Rt()):(this.Cs=!0,this.ii())}ei(t){this.ns=t,this.ni(this.es.Qt())}ni(t){this.es.It("natural"==this.ns?1.6*t:t*this.ns,t)}ii(){this.us&&this.Es?this.si._t("opacity",.3):this.Es?this.si.kt(this.ri)._t("opacity",.3):this.si._t("opacity",0)}Ms(){this.Cs&&this.ii()}hi(){this.us?(this.d.Rt(),this.us=!1):(this.d.kt(this.ri),this.us=!0),this.Ms()}$s(){this._s=this.d.Bt();for(let t=0;t<25;t++)this._s.Ft(0,t*G,399,t*G)._t({stroke:"#555","stroke-width":.5});for(let t=0;t<40;t++)this._s.Ft(t*L,0,t*L,249)._t({stroke:"#555","stroke-width":.5})}hs(){this._i=this.d.xt(),this.oi=null,this.ri=this._i.Ot()}rs(){this.li(),this.ai()}li(){const t=this.d.Bt();t._t({"shape-rendering":"crispEdges",id:"background"}),this.Ai=[],this.si=t}ai(){const t=[],s=this.d.Bt()._t({"text-anchor":"middle",fill:"#fff"})._t("id","textlayer");for(let i=0;i<25;i++){const e=[];for(let t=0;t<40;t++)e.push(s.wt(String.fromCharCode(32+95*Math.random()))._t({x:t*L+5,y:i*G+8}));t.push(e)}this.Bs=t,this.gi=s}zs(t){this.ri.Ut().filter((s=>s.ut("r")==t)).forEach((t=>t.Dt()))}Ts(t){this.Ai[t]&&this.Ai[t].Dt(),this.Ai[t]=this.si.Bt()}ys(t){const s=this.Ai[t].vt(),i=s.dt();s.dt(i+L)}Ls(t,s,i){const e=s*L,n=t*G;this.Ai[t].St(L,G).jt(i).Nt(e,n)}ws(){const t=this.oi.dt();this.oi.dt(t+L)}Ns(t){this.Ai[t].Ut().forEach((t=>t._t("height",20)))}Os(){this._i.Pt("[data-boxbuffer]").forEach((t=>t.Qt(20)))}Gs(t,s){const i=s*L,e=t*G;this.oi=this._i.St(L,G).ut("boxbuffer",!0).Nt(i,e)}Ps(t){this._i.Pt("[data-boxbuffer]").forEach((s=>{s.ut({r:t,boxbuffer:null}),this.ri.qt(s)}))}ks(t,s,i){return t==p.Tt&&s||t==p.Jt?{dx:H.Wt.ts,dy:-.15,textLength:H.Wt.$t,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:t==p.zt&&s?{dx:H.ss.ts,dy:null,textLength:H.ss.$t,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:{dx:null,dy:null,textLength:i?L:null,lengthAdjust:i?"spacingAndGlyphs":null,"text-anchor":null,transform:null,class:null}}registerPlugin(t,s){return"renderBackground"in s&&(this.Is.ci=s.renderBackground),"renderMosaic"in s&&(this.Is.ui=s.renderMosaic),"endOfPageUpdate"in s&&(this.Is.qs=s.endOfPageUpdate),"clearCellsForRow"in s&&(this.Is.Js=s.clearCellsForRow),{lookupColour:N,isDoubleHeight:O,isDoubleWidth:P,isDoubleSize:q,isSeparatedMosaic:M,createImageOverlay:this.Ci.bind(this),createSVGOverlay:this.Ei.bind(this)}}Ci(){const t=this.d.Lt(400,250);return t._t("preserveAspectRatio","none"),t}Ei(){const t=this.d.Ht();return t._t("preserveAspectRatio","none"),t}}j.Ii=L,j.fi=G,j.Bi=20,j.di=20,j.Qi=400,j.pi=250,j.bi=H,j.ROWS=25,j.COLS=40;const N=t=>m(t),O=t=>t==b.Yt,P=t=>t==b.Kt,q=t=>t==b.Zt,M=t=>t==p.zt,T=t=>0-t*G,z=t=>0-t*L,J={g0_latin:{$:"¤","":"■"},g0_latin__czech_slovak:{"#":"#",$:"ů","@":"č","[":"ť","\\":"ž","]":"ý","^":"í",_:"ř","`":"é","{":"á","|":"|","}":"ú","~":"š"},g0_latin__english:{"#":"£",$:"$","@":"@","[":"←","\\":"½","]":"→","^":"↑",_:"#","`":"—","{":"¼","|":"‖","}":"¾","~":"÷"},g0_latin__estonian:{"#":"#",$:"õ","@":"Š","[":"Ä","\\":"Ö","]":"Ž","^":"Ü",_:"Õ","`":"š","{":"ä","|":"ö","}":"ž","~":"ü"},g0_latin__french:{"#":"é",$:"ï","@":"à","[":"ë","\\":"ê","]":"ù","^":"î",_:"#","`":"è","{":"â","|":"ô","}":"û","~":"ç"},g0_latin__german:{"#":"#",$:"$","@":"§","[":"Ä","\\":"Ö","]":"Ü","^":"^",_:"_","`":"°","{":"ä","|":"ö","}":"ü","~":"ß"},g0_latin__italian:{"#":"£",$:"$","@":"é","[":"°","\\":"ç","]":"→","^":"↑",_:"#","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},g0_latin__latvian_lithuanian:{"#":"#",$:"$","@":"Š","[":"ė","\\":"ę","]":"Ž","^":"č",_:"ū","`":"š","{":"ą","|":"ų","}":"ž","~":"į"},g0_latin__polish:{"#":"#",$:"ń","@":"ą","[":"Ƶ","\\":"Ś","]":"Ł","^":"ć",_:"ó","`":"ę","{":"ż","|":"ś","}":"ł","~":"ź"},g0_latin__portuguese_spanish:{"#":"ç",$:"$","@":"¡","[":"á","\\":"é","]":"í","^":"ó",_:"ú","`":"¿","{":"ü","|":"ñ","}":"è","~":"à"},g0_latin__romanian:{"#":"#",$:"¤","@":"Ț","[":"Â","\\":"Ș","]":"Ă","^":"Î",_:"ı","`":"ț","{":"â","|":"ș","}":"ă","~":"î"},g0_latin__serbian_croatian_slovenian:{"#":"#",$:"Ë","@":"Č","[":"Ć","\\":"Ž","]":"Đ","^":"Š",_:"ë","`":"č","{":"ć","|":"ž","}":"đ","~":"š"},g0_latin__swedish_finnish_hungarian:{"#":"#",$:"¤","@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü",_:"_","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},g0_latin__turkish:{"#":"₺",$:"ğ","@":"İ","[":"Ş","\\":"Ö","]":"Ç","^":"Ü",_:"Ğ","`":"ı","{":"ş","|":"ö","}":"ç","~":"ü"},g2_latin:{0:"°",1:"±",2:"²",3:"³",4:"×",5:"µ",6:"¶",7:"·",8:"÷",9:"’","!":"¡",'"':"¢","#":"£","%":"¥","&":"#","'":"§","(":"¤",")":"‘","*":"“","+":"«",",":"←","-":"↑",".":"→","/":"↓",":":"”",";":"»","<":"¼","=":"½",">":"¾","?":"¿","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"—",Q:"¹",R:"®",S:"©",T:"™",U:"♪",V:"₠",W:"‰",X:"α",Y:null,Z:null,"[":null,"\\":"⅛","]":"⅜","^":"⅝",_:"⅞","`":"Ω",a:"Æ",b:"Ð",c:"ª",d:"Ħ",e:null,f:"IJ",g:"Ŀ",h:"Ł",i:"Ø",j:"Œ",k:"º",l:"Þ",m:"Ŧ",n:"Ŋ",o:"ʼn",p:"ĸ",q:"æ",r:"đ",s:"ð",t:"ħ",u:"ı",v:"ij",w:"ŀ",x:"ł",y:"ø",z:"œ","{":"ß","|":"þ","}":"ŧ","~":"ŋ","":"■"},g0_greek:{"<":"«",">":"»","@":"ΐ",A:"Α",B:"Β",C:"Γ",D:"Δ",E:"Ε",F:"Ζ",G:"Η",H:"Θ",I:"Ι",J:"Κ",K:"Λ",L:"Μ",M:"Ν",N:"Ξ",O:"Ο",P:"Π",Q:"Ρ",R:"ʹ",S:"Σ",T:"Τ",U:"Υ",V:"Φ",W:"Χ",X:"Ψ",Y:"Ω",Z:"Ϊ","[":"Ϋ","\\":"ά","]":"έ","^":"ή",_:"ί","`":"ΰ",a:"α",b:"β",c:"γ",d:"δ",e:"ε",f:"ζ",g:"η",h:"θ",i:"ι",j:"κ",k:"λ",l:"μ",m:"ν",n:"ξ",o:"ο",p:"π",q:"ρ",r:"ς",s:"σ",t:"τ",u:"υ",v:"φ",w:"χ",x:"ψ",y:"ω",z:"ϊ","{":"ϋ","|":"ό","}":"ύ","~":"ώ","":"■"},g2_greek:{0:"°",1:"±",2:"²",3:"³",4:"×",5:"m",6:"n",7:"p",8:"÷",9:"’","!":"a",'"':"b","#":"£",$:"e","%":"h","&":"i","'":"§","(":":",")":"‘","*":"“","+":"k",",":"←","-":"↑",".":"→","/":"↓",":":"”",";":"t","<":"¼","=":"½",">":"¾","?":"x","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"?",Q:"¹",R:"®",S:"©",T:"™",U:"♪",V:"₠",W:"‰",X:"ɑ",Y:"Ί",Z:"Ύ","[":"Ώ","\\":"⅛","]":"⅜","^":"⅝",_:"⅞","`":"C",a:"D",b:"F",c:"G",d:"J",e:"L",f:"Q",g:"R",h:"S",i:"U",j:"V",k:"W",l:"Y",m:"Z",n:"Ά",o:"Ή",p:"c",q:"d",r:"f",s:"g",t:"j",u:"l",v:"q",w:"r",x:"s",y:"u",z:"v","{":"w","|":"y","}":"z","~":"Έ","":"■"},g0_cyrillic:{"@":"Ю",A:"А",B:"Б",C:"Ц",D:"Д",E:"Е",F:"Ф",G:"Г",H:"Х",I:"И",J:"Ѝ",K:"К",L:"Л",M:"М",N:"Н",O:"О",P:"П",Q:"Я",R:"Р",S:"С",T:"Т",U:"У",V:"Ж",W:"В",X:"Ь",Z:"З","[":"Ш","]":"Щ","^":"Ч","`":"ю",a:"а",b:"б",c:"ц",d:"д",e:"е",f:"ф",g:"г",h:"х",i:"и",j:"ѝ",k:"к",l:"л",m:"м",n:"н",o:"о",p:"п",q:"я",r:"р",s:"с",t:"т",u:"у",v:"ж",w:"в",x:"ь",z:"з","{":"ш","}":"щ","~":"ч","":"■"},g0_cyrillic__russian_bulgarian:{"&":"ы",Y:"Ъ","\\":"Э",_:"Ы",y:"ъ","|":"э"},g0_cyrillic__serbian_croatian:{"@":"Ч",J:"Ј",Q:"Ќ",V:"В",W:"Ѓ",X:"Љ",Y:"Њ","[":"Ћ","\\":"Ж","]":"Ђ","^":"Ш",_:"Џ","`":"ч",j:"ј",q:"ќ",v:"в",w:"ѓ",x:"љ",y:"њ","{":"ћ","|":"ж","}":"ђ","~":"ш"},g0_cyrillic__ukranian:{"&":"ї",Y:"І","\\":"Є",_:"Ї",y:"і","|":"є"},g2_cyrillic:{0:"m",1:"n",2:"p",3:"t",4:"x",5:"x",6:"°",7:"±",8:"²",9:"³","!":"a",'"':"b","#":"£",$:"e","%":"h","&":"i","'":"§","(":":",")":"‘","*":"“","+":"k",",":"←","-":"↑",".":"→","/":"↓",":":"¼",";":"½","<":"¾","=":"÷",">":"’","?":"”","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"?",Q:"©",R:"®",S:"¹",T:"ɑ",U:"Ί",V:"Ύ",W:"Ώ",X:"‰",Y:"₠",Z:"™","[":"⅛","\\":"⅜","]":"⅝","^":"⅞",_:"♪","`":"C",a:"D",b:"F",c:"G",d:"J",e:"L",f:"Q",g:"R",h:"S",i:"U",j:"V",k:"W",l:"Y",m:"Z",n:"Ά",o:"Ή",p:"c",q:"d",r:"f",s:"g",t:"j",u:"l",v:"q",w:"r",x:"s",y:"u",z:"v","{":"w","|":"y","}":"z","~":"Έ","":"■"},g0_arabic:{"#":"£","&":"ﻰ","'":"ﻱ","(":")",")":"(",";":"؛","<":">",">":"<","?":"؟","@":"ﺔ",A:"ﺀ",B:"ﺒ",C:"ﺏ",D:"ﺘ",E:"ﺕ",F:"ﺎ",G:"ﺍ",H:"ﺑ",I:"ﺓ",J:"ﺗ",K:"ﺛ",L:"ﺟ",M:"ﺣ",N:"ﺧ",O:"ﺩ",P:"ﺫ",Q:"ﺭ",R:"ﺯ",S:"ﺳ",T:"ﺷ",U:"ﺻ",V:"ﺿ",W:"ﻃ",X:"ﻇ",Y:"ﻋ",Z:"ﻏ","[":"ﺜ","\\":"ﺠ","]":"ﺤ","^":"ﺨ",_:"#","`":"ـ",a:"ﻓ",b:"ﻗ",c:"ﻛ",d:"ﻟ",e:"ﻣ",f:"ﻧ",g:"ﻫ",h:"ﻭ",i:"ﻰ",j:"ﻳ",k:"ﺙ",l:"ﺝ",m:"ﺡ",n:"ﺥ",o:"ﻴ",p:"ﻯ",q:"ﻌ",r:"ﻐ",s:"ﻔ",t:"ﻑ",u:"ﻘ",v:"ﻕ",w:"ﻙ",x:"ﻠ",y:"ﻝ",z:"ﻤ","{":"ﻡ","|":"ﻨ","}":"ﻥ","~":"ﻻ","":"■"},g2_arabic:{0:"٠",1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩","!":"ﻉ",'"':"ﺁ","#":"ﺃ",$:"ﺅ","%":"ﺇ","&":"ﺋ","'":"ﺊ","(":"ﭼ",")":"ﭽ","*":"ﭺ","+":"ﭘ",",":"ﭙ","-":"ﭖ",".":"ﮊ","/":"ﮔ",":":"ﻎ",";":"ﻍ","<":"ﻼ","=":"ﻬ",">":"ﻪ","?":"ﻩ","@":"à","[":"ë","\\":"ê","]":"ù","^":"î",_:"ﻊ","`":"é","{":"â","|":"ô","}":"û","~":"ç","":"■"},g0_hebrew:{"#":"£","[":"←","\\":"½","]":"→","^":"↑",_:"#","`":"א",a:"ב",b:"ג",c:"ד",d:"ה",e:"ו",f:"ז",g:"ח",h:"ט",i:"י",j:"ך",k:"כ",l:"ל",m:"ם",n:"מ",o:"ן",p:"נ",q:"ס",r:"ע",s:"ף",t:"פ",u:"ץ",v:"צ",w:"ק",x:"ר",y:"ש",z:"ת","{":"₪","|":"‖","}":"¾","~":"÷","":"■"},g1_block_mosaic_to_unicode__legacy_computing:{0:"🬏",1:"🬐",2:"🬑",3:"🬒",4:"🬓",5:"▌",6:"🬔",7:"🬕",8:"🬖",9:"🬗"," ":" ","!":"🬀",'"':"🬁","#":"🬂",$:"🬃","%":"🬄","&":"🬅","'":"🬆","(":"🬇",")":"🬈","*":"🬉","+":"🬊",",":"🬋","-":"🬌",".":"🬍","/":"🬎",":":"🬘",";":"🬙","<":"🬚","=":"🬛",">":"🬜","?":"🬝","`":"🬞",a:"🬟",b:"🬠",c:"🬡",d:"🬢",e:"🬣",f:"🬤",g:"🬥",h:"🬦",i:"🬧",j:"▐",k:"🬨",l:"🬩",m:"🬪",n:"🬫",o:"🬬",p:"🬭",q:"🬮",r:"🬯",s:"🬰",t:"🬱",u:"🬲",v:"🬳",w:"🬴",x:"🬵",y:"🬶",z:"🬷","{":"🬸","|":"🬹","}":"🬺","~":"🬻","":"█"},g1_block_mosaic_to_unicode__unscii_separated:{0:"",1:"",2:"",3:"",4:"",5:"",6:"",7:"",8:"",9:""," ":" ","!":"",'"':"","#":"",$:"","%":"","&":"","'":"","(":"",")":"","*":"","+":"",",":"","-":"",".":"","/":"",":":"",";":"","<":"","=":"",">":"","?":"","`":"",a:"",b:"",c:"",d:"",e:"",f:"",g:"",h:"",i:"",j:"",k:"",l:"",m:"",n:"",o:"",p:"",q:"",r:"",s:"",t:"",u:"",v:"",w:"",x:"",y:"",z:"","{":"","|":"","}":"","~":"","":""},g3:{0:"🭇",1:"🭈",2:"🭉",3:"🭊",4:"🭋",5:"◢",6:"🭌",7:"🭍",8:"🭎",9:"🭏"," ":"🬼","!":"🬽",'"':"🬾","#":"🬿",$:"🭀","%":"◣","&":"🭁","'":"🭂","(":"🭃",")":"🭄","*":"🭅","+":"🭆",",":"🭨","-":"🭩",".":"🭰","/":"▒",":":"🭐",";":"🭑","<":"🭪","=":"🭫",">":"🭵","?":"█","@":"┷",A:"┯",B:"┝",C:"┥",D:"🮤",E:"🮥",F:"🮦",G:"🮧",H:"🮠",I:"🮡",J:"🮢",K:"🮣",L:"┿",M:"•",N:"●",O:"○",P:"│",Q:"─",R:"┌",S:"┐",T:"└",U:"┘",V:"├",W:"┤",X:"┬",Y:"┴",Z:"┼","[":"→","\\":"←","]":"↑","^":"↓",_:" ","`":"🭒",a:"🭓",b:"🭔",c:"🭕",d:"🭖",e:"◥",f:"🭗",g:"🭘",h:"🭙",i:"🭚",j:"🭛",k:"🭜",l:"🭬",m:"🭭",n:null,o:null,p:"🭝",q:"🭞",r:"🭟",s:"🭠",t:"🭡",u:"◤",v:"🭢",w:"🭣",x:"🭤",y:"🭥",z:"🭦","{":"🭧","|":"🭮","}":"🭯","~":null,"":null}},V={};class Y{constructor(t){this.type=t.Rs,this.flashing=t.Hs,this.concealed=t.Ks,this.size=t.It,this.sextants=t.yi()}}class K{constructor(){this.mi=" ",this.wi=" ",this.xi=Q.WHITE,this.Si=Q.BLACK,this.vi=p.Mt,this.Ui=!1,this.ki=b.Vt,this.Ri=!1,this.Di=!1,this.Fi=null,this.Gi=!1,this.Li=null,this.Hi=null}set ji(t){this.mi=t}get ji(){return this.mi}set Us(t){this.xi=t}get Us(){return this.xi}set Ss(t){this.Si=t}get Ss(){return this.Si}get et(){return this.Gi}Ni(t){const i=this.vi==p.Tt||this.vi==p.zt;this.vi==p.Mt||0==(32&this.mi.charCodeAt(0))&&i?(this.wi=X(this.mi,t),this.Li>0&&(this.wi+=J.g2_latin[String.fromCharCode(this.Li+64)]),this.Gi=!1,"g0_arabic"!=t&&"g2_arabic"!=t||(this.Gi=s.et(this.wi))):this.vi==p.Tt?this.wi=X(this.mi,"g1_block_mosaic_to_unicode__legacy_computing"):this.vi==p.zt?this.wi=X(this.mi,"g1_block_mosaic_to_unicode__unscii_separated"):this.vi==p.Jt&&(this.wi=X(this.mi,"g3")),this.Fi=null}Oi(t){if(this.vi!=p.Tt&&this.vi!=p.zt||!t.Pi)this.Fi=null,this.wi=" ";else{this.Fi=t.Ys,this.vi=t.Rs;let s="g1_block_mosaic_to_unicode__legacy_computing";this.vi==p.zt&&(s="g1_block_mosaic_to_unicode__unscii_separated"),this.wi=X(t.Ys,s)}}get Ys(){return this.wi}get Rs(){return this.vi}set Rs(t){this.vi=t}set Hs(t){this.Ui=t}get Hs(){return this.Ui}get It(){return this.ki}set It(t){this.ki=t}set Ks(t){this.Ri=t}get Ks(){return this.Ri}set Fs(t){this.Di=t}get Fs(){return this.Di}vs(){const t=null!=this.Fi?this.Fi.charCodeAt(0):this.mi.charCodeAt(0);return t<=127&&32==(32&t)}qi(){const t=this.mi.charCodeAt(0);return(this.vi==p.Tt||this.vi==p.zt)&&t<=127&&32==(32&t)}yi(){const t=null!=this.Fi?this.Fi.charCodeAt(0):this.mi.charCodeAt(0);if(t>127)return null;if(t in V)return V[t];const s=t>=96?t-64:t-32,i=[];for(let t=0;t<6;t++)i.push(s&1<<t?"1":"0");return V[t]=i,i}}class Z extends K{constructor(t){super(),Object.assign(this,t)}set Mi(t){this.Li=t}get Mi(){return this.Li}set Ti(t){this.Hi=t}get Ys(){return null==this.Hi?this.wi:this.Hi}}function X(t,s){if(!(s in J))throw Error("Cell getCharWithEncoding: bad encoding: "+s);if(t in J[s])return J[s][t];const i=s.match(/^(.+)__/);if(null!=i){const e=i[1];if(t in J[e])return J[s][t]=J[e][t],J[e][t]}return t}class W extends j{constructor(t,s,i){super(t,i),this.zi=s,this.Ji=new Set}rs(){super.rs(),this.Vi=[],this.Yi=this.d.Bt()}ds(t){super.ds(t),this.Ki(t)}Ds(t,s,i,e,n,r,h){"ci"in this.Is&&this.Is.ci(r,n,s.It,s.Ss),s.Rs!=p.Mt&&s.Rs!=p.Jt&&h?h&&(t.wt(" ")._t(i),this.Zi(r,n,s,e)):(this.Vs(t,s,i,e,n,r),s.Rs==p.Jt&&t.ot("mosaic"))}Zi(t,s,i,e){if("ui"in this.Is){const n=new Y(i);if(this.Is.ui(t,s,n,e))return}const n=i.yi();if(!n.includes("1"))return;let r=i.Rs==p.Tt?"c":"s";r+=n.join("");let h,_=j.Ii,o=j.fi;if(i.Rs==p.Tt&&(_=j.Ii+.3,o=j.fi+.2),!this.Ji.has(r)){this.Ji.add(r);const t=this.es.bt(r);if(i.Rs==p.Tt){t._t({preserveAspectRatio:"none",width:_,height:o,viewBox:"0 0 12 18"});for(let s=0;s<6;s++)"1"==n[s]&&t.St(6,6).Nt(s%2*6,6*Math.floor(s/2))}else{t._t({preserveAspectRatio:"none",width:_,height:o,viewBox:"0 0 12 18"});for(let s=0;s<6;s++)"1"==n[s]&&t.St(4,4).Nt(s%2*6+1,6*Math.floor(s/2)+2)}}h=i.Rs==p.Tt?this.Vi[t].Gt(r).Nt(s*j.Ii-.15,t*j.fi-.1).jt(e):this.Vi[t].Gt(r).Nt(s*j.Ii,t*j.fi).jt(e),this.zi&&h._t({width:_,height:o}),i.It!=b.Yt&&i.It!=b.Zt||h._t("height",j.di),i.It!=b.Kt&&i.It!=b.Zt||h._t("width",j.Bi),i.Hs&&h.ot("flash"),i.Ks&&h.ot("conceal")}Ki(t){this.Vi[t]&&this.Vi[t].Dt(),this.Vi[t]=this.Yi.Bt()}ks(t,s,i){return t==p.Jt?{dx:j.bi.Wt.ts,dy:-.15,textLength:j.bi.Wt.$t,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:{dx:null,dy:null,textLength:i?j.Ii:null,lengthAdjust:i?"spacingAndGlyphs":null,"text-anchor":null,transform:null,class:null}}}class ${constructor(t){this.os=t,this.Xi=0,this.Wi=0,this.$i=[]}pos(t,s){return(t=parseInt(t))<0||t>39||(s=parseInt(s))<0||s>24||(this.Xi=t,this.Wi=s),this}putG0(t,s){let i=null;if(void 0!==s){const t=parseInt(s);t>=0&&t<=15&&(i=t)}const e=t.charCodeAt(0);return e<32||e>127||this.$i.push({te:this.Xi,se:this.Wi,Rs:"g0",Ys:t,Mi:i}),this}putG1(t){const s=t.charCodeAt(0);return s<32||s>127||s>=64&&s<=95||this.$i.push({te:this.Xi,se:this.Wi,Rs:"g1",Ys:t}),this}putG2(t){const s=t.charCodeAt(0);return s<32||s>127||this.$i.push({te:this.Xi,se:this.Wi,Rs:"g2",Ys:t}),this}putG3(t){const s=t.charCodeAt(0);return s<32||s>127||this.$i.push({te:this.Xi,se:this.Wi,Rs:"g3",Ys:t}),this}putAt(){return this.$i.push({te:this.Xi,se:this.Wi,Rs:"char",Ys:"@"}),this}end(){return this.os.ie(this.$i),this.os.ee(),this}}class tt extends j{}const st=["SPLASH","ENGINEERING","ADVERT","UK"];class it{constructor(t,s){if(this.ne=null,"object"==typeof window&&(this.ne=window),this.re={he:!0},"object"==typeof s&&("webkitCompat"in s&&!s.webkitCompat&&(this.re.he=!1),"dom"in s&&(this.ne=s.dom)),null==this.ne)throw Error("TeletextController E24: No window dom object available");this._e=new W(t,this.re.he,this.ne),this.os=t,this.oe=1,this.le=0,this.ae(),this.Ae=null,this.ge=null,this.ce=0,this.ue=0,this.Ce=null}setRowFromOutputLine(t,i){const e=s.st(i);this.os.Ee(t,e)}setRow(t,s){this.os.Ee(t,s)}setPageFromOutputLines(t,i){const e=s.it(t);void 0!==i&&(e[0]=this.Ie(i)),this.setPageRows(e)}setPageRows(t){this.os.fe(),this.os.Be(t)}Ie(t){return(t=s.st(t)).join("").substring(0,32).padStart(40," ")}showTestPage(){this.loadPageFromEncodedString(e[st[this.le]]),this.le++,4==this.le&&(this.le=0)}showRandomisedPage(){const t=[];for(let s=0;s<25;s++){const s=[];for(let t=0;t<40;t++)s.push(String.fromCharCode(127*Math.random()));t.push(s.join(""))}this.setPageRows(t)}loadPageFromEncodedString(t,i){const e=s.tt(t,this.ne.atob);void 0!==i&&(e[0]=this.Ie(i)),this.setPageRows(e)}ae(){this.ne.addEventListener("ttx.reveal",(()=>this._e.Zs())),this.ne.addEventListener("ttx.mix",(()=>this._e.ti())),this.ne.addEventListener("ttx.subtitlemode",(()=>this._e.hi()))}toggleReveal(){this._e.Zs()}toggleMixMode(){this._e.ti()}toggleBoxMode(){this._e.hi()}toggleGrid(){this._e.Ws()}setLevel(t){this.os.de(t)}addTo(t){this.Qe=t,this._e.Ct(t)}setFont(t){this.Ce=t,this._e.Xs(t)}clearScreen(t){this.os.fe(),this.os.pe(t)}setAspectRatio(t){if("natural"==t)return void this._e.ei(t);const s=parseFloat(t);if(Number.isNaN(s))throw Error("E80 setAspectRatio: bad number");this._e.ei(s)}setHeight(t){const s=parseFloat(t);if(Number.isNaN(s))throw Error("E98 setHeight: bad number");this._e.ni(s),this.ge=s}setDefaultG0Charset(t,s){if(null==t.match(/g0_/))throw Error("E130 setDefaultG0Charset: Bad g0 set");this.os.be(t,s)}setSecondG0Charset(t,s){if(null==t.match(/g0_/))throw Error("E136 setSecondG0Charset: Bad g0 set");this.os.ye(t,s)}setG2Charset(t,s){if(null==t.match(/g2_/))throw Error("E142 setG2Charset: Bad g2 set");this.os.me(t,s)}remove(){if(this._e.fs(),this.Qe){const t=document.querySelector(this.Qe);t&&t.removeChild(t.firstChild)}this._e=null}setView(t){switch(this.remove(),t){case"classic__font-for-mosaic":this._e=new tt(this.os,this.ne);break;case"classic__graphic-for-mosaic":this._e=new W(this.os,this.re.he,this.ne);break;default:throw Error("setView E126: bad view name:"+t)}this.ge&&this._e.ni(this.ge),this.Ce&&this._e.Xs(this.Ce),this.Qe&&this._e.Ct(this.Qe),this.os.ee()}registerViewPlugin(t){t.registerWithView(this._e),this.os.ee()}enhance(){return new $(this.os)}writeBytes(t,s,i){this.os.we(t,s,i)}getBytes(){return this.os.xe()}}class et{constructor(t){this.Se=t,this.ve=[]}As(t){return this.ve.push(t),this.ve.length-1}ee(t){this.ve.forEach((s=>null!=s&&s(this.Se,t)))}fs(t){this.ve[t]=null}}class nt{constructor(){this.Ue=!1,this.ke=[]}get js(){return this.Ue}set js(t){this.Ue=t}Re(t){this.ke.push(t)}xs(t){if(t>=this.ke.length)throw Error("RowModel.getCell E20 bad cell index");return this.ke[t]}}const rt=25,ht=40,_t=[D[1.5],D[2.5]],ot=new class{constructor(){this.De=[];for(let t=0;t<rt;t++){const t=[];for(let s=0;s<ht;s++)t.push(new K);this.De.push(t)}this.Fe="g0_latin",this.Ge=null,this.Le="g2_latin",this.He=y.charFromAttribute(y.START_BOX),this.je=y.charFromAttribute(y.END_BOX),this.Ne=D[1],this.Oe=[],this.gs=new et(this)}ee(){this.gs.ee()}Ee(t,s){if(t>=rt)throw Error("PageModel E29 bad row number");this.Pe(t,s),this.gs.ee()}Be(t){(t=t.slice(0,rt)).forEach(((t,s)=>{this.Pe(s,t)})),this.gs.ee()}we(t,s,i){for(let e=s,n=0;e<rt&&n<i.length;e++,n++){const s=[...i[n]].slice(0,ht-t);for(let i=t,n=0;i<ht;i++,n++)this.De[e][i].ji=s[n]}this.gs.ee()}Pe(t,s){let i=[...s];if(i=i.slice(0,ht),i.forEach(((s,i)=>{const e=s.charCodeAt(0);if(Number.isNaN(e)||e>127)throw Error(`PageModel E51 failed to write row: bad character code (${e}) at row ${t} col ${i}`);this.De[t][i].ji=s})),i.length<ht)for(let s=i.length;s<ht;s++)this.De[t][s].ji=" "}de(t){this.Ne=t,this.gs.ee()}pe(t){if(void 0===t||t){const t=[];for(let s=0;s<rt;s++)t.push("");this.Be(t)}else for(let t=0;t<rt;t++)this.Pe(t,"")}be(t,s){this.Fe=t;const i=t.match(/^g0_([a-z]+)/);if(null!=i){const t="g2_"+i[1];t in J?this.Le=t:"hebrew"==i[1]&&(this.Le="g2_arabic")}s&&this.gs.ee()}ye(t,s){this.Ge=t,s&&this.gs.ee()}me(t,s){this.Le=t,s&&this.gs.ee()}ps(t){if(t>=rt)throw Error("PageModel.getRow E42 bad rowNum");const s=new nt;let i,e,n=p.Mt,r=Q.WHITE,h=!1,_=b.Vt,o=!1,l=!1,a=!1,A=!1,g=Q.BLACK,c=p.Tt,u={Pi:!1,Ys:" ",Rs:p.Tt},C=[];return _t.includes(this.Ne)&&(C=this.Oe.filter((s=>s.se==t))),this.De[t].forEach(((E,I)=>{const f=E.ji,B=((t,s)=>{let i=null,e=null;return s in v&&F[this.Ne].includes(s.charCodeAt(0))?s in x?(i=y.TEXT_COLOUR,e=v[s]):s in S?(i=y.MOSAIC_COLOUR,e=v[s]):i=v[s]:s.charCodeAt(0)<=31&&(i=y.Xt),{qe:i,Me:e}})(0,f);switch(i=r,E.Rs=n,E.Fs=A,e=o,B.qe!=y.STEADY&&(E.Hs=h),B.qe!=y.NORMAL_SIZE&&(E.It=_),B.qe!=y.CONCEAL&&(E.Ks=l),a&&(B.qe!=y.HOLD_MOSAICS&&(u.Pi=!1,u.Ys=" "),a=!1),B.qe){case y.TEXT_COLOUR:n=p.Mt,r=B.Me,l=!1,E.Oi(u);break;case y.MOSAIC_COLOUR:n=c,r=B.Me,l=!1,E.Oi(u);break;case y.NEW_BACKGROUND:g=i,E.Oi(u);break;case y.BLACK_BACKGROUND:g=Q.BLACK,E.Oi(u);break;case y.CONTIGUOUS_GRAPHICS:c=p.Tt,E.Rs==p.zt&&(E.Rs=p.Tt),n==p.zt&&(n=p.Tt),E.Oi(u);break;case y.SEPARATED_GRAPHICS:c=p.zt,E.Rs==p.Tt&&(E.Rs=p.zt),n==p.Tt&&(n=p.zt),E.Oi(u);break;case y.ESC:this.Ge&&(o=!e),E.Oi(u);break;case y.FLASH:h=!0,E.Oi(u);break;case y.STEADY:E.Hs=!1,h=!1,E.Oi(u);break;case y.NORMAL_SIZE:E.It=b.Vt,_=b.Vt,E.Oi(u);break;case y.DOUBLE_HEIGHT:_=b.Yt,s.js=!0,E.Oi(u);break;case y.DOUBLE_WIDTH:_=b.Kt,E.Oi(u);break;case y.DOUBLE_SIZE:_=b.Zt,s.js=!0,E.Oi(u);break;case y.CONCEAL:E.Ks=!0,l=!0,E.Oi(u);break;case y.HOLD_MOSAICS:u.Pi=!0,E.Oi(u);break;case y.RELEASE_MOSAICS:a=!0,E.Oi(u);break;case y.START_BOX:I>=1&&this.De[t][I-1].ji==this.He&&(E.Fs=!0,A=!0),E.Oi(u);break;case y.END_BOX:I+1<ht&&this.De[t][I+1].ji==this.je&&(A=!1),E.Oi(u);break;case y.Xt:E.Oi(u);break;default:E.Ni(e?this.Ge:this.Fe),E.qi()&&(u.Ys=f,u.Rs=E.Rs)}E.Us=i,E.Ss=g,C.filter((t=>t.te==I)).forEach((t=>{const s=new Z(E);E=s,"g0"==t.Rs?(E.ji=t.Ys,E.Mi=t.Mi,E.Rs=p.Mt,E.Ni(e?this.Ge:this.Fe)):"g1"==t.Rs?this.Ne==D[2.5]&&(E.ji=t.Ys,E.Rs=c,E.Ni()):"g2"==t.Rs?(E.ji=t.Ys,E.Rs=p.Mt,E.Ni(this.Le)):"g3"==t.Rs?(this.Ne!=D[1.5]||-1!="Q[\\]".indexOf(t.Ys))&&(E.ji=t.Ys,E.Rs=p.Jt,E.Ni()):"char"==t.Rs&&(E.Ti=t.Ys,E.Rs=p.Mt)})),s.Re(E)})),s}ie(t){this.Oe=t}fe(){this.Oe=[]}xe(){const t=new Uint8Array(1e3);return this.De.forEach(((s,i)=>{s.forEach(((s,e)=>{t[i*ht+e]=s.ji.charCodeAt(0)}))})),t}};t.Attributes=y,t.Colour=Q,t.Level=D,t.Teletext=t=>new it(ot,t)},"object"==typeof exports&&"undefined"!=typeof module?s(exports):"function"==typeof define&&define.amd?define(["exports"],s):s((t="undefined"!=typeof globalThis?globalThis:t||self).ttx={});//# sourceMappingURL=teletext.umd.min.js.map | ||
var t,s;t=this,s=function(t){"use strict";class s{static tt(t,s){const e=(t=t.replace(/-/g,"+").replace(/_/g,"/")).length%4;if(e){if(1===e)throw Error("Utils.decodeBase64URLEncoded E16: Input base64url string is the wrong length to determine padding");t+=Array(5-e).join("=")}const n=s(t),r=[];let h=[];for(const t of function*(t){let s=6,e=0;for(const n of t){const t=i(n.charCodeAt(0));for(const i of t)e|=i<<s,s--,s<0&&(yield e,s=6,e=0)}s<6&&(yield e)}(n))h.push(String.fromCharCode(t)),40==h.length&&(r.push(h.join("")),h=[]);return h.length<40&&r.push(h.join("")),r}static st(t){const s=[];let i=!1;for(const e of[...t]){const t=e.charCodeAt(0);27==t?i=!0:t>=128&&t<=159?(s.push(String.fromCharCode(t-128)),i=!1):t>=160?(s.push(""),i=!1):i?(s.push(String.fromCharCode(t-64)),i=!1):s.push(e)}return s}static it(t){const i=[],e=/^OL,(\d{1,2}),(.*)/;for(const n of[...t]){const t=n.match(e);null!=t&&(i[t[1]]=s.st(t[2]))}return i}static et(t){return-1!="ﻰﺋﺊﭼﭽﭘﭙﮔﻎﻼﻬﻪﻊﺔﺒﺘﺎﺑﺗﺛﺟﺣﺧﺳﺷﺻﺿﻃﻇﻋﻏﺜﺠﺤﺨـﻓﻗﻛﻟﻣﻧﻫﻰﻳﻴﻌﻐﻔﻘﻠﻤﻨ".indexOf(t)}}function i(t){let s=[];for(let i=7;i>=0;i--)s.push(t&1<<i?1:0);return s}const e={ENGINEERING:"QIECBAgQIIcWLGg2EDdy3QIKnXKgYtUE7f2QA2TB0wYr2DECAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAYMS54fzJmix4-YCDToOLOjyZ0WLSkzo6AkcGHuZUcRHlB4dgyAAQAEABAAQAEABAAQAEABAAQAEABAAQAEABAAQAEABAAWDP9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_YNCho9zImSoAqBGoAp0FUy8-iChhz5UCA4MPEuZYgTAFyAFg1_f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f2DYCAAoACACeQHkBdYTJlixIkSKlSJEoUKIEBQABAAQAEABYN_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_39g4AgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgGDn9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_YsAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIBix_f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f2LICAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAYs_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_39i0AgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgGLX9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_Ytq-jT0yg7OXZs39w0Pzh3Ao_LLl3BZuHPl3dMIGllyBIWzrlLmkKJGTSJUycsoUqlZJYtXLzLBiyZlWjVs3IuHLp2UePXz9AgQokaBIlTJ0ChSqVoFi1cvQMGLJmgaNWzdA4cunaB49fP0ECDChoIkWNHQSJMqWgmTZ09BQo0qaCpVrV0FizatoLl29fQYMOLGgyZc2dBo06taDZt3b0HDjy5oOnXt3QePPr2g-ff38pgw4sZHJlzZyujTq1ktm3dvNcOPLmW6de3cn48-vZf59_fwZiHv3Y8uHYIjbMPPQDVCxcLf4E0-mXDk8mI-_dlFCn5a9_DKr6q-qvqr6q-qvqr6AFS390DJoGQKr6q-qvqr6q-qvqr6o",ADVERT:"QIECBAgQIJ9KDDmRUDZi3QU8PRk1QQeHIHDaIEDJiwYumDACdDwcnbLy6aeeXbl3dECBAgQIECBAgQIECBAgQIHwZkvcoCx0og8LNGjYwQPEjzpoWaNjBA82YHnTQwabEjTpowPEiBAgLHSiBbs1atjFA9SPe2pZqQNUHX1qQatSlrqQNW-5UsaIECAsdKIFidUqQJUCVAlVKlipchQJUCJanVIEqpAlSqlC5CgQIEB0ogQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQHSKBAgQYEH7ogQaGCApw_fEm54R3PCm5JuSKHoFUEVIECAudIoECBB6-___TB-_v0JTU_WqkZHFyQKHmjYgYBECpAqQIC50igQIEH___3_-iD__6FFSAig-IP6JCg26lzRr3avEgFUgLnSKBAg1f1X9lv_9NSBAgI6G-HX1V_EqBUqQJUqXBzagVSAudIoECD9_Qa2qL__6IMDzoq682qdAgQIEARAgQIECBAgVIC50igQIP_9AiaoFX__0VfV_1kjQIECBAgQBECBAgAoECpAgLnSKBBq__0CBCgQa___oreokCBAgQIECBAgQBECBAgVIECAudIoEHr__QIECBAg3_36FAgQIECBAgQIECAIgQIFSBAgQIAZ0igQf_7dAgKIECAinKf9bTR9QIv-N6i_ofzNagQIECBAgJnSKDR__tUBRAoe6NiBB_XYf_rqg_q2iD-gRb-iBAgQIECAmdIoNX_-1QFECDrq9IMH9h664P_D-w34P7DZ4ToECBAgQICZ0ig___5TQ8SfEHzQ82MPCzpoedEHzA82MPjDQ0-LNDSk0JnSOD___lNXVh_Qf9T3cx_oP-prqa_1S3Y0_q_zX-s1NdTUmdI6v_9-U1NUH9B_1NdTX-g_6mvpL_wMNTX-g1Nf6DAz1tSZ0j-_v0JREjQokaFEhRIUSNCiRoUCNAjRoEaBEhRo0CNGgBnSP9OgQFECCNPpIIVKfDkVaUWmggzoiCFPny5M6PTQIECAGdIjUAGlJnR0DBu5coGrFm0YMEE-kgpxYqChBjxUDNuwQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy92np007s6AFSy9tOXvzQA7O_ryQTd-7L5DQVtpBJ3ZMvg",UK:"QIECBAgQIIcWLGg2EDFy2QIJu_cgZNUETLjQA2TN0xYr2DAodJIECBAgQIEGDB4_PUCBAgQIECBAgQIECBAgQIEANkvaMih0kgQIECDA1Qfv__OgQYGCBAgQIECBAgQIECBAgQIECBAgKHSSBAgQIH6FR-__-v7___oECBAgQIEAORPmxUE6LXpoECAodJIECBAoQKum7______9-gQIECBAgQA82_Zs39-aB8-QIAh0kgQIECBAgSev_____v06BAgQIECBAgQIECBAgQIECBAgKHSSBAgQIECBR00____-_w9GCBAgQIECBAgQIECBAgQIECAodJIECBAgQIECD8rx________ECBAgQIECBAgQIECBAgQICh0kgQIECBAgQLETRlv_______6oECBAgQIECBAgQIECBAgKHSyBAgQIHGQlwYIEH_-_x_____9-dECBAgQIECBAgQIECAIdLIECDAmJbfz_-0RJ0qBV________7sECBAgQIECBAgQIAh0sgQIMzAl-__fX5Sg0JECvX______586IECBAgQIECBAgCHSyBAgwJiW9OjX_0qBAgQIEX________-l8fPjBAgQIECAIdLIEHBYhQIECBQxQICWDhg5fv____________tUCBAgQIAh0sgzIECBAgQIEGlAgQEtP_______________-lQIECBAgCHSyBUwQIECBAgQakCBASQqv_____________-6FAgQIECAIdLIECJygQIECBAgaoEBJBg______________5-OiBAgQIAh0sgQKGKBAgQIEHBKgJIMH7____8v__________QoECBAgCHSyBRmQIECBA4RoECAkgVoVaNel________r16FAgQIECAIdLINCFAgwOEyBAgQICSBAgQePn7___r06RAgQIECBAgQIAh0sgQLeKxCgQIECBAgJIECDR__v0aNGhQIECBAgQIECBAgCHSSBAgQIECBAgQIECBAgQYP3_-1QIECBAgQIECBAgQIECAIdJIECBAgQIECBAgQIECBB6boUSBAgQIECBAgQIECBAgQIAh0kgQIECBAgQIECBAgQIFStAgQIECBAgQIECBAgQIECBAgAzsvjognZe_MFIy4cmzTuy8wdTfwQU-G_l0DVKy-lhyad6A",SPLASH:"QIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECAsaMIEGDx8YIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQICxowg0N2bdmgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgLGjCBFvz9_6BAZQIECBAgQIECAig0NECBAgQIECBAgQIECAsaMcOD5tjyoGCBAgQIECBAgQICLhCgQIECBAgQIECBAgQICxowoTod79ArSEcHBAgQIECBAg0ITKBAgQcGCBAgQIECBAgLGjCBBgXIUCAyRXmlLBAgQIECBuZ4fPn___aoECBAgQIECBAaQIECBAgQIEBFAgQaTPDh8-f___-vXo9f9qgQIECBAgQIECBAgQIEBFAgQcOHz5____69ejRoECBAg__0CBAgQIECBAgQIECBAgQEUCL___r16NGXQIOHDh8-NCOD-3QIECBAgQIECBAgQIECBARQINf0ug-fPi9evRo0aBAgI6v6VAgQIECBAgQIECBAgQIEBFAgRf2hfBw4cOHD58-fPiAj-_oECBAgQIECBAgQIECBAgQEUCBBr-l0SNGjRo0CBAgQEcH9qgQIECBAgQIECBAgQIECBARQIECL-0Lr169ev-fPnxAR1f0KBAgQIECBAgQIAiBAgQIEBFAgQINf3hw4cOCBAgQIEBH-_QIECBAgQIECBAgCIECBAgQIEB1ARRL1-_____________7VAgOIECBAgQIECAIgQIECBAgQHUBNAgQf26BAgQIN_8ijRoECA4gQIECBAgQIAiBAgQIECA6gQE0CDV_QoECBAgRf2iBAgQIEBxAgQIECBAgCIECBAgQIDqBAgQE0aFAgQIECBAgQIECBAgQHECBAgQIECAIgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIBp0Kg3cNqDSggdMuPRh3ZOe_N074eWVf0y7MvTL46IECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQKMalAyYMmaCplx6ECZBT35unfDyyoJnTIuQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECA"},n="http://www.w3.org/2000/svg";let r,h,_=0;class o{constructor(){}nt(){return this.rt}ht(){this.rt=null}_t(t,s){if("object"==typeof t)for(const s in t)null==t[s]?this.rt.removeAttribute(s):this.rt.setAttribute(s,t[s]);else{if(void 0===s)return this.rt.getAttribute(t);null==s?this.rt.removeAttribute(t):this.rt.setAttribute(t,s)}return this}ot(t){if(!this.lt(t)){const s=this.At();s.push(t),this.rt.setAttribute("class",s.join(" "))}return this}lt(t){return-1!==this.At().indexOf(t)}At(){const t=this.rt.getAttribute("class");return null==t?[]:t.split(" ")}gt(t){return this.lt(t)&&this.rt.setAttribute("class",this.At().filter((s=>s!==t)).join(" ")),this}ct(t){return this.lt(t)?this.gt(t):this.ot(t),this}ut(t,s){if("object"==typeof t)for(const s in t)null==t[s]?delete this.rt.dataset[s]:this.rt.dataset[s]=t[s];else{if(void 0===s)return this.rt.dataset[t];null==s?delete this.rt.dataset[t]:this.rt.dataset[t]=s}return this}}class l extends o{constructor(t){return super(),r=t,h=r.document,this.rt=h.createElementNS(n,"svg"),this.rt.setAttribute("xmlns",n),this}Ct(t){const s=h.querySelector(t);if(!s)throw Error("@techandsoftware/teletext: E117: addTo failed to match provided selector");return s.appendChild(this.rt),this}Et(t){return this.rt.setAttribute("viewBox",t),this}It(t,s){return this.rt.setAttribute("width",t),this.rt.setAttribute("height",s),this}Bt(t){const s=h.createElementNS(n,"style");return s.append(t),this.rt.append(s),this}ft(){const t=new A;return this.rt.append(t.nt()),t}dt(){return this.rt.clientWidth}Qt(){return this.rt.clientHeight}bt(t){const s=new u(t);return this.rt.append(s.nt()),s}}class A extends o{constructor(){return super(),this.rt=h.createElementNS(n,"g"),this.yt=[],this}ft(){const t=new A;return this.rt.append(t.nt()),this.yt.push(t),t}wt(t){const s=new C(t);return this.rt.append(s.nt()),this.yt.push(s),s}St(){const t=new E;return this.rt.append(t.nt()),t}xt(t,s){const i=new B(t,s);return this.rt.append(i.nt()),this.yt.push(i),i}vt(){return this.yt[this.yt.length-1]}Ut(){return this.yt}Rt(t){return this.rt.setAttribute("clip-path",`url("#${t.nt().id}")`),this}Dt(){return this.rt.removeAttribute("clip-path"),this}kt(){this.rt.parentNode&&this.rt.parentNode.removeChild(this.rt),this.rt=null,this.yt.forEach((t=>t.ht())),this.yt=[]}Lt(t,s,i,e){const n=new f(t,s,i,e);return this.rt.append(n.nt()),this.yt.push(n),n}Gt(t){const s=new c(t);return this.rt.append(s.nt()),this.yt.push(s),s}Ft(t,s){const i=new g(t,s);return this.rt.append(i.nt()),this.yt.push(i),i}Ot(t,s){const i=new a(t,s);return this.rt.append(i.nt()),this.yt.push(i),i}}class a extends o{constructor(){return super(),this.rt=h.createElementNS(n,"svg"),this}attr(...t){return this._t(...t)}get node(){return this.nt()}}class g extends o{constructor(t,s){return super(),this.rt=h.createElementNS(n,"image"),this.rt.setAttribute("width",parseInt(t)),this.rt.setAttribute("height",parseInt(s)),this}attr(...t){return this._t(...t)}}class c extends o{constructor(t){return super(),this.rt=h.createElementNS(n,"use"),this.rt.setAttribute("href","#"+t),this}Ht(t){return this.rt.setAttribute("fill",t),this}Nt(t,s){return this.rt.setAttribute("x",t),this.rt.setAttribute("y",s),this}}class u extends o{constructor(t){return super(),this.rt=h.createElementNS(n,"symbol"),this.rt.setAttribute("id",t),this}xt(t,s){const i=new B(t,s);return this.rt.append(i.nt()),i}}class C extends o{constructor(t){return super(),this.rt=h.createElementNS(n,"text"),this.rt.append(t),this}wt(t){return this.rt.textContent=t,this}Ht(t){return this.rt.setAttribute("fill",t),this}}class E extends o{constructor(){return super(),this.rt=h.createElementNS(n,"defs"),this}jt(){const t=new I;return this.rt.append(t.nt()),t}Pt(t){return[...this.rt.querySelectorAll(t)].map(d)}xt(t,s){const i=new B(t,s);return this.rt.append(i.nt()),i}}class I extends o{constructor(){return super(),this.rt=h.createElementNS(n,"clipPath"),this.rt.setAttribute("id","clipPath-"+_),_++,this}Ut(){return[...this.rt.children].map(d)}Tt(t){this.rt.appendChild(t.nt())}}class B extends o{constructor(t,s){if(super(),t instanceof r.SVGElement)return this.rt=t,this;const i=t;return this.rt=h.createElementNS(n,"rect"),this.rt.setAttribute("width",parseInt(i)),this.rt.setAttribute("height",parseInt(s)),this}Ht(t){return this.rt.setAttribute("fill",t),this}Nt(t,s){return this.rt.setAttribute("x",t),this.rt.setAttribute("y",s),this}dt(t){return void 0===t?parseInt(this.rt.getAttribute("width")):(this.rt.setAttribute("width",parseInt(t)),this)}Qt(t){return void 0===t?parseInt(this.rt.getAttribute("height")):(this.rt.setAttribute("height",parseInt(t)),this)}kt(){this.rt.parentNode&&this.rt.parentNode.removeChild(this.rt),this.rt=null}}class f extends o{constructor(t,s,i,e){return super(),this.rt=h.createElementNS(n,"line"),this.rt.setAttribute("x1",t),this.rt.setAttribute("y1",s),this.rt.setAttribute("x2",i),this.rt.setAttribute("y2",e),this}}function d(t){let s;if("SVGRectElement"!==t.constructor.name)throw Error("SVG:wrapSVGElement Unable to wrap SVG element of type "+t.constructor.name);return s=new B(t),s}const Q={BLACK:Symbol(),RED:Symbol(),GREEN:Symbol(),YELLOW:Symbol(),BLUE:Symbol(),MAGENTA:Symbol(),CYAN:Symbol(),WHITE:Symbol()};Object.freeze(Q);const p={Mt:Symbol(),qt:Symbol(),zt:Symbol(),Jt:Symbol()};Object.freeze(p);const b={Vt:Symbol(),Yt:Symbol(),Kt:Symbol(),Zt:Symbol()};Object.freeze(b);const y={0:Symbol(),1:Symbol(),1.5:Symbol(),2.5:Symbol()};Object.freeze(y);class m{static charFromTextColour(t){if(t in v)return v[t];throw Error("Attributes.charFromTextColour: bad colour: "+t)}static charFromGraphicColour(t){if(t in R)return R[t];throw Error("Attributes.charFromGraphicColour: bad colour")}static charFromAttribute(t){if(t in k)return k[t];throw Error("Attributes.charFromAttribute: bad attribute")}}function w(t){return S[t]}Object.assign(m,{TEXT_COLOUR:p.ALPHA,MOSAIC_COLOUR:Symbol(),NEW_BACKGROUND:Symbol(),BLACK_BACKGROUND:Symbol(),CONTIGUOUS_GRAPHICS:p.qt,SEPARATED_GRAPHICS:p.zt,ESC:Symbol(),FLASH:Symbol(),STEADY:Symbol(),NORMAL_SIZE:b.Vt,DOUBLE_HEIGHT:b.Yt,DOUBLE_WIDTH:b.Kt,DOUBLE_SIZE:b.Zt,CONCEAL:Symbol(),HOLD_MOSAICS:Symbol(),RELEASE_MOSAICS:Symbol(),START_BOX:Symbol(),END_BOX:Symbol(),Xt:Symbol()});const S={[Q.BLACK]:"#000",[Q.RED]:"#f00",[Q.GREEN]:"#0f0",[Q.YELLOW]:"#ff0",[Q.BLUE]:"#00f",[Q.MAGENTA]:"#f0f",[Q.CYAN]:"#0ff",[Q.WHITE]:"#fff"};Object.freeze(S);const x={"\0":Q.BLACK,"":Q.RED,"":Q.GREEN,"":Q.YELLOW,"":Q.BLUE,"":Q.MAGENTA,"":Q.CYAN,"":Q.WHITE};Object.freeze(x);const v=G(x),U={"":Q.BLACK,"":Q.RED,"":Q.GREEN,"":Q.YELLOW,"":Q.BLUE,"":Q.MAGENTA,"":Q.CYAN,"":Q.WHITE};Object.freeze(U);const R=G(U),D={"\b":m.FLASH,"\t":m.STEADY,"\n":m.END_BOX,"\v":m.START_BOX,"\f":m.NORMAL_SIZE,"\r":m.DOUBLE_HEIGHT,"":m.DOUBLE_WIDTH,"":m.DOUBLE_SIZE,"":m.CONCEAL,"":m.CONTIGUOUS_GRAPHICS,"":m.SEPARATED_GRAPHICS,"":m.ESC,"":m.BLACK_BACKGROUND,"":m.NEW_BACKGROUND,"":m.HOLD_MOSAICS,"":m.RELEASE_MOSAICS};Object.assign(D,x),Object.assign(D,U),Object.freeze(D);const k=G(D),L={[y[0]]:[1,2,3,4,5,6,7,8,9,17,18,19,20,21,22,23]};function G(t){const s={};for(const i in t)s[t[i]]=i;return Object.freeze(s)}L[y[1]]=[...L[y[0]],10,11,12,13,24,25,26,27,28,29,30,31],L[y[1.5]]=[...L[y[1]],0,16],L[y[2.5]]=[...L[y[1.5]],14,15],Object.freeze(L);const F=10,O=10,H={Wt:{$t:10.4,ts:-5.2},ss:{$t:O,ts:-4.5}};Object.freeze(H);class N{constructor(t,s){this.es=new l(s).Et("0 0 400 250").It(600,500)._t({preserveAspectRatio:"none",style:"font-family: sans-serif"}).Bt("@font-face {\nfont-family: 'Unscii';\nsrc: url('fonts/unscii-16.woff') format('woff'), \nurl('fonts/unscii-16.ttf') format('truetype'),\nurl('fonts/unscii-16.otf') format('opentype');\nunicode-range: U+0000-00FF, U+2022, U+2500, U+2502, U+250C, U+2510, U+2514, U+2518, U+251C, U+251D, U+2524, U+2525, U+252C, U+252F, U+2534, U+2537, U+253C, U+253F, U+2588, U+258C, U+2590, U+2592, U+25CB, U+25CF, U+25E2-25E5, U+2B60-2B63, U+E0C0-E0FF, U+1FB00-1FB70, U+1FB75, U+1FBA0-1FBA7;\n-webkit-font-smoothing: none;\nfont-smooth: never;\n}\n@font-face {\nfont-family: 'Bedstead';\nsrc: url('fonts/bedstead.otf') format('opentype');\nunicode-range: U+0000-00FF;\n}\n@keyframes blink {\nto {\nvisibility: hidden;\n}\n}\n@keyframes fancyblink {\nfrom {\nfilter: none;\nopacity: 0.7;\n}\n33% {\nfilter: none;\nopacity: 1;\n}\n66% {\nfilter: blur(0px);\nopacity: 1;\n}\n95% {\nfilter: blur(4px);\nopacity: 0;\n}\nto {\nfilter: blur(0px);\nopacity: 0;\n}\n}\n#textlayer {\nfont-size: 10px;\n}\n.mosaic {\nfont-family: 'Unscii';\nfont-size: 10.3px;\n}\n.mosaic_separated {\nfont-family: 'Unscii';\nfont-size: 10px;\n}\n.flash_flashing .flash {\n/* animation: blink 2s steps(3, start) infinite; */\nanimation: fancyblink 2s linear infinite;\n}\n.conceal_concealed .conceal {\nvisibility: hidden;\n}\nsvg #background {\ntransition-property: opacity;\ntransition-duration: 0.25s;\n}\nsvg {\nbackground-color: transparent;\n}\nsvg use {\nshape-rendering: crispEdges;\n}\nrect { color: orange; }\n"),this.d=this.es.ft()._t("class","conceal_concealed flash_flashing"),this.ns=1.2,this.rs(),this.hs(),this._s=null,this.os=t,this.ls=this.os.gs.As((()=>this.cs())),this.us=!1,this.Cs=!1,this.Es=!1,this.Is={}}Ct(t){this.es.Ct(t)}Bs(){this.os.gs.Bs(this.ls),this.ls=null}cs(){let t=!1,s=!1;this.Es=!1,this.d.gt("flash_flashing"),this.fs.forEach(((i,e)=>{let n=!1;if(this.ds(e),t)return t=!1,void this.Qs(i,e);const r=this.os.ps(e);let h,_;i.forEach(((t,i)=>{if(n)return n=!1,this.bs(t),this.ys(e),void(_&&this.ws());const o=r.Ss(i),l=w(o.xs),A=o.vs(),a=w(o.Us),g=this.Rs(o.Ds,A,o.et);this.ks(t,o,g,a,i,e,A),o.Ls&&(_?this.ws():this.Gs(e,i),this.Es=!0),h==l?this.ys(e):this.Fs(e,i,l),o.It!=b.Kt&&o.It!=b.Zt||(n=!0),h=l,_=o.Ls,o.Os&&(s=!0)})),r.Hs?(this.Ns(e),this.js(),t=!0):t=!1,this.Ps(e)})),"Ts"in this.Is&&this.Is.Ts(this.es.dt(),this.es.Qt()),this.d.ot("conceal_concealed"),s&&setTimeout((()=>this.d.ot("flash_flashing")),100),this.Ms()}ds(t){this.qs(t),this.zs(t)}Qs(t,s){"Js"in this.Is&&this.Is.Js(t.length,s),t.forEach((t=>this.bs(t)))}bs(t){t.wt(" ")._t({dx:null,dy:null,textLength:null,lengthAdjust:null,"text-anchor":null,transform:null,class:null})}ks(t,s,i,e,n,r,h){this.Vs(t,s,i,e,n,r),s.Ds==p.qt&&h||s.Ds==p.Jt?t.ot("mosaic"):s.Ds==p.zt&&h&&t.ot("mosaic_separated")}Vs(t,s,i,e,n,r){t.wt(s.Ys)._t(i).Ht(e),s.It==b.Yt?t._t("transform",`translate(0 ${z(r)}) scale(1 2)`):s.It==b.Kt?t._t("transform",`translate(${J(n)} 0) scale(2 1)`):s.It==b.Zt&&t._t("transform",`translate(${J(n)} ${z(r)}) scale(2 2)`),s.Os&&t.ot("flash"),s.Ks&&t.ot("conceal")}Zs(){this.d.ct("conceal_concealed")}Xs(t){let s=t;"native"==t?s='-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif':"default"==t&&(s="sans-serif"),this.es._t("style","font-family: "+s)}Ws(){this._s?(this._s.kt(),this._s=null):this.$s()}ti(){this.Cs?(this.Cs=!1,this.si._t("opacity",null).Dt()):(this.Cs=!0,this.ii())}ei(t){this.ns=t,this.ni(this.es.Qt())}ni(t){this.es.It("natural"==this.ns?1.6*t:t*this.ns,t)}ii(){this.us&&this.Es?this.si._t("opacity",.3):this.Es?this.si.Rt(this.ri)._t("opacity",.3):this.si._t("opacity",0)}Ms(){this.Cs&&this.ii()}hi(){this.us?(this.d.Dt(),this.us=!1):(this.d.Rt(this.ri),this.us=!0),this.Ms()}_i(){return this.es.nt().outerHTML}$s(){this._s=this.d.ft();for(let t=0;t<25;t++)this._s.Lt(0,t*F,399,t*F)._t({stroke:"#555","stroke-width":.5});for(let t=0;t<40;t++)this._s.Lt(t*O,0,t*O,249)._t({stroke:"#555","stroke-width":.5})}hs(){this.oi=this.d.St(),this.li=null,this.ri=this.oi.jt()}rs(){this.Ai(),this.ai()}Ai(){const t=this.d.ft();t._t({"shape-rendering":"crispEdges",id:"background"}),this.gi=[],this.si=t}ai(){const t=[],s=this.d.ft()._t({"text-anchor":"middle",fill:"#fff"})._t("id","textlayer");for(let i=0;i<25;i++){const e=[];for(let t=0;t<40;t++)e.push(s.wt(String.fromCharCode(32+95*Math.random()))._t({x:t*O+5,y:i*F+8}));t.push(e)}this.fs=t,this.ci=s}zs(t){this.ri.Ut().filter((s=>s.ut("r")==t)).forEach((t=>t.kt()))}qs(t){this.gi[t]&&this.gi[t].kt(),this.gi[t]=this.si.ft()}ys(t){const s=this.gi[t].vt(),i=s.dt();s.dt(i+O)}Fs(t,s,i){const e=s*O,n=t*F;this.gi[t].xt(O,F).Ht(i).Nt(e,n)}ws(){const t=this.li.dt();this.li.dt(t+O)}Ns(t){this.gi[t].Ut().forEach((t=>t._t("height",20)))}js(){this.oi.Pt("[data-boxbuffer]").forEach((t=>t.Qt(20)))}Gs(t,s){const i=s*O,e=t*F;this.li=this.oi.xt(O,F).ut("boxbuffer",!0).Nt(i,e)}Ps(t){this.oi.Pt("[data-boxbuffer]").forEach((s=>{s.ut({r:t,boxbuffer:null}),this.ri.Tt(s)}))}Rs(t,s,i){return t==p.qt&&s||t==p.Jt?{dx:H.Wt.ts,dy:-.15,textLength:H.Wt.$t,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:t==p.zt&&s?{dx:H.ss.ts,dy:null,textLength:H.ss.$t,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:{dx:null,dy:null,textLength:i?O:null,lengthAdjust:i?"spacingAndGlyphs":null,"text-anchor":null,transform:null,class:null}}registerPlugin(t,s){return"renderBackground"in s&&(this.Is.ui=s.renderBackground),"renderMosaic"in s&&(this.Is.Ci=s.renderMosaic),"endOfPageUpdate"in s&&(this.Is.Ts=s.endOfPageUpdate),"clearCellsForRow"in s&&(this.Is.Js=s.clearCellsForRow),{lookupColour:j,isDoubleHeight:P,isDoubleWidth:T,isDoubleSize:M,isSeparatedMosaic:q,createImageOverlay:this.Ei.bind(this),createSVGOverlay:this.Ii.bind(this)}}Ei(){const t=this.d.Ft(400,250);return t._t("preserveAspectRatio","none"),t}Ii(){const t=this.d.Ot();return t._t("preserveAspectRatio","none"),t}}N.Bi=O,N.fi=F,N.di=20,N.Qi=20,N.pi=400,N.bi=250,N.yi=H,N.ROWS=25,N.COLS=40;const j=t=>w(t),P=t=>t==b.Yt,T=t=>t==b.Kt,M=t=>t==b.Zt,q=t=>t==p.zt,z=t=>0-t*F,J=t=>0-t*O,V={g0_latin:{$:"¤","":"■"},g0_latin__czech_slovak:{"#":"#",$:"ů","@":"č","[":"ť","\\":"ž","]":"ý","^":"í",_:"ř","`":"é","{":"á","|":"|","}":"ú","~":"š"},g0_latin__english:{"#":"£",$:"$","@":"@","[":"←","\\":"½","]":"→","^":"↑",_:"#","`":"—","{":"¼","|":"‖","}":"¾","~":"÷"},g0_latin__estonian:{"#":"#",$:"õ","@":"Š","[":"Ä","\\":"Ö","]":"Ž","^":"Ü",_:"Õ","`":"š","{":"ä","|":"ö","}":"ž","~":"ü"},g0_latin__french:{"#":"é",$:"ï","@":"à","[":"ë","\\":"ê","]":"ù","^":"î",_:"#","`":"è","{":"â","|":"ô","}":"û","~":"ç"},g0_latin__german:{"#":"#",$:"$","@":"§","[":"Ä","\\":"Ö","]":"Ü","^":"^",_:"_","`":"°","{":"ä","|":"ö","}":"ü","~":"ß"},g0_latin__italian:{"#":"£",$:"$","@":"é","[":"°","\\":"ç","]":"→","^":"↑",_:"#","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},g0_latin__latvian_lithuanian:{"#":"#",$:"$","@":"Š","[":"ė","\\":"ę","]":"Ž","^":"č",_:"ū","`":"š","{":"ą","|":"ų","}":"ž","~":"į"},g0_latin__polish:{"#":"#",$:"ń","@":"ą","[":"Ƶ","\\":"Ś","]":"Ł","^":"ć",_:"ó","`":"ę","{":"ż","|":"ś","}":"ł","~":"ź"},g0_latin__portuguese_spanish:{"#":"ç",$:"$","@":"¡","[":"á","\\":"é","]":"í","^":"ó",_:"ú","`":"¿","{":"ü","|":"ñ","}":"è","~":"à"},g0_latin__romanian:{"#":"#",$:"¤","@":"Ț","[":"Â","\\":"Ș","]":"Ă","^":"Î",_:"ı","`":"ț","{":"â","|":"ș","}":"ă","~":"î"},g0_latin__serbian_croatian_slovenian:{"#":"#",$:"Ë","@":"Č","[":"Ć","\\":"Ž","]":"Đ","^":"Š",_:"ë","`":"č","{":"ć","|":"ž","}":"đ","~":"š"},g0_latin__swedish_finnish_hungarian:{"#":"#",$:"¤","@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü",_:"_","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},g0_latin__turkish:{"#":"₺",$:"ğ","@":"İ","[":"Ş","\\":"Ö","]":"Ç","^":"Ü",_:"Ğ","`":"ı","{":"ş","|":"ö","}":"ç","~":"ü"},g2_latin:{0:"°",1:"±",2:"²",3:"³",4:"×",5:"µ",6:"¶",7:"·",8:"÷",9:"’","!":"¡",'"':"¢","#":"£","%":"¥","&":"#","'":"§","(":"¤",")":"‘","*":"“","+":"«",",":"←","-":"↑",".":"→","/":"↓",":":"”",";":"»","<":"¼","=":"½",">":"¾","?":"¿","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"—",Q:"¹",R:"®",S:"©",T:"™",U:"♪",V:"₠",W:"‰",X:"α",Y:null,Z:null,"[":null,"\\":"⅛","]":"⅜","^":"⅝",_:"⅞","`":"Ω",a:"Æ",b:"Ð",c:"ª",d:"Ħ",e:null,f:"IJ",g:"Ŀ",h:"Ł",i:"Ø",j:"Œ",k:"º",l:"Þ",m:"Ŧ",n:"Ŋ",o:"ʼn",p:"ĸ",q:"æ",r:"đ",s:"ð",t:"ħ",u:"ı",v:"ij",w:"ŀ",x:"ł",y:"ø",z:"œ","{":"ß","|":"þ","}":"ŧ","~":"ŋ","":"■"},g0_greek:{"<":"«",">":"»","@":"ΐ",A:"Α",B:"Β",C:"Γ",D:"Δ",E:"Ε",F:"Ζ",G:"Η",H:"Θ",I:"Ι",J:"Κ",K:"Λ",L:"Μ",M:"Ν",N:"Ξ",O:"Ο",P:"Π",Q:"Ρ",R:"ʹ",S:"Σ",T:"Τ",U:"Υ",V:"Φ",W:"Χ",X:"Ψ",Y:"Ω",Z:"Ϊ","[":"Ϋ","\\":"ά","]":"έ","^":"ή",_:"ί","`":"ΰ",a:"α",b:"β",c:"γ",d:"δ",e:"ε",f:"ζ",g:"η",h:"θ",i:"ι",j:"κ",k:"λ",l:"μ",m:"ν",n:"ξ",o:"ο",p:"π",q:"ρ",r:"ς",s:"σ",t:"τ",u:"υ",v:"φ",w:"χ",x:"ψ",y:"ω",z:"ϊ","{":"ϋ","|":"ό","}":"ύ","~":"ώ","":"■"},g2_greek:{0:"°",1:"±",2:"²",3:"³",4:"×",5:"m",6:"n",7:"p",8:"÷",9:"’","!":"a",'"':"b","#":"£",$:"e","%":"h","&":"i","'":"§","(":":",")":"‘","*":"“","+":"k",",":"←","-":"↑",".":"→","/":"↓",":":"”",";":"t","<":"¼","=":"½",">":"¾","?":"x","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"?",Q:"¹",R:"®",S:"©",T:"™",U:"♪",V:"₠",W:"‰",X:"ɑ",Y:"Ί",Z:"Ύ","[":"Ώ","\\":"⅛","]":"⅜","^":"⅝",_:"⅞","`":"C",a:"D",b:"F",c:"G",d:"J",e:"L",f:"Q",g:"R",h:"S",i:"U",j:"V",k:"W",l:"Y",m:"Z",n:"Ά",o:"Ή",p:"c",q:"d",r:"f",s:"g",t:"j",u:"l",v:"q",w:"r",x:"s",y:"u",z:"v","{":"w","|":"y","}":"z","~":"Έ","":"■"},g0_cyrillic:{"@":"Ю",A:"А",B:"Б",C:"Ц",D:"Д",E:"Е",F:"Ф",G:"Г",H:"Х",I:"И",J:"Ѝ",K:"К",L:"Л",M:"М",N:"Н",O:"О",P:"П",Q:"Я",R:"Р",S:"С",T:"Т",U:"У",V:"Ж",W:"В",X:"Ь",Z:"З","[":"Ш","]":"Щ","^":"Ч","`":"ю",a:"а",b:"б",c:"ц",d:"д",e:"е",f:"ф",g:"г",h:"х",i:"и",j:"ѝ",k:"к",l:"л",m:"м",n:"н",o:"о",p:"п",q:"я",r:"р",s:"с",t:"т",u:"у",v:"ж",w:"в",x:"ь",z:"з","{":"ш","}":"щ","~":"ч","":"■"},g0_cyrillic__russian_bulgarian:{"&":"ы",Y:"Ъ","\\":"Э",_:"Ы",y:"ъ","|":"э"},g0_cyrillic__serbian_croatian:{"@":"Ч",J:"Ј",Q:"Ќ",V:"В",W:"Ѓ",X:"Љ",Y:"Њ","[":"Ћ","\\":"Ж","]":"Ђ","^":"Ш",_:"Џ","`":"ч",j:"ј",q:"ќ",v:"в",w:"ѓ",x:"љ",y:"њ","{":"ћ","|":"ж","}":"ђ","~":"ш"},g0_cyrillic__ukranian:{"&":"ї",Y:"І","\\":"Є",_:"Ї",y:"і","|":"є"},g2_cyrillic:{0:"m",1:"n",2:"p",3:"t",4:"x",5:"x",6:"°",7:"±",8:"²",9:"³","!":"a",'"':"b","#":"£",$:"e","%":"h","&":"i","'":"§","(":":",")":"‘","*":"“","+":"k",",":"←","-":"↑",".":"→","/":"↓",":":"¼",";":"½","<":"¾","=":"÷",">":"’","?":"”","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"?",Q:"©",R:"®",S:"¹",T:"ɑ",U:"Ί",V:"Ύ",W:"Ώ",X:"‰",Y:"₠",Z:"™","[":"⅛","\\":"⅜","]":"⅝","^":"⅞",_:"♪","`":"C",a:"D",b:"F",c:"G",d:"J",e:"L",f:"Q",g:"R",h:"S",i:"U",j:"V",k:"W",l:"Y",m:"Z",n:"Ά",o:"Ή",p:"c",q:"d",r:"f",s:"g",t:"j",u:"l",v:"q",w:"r",x:"s",y:"u",z:"v","{":"w","|":"y","}":"z","~":"Έ","":"■"},g0_arabic:{"#":"£","&":"ﻰ","'":"ﻱ","(":")",")":"(",";":"؛","<":">",">":"<","?":"؟","@":"ﺔ",A:"ﺀ",B:"ﺒ",C:"ﺏ",D:"ﺘ",E:"ﺕ",F:"ﺎ",G:"ﺍ",H:"ﺑ",I:"ﺓ",J:"ﺗ",K:"ﺛ",L:"ﺟ",M:"ﺣ",N:"ﺧ",O:"ﺩ",P:"ﺫ",Q:"ﺭ",R:"ﺯ",S:"ﺳ",T:"ﺷ",U:"ﺻ",V:"ﺿ",W:"ﻃ",X:"ﻇ",Y:"ﻋ",Z:"ﻏ","[":"ﺜ","\\":"ﺠ","]":"ﺤ","^":"ﺨ",_:"#","`":"ـ",a:"ﻓ",b:"ﻗ",c:"ﻛ",d:"ﻟ",e:"ﻣ",f:"ﻧ",g:"ﻫ",h:"ﻭ",i:"ﻰ",j:"ﻳ",k:"ﺙ",l:"ﺝ",m:"ﺡ",n:"ﺥ",o:"ﻴ",p:"ﻯ",q:"ﻌ",r:"ﻐ",s:"ﻔ",t:"ﻑ",u:"ﻘ",v:"ﻕ",w:"ﻙ",x:"ﻠ",y:"ﻝ",z:"ﻤ","{":"ﻡ","|":"ﻨ","}":"ﻥ","~":"ﻻ","":"■"},g2_arabic:{0:"٠",1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩","!":"ﻉ",'"':"ﺁ","#":"ﺃ",$:"ﺅ","%":"ﺇ","&":"ﺋ","'":"ﺊ","(":"ﭼ",")":"ﭽ","*":"ﭺ","+":"ﭘ",",":"ﭙ","-":"ﭖ",".":"ﮊ","/":"ﮔ",":":"ﻎ",";":"ﻍ","<":"ﻼ","=":"ﻬ",">":"ﻪ","?":"ﻩ","@":"à","[":"ë","\\":"ê","]":"ù","^":"î",_:"ﻊ","`":"é","{":"â","|":"ô","}":"û","~":"ç","":"■"},g0_hebrew:{"#":"£","[":"←","\\":"½","]":"→","^":"↑",_:"#","`":"א",a:"ב",b:"ג",c:"ד",d:"ה",e:"ו",f:"ז",g:"ח",h:"ט",i:"י",j:"ך",k:"כ",l:"ל",m:"ם",n:"מ",o:"ן",p:"נ",q:"ס",r:"ע",s:"ף",t:"פ",u:"ץ",v:"צ",w:"ק",x:"ר",y:"ש",z:"ת","{":"₪","|":"‖","}":"¾","~":"÷","":"■"},g1_block_mosaic_to_unicode__legacy_computing:{0:"🬏",1:"🬐",2:"🬑",3:"🬒",4:"🬓",5:"▌",6:"🬔",7:"🬕",8:"🬖",9:"🬗"," ":" ","!":"🬀",'"':"🬁","#":"🬂",$:"🬃","%":"🬄","&":"🬅","'":"🬆","(":"🬇",")":"🬈","*":"🬉","+":"🬊",",":"🬋","-":"🬌",".":"🬍","/":"🬎",":":"🬘",";":"🬙","<":"🬚","=":"🬛",">":"🬜","?":"🬝","`":"🬞",a:"🬟",b:"🬠",c:"🬡",d:"🬢",e:"🬣",f:"🬤",g:"🬥",h:"🬦",i:"🬧",j:"▐",k:"🬨",l:"🬩",m:"🬪",n:"🬫",o:"🬬",p:"🬭",q:"🬮",r:"🬯",s:"🬰",t:"🬱",u:"🬲",v:"🬳",w:"🬴",x:"🬵",y:"🬶",z:"🬷","{":"🬸","|":"🬹","}":"🬺","~":"🬻","":"█"},g1_block_mosaic_to_unicode__unscii_separated:{0:"",1:"",2:"",3:"",4:"",5:"",6:"",7:"",8:"",9:""," ":" ","!":"",'"':"","#":"",$:"","%":"","&":"","'":"","(":"",")":"","*":"","+":"",",":"","-":"",".":"","/":"",":":"",";":"","<":"","=":"",">":"","?":"","`":"",a:"",b:"",c:"",d:"",e:"",f:"",g:"",h:"",i:"",j:"",k:"",l:"",m:"",n:"",o:"",p:"",q:"",r:"",s:"",t:"",u:"",v:"",w:"",x:"",y:"",z:"","{":"","|":"","}":"","~":"","":""},g3:{0:"🭇",1:"🭈",2:"🭉",3:"🭊",4:"🭋",5:"◢",6:"🭌",7:"🭍",8:"🭎",9:"🭏"," ":"🬼","!":"🬽",'"':"🬾","#":"🬿",$:"🭀","%":"◣","&":"🭁","'":"🭂","(":"🭃",")":"🭄","*":"🭅","+":"🭆",",":"🭨","-":"🭩",".":"🭰","/":"▒",":":"🭐",";":"🭑","<":"🭪","=":"🭫",">":"🭵","?":"█","@":"┷",A:"┯",B:"┝",C:"┥",D:"🮤",E:"🮥",F:"🮦",G:"🮧",H:"🮠",I:"🮡",J:"🮢",K:"🮣",L:"┿",M:"•",N:"●",O:"○",P:"│",Q:"─",R:"┌",S:"┐",T:"└",U:"┘",V:"├",W:"┤",X:"┬",Y:"┴",Z:"┼","[":"→","\\":"←","]":"↑","^":"↓",_:" ","`":"🭒",a:"🭓",b:"🭔",c:"🭕",d:"🭖",e:"◥",f:"🭗",g:"🭘",h:"🭙",i:"🭚",j:"🭛",k:"🭜",l:"🭬",m:"🭭",n:null,o:null,p:"🭝",q:"🭞",r:"🭟",s:"🭠",t:"🭡",u:"◤",v:"🭢",w:"🭣",x:"🭤",y:"🭥",z:"🭦","{":"🭧","|":"🭮","}":"🭯","~":null,"":null}},Y={};class K{constructor(t){this.type=t.Ds,this.flashing=t.Os,this.concealed=t.Ks,this.size=t.It,this.sextants=t.mi()}}class Z{constructor(){this.wi=" ",this.Si=" ",this.xi=Q.WHITE,this.vi=Q.BLACK,this.Ui=p.Mt,this.Ri=!1,this.Di=b.Vt,this.ki=!1,this.Li=!1,this.Gi=null,this.Fi=!1,this.Oi=null,this.Hi=null}set Ni(t){this.wi=t}get Ni(){return this.wi}set Us(t){this.xi=t}get Us(){return this.xi}set xs(t){this.vi=t}get xs(){return this.vi}get et(){return this.Fi}ji(t){const i=this.Ui==p.qt||this.Ui==p.zt;this.Ui==p.Mt||0==(32&this.wi.charCodeAt(0))&&i?(this.Si=W(this.wi,t),this.Oi>0&&(this.Si+=V.g2_latin[String.fromCharCode(this.Oi+64)]),this.Fi=!1,"g0_arabic"!=t&&"g2_arabic"!=t||(this.Fi=s.et(this.Si))):this.Ui==p.qt?this.Si=W(this.wi,"g1_block_mosaic_to_unicode__legacy_computing"):this.Ui==p.zt?this.Si=W(this.wi,"g1_block_mosaic_to_unicode__unscii_separated"):this.Ui==p.Jt&&(this.Si=W(this.wi,"g3")),this.Gi=null}Pi(t){if(this.Ui!=p.qt&&this.Ui!=p.zt||!t.Ti)this.Gi=null,this.Si=" ";else{this.Gi=t.Ys,this.Ui=t.Ds;let s="g1_block_mosaic_to_unicode__legacy_computing";this.Ui==p.zt&&(s="g1_block_mosaic_to_unicode__unscii_separated"),this.Si=W(t.Ys,s)}}get Ys(){return this.Si}get Ds(){return this.Ui}set Ds(t){this.Ui=t}set Os(t){this.Ri=t}get Os(){return this.Ri}get It(){return this.Di}set It(t){this.Di=t}set Ks(t){this.ki=t}get Ks(){return this.ki}set Ls(t){this.Li=t}get Ls(){return this.Li}vs(){const t=null!=this.Gi?this.Gi.charCodeAt(0):this.wi.charCodeAt(0);return t<=127&&32==(32&t)}Mi(){const t=this.wi.charCodeAt(0);return(this.Ui==p.qt||this.Ui==p.zt)&&t<=127&&32==(32&t)}mi(){const t=null!=this.Gi?this.Gi.charCodeAt(0):this.wi.charCodeAt(0);if(t>127)return null;if(t in Y)return Y[t];const s=t>=96?t-64:t-32,i=[];for(let t=0;t<6;t++)i.push(s&1<<t?"1":"0");return Y[t]=i,i}}class X extends Z{constructor(t){super(),Object.assign(this,t)}set qi(t){this.Oi=t}get qi(){return this.Oi}set zi(t){this.Hi=t}get Ys(){return null==this.Hi?this.Si:this.Hi}}function W(t,s){if(!(s in V))throw Error("Cell getCharWithEncoding: bad encoding: "+s);if(t in V[s])return V[s][t];const i=s.match(/^(.+)__/);if(null!=i){const e=i[1];if(t in V[e])return V[s][t]=V[e][t],V[e][t]}return t}class $ extends N{constructor(t,s,i){super(t,i),this.Ji=s,this.Vi=new Set}rs(){super.rs(),this.Yi=[],this.Ki=this.d.ft()}ds(t){super.ds(t),this.Zi(t)}ks(t,s,i,e,n,r,h){"ui"in this.Is&&this.Is.ui(r,n,s.It,s.xs),s.Ds!=p.Mt&&s.Ds!=p.Jt&&h?h&&(t.wt(" ")._t(i),this.Xi(r,n,s,e)):(this.Vs(t,s,i,e,n,r),s.Ds==p.Jt&&t.ot("mosaic"))}Xi(t,s,i,e){if("Ci"in this.Is){const n=new K(i);if(this.Is.Ci(t,s,n,e))return}const n=i.mi();if(!n.includes("1"))return;const r=(i.Ds==p.qt?"c":"s")+n.join("");let h,_=N.Bi,o=N.fi;if(i.Ds==p.qt&&(_=N.Bi+.3,o=N.fi+.2),!this.Vi.has(r)){this.Vi.add(r);const t=this.es.bt(r);if(i.Ds==p.qt){t._t({preserveAspectRatio:"none",width:_,height:o,viewBox:"0 0 12 18"});for(let s=0;s<6;s++)"1"==n[s]&&t.xt(6,6).Nt(s%2*6,6*Math.floor(s/2))}else{t._t({preserveAspectRatio:"none",width:_,height:o,viewBox:"0 0 12 18"});for(let s=0;s<6;s++)"1"==n[s]&&t.xt(4,4).Nt(s%2*6+1,6*Math.floor(s/2)+2)}}h=i.Ds==p.qt?this.Yi[t].Gt(r).Nt(s*N.Bi-.15,t*N.fi-.1).Ht(e):this.Yi[t].Gt(r).Nt(s*N.Bi,t*N.fi).Ht(e),this.Ji&&h._t({width:_,height:o}),i.It!=b.Yt&&i.It!=b.Zt||h._t("height",N.Qi),i.It!=b.Kt&&i.It!=b.Zt||h._t("width",N.di),i.Os&&h.ot("flash"),i.Ks&&h.ot("conceal")}Zi(t){this.Yi[t]&&this.Yi[t].kt(),this.Yi[t]=this.Ki.ft()}Rs(t,s,i){return t==p.Jt?{dx:N.yi.Wt.ts,dy:-.15,textLength:N.yi.Wt.$t,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:{dx:null,dy:null,textLength:i?N.Bi:null,lengthAdjust:i?"spacingAndGlyphs":null,"text-anchor":null,transform:null,class:null}}}class tt{constructor(t){this.os=t,this.Wi=0,this.$i=0,this.te=[]}pos(t,s){return(t=parseInt(t))<0||t>39||(s=parseInt(s))<0||s>24||(this.Wi=t,this.$i=s),this}putG0(t,s){let i=null;if(void 0!==s){const t=parseInt(s);t>=0&&t<=15&&(i=t)}const e=t.charCodeAt(0);return e<32||e>127||this.te.push({se:this.Wi,ie:this.$i,Ds:"g0",Ys:t,qi:i}),this}putG1(t){const s=t.charCodeAt(0);return s<32||s>127||s>=64&&s<=95||this.te.push({se:this.Wi,ie:this.$i,Ds:"g1",Ys:t}),this}putG2(t){const s=t.charCodeAt(0);return s<32||s>127||this.te.push({se:this.Wi,ie:this.$i,Ds:"g2",Ys:t}),this}putG3(t){const s=t.charCodeAt(0);return s<32||s>127||this.te.push({se:this.Wi,ie:this.$i,Ds:"g3",Ys:t}),this}putAt(){return this.te.push({se:this.Wi,ie:this.$i,Ds:"char",Ys:"@"}),this}end(){return this.os.ee(this.te),this.os.ne(),this}}class st extends N{}const it=["SPLASH","ENGINEERING","ADVERT","UK"];class et{constructor(t,s){if(this.re=null,"object"==typeof window&&(this.re=window),this.he={_e:!0},"object"==typeof s&&("webkitCompat"in s&&!s.webkitCompat&&(this.he._e=!1),"dom"in s&&(this.re=s.dom)),null==this.re)throw Error("TeletextController E24: No window dom object available");this.oe=new $(t,this.he._e,this.re),this.os=t,this.le=1,this.Ae=0,this.ae(),this.ge=null,this.ce=null,this.ue=0,this.Ce=0,this.Ee=null}setRowFromOutputLine(t,i){const e=s.st(i);this.os.Ie(t,e)}setRow(t,s){this.os.Ie(t,s)}setPageFromOutputLines(t,i){const e=s.it(t);void 0!==i&&(e[0]=this.Be(i)),this.setPageRows(e)}setPageRows(t){this.os.fe(),this.os.de(t)}Be(t){return(t=s.st(t)).join("").substring(0,32).padStart(40," ")}showTestPage(){this.loadPageFromEncodedString(e[it[this.Ae]]),this.Ae++,4==this.Ae&&(this.Ae=0)}showRandomisedPage(){const t=[];for(let s=0;s<25;s++){const s=[];for(let t=0;t<40;t++)s.push(String.fromCharCode(127*Math.random()));t.push(s.join(""))}this.setPageRows(t)}loadPageFromEncodedString(t,i){const e=s.tt(t,this.re.atob);void 0!==i&&(e[0]=this.Be(i)),this.setPageRows(e)}ae(){this.re.addEventListener("ttx.reveal",(()=>this.oe.Zs())),this.re.addEventListener("ttx.mix",(()=>this.oe.ti())),this.re.addEventListener("ttx.subtitlemode",(()=>this.oe.hi()))}toggleReveal(){this.oe.Zs()}toggleMixMode(){this.oe.ti()}toggleBoxMode(){this.oe.hi()}toggleGrid(){this.oe.Ws()}setLevel(t){this.os.Qe(t)}addTo(t){this.pe=t,this.oe.Ct(t)}setFont(t){this.Ee=t,this.oe.Xs(t)}clearScreen(t){this.os.fe(),this.os.be(t)}setAspectRatio(t){if("natural"==t)return void this.oe.ei(t);const s=parseFloat(t);if(Number.isNaN(s))throw Error("E80 setAspectRatio: bad number");this.oe.ei(s)}setHeight(t){const s=parseFloat(t);if(Number.isNaN(s))throw Error("E98 setHeight: bad number");this.oe.ni(s),this.ce=s}setDefaultG0Charset(t,s){if(null==t.match(/g0_/))throw Error("E130 setDefaultG0Charset: Bad g0 set");this.os.ye(t,s)}setSecondG0Charset(t,s){if(null==t.match(/g0_/))throw Error("E136 setSecondG0Charset: Bad g0 set");this.os.me(t,s)}setG2Charset(t,s){if(null==t.match(/g2_/))throw Error("E142 setG2Charset: Bad g2 set");this.os.we(t,s)}remove(){if(this.oe.Bs(),this.pe){const t=document.querySelector(this.pe);t&&t.removeChild(t.firstChild)}this.oe=null}setView(t){switch(this.remove(),t){case"classic__font-for-mosaic":this.oe=new st(this.os,this.re);break;case"classic__graphic-for-mosaic":this.oe=new $(this.os,this.he._e,this.re);break;default:throw Error("setView E126: bad view name:"+t)}this.ce&&this.oe.ni(this.ce),this.Ee&&this.oe.Xs(this.Ee),this.pe&&this.oe.Ct(this.pe),this.os.ne()}registerViewPlugin(t){t.registerWithView(this.oe),this.os.ne()}enhance(){return new tt(this.os)}writeBytes(t,s,i){this.os.Se(t,s,i)}writeByte(t,s,i,e){this.os.xe(t,s,i,e)}plot(t,s){this.os.ve(t,s)}plotPoints(t,s,i,e){this.os.Ue(t,s,i,e)}getBytes(){return this.os.Re()}getScreenImage(){return this.oe._i()}updateDisplay(){this.os.ne()}}class nt{constructor(t){this.De=t,this.ke=[]}As(t){return this.ke.push(t),this.ke.length-1}ne(t){this.ke.forEach((s=>null!=s&&s(this.De,t)))}Bs(t){this.ke[t]=null}}class rt{constructor(){this.Le=!1,this.Ge=[]}get Hs(){return this.Le}set Hs(t){this.Le=t}Fe(t){this.Ge.push(t)}Ss(t){if(t>=this.Ge.length)throw Error("RowModel.getCell E20 bad cell index");return this.Ge[t]}}const ht=25,_t=40,ot=[y[1.5],y[2.5]],lt=new class{constructor(){this.Oe=[];for(let t=0;t<ht;t++){const t=[];for(let s=0;s<_t;s++)t.push(new Z);this.Oe.push(t)}this.He="g0_latin",this.Ne=null,this.je="g2_latin",this.Pe=m.charFromAttribute(m.START_BOX),this.Te=m.charFromAttribute(m.END_BOX),this.Me=y[1],this.qe=[],this.gs=new nt(this)}ne(){this.gs.ne()}Ie(t,s){if(t>=ht)throw Error("PageModel E29 bad row number");this.ze(t,s),this.gs.ne()}de(t){(t=t.slice(0,ht)).forEach(((t,s)=>{this.ze(s,t)})),this.gs.ne()}Se(t,s,i){for(let e=s,n=0;e<ht&&n<i.length;e++,n++){const s=[...i[n]].slice(0,_t-t);for(let i=t,n=0;i<_t&&n<s.length;i++,n++)this.Oe[e][i].Ni=s[n]}this.gs.ne()}xe(t,s,i,e){t>=0&&t<_t&&s>=0&&s<ht&&(this.Oe[s][t].Ni=i),void 0!==e&&e&&this.gs.ne()}ve(t,s,i){const e=Math.floor(s/3),n=Math.floor(t/2),r=this.Oe[e][n].wi.charCodeAt(0);if(r<32)return;if(i?32==r:255==r)return;const h=t-2*n+2*(s-3*e);let _=0;r<64?_=r-32:r>=96&&(_=r-64),i?_&=~(1<<h):_|=1<<h,this.Oe[e][n].wi=String.fromCharCode(_>=32?_+64:_+32)}Ue(t,s,i,e){let n=0,r=0;for(let h=0;h<e.length&&s+n<75;h++)t+r<80&&(255==e[n*i+r]?this.ve(t+r,s+n):this.ve(t+r,s+n,!0)),r++,r==i&&(n++,r=0)}ze(t,s){let i=[...s];if(i=i.slice(0,_t),i.forEach(((s,i)=>{const e=s.charCodeAt(0);if(Number.isNaN(e)||e>127)throw Error(`PageModel E51 failed to write row: bad character code (${e}) at row ${t} col ${i}`);this.Oe[t][i].Ni=s})),i.length<_t)for(let s=i.length;s<_t;s++)this.Oe[t][s].Ni=" "}Qe(t){this.Me=t,this.gs.ne()}be(t){if(void 0===t||t){const t=[];for(let s=0;s<ht;s++)t.push("");this.de(t)}else for(let t=0;t<ht;t++)this.ze(t,"")}ye(t,s){this.He=t;const i=t.match(/^g0_([a-z]+)/);if(null!=i){const t="g2_"+i[1];t in V?this.je=t:"hebrew"==i[1]&&(this.je="g2_arabic")}s&&this.gs.ne()}me(t,s){this.Ne=t,s&&this.gs.ne()}we(t,s){this.je=t,s&&this.gs.ne()}ps(t){if(t>=ht)throw Error("PageModel.getRow E42 bad rowNum");const s=new rt;let i,e,n=p.Mt,r=Q.WHITE,h=!1,_=b.Vt,o=!1,l=!1,A=!1,a=!1,g=Q.BLACK,c=p.qt,u={Ti:!1,Ys:" ",Ds:p.qt},C=[];return ot.includes(this.Me)&&(C=this.qe.filter((s=>s.ie==t))),this.Oe[t].forEach(((E,I)=>{const B=E.Ni,f=((t,s)=>{let i=null,e=null;return s in D&&L[this.Me].includes(s.charCodeAt(0))?s in x?(i=m.TEXT_COLOUR,e=D[s]):s in U?(i=m.MOSAIC_COLOUR,e=D[s]):i=D[s]:s.charCodeAt(0)<=31&&(i=m.Xt),{Je:i,Ve:e}})(0,B);switch(i=r,E.Ds=n,E.Ls=a,e=o,f.Je!=m.STEADY&&(E.Os=h),f.Je!=m.NORMAL_SIZE&&(E.It=_),f.Je!=m.CONCEAL&&(E.Ks=l),A&&(f.Je!=m.HOLD_MOSAICS&&(u.Ti=!1,u.Ys=" "),A=!1),f.Je){case m.TEXT_COLOUR:n=p.Mt,r=f.Ve,l=!1,E.Pi(u);break;case m.MOSAIC_COLOUR:n=c,r=f.Ve,l=!1,E.Pi(u);break;case m.NEW_BACKGROUND:g=i,E.Pi(u);break;case m.BLACK_BACKGROUND:g=Q.BLACK,E.Pi(u);break;case m.CONTIGUOUS_GRAPHICS:c=p.qt,E.Ds==p.zt&&(E.Ds=p.qt),n==p.zt&&(n=p.qt),E.Pi(u);break;case m.SEPARATED_GRAPHICS:c=p.zt,E.Ds==p.qt&&(E.Ds=p.zt),n==p.qt&&(n=p.zt),E.Pi(u);break;case m.ESC:this.Ne&&(o=!e),E.Pi(u);break;case m.FLASH:h=!0,E.Pi(u);break;case m.STEADY:E.Os=!1,h=!1,E.Pi(u);break;case m.NORMAL_SIZE:E.It=b.Vt,_=b.Vt,E.Pi(u);break;case m.DOUBLE_HEIGHT:_=b.Yt,s.Hs=!0,E.Pi(u);break;case m.DOUBLE_WIDTH:_=b.Kt,E.Pi(u);break;case m.DOUBLE_SIZE:_=b.Zt,s.Hs=!0,E.Pi(u);break;case m.CONCEAL:E.Ks=!0,l=!0,E.Pi(u);break;case m.HOLD_MOSAICS:u.Ti=!0,E.Pi(u);break;case m.RELEASE_MOSAICS:A=!0,E.Pi(u);break;case m.START_BOX:I>=1&&this.Oe[t][I-1].Ni==this.Pe&&(E.Ls=!0,a=!0),E.Pi(u);break;case m.END_BOX:I+1<_t&&this.Oe[t][I+1].Ni==this.Te&&(a=!1),E.Pi(u);break;case m.Xt:E.Pi(u);break;default:E.ji(e?this.Ne:this.He),E.Mi()&&(u.Ys=B,u.Ds=E.Ds)}E.Us=i,E.xs=g,C.filter((t=>t.se==I)).forEach((t=>{const s=new X(E);E=s,"g0"==t.Ds?(E.Ni=t.Ys,E.qi=t.qi,E.Ds=p.Mt,E.ji(e?this.Ne:this.He)):"g1"==t.Ds?this.Me==y[2.5]&&(E.Ni=t.Ys,E.Ds=c,E.ji()):"g2"==t.Ds?(E.Ni=t.Ys,E.Ds=p.Mt,E.ji(this.je)):"g3"==t.Ds?this.Ye(t.Ys)&&(E.Ni=t.Ys,E.Ds=p.Jt,E.ji()):"char"==t.Ds&&(E.zi=t.Ys,E.Ds=p.Mt)})),s.Fe(E)})),s}ee(t){this.qe=t}fe(){this.qe=[]}Re(){const t=new Uint8Array(1e3);return this.Oe.forEach(((s,i)=>{s.forEach(((s,e)=>{t[i*_t+e]=s.Ni.charCodeAt(0)}))})),t}Ye(t){return this.Me!=y[1.5]||-1!="Q[\\]".indexOf(t)}};t.Attributes=m,t.Colour=Q,t.Level=y,t.Teletext=t=>new et(lt,t)},"object"==typeof exports&&"undefined"!=typeof module?s(exports):"function"==typeof define&&define.amd?define(["exports"],s):s((t="undefined"!=typeof globalThis?globalThis:t||self).ttx={});//# sourceMappingURL=teletext.umd.min.js.map |
{ | ||
"name": "@techandsoftware/teletext", | ||
"version": "0.13.4", | ||
"version": "0.14.0", | ||
"description": "API to render teletext pages using vector graphics in the browser DOM", | ||
@@ -5,0 +5,0 @@ "browser": "dist/teletext.umd.min.js", |
@@ -22,3 +22,3 @@ <!-- | ||
* Screen size of 40 x 25 characters | ||
* 6 colour foreground text or mosaic characters (also called semigraphics or sextets) | ||
* 6 colour foreground text or mosaic characters (also called [semigraphics](https://en.wikipedia.org/wiki/Semigraphics) or [sextants](https://en.wikipedia.org/wiki/Symbols_for_Legacy_Computing)) | ||
* 7 colour background | ||
@@ -31,3 +31,3 @@ * Text displayed using the G0 character sets | ||
* Held mosaic characters, to replace the display of a spacing attributes with the last held graphic | ||
* Newsflash page display mode | ||
* Newsflash / subtitles page display mode | ||
* Mix display mode, which isn't part of the teletext spec but is normal on TVs | ||
@@ -175,10 +175,10 @@ * Level 1.5 | ||
- At level 1.5, diacritics can be placed atop G0 characters as enhancements, from 15 available diacritical marks | ||
- Use: `loadPageFromEncodedString()`, `setRows()`, `setRow()`, `setPageFromOutputLines()`, `setRowFromOutputLine()` to write G0 characters to the base page, with attribute characters to switch between G0 and G1. `enhance().putG0()` writes enhancements with or without diacritics. `setDefaultG0Charset()` and `setSecondG0Charset()` select the G0 sets in use. `Attributes.ESC` switches between the primary and secondary sets, if `setSecondG0Charset()` was called. | ||
- Use: `loadPageFromEncodedString()`, `setPageRows()`, `setRow()`, `setPageFromOutputLines()`, `setRowFromOutputLine()` to write G0 characters to the base page, with attribute characters to switch between G0 and G1. `enhance().putG0()` writes enhancements with or without diacritics. `setDefaultG0Charset()` and `setSecondG0Charset()` select the G0 sets in use. `Attributes.ESC` switches between the primary and secondary sets, if `setSecondG0Charset()` was called. | ||
## G1 "Block Mosaic set" | ||
- Used on base page for block mosaic graphics. (Unicode refers to these as sextets; Wikipedia as semigraphics) | ||
- Used on base page for block mosaic graphics. (Unicode refers to these as sextants; Wikipedia as semigraphics) | ||
- Mosaic characters are at codes 0x20 to 0x3f and 0x60 to 0x7f. Characters 0x40 to 0x5f in G1 instead show the corresponding characters in the G0 set that's currently selected | ||
- At level 2.5, can be placed using enhancements | ||
- Use: `loadPageFromEncodedString()`, `setRows()`, `setRow()`, `setPageFromOutputLines()`, `setRowFromOutputLine()` write G1 characters to the base page, with attribute characters to switch between G0 and G1. `enhance().putG1()` writes enhancements. | ||
- Use: `loadPageFromEncodedString()`, `setPageRows()`, `setRow()`, `setPageFromOutputLines()`, `setRowFromOutputLine()` write G1 characters to the base page, with attribute characters to switch between G0 and G1. `enhance().putG1()` writes enhancements. | ||
@@ -211,5 +211,7 @@ ## G2 "Supplementary Sets" | ||
The `options` parameter object is optional, with properties: | ||
* `webkitCompat`: boolean (optional) | ||
* `true` (default) - the generated SVG is compatible with Safari/Webkit browsers (all browsers on iOS), but it's bigger | ||
* `false` - uses SVG2 features which work in most browsers but not Safari or any browser on iOS, as they fail to render the graphics properly unless you use `setView` to switch the view to `classic__font-for-mosaic` (documented below) | ||
* `false` - uses SVG2 features which work in most browsers but not Safari or any browser on iOS, as they fail to render the graphics properly ([see this bug](https://bugs.webkit.org/show_bug.cgi?id=182172)), unless you use `setView` to switch the view to `classic__font-for-mosaic` (documented below) | ||
* `dom`: object (optional) | ||
@@ -220,2 +222,3 @@ * if running in nodejs you need to pass in a window dom object. See the example above | ||
## addTo(selector) | ||
@@ -310,2 +313,30 @@ | ||
## writeBytes(colNum, rowNum, [lines]) | ||
Writes each line in the array to the screen starting from `colNum`, `rowNum`. This allows you to place a block of text on the screen without affecting existing characters. `colNum` is from 0 to 39, `rowNum` from 0 to 24. | ||
## writeByte(colNum, rowNum, byte, withUpdate) | ||
Writes the byte to the `colNum`, `rowNum`. `colNum` is from 0 to 39, `rowNum` from 0 to 24. The `byte` should have a character code of 0x0 to 0x127. The byte won't display literally, as the display uses the active G0 character set and spacing attributes to work out what to show. | ||
`withUpdate` is an optional boolean, default is `false`. When true, the page display is updated. | ||
## plot(graphcolNun, graphicRowNum) | ||
Plots a pixel. The coordinates are from (0, 0) to (79, 74). The origin is the top-left. Note this uses a different coordinate scheme than methods like `writeBytes()`, which refer to the character cell rows and columns. For performance, there is no range checking, so the display will crash if you try to set outside of the range. The page display is not updated. You can force an update with `updateDisplay()`. | ||
This generates a 2x3 mosaic (sextant) charater corresponding to the character cell in the page model that you're plotting to. Existing mosaics in the cell are modified to plot the pixel. If characters with codes 0x0 to 0x1f are in the target cell, these are unchanged so that spacing atributes are preserved, and the plot has no effect. If characters with codes 0x40 to 0x5f are at the character position you're plotting to, this is cleared first. | ||
To use this, you will first need to set graphics mode for the text row by writing a graphic spacing attribute, for example by using `writeByte()` and `Attributes.charfromGraphicColour(colour)`. | ||
## plotPoints(graphicColNum, graphicRowNum, numPixelsPerRow, pixelsArray) | ||
Plots multiple pixels, with the top left origin of (`graphicColNum`, `graphicRowNum`) and `numPixelsPerRow`. This internally calls `plot()`. The top-left coordinates are (0, 0) to (79, 74). As with `plot()`, existing spacing attributes are not overridden, and the display is not updated. You can force an update ewith `updateDisplay()`. Unlike `plot()`, `plotPoints()` does range checking to ensure the plotted pixels fit on the display. | ||
`numPixelsPerRow` is the number of pixels for each row in the `pixelsArray`. | ||
`pixelsArray` is an array of bytes. Each byte represents a pixel. If its value is 255 then a point is plotted. If it's not 255, the point is unplotted. (This is intended to be easy to generate from some other bitmap pixel source). | ||
To use this, you will first need to set graphics mode for each text row by writing a graphic spacing attribute, for example by using `writeByte()` and `Attributes.charfromGraphicColour(colour)`. | ||
## clearScreen(withUpdate) | ||
@@ -321,3 +352,3 @@ | ||
3 test pages are built-in. This displays a test page, rotating between the 3 every time this is called. The test pages were kindly supplied by https://archive.teletextarchaeologist.org/ | ||
4 test pages are built-in. This displays a test page, rotating through these every time this is called. The test pages were kindly supplied by https://archive.teletextarchaeologist.org/ | ||
@@ -340,3 +371,3 @@ ## toggleGrid() | ||
Sets the screen height to the number of pixels you passed in. The aspect ratio is maintained. You could set the screen to fill the available window height using `document.documentElement.clientHeight` as the value. | ||
Sets the screen height to the number of pixels you passed in. The aspect ratio is maintained. You could set the screen to fill the available window height using `document.documentElement.clientHeight` as the value. If you use CSS for layout you probably don't need to use this. | ||
@@ -369,2 +400,6 @@ ## setFont(font) | ||
## updateDisplay() | ||
Force an update of the display. This is useful in certain cases where the page model has been updated and the display is not automatically updated, for example with `plot()`. | ||
## enhance() | ||
@@ -380,3 +415,3 @@ | ||
Updates the *position* to the `col` and `row`. The *position* is only updated when this function is called. The initial position is 0, 0. | ||
Updates the *position* to the `col` and `row`. The *position* is only updated when this function is called. The initial position is 0, 0, which is the top left. | ||
@@ -469,2 +504,6 @@ ### putG0(char, diacriticCode) | ||
## getScreenImage() | ||
Gets a static image of the screen. This returns SVG markup. | ||
## Event API | ||
@@ -532,3 +571,3 @@ | ||
| Attributes.START_BOX | starts boxed characters (used for subtitles, newsflash). Two adjacent start box characters need to be used, with the box starting between the two. For use with `toggleBoxMode()` | | ||
| Attributes.END_BOX | ends boxed characters | | ||
| Attributes.END_BOX | ends boxed characters. Two adjacent end box characters need to be used, with the box ending between the two. | | ||
| Attributes.ESC | switch between the default G0 character set and the second G0 character set. This requires the second G0 character set to have been set with `setSecondG0Charset`. If this hasn't been set, the attribute has no effect | | ||
@@ -535,0 +574,0 @@ |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
777690
3735
603