dsh-aha-tutor 1.6.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.en.md +3 -2
- package/README.md +3 -2
- package/docs/guide.zh-CN.md +18 -5
- package/lib/agent.js +1 -1
- package/lib/client.js +103 -31
- package/lib/index.js +276 -13
- package/lib/{runtime-B6zUpJjA.js → runtime-DfoeKFPj.js} +245 -151
- package/package.json +1 -1
- package/samples/bayes-thinking.aha-course.json +62 -56
- package/samples/harmonic-motion.aha-course.json +70 -63
package/lib/client.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
window.__ModuleLoader__.load({id:`dsh-aha-tutor`,factory:e=>{var t={exports:{}},n=t.exports;Object.defineProperty(n,Symbol.toStringTag,{value:`Module`});let r=e("react"),i=e("react/jsx-runtime"),a=e("@deepseek-ai/dsh-client-ui-primitives"),o=e("react-dom");var s=class extends r.Component{constructor(e){super(e),this.state={failed:!1,error:null,resetKey:e.resetKey},this.retry=()=>this.setState({failed:!1,error:null})}static getDerivedStateFromError(e){return{failed:!0,error:e}}static getDerivedStateFromProps(e,t){return e.resetKey===t.resetKey?null:{failed:!1,error:null,resetKey:e.resetKey}}componentDidCatch(e){this.props.onError?.(e)}render(){return this.state.failed?this.props.fallback({error:this.state.error,retry:this.retry}):this.props.children}};function c(e){return String(e?.message??e).slice(0,300)}function l({t:e,error:t,place:n=`page`,onRetry:i,onHome:a}){let o=i?(0,r.createElement)(`button`,{type:`button`,className:`aha-btn`,"data-size":n===`page`?void 0:`sm`,onClick:i},e(`retry`)):null;return n===`card`?(0,r.createElement)(`div`,{className:`aha-spread`,role:`alert`},(0,r.createElement)(`span`,{className:`aha-error`,title:c(t)},e(`crashPart`)),o):n===`tab`?(0,r.createElement)(`div`,{className:`aha-col`,role:`alert`,style:{gap:8}},(0,r.createElement)(`p`,{className:`aha-error`,title:c(t)},e(`crashPart`)),o?(0,r.createElement)(`div`,null,o):null):(0,r.createElement)(`div`,{className:`aha-page`},(0,r.createElement)(`div`,{className:`aha-card`,role:`alert`,style:{alignItems:`center`,textAlign:`center`,gap:12,padding:`28px 16px`}},(0,r.createElement)(`p`,{className:`aha-cardTitle`,title:c(t)},e(`crashPage`)),o?(0,r.createElement)(`p`,{className:`aha-hint`},e(`crashPageHint`)):null,(0,r.createElement)(`div`,{className:`aha-row`,style:{justifyContent:`center`}},o,(0,r.createElement)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:a},e(`backHome`)))))}var u=class extends Error{constructor(e,t){super(t),this.name=`ApiError`,this.code=e}};function d(e){async function t(t,n={}){let r;try{r=await e.call(`/aha-tutor`,t,n??{})}catch(e){throw new u(`connection`,e?.message||`Connection to DSH failed`)}if(!r?.ok)throw new u(r?.error?.code??`failed`,r?.error?.message??`Request failed`);return r.value}async function n(e,{onPartial:n,onProgress:r,onPreview:i,signal:a}={}){let o=e?.job;if(!o)return e;let s=0,c=o;for(;;){if(c.partial?.length&&(n?.(c.partial,s),s+=c.partial.length),c.progress&&r?.(c.progress),c.preview&&i?.(c.preview,c),c.status===`done`)return c.result;if(c.status===`cancelled`||a?.aborted)throw new u(`cancelled`,`cancelled`);if(c.status===`failed`)throw new u(c.error?.code??c.status,c.error?.message??c.status);if(c.status===`missing`)throw new u(`missing`,`The task was lost; try again`);await new Promise(e=>{setTimeout(e,650)}),c=await t(`job/get`,{id:o.id,since:s})}}async function r(e,r,i){return n(await t(e,r),i)}function i(e){let n=typeof e==`string`?e:e?.id;return n?t(`job/cancel`,{id:n}).catch(()=>void 0):Promise.resolve()}return{call:t,follow:n,run:r,cancel:i}}function f(e,t){return t?.id?{...e,jobId:t.id}:e}function p(e){return new Promise((t,n)=>{let r=new FileReader;r.onerror=()=>n(r.error??Error(`read failed`)),r.onload=()=>{let e=String(r.result??``);t(e.slice(e.indexOf(`,`)+1))},r.readAsDataURL(e)})}function m(e,t=`aha`){return String(e??``).replace(/[<>:"/\\|?*\u0000-\u001f]/gu,` `).replace(/\s+/gu,` `).trim().slice(0,60).trim()||t}function h(e,t,n=`application/json`){let r=URL.createObjectURL(new Blob([t],{type:`${n};charset=utf-8`})),i=document.createElement(`a`);i.href=r,i.download=e,document.body.append(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(r),5e3)}function g(e,t){let n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=e,document.body.append(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e4)}let _=(0,r.createContext)(null);function v(){let e=(0,r.useContext)(_);if(!e)throw Error(`AppContext missing`);return e}function y(e,t=[]){let[n,i]=(0,r.useState)({loading:!0,error:null,value:void 0}),a=(0,r.useRef)(0),o=(0,r.useCallback)(()=>{let t=++a.current;i(e=>({...e,loading:!0,error:null})),Promise.resolve().then(e).then(e=>{a.current===t&&i({loading:!1,error:null,value:e})}).catch(e=>{a.current===t&&i(t=>({loading:!1,error:e,value:t.value}))})},t);return(0,r.useEffect)(()=>(o(),()=>{a.current+=1}),[o]),{...n,reload:o,setValue:e=>i(t=>({...t,value:typeof e==`function`?e(t.value):e}))}}function b(){let{api:e}=v(),[t,n]=(0,r.useState)({running:!1,progress:null,preview:null,error:null}),i=(0,r.useRef)(null),a=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>i.current?.abort(),[]);let o=(0,r.useCallback)(async(t,r,{onPartial:o,existing:s}={})=>{i.current?.abort();let c=new AbortController;i.current=c,a.current=s?.id??null,n({running:!0,progress:null,preview:null,error:null});try{let i={signal:c.signal,onPartial:o,onProgress:e=>{c.signal.aborted||n(t=>({...t,progress:e}))},onPreview:e=>{c.signal.aborted||n(t=>({...t,preview:e}))}},l=s?{job:s}:await e.call(t,r);l?.job?.id&&!c.signal.aborted&&(a.current=l.job.id);let u=await e.follow(l,i);return c.signal.aborted||n({running:!1,progress:null,preview:null,error:null}),u}catch(e){throw c.signal.aborted||n({running:!1,progress:null,preview:null,error:e}),e}},[e]),s=(0,r.useCallback)(()=>{i.current?.abort(),a.current&&e.cancel(a.current),a.current=null,n({running:!1,progress:null,preview:null,error:null})},[e]);return{...t,run:o,cancel:s}}function x(e){let[t]=(0,r.useState)(()=>{if(!e)return!1;let t=`aha-tutor:once:${e}`;try{if(window.sessionStorage.getItem(t))return!1;window.sessionStorage.setItem(t,`1`)}catch{}return!0});return t}function S(e,t){let[n,i]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{if(i(!1),!e)return;let n=setTimeout(()=>i(!0),t);return()=>clearTimeout(n)},[e,t]),e&&n}function C(e,t){let n=`aha-tutor:${e}`,[i,a]=(0,r.useState)(()=>{try{let e=window.localStorage.getItem(n);return e===null?t:JSON.parse(e)}catch{return t}});return(0,r.useEffect)(()=>{try{window.localStorage.setItem(n,JSON.stringify(i))}catch{}},[n,i]),[i,a]}function w(){let e=()=>{if(document.body?.hasAttribute(`data-ds-dark-theme`))return!0;let e=getComputedStyle(document.documentElement).colorScheme;return/dark/iu.test(e)&&!/light/iu.test(e)?!0:!document.body&&window.matchMedia?.(`(prefers-color-scheme: dark)`).matches===!0},[t,n]=(0,r.useState)(e);return(0,r.useEffect)(()=>{let t=window.matchMedia?.(`(prefers-color-scheme: dark)`),r=()=>n(e());t?.addEventListener?.(`change`,r);let i=new MutationObserver(r);return i.observe(document.body,{attributes:!0,attributeFilter:[`data-ds-dark-theme`]}),i.observe(document.documentElement,{attributes:!0,attributeFilter:[`style`,`data-ds-theme-source`]}),()=>{t?.removeEventListener?.(`change`,r),i.disconnect()}},[]),t}let T=/[^。!?!?;;\n]+[。!?!?;;]*\s*|\n+/gu;function E(e){let t=[];for(let n of String(e??``).matchAll(T)){let e=n[0].trim();if(e)if(e.length<=160)t.push(e);else for(let n=0;n<e.length;n+=140)t.push(e.slice(n,n+140))}return t}function D(){return typeof window<`u`&&`speechSynthesis`in window&&typeof window.SpeechSynthesisUtterance==`function`}function ee(){return D()?window.speechSynthesis.getVoices().map(e=>({id:e.voiceURI,name:e.name,lang:e.lang,local:e.localService,default:e.default})):[]}function te(e){if(!D())return()=>void 0;let t=()=>e(ee());return window.speechSynthesis.addEventListener?.(`voiceschanged`,t),()=>window.speechSynthesis.removeEventListener?.(`voiceschanged`,t)}function ne(e,t){if(!D())return null;let n=window.speechSynthesis.getVoices();if(t){let e=n.find(e=>e.voiceURI===t);if(e)return e}let r=String(e||`zh-CN`).toLowerCase(),i=r.split(`-`)[0],a=e=>{let t=e.lang.toLowerCase().replace(`_`,`-`),n=0;if(t===r)n+=40;else if(t.startsWith(i))n+=25;else return-1;return i===`zh`&&r===`zh-cn`&&/tw|hk/u.test(t)&&(n-=10),/natural|neural|enhanced|premium|siri/iu.test(e.name)&&(n+=12),e.localService&&(n+=6),/xiaoxiao|tingting|yunxi|xiaoyi|lili|huihui/iu.test(e.name)&&(n+=4),n};return n.map(e=>({voice:e,value:a(e)})).filter(e=>e.value>=0).sort((e,t)=>t.value-e.value)[0]?.voice??null}function re(){let e=null;function t(t,{language:r,voiceId:i,rate:a=1,onSentence:s,sentences:c}={}){o();let l=Array.isArray(c)&&c.length?c.flatMap((e,t)=>E(e).map(e=>({text:e,owner:t}))):E(t).map((e,t)=>({text:e,owner:t})),u=Array.isArray(c)&&c.length?c.length:l.length;if(!D()||!l.length)return{done:Promise.resolve({completed:!0})};let d,f=new Promise(e=>{d=e}),p={sentences:l.map(e=>e.text),owners:l.map(e=>e.owner),total:u,index:0,paused:!1,cancelled:!1,rate:a,language:r,voiceId:i,resolveDone:d,onSentence:s};return e=p,n(p),{done:f}}function n(t){if(t.cancelled||t.paused)return;if(t.index>=t.sentences.length){t.resolveDone({completed:!0}),e===t&&(e=null);return}let r=new window.SpeechSynthesisUtterance(t.sentences[t.index]),i=ne(t.language,t.voiceId);i?(r.voice=i,r.lang=i.lang):t.language&&(r.lang=t.language),r.rate=Math.min(2,Math.max(.5,t.rate));let a=t.index;r.onstart=()=>t.onSentence?.(t.owners[a],t.total);let o=()=>{t.cancelled||t.paused||t.index!==a||(t.index+=1,n(t))};r.onend=o,r.onerror=n=>{if(!(n?.error===`interrupted`||n?.error===`canceled`)){if(n?.error===`not-allowed`||n?.error===`synthesis-unavailable`){e===t&&(e=null),t.cancelled=!0,t.resolveDone({completed:!1,error:n.error});return}o()}},t.utterance=r,window.speechSynthesis.speak(r)}function r(){!e||e.paused||(e.paused=!0,window.speechSynthesis.cancel())}function i(){!e||!e.paused||(e.paused=!1,n(e))}function a(t){e&&(e.rate=t)}function o(){if(!e)return;let t=e;e=null,t.cancelled=!0,D()&&window.speechSynthesis.cancel(),t.resolveDone({completed:!1})}return{speak:t,pause:r,resume:i,cancel:o,setRate:a}}function ie(e){let t=e?.ttsProvider??``,n=e?.tts?.[t]??{};return JSON.stringify([t,Object.keys(n).sort().map(e=>[e,n[e]])])}function O({fetchAudio:e}){let t=null,n=new Map;async function r(t,r=``){let i=`${r}\n${t}`;if(n.has(i))return n.get(i);let a=e(t).then(({blob:e,base64:t,mime:n})=>{if(e)return URL.createObjectURL(e);let r=Uint8Array.from(atob(t),e=>e.charCodeAt(0));return URL.createObjectURL(new Blob([r],{type:n||`audio/mpeg`}))});if(n.set(i,a),a.catch(()=>n.delete(i)),n.size>40){let[e,t]=n.entries().next().value;n.delete(e),t.then(e=>URL.revokeObjectURL(e)).catch(()=>void 0)}return a}function i(e,t){e&&r(e,t).catch(()=>void 0)}function a(e,{rate:n=1,cloudVoice:i}={}){if(o(),!String(e??``).trim())return{done:Promise.resolve({completed:!0})};let a,s=new Promise(e=>{a=e}),c=new Audio;c.preservesPitch=!0;let l={audio:c,cancelled:!1,resolveDone:a,rate:n};t=l;let u=(e,n)=>{t===l&&(t=null);let r=typeof e?.code==`string`&&e.code?e.code:n.code;a({completed:!1,error:e?.message??n.code,code:r})};return r(e,i).then(e=>{if(!l.cancelled)return c.src=e,c.playbackRate=Math.min(2,Math.max(.5,n)),c.onended=()=>{t===l&&(t=null),a({completed:!0})},c.onerror=()=>u(null,{code:`playback`}),c.play().catch(e=>u(e,{code:`playback`}))}).catch(e=>u(e,{code:`tts-failed`})),{done:s}}function o(){if(!t)return;let e=t;t=null,e.cancelled=!0,e.audio.pause(),e.resolveDone({completed:!1})}return{speak:a,prefetch:i,pause:()=>t?.audio.pause(),resume:()=>t?.audio.play().catch(()=>void 0),setRate:e=>{t&&(t.audio.playbackRate=Math.min(2,Math.max(.5,e)))},cancel:o,clear(){for(let e of n.values())e.then(e=>URL.revokeObjectURL(e)).catch(()=>void 0);n.clear()}}}function k({fetchAudio:e}){let t={browser:re(),cloud:O({fetchAudio:e})},n={engine:`browser`,rate:1},r=null;return{configure(e){n={...n,...e}},get settings(){return n},speak(e,i={}){if(r?.cancel(),n.engine===`off`)return r=null,{done:Promise.resolve({completed:!0,silent:!0})};r=t[n.engine]??t.browser;try{return r.speak(e,{...n,...i})}catch(e){return console.error(e),{done:Promise.resolve({completed:!1,error:e?.message??`speech`})}}},prefetch(e){n.engine===`cloud`&&t.cloud.prefetch(e,n.cloudVoice)},pause:()=>r?.pause(),resume:()=>r?.resume(),setRate(e){n={...n,rate:e},r?.setRate(e)},cancel:()=>r?.cancel(),dispose(){t.browser.cancel(),t.cloud.cancel(),t.cloud.clear()}}}let ae=new Set([`tts-no-key`,`tts-auth`,`tts-address`,`tts-app-id`,`tts-azure`,`tts-config`,`tts-request`,`tts-stalled`,`tts-timeout`,`no-credentials`,`speech`]);function oe(e,t){if(!t?.error)return{failures:t?.completed&&!t.silent?0:e,stop:null};let n=(typeof t.code==`string`&&t.code?t.code:`speech`).replace(/^aha-tutor\//u,``),r=e+1;return{failures:r,stop:ae.has(n)||r>=2?{code:n,message:String(t.error)}:null}}let A=`aha-tutor:navigate`,se=`aha-tutor:route`;function ce({rpc:e,t,language:n,dsh:i,navigate:a=()=>void 0,back:o=()=>void 0}){let s=(0,r.useMemo)(()=>d(e),[e]),c=(0,r.useMemo)(()=>k({fetchAudio:e=>le(s,e)}),[s]);(0,r.useEffect)(()=>()=>c.dispose(),[c]);let[l,u]=(0,r.useState)({}),[f,p]=C(`voice`,``),m=(0,r.useRef)(null),[h,g]=(0,r.useState)(null),_=(0,r.useRef)(null),v=(0,r.useCallback)(e=>{g(e),clearTimeout(_.current),_.current=setTimeout(()=>g(null),3600)},[]),y=(0,r.useCallback)(()=>s.call(`settings/get`).then(e=>{c.configure({cloudVoice:ie(e)}),u(e)}).catch(()=>void 0),[s,c]);(0,r.useEffect)(()=>{if(typeof BroadcastChannel!=`function`)return;let e=new BroadcastChannel(`aha-tutor:settings`);return e.onmessage=e=>{typeof e.data?.voiceId==`string`?p(e.data.voiceId):y()},m.current=e,()=>{e.close(),m.current===e&&(m.current=null)}},[y,p]);let b=(0,r.useCallback)(async()=>{await y(),m.current?.postMessage({})},[y]),x=(0,r.useCallback)(e=>{p(e),m.current?.postMessage({voiceId:e})},[p]);(0,r.useEffect)(()=>{y(),s.call(`app/info`,{language:n}).catch(()=>void 0)},[y,n]);let S=(0,r.useMemo)(()=>({...l,voiceId:f}),[l,f]);return{value:(0,r.useMemo)(()=>({api:s,t,language:n,speech:c,settings:S,setVoiceId:x,settingsSaved:b,navigate:a,back:o,toast:v,dsh:i}),[s,t,n,c,S,x,b,a,o,v,i]),toastText:h}}async function le(e,t){try{let e=await fetch(new URL(`api/aha-tutor/tts`,document.baseURI),{method:`POST`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify({text:t})});if(e.ok)return{blob:await e.blob()};if(e.status!==404){let t=null;try{t=(await e.json())?.error??null}catch{}throw new u(t?.code??`tts-failed`,t?.message??`tts failed`)}}catch(e){if(e?.message&&e.message!==`Failed to fetch`)throw e}let n=await e.call(`tts/speak`,{text:t});return{base64:n.base64,mime:n.mime}}function ue(){let[e,t]=C(`route`,{screen:`home`,params:{}}),[n,i]=(0,r.useState)(null);return(0,r.useEffect)(()=>{n===e&&de()},[n,e]),{route:e,setRoute:t,crashed:(0,r.useCallback)(()=>i(e),[e])}}function de(){try{window.localStorage.removeItem(se)}catch{}}function fe(e,t,n={}){let r={screen:t,params:n};try{window.localStorage.setItem(se,JSON.stringify(r))}catch{}window.dispatchEvent(new CustomEvent(A,{detail:r})),e?.selectPanel?.()}let pe={logo:`M12 2v1.5M4.5 5l1.1 1.1M19.5 5l-1.1 1.1M9 18v-.6c0-.8-.4-1.5-1-2.1a5.5 5.5 0 1 1 8 0c-.6.6-1 1.3-1 2.1v.6zM9.5 21h5`,home:`M4 11l8-6.5 8 6.5V20h-5v-5h-6v5H4z`,courses:`M4 5.5A1.5 1.5 0 0 1 5.5 4H11v15H5.5A1.5 1.5 0 0 0 4 20.5zM20 5.5A1.5 1.5 0 0 0 18.5 4H13v15h5.5a1.5 1.5 0 0 1 1.5 1.5z`,assist:`M4 5h16v10H9l-5 4zM9 9.5h6M9 12h4`,library:`M5 4h4v16H5zM10 4h4v16h-4zM15.5 5l3.6-.9 2.4 15.6-3.6.9z`,studio:`M5 19l4-1 10-10-3-3L6 15l-1 4zM14 6l3 3M4 21h16`,shorts:`M4 6h16v12H4zM10 9.5v5l4.5-2.5z`,plan:`M5 5h14v15H5zM5 9h14M9 3v4M15 3v4M8.5 13h3M8.5 16h6`,profile:`M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM4.5 20a7.5 7.5 0 0 1 15 0`,settings:`M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM19 12l2-1.5-2-3.5-2.3.7a7 7 0 0 0-1.7-1L14.5 4h-5l-.5 2.7a7 7 0 0 0-1.7 1L5 7 3 10.5 5 12l-2 1.5L5 17l2.3-.7a7 7 0 0 0 1.7 1l.5 2.7h5l.5-2.7a7 7 0 0 0 1.7-1L19 17l2-3.5z`,board:`M3 5h18v11H3zM8 20h8M12 16v4M7 9l3 3 2-2 4 3`,plus:`M12 5v14M5 12h14`,upload:`M12 16V4M7 9l5-5 5 5M5 20h14`,link:`M10 14a4 4 0 0 0 5.7 0l3-3a4 4 0 0 0-5.7-5.7l-1 1M14 10a4 4 0 0 0-5.7 0l-3 3a4 4 0 0 0 5.7 5.7l1-1`,trash:`M5 7h14M10 11v6M14 11v6M7 7l1 13h8l1-13M9 7V4h6v3`,play:`M7 5l12 7-12 7z`,folder:`M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,spark:`M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8z`,heart:`M12 20s-7.5-4.6-7.5-10.2A4.3 4.3 0 0 1 12 7.2a4.3 4.3 0 0 1 7.5 2.6C19.5 15.4 12 20 12 20z`,mic:`M12 3a3 3 0 0 0-3 3v5a3 3 0 0 0 6 0V6a3 3 0 0 0-3-3zM5.5 11a6.5 6.5 0 0 0 13 0M12 17.5V21M8.5 21h7`,stop:`M7 7h10v10H7z`};function me({name:e,size:t=18}){return(0,i.jsx)(`svg`,{width:t,height:t,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.7`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:(0,i.jsx)(`path`,{d:pe[e]??pe.spark})})}var he=`data:image/png;base64,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`,ge=`data:image/png;base64,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`;let _e=`https://github.com/BaronCyrus/dsh-aha-tutor`;function ve(){let{t:e}=v();return(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:820},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:e(`aboutTitle`)}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-aboutHead`,children:[(0,i.jsx)(`span`,{className:`aha-aboutLogo`,children:(0,i.jsx)(me,{name:`logo`,size:28})}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`div`,{className:`aha-cardTitle`,children:`BaronCyrus`}),(0,i.jsx)(`div`,{className:`aha-hint`,children:e(`aboutRole`)})]})]}),(0,i.jsx)(`p`,{className:`aha-aboutIntro`,children:e(`aboutIntro`)}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`a`,{className:`aha-btn`,href:_e,target:`_blank`,rel:`noopener noreferrer`,children:e(`aboutRepo`)}),(0,i.jsx)(`a`,{className:`aha-btn`,href:`${_e}/issues`,target:`_blank`,rel:`noopener noreferrer`,children:e(`aboutIssues`)})]})]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`div`,{className:`aha-cardTitle`,children:e(`aboutSupport`)}),(0,i.jsxs)(`div`,{className:`aha-sponsors`,children:[(0,i.jsxs)(`figure`,{children:[(0,i.jsx)(`img`,{src:ge,width:`180`,height:`180`,alt:e(`aboutWechat`)}),(0,i.jsx)(`figcaption`,{children:e(`aboutWechat`)})]}),(0,i.jsxs)(`figure`,{children:[(0,i.jsx)(`img`,{src:he,width:`180`,height:`180`,alt:e(`aboutAlipay`)}),(0,i.jsx)(`figcaption`,{children:e(`aboutAlipay`)})]})]}),(0,i.jsx)(`p`,{className:`aha-hint`,style:{textAlign:`center`},children:e(`aboutScan`)})]})]})}function ye(e){let t=new Uint8Array(e);globalThis.crypto.getRandomValues(t);let n=``;for(let e of t)n+=(e%36).toString(36);return n}function be(e){if(!/^[a-z]{2,6}$/u.test(e))throw TypeError(`invalid id prefix "${e}"`);return`${e}_${Date.now().toString(36)}${ye(6)}`}let xe=Object.freeze({chars:240,nodes:400,depth:40});var Se=class extends Error{constructor(e){super(e),this.name=`ExprError`}};let Ce=Object.freeze({sin:[1,Math.sin],cos:[1,Math.cos],tan:[1,Math.tan],cot:[1,e=>1/Math.tan(e)],sec:[1,e=>1/Math.cos(e)],csc:[1,e=>1/Math.sin(e)],asin:[1,Math.asin],acos:[1,Math.acos],atan:[1,Math.atan],arcsin:[1,Math.asin],arccos:[1,Math.acos],arctan:[1,Math.atan],atan2:[2,Math.atan2],sinh:[1,Math.sinh],cosh:[1,Math.cosh],tanh:[1,Math.tanh],asinh:[1,Math.asinh],acosh:[1,Math.acosh],atanh:[1,Math.atanh],exp:[1,Math.exp],ln:[1,Math.log],log:[1,Math.log10],lg:[1,Math.log10],log10:[1,Math.log10],log2:[1,Math.log2],sqrt:[1,Math.sqrt],cbrt:[1,Math.cbrt],abs:[1,Math.abs],sign:[1,Math.sign],floor:[1,Math.floor],ceil:[1,Math.ceil],round:[1,Math.round],min:[-2,Math.min],max:[-2,Math.max],pow:[2,Math.pow]}),we=Object.freeze({pi:Math.PI,π:Math.PI,e:Math.E}),Te=e=>Object.hasOwn(Ce,e),Ee=e=>Object.hasOwn(we,e),De=[[/[−–—]/gu,`-`],[/[×·⋅∙]/gu,`*`],[/÷/gu,`/`],[/\*\*/gu,`^`],[/²/gu,`^2`],[/³/gu,`^3`],[/[(]/gu,`(`],[/[)]/gu,`)`],[/[,]/gu,`,`]];function Oe(e){let t=String(e??``);for(let[e,n]of De)t=t.replace(e,n);let n=[],r=0;for(;r<t.length;){let e=t[r];if(/\s/u.test(e)){r+=1;continue}let i=/^(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?/u.exec(t.slice(r));if(i){n.push({type:`num`,value:Number(i[0])}),r+=i[0].length;continue}let a=/^[\p{L}_][\p{L}\p{N}_]*/u.exec(t.slice(r));if(a){n.push({type:`name`,value:a[0]}),r+=a[0].length;continue}if(`+-*/^(),|√`.includes(e)){n.push({type:e}),r+=1;continue}throw new Se(`Unexpected "${e}"`)}return n}function ke(e,t=[]){let n=String(e??``);if(!n.trim())throw new Se(`Empty formula`);if(n.length>xe.chars)throw new Se(`Formula too long`);let r=new Set(t),i=Oe(n),a=0,o=0,s=0,c=()=>i[a],l=e=>{let t=i[a];if(!t||e&&t.type!==e)throw new Se(e?`Expected "${e}"`:`Unexpected end`);return a+=1,t},u=e=>{if(o+=1,o>xe.nodes)throw new Se(`Formula too long`);return e},d=e=>{if(s+=1,s>xe.depth)throw new Se(`Formula nested too deeply`);try{return e()}finally{--s}},f=e=>e&&(e.type===`num`||e.type===`name`||e.type===`(`||e.type===`√`);function p(){let e=m();for(;c()?.type===`+`||c()?.type===`-`;){let t=l().type;e=u({k:`bin`,op:t,a:e,b:m()})}return e}function m(){let e=h();for(;;){let t=c();if(t?.type===`*`||t?.type===`/`)l(),e=u({k:`bin`,op:t.type,a:e,b:h()});else if(f(t))e=u({k:`bin`,op:`*`,a:e,b:g()});else return e}}function h(){let e=c();return e?.type===`-`?(l(),u({k:`neg`,a:d(h)})):e?.type===`+`?(l(),d(h)):g()}function g(){let e=b();return c()?.type===`^`?(l(),u({k:`bin`,op:`^`,a:e,b:d(h)})):e}function _(e){let[t]=Ce[e];l(`(`);let n=[d(p)];for(;c()?.type===`,`;)l(),n.push(d(p));if(l(`)`),t>0?n.length!==t:n.length<-t)throw new Se(`${e} takes ${Math.abs(t)} argument${Math.abs(t)>1?`s`:``}`);return u({k:`call`,f:e,args:n})}function v(e){if(r.has(e))return u({k:`var`,n:e});if(Ee(e))return u({k:`num`,v:we[e]});if(Te(e)){if(c()?.type!==`(`)throw new Se(`Write ${e}(…) with parentheses`);return _(e)}let t=y(e);if(!t)throw new Se(`Unknown name "${e}"`);let n=null;for(let[i,a]of t.entries()){let o;if(Te(a)){if(i!==t.length-1||c()?.type!==`(`)throw new Se(`Unknown name "${e}"`);o=_(a)}else o=u(r.has(a)?{k:`var`,n:a}:{k:`num`,v:we[a]});n=n?u({k:`bin`,op:`*`,a:n,b:o}):o}return n}function y(e){let t=[...r,...Object.keys(we),...Object.keys(Ce)].sort((e,t)=>t.length-e.length),n=[],i=e;for(;i;){let e=t.find(e=>i.startsWith(e));if(!e)return null;n.push(e),i=i.slice(e.length)}return n.length>1?n:null}function b(){let e=l();if(e.type===`num`)return u({k:`num`,v:e.value});if(e.type===`name`)return v(e.value);if(e.type===`(`){let e=d(p);return l(`)`),e}if(e.type===`|`){let e=d(p);return l(`|`),u({k:`call`,f:`abs`,args:[e]})}if(e.type===`√`)return u({k:`call`,f:`sqrt`,args:[d(g)]});throw new Se(`Unexpected "${e.type}"`)}let x=p();if(a<i.length)throw new Se(`Unexpected "${i[a].type===`name`||i[a].type===`num`?i[a].value:i[a].type}"`);return x}function Ae(e,t=[]){let n=new Map(t.map((e,t)=>[e,t])),r=e=>{switch(e.k){case`num`:{let t=e.v;return()=>t}case`var`:{let t=n.get(e.n);if(t===void 0)throw new Se(`Unknown name "${e.n}"`);return e=>e[t]}case`neg`:{let t=r(e.a);return e=>-t(e)}case`bin`:{let t=r(e.a),n=r(e.b);return e.op===`+`?e=>t(e)+n(e):e.op===`-`?e=>t(e)-n(e):e.op===`*`?e=>t(e)*n(e):e.op===`/`?e=>t(e)/n(e):e=>je(t(e),n(e))}case`call`:{let t=Ce[e.f][1],n=e.args.map(r);if(n.length===1){let[e]=n;return n=>t(e(n))}return e=>t(...n.map(t=>t(e)))}default:throw new Se(`Bad formula`)}};return r(e)}function je(e,t){let n=e**t;if(!Number.isNaN(n)||e>=0||!Number.isFinite(t))return n;for(let n of[3,5,7,9]){let r=Math.round(t*n);if(Math.abs(r/n-t)<1e-9)return(-((-e)**(1/n)))**r}return n}let Me={0:`⁰`,1:`¹`,2:`²`,3:`³`,4:`⁴`,5:`⁵`,6:`⁶`,7:`⁷`,8:`⁸`,9:`⁹`,"-":`⁻`},Ne={pi:`π`,theta:`θ`,omega:`ω`,phi:`φ`,alpha:`α`,beta:`β`,lambda:`λ`,mu:`μ`,sigma:`σ`,tau:`τ`},Pe={"+":1,"-":1,"*":2,"/":2,"^":4};function Fe(e){return Math.abs(e-Math.PI)<1e-12?`π`:Math.abs(e-Math.E)<1e-12?`e`:Number(e.toPrecision(6)).toString()}let Ie=e=>[...String(e)].map(e=>Me[e]).join(``),Le=e=>[...e].length===1&&/\p{L}/u.test(e);function Re(e,t=Ne){let n=e=>t[e]??e,r=(e,t=0)=>{switch(e.k){case`num`:return Fe(e.v);case`var`:return n(e.n);case`neg`:{let n=r(e.a,3);return t>2?`(−${n})`:`−${n}`}case`call`:return e.f===`abs`?`|${r(e.args[0])}|`:e.f===`sqrt`?`√(${r(e.args[0])})`:`${e.f}(${e.args.map(e=>r(e)).join(`, `)})`;case`bin`:{let n=Pe[e.op],i;if(e.op===`^`){let t=r(e.a,5),n=e=>e.k===`num`&&Number.isInteger(e.v)&&Math.abs(e.v)<100,a=r(e.b);i=`${t}${n(e.b)?Ie(e.b.v):e.b.k===`neg`&&n(e.b.a)?`⁻${Ie(e.b.a.v)}`:Le(a)?`^${a}`:`^(${a})`}`}else if(e.op===`*`){let t=r(e.a,n),a=r(e.b,n);i=e.a.k===`num`&&/\d$/u.test(t)&&/^[\p{L}(√|]/u.test(a)||Le(t)&&(Le(a)||a.startsWith(`(`))||e.a.k!==`call`&&/^[\d\p{L}]+$/u.test(t)&&/\p{L}$/u.test(t)&&Le(a)||e.a.k!==`call`&&t.endsWith(`)`)&&a.startsWith(`(`)?`${t}${a}`:`${t}·${a}`}else{let t=r(e.a,n),a=r(e.b,e.op===`+`?n:n+.5);i=`${t} ${e.op===`-`?`−`:e.op} ${a}`}return n<t?`(${i})`:i}default:return``}};return r(e)}let ze=Object.freeze({fns:4,params:4,points:8,lines:6,shades:3,tangents:3,samples:480}),Be=Object.freeze({fx:[`x`,`t`],param:[`t`,`θ`,`theta`],polar:[`θ`,`theta`,`t`]});function Ve(e,t){return Be[e].filter(e=>!t.includes(e))}function He(e){let t=e.params.map(e=>e.name);return e.fns.map(e=>{let n=Ve(e.kind,t),r=[...n,...t],i=e=>{let t=Ae(ke(e,r),r),i=Array(r.length).fill(0);return(e,r)=>{for(let t=0;t<n.length;t+=1)i[t]=e;for(let e=0;e<r.length;e+=1)i[n.length+e]=r[e];return t(i)}};if(e.kind===`polar`){let t=i(e.r);return{kind:`polar`,at:(e,n)=>{let r=t(e,n);return[r*Math.cos(e),r*Math.sin(e)]}}}if(e.kind===`param`){let t=i(e.x),n=i(e.y);return{kind:`param`,at:(e,r)=>[t(e,r),n(e,r)]}}let a=i(e.y);return{kind:`fx`,y:a,at:(e,t)=>[e,a(e,t)]}})}let Ue=e=>e.params.map(e=>e.value);function We(e,t,n,r=e.x){return e.fns.map((e,i)=>{let a=t[i],[o,s]=e.kind===`fx`?[Math.max(r?.min??-5,e.domain?.[0]??-1/0),Math.min(r?.max??5,e.domain?.[1]??1/0)]:e.t,c=e.kind===`fx`?ze.samples:ze.samples*1.5,l=[];if(!(s>o))return l;for(let e=0;e<=c;e+=1)l.push(a.at(o+(s-o)*e/c,n));return l})}function j(e,t,n,r=1){let i=Math.max(1e-7,Math.abs(r)*1e-5);return(e.y(t+i,n)-e.y(t-i,n))/(2*i)}function Ge(e,t){return e[Math.min(e.length-1,Math.max(0,Math.round((e.length-1)*t)))]}function Ke(e,t=He(e)){let n=[[]];for(let t of e.params){let e=[];for(let r of n)for(let n of new Set([t.min,t.value,t.max]))e.push([...r,n]);n.splice(0,n.length,...e)}let r=[],i=[];for(let a of n)for(let n of We(e,t,a))for(let[e,t]of n)!Number.isFinite(e)||!Number.isFinite(t)||(r.push(e),i.push(t));for(let t of e.points)Number.isFinite(t.y)&&i.push(t.y);for(let t of e.lines)t.y!==void 0&&i.push(t.y);let a=(e,t)=>{if(!e.length)return t;let n=[...e].sort((e,t)=>e-t),[r,i]=[n[0],n[n.length-1]],[a,o]=[Ge(n,.03),Ge(n,.97)];i-r>6*Math.max(1e-9,o-a)&&([r,i]=[a,o]),i-r<1e-9&&([r,i]=[r-1,i+1]);let s=(i-r)*.08;return r>0&&r<(i-r)*.35&&(r=0),i<0&&-i<(i-r)*.35&&(i=0),{min:r===0?0:r-s,max:i===0?0:i+s}},o=e.x??a(r,{min:-5,max:5}),s=e.y??a(i,{min:-5,max:5});return{x:{min:o.min,max:o.max},y:{min:Math.min(s.min,s.max-1e-9),max:s.max}}}function qe(e,t){try{return Re(ke(e,[...new Set([...Object.values(Be).flat(),...t.params.map(e=>e.name)])]))}catch{return e}}let M=e=>{if(!Number.isFinite(e))return String(e);let t=e/Math.PI;if(e!==0&&Math.abs(t*4-Math.round(t*4))<1e-6){let e=Math.round(t*4),[n,r]=e%4==0?[e/4,1]:e%2==0?[e/2,2]:[e,4],i=n===1?`π`:n===-1?`−π`:`${n}π`.replace(`-`,`−`);return r===1?i:`${i}/${r}`}return Number(e.toPrecision(4)).toString().replace(`-`,`−`)},Je=M;function Ye(e){return e.fns.map(t=>t.kind===`polar`?`r = ${qe(t.r,e)}`:t.kind===`param`?`x = ${qe(t.x,e)}, y = ${qe(t.y,e)}`:`y = ${qe(t.y,e)}`)}function Xe(e){let t=[e.title||e.caption].filter(Boolean),n=Ye(e).map((t,n)=>{let r=e.fns[n],i=r.kind===`fx`?e.x?`, x ${M(r.domain?.[0]??e.x.min)} … ${M(r.domain?.[1]??e.x.max)}`:``:`, ${r.kind===`polar`?`θ`:`t`} ${M(r.t[0])} … ${M(r.t[1])}`;return`${r.name?`${r.name}: `:``}${t}${i}`});return t.push(...n),e.params.length&&t.push(e.params.map(e=>`${e.label||e.name} = ${M(e.value)} (${M(e.min)} … ${M(e.max)})`).join(`; `)),t.join(`
|
|
2
|
-
`)}Object.freeze({questions:6,options:5,units:12,lecturesPerUnit:8,lessonsPerLecture:8,lessons:120,objectives:5,concepts:6,projects:3,milestones:6,rubric:8,starterFiles:12,starterFileBytes:64*1024,practiceItems:12,options4:6,cards:60,sheetSections:24,sheetItems:16});function
|
|
1
|
+
window.__ModuleLoader__.load({id:`dsh-aha-tutor`,factory:e=>{var t={exports:{}},n=t.exports;Object.defineProperty(n,Symbol.toStringTag,{value:`Module`});let r=e("react"),i=e("react/jsx-runtime"),a=e("@deepseek-ai/dsh-client-ui-primitives"),o=e("react-dom");var s=class extends r.Component{constructor(e){super(e),this.state={failed:!1,error:null,resetKey:e.resetKey},this.retry=()=>this.setState({failed:!1,error:null})}static getDerivedStateFromError(e){return{failed:!0,error:e}}static getDerivedStateFromProps(e,t){return e.resetKey===t.resetKey?null:{failed:!1,error:null,resetKey:e.resetKey}}componentDidCatch(e){this.props.onError?.(e)}render(){return this.state.failed?this.props.fallback({error:this.state.error,retry:this.retry}):this.props.children}};function c(e){return String(e?.message??e).slice(0,300)}function l({t:e,error:t,place:n=`page`,onRetry:i,onHome:a}){let o=i?(0,r.createElement)(`button`,{type:`button`,className:`aha-btn`,"data-size":n===`page`?void 0:`sm`,onClick:i},e(`retry`)):null;return n===`card`?(0,r.createElement)(`div`,{className:`aha-spread`,role:`alert`},(0,r.createElement)(`span`,{className:`aha-error`,title:c(t)},e(`crashPart`)),o):n===`tab`?(0,r.createElement)(`div`,{className:`aha-col`,role:`alert`,style:{gap:8}},(0,r.createElement)(`p`,{className:`aha-error`,title:c(t)},e(`crashPart`)),o?(0,r.createElement)(`div`,null,o):null):(0,r.createElement)(`div`,{className:`aha-page`},(0,r.createElement)(`div`,{className:`aha-card`,role:`alert`,style:{alignItems:`center`,textAlign:`center`,gap:12,padding:`28px 16px`}},(0,r.createElement)(`p`,{className:`aha-cardTitle`,title:c(t)},e(`crashPage`)),o?(0,r.createElement)(`p`,{className:`aha-hint`},e(`crashPageHint`)):null,(0,r.createElement)(`div`,{className:`aha-row`,style:{justifyContent:`center`}},o,(0,r.createElement)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:a},e(`backHome`)))))}var u=class extends Error{constructor(e,t){super(t),this.name=`ApiError`,this.code=e}};function d(e){async function t(t,n={}){let r;try{r=await e.call(`/aha-tutor`,t,n??{})}catch(e){throw new u(`connection`,e?.message||`Connection to DSH failed`)}if(!r?.ok)throw new u(r?.error?.code??`failed`,r?.error?.message??`Request failed`);return r.value}async function n(e,{onPartial:n,onProgress:r,onPreview:i,signal:a}={}){let o=e?.job;if(!o)return e;let s=0,c=o;for(;;){if(c.partial?.length&&(n?.(c.partial,s),s+=c.partial.length),c.progress&&r?.(c.progress),c.preview&&i?.(c.preview,c),c.status===`done`)return c.result;if(c.status===`cancelled`||a?.aborted)throw new u(`cancelled`,`cancelled`);if(c.status===`failed`)throw new u(c.error?.code??c.status,c.error?.message??c.status);if(c.status===`missing`)throw new u(`missing`,`The task was lost; try again`);await new Promise(e=>{setTimeout(e,650)}),c=await t(`job/get`,{id:o.id,since:s})}}async function r(e,r,i){return n(await t(e,r),i)}function i(e){let n=typeof e==`string`?e:e?.id;return n?t(`job/cancel`,{id:n}).catch(()=>void 0):Promise.resolve()}return{call:t,follow:n,run:r,cancel:i}}function f(e,t){return t?.id?{...e,jobId:t.id}:e}function p(e){return new Promise((t,n)=>{let r=new FileReader;r.onerror=()=>n(r.error??Error(`read failed`)),r.onload=()=>{let e=String(r.result??``);t(e.slice(e.indexOf(`,`)+1))},r.readAsDataURL(e)})}function m(e,t=`aha`){return String(e??``).replace(/[<>:"/\\|?*\u0000-\u001f]/gu,` `).replace(/\s+/gu,` `).trim().slice(0,60).trim()||t}function h(e,t,n=`application/json`){let r=URL.createObjectURL(new Blob([t],{type:`${n};charset=utf-8`})),i=document.createElement(`a`);i.href=r,i.download=e,document.body.append(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(r),5e3)}function g(e,t){let n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=e,document.body.append(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e4)}let _=(0,r.createContext)(null);function v(){let e=(0,r.useContext)(_);if(!e)throw Error(`AppContext missing`);return e}function y(e,t=[]){let[n,i]=(0,r.useState)({loading:!0,error:null,value:void 0}),a=(0,r.useRef)(0),o=(0,r.useCallback)(()=>{let t=++a.current;i(e=>({...e,loading:!0,error:null})),Promise.resolve().then(e).then(e=>{a.current===t&&i({loading:!1,error:null,value:e})}).catch(e=>{a.current===t&&i(t=>({loading:!1,error:e,value:t.value}))})},t);return(0,r.useEffect)(()=>(o(),()=>{a.current+=1}),[o]),{...n,reload:o,setValue:e=>i(t=>({...t,value:typeof e==`function`?e(t.value):e}))}}function b(){let{api:e}=v(),[t,n]=(0,r.useState)({running:!1,progress:null,preview:null,error:null}),i=(0,r.useRef)(null),a=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>i.current?.abort(),[]);let o=(0,r.useCallback)(async(t,r,{onPartial:o,existing:s}={})=>{i.current?.abort();let c=new AbortController;i.current=c,a.current=s?.id??null,n({running:!0,progress:null,preview:null,error:null});try{let i={signal:c.signal,onPartial:o,onProgress:e=>{c.signal.aborted||n(t=>({...t,progress:e}))},onPreview:e=>{c.signal.aborted||n(t=>({...t,preview:e}))}},l=s?{job:s}:await e.call(t,r);l?.job?.id&&!c.signal.aborted&&(a.current=l.job.id);let u=await e.follow(l,i);return c.signal.aborted||n({running:!1,progress:null,preview:null,error:null}),u}catch(e){throw c.signal.aborted||n({running:!1,progress:null,preview:null,error:e}),e}},[e]),s=(0,r.useCallback)(()=>{i.current?.abort(),a.current&&e.cancel(a.current),a.current=null,n({running:!1,progress:null,preview:null,error:null})},[e]);return{...t,run:o,cancel:s}}function x(e){let[t]=(0,r.useState)(()=>{if(!e)return!1;let t=`aha-tutor:once:${e}`;try{if(window.sessionStorage.getItem(t))return!1;window.sessionStorage.setItem(t,`1`)}catch{}return!0});return t}function S(e,t){let[n,i]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{if(i(!1),!e)return;let n=setTimeout(()=>i(!0),t);return()=>clearTimeout(n)},[e,t]),e&&n}function C(e,t){let n=`aha-tutor:${e}`,[i,a]=(0,r.useState)(()=>{try{let e=window.localStorage.getItem(n);return e===null?t:JSON.parse(e)}catch{return t}});return(0,r.useEffect)(()=>{try{window.localStorage.setItem(n,JSON.stringify(i))}catch{}},[n,i]),[i,a]}function w(){let e=()=>{if(document.body?.hasAttribute(`data-ds-dark-theme`))return!0;let e=getComputedStyle(document.documentElement).colorScheme;return/dark/iu.test(e)&&!/light/iu.test(e)?!0:!document.body&&window.matchMedia?.(`(prefers-color-scheme: dark)`).matches===!0},[t,n]=(0,r.useState)(e);return(0,r.useEffect)(()=>{let t=window.matchMedia?.(`(prefers-color-scheme: dark)`),r=()=>n(e());t?.addEventListener?.(`change`,r);let i=new MutationObserver(r);return i.observe(document.body,{attributes:!0,attributeFilter:[`data-ds-dark-theme`]}),i.observe(document.documentElement,{attributes:!0,attributeFilter:[`style`,`data-ds-theme-source`]}),()=>{t?.removeEventListener?.(`change`,r),i.disconnect()}},[]),t}let T=/[^。!?!?;;\n]+[。!?!?;;]*\s*|\n+/gu;function E(e){let t=[];for(let n of String(e??``).matchAll(T)){let e=n[0].trim();if(e)if(e.length<=160)t.push(e);else for(let n=0;n<e.length;n+=140)t.push(e.slice(n,n+140))}return t}function D(){return typeof window<`u`&&`speechSynthesis`in window&&typeof window.SpeechSynthesisUtterance==`function`}function O(){return D()?window.speechSynthesis.getVoices().map(e=>({id:e.voiceURI,name:e.name,lang:e.lang,local:e.localService,default:e.default})):[]}function k(e){if(!D())return()=>void 0;let t=()=>e(O());return window.speechSynthesis.addEventListener?.(`voiceschanged`,t),()=>window.speechSynthesis.removeEventListener?.(`voiceschanged`,t)}function ee(e,t){if(!D())return null;let n=window.speechSynthesis.getVoices();if(t){let e=n.find(e=>e.voiceURI===t);if(e)return e}let r=String(e||`zh-CN`).toLowerCase(),i=r.split(`-`)[0],a=e=>{let t=e.lang.toLowerCase().replace(`_`,`-`),n=0;if(t===r)n+=40;else if(t.startsWith(i))n+=25;else return-1;return i===`zh`&&r===`zh-cn`&&/tw|hk/u.test(t)&&(n-=10),/natural|neural|enhanced|premium|siri/iu.test(e.name)&&(n+=12),e.localService&&(n+=6),/xiaoxiao|tingting|yunxi|xiaoyi|lili|huihui/iu.test(e.name)&&(n+=4),n};return n.map(e=>({voice:e,value:a(e)})).filter(e=>e.value>=0).sort((e,t)=>t.value-e.value)[0]?.voice??null}function te(){let e=null;function t(t,{language:r,voiceId:i,rate:a=1,onSentence:s,sentences:c}={}){o();let l=Array.isArray(c)&&c.length?c.flatMap((e,t)=>E(e).map(e=>({text:e,owner:t}))):E(t).map((e,t)=>({text:e,owner:t})),u=Array.isArray(c)&&c.length?c.length:l.length;if(!D()||!l.length)return{done:Promise.resolve({completed:!0})};let d,f=new Promise(e=>{d=e}),p={sentences:l.map(e=>e.text),owners:l.map(e=>e.owner),total:u,index:0,paused:!1,cancelled:!1,rate:a,language:r,voiceId:i,resolveDone:d,onSentence:s};return e=p,n(p),{done:f}}function n(t){if(t.cancelled||t.paused)return;if(t.index>=t.sentences.length){t.resolveDone({completed:!0}),e===t&&(e=null);return}let r=new window.SpeechSynthesisUtterance(t.sentences[t.index]),i=ee(t.language,t.voiceId);i?(r.voice=i,r.lang=i.lang):t.language&&(r.lang=t.language),r.rate=Math.min(2,Math.max(.5,t.rate));let a=t.index;r.onstart=()=>t.onSentence?.(t.owners[a],t.total);let o=()=>{t.cancelled||t.paused||t.index!==a||(t.index+=1,n(t))};r.onend=o,r.onerror=n=>{if(!(n?.error===`interrupted`||n?.error===`canceled`)){if(n?.error===`not-allowed`||n?.error===`synthesis-unavailable`){e===t&&(e=null),t.cancelled=!0,t.resolveDone({completed:!1,error:n.error});return}o()}},t.utterance=r,window.speechSynthesis.speak(r)}function r(){!e||e.paused||(e.paused=!0,window.speechSynthesis.cancel())}function i(){!e||!e.paused||(e.paused=!1,n(e))}function a(t){e&&(e.rate=t)}function o(){if(!e)return;let t=e;e=null,t.cancelled=!0,D()&&window.speechSynthesis.cancel(),t.resolveDone({completed:!1})}return{speak:t,pause:r,resume:i,cancel:o,setRate:a}}function ne(e){let t=e?.ttsProvider??``,n=e?.tts?.[t]??{};return JSON.stringify([t,Object.keys(n).sort().map(e=>[e,n[e]])])}function A({fetchAudio:e}){let t=null,n=new Map;async function r(t,r=``){let i=`${r}\n${t}`;if(n.has(i))return n.get(i);let a=e(t).then(({blob:e,base64:t,mime:n})=>{if(e)return URL.createObjectURL(e);let r=Uint8Array.from(atob(t),e=>e.charCodeAt(0));return URL.createObjectURL(new Blob([r],{type:n||`audio/mpeg`}))});if(n.set(i,a),a.catch(()=>n.delete(i)),n.size>40){let[e,t]=n.entries().next().value;n.delete(e),t.then(e=>URL.revokeObjectURL(e)).catch(()=>void 0)}return a}function i(e,t){e&&r(e,t).catch(()=>void 0)}function a(e,{rate:n=1,cloudVoice:i}={}){if(o(),!String(e??``).trim())return{done:Promise.resolve({completed:!0})};let a,s=new Promise(e=>{a=e}),c=new Audio;c.preservesPitch=!0;let l={audio:c,cancelled:!1,resolveDone:a,rate:n};t=l;let u=(e,n)=>{t===l&&(t=null);let r=typeof e?.code==`string`&&e.code?e.code:n.code;a({completed:!1,error:e?.message??n.code,code:r})};return r(e,i).then(e=>{if(!l.cancelled)return c.src=e,c.playbackRate=Math.min(2,Math.max(.5,n)),c.onended=()=>{t===l&&(t=null),a({completed:!0})},c.onerror=()=>u(null,{code:`playback`}),c.play().catch(e=>u(e,{code:`playback`}))}).catch(e=>u(e,{code:`tts-failed`})),{done:s}}function o(){if(!t)return;let e=t;t=null,e.cancelled=!0,e.audio.pause(),e.resolveDone({completed:!1})}return{speak:a,prefetch:i,pause:()=>t?.audio.pause(),resume:()=>t?.audio.play().catch(()=>void 0),setRate:e=>{t&&(t.audio.playbackRate=Math.min(2,Math.max(.5,e)))},cancel:o,clear(){for(let e of n.values())e.then(e=>URL.revokeObjectURL(e)).catch(()=>void 0);n.clear()}}}function re({fetchAudio:e}){let t={browser:te(),cloud:A({fetchAudio:e})},n={engine:`browser`,rate:1},r=null;return{configure(e){n={...n,...e}},get settings(){return n},speak(e,i={}){if(r?.cancel(),n.engine===`off`)return r=null,{done:Promise.resolve({completed:!0,silent:!0})};r=t[n.engine]??t.browser;try{return r.speak(e,{...n,...i})}catch(e){return console.error(e),{done:Promise.resolve({completed:!1,error:e?.message??`speech`})}}},prefetch(e){n.engine===`cloud`&&t.cloud.prefetch(e,n.cloudVoice)},pause:()=>r?.pause(),resume:()=>r?.resume(),setRate(e){n={...n,rate:e},r?.setRate(e)},cancel:()=>r?.cancel(),dispose(){t.browser.cancel(),t.cloud.cancel(),t.cloud.clear()}}}let ie=new Set([`tts-no-key`,`tts-auth`,`tts-address`,`tts-app-id`,`tts-azure`,`tts-config`,`tts-request`,`tts-stalled`,`tts-timeout`,`no-credentials`,`speech`]);function ae(e,t){if(!t?.error)return{failures:t?.completed&&!t.silent?0:e,stop:null};let n=(typeof t.code==`string`&&t.code?t.code:`speech`).replace(/^aha-tutor\//u,``),r=e+1;return{failures:r,stop:ie.has(n)||r>=2?{code:n,message:String(t.error)}:null}}let oe=`aha-tutor:navigate`,se=`aha-tutor:route`;function ce({rpc:e,t,language:n,dsh:i,navigate:a=()=>void 0,back:o=()=>void 0}){let s=(0,r.useMemo)(()=>d(e),[e]),c=(0,r.useMemo)(()=>re({fetchAudio:e=>le(s,e)}),[s]);(0,r.useEffect)(()=>()=>c.dispose(),[c]);let[l,u]=(0,r.useState)({}),[f,p]=C(`voice`,``),m=(0,r.useRef)(null),[h,g]=(0,r.useState)(null),_=(0,r.useRef)(null),v=(0,r.useCallback)(e=>{g(e),clearTimeout(_.current),_.current=setTimeout(()=>g(null),3600)},[]),y=(0,r.useCallback)(()=>s.call(`settings/get`).then(e=>{c.configure({cloudVoice:ne(e)}),u(e)}).catch(()=>void 0),[s,c]);(0,r.useEffect)(()=>{if(typeof BroadcastChannel!=`function`)return;let e=new BroadcastChannel(`aha-tutor:settings`);return e.onmessage=e=>{typeof e.data?.voiceId==`string`?p(e.data.voiceId):y()},m.current=e,()=>{e.close(),m.current===e&&(m.current=null)}},[y,p]);let b=(0,r.useCallback)(async()=>{await y(),m.current?.postMessage({})},[y]),x=(0,r.useCallback)(e=>{p(e),m.current?.postMessage({voiceId:e})},[p]);(0,r.useEffect)(()=>{y(),s.call(`app/info`,{language:n}).catch(()=>void 0)},[y,n]);let S=(0,r.useMemo)(()=>({...l,voiceId:f}),[l,f]);return{value:(0,r.useMemo)(()=>({api:s,t,language:n,speech:c,settings:S,setVoiceId:x,settingsSaved:b,navigate:a,back:o,toast:v,dsh:i}),[s,t,n,c,S,x,b,a,o,v,i]),toastText:h}}async function le(e,t){try{let e=await fetch(new URL(`api/aha-tutor/tts`,document.baseURI),{method:`POST`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify({text:t})});if(e.ok)return{blob:await e.blob()};if(e.status!==404){let t=null;try{t=(await e.json())?.error??null}catch{}throw new u(t?.code??`tts-failed`,t?.message??`tts failed`)}}catch(e){if(e?.message&&e.message!==`Failed to fetch`)throw e}let n=await e.call(`tts/speak`,{text:t});return{base64:n.base64,mime:n.mime}}function ue(){let[e,t]=C(`route`,{screen:`home`,params:{}}),[n,i]=(0,r.useState)(null);return(0,r.useEffect)(()=>{n===e&&j()},[n,e]),{route:e,setRoute:t,crashed:(0,r.useCallback)(()=>i(e),[e])}}function j(){try{window.localStorage.removeItem(se)}catch{}}function de(e,t,n={}){let r={screen:t,params:n};try{window.localStorage.setItem(se,JSON.stringify(r))}catch{}window.dispatchEvent(new CustomEvent(oe,{detail:r})),e?.selectPanel?.()}let fe={logo:`M12 2v1.5M4.5 5l1.1 1.1M19.5 5l-1.1 1.1M9 18v-.6c0-.8-.4-1.5-1-2.1a5.5 5.5 0 1 1 8 0c-.6.6-1 1.3-1 2.1v.6zM9.5 21h5`,home:`M4 11l8-6.5 8 6.5V20h-5v-5h-6v5H4z`,courses:`M4 5.5A1.5 1.5 0 0 1 5.5 4H11v15H5.5A1.5 1.5 0 0 0 4 20.5zM20 5.5A1.5 1.5 0 0 0 18.5 4H13v15h5.5a1.5 1.5 0 0 1 1.5 1.5z`,assist:`M4 5h16v10H9l-5 4zM9 9.5h6M9 12h4`,library:`M5 4h4v16H5zM10 4h4v16h-4zM15.5 5l3.6-.9 2.4 15.6-3.6.9z`,studio:`M5 19l4-1 10-10-3-3L6 15l-1 4zM14 6l3 3M4 21h16`,shorts:`M4 6h16v12H4zM10 9.5v5l4.5-2.5z`,plan:`M5 5h14v15H5zM5 9h14M9 3v4M15 3v4M8.5 13h3M8.5 16h6`,profile:`M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM4.5 20a7.5 7.5 0 0 1 15 0`,settings:`M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM19 12l2-1.5-2-3.5-2.3.7a7 7 0 0 0-1.7-1L14.5 4h-5l-.5 2.7a7 7 0 0 0-1.7 1L5 7 3 10.5 5 12l-2 1.5L5 17l2.3-.7a7 7 0 0 0 1.7 1l.5 2.7h5l.5-2.7a7 7 0 0 0 1.7-1L19 17l2-3.5z`,board:`M3 5h18v11H3zM8 20h8M12 16v4M7 9l3 3 2-2 4 3`,plus:`M12 5v14M5 12h14`,upload:`M12 16V4M7 9l5-5 5 5M5 20h14`,link:`M10 14a4 4 0 0 0 5.7 0l3-3a4 4 0 0 0-5.7-5.7l-1 1M14 10a4 4 0 0 0-5.7 0l-3 3a4 4 0 0 0 5.7 5.7l1-1`,trash:`M5 7h14M10 11v6M14 11v6M7 7l1 13h8l1-13M9 7V4h6v3`,play:`M7 5l12 7-12 7z`,folder:`M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,spark:`M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8z`,heart:`M12 20s-7.5-4.6-7.5-10.2A4.3 4.3 0 0 1 12 7.2a4.3 4.3 0 0 1 7.5 2.6C19.5 15.4 12 20 12 20z`,mic:`M12 3a3 3 0 0 0-3 3v5a3 3 0 0 0 6 0V6a3 3 0 0 0-3-3zM5.5 11a6.5 6.5 0 0 0 13 0M12 17.5V21M8.5 21h7`,stop:`M7 7h10v10H7z`};function pe({name:e,size:t=18}){return(0,i.jsx)(`svg`,{width:t,height:t,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.7`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:(0,i.jsx)(`path`,{d:fe[e]??fe.spark})})}var me=`data:image/png;base64,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`,he=`data:image/png;base64,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`;let ge=`https://github.com/BaronCyrus/dsh-aha-tutor`;function _e(){let{t:e}=v();return(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:820},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:e(`aboutTitle`)}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-aboutHead`,children:[(0,i.jsx)(`span`,{className:`aha-aboutLogo`,children:(0,i.jsx)(pe,{name:`logo`,size:28})}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`div`,{className:`aha-cardTitle`,children:`BaronCyrus`}),(0,i.jsx)(`div`,{className:`aha-hint`,children:e(`aboutRole`)})]})]}),(0,i.jsx)(`p`,{className:`aha-aboutIntro`,children:e(`aboutIntro`)}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`a`,{className:`aha-btn`,href:ge,target:`_blank`,rel:`noopener noreferrer`,children:e(`aboutRepo`)}),(0,i.jsx)(`a`,{className:`aha-btn`,href:`${ge}/issues`,target:`_blank`,rel:`noopener noreferrer`,children:e(`aboutIssues`)})]})]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`div`,{className:`aha-cardTitle`,children:e(`aboutSupport`)}),(0,i.jsxs)(`div`,{className:`aha-sponsors`,children:[(0,i.jsxs)(`figure`,{children:[(0,i.jsx)(`img`,{src:he,width:`180`,height:`180`,alt:e(`aboutWechat`)}),(0,i.jsx)(`figcaption`,{children:e(`aboutWechat`)})]}),(0,i.jsxs)(`figure`,{children:[(0,i.jsx)(`img`,{src:me,width:`180`,height:`180`,alt:e(`aboutAlipay`)}),(0,i.jsx)(`figcaption`,{children:e(`aboutAlipay`)})]})]}),(0,i.jsx)(`p`,{className:`aha-hint`,style:{textAlign:`center`},children:e(`aboutScan`)})]})]})}function ve(e){let t=new Uint8Array(e);globalThis.crypto.getRandomValues(t);let n=``;for(let e of t)n+=(e%36).toString(36);return n}function ye(e){if(!/^[a-z]{2,6}$/u.test(e))throw TypeError(`invalid id prefix "${e}"`);return`${e}_${Date.now().toString(36)}${ve(6)}`}let be=Object.freeze({chars:240,nodes:400,depth:40});var xe=class extends Error{constructor(e){super(e),this.name=`ExprError`}};let Se=Object.freeze({sin:[1,Math.sin],cos:[1,Math.cos],tan:[1,Math.tan],cot:[1,e=>1/Math.tan(e)],sec:[1,e=>1/Math.cos(e)],csc:[1,e=>1/Math.sin(e)],asin:[1,Math.asin],acos:[1,Math.acos],atan:[1,Math.atan],arcsin:[1,Math.asin],arccos:[1,Math.acos],arctan:[1,Math.atan],atan2:[2,Math.atan2],sinh:[1,Math.sinh],cosh:[1,Math.cosh],tanh:[1,Math.tanh],asinh:[1,Math.asinh],acosh:[1,Math.acosh],atanh:[1,Math.atanh],exp:[1,Math.exp],ln:[1,Math.log],log:[1,Math.log10],lg:[1,Math.log10],log10:[1,Math.log10],log2:[1,Math.log2],sqrt:[1,Math.sqrt],cbrt:[1,Math.cbrt],abs:[1,Math.abs],sign:[1,Math.sign],floor:[1,Math.floor],ceil:[1,Math.ceil],round:[1,Math.round],min:[-2,Math.min],max:[-2,Math.max],pow:[2,Math.pow]}),Ce=Object.freeze({pi:Math.PI,π:Math.PI,e:Math.E}),we=e=>Object.hasOwn(Se,e),Te=e=>Object.hasOwn(Ce,e),Ee=[[/[−–—]/gu,`-`],[/[×·⋅∙]/gu,`*`],[/÷/gu,`/`],[/\*\*/gu,`^`],[/²/gu,`^2`],[/³/gu,`^3`],[/[(]/gu,`(`],[/[)]/gu,`)`],[/[,]/gu,`,`]];function De(e){let t=String(e??``);for(let[e,n]of Ee)t=t.replace(e,n);let n=[],r=0;for(;r<t.length;){let e=t[r];if(/\s/u.test(e)){r+=1;continue}let i=/^(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?/u.exec(t.slice(r));if(i){n.push({type:`num`,value:Number(i[0])}),r+=i[0].length;continue}let a=/^[\p{L}_][\p{L}\p{N}_]*/u.exec(t.slice(r));if(a){n.push({type:`name`,value:a[0]}),r+=a[0].length;continue}if(`+-*/^(),|√`.includes(e)){n.push({type:e}),r+=1;continue}throw new xe(`Unexpected "${e}"`)}return n}function Oe(e,t=[]){let n=String(e??``);if(!n.trim())throw new xe(`Empty formula`);if(n.length>be.chars)throw new xe(`Formula too long`);let r=new Set(t),i=De(n),a=0,o=0,s=0,c=()=>i[a],l=e=>{let t=i[a];if(!t||e&&t.type!==e)throw new xe(e?`Expected "${e}"`:`Unexpected end`);return a+=1,t},u=e=>{if(o+=1,o>be.nodes)throw new xe(`Formula too long`);return e},d=e=>{if(s+=1,s>be.depth)throw new xe(`Formula nested too deeply`);try{return e()}finally{--s}},f=e=>e&&(e.type===`num`||e.type===`name`||e.type===`(`||e.type===`√`);function p(){let e=m();for(;c()?.type===`+`||c()?.type===`-`;){let t=l().type;e=u({k:`bin`,op:t,a:e,b:m()})}return e}function m(){let e=h();for(;;){let t=c();if(t?.type===`*`||t?.type===`/`)l(),e=u({k:`bin`,op:t.type,a:e,b:h()});else if(f(t))e=u({k:`bin`,op:`*`,a:e,b:g()});else return e}}function h(){let e=c();return e?.type===`-`?(l(),u({k:`neg`,a:d(h)})):e?.type===`+`?(l(),d(h)):g()}function g(){let e=b();return c()?.type===`^`?(l(),u({k:`bin`,op:`^`,a:e,b:d(h)})):e}function _(e){let[t]=Se[e];l(`(`);let n=[d(p)];for(;c()?.type===`,`;)l(),n.push(d(p));if(l(`)`),t>0?n.length!==t:n.length<-t)throw new xe(`${e} takes ${Math.abs(t)} argument${Math.abs(t)>1?`s`:``}`);return u({k:`call`,f:e,args:n})}function v(e){if(r.has(e))return u({k:`var`,n:e});if(Te(e))return u({k:`num`,v:Ce[e]});if(we(e)){if(c()?.type!==`(`)throw new xe(`Write ${e}(…) with parentheses`);return _(e)}let t=y(e);if(!t)throw new xe(`Unknown name "${e}"`);let n=null;for(let[i,a]of t.entries()){let o;if(we(a)){if(i!==t.length-1||c()?.type!==`(`)throw new xe(`Unknown name "${e}"`);o=_(a)}else o=u(r.has(a)?{k:`var`,n:a}:{k:`num`,v:Ce[a]});n=n?u({k:`bin`,op:`*`,a:n,b:o}):o}return n}function y(e){let t=[...r,...Object.keys(Ce),...Object.keys(Se)].sort((e,t)=>t.length-e.length),n=[],i=e;for(;i;){let e=t.find(e=>i.startsWith(e));if(!e)return null;n.push(e),i=i.slice(e.length)}return n.length>1?n:null}function b(){let e=l();if(e.type===`num`)return u({k:`num`,v:e.value});if(e.type===`name`)return v(e.value);if(e.type===`(`){let e=d(p);return l(`)`),e}if(e.type===`|`){let e=d(p);return l(`|`),u({k:`call`,f:`abs`,args:[e]})}if(e.type===`√`)return u({k:`call`,f:`sqrt`,args:[d(g)]});throw new xe(`Unexpected "${e.type}"`)}let x=p();if(a<i.length)throw new xe(`Unexpected "${i[a].type===`name`||i[a].type===`num`?i[a].value:i[a].type}"`);return x}function ke(e,t=[]){let n=new Map(t.map((e,t)=>[e,t])),r=e=>{switch(e.k){case`num`:{let t=e.v;return()=>t}case`var`:{let t=n.get(e.n);if(t===void 0)throw new xe(`Unknown name "${e.n}"`);return e=>e[t]}case`neg`:{let t=r(e.a);return e=>-t(e)}case`bin`:{let t=r(e.a),n=r(e.b);return e.op===`+`?e=>t(e)+n(e):e.op===`-`?e=>t(e)-n(e):e.op===`*`?e=>t(e)*n(e):e.op===`/`?e=>t(e)/n(e):e=>Ae(t(e),n(e))}case`call`:{let t=Se[e.f][1],n=e.args.map(r);if(n.length===1){let[e]=n;return n=>t(e(n))}return e=>t(...n.map(t=>t(e)))}default:throw new xe(`Bad formula`)}};return r(e)}function Ae(e,t){let n=e**t;if(!Number.isNaN(n)||e>=0||!Number.isFinite(t))return n;for(let n of[3,5,7,9]){let r=Math.round(t*n);if(Math.abs(r/n-t)<1e-9)return(-((-e)**(1/n)))**r}return n}let je={0:`⁰`,1:`¹`,2:`²`,3:`³`,4:`⁴`,5:`⁵`,6:`⁶`,7:`⁷`,8:`⁸`,9:`⁹`,"-":`⁻`},Me={pi:`π`,theta:`θ`,omega:`ω`,phi:`φ`,alpha:`α`,beta:`β`,lambda:`λ`,mu:`μ`,sigma:`σ`,tau:`τ`},Ne={"+":1,"-":1,"*":2,"/":2,"^":4};function Pe(e){return Math.abs(e-Math.PI)<1e-12?`π`:Math.abs(e-Math.E)<1e-12?`e`:Number(e.toPrecision(6)).toString()}let Fe=e=>[...String(e)].map(e=>je[e]).join(``),Ie=e=>[...e].length===1&&/\p{L}/u.test(e);function Le(e,t=Me){let n=e=>t[e]??e,r=(e,t=0)=>{switch(e.k){case`num`:return Pe(e.v);case`var`:return n(e.n);case`neg`:{let n=r(e.a,3);return t>2?`(−${n})`:`−${n}`}case`call`:return e.f===`abs`?`|${r(e.args[0])}|`:e.f===`sqrt`?`√(${r(e.args[0])})`:`${e.f}(${e.args.map(e=>r(e)).join(`, `)})`;case`bin`:{let n=Ne[e.op],i;if(e.op===`^`){let t=r(e.a,5),n=e=>e.k===`num`&&Number.isInteger(e.v)&&Math.abs(e.v)<100,a=r(e.b);i=`${t}${n(e.b)?Fe(e.b.v):e.b.k===`neg`&&n(e.b.a)?`⁻${Fe(e.b.a.v)}`:Ie(a)?`^${a}`:`^(${a})`}`}else if(e.op===`*`){let t=r(e.a,n),a=r(e.b,n);i=e.a.k===`num`&&/\d$/u.test(t)&&/^[\p{L}(√|]/u.test(a)||Ie(t)&&(Ie(a)||a.startsWith(`(`))||e.a.k!==`call`&&/^[\d\p{L}]+$/u.test(t)&&/\p{L}$/u.test(t)&&Ie(a)||e.a.k!==`call`&&t.endsWith(`)`)&&a.startsWith(`(`)?`${t}${a}`:`${t}·${a}`}else{let t=r(e.a,n),a=r(e.b,e.op===`+`?n:n+.5);i=`${t} ${e.op===`-`?`−`:e.op} ${a}`}return n<t?`(${i})`:i}default:return``}};return r(e)}let Re=Object.freeze({fns:4,params:4,points:8,lines:6,shades:3,tangents:3,samples:480}),ze=Object.freeze({fx:[`x`,`t`],param:[`t`,`θ`,`theta`],polar:[`θ`,`theta`,`t`]});function Be(e,t){return ze[e].filter(e=>!t.includes(e))}function Ve(e){let t=e.params.map(e=>e.name);return e.fns.map(e=>{let n=Be(e.kind,t),r=[...n,...t],i=e=>{let t=ke(Oe(e,r),r),i=Array(r.length).fill(0);return(e,r)=>{for(let t=0;t<n.length;t+=1)i[t]=e;for(let e=0;e<r.length;e+=1)i[n.length+e]=r[e];return t(i)}};if(e.kind===`polar`){let t=i(e.r);return{kind:`polar`,at:(e,n)=>{let r=t(e,n);return[r*Math.cos(e),r*Math.sin(e)]}}}if(e.kind===`param`){let t=i(e.x),n=i(e.y);return{kind:`param`,at:(e,r)=>[t(e,r),n(e,r)]}}let a=i(e.y);return{kind:`fx`,y:a,at:(e,t)=>[e,a(e,t)]}})}let He=e=>e.params.map(e=>e.value);function Ue(e,t,n,r=e.x){return e.fns.map((e,i)=>{let a=t[i],[o,s]=e.kind===`fx`?[Math.max(r?.min??-5,e.domain?.[0]??-1/0),Math.min(r?.max??5,e.domain?.[1]??1/0)]:e.t,c=e.kind===`fx`?Re.samples:Re.samples*1.5,l=[];if(!(s>o))return l;for(let e=0;e<=c;e+=1)l.push(a.at(o+(s-o)*e/c,n));return l})}function We(e,t,n,r=1){let i=Math.max(1e-7,Math.abs(r)*1e-5);return(e.y(t+i,n)-e.y(t-i,n))/(2*i)}function Ge(e,t){return e[Math.min(e.length-1,Math.max(0,Math.round((e.length-1)*t)))]}function Ke(e,t=Ve(e)){let n=[[]];for(let t of e.params){let e=[];for(let r of n)for(let n of new Set([t.min,t.value,t.max]))e.push([...r,n]);n.splice(0,n.length,...e)}let r=[],i=[];for(let a of n)for(let n of Ue(e,t,a))for(let[e,t]of n)!Number.isFinite(e)||!Number.isFinite(t)||(r.push(e),i.push(t));for(let t of e.points)Number.isFinite(t.y)&&i.push(t.y);for(let t of e.lines)t.y!==void 0&&i.push(t.y);let a=(e,t)=>{if(!e.length)return t;let n=[...e].sort((e,t)=>e-t),[r,i]=[n[0],n[n.length-1]],[a,o]=[Ge(n,.03),Ge(n,.97)];i-r>6*Math.max(1e-9,o-a)&&([r,i]=[a,o]),i-r<1e-9&&([r,i]=[r-1,i+1]);let s=(i-r)*.08;return r>0&&r<(i-r)*.35&&(r=0),i<0&&-i<(i-r)*.35&&(i=0),{min:r===0?0:r-s,max:i===0?0:i+s}},o=e.x??a(r,{min:-5,max:5}),s=e.y??a(i,{min:-5,max:5});return{x:{min:o.min,max:o.max},y:{min:Math.min(s.min,s.max-1e-9),max:s.max}}}function qe(e,t){try{return Le(Oe(e,[...new Set([...Object.values(ze).flat(),...t.params.map(e=>e.name)])]))}catch{return e}}let Je=e=>{if(!Number.isFinite(e))return String(e);let t=e/Math.PI;if(e!==0&&Math.abs(t*4-Math.round(t*4))<1e-6){let e=Math.round(t*4),[n,r]=e%4==0?[e/4,1]:e%2==0?[e/2,2]:[e,4],i=n===1?`π`:n===-1?`−π`:`${n}π`.replace(`-`,`−`);return r===1?i:`${i}/${r}`}return Number(e.toPrecision(4)).toString().replace(`-`,`−`)},Ye=Je;function Xe(e){return e.fns.map(t=>t.kind===`polar`?`r = ${qe(t.r,e)}`:t.kind===`param`?`x = ${qe(t.x,e)}, y = ${qe(t.y,e)}`:`y = ${qe(t.y,e)}`)}function Ze(e){let t=[e.title||e.caption].filter(Boolean),n=Xe(e).map((t,n)=>{let r=e.fns[n],i=r.kind===`fx`?e.x?`, x ${Je(r.domain?.[0]??e.x.min)} … ${Je(r.domain?.[1]??e.x.max)}`:``:`, ${r.kind===`polar`?`θ`:`t`} ${Je(r.t[0])} … ${Je(r.t[1])}`;return`${r.name?`${r.name}: `:``}${t}${i}`});return t.push(...n),e.params.length&&t.push(e.params.map(e=>`${e.label||e.name} = ${Je(e.value)} (${Je(e.min)} … ${Je(e.max)})`).join(`; `)),t.join(`
|
|
2
|
+
`)}Object.freeze({questions:6,options:5,units:12,lecturesPerUnit:8,lessonsPerLecture:8,lessons:120,objectives:5,concepts:6,projects:3,milestones:6,rubric:8,starterFiles:12,starterFileBytes:64*1024,practiceItems:12,options4:6,cards:60,sheetSections:24,sheetItems:16});function Qe(e,t=400){return e==null?``:String(e).replace(/\u0000/gu,``).trim().slice(0,t)}let $e=Object.freeze([`intuition`,`definition`,`derivation`,`application`,`extension`]);function M(e){let t=Qe(e,200),n=t.search(/[::]/u);return n>0?t.slice(0,n).trim():t}function et(e){let t=[];for(let n of e?.units??[])for(let e of n.lectures??[])for(let r of e.lessons??[])t.push({unit:n,lecture:e,lesson:r,index:t.length});return t}function tt(e,t){let n=e=>{let t=new Map;for(let n of e?.units??[])for(let e of n.lectures??[])for(let r of e.lessons??[])t.set(r.id,{lesson:r,unit:n.title});return t},r=e=>JSON.stringify([e.summary??``,e.objectives??[],e.estMinutes??0,(e.concepts??[]).map(e=>e.name),e.depth??``]),i=n(e),a=n(t),o=[],s=[],c=[];for(let[e,t]of a){let n=i.get(e);n?n.lesson.title===t.lesson.title?(r(n.lesson)!==r(t.lesson)||n.unit!==t.unit)&&c.push({title:t.lesson.title,unit:t.unit}):s.push({from:n.lesson.title,to:t.lesson.title,unit:t.unit}):o.push({title:t.lesson.title,unit:t.unit})}let l=[...i].filter(([e])=>!a.has(e)).map(([,e])=>({title:e.lesson.title,unit:e.unit})),u=new Set((e?.units??[]).map(e=>e.id)),d=new Set((t?.units??[]).map(e=>e.id));return{title:(e?.title??``)===(t?.title??``)?null:{from:e?.title??``,to:t?.title??``},unitsAdded:(t?.units??[]).filter(e=>!u.has(e.id)).map(e=>e.title),unitsRemoved:(e?.units??[]).filter(e=>!d.has(e.id)).map(e=>e.title),added:o,removed:l,renamed:s,changed:c}}function nt(e){return!e.title&&!e.unitsAdded.length&&!e.unitsRemoved.length&&!e.added.length&&!e.removed.length&&!e.renamed.length&&!e.changed.length}function N(e){let t=new Map;for(let{lesson:n}of et(e))for(let e of n.concepts??[])t.set(e.id,{...e,lessonId:n.id});return t}function rt(e,t){return e?.lessons?.[t]?.status??`new`}function it(e,t){let n=et(e),r=n.filter(e=>rt(t,e.lesson.id)===`done`),i=n.filter(e=>rt(t,e.lesson.id)!==`done`).reduce((e,t)=>e+(t.lesson.estMinutes||15),0);return{total:n.length,done:r.length,percent:n.length?Math.round(r.length/n.length*100):0,minutesLeft:i}}function at(e,t){let n=et(e);return n.find(e=>rt(t,e.lesson.id)===`learning`)??n.find(e=>rt(t,e.lesson.id)===`new`)??null}function ot(e,t){let n=et(e),r=n.findIndex(e=>e.lesson.id===t);return r>=0?n[r+1]??null:null}Object.freeze({steps:48,opsPerStep:14,say:1200,opText:1600,listItems:12,tableRows:16,tableCols:8,svgBytes:48*1024,animBytes:64*1024,codeBytes:12*1024,chartPoints:400,chartSeries:6}),Object.freeze([`title`,`h`,`p`,`math`,`list`,`svg`,`chart`,`plot`,`table`,`code`,`note`,`mark`,`anim`,`col`,`page`]),Object.freeze({heading:`h`,header:`h`,subtitle:`h`,text:`p`,paragraph:`p`,write:`p`,formula:`math`,equation:`math`,latex:`math`,bullets:`list`,bullet:`list`,diagram:`svg`,drawing:`svg`,figure:`svg`,graph:`chart`,function:`plot`,curve:`plot`,callout:`note`,highlight:`mark`,underline:`mark`,animation:`anim`,interactive:`anim`,column:`col`,newcolumn:`col`,newpage:`page`,clear:`page`});let st=/[-ヿ㐀-䶿一-鿿가-]/gu;function ct(e,t=1){let n=String(e??``),r=(n.match(st)??[]).length,i=n.replace(st,` `).split(/\s+/u).filter(Boolean).length,a=r/4.4+i/2.6;return Math.round(a*1e3/Math.max(.5,Math.min(2,t||1)))}function lt(e){switch(e.t){case`title`:case`h`:case`p`:case`note`:return e.text.length;case`math`:return Math.min(80,e.tex.length);case`list`:return e.items.join(` `).length;case`table`:return e.rows.flat().join(` `).length/2;case`code`:return Math.min(400,e.code.length/2);default:return 60}}function ut(e){return e.t===`col`||e.t===`page`?0:e.t===`mark`?600:e.t===`svg`||e.t===`chart`||e.t===`plot`||e.t===`anim`?2200:Math.min(7e3,Math.max(450,lt(e)*55))}function dt(e,{rate:t=1,speechMs:n}={}){let r=n??ct(e.say,t),i=e.ops.map(ut),a=i.reduce((e,t)=>e+t,0),o=r>0?r*.85:a,s=a>0&&o>0?Math.min(1.6,Math.max(.35,o/a)):1,c=i.map(e=>Math.round(e*s));return{speechMs:r,writeMs:c,durationMs:Math.max(r,c.reduce((e,t)=>e+t,0))+350}}function ft(e){let t=[];e.title&&t.push(`# ${e.title}`,``);for(let n of e.steps){for(let e of n.ops)if(e.t===`title`)t.push(`## ${e.text}`,``);else if(e.t===`h`)t.push(`### ${e.text}`,``);else if(e.t===`p`)t.push(e.text,``);else if(e.t===`math`)t.push(`$$${e.tex}$$`,``);else if(e.t===`list`)t.push(...e.items.map((t,n)=>e.ordered?`${n+1}. ${t}`:`- ${t}`),``);else if(e.t===`note`)t.push(`> ${e.text}`,``);else if(e.t===`code`)t.push(`\`\`\`${e.lang}`,e.code,"```",``);else if(e.t===`plot`)t.push(...Ze(e).split(`
|
|
3
3
|
`).map(e=>`> 📈 ${e}`),``);else if(e.t===`table`){let n=e.head.length?e.head:e.rows[0].map(()=>` `);t.push(`| ${n.join(` | `)} |`,`| ${n.map(()=>`---`).join(` | `)} |`,...e.rows.map(e=>`| ${e.join(` | `)} |`),``)}else e.caption&&t.push(`*${e.caption}*`,``);n.say&&t.push(`<!-- ${n.say.replace(/--/gu,`—`)} -->`,``)}return t.join(`
|
|
4
4
|
`).replace(/\n{3,}/gu,`
|
|
5
5
|
|
|
6
6
|
`).trim()+`
|
|
7
|
-
`}Object.freeze([`wrong`,`right`,`unclear`]);function pt(e){switch(e?.t){case`title`:case`h`:case`p`:case`note`:return e.text;case`math`:return e.text||e.tex;case`list`:return e.items.join(`; `);case`table`:return[e.head,...e.rows].filter(e=>e.length).map(e=>e.join(` | `)).join(` / `);case`code`:return e.code;case`chart`:return[e.title,...e.series.map(e=>`${e.name} ${e.points.slice(0,6).map(e=>`(${e.join(`, `)})`).join(` `)}`),...e.data.map(e=>`${e.label} ${e.value}`)].filter(Boolean).join(`; `);case`plot`:return Xe(e).replace(/\n/gu,`; `);case`svg`:case`anim`:return e.caption??``;default:return``}}function mt(e,t,{at:n=new Date().toISOString()}={}){let r=[];return{steps:e.map(e=>{let i=t.filter(t=>t.step===e.id);if(!i.length)return e;let a={...e,ops:[...e.ops]};for(let t of i){if(t.replace){let i=a.ops.findIndex(e=>e.id===t.op);if(i<0)continue;let o=a.ops[i],s=t.replace.fixed,c={...t.replace,id:o.id,...o.at===void 0?{}:{at:o.at},fixed:{was:o.fixed?.was??s?.was??Ze(pt(o),300),at:s?.at??n}};a.ops[i]=c,r.push({step:e.id,op:o.id,replace:c})}t.say!==void 0&&(a.say=t.say,r.push({step:e.id,say:t.say})),t.check&&a.check&&(a.check={...t.check,id:a.check.id,conceptIds:a.check.conceptIds??[]},r.push({step:e.id,check:a.check}))}return a}),applied:r}}function ht(e,t){return e.map(e=>({...e,step:`${t}${e.step}`,...e.op?{op:`${t}${e.op}`}:{}}))}let gt=Object.freeze([`#2f6fde`,`#d64545`,`#2f9e6e`,`#e08a1e`,`#7a4fd6`,`#1f9bb4`]),_t=`#2b2b2b`,vt=`'Segoe Print','Bradley Hand','Comic Sans MS','Kaiti SC','STKaiti','KaiTi',cursive`;function yt(e){return String(e??``).replace(/[&<>"']/gu,e=>({"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`})[e])}function bt(e,t,n=5){if(!Number.isFinite(e)||!Number.isFinite(t))return[0,1];if(e===t){let n=Math.abs(e)||1;e-=n/2,t+=n/2}let r=(t-e)/Math.max(1,n),i=10**Math.floor(Math.log10(r)),a=r/i,o=(a>=7.5?10:a>=3.5?5:a>=1.5?2:1)*i,s=Math.floor(e/o)*o,c=[];for(let e=s;e<=t+o*.5;e+=o)c.push(Number(e.toPrecision(12)));return c}function xt(e){let t=Math.abs(e);return t>=1e6||t>0&&t<.001?e.toExponential(1):Number(e.toPrecision(6)).toString()}function St({width:e,height:t,title:n,xLabel:r,yLabel:i}){let a={top:n?34:16,right:18,bottom:r?50:34,left:i?62:48};return{margin:a,plotW:e-a.left-a.right,plotH:t-a.top-a.bottom}}function Ct(e,t){return e.length<2?``:e.map((e,n)=>{let r=t-150,i=14+n*18;return`<rect x="${r}" y="${i-9}" width="14" height="4" rx="2" fill="${gt[n%gt.length]}"/><text x="${r+20}" y="${i-3}" font-size="12" fill="${_t}">${yt(e)}</text>`}).join(``)}function wt({margin:e,plotW:t,plotH:n,width:r,height:i,xTicks:a,yTicks:o,xScale:s,yScale:c,xLabel:l,yLabel:u,xFormat:d=xt}){let f=[];f.push(`<line x1="${e.left}" y1="${e.top+n}" x2="${e.left+t}" y2="${e.top+n}" stroke="${_t}" stroke-width="1.6" stroke-linecap="round"/>`),f.push(`<line x1="${e.left}" y1="${e.top}" x2="${e.left}" y2="${e.top+n}" stroke="${_t}" stroke-width="1.6" stroke-linecap="round"/>`);for(let r of o){let i=c(r);i<e.top-1||i>e.top+n+1||(f.push(`<line x1="${e.left}" y1="${i}" x2="${e.left+t}" y2="${i}" stroke="${_t}" stroke-opacity="0.08"/>`),f.push(`<text x="${e.left-6}" y="${i+4}" font-size="11" text-anchor="end" fill="${_t}">${yt(xt(r))}</text>`))}for(let r of a){let i=s(r);i<e.left-1||i>e.left+t+1||f.push(`<text x="${i}" y="${e.top+n+16}" font-size="11" text-anchor="middle" fill="${_t}">${yt(d(r))}</text>`)}return l&&f.push(`<text x="${e.left+t/2}" y="${i-10}" font-size="13" text-anchor="middle" fill="${_t}">${yt(l)}</text>`),u&&f.push(`<text transform="translate(16 ${e.top+n/2}) rotate(-90)" font-size="13" text-anchor="middle" fill="${_t}">${yt(u)}</text>`),f.join(``)}function Tt(e,t){let{width:n,height:r}=t,i=St({width:n,height:r,...e}),{margin:a,plotW:o,plotH:s}=i,c=e.series.flatMap(e=>e.points),l=c.map(e=>e[0]),u=c.map(e=>e[1]),d=bt(Math.min(...l),Math.max(...l)),f=bt(Math.min(e.kind===`area`?0:Math.min(...u),Math.min(...u)),Math.max(...u)),[p,m]=[d[0],d[d.length-1]],[h,g]=[f[0],f[f.length-1]],_=e=>a.left+(e-p)/(m-p||1)*o,v=e=>a.top+s-(e-h)/(g-h||1)*s,y=[wt({...i,width:n,height:r,xTicks:d,yTicks:f,xScale:_,yScale:v,xLabel:e.xLabel,yLabel:e.yLabel})];return e.series.forEach((t,n)=>{let r=gt[n%gt.length],i=e.kind===`scatter`?t.points:[...t.points].sort((e,t)=>e[0]-t[0]);if(e.kind===`scatter`){for(let[e,t]of i)y.push(`<circle cx="${_(e).toFixed(1)}" cy="${v(t).toFixed(1)}" r="3.6" fill="${r}" fill-opacity="0.8"/>`);return}let a=i.map(([e,t],n)=>`${n?`L`:`M`}${_(e).toFixed(1)} ${v(t).toFixed(1)}`).join(` `);if(e.kind===`area`){let e=v(Math.max(h,Math.min(0,g)));y.push(`<path d="${a} L${_(i[i.length-1][0]).toFixed(1)} ${e} L${_(i[0][0]).toFixed(1)} ${e} Z" fill="${r}" fill-opacity="0.15" stroke="none"/>`)}y.push(`<path d="${a}" fill="none" stroke="${r}" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/>`)}),y.push(Ct(e.series.map(e=>e.name||``),n)),y.join(``)}function Et(e,t){let{width:n,height:r}=t,i=e.data.length?e.data:(e.series[0]?.points??[]).map(([e,t])=>({label:xt(e),value:t})),a=St({width:n,height:r,...e}),{margin:o,plotW:s,plotH:c}=a,l=i.map(e=>e.value),u=bt(Math.min(0,...l),Math.max(0,...l)),[d,f]=[u[0],u[u.length-1]],p=e=>o.top+c-(e-d)/(f-d||1)*c,m=s/Math.max(1,i.length),h=[wt({...a,width:n,height:r,xTicks:[],yTicks:u,xScale:()=>0,yScale:p,xLabel:e.xLabel,yLabel:e.yLabel})];return i.forEach((e,t)=>{let n=o.left+t*m+m*.18,r=p(Math.max(0,e.value)),i=p(Math.min(0,e.value)),a=gt[t%gt.length];h.push(`<rect x="${n.toFixed(1)}" y="${r.toFixed(1)}" width="${(m*.64).toFixed(1)}" height="${Math.max(1,i-r).toFixed(1)}" rx="3" fill="${a}" fill-opacity="0.78" stroke="${a}" stroke-width="1.4"/>`);let s=e.label.length>10?`${e.label.slice(0,9)}…`:e.label;h.push(`<text x="${(n+m*.32).toFixed(1)}" y="${o.top+c+16}" font-size="11" text-anchor="middle" fill="${_t}">${yt(s)}</text>`),h.push(`<text x="${(n+m*.32).toFixed(1)}" y="${(r-5).toFixed(1)}" font-size="11" text-anchor="middle" fill="${_t}">${yt(xt(e.value))}</text>`)}),h.join(``)}function Dt(e,t){let{width:n,height:r}=t,i=(e.data.length?e.data:[]).filter(e=>e.value>0),a=i.reduce((e,t)=>e+t.value,0);if(!a)return``;let o=n*.36,s=(r+(e.title?20:0))/2,c=Math.min(n*.3,r*.38),l=-Math.PI/2,u=[];return i.forEach((e,t)=>{let r=e.value/a*Math.PI*2,d=l+r,f=+(r>Math.PI),[p,m]=[o+c*Math.cos(l),s+c*Math.sin(l)],[h,g]=[o+c*Math.cos(d),s+c*Math.sin(d)],_=gt[t%gt.length],v=i.length===1?`M${o-c} ${s} a${c} ${c} 0 1 0 ${c*2} 0 a${c} ${c} 0 1 0 ${-c*2} 0`:`M${o} ${s} L${p.toFixed(1)} ${m.toFixed(1)} A${c} ${c} 0 ${f} 1 ${h.toFixed(1)} ${g.toFixed(1)} Z`;u.push(`<path d="${v}" fill="${_}" fill-opacity="0.75" stroke="#fff" stroke-width="2"/>`);let y=30+t*20;u.push(`<rect x="${n*.7}" y="${y-10}" width="12" height="12" rx="2" fill="${_}"/>`),u.push(`<text x="${n*.7+18}" y="${y}" font-size="12" fill="${_t}">${yt(e.label)} ${Math.round(e.value/a*100)}%</text>`),l=d}),u.join(``)}function Ot(e,t={width:480,height:300}){let n=``;try{n=e.kind===`pie`?Dt(e,t):e.kind===`bar`?Et(e,t):e.series.length?Tt(e,t):Et({...e,kind:`bar`},t)}catch{n=``}let r=e.title?`<text x="${t.width/2}" y="20" font-size="15" text-anchor="middle" fill="${_t}" font-weight="600">${yt(e.title)}</text>`:``;return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${t.width} ${t.height}" width="${t.width}" height="${t.height}" font-family="${yt(vt)}">${r}${n}</svg>`}var N=class e extends Error{constructor(t,n){var r=`KaTeX parse error: `+t,i,a,o=n&&n.loc;if(o&&o.start<=o.end){var s=o.lexer.input;i=o.start,a=o.end,i===s.length?r+=` at end of input: `:r+=` at position `+(i+1)+`: `;var c=s.slice(i,a).replace(/[^]/g,`$&̲`),l=i>15?`…`+s.slice(i-15,i):s.slice(0,i),u=a+15<s.length?s.slice(a,a+15)+`…`:s.slice(a);r+=l+c+u}super(r),this.name=`ParseError`,this.position=void 0,this.length=void 0,this.rawMessage=void 0,Object.setPrototypeOf(this,e.prototype),this.position=i,i!=null&&a!=null&&(this.length=a-i),this.rawMessage=t}},kt=/([A-Z])/g,At=e=>e.replace(kt,`-$1`).toLowerCase(),jt={"&":`&`,">":`>`,"<":`<`,'"':`"`,"'":`'`},Mt=/[&><"']/g,Nt=e=>String(e).replace(Mt,e=>jt[e]),Pt=e=>e.type===`ordgroup`||e.type===`color`?e.body.length===1?Pt(e.body[0]):e:e.type===`font`?Pt(e.body):e,Ft=new Set([`mathord`,`textord`,`atom`]),It=e=>Ft.has(Pt(e).type),Lt=e=>{var t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?t[2]!==`:`||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():`_relative`},Rt={displayMode:{type:`boolean`,description:`Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.`,cli:`-d, --display-mode`},output:{type:{enum:[`htmlAndMathml`,`html`,`mathml`]},description:`Determines the markup language of the output.`,cli:`-F, --format <type>`},leqno:{type:`boolean`,description:`Render display math in leqno style (left-justified tags).`},fleqn:{type:`boolean`,description:`Render display math flush left.`},throwOnError:{type:`boolean`,default:!0,cli:`-t, --no-throw-on-error`,cliDescription:`Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error.`},errorColor:{type:`string`,default:`#cc0000`,cli:`-c, --error-color <color>`,cliDescription:`A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.`,cliProcessor:e=>`#`+e},macros:{type:`object`,cli:`-m, --macro <def>`,cliDescription:`Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).`,cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:`number`,description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:`--min-rule-thickness <size>`,cliProcessor:parseFloat},colorIsTextColor:{type:`boolean`,description:`Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.`,cli:`-b, --color-is-text-color`},strict:{type:[{enum:[`warn`,`ignore`,`error`]},`boolean`,`function`],description:`Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.`,cli:`-S, --strict`,cliDefault:!1},trust:{type:[`boolean`,`function`],description:`Trust the input, enabling all HTML features such as \\url.`,cli:`-T, --trust`},maxSize:{type:`number`,default:1/0,description:`If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large`,processor:e=>Math.max(0,e),cli:`-s, --max-size <n>`,cliProcessor:parseInt},maxExpand:{type:`number`,default:1e3,description:`Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.`,processor:e=>Math.max(0,e),cli:`-e, --max-expand <n>`,cliProcessor:e=>e===`Infinity`?1/0:parseInt(e)},globalGroup:{type:`boolean`,cli:!1}};function zt(e){if(typeof e!=`string`)return e.enum[0];switch(e){case`boolean`:return!1;case`string`:return``;case`number`:return 0;case`object`:return{};default:throw Error(`Unexpected schema type; settings must declare an explicit default.`)}}function Bt(e){return Object.prototype.hasOwnProperty.call(e,`default`)&&e.default!==void 0?e.default:zt(Array.isArray(e.type)?e.type[0]:e.type)}function Vt(e,t,n,r){var i=Object.prototype.hasOwnProperty.call(n,t)?n[t]:void 0,a=Object.prototype.hasOwnProperty.call(r,`processor`)?r.processor:void 0;e[t]=i===void 0?Bt(r):a?a(i):i}var Ht=class{constructor(e){e===void 0&&(e={}),this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e||={};for(var t of Object.keys(Rt)){var n=Rt[t];n&&Vt(this,t,e,n)}}reportNonstrict(e,t,n){var r=this.strict;if(typeof r==`function`&&(r=r(e,t,n)),!(!r||r===`ignore`)){if(r===!0||r===`error`)throw new N(`LaTeX-incompatible input and strict mode is set to 'error': `+(t+` [`+e+`]`),n);r===`warn`?typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to 'warn': `+(t+` [`+e+`]`)):typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to `+(`unrecognized '`+r+`': `+t+` [`+e+`]`))}}useStrictBehavior(e,t,n){var r=this.strict;if(typeof r==`function`)try{r=r(e,t,n)}catch{r=`error`}return!r||r===`ignore`?!1:r===!0||r===`error`?!0:r===`warn`?(typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to 'warn': `+(t+` [`+e+`]`)),!1):(typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to `+(`unrecognized '`+r+`': `+t+` [`+e+`]`)),!1)}isTrusted(e){if(`url`in e&&e.url&&!e.protocol){var t=Lt(e.url);if(t==null)return!1;e.protocol=t}return!!(typeof this.trust==`function`?this.trust(e):this.trust)}},Ut=class{constructor(e,t,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=n}sup(){return Qt[$t[this.id]]}sub(){return Qt[en[this.id]]}fracNum(){return Qt[tn[this.id]]}fracDen(){return Qt[nn[this.id]]}cramp(){return Qt[rn[this.id]]}text(){return Qt[an[this.id]]}isTight(){return this.size>=2}},Wt=0,Gt=1,Kt=2,qt=3,Jt=4,Yt=5,Xt=6,Zt=7,Qt=[new Ut(Wt,0,!1),new Ut(Gt,0,!0),new Ut(Kt,1,!1),new Ut(qt,1,!0),new Ut(Jt,2,!1),new Ut(Yt,2,!0),new Ut(Xt,3,!1),new Ut(Zt,3,!0)],$t=[Jt,Yt,Jt,Yt,Xt,Zt,Xt,Zt],en=[Yt,Yt,Yt,Yt,Zt,Zt,Zt,Zt],tn=[Kt,qt,Jt,Yt,Xt,Zt,Xt,Zt],nn=[qt,qt,Yt,Yt,Zt,Zt,Zt,Zt],rn=[Gt,Gt,qt,qt,Yt,Yt,Zt,Zt],an=[Wt,Gt,Kt,qt,Kt,qt,Kt,qt],P={DISPLAY:Qt[Wt],TEXT:Qt[Kt],SCRIPT:Qt[Jt],SCRIPTSCRIPT:Qt[Xt]},on=[{name:`latin`,blocks:[[256,591],[768,879]]},{name:`cyrillic`,blocks:[[1024,1279]]},{name:`armenian`,blocks:[[1328,1423]]},{name:`brahmic`,blocks:[[2304,4255]]},{name:`georgian`,blocks:[[4256,4351]]},{name:`cjk`,blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:`hangul`,blocks:[[44032,55215]]}];function sn(e){for(var t=0;t<on.length;t++)for(var n=on[t],r=0;r<n.blocks.length;r++){var i=n.blocks[r];if(e>=i[0]&&e<=i[1])return n.name}return null}var cn=[];on.forEach(e=>e.blocks.forEach(e=>cn.push(...e)));function ln(e){for(var t=0;t<cn.length;t+=2)if(e>=cn[t]&&e<=cn[t+1])return!0;return!1}var un=e=>e+` `+e,dn=80,fn=function(e,t){return`M95,`+(622+e+t)+`
|
|
7
|
+
`}Object.freeze([`wrong`,`right`,`unclear`]);function pt(e){switch(e?.t){case`title`:case`h`:case`p`:case`note`:return e.text;case`math`:return e.text||e.tex;case`list`:return e.items.join(`; `);case`table`:return[e.head,...e.rows].filter(e=>e.length).map(e=>e.join(` | `)).join(` / `);case`code`:return e.code;case`chart`:return[e.title,...e.series.map(e=>`${e.name} ${e.points.slice(0,6).map(e=>`(${e.join(`, `)})`).join(` `)}`),...e.data.map(e=>`${e.label} ${e.value}`)].filter(Boolean).join(`; `);case`plot`:return Ze(e).replace(/\n/gu,`; `);case`svg`:case`anim`:return e.caption??``;default:return``}}function mt(e,t,{at:n=new Date().toISOString()}={}){let r=[];return{steps:e.map(e=>{let i=t.filter(t=>t.step===e.id);if(!i.length)return e;let a={...e,ops:[...e.ops]};for(let t of i){if(t.replace){let i=a.ops.findIndex(e=>e.id===t.op);if(i<0)continue;let o=a.ops[i],s=t.replace.fixed,c={...t.replace,id:o.id,...o.at===void 0?{}:{at:o.at},fixed:{was:o.fixed?.was??s?.was??Qe(pt(o),300),at:s?.at??n}};a.ops[i]=c,r.push({step:e.id,op:o.id,replace:c})}t.say!==void 0&&(a.say=t.say,r.push({step:e.id,say:t.say})),t.check&&a.check&&(a.check={...t.check,id:a.check.id,conceptIds:a.check.conceptIds??[]},r.push({step:e.id,check:a.check}))}return a}),applied:r}}function ht(e,t){return e.map(e=>({...e,step:`${t}${e.step}`,...e.op?{op:`${t}${e.op}`}:{}}))}let gt=Object.freeze([`#2f6fde`,`#d64545`,`#2f9e6e`,`#e08a1e`,`#7a4fd6`,`#1f9bb4`]),_t=`#2b2b2b`,vt=`'Segoe Print','Bradley Hand','Comic Sans MS','Kaiti SC','STKaiti','KaiTi',cursive`;function yt(e){return String(e??``).replace(/[&<>"']/gu,e=>({"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`})[e])}function bt(e,t,n=5){if(!Number.isFinite(e)||!Number.isFinite(t))return[0,1];if(e===t){let n=Math.abs(e)||1;e-=n/2,t+=n/2}let r=(t-e)/Math.max(1,n),i=10**Math.floor(Math.log10(r)),a=r/i,o=(a>=7.5?10:a>=3.5?5:a>=1.5?2:1)*i,s=Math.floor(e/o)*o,c=[];for(let e=s;e<=t+o*.5;e+=o)c.push(Number(e.toPrecision(12)));return c}function xt(e){let t=Math.abs(e);return t>=1e6||t>0&&t<.001?e.toExponential(1):Number(e.toPrecision(6)).toString()}function St({width:e,height:t,title:n,xLabel:r,yLabel:i}){let a={top:n?34:16,right:18,bottom:r?50:34,left:i?62:48};return{margin:a,plotW:e-a.left-a.right,plotH:t-a.top-a.bottom}}function Ct(e,t){return e.length<2?``:e.map((e,n)=>{let r=t-150,i=14+n*18;return`<rect x="${r}" y="${i-9}" width="14" height="4" rx="2" fill="${gt[n%gt.length]}"/><text x="${r+20}" y="${i-3}" font-size="12" fill="${_t}">${yt(e)}</text>`}).join(``)}function wt({margin:e,plotW:t,plotH:n,width:r,height:i,xTicks:a,yTicks:o,xScale:s,yScale:c,xLabel:l,yLabel:u,xFormat:d=xt}){let f=[];f.push(`<line x1="${e.left}" y1="${e.top+n}" x2="${e.left+t}" y2="${e.top+n}" stroke="${_t}" stroke-width="1.6" stroke-linecap="round"/>`),f.push(`<line x1="${e.left}" y1="${e.top}" x2="${e.left}" y2="${e.top+n}" stroke="${_t}" stroke-width="1.6" stroke-linecap="round"/>`);for(let r of o){let i=c(r);i<e.top-1||i>e.top+n+1||(f.push(`<line x1="${e.left}" y1="${i}" x2="${e.left+t}" y2="${i}" stroke="${_t}" stroke-opacity="0.08"/>`),f.push(`<text x="${e.left-6}" y="${i+4}" font-size="11" text-anchor="end" fill="${_t}">${yt(xt(r))}</text>`))}for(let r of a){let i=s(r);i<e.left-1||i>e.left+t+1||f.push(`<text x="${i}" y="${e.top+n+16}" font-size="11" text-anchor="middle" fill="${_t}">${yt(d(r))}</text>`)}return l&&f.push(`<text x="${e.left+t/2}" y="${i-10}" font-size="13" text-anchor="middle" fill="${_t}">${yt(l)}</text>`),u&&f.push(`<text transform="translate(16 ${e.top+n/2}) rotate(-90)" font-size="13" text-anchor="middle" fill="${_t}">${yt(u)}</text>`),f.join(``)}function Tt(e,t){let{width:n,height:r}=t,i=St({width:n,height:r,...e}),{margin:a,plotW:o,plotH:s}=i,c=e.series.flatMap(e=>e.points),l=c.map(e=>e[0]),u=c.map(e=>e[1]),d=bt(Math.min(...l),Math.max(...l)),f=bt(Math.min(e.kind===`area`?0:Math.min(...u),Math.min(...u)),Math.max(...u)),[p,m]=[d[0],d[d.length-1]],[h,g]=[f[0],f[f.length-1]],_=e=>a.left+(e-p)/(m-p||1)*o,v=e=>a.top+s-(e-h)/(g-h||1)*s,y=[wt({...i,width:n,height:r,xTicks:d,yTicks:f,xScale:_,yScale:v,xLabel:e.xLabel,yLabel:e.yLabel})];return e.series.forEach((t,n)=>{let r=gt[n%gt.length],i=e.kind===`scatter`?t.points:[...t.points].sort((e,t)=>e[0]-t[0]);if(e.kind===`scatter`){for(let[e,t]of i)y.push(`<circle cx="${_(e).toFixed(1)}" cy="${v(t).toFixed(1)}" r="3.6" fill="${r}" fill-opacity="0.8"/>`);return}let a=i.map(([e,t],n)=>`${n?`L`:`M`}${_(e).toFixed(1)} ${v(t).toFixed(1)}`).join(` `);if(e.kind===`area`){let e=v(Math.max(h,Math.min(0,g)));y.push(`<path d="${a} L${_(i[i.length-1][0]).toFixed(1)} ${e} L${_(i[0][0]).toFixed(1)} ${e} Z" fill="${r}" fill-opacity="0.15" stroke="none"/>`)}y.push(`<path d="${a}" fill="none" stroke="${r}" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/>`)}),y.push(Ct(e.series.map(e=>e.name||``),n)),y.join(``)}function Et(e,t){let{width:n,height:r}=t,i=e.data.length?e.data:(e.series[0]?.points??[]).map(([e,t])=>({label:xt(e),value:t})),a=St({width:n,height:r,...e}),{margin:o,plotW:s,plotH:c}=a,l=i.map(e=>e.value),u=bt(Math.min(0,...l),Math.max(0,...l)),[d,f]=[u[0],u[u.length-1]],p=e=>o.top+c-(e-d)/(f-d||1)*c,m=s/Math.max(1,i.length),h=[wt({...a,width:n,height:r,xTicks:[],yTicks:u,xScale:()=>0,yScale:p,xLabel:e.xLabel,yLabel:e.yLabel})];return i.forEach((e,t)=>{let n=o.left+t*m+m*.18,r=p(Math.max(0,e.value)),i=p(Math.min(0,e.value)),a=gt[t%gt.length];h.push(`<rect x="${n.toFixed(1)}" y="${r.toFixed(1)}" width="${(m*.64).toFixed(1)}" height="${Math.max(1,i-r).toFixed(1)}" rx="3" fill="${a}" fill-opacity="0.78" stroke="${a}" stroke-width="1.4"/>`);let s=e.label.length>10?`${e.label.slice(0,9)}…`:e.label;h.push(`<text x="${(n+m*.32).toFixed(1)}" y="${o.top+c+16}" font-size="11" text-anchor="middle" fill="${_t}">${yt(s)}</text>`),h.push(`<text x="${(n+m*.32).toFixed(1)}" y="${(r-5).toFixed(1)}" font-size="11" text-anchor="middle" fill="${_t}">${yt(xt(e.value))}</text>`)}),h.join(``)}function Dt(e,t){let{width:n,height:r}=t,i=(e.data.length?e.data:[]).filter(e=>e.value>0),a=i.reduce((e,t)=>e+t.value,0);if(!a)return``;let o=n*.36,s=(r+(e.title?20:0))/2,c=Math.min(n*.3,r*.38),l=-Math.PI/2,u=[];return i.forEach((e,t)=>{let r=e.value/a*Math.PI*2,d=l+r,f=+(r>Math.PI),[p,m]=[o+c*Math.cos(l),s+c*Math.sin(l)],[h,g]=[o+c*Math.cos(d),s+c*Math.sin(d)],_=gt[t%gt.length],v=i.length===1?`M${o-c} ${s} a${c} ${c} 0 1 0 ${c*2} 0 a${c} ${c} 0 1 0 ${-c*2} 0`:`M${o} ${s} L${p.toFixed(1)} ${m.toFixed(1)} A${c} ${c} 0 ${f} 1 ${h.toFixed(1)} ${g.toFixed(1)} Z`;u.push(`<path d="${v}" fill="${_}" fill-opacity="0.75" stroke="#fff" stroke-width="2"/>`);let y=30+t*20;u.push(`<rect x="${n*.7}" y="${y-10}" width="12" height="12" rx="2" fill="${_}"/>`),u.push(`<text x="${n*.7+18}" y="${y}" font-size="12" fill="${_t}">${yt(e.label)} ${Math.round(e.value/a*100)}%</text>`),l=d}),u.join(``)}function Ot(e,t={width:480,height:300}){let n=``;try{n=e.kind===`pie`?Dt(e,t):e.kind===`bar`?Et(e,t):e.series.length?Tt(e,t):Et({...e,kind:`bar`},t)}catch{n=``}let r=e.title?`<text x="${t.width/2}" y="20" font-size="15" text-anchor="middle" fill="${_t}" font-weight="600">${yt(e.title)}</text>`:``;return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${t.width} ${t.height}" width="${t.width}" height="${t.height}" font-family="${yt(vt)}">${r}${n}</svg>`}var P=class e extends Error{constructor(t,n){var r=`KaTeX parse error: `+t,i,a,o=n&&n.loc;if(o&&o.start<=o.end){var s=o.lexer.input;i=o.start,a=o.end,i===s.length?r+=` at end of input: `:r+=` at position `+(i+1)+`: `;var c=s.slice(i,a).replace(/[^]/g,`$&̲`),l=i>15?`…`+s.slice(i-15,i):s.slice(0,i),u=a+15<s.length?s.slice(a,a+15)+`…`:s.slice(a);r+=l+c+u}super(r),this.name=`ParseError`,this.position=void 0,this.length=void 0,this.rawMessage=void 0,Object.setPrototypeOf(this,e.prototype),this.position=i,i!=null&&a!=null&&(this.length=a-i),this.rawMessage=t}},kt=/([A-Z])/g,At=e=>e.replace(kt,`-$1`).toLowerCase(),jt={"&":`&`,">":`>`,"<":`<`,'"':`"`,"'":`'`},Mt=/[&><"']/g,Nt=e=>String(e).replace(Mt,e=>jt[e]),Pt=e=>e.type===`ordgroup`||e.type===`color`?e.body.length===1?Pt(e.body[0]):e:e.type===`font`?Pt(e.body):e,Ft=new Set([`mathord`,`textord`,`atom`]),It=e=>Ft.has(Pt(e).type),Lt=e=>{var t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?t[2]!==`:`||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():`_relative`},Rt={displayMode:{type:`boolean`,description:`Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.`,cli:`-d, --display-mode`},output:{type:{enum:[`htmlAndMathml`,`html`,`mathml`]},description:`Determines the markup language of the output.`,cli:`-F, --format <type>`},leqno:{type:`boolean`,description:`Render display math in leqno style (left-justified tags).`},fleqn:{type:`boolean`,description:`Render display math flush left.`},throwOnError:{type:`boolean`,default:!0,cli:`-t, --no-throw-on-error`,cliDescription:`Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error.`},errorColor:{type:`string`,default:`#cc0000`,cli:`-c, --error-color <color>`,cliDescription:`A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.`,cliProcessor:e=>`#`+e},macros:{type:`object`,cli:`-m, --macro <def>`,cliDescription:`Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).`,cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:`number`,description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:`--min-rule-thickness <size>`,cliProcessor:parseFloat},colorIsTextColor:{type:`boolean`,description:`Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.`,cli:`-b, --color-is-text-color`},strict:{type:[{enum:[`warn`,`ignore`,`error`]},`boolean`,`function`],description:`Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.`,cli:`-S, --strict`,cliDefault:!1},trust:{type:[`boolean`,`function`],description:`Trust the input, enabling all HTML features such as \\url.`,cli:`-T, --trust`},maxSize:{type:`number`,default:1/0,description:`If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large`,processor:e=>Math.max(0,e),cli:`-s, --max-size <n>`,cliProcessor:parseInt},maxExpand:{type:`number`,default:1e3,description:`Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.`,processor:e=>Math.max(0,e),cli:`-e, --max-expand <n>`,cliProcessor:e=>e===`Infinity`?1/0:parseInt(e)},globalGroup:{type:`boolean`,cli:!1}};function zt(e){if(typeof e!=`string`)return e.enum[0];switch(e){case`boolean`:return!1;case`string`:return``;case`number`:return 0;case`object`:return{};default:throw Error(`Unexpected schema type; settings must declare an explicit default.`)}}function Bt(e){return Object.prototype.hasOwnProperty.call(e,`default`)&&e.default!==void 0?e.default:zt(Array.isArray(e.type)?e.type[0]:e.type)}function Vt(e,t,n,r){var i=Object.prototype.hasOwnProperty.call(n,t)?n[t]:void 0,a=Object.prototype.hasOwnProperty.call(r,`processor`)?r.processor:void 0;e[t]=i===void 0?Bt(r):a?a(i):i}var Ht=class{constructor(e){e===void 0&&(e={}),this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e||={};for(var t of Object.keys(Rt)){var n=Rt[t];n&&Vt(this,t,e,n)}}reportNonstrict(e,t,n){var r=this.strict;if(typeof r==`function`&&(r=r(e,t,n)),!(!r||r===`ignore`)){if(r===!0||r===`error`)throw new P(`LaTeX-incompatible input and strict mode is set to 'error': `+(t+` [`+e+`]`),n);r===`warn`?typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to 'warn': `+(t+` [`+e+`]`)):typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to `+(`unrecognized '`+r+`': `+t+` [`+e+`]`))}}useStrictBehavior(e,t,n){var r=this.strict;if(typeof r==`function`)try{r=r(e,t,n)}catch{r=`error`}return!r||r===`ignore`?!1:r===!0||r===`error`?!0:r===`warn`?(typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to 'warn': `+(t+` [`+e+`]`)),!1):(typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to `+(`unrecognized '`+r+`': `+t+` [`+e+`]`)),!1)}isTrusted(e){if(`url`in e&&e.url&&!e.protocol){var t=Lt(e.url);if(t==null)return!1;e.protocol=t}return!!(typeof this.trust==`function`?this.trust(e):this.trust)}},Ut=class{constructor(e,t,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=n}sup(){return Qt[$t[this.id]]}sub(){return Qt[en[this.id]]}fracNum(){return Qt[tn[this.id]]}fracDen(){return Qt[nn[this.id]]}cramp(){return Qt[rn[this.id]]}text(){return Qt[an[this.id]]}isTight(){return this.size>=2}},Wt=0,Gt=1,Kt=2,qt=3,Jt=4,Yt=5,Xt=6,Zt=7,Qt=[new Ut(Wt,0,!1),new Ut(Gt,0,!0),new Ut(Kt,1,!1),new Ut(qt,1,!0),new Ut(Jt,2,!1),new Ut(Yt,2,!0),new Ut(Xt,3,!1),new Ut(Zt,3,!0)],$t=[Jt,Yt,Jt,Yt,Xt,Zt,Xt,Zt],en=[Yt,Yt,Yt,Yt,Zt,Zt,Zt,Zt],tn=[Kt,qt,Jt,Yt,Xt,Zt,Xt,Zt],nn=[qt,qt,Yt,Yt,Zt,Zt,Zt,Zt],rn=[Gt,Gt,qt,qt,Yt,Yt,Zt,Zt],an=[Wt,Gt,Kt,qt,Kt,qt,Kt,qt],F={DISPLAY:Qt[Wt],TEXT:Qt[Kt],SCRIPT:Qt[Jt],SCRIPTSCRIPT:Qt[Xt]},on=[{name:`latin`,blocks:[[256,591],[768,879]]},{name:`cyrillic`,blocks:[[1024,1279]]},{name:`armenian`,blocks:[[1328,1423]]},{name:`brahmic`,blocks:[[2304,4255]]},{name:`georgian`,blocks:[[4256,4351]]},{name:`cjk`,blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:`hangul`,blocks:[[44032,55215]]}];function sn(e){for(var t=0;t<on.length;t++)for(var n=on[t],r=0;r<n.blocks.length;r++){var i=n.blocks[r];if(e>=i[0]&&e<=i[1])return n.name}return null}var cn=[];on.forEach(e=>e.blocks.forEach(e=>cn.push(...e)));function ln(e){for(var t=0;t<cn.length;t+=2)if(e>=cn[t]&&e<=cn[t+1])return!0;return!1}var un=e=>e+` `+e,dn=80,fn=function(e,t){return`M95,`+(622+e+t)+`
|
|
8
8
|
c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14
|
|
9
9
|
c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54
|
|
10
10
|
c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10
|
|
@@ -254,26 +254,26 @@ c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6
|
|
|
254
254
|
c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17
|
|
255
255
|
c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558
|
|
256
256
|
l0,-`+(t+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,
|
|
257
|
-
-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw Error(`Unknown stretchy delimiter.`)}};function Cn(e){return`toText`in e}var wn=class{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return this.classes.includes(e)}toNode(){for(var e=document.createDocumentFragment(),t=0;t<this.children.length;t++)e.appendChild(this.children[t].toNode());return e}toMarkup(){for(var e=``,t=0;t<this.children.length;t++)e+=this.children[t].toMarkup();return e}toText(){return this.children.map(e=>{if(Cn(e))return e.toText();throw Error(`Expected MathDomNode with toText, got `+e.constructor.name)}).join(``)}},Tn={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},En={ex:!0,em:!0,mu:!0},Dn=function(e){return typeof e!=`string`&&(e=e.unit),e in Tn||e in En||e===`ex`},On=function(e,t){var n;if(e.unit in Tn)n=Tn[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if(e.unit===`mu`)n=t.fontMetrics().cssEmPerMu;else{var r=t.style.isTight()?t.havingStyle(t.style.text()):t;if(e.unit===`ex`)n=r.fontMetrics().xHeight;else if(e.unit===`em`)n=r.fontMetrics().quad;else throw new N(`Invalid unit: '`+e.unit+`'`);r!==t&&(n*=r.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*n,t.maxSize)},F=function(e){return+e.toFixed(4)+`em`},kn=function(e){return e.filter(e=>e).join(` `)},An=function(e){var t=``;for(var n of Object.keys(e)){var r=e[n];r!==void 0&&(t+=At(n)+`:`+r+`;`)}return t},jn=function(e,t,n){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=n||{},t){t.style.isTight()&&this.classes.push(`mtight`);var r=t.getColor();r&&(this.style.color=r)}},Mn=function(e){var t=document.createElement(e);t.className=kn(this.classes),Object.assign(t.style,this.style);for(var n of Object.keys(this.attributes))t.setAttribute(n,this.attributes[n]);for(var r=0;r<this.children.length;r++)t.appendChild(this.children[r].toNode());return t},Nn=/[\s"'>/=\x00-\x1f]/,Pn=function(e){var t=`<`+e;this.classes.length&&(t+=` class="`+Nt(kn(this.classes))+`"`);var n=An(this.style);n&&(t+=` style="`+Nt(n)+`"`);for(var r of Object.keys(this.attributes)){if(Nn.test(r))throw new N(`Invalid attribute name '`+r+`'`);t+=` `+r+`="`+Nt(this.attributes[r])+`"`}t+=`>`;for(var i=0;i<this.children.length;i++)t+=this.children[i].toMarkup();return t+=`</`+e+`>`,t},Fn=class{constructor(e,t,n,r){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,this.italic=void 0,jn.call(this,e,n,r),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return this.classes.includes(e)}toNode(){return Mn.call(this,`span`)}toMarkup(){return Pn.call(this,`span`)}},In=class{constructor(e,t,n,r){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,jn.call(this,t,r),this.children=n||[],this.setAttribute(`href`,e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return this.classes.includes(e)}toNode(){return Mn.call(this,`a`)}toMarkup(){return Pn.call(this,`a`)}},Ln=class{constructor(e,t,n){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=[`mord`],this.height=0,this.depth=0,this.maxFontSize=0,this.style=n}hasClass(e){return this.classes.includes(e)}toNode(){var e=document.createElement(`img`);return e.src=this.src,e.alt=this.alt,e.className=`mord`,Object.assign(e.style,this.style),e}toMarkup(){var e=`<img src="`+Nt(this.src)+`"`+(` alt="`+Nt(this.alt)+`"`),t=An(this.style);return t&&(e+=` style="`+Nt(t)+`"`),e+=`'/>`,e}},Rn={î:`ı̂`,ï:`ı̈`,í:`ı́`,ì:`ı̀`},zn=class{constructor(e,t,n,r,i,a,o,s){this.text=void 0,this.height=void 0,this.depth=void 0,this.italic=void 0,this.skew=void 0,this.width=void 0,this.maxFontSize=void 0,this.classes=void 0,this.style=void 0,this.text=e,this.height=t||0,this.depth=n||0,this.italic=r||0,this.skew=i||0,this.width=a||0,this.classes=o||[],this.style=s||{},this.maxFontSize=0;var c=sn(this.text.charCodeAt(0));c&&this.classes.push(c+`_fallback`),/[îïíì]/.test(this.text)&&(this.text=Rn[this.text])}hasClass(e){return this.classes.includes(e)}toNode(){var e=document.createTextNode(this.text),t=null;return this.italic>0&&(t=document.createElement(`span`),t.style.marginRight=F(this.italic)),this.classes.length>0&&(t||=document.createElement(`span`),t.className=kn(this.classes)),Object.keys(this.style).length>0&&(t||=document.createElement(`span`),Object.assign(t.style,this.style)),t?(t.appendChild(e),t):e}toMarkup(){var e=!1,t=`<span`;this.classes.length&&(e=!0,t+=` class="`,t+=Nt(kn(this.classes)),t+=`"`);var n=``;this.italic>0&&(n+=`margin-right:`+F(this.italic)+`;`),n+=An(this.style),n&&(e=!0,t+=` style="`+Nt(n)+`"`);var r=Nt(this.text);return e?(t+=`>`,t+=r,t+=`</span>`,t):r}},Bn=class{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){var e=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);for(var t of Object.keys(this.attributes))e.setAttribute(t,this.attributes[t]);for(var n=0;n<this.children.length;n++)e.appendChild(this.children[n].toNode());return e}toMarkup(){var e=`<svg xmlns="http://www.w3.org/2000/svg"`;for(var t of Object.keys(this.attributes))e+=` `+t+`="`+Nt(this.attributes[t])+`"`;e+=`>`;for(var n=0;n<this.children.length;n++)e+=this.children[n].toMarkup();return e+=`</svg>`,e}},Vn=class{constructor(e,t){this.pathName=void 0,this.alternate=void 0,this.pathName=e,this.alternate=t}toNode(){var e=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);return this.alternate?e.setAttribute(`d`,this.alternate):e.setAttribute(`d`,xn[this.pathName]),e}toMarkup(){return this.alternate?`<path d="`+Nt(this.alternate)+`"/>`:`<path d="`+Nt(xn[this.pathName])+`"/>`}},Hn=class{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e=document.createElementNS(`http://www.w3.org/2000/svg`,`line`);for(var t of Object.keys(this.attributes))e.setAttribute(t,this.attributes[t]);return e}toMarkup(){var e=`<line`;for(var t of Object.keys(this.attributes))e+=` `+t+`="`+Nt(this.attributes[t])+`"`;return e+=`/>`,e}};function Un(e){if(e instanceof zn)return e;throw Error(`Expected symbolNode but got `+String(e)+`.`)}function Wn(e){if(e instanceof Fn)return e;throw Error(`Expected span<HtmlDomNode> but got `+String(e)+`.`)}var Gn=e=>e instanceof Fn||e instanceof In||e instanceof wn,Kn={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},qn={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},Jn={Å:`A`,Ð:`D`,Þ:`o`,å:`a`,ð:`d`,þ:`o`,А:`A`,Б:`B`,В:`B`,Г:`F`,Д:`A`,Е:`E`,Ж:`K`,З:`3`,И:`N`,Й:`N`,К:`K`,Л:`N`,М:`M`,Н:`H`,О:`O`,П:`N`,Р:`P`,С:`C`,Т:`T`,У:`y`,Ф:`O`,Х:`X`,Ц:`U`,Ч:`h`,Ш:`W`,Щ:`W`,Ъ:`B`,Ы:`X`,Ь:`B`,Э:`3`,Ю:`X`,Я:`R`,а:`a`,б:`b`,в:`a`,г:`r`,д:`y`,е:`e`,ж:`m`,з:`e`,и:`n`,й:`n`,к:`n`,л:`n`,м:`m`,н:`n`,о:`o`,п:`n`,р:`p`,с:`c`,т:`o`,у:`y`,ф:`b`,х:`x`,ц:`n`,ч:`n`,ш:`w`,щ:`w`,ъ:`a`,ы:`m`,ь:`a`,э:`e`,ю:`m`,я:`r`};function Yn(e,t){Kn[e]=t}function Xn(e,t,n){if(!Kn[t])throw Error(`Font metrics not found for font: `+t+`.`);var r=e.charCodeAt(0),i=Kn[t][r];if(!i&&e[0]in Jn&&(r=Jn[e[0]].charCodeAt(0),i=Kn[t][r]),!i&&n===`text`&&ln(r)&&(i=Kn[t][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}var Zn={};function Qn(e){var t=e>=5?0:e>=3?1:2;if(!Zn[t]){var n=Zn[t]={cssEmPerMu:qn.quad[t]/18};for(var r of Object.keys(qn))n[r]=qn[r][t]}return Zn[t]}var $n={math:{},text:{}};function I(e,t,n,r,i,a){$n[e][i]={font:t,group:n,replace:r},a&&r&&($n[e][r]=$n[e][i])}var L=`math`,R=`text`,z=`main`,B=`ams`,er=`accent-token`,V=`bin`,tr=`close`,nr=`inner`,H=`mathord`,rr=`op-token`,ir=`open`,ar=`punct`,U=`rel`,or=`spacing`,W=`textord`;I(L,z,U,`≡`,`\\equiv`,!0),I(L,z,U,`≺`,`\\prec`,!0),I(L,z,U,`≻`,`\\succ`,!0),I(L,z,U,`∼`,`\\sim`,!0),I(L,z,U,`⊥`,`\\perp`),I(L,z,U,`⪯`,`\\preceq`,!0),I(L,z,U,`⪰`,`\\succeq`,!0),I(L,z,U,`≃`,`\\simeq`,!0),I(L,z,U,`∣`,`\\mid`,!0),I(L,z,U,`≪`,`\\ll`,!0),I(L,z,U,`≫`,`\\gg`,!0),I(L,z,U,`≍`,`\\asymp`,!0),I(L,z,U,`∥`,`\\parallel`),I(L,z,U,`⋈`,`\\bowtie`,!0),I(L,z,U,`⌣`,`\\smile`,!0),I(L,z,U,`⊑`,`\\sqsubseteq`,!0),I(L,z,U,`⊒`,`\\sqsupseteq`,!0),I(L,z,U,`≐`,`\\doteq`,!0),I(L,z,U,`⌢`,`\\frown`,!0),I(L,z,U,`∋`,`\\ni`,!0),I(L,z,U,`∝`,`\\propto`,!0),I(L,z,U,`⊢`,`\\vdash`,!0),I(L,z,U,`⊣`,`\\dashv`,!0),I(L,z,U,`∋`,`\\owns`),I(L,z,ar,`.`,`\\ldotp`),I(L,z,ar,`⋅`,`\\cdotp`),I(L,z,ar,`⋅`,`·`),I(R,z,W,`⋅`,`·`),I(L,z,W,`#`,`\\#`),I(R,z,W,`#`,`\\#`),I(L,z,W,`&`,`\\&`),I(R,z,W,`&`,`\\&`),I(L,z,W,`ℵ`,`\\aleph`,!0),I(L,z,W,`∀`,`\\forall`,!0),I(L,z,W,`ℏ`,`\\hbar`,!0),I(L,z,W,`∃`,`\\exists`,!0),I(L,z,W,`∇`,`\\nabla`,!0),I(L,z,W,`♭`,`\\flat`,!0),I(L,z,W,`ℓ`,`\\ell`,!0),I(L,z,W,`♮`,`\\natural`,!0),I(L,z,W,`♣`,`\\clubsuit`,!0),I(L,z,W,`℘`,`\\wp`,!0),I(L,z,W,`♯`,`\\sharp`,!0),I(L,z,W,`♢`,`\\diamondsuit`,!0),I(L,z,W,`ℜ`,`\\Re`,!0),I(L,z,W,`♡`,`\\heartsuit`,!0),I(L,z,W,`ℑ`,`\\Im`,!0),I(L,z,W,`♠`,`\\spadesuit`,!0),I(L,z,W,`§`,`\\S`,!0),I(R,z,W,`§`,`\\S`),I(L,z,W,`¶`,`\\P`,!0),I(R,z,W,`¶`,`\\P`),I(L,z,W,`†`,`\\dag`),I(R,z,W,`†`,`\\dag`),I(R,z,W,`†`,`\\textdagger`),I(L,z,W,`‡`,`\\ddag`),I(R,z,W,`‡`,`\\ddag`),I(R,z,W,`‡`,`\\textdaggerdbl`),I(L,z,tr,`⎱`,`\\rmoustache`,!0),I(L,z,ir,`⎰`,`\\lmoustache`,!0),I(L,z,tr,`⟯`,`\\rgroup`,!0),I(L,z,ir,`⟮`,`\\lgroup`,!0),I(L,z,V,`∓`,`\\mp`,!0),I(L,z,V,`⊖`,`\\ominus`,!0),I(L,z,V,`⊎`,`\\uplus`,!0),I(L,z,V,`⊓`,`\\sqcap`,!0),I(L,z,V,`∗`,`\\ast`),I(L,z,V,`⊔`,`\\sqcup`,!0),I(L,z,V,`◯`,`\\bigcirc`,!0),I(L,z,V,`∙`,`\\bullet`,!0),I(L,z,V,`‡`,`\\ddagger`),I(L,z,V,`≀`,`\\wr`,!0),I(L,z,V,`⨿`,`\\amalg`),I(L,z,V,`&`,`\\And`),I(L,z,U,`⟵`,`\\longleftarrow`,!0),I(L,z,U,`⇐`,`\\Leftarrow`,!0),I(L,z,U,`⟸`,`\\Longleftarrow`,!0),I(L,z,U,`⟶`,`\\longrightarrow`,!0),I(L,z,U,`⇒`,`\\Rightarrow`,!0),I(L,z,U,`⟹`,`\\Longrightarrow`,!0),I(L,z,U,`↔`,`\\leftrightarrow`,!0),I(L,z,U,`⟷`,`\\longleftrightarrow`,!0),I(L,z,U,`⇔`,`\\Leftrightarrow`,!0),I(L,z,U,`⟺`,`\\Longleftrightarrow`,!0),I(L,z,U,`↦`,`\\mapsto`,!0),I(L,z,U,`⟼`,`\\longmapsto`,!0),I(L,z,U,`↗`,`\\nearrow`,!0),I(L,z,U,`↩`,`\\hookleftarrow`,!0),I(L,z,U,`↪`,`\\hookrightarrow`,!0),I(L,z,U,`↘`,`\\searrow`,!0),I(L,z,U,`↼`,`\\leftharpoonup`,!0),I(L,z,U,`⇀`,`\\rightharpoonup`,!0),I(L,z,U,`↙`,`\\swarrow`,!0),I(L,z,U,`↽`,`\\leftharpoondown`,!0),I(L,z,U,`⇁`,`\\rightharpoondown`,!0),I(L,z,U,`↖`,`\\nwarrow`,!0),I(L,z,U,`⇌`,`\\rightleftharpoons`,!0),I(L,B,U,`≮`,`\\nless`,!0),I(L,B,U,``,`\\@nleqslant`),I(L,B,U,``,`\\@nleqq`),I(L,B,U,`⪇`,`\\lneq`,!0),I(L,B,U,`≨`,`\\lneqq`,!0),I(L,B,U,``,`\\@lvertneqq`),I(L,B,U,`⋦`,`\\lnsim`,!0),I(L,B,U,`⪉`,`\\lnapprox`,!0),I(L,B,U,`⊀`,`\\nprec`,!0),I(L,B,U,`⋠`,`\\npreceq`,!0),I(L,B,U,`⋨`,`\\precnsim`,!0),I(L,B,U,`⪹`,`\\precnapprox`,!0),I(L,B,U,`≁`,`\\nsim`,!0),I(L,B,U,``,`\\@nshortmid`),I(L,B,U,`∤`,`\\nmid`,!0),I(L,B,U,`⊬`,`\\nvdash`,!0),I(L,B,U,`⊭`,`\\nvDash`,!0),I(L,B,U,`⋪`,`\\ntriangleleft`),I(L,B,U,`⋬`,`\\ntrianglelefteq`,!0),I(L,B,U,`⊊`,`\\subsetneq`,!0),I(L,B,U,``,`\\@varsubsetneq`),I(L,B,U,`⫋`,`\\subsetneqq`,!0),I(L,B,U,``,`\\@varsubsetneqq`),I(L,B,U,`≯`,`\\ngtr`,!0),I(L,B,U,``,`\\@ngeqslant`),I(L,B,U,``,`\\@ngeqq`),I(L,B,U,`⪈`,`\\gneq`,!0),I(L,B,U,`≩`,`\\gneqq`,!0),I(L,B,U,``,`\\@gvertneqq`),I(L,B,U,`⋧`,`\\gnsim`,!0),I(L,B,U,`⪊`,`\\gnapprox`,!0),I(L,B,U,`⊁`,`\\nsucc`,!0),I(L,B,U,`⋡`,`\\nsucceq`,!0),I(L,B,U,`⋩`,`\\succnsim`,!0),I(L,B,U,`⪺`,`\\succnapprox`,!0),I(L,B,U,`≆`,`\\ncong`,!0),I(L,B,U,``,`\\@nshortparallel`),I(L,B,U,`∦`,`\\nparallel`,!0),I(L,B,U,`⊯`,`\\nVDash`,!0),I(L,B,U,`⋫`,`\\ntriangleright`),I(L,B,U,`⋭`,`\\ntrianglerighteq`,!0),I(L,B,U,``,`\\@nsupseteqq`),I(L,B,U,`⊋`,`\\supsetneq`,!0),I(L,B,U,``,`\\@varsupsetneq`),I(L,B,U,`⫌`,`\\supsetneqq`,!0),I(L,B,U,``,`\\@varsupsetneqq`),I(L,B,U,`⊮`,`\\nVdash`,!0),I(L,B,U,`⪵`,`\\precneqq`,!0),I(L,B,U,`⪶`,`\\succneqq`,!0),I(L,B,U,``,`\\@nsubseteqq`),I(L,B,V,`⊴`,`\\unlhd`),I(L,B,V,`⊵`,`\\unrhd`),I(L,B,U,`↚`,`\\nleftarrow`,!0),I(L,B,U,`↛`,`\\nrightarrow`,!0),I(L,B,U,`⇍`,`\\nLeftarrow`,!0),I(L,B,U,`⇏`,`\\nRightarrow`,!0),I(L,B,U,`↮`,`\\nleftrightarrow`,!0),I(L,B,U,`⇎`,`\\nLeftrightarrow`,!0),I(L,B,U,`△`,`\\vartriangle`),I(L,B,W,`ℏ`,`\\hslash`),I(L,B,W,`▽`,`\\triangledown`),I(L,B,W,`◊`,`\\lozenge`),I(L,B,W,`Ⓢ`,`\\circledS`),I(L,B,W,`®`,`\\circledR`),I(R,B,W,`®`,`\\circledR`),I(L,B,W,`∡`,`\\measuredangle`,!0),I(L,B,W,`∄`,`\\nexists`),I(L,B,W,`℧`,`\\mho`),I(L,B,W,`Ⅎ`,`\\Finv`,!0),I(L,B,W,`⅁`,`\\Game`,!0),I(L,B,W,`‵`,`\\backprime`),I(L,B,W,`▲`,`\\blacktriangle`),I(L,B,W,`▼`,`\\blacktriangledown`),I(L,B,W,`■`,`\\blacksquare`),I(L,B,W,`⧫`,`\\blacklozenge`),I(L,B,W,`★`,`\\bigstar`),I(L,B,W,`∢`,`\\sphericalangle`,!0),I(L,B,W,`∁`,`\\complement`,!0),I(L,B,W,`ð`,`\\eth`,!0),I(R,z,W,`ð`,`ð`),I(L,B,W,`╱`,`\\diagup`),I(L,B,W,`╲`,`\\diagdown`),I(L,B,W,`□`,`\\square`),I(L,B,W,`□`,`\\Box`),I(L,B,W,`◊`,`\\Diamond`),I(L,B,W,`¥`,`\\yen`,!0),I(R,B,W,`¥`,`\\yen`,!0),I(L,B,W,`✓`,`\\checkmark`,!0),I(R,B,W,`✓`,`\\checkmark`),I(L,B,W,`ℶ`,`\\beth`,!0),I(L,B,W,`ℸ`,`\\daleth`,!0),I(L,B,W,`ℷ`,`\\gimel`,!0),I(L,B,W,`ϝ`,`\\digamma`,!0),I(L,B,W,`ϰ`,`\\varkappa`),I(L,B,ir,`┌`,`\\@ulcorner`,!0),I(L,B,tr,`┐`,`\\@urcorner`,!0),I(L,B,ir,`└`,`\\@llcorner`,!0),I(L,B,tr,`┘`,`\\@lrcorner`,!0),I(L,B,U,`≦`,`\\leqq`,!0),I(L,B,U,`⩽`,`\\leqslant`,!0),I(L,B,U,`⪕`,`\\eqslantless`,!0),I(L,B,U,`≲`,`\\lesssim`,!0),I(L,B,U,`⪅`,`\\lessapprox`,!0),I(L,B,U,`≊`,`\\approxeq`,!0),I(L,B,V,`⋖`,`\\lessdot`),I(L,B,U,`⋘`,`\\lll`,!0),I(L,B,U,`≶`,`\\lessgtr`,!0),I(L,B,U,`⋚`,`\\lesseqgtr`,!0),I(L,B,U,`⪋`,`\\lesseqqgtr`,!0),I(L,B,U,`≑`,`\\doteqdot`),I(L,B,U,`≓`,`\\risingdotseq`,!0),I(L,B,U,`≒`,`\\fallingdotseq`,!0),I(L,B,U,`∽`,`\\backsim`,!0),I(L,B,U,`⋍`,`\\backsimeq`,!0),I(L,B,U,`⫅`,`\\subseteqq`,!0),I(L,B,U,`⋐`,`\\Subset`,!0),I(L,B,U,`⊏`,`\\sqsubset`,!0),I(L,B,U,`≼`,`\\preccurlyeq`,!0),I(L,B,U,`⋞`,`\\curlyeqprec`,!0),I(L,B,U,`≾`,`\\precsim`,!0),I(L,B,U,`⪷`,`\\precapprox`,!0),I(L,B,U,`⊲`,`\\vartriangleleft`),I(L,B,U,`⊴`,`\\trianglelefteq`),I(L,B,U,`⊨`,`\\vDash`,!0),I(L,B,U,`⊪`,`\\Vvdash`,!0),I(L,B,U,`⌣`,`\\smallsmile`),I(L,B,U,`⌢`,`\\smallfrown`),I(L,B,U,`≏`,`\\bumpeq`,!0),I(L,B,U,`≎`,`\\Bumpeq`,!0),I(L,B,U,`≧`,`\\geqq`,!0),I(L,B,U,`⩾`,`\\geqslant`,!0),I(L,B,U,`⪖`,`\\eqslantgtr`,!0),I(L,B,U,`≳`,`\\gtrsim`,!0),I(L,B,U,`⪆`,`\\gtrapprox`,!0),I(L,B,V,`⋗`,`\\gtrdot`),I(L,B,U,`⋙`,`\\ggg`,!0),I(L,B,U,`≷`,`\\gtrless`,!0),I(L,B,U,`⋛`,`\\gtreqless`,!0),I(L,B,U,`⪌`,`\\gtreqqless`,!0),I(L,B,U,`≖`,`\\eqcirc`,!0),I(L,B,U,`≗`,`\\circeq`,!0),I(L,B,U,`≜`,`\\triangleq`,!0),I(L,B,U,`∼`,`\\thicksim`),I(L,B,U,`≈`,`\\thickapprox`),I(L,B,U,`⫆`,`\\supseteqq`,!0),I(L,B,U,`⋑`,`\\Supset`,!0),I(L,B,U,`⊐`,`\\sqsupset`,!0),I(L,B,U,`≽`,`\\succcurlyeq`,!0),I(L,B,U,`⋟`,`\\curlyeqsucc`,!0),I(L,B,U,`≿`,`\\succsim`,!0),I(L,B,U,`⪸`,`\\succapprox`,!0),I(L,B,U,`⊳`,`\\vartriangleright`),I(L,B,U,`⊵`,`\\trianglerighteq`),I(L,B,U,`⊩`,`\\Vdash`,!0),I(L,B,U,`∣`,`\\shortmid`),I(L,B,U,`∥`,`\\shortparallel`),I(L,B,U,`≬`,`\\between`,!0),I(L,B,U,`⋔`,`\\pitchfork`,!0),I(L,B,U,`∝`,`\\varpropto`),I(L,B,U,`◀`,`\\blacktriangleleft`),I(L,B,U,`∴`,`\\therefore`,!0),I(L,B,U,`∍`,`\\backepsilon`),I(L,B,U,`▶`,`\\blacktriangleright`),I(L,B,U,`∵`,`\\because`,!0),I(L,B,U,`⋘`,`\\llless`),I(L,B,U,`⋙`,`\\gggtr`),I(L,B,V,`⊲`,`\\lhd`),I(L,B,V,`⊳`,`\\rhd`),I(L,B,U,`≂`,`\\eqsim`,!0),I(L,z,U,`⋈`,`\\Join`),I(L,B,U,`≑`,`\\Doteq`,!0),I(L,B,V,`∔`,`\\dotplus`,!0),I(L,B,V,`∖`,`\\smallsetminus`),I(L,B,V,`⋒`,`\\Cap`,!0),I(L,B,V,`⋓`,`\\Cup`,!0),I(L,B,V,`⩞`,`\\doublebarwedge`,!0),I(L,B,V,`⊟`,`\\boxminus`,!0),I(L,B,V,`⊞`,`\\boxplus`,!0),I(L,B,V,`⋇`,`\\divideontimes`,!0),I(L,B,V,`⋉`,`\\ltimes`,!0),I(L,B,V,`⋊`,`\\rtimes`,!0),I(L,B,V,`⋋`,`\\leftthreetimes`,!0),I(L,B,V,`⋌`,`\\rightthreetimes`,!0),I(L,B,V,`⋏`,`\\curlywedge`,!0),I(L,B,V,`⋎`,`\\curlyvee`,!0),I(L,B,V,`⊝`,`\\circleddash`,!0),I(L,B,V,`⊛`,`\\circledast`,!0),I(L,B,V,`⋅`,`\\centerdot`),I(L,B,V,`⊺`,`\\intercal`,!0),I(L,B,V,`⋒`,`\\doublecap`),I(L,B,V,`⋓`,`\\doublecup`),I(L,B,V,`⊠`,`\\boxtimes`,!0),I(L,B,U,`⇢`,`\\dashrightarrow`,!0),I(L,B,U,`⇠`,`\\dashleftarrow`,!0),I(L,B,U,`⇇`,`\\leftleftarrows`,!0),I(L,B,U,`⇆`,`\\leftrightarrows`,!0),I(L,B,U,`⇚`,`\\Lleftarrow`,!0),I(L,B,U,`↞`,`\\twoheadleftarrow`,!0),I(L,B,U,`↢`,`\\leftarrowtail`,!0),I(L,B,U,`↫`,`\\looparrowleft`,!0),I(L,B,U,`⇋`,`\\leftrightharpoons`,!0),I(L,B,U,`↶`,`\\curvearrowleft`,!0),I(L,B,U,`↺`,`\\circlearrowleft`,!0),I(L,B,U,`↰`,`\\Lsh`,!0),I(L,B,U,`⇈`,`\\upuparrows`,!0),I(L,B,U,`↿`,`\\upharpoonleft`,!0),I(L,B,U,`⇃`,`\\downharpoonleft`,!0),I(L,z,U,`⊶`,`\\origof`,!0),I(L,z,U,`⊷`,`\\imageof`,!0),I(L,B,U,`⊸`,`\\multimap`,!0),I(L,B,U,`↭`,`\\leftrightsquigarrow`,!0),I(L,B,U,`⇉`,`\\rightrightarrows`,!0),I(L,B,U,`⇄`,`\\rightleftarrows`,!0),I(L,B,U,`↠`,`\\twoheadrightarrow`,!0),I(L,B,U,`↣`,`\\rightarrowtail`,!0),I(L,B,U,`↬`,`\\looparrowright`,!0),I(L,B,U,`↷`,`\\curvearrowright`,!0),I(L,B,U,`↻`,`\\circlearrowright`,!0),I(L,B,U,`↱`,`\\Rsh`,!0),I(L,B,U,`⇊`,`\\downdownarrows`,!0),I(L,B,U,`↾`,`\\upharpoonright`,!0),I(L,B,U,`⇂`,`\\downharpoonright`,!0),I(L,B,U,`⇝`,`\\rightsquigarrow`,!0),I(L,B,U,`⇝`,`\\leadsto`),I(L,B,U,`⇛`,`\\Rrightarrow`,!0),I(L,B,U,`↾`,`\\restriction`),I(L,z,W,`‘`,"`"),I(L,z,W,`$`,`\\$`),I(R,z,W,`$`,`\\$`),I(R,z,W,`$`,`\\textdollar`),I(L,z,W,`%`,`\\%`),I(R,z,W,`%`,`\\%`),I(L,z,W,`_`,`\\_`),I(R,z,W,`_`,`\\_`),I(R,z,W,`_`,`\\textunderscore`),I(L,z,W,`∠`,`\\angle`,!0),I(L,z,W,`∞`,`\\infty`,!0),I(L,z,W,`′`,`\\prime`),I(L,z,W,`△`,`\\triangle`),I(L,z,W,`Γ`,`\\Gamma`,!0),I(L,z,W,`Δ`,`\\Delta`,!0),I(L,z,W,`Θ`,`\\Theta`,!0),I(L,z,W,`Λ`,`\\Lambda`,!0),I(L,z,W,`Ξ`,`\\Xi`,!0),I(L,z,W,`Π`,`\\Pi`,!0),I(L,z,W,`Σ`,`\\Sigma`,!0),I(L,z,W,`Υ`,`\\Upsilon`,!0),I(L,z,W,`Φ`,`\\Phi`,!0),I(L,z,W,`Ψ`,`\\Psi`,!0),I(L,z,W,`Ω`,`\\Omega`,!0),I(L,z,W,`A`,`Α`),I(L,z,W,`B`,`Β`),I(L,z,W,`E`,`Ε`),I(L,z,W,`Z`,`Ζ`),I(L,z,W,`H`,`Η`),I(L,z,W,`I`,`Ι`),I(L,z,W,`K`,`Κ`),I(L,z,W,`M`,`Μ`),I(L,z,W,`N`,`Ν`),I(L,z,W,`O`,`Ο`),I(L,z,W,`P`,`Ρ`),I(L,z,W,`T`,`Τ`),I(L,z,W,`X`,`Χ`),I(L,z,W,`¬`,`\\neg`,!0),I(L,z,W,`¬`,`\\lnot`),I(L,z,W,`⊤`,`\\top`),I(L,z,W,`⊥`,`\\bot`),I(L,z,W,`∅`,`\\emptyset`),I(L,B,W,`∅`,`\\varnothing`),I(L,z,H,`α`,`\\alpha`,!0),I(L,z,H,`β`,`\\beta`,!0),I(L,z,H,`γ`,`\\gamma`,!0),I(L,z,H,`δ`,`\\delta`,!0),I(L,z,H,`ϵ`,`\\epsilon`,!0),I(L,z,H,`ζ`,`\\zeta`,!0),I(L,z,H,`η`,`\\eta`,!0),I(L,z,H,`θ`,`\\theta`,!0),I(L,z,H,`ι`,`\\iota`,!0),I(L,z,H,`κ`,`\\kappa`,!0),I(L,z,H,`λ`,`\\lambda`,!0),I(L,z,H,`μ`,`\\mu`,!0),I(L,z,H,`ν`,`\\nu`,!0),I(L,z,H,`ξ`,`\\xi`,!0),I(L,z,H,`ο`,`\\omicron`,!0),I(L,z,H,`π`,`\\pi`,!0),I(L,z,H,`ρ`,`\\rho`,!0),I(L,z,H,`σ`,`\\sigma`,!0),I(L,z,H,`τ`,`\\tau`,!0),I(L,z,H,`υ`,`\\upsilon`,!0),I(L,z,H,`ϕ`,`\\phi`,!0),I(L,z,H,`χ`,`\\chi`,!0),I(L,z,H,`ψ`,`\\psi`,!0),I(L,z,H,`ω`,`\\omega`,!0),I(L,z,H,`ε`,`\\varepsilon`,!0),I(L,z,H,`ϑ`,`\\vartheta`,!0),I(L,z,H,`ϖ`,`\\varpi`,!0),I(L,z,H,`ϱ`,`\\varrho`,!0),I(L,z,H,`ς`,`\\varsigma`,!0),I(L,z,H,`φ`,`\\varphi`,!0),I(L,z,V,`∗`,`*`,!0),I(L,z,V,`+`,`+`),I(L,z,V,`−`,`-`,!0),I(L,z,V,`⋅`,`\\cdot`,!0),I(L,z,V,`∘`,`\\circ`,!0),I(L,z,V,`÷`,`\\div`,!0),I(L,z,V,`±`,`\\pm`,!0),I(L,z,V,`×`,`\\times`,!0),I(L,z,V,`∩`,`\\cap`,!0),I(L,z,V,`∪`,`\\cup`,!0),I(L,z,V,`∖`,`\\setminus`,!0),I(L,z,V,`∧`,`\\land`),I(L,z,V,`∨`,`\\lor`),I(L,z,V,`∧`,`\\wedge`,!0),I(L,z,V,`∨`,`\\vee`,!0),I(L,z,W,`√`,`\\surd`),I(L,z,ir,`⟨`,`\\langle`,!0),I(L,z,ir,`∣`,`\\lvert`),I(L,z,ir,`∥`,`\\lVert`),I(L,z,tr,`?`,`?`),I(L,z,tr,`!`,`!`),I(L,z,tr,`⟩`,`\\rangle`,!0),I(L,z,tr,`∣`,`\\rvert`),I(L,z,tr,`∥`,`\\rVert`),I(L,z,U,`=`,`=`),I(L,z,U,`:`,`:`),I(L,z,U,`≈`,`\\approx`,!0),I(L,z,U,`≅`,`\\cong`,!0),I(L,z,U,`≥`,`\\ge`),I(L,z,U,`≥`,`\\geq`,!0),I(L,z,U,`←`,`\\gets`),I(L,z,U,`>`,`\\gt`,!0),I(L,z,U,`∈`,`\\in`,!0),I(L,z,U,``,`\\@not`),I(L,z,U,`⊂`,`\\subset`,!0),I(L,z,U,`⊃`,`\\supset`,!0),I(L,z,U,`⊆`,`\\subseteq`,!0),I(L,z,U,`⊇`,`\\supseteq`,!0),I(L,B,U,`⊈`,`\\nsubseteq`,!0),I(L,B,U,`⊉`,`\\nsupseteq`,!0),I(L,z,U,`⊨`,`\\models`),I(L,z,U,`←`,`\\leftarrow`,!0),I(L,z,U,`≤`,`\\le`),I(L,z,U,`≤`,`\\leq`,!0),I(L,z,U,`<`,`\\lt`,!0),I(L,z,U,`→`,`\\rightarrow`,!0),I(L,z,U,`→`,`\\to`),I(L,B,U,`≱`,`\\ngeq`,!0),I(L,B,U,`≰`,`\\nleq`,!0),I(L,z,or,`\xA0`,`\\ `),I(L,z,or,`\xA0`,`\\space`),I(L,z,or,`\xA0`,`\\nobreakspace`),I(R,z,or,`\xA0`,`\\ `),I(R,z,or,`\xA0`,` `),I(R,z,or,`\xA0`,`\\space`),I(R,z,or,`\xA0`,`\\nobreakspace`),I(L,z,or,``,`\\nobreak`),I(L,z,or,``,`\\allowbreak`),I(L,z,ar,`,`,`,`),I(L,z,ar,`;`,`;`),I(L,B,V,`⊼`,`\\barwedge`,!0),I(L,B,V,`⊻`,`\\veebar`,!0),I(L,z,V,`⊙`,`\\odot`,!0),I(L,z,V,`⊕`,`\\oplus`,!0),I(L,z,V,`⊗`,`\\otimes`,!0),I(L,z,W,`∂`,`\\partial`,!0),I(L,z,V,`⊘`,`\\oslash`,!0),I(L,B,V,`⊚`,`\\circledcirc`,!0),I(L,B,V,`⊡`,`\\boxdot`,!0),I(L,z,V,`△`,`\\bigtriangleup`),I(L,z,V,`▽`,`\\bigtriangledown`),I(L,z,V,`†`,`\\dagger`),I(L,z,V,`⋄`,`\\diamond`),I(L,z,V,`⋆`,`\\star`),I(L,z,V,`◃`,`\\triangleleft`),I(L,z,V,`▹`,`\\triangleright`),I(L,z,ir,`{`,`\\{`),I(R,z,W,`{`,`\\{`),I(R,z,W,`{`,`\\textbraceleft`),I(L,z,tr,`}`,`\\}`),I(R,z,W,`}`,`\\}`),I(R,z,W,`}`,`\\textbraceright`),I(L,z,ir,`{`,`\\lbrace`),I(L,z,tr,`}`,`\\rbrace`),I(L,z,ir,`[`,`\\lbrack`,!0),I(R,z,W,`[`,`\\lbrack`,!0),I(L,z,tr,`]`,`\\rbrack`,!0),I(R,z,W,`]`,`\\rbrack`,!0),I(L,z,ir,`(`,`\\lparen`,!0),I(L,z,tr,`)`,`\\rparen`,!0),I(R,z,W,`<`,`\\textless`,!0),I(R,z,W,`>`,`\\textgreater`,!0),I(L,z,ir,`⌊`,`\\lfloor`,!0),I(L,z,tr,`⌋`,`\\rfloor`,!0),I(L,z,ir,`⌈`,`\\lceil`,!0),I(L,z,tr,`⌉`,`\\rceil`,!0),I(L,z,W,`\\`,`\\backslash`),I(L,z,W,`∣`,`|`),I(L,z,W,`∣`,`\\vert`),I(R,z,W,`|`,`\\textbar`,!0),I(L,z,W,`∥`,`\\|`),I(L,z,W,`∥`,`\\Vert`),I(R,z,W,`∥`,`\\textbardbl`),I(R,z,W,`~`,`\\textasciitilde`),I(R,z,W,`\\`,`\\textbackslash`),I(R,z,W,`^`,`\\textasciicircum`),I(L,z,U,`↑`,`\\uparrow`,!0),I(L,z,U,`⇑`,`\\Uparrow`,!0),I(L,z,U,`↓`,`\\downarrow`,!0),I(L,z,U,`⇓`,`\\Downarrow`,!0),I(L,z,U,`↕`,`\\updownarrow`,!0),I(L,z,U,`⇕`,`\\Updownarrow`,!0),I(L,z,rr,`∐`,`\\coprod`),I(L,z,rr,`⋁`,`\\bigvee`),I(L,z,rr,`⋀`,`\\bigwedge`),I(L,z,rr,`⨄`,`\\biguplus`),I(L,z,rr,`⋂`,`\\bigcap`),I(L,z,rr,`⋃`,`\\bigcup`),I(L,z,rr,`∫`,`\\int`),I(L,z,rr,`∫`,`\\intop`),I(L,z,rr,`∬`,`\\iint`),I(L,z,rr,`∭`,`\\iiint`),I(L,z,rr,`∏`,`\\prod`),I(L,z,rr,`∑`,`\\sum`),I(L,z,rr,`⨂`,`\\bigotimes`),I(L,z,rr,`⨁`,`\\bigoplus`),I(L,z,rr,`⨀`,`\\bigodot`),I(L,z,rr,`∮`,`\\oint`),I(L,z,rr,`∯`,`\\oiint`),I(L,z,rr,`∰`,`\\oiiint`),I(L,z,rr,`⨆`,`\\bigsqcup`),I(L,z,rr,`∫`,`\\smallint`),I(R,z,nr,`…`,`\\textellipsis`),I(L,z,nr,`…`,`\\mathellipsis`),I(R,z,nr,`…`,`\\ldots`,!0),I(L,z,nr,`…`,`\\ldots`,!0),I(L,z,nr,`⋯`,`\\@cdots`,!0),I(L,z,nr,`⋱`,`\\ddots`,!0),I(L,z,W,`⋮`,`\\varvdots`),I(R,z,W,`⋮`,`\\varvdots`),I(L,z,er,`ˊ`,`\\acute`),I(L,z,er,`ˋ`,`\\grave`),I(L,z,er,`¨`,`\\ddot`),I(L,z,er,`~`,`\\tilde`),I(L,z,er,`ˉ`,`\\bar`),I(L,z,er,`˘`,`\\breve`),I(L,z,er,`ˇ`,`\\check`),I(L,z,er,`^`,`\\hat`),I(L,z,er,`⃗`,`\\vec`),I(L,z,er,`˙`,`\\dot`),I(L,z,er,`˚`,`\\mathring`),I(L,z,H,``,`\\@imath`),I(L,z,H,``,`\\@jmath`),I(L,z,W,`ı`,`ı`),I(L,z,W,`ȷ`,`ȷ`),I(R,z,W,`ı`,`\\i`,!0),I(R,z,W,`ȷ`,`\\j`,!0),I(R,z,W,`ß`,`\\ss`,!0),I(R,z,W,`æ`,`\\ae`,!0),I(R,z,W,`œ`,`\\oe`,!0),I(R,z,W,`ø`,`\\o`,!0),I(R,z,W,`Æ`,`\\AE`,!0),I(R,z,W,`Œ`,`\\OE`,!0),I(R,z,W,`Ø`,`\\O`,!0),I(R,z,er,`ˊ`,`\\'`),I(R,z,er,`ˋ`,"\\`"),I(R,z,er,`ˆ`,`\\^`),I(R,z,er,`˜`,`\\~`),I(R,z,er,`ˉ`,`\\=`),I(R,z,er,`˘`,`\\u`),I(R,z,er,`˙`,`\\.`),I(R,z,er,`¸`,`\\c`),I(R,z,er,`˚`,`\\r`),I(R,z,er,`ˇ`,`\\v`),I(R,z,er,`¨`,`\\"`),I(R,z,er,`˝`,`\\H`),I(R,z,er,`◯`,`\\textcircled`);var sr={"--":!0,"---":!0,"``":!0,"''":!0};I(R,z,W,`–`,`--`,!0),I(R,z,W,`–`,`\\textendash`),I(R,z,W,`—`,`---`,!0),I(R,z,W,`—`,`\\textemdash`),I(R,z,W,`‘`,"`",!0),I(R,z,W,`‘`,`\\textquoteleft`),I(R,z,W,`’`,`'`,!0),I(R,z,W,`’`,`\\textquoteright`),I(R,z,W,`“`,"``",!0),I(R,z,W,`“`,`\\textquotedblleft`),I(R,z,W,`”`,`''`,!0),I(R,z,W,`”`,`\\textquotedblright`),I(L,z,W,`°`,`\\degree`,!0),I(R,z,W,`°`,`\\degree`),I(R,z,W,`°`,`\\textdegree`,!0),I(L,z,W,`£`,`\\pounds`),I(L,z,W,`£`,`\\mathsterling`,!0),I(R,z,W,`£`,`\\pounds`),I(R,z,W,`£`,`\\textsterling`,!0),I(L,B,W,`✠`,`\\maltese`),I(R,B,W,`✠`,`\\maltese`);for(var cr=`0123456789/@."`,lr=0;lr<cr.length;lr++){var ur=cr.charAt(lr);I(L,z,W,ur,ur)}for(var dr=`0123456789!@*()-=+";:?/.,`,fr=0;fr<dr.length;fr++){var pr=dr.charAt(fr);I(R,z,W,pr,pr)}for(var mr=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`,hr=0;hr<mr.length;hr++){var gr=mr.charAt(hr);I(L,z,H,gr,gr),I(R,z,W,gr,gr)}I(L,B,W,`C`,`ℂ`),I(R,B,W,`C`,`ℂ`),I(L,B,W,`H`,`ℍ`),I(R,B,W,`H`,`ℍ`),I(L,B,W,`N`,`ℕ`),I(R,B,W,`N`,`ℕ`),I(L,B,W,`P`,`ℙ`),I(R,B,W,`P`,`ℙ`),I(L,B,W,`Q`,`ℚ`),I(R,B,W,`Q`,`ℚ`),I(L,B,W,`R`,`ℝ`),I(R,B,W,`R`,`ℝ`),I(L,B,W,`Z`,`ℤ`),I(R,B,W,`Z`,`ℤ`),I(L,z,H,`h`,`ℎ`),I(R,z,H,`h`,`ℎ`);for(var G,_r=0;_r<mr.length;_r++){var vr=mr.charAt(_r);G=String.fromCharCode(55349,56320+_r),I(L,z,H,vr,G),I(R,z,W,vr,G),G=String.fromCharCode(55349,56372+_r),I(L,z,H,vr,G),I(R,z,W,vr,G),G=String.fromCharCode(55349,56424+_r),I(L,z,H,vr,G),I(R,z,W,vr,G),G=String.fromCharCode(55349,56580+_r),I(L,z,H,vr,G),I(R,z,W,vr,G),G=String.fromCharCode(55349,56684+_r),I(L,z,H,vr,G),I(R,z,W,vr,G),G=String.fromCharCode(55349,56736+_r),I(L,z,H,vr,G),I(R,z,W,vr,G),G=String.fromCharCode(55349,56788+_r),I(L,z,H,vr,G),I(R,z,W,vr,G),G=String.fromCharCode(55349,56840+_r),I(L,z,H,vr,G),I(R,z,W,vr,G),G=String.fromCharCode(55349,56944+_r),I(L,z,H,vr,G),I(R,z,W,vr,G),_r<26&&(G=String.fromCharCode(55349,56632+_r),I(L,z,H,vr,G),I(R,z,W,vr,G),G=String.fromCharCode(55349,56476+_r),I(L,z,H,vr,G),I(R,z,W,vr,G))}G=String.fromCharCode(55349,56668),I(L,z,H,`k`,G),I(R,z,W,`k`,G);for(var yr=0;yr<10;yr++){var br=yr.toString();G=String.fromCharCode(55349,57294+yr),I(L,z,H,br,G),I(R,z,W,br,G),G=String.fromCharCode(55349,57314+yr),I(L,z,H,br,G),I(R,z,W,br,G),G=String.fromCharCode(55349,57324+yr),I(L,z,H,br,G),I(R,z,W,br,G),G=String.fromCharCode(55349,57334+yr),I(L,z,H,br,G),I(R,z,W,br,G)}for(var xr=`ÐÞþ`,Sr=0;Sr<xr.length;Sr++){var Cr=xr.charAt(Sr);I(L,z,H,Cr,Cr),I(R,z,W,Cr,Cr)}var wr={mathClass:`mathbf`,textClass:`textbf`,font:`Main-Bold`},Tr={mathClass:`mathnormal`,textClass:`textit`,font:`Math-Italic`},Er={mathClass:`boldsymbol`,textClass:`boldsymbol`,font:`Main-BoldItalic`},Dr={mathClass:`mathscr`,textClass:`textscr`,font:`Script-Regular`},Or={mathClass:``,textClass:``,font:``},kr={mathClass:`mathfrak`,textClass:`textfrak`,font:`Fraktur-Regular`},Ar={mathClass:`mathbb`,textClass:`textbb`,font:`AMS-Regular`},jr={mathClass:`mathboldfrak`,textClass:`textboldfrak`,font:`Fraktur-Regular`},Mr={mathClass:`mathsf`,textClass:`textsf`,font:`SansSerif-Regular`},Nr={mathClass:`mathboldsf`,textClass:`textboldsf`,font:`SansSerif-Bold`},Pr={mathClass:`mathitsf`,textClass:`textitsf`,font:`SansSerif-Italic`},Fr={mathClass:`mathtt`,textClass:`texttt`,font:`Typewriter-Regular`},Ir=[wr,wr,Tr,Tr,Er,Er,Dr,Or,Or,Or,kr,kr,Ar,Ar,jr,jr,Mr,Mr,Nr,Nr,Pr,Pr,Or,Or,Fr,Fr],Lr=[wr,Or,Mr,Nr,Fr],Rr=e=>{var t=e.charCodeAt(0),n=e.charCodeAt(1),r=(t-55296)*1024+(n-56320)+65536;if(119808<=r&&r<120484)return Ir[Math.floor((r-119808)/26)];if(120782<=r&&r<=120831)return Lr[Math.floor((r-120782)/10)];if(r===120485||r===120486)return Ir[0];if(120486<r&&r<120782)return Or;throw new N(`Unsupported character: `+e)},zr=function(e,t,n){if($n[n][e]){var r=$n[n][e].replace;r&&(e=r)}return{value:e,metrics:Xn(e,t,n)}},Br=function(e,t,n,r,i){var a=zr(e,t,n),o=a.metrics;e=a.value;var s;if(o){var c=o.italic;(n===`text`||r&&r.font===`mathit`)&&(c=0),s=new zn(e,o.height,o.depth,c,o.skew,o.width,i)}else typeof console<`u`&&console.warn(`No character metrics `+(`for '`+e+`' in style '`+t+`' and mode '`+n+`'`)),s=new zn(e,0,0,0,0,0,i);if(r){s.maxFontSize=r.sizeMultiplier,r.style.isTight()&&s.classes.push(`mtight`);var l=r.getColor();l&&(s.style.color=l)}return s},Vr=function(e,t,n,r){return r===void 0&&(r=[]),n.font===`boldsymbol`&&zr(e,`Main-Bold`,t).metrics?Br(e,`Main-Bold`,t,n,r.concat([`mathbf`])):e===`\\`||$n[t][e].font===`main`?Br(e,`Main-Regular`,t,n,r):Br(e,`AMS-Regular`,t,n,r.concat([`amsrm`]))},Hr=function(e,t,n){return n!==`textord`&&zr(e,`Math-BoldItalic`,t).metrics?{fontName:`Math-BoldItalic`,fontClass:`boldsymbol`}:{fontName:`Main-Bold`,fontClass:`mathbf`}},Ur=function(e,t){var n=e.type===`mathord`?`mathord`:`textord`,r=e.mode,i=e.text,a=[`mord`],o=t.font,s=t.fontFamily,c=t.fontWeight,l=t.fontShape,u=r===`math`||r===`text`&&!!o,d=u?o:s,f=``,p=``;if(i.charCodeAt(0)===55349){var m=Rr(i);f=m.font,p=m[r+`Class`]}if(f)return Br(i,f,r,t,a.concat(p));if(d){var h,g;if(d===`boldsymbol`){var _=Hr(i,r,n);h=_.fontName,g=[_.fontClass]}else u?(h=ni[o].fontName,g=[o]):(h=ti(s,c,l),g=[s,c,l]);if(zr(i,h,r).metrics)return Br(i,h,r,t,a.concat(g));if(Object.prototype.hasOwnProperty.call(sr,i)&&h.slice(0,10)===`Typewriter`){for(var v=[],y=0;y<i.length;y++)v.push(Br(i[y],h,r,t,a.concat(g)));return Xr(v)}}if(n===`mathord`)return Br(i,`Math-Italic`,r,t,a.concat([`mathnormal`]));if(n===`textord`){var b=$n[r][i]&&$n[r][i].font;if(b===`ams`)return Br(i,ti(`amsrm`,c,l),r,t,a.concat(`amsrm`,c,l));if(b===`main`||!b)return Br(i,ti(`textrm`,c,l),r,t,a.concat(c,l));var x=ti(b,c,l);return Br(i,x,r,t,a.concat(x,c,l))}else throw Error(`unexpected type: `+n+` in makeOrd`)},Wr=(e,t)=>{if(kn(e.classes)!==kn(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize||e.italic!==0&&e.hasClass(`mathnormal`))return!1;if(e.classes.length===1){var n=e.classes[0];if(n===`mbin`||n===`mord`)return!1}for(var r of Object.keys(e.style))if(e.style[r]!==t.style[r])return!1;for(var i of Object.keys(t.style))if(e.style[i]!==t.style[i])return!1;return!0},Gr=e=>{for(var t=0;t<e.length-1;t++){var n=e[t],r=e[t+1];n instanceof zn&&r instanceof zn&&Wr(n,r)&&(n.text+=r.text,n.height=Math.max(n.height,r.height),n.depth=Math.max(n.depth,r.depth),n.italic=r.italic,e.splice(t+1,1),t--)}return e},Kr=function(e){for(var t=0,n=0,r=0,i=0;i<e.children.length;i++){var a=e.children[i];a.height>t&&(t=a.height),a.depth>n&&(n=a.depth),a.maxFontSize>r&&(r=a.maxFontSize)}e.height=t,e.depth=n,e.maxFontSize=r},K=function(e,t,n,r){var i=new Fn(e,t,n,r);return Kr(i),i},qr=(e,t,n,r)=>new Fn(e,t,n,r),Jr=function(e,t,n){var r=K([e],[],t);return r.height=Math.max(n||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),r.style.borderBottomWidth=F(r.height),r.maxFontSize=1,r},Yr=function(e,t,n,r){var i=new In(e,t,n,r);return Kr(i),i},Xr=function(e){var t=new wn(e);return Kr(t),t},Zr=function(e,t){return e instanceof wn?K([],[e],t):e},Qr=function(e){if(e.positionType===`individualShift`){for(var t=e.children,n=[t[0]],r=-t[0].shift-t[0].elem.depth,i=r,a=1;a<t.length;a++){var o=-t[a].shift-i-t[a].elem.depth,s=o-(t[a-1].elem.height+t[a-1].elem.depth);i+=o,n.push({type:`kern`,size:s}),n.push(t[a])}return{children:n,depth:r}}var c;if(e.positionType===`top`){for(var l=e.positionData,u=0;u<e.children.length;u++){var d=e.children[u];l-=d.type===`kern`?d.size:d.elem.height+d.elem.depth}c=l}else if(e.positionType===`bottom`)c=-e.positionData;else{var f=e.children[0];if(f.type!==`elem`)throw Error(`First child must have type "elem".`);if(e.positionType===`shift`)c=-f.elem.depth-e.positionData;else if(e.positionType===`firstBaseline`)c=-f.elem.depth;else throw Error(`Invalid positionType `+e.positionType+`.`)}return{children:e.children,depth:c}},$r=function(e,t){for(var n=Qr(e),r=n.children,i=n.depth,a=0,o=0;o<r.length;o++){var s=r[o];if(s.type===`elem`){var c=s.elem;a=Math.max(a,c.maxFontSize,c.height)}}a+=2;var l=K([`pstrut`],[]);l.style.height=F(a);for(var u=[],d=i,f=i,p=i,m=0;m<r.length;m++){var h=r[m];if(h.type===`kern`)p+=h.size;else{var g=h.elem,_=h.wrapperClasses||[],v=h.wrapperStyle||{},y=K(_,[l,g],void 0,v);y.style.top=F(-a-p-g.depth),h.marginLeft&&(y.style.marginLeft=h.marginLeft),h.marginRight&&(y.style.marginRight=h.marginRight),u.push(y),p+=g.height+g.depth}d=Math.min(d,p),f=Math.max(f,p)}var b=K([`vlist`],u);b.style.height=F(f);var x;if(d<0){var S=K([`vlist`],[K([],[])]);S.style.height=F(-d),x=[K([`vlist-r`],[b,K([`vlist-s`],[new zn(``)])]),K([`vlist-r`],[S])]}else x=[K([`vlist-r`],[b])];var C=K([`vlist-t`],x);return x.length===2&&C.classes.push(`vlist-t2`),C.height=f,C.depth=-d,C},ei=(e,t)=>{var n=K([`mspace`],[],t),r=On(e,t);return n.style.marginRight=F(r),n},ti=(e,t,n)=>{var r,i;switch(e){case`amsrm`:r=`AMS`;break;case`textrm`:r=`Main`;break;case`textsf`:r=`SansSerif`;break;case`texttt`:r=`Typewriter`;break;default:r=e}return i=t===`textbf`&&n===`textit`?`BoldItalic`:t===`textbf`?`Bold`:n===`textit`?`Italic`:`Regular`,r+`-`+i},ni={mathbf:{variant:`bold`,fontName:`Main-Bold`},mathrm:{variant:`normal`,fontName:`Main-Regular`},textit:{variant:`italic`,fontName:`Main-Italic`},mathit:{variant:`italic`,fontName:`Main-Italic`},mathnormal:{variant:`italic`,fontName:`Math-Italic`},mathsfit:{variant:`sans-serif-italic`,fontName:`SansSerif-Italic`},mathbb:{variant:`double-struck`,fontName:`AMS-Regular`},mathcal:{variant:`script`,fontName:`Caligraphic-Regular`},mathfrak:{variant:`fraktur`,fontName:`Fraktur-Regular`},mathscr:{variant:`script`,fontName:`Script-Regular`},mathsf:{variant:`sans-serif`,fontName:`SansSerif-Regular`},mathtt:{variant:`monospace`,fontName:`Typewriter-Regular`}},ri={vec:[`vec`,.471,.714],oiintSize1:[`oiintSize1`,.957,.499],oiintSize2:[`oiintSize2`,1.472,.659],oiiintSize1:[`oiiintSize1`,1.304,.499],oiiintSize2:[`oiiintSize2`,1.98,.659]},ii=function(e,t){var n=ri[e],r=n[0],i=n[1],a=n[2],o=qr([`katex-overlay`],[new Bn([new Vn(r)],{width:F(i),height:F(a),style:`width:`+F(i),viewBox:`0 0 `+1e3*i+` `+1e3*a,preserveAspectRatio:`xMinYMin`})],t);return o.height=a,o.style.height=F(a),o.style.width=F(i),o},ai={number:3,unit:`mu`},oi={number:4,unit:`mu`},si={number:5,unit:`mu`},ci={mord:{mop:ai,mbin:oi,mrel:si,minner:ai},mop:{mord:ai,mop:ai,mrel:si,minner:ai},mbin:{mord:oi,mop:oi,mopen:oi,minner:oi},mrel:{mord:si,mop:si,mopen:si,minner:si},mopen:{},mclose:{mop:ai,mbin:oi,mrel:si,minner:ai},mpunct:{mord:ai,mop:ai,mrel:si,mopen:ai,mclose:ai,mpunct:ai,minner:ai},minner:{mord:ai,mop:ai,mbin:oi,mrel:si,mopen:ai,mpunct:ai,minner:ai}},li={mord:{mop:ai},mop:{mord:ai,mop:ai},mbin:{},mrel:{},mopen:{},mclose:{mop:ai},mpunct:{},minner:{mop:ai}},ui={},di={},fi={};function q(e){for(var t=e.type,n=e.names,r=e.htmlBuilder,i=e.mathmlBuilder,a=0;a<n.length;++a)ui[n[a]]=e;t&&(r&&(di[t]=r),i&&(fi[t]=i))}function pi(e){var t=e.type,n=e.htmlBuilder,r=e.mathmlBuilder;n&&(di[t]=n),r&&(fi[t]=r)}var mi=function(e){return e.type===`ordgroup`&&e.body.length===1?e.body[0]:e},hi=function(e){return e.type===`ordgroup`?e.body:[e]},gi=new Set([`leftmost`,`mbin`,`mopen`,`mrel`,`mop`,`mpunct`]),_i=new Set([`rightmost`,`mrel`,`mclose`,`mpunct`]),vi={display:P.DISPLAY,text:P.TEXT,script:P.SCRIPT,scriptscript:P.SCRIPTSCRIPT},yi={mord:`mord`,mop:`mop`,mbin:`mbin`,mrel:`mrel`,mopen:`mopen`,mclose:`mclose`,mpunct:`mpunct`,minner:`minner`},bi=function(e,t,n,r){r===void 0&&(r=[null,null]);for(var i=[],a=0;a<e.length;a++){var o=J(e[a],t);if(o instanceof wn){var s=o.children;i.push(...s)}else i.push(o)}if(Gr(i),!n)return i;var c=t;if(e.length===1){var l=e[0];l.type===`sizing`?c=t.havingSize(l.size):l.type===`styling`&&(c=t.havingStyle(vi[l.style]))}var u=K([r[0]||`leftmost`],[],t),d=K([r[1]||`rightmost`],[],t),f=n===`root`;return xi(i,(e,t)=>{var n=t.classes[0],r=e.classes[0];n===`mbin`&&_i.has(r)?t.classes[0]=`mord`:r===`mbin`&&gi.has(n)&&(e.classes[0]=`mord`)},{node:u},d,f),xi(i,(e,t)=>{var n=wi(t),r=wi(e),i=n&&r?e.hasClass(`mtight`)?li[n]?.[r]:ci[n]?.[r]:null;if(i)return ei(i,c)},{node:u},d,f),i},xi=function(e,t,n,r,i){r&&e.push(r);for(var a=0;a<e.length;a++){var o=e[a],s=Si(o);if(s){xi(s.children,t,n,null,i);continue}var c=!o.hasClass(`mspace`);if(c){var l=t(o,n.node);l&&(n.insertAfter?n.insertAfter(l):(e.unshift(l),a++))}c?n.node=o:i&&o.hasClass(`katex-newline`)&&(n.node=K([`leftmost`])),n.insertAfter=(t=>n=>{e.splice(t+1,0,n),a++})(a)}r&&e.pop()},Si=function(e){return e instanceof wn||e instanceof In||e instanceof Fn&&e.hasClass(`enclosing`)?e:null},Ci=function(e,t){var n=Si(e);if(n){var r=n.children;if(r.length){if(t===`right`)return Ci(r[r.length-1],`right`);if(t===`left`)return Ci(r[0],`left`)}}return e},wi=function(e,t){return e?(t&&(e=Ci(e,t)),yi[e.classes[0]]||null):null},Ti=function(e,t){var n=[`nulldelimiter`].concat(e.baseSizingClasses());return K(t.concat(n))},J=function(e,t,n){if(!e)return K();if(di[e.type]){var r=di[e.type](e,t);if(n&&t.size!==n.size){r=K(t.sizingClasses(n),[r],t);var i=t.sizeMultiplier/n.sizeMultiplier;r.height*=i,r.depth*=i}return r}else throw new N(`Got group of unknown type: '`+e.type+`'`)};function Ei(e,t){var n=K([`katex-base`],e,t),r=K([`katex-strut`]);return r.style.height=F(n.height+n.depth),n.depth&&(r.style.verticalAlign=F(-n.depth)),n.children.unshift(r),n}function Di(e,t){var n=null;e.length===1&&e[0].type===`tag`&&(n=e[0].tag,e=e[0].body);var r=bi(e,t,`root`),i;r.length===2&&r[1].hasClass(`katex-tag`)&&(i=r.pop());for(var a=[],o=[],s=0;s<r.length;s++)if(o.push(r[s]),r[s].hasClass(`mbin`)||r[s].hasClass(`mrel`)||r[s].hasClass(`allowbreak`)){for(var c=!1;s<r.length-1&&r[s+1].hasClass(`mspace`)&&!r[s+1].hasClass(`katex-newline`);)s++,o.push(r[s]),r[s].hasClass(`nobreak`)&&(c=!0);c||(a.push(Ei(o,t)),o=[])}else r[s].hasClass(`katex-newline`)&&(o.pop(),o.length>0&&(a.push(Ei(o,t)),o=[]),a.push(r[s]));o.length>0&&a.push(Ei(o,t));var l;n?(l=Ei(bi(n,t,!0),t),l.classes=[`katex-tag`],a.push(l)):i&&a.push(i);var u=K([`katex-html`],a);if(u.setAttribute(`aria-hidden`,`true`),l){var d=l.children[0];d.style.height=F(u.height+u.depth),u.depth&&(d.style.verticalAlign=F(-u.depth))}return u}function Oi(e){return new wn(e)}var Y=class{constructor(e,t,n){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=n||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS(`http://www.w3.org/1998/Math/MathML`,this.type);for(var t of Object.entries(this.attributes)){var n=t[0],r=t[1];e.setAttribute(n,r)}this.classes.length>0&&(e.className=kn(this.classes));for(var i=0;i<this.children.length;i++)if(this.children[i]instanceof ki&&this.children[i+1]instanceof ki){for(var a=this.children[i].toText()+this.children[++i].toText();this.children[i+1]instanceof ki;)a+=this.children[++i].toText();e.appendChild(new ki(a).toNode())}else e.appendChild(this.children[i].toNode());return e}toMarkup(){var e=`<`+this.type;for(var t of Object.entries(this.attributes)){var n=t[0],r=t[1];e+=` `+n+`="`,e+=Nt(r),e+=`"`}this.classes.length>0&&(e+=` class ="`+Nt(kn(this.classes))+`"`),e+=`>`;for(var i=0;i<this.children.length;i++)e+=this.children[i].toMarkup();return e+=`</`+this.type+`>`,e}toText(){return this.children.map(e=>e.toText()).join(``)}},ki=class{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return Nt(this.toText())}toText(){return this.text}},Ai=class{constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character=` `:e>=.1666&&e<=.1667?this.character=` `:e>=.2222&&e<=.2223?this.character=` `:e>=.2777&&e<=.2778?this.character=` `:e>=-.05556&&e<=-.05555?this.character=` `:e>=-.1667&&e<=-.1666?this.character=` `:e>=-.2223&&e<=-.2222?this.character=` `:e>=-.2778&&e<=-.2777?this.character=` `:this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS(`http://www.w3.org/1998/Math/MathML`,`mspace`);return e.setAttribute(`width`,F(this.width)),e}toMarkup(){return this.character?`<mtext>`+this.character+`</mtext>`:`<mspace width="`+F(this.width)+`"/>`}toText(){return this.character?this.character:` `}},ji=new Set([`\\imath`,`\\jmath`]),Mi=new Set([`mrow`,`mtable`]),Ni=function(e,t,n){var r,i;return $n[t][e]&&$n[t][e].replace&&e.charCodeAt(0)!==55349&&!(Object.prototype.hasOwnProperty.call(sr,e)&&((n==null||(r=n.fontFamily)==null?void 0:r.slice(4,6))===`tt`||(n==null||(i=n.font)==null?void 0:i.slice(4,6))===`tt`))&&(e=$n[t][e].replace),new ki(e)},Pi=function(e){return e.length===1?e[0]:new Y(`mrow`,e)},Fi={mathit:`italic`,boldsymbol:e=>e.type===`textord`?`bold`:`bold-italic`,mathbf:`bold`,mathbb:`double-struck`,mathsfit:`sans-serif-italic`,mathfrak:`fraktur`,mathscr:`script`,mathcal:`script`,mathsf:`sans-serif`,mathtt:`monospace`},Ii=(e,t)=>{if(e.mode===`text`){if(t.fontFamily===`texttt`)return`monospace`;if(t.fontFamily===`textsf`)return t.fontShape===`textit`&&t.fontWeight===`textbf`?`sans-serif-bold-italic`:t.fontShape===`textit`?`sans-serif-italic`:t.fontWeight===`textbf`?`bold-sans-serif`:`sans-serif`;if(t.fontShape===`textit`&&t.fontWeight===`textbf`)return`bold-italic`;if(t.fontShape===`textit`)return`italic`;if(t.fontWeight===`textbf`)return`bold`}var n=t.font;if(!n||n===`mathnormal`)return null;var r=e.mode,i=Fi[n];if(i)return typeof i==`function`?i(e):i;var a=e.text;if(ji.has(a))return null;if($n[r][a]){var o=$n[r][a].replace;o&&(a=o)}var s=ni[n].fontName;return Xn(a,s,r)?ni[n].variant:null};function Li(e){if(!e)return!1;if(e.type===`mi`&&e.children.length===1){var t=e.children[0];return t instanceof ki&&t.text===`.`}else if(e.type===`mo`&&e.children.length===1&&e.getAttribute(`separator`)===`true`&&e.getAttribute(`lspace`)===`0em`&&e.getAttribute(`rspace`)===`0em`){var n=e.children[0];return n instanceof ki&&n.text===`,`}else return!1}var Ri=function(e,t,n){if(e.length===1){var r=Bi(e[0],t);return n&&r instanceof Y&&r.type===`mo`&&(r.setAttribute(`lspace`,`0em`),r.setAttribute(`rspace`,`0em`)),[r]}for(var i=[],a,o=0;o<e.length;o++){var s=Bi(e[o],t);if(s instanceof Y&&a instanceof Y){if(s.type===`mtext`&&a.type===`mtext`&&s.getAttribute(`mathvariant`)===a.getAttribute(`mathvariant`)){a.children.push(...s.children);continue}else if(s.type===`mn`&&a.type===`mn`){a.children.push(...s.children);continue}else if(Li(s)&&a.type===`mn`){a.children.push(...s.children);continue}else if(s.type===`mn`&&Li(a))s.children=[...a.children,...s.children],i.pop();else if((s.type===`msup`||s.type===`msub`)&&s.children.length>=1&&(a.type===`mn`||Li(a))){var c=s.children[0];c instanceof Y&&c.type===`mn`&&(c.children=[...a.children,...c.children],i.pop())}else if(a.type===`mi`&&a.children.length===1){var l=a.children[0];if(l instanceof ki&&l.text===`̸`&&(s.type===`mo`||s.type===`mi`||s.type===`mn`)){var u=s.children[0];u instanceof ki&&u.text.length>0&&(u.text=u.text.slice(0,1)+`̸`+u.text.slice(1),i.pop())}}}i.push(s),a=s}return i},zi=function(e,t,n){return Pi(Ri(e,t,n))},Bi=function(e,t){if(!e)return new Y(`mrow`);if(fi[e.type])return fi[e.type](e,t);throw new N(`Got group of unknown type: '`+e.type+`'`)};function Vi(e,t,n,r,i){var a=Ri(e,n),o=a.length===1&&a[0]instanceof Y&&Mi.has(a[0].type)?a[0]:new Y(`mrow`,a),s=new Y(`annotation`,[new ki(t)]);s.setAttribute(`encoding`,`application/x-tex`);var c=new Y(`math`,[new Y(`semantics`,[o,s])]);return c.setAttribute(`xmlns`,`http://www.w3.org/1998/Math/MathML`),r&&c.setAttribute(`display`,`block`),K([i?`katex`:`katex-mathml`],[c])}var Hi=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],Ui=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],Wi=function(e,t){return t.size<2?e:Hi[e-1][t.size-1]},Gi=class e{constructor(t){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=t.style,this.color=t.color,this.size=t.size||e.BASESIZE,this.textSize=t.textSize||this.size,this.phantom=!!t.phantom,this.font=t.font||``,this.fontFamily=t.fontFamily||``,this.fontWeight=t.fontWeight||``,this.fontShape=t.fontShape||``,this.sizeMultiplier=Ui[this.size-1],this.maxSize=t.maxSize,this.minRuleThickness=t.minRuleThickness,this._fontMetrics=void 0}extend(t){var n={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};return Object.assign(n,t),new e(n)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:Wi(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:Ui[e-1]})}havingBaseStyle(t){t||=this.style.text();var n=Wi(e.BASESIZE,t);return this.size===n&&this.textSize===e.BASESIZE&&this.style===t?this:this.extend({style:t,size:n})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:``})}withTextFontWeight(e){return this.extend({fontWeight:e,font:``})}withTextFontShape(e){return this.extend({fontShape:e,font:``})}sizingClasses(e){return e.size===this.size?[]:[`katex-sizing`,`reset-size`+e.size,`size`+this.size]}baseSizingClasses(){return this.size===e.BASESIZE?[]:[`katex-sizing`,`reset-size`+this.size,`size`+e.BASESIZE]}fontMetrics(){return this._fontMetrics||=Qn(this.size),this._fontMetrics}getColor(){return this.phantom?`transparent`:this.color}};Gi.BASESIZE=6;var Ki=function(e){return new Gi({style:e.displayMode?P.DISPLAY:P.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},qi=function(e,t){if(t.displayMode){var n=[`katex-display`];t.leqno&&n.push(`leqno`),t.fleqn&&n.push(`fleqn`),e=K(n,[e])}return e},Ji=function(e,t,n){var r=Ki(n),i;return n.output===`mathml`?Vi(e,t,r,n.displayMode,!0):(i=n.output===`html`?K([`katex`],[Di(e,r)]):K([`katex`],[Vi(e,t,r,n.displayMode,!1),Di(e,r)]),qi(i,n))},Yi=function(e,t,n){return qi(K([`katex`],[Di(e,Ki(n))]),n)},Xi={widehat:`^`,widecheck:`ˇ`,widetilde:`~`,utilde:`~`,overleftarrow:`←`,underleftarrow:`←`,xleftarrow:`←`,overrightarrow:`→`,underrightarrow:`→`,xrightarrow:`→`,underbrace:`⏟`,overbrace:`⏞`,underbracket:`⎵`,overbracket:`⎴`,overgroup:`⏠`,undergroup:`⏡`,overleftrightarrow:`↔`,underleftrightarrow:`↔`,xleftrightarrow:`↔`,Overrightarrow:`⇒`,xRightarrow:`⇒`,overleftharpoon:`↼`,xleftharpoonup:`↼`,overrightharpoon:`⇀`,xrightharpoonup:`⇀`,xLeftarrow:`⇐`,xLeftrightarrow:`⇔`,xhookleftarrow:`↩`,xhookrightarrow:`↪`,xmapsto:`↦`,xrightharpoondown:`⇁`,xleftharpoondown:`↽`,xrightleftharpoons:`⇌`,xleftrightharpoons:`⇋`,xtwoheadleftarrow:`↞`,xtwoheadrightarrow:`↠`,xlongequal:`=`,xtofrom:`⇄`,xrightleftarrows:`⇄`,xrightequilibrium:`⇌`,xleftequilibrium:`⇋`,"\\cdrightarrow":`→`,"\\cdleftarrow":`←`,"\\cdlongequal":`=`},Zi=function(e){var t=new Y(`mo`,[new ki(Xi[e.replace(/^\\/,``)])]);return t.setAttribute(`stretchy`,`true`),t},Qi={overrightarrow:[[`rightarrow`],.888,522,`xMaxYMin`],overleftarrow:[[`leftarrow`],.888,522,`xMinYMin`],underrightarrow:[[`rightarrow`],.888,522,`xMaxYMin`],underleftarrow:[[`leftarrow`],.888,522,`xMinYMin`],xrightarrow:[[`rightarrow`],1.469,522,`xMaxYMin`],"\\cdrightarrow":[[`rightarrow`],3,522,`xMaxYMin`],xleftarrow:[[`leftarrow`],1.469,522,`xMinYMin`],"\\cdleftarrow":[[`leftarrow`],3,522,`xMinYMin`],Overrightarrow:[[`doublerightarrow`],.888,560,`xMaxYMin`],xRightarrow:[[`doublerightarrow`],1.526,560,`xMaxYMin`],xLeftarrow:[[`doubleleftarrow`],1.526,560,`xMinYMin`],overleftharpoon:[[`leftharpoon`],.888,522,`xMinYMin`],xleftharpoonup:[[`leftharpoon`],.888,522,`xMinYMin`],xleftharpoondown:[[`leftharpoondown`],.888,522,`xMinYMin`],overrightharpoon:[[`rightharpoon`],.888,522,`xMaxYMin`],xrightharpoonup:[[`rightharpoon`],.888,522,`xMaxYMin`],xrightharpoondown:[[`rightharpoondown`],.888,522,`xMaxYMin`],xlongequal:[[`longequal`],.888,334,`xMinYMin`],"\\cdlongequal":[[`longequal`],3,334,`xMinYMin`],xtwoheadleftarrow:[[`twoheadleftarrow`],.888,334,`xMinYMin`],xtwoheadrightarrow:[[`twoheadrightarrow`],.888,334,`xMaxYMin`],overleftrightarrow:[[`leftarrow`,`rightarrow`],.888,522],overbrace:[[`leftbrace`,`midbrace`,`rightbrace`],1.6,548],underbrace:[[`leftbraceunder`,`midbraceunder`,`rightbraceunder`],1.6,548],underleftrightarrow:[[`leftarrow`,`rightarrow`],.888,522],xleftrightarrow:[[`leftarrow`,`rightarrow`],1.75,522],xLeftrightarrow:[[`doubleleftarrow`,`doublerightarrow`],1.75,560],xrightleftharpoons:[[`leftharpoondownplus`,`rightharpoonplus`],1.75,716],xleftrightharpoons:[[`leftharpoonplus`,`rightharpoondownplus`],1.75,716],xhookleftarrow:[[`leftarrow`,`righthook`],1.08,522],xhookrightarrow:[[`lefthook`,`rightarrow`],1.08,522],overlinesegment:[[`leftlinesegment`,`rightlinesegment`],.888,522],underlinesegment:[[`leftlinesegment`,`rightlinesegment`],.888,522],overbracket:[[`leftbracketover`,`rightbracketover`],1.6,440],underbracket:[[`leftbracketunder`,`rightbracketunder`],1.6,410],overgroup:[[`leftgroup`,`rightgroup`],.888,342],undergroup:[[`leftgroupunder`,`rightgroupunder`],.888,342],xmapsto:[[`leftmapsto`,`rightarrow`],1.5,522],xtofrom:[[`leftToFrom`,`rightToFrom`],1.75,528],xrightleftarrows:[[`baraboveleftarrow`,`rightarrowabovebar`],1.75,901],xrightequilibrium:[[`baraboveshortleftharpoon`,`rightharpoonaboveshortbar`],1.75,716],xleftequilibrium:[[`shortbaraboveleftharpoon`,`shortrightharpoonabovebar`],1.75,716]},$i=new Set([`widehat`,`widecheck`,`widetilde`,`utilde`]),ea=function(e,t){function n(){var n=4e5,r=e.label.slice(1);if($i.has(r)&&`base`in e){var i=e.base.type===`ordgroup`?e.base.body.length:1,a,o,s;if(i>5)r===`widehat`||r===`widecheck`?(a=420,n=2364,s=.42,o=r+`4`):(a=312,n=2340,s=.34,o=`tilde4`);else{var c=[1,1,2,2,3,3][i];r===`widehat`||r===`widecheck`?(n=[0,1062,2364,2364,2364][c],a=[0,239,300,360,420][c],s=[0,.24,.3,.3,.36,.42][c],o=r+c):(n=[0,600,1033,2339,2340][c],a=[0,260,286,306,312][c],s=[0,.26,.286,.3,.306,.34][c],o=`tilde`+c)}return{span:qr([],[new Bn([new Vn(o)],{width:`100%`,height:F(s),viewBox:`0 0 `+n+` `+a,preserveAspectRatio:`none`})],t),minWidth:0,height:s}}else{var l=[],u=Qi[r];if(!u)throw Error(`No SVG data for "`+r+`".`);var d=u[0],f=u[1],p=u[2],m=p/1e3,h=d.length,g,_;if(h===1){if(u.length!==4)throw Error(`Expected 4-tuple for single-path SVG data "`+r+`".`);g=[`hide-tail`],_=[u[3]]}else if(h===2)g=[`halfarrow-left`,`halfarrow-right`],_=[`xMinYMin`,`xMaxYMin`];else if(h===3)g=[`brace-left`,`brace-center`,`brace-right`],_=[`xMinYMin`,`xMidYMin`,`xMaxYMin`];else throw Error(`Correct katexImagesData or update code here to support
|
|
258
|
-
`+h+` children.`);for(var v=0;v<h;v++){var y=new Bn([new Vn(d[v])],{width:`400em`,height:F(m),viewBox:`0 0 `+n+` `+p,preserveAspectRatio:_[v]+` slice`}),b=qr([g[v]],[y],t);if(h===1)return{span:b,minWidth:f,height:m};b.style.height=F(m),l.push(b)}return{span:K([`katex-stretchy`],l,t),minWidth:f,height:m}}}var r=n(),i=r.span,a=r.minWidth,o=r.height;return i.height=o,i.style.height=F(o),a>0&&(i.style.minWidth=F(a)),i},ta=function(e,t,n,r,i){var a,o=e.height+e.depth+n+r;if(/fbox|color|angl/.test(t)){if(a=K([`katex-stretchy`,t],[],i),t===`fbox`){var s=i.color&&i.getColor();s&&(a.style.borderColor=s)}}else{var c=[];/^[bx]cancel$/.test(t)&&c.push(new Hn({x1:`0`,y1:`0`,x2:`100%`,y2:`100%`,"stroke-width":`0.046em`})),/^x?cancel$/.test(t)&&c.push(new Hn({x1:`0`,y1:`100%`,x2:`100%`,y2:`0`,"stroke-width":`0.046em`})),a=qr([],[new Bn(c,{width:`100%`,height:F(o)})],i)}return a.height=o,a.style.height=F(o),a},na=[`bin`,`close`,`inner`,`open`,`punct`,`rel`],ra=[`accent-token`,`mathord`,`op-token`,`spacing`,`textord`],ia=new Set(na),aa=new Set(ra);function oa(e){return ia.has(e)}function X(e,t){if(!e||e.type!==t)throw Error(`Expected node of type `+t+`, but got `+(e?`node of type `+e.type:String(e)));return e}function sa(e){var t=ca(e);if(!t)throw Error(`Expected node of symbol group type, but got `+(e?`node of type `+e.type:String(e)));return t}function ca(e){return e.type===`atom`||aa.has(e.type)?e:null}function la(e,t,n){var r=``;for(var i of e.body)if(i.type===`textord`)r+=i.text;else if(n&&i.type===`spacing`&&i.text===` `)r+=` `;else throw new N(t,e);return r}var ua=e=>{if(e instanceof zn)return e;if(Gn(e)&&e.children.length===1)return ua(e.children[0])},da=(e,t)=>{var n,r,i;e&&e.type===`supsub`?(r=X(e.base,`accent`),n=r.base,e.base=n,i=Wn(J(e,t)),e.base=r):(r=X(e,`accent`),n=r.base);var a=J(n,t.havingCrampedStyle()),o=r.isShifty&&It(n),s=0;o&&(s=ua(a)?.skew??0);var c=r.label===`\\c`,l=c?a.height+a.depth:Math.min(a.height,t.fontMetrics().xHeight),u;if(r.isStretchy)u=ea(r,t),u=$r({positionType:`firstBaseline`,children:[{type:`elem`,elem:a},{type:`elem`,elem:u,wrapperClasses:[`svg-align`],wrapperStyle:s>0?{width:`calc(100% - `+F(2*s)+`)`,marginLeft:F(2*s)}:void 0}]});else{var d,f;r.label===`\\vec`?(d=ii(`vec`,t),f=ri.vec[1]):(d=Ur({type:`textord`,mode:r.mode,text:r.label},t),d=Un(d),d.italic=0,f=d.width,c&&(l+=d.depth)),u=K([`accent-body`],[d]);var p=r.label===`\\textcircled`;p&&(u.classes.push(`accent-full`),l=a.height);var m=s;p||(m-=f/2),u.style.left=F(m),r.label===`\\textcircled`&&(u.style.top=`.2em`),u=$r({positionType:`firstBaseline`,children:[{type:`elem`,elem:a},{type:`kern`,size:-l},{type:`elem`,elem:u}]})}var h=K([`mord`,`katex-accent`],[u],t);return i?(i.children[0]=h,i.height=Math.max(h.height,i.height),i.classes[0]=`mord`,i):h},fa=(e,t)=>{var n=e.isStretchy?Zi(e.label):new Y(`mo`,[Ni(e.label,e.mode)]),r=new Y(`mover`,[Bi(e.base,t),n]);return r.setAttribute(`accent`,`true`),r},pa=new RegExp([`\\acute`,`\\grave`,`\\ddot`,`\\tilde`,`\\bar`,`\\breve`,`\\check`,`\\hat`,`\\vec`,`\\dot`,`\\mathring`].map(e=>`\\`+e).join(`|`));q({type:`accent`,names:[`\\acute`,`\\grave`,`\\ddot`,`\\tilde`,`\\bar`,`\\breve`,`\\check`,`\\hat`,`\\vec`,`\\dot`,`\\mathring`,`\\widecheck`,`\\widehat`,`\\widetilde`,`\\overrightarrow`,`\\overleftarrow`,`\\Overrightarrow`,`\\overleftrightarrow`,`\\overgroup`,`\\overlinesegment`,`\\overleftharpoon`,`\\overrightharpoon`],numArgs:1,handler:(e,t)=>{var n=mi(t[0]),r=!pa.test(e.funcName),i=!r||e.funcName===`\\widehat`||e.funcName===`\\widetilde`||e.funcName===`\\widecheck`;return{type:`accent`,mode:e.parser.mode,label:e.funcName,isStretchy:r,isShifty:i,base:n}},htmlBuilder:da,mathmlBuilder:fa}),q({type:`accent`,names:[`\\'`,"\\`",`\\^`,`\\~`,`\\=`,`\\u`,`\\.`,`\\"`,`\\c`,`\\r`,`\\H`,`\\v`,`\\textcircled`],numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:[`primitive`],handler:(e,t)=>{var n=t[0],r=e.parser.mode;return r===`math`&&(e.parser.settings.reportNonstrict(`mathVsTextAccents`,`LaTeX's accent `+e.funcName+` works only in text mode`),r=`text`),{type:`accent`,mode:r,label:e.funcName,isStretchy:!1,isShifty:!0,base:n}}}),q({type:`accentUnder`,names:[`\\underleftarrow`,`\\underrightarrow`,`\\underleftrightarrow`,`\\undergroup`,`\\underlinesegment`,`\\utilde`],numArgs:1,handler:(e,t)=>{var n=e.parser,r=e.funcName,i=t[0];return{type:`accentUnder`,mode:n.mode,label:r,base:i}},htmlBuilder:(e,t)=>{var n=J(e.base,t),r=ea(e,t),i=e.label===`\\utilde`?.12:0;return K([`mord`,`accentunder`],[$r({positionType:`top`,positionData:n.height,children:[{type:`elem`,elem:r,wrapperClasses:[`svg-align`]},{type:`kern`,size:i},{type:`elem`,elem:n}]})],t)},mathmlBuilder:(e,t)=>{var n=Zi(e.label),r=new Y(`munder`,[Bi(e.base,t),n]);return r.setAttribute(`accentunder`,`true`),r}});var ma=e=>{var t=new Y(`mpadded`,e?[e]:[]);return t.setAttribute(`width`,`+0.6em`),t.setAttribute(`lspace`,`0.3em`),t};q({type:`xArrow`,names:[`\\xleftarrow`,`\\xrightarrow`,`\\xLeftarrow`,`\\xRightarrow`,`\\xleftrightarrow`,`\\xLeftrightarrow`,`\\xhookleftarrow`,`\\xhookrightarrow`,`\\xmapsto`,`\\xrightharpoondown`,`\\xrightharpoonup`,`\\xleftharpoondown`,`\\xleftharpoonup`,`\\xrightleftharpoons`,`\\xleftrightharpoons`,`\\xlongequal`,`\\xtwoheadrightarrow`,`\\xtwoheadleftarrow`,`\\xtofrom`,`\\xrightleftarrows`,`\\xrightequilibrium`,`\\xleftequilibrium`,`\\\\cdrightarrow`,`\\\\cdleftarrow`,`\\\\cdlongequal`],numArgs:1,numOptionalArgs:1,handler(e,t,n){var r=e.parser,i=e.funcName;return{type:`xArrow`,mode:r.mode,label:i,body:t[0],below:n[0]}},htmlBuilder(e,t){var n=t.style,r=t.havingStyle(n.sup()),i=Zr(J(e.body,r,t),t),a=e.label.slice(0,2)===`\\x`?`x`:`cd`;i.classes.push(a+`-arrow-pad`);var o;e.below&&(r=t.havingStyle(n.sub()),o=Zr(J(e.below,r,t),t),o.classes.push(a+`-arrow-pad`));var s=ea(e,t),c=-t.fontMetrics().axisHeight+.5*s.height,l=-t.fontMetrics().axisHeight-.5*s.height-.111;(i.depth>.25||e.label===`\\xleftequilibrium`)&&(l-=i.depth);var u;if(o){var d=-t.fontMetrics().axisHeight+o.height+.5*s.height+.111;u=$r({positionType:`individualShift`,children:[{type:`elem`,elem:i,shift:l},{type:`elem`,elem:s,shift:c,wrapperClasses:[`svg-align`]},{type:`elem`,elem:o,shift:d}]})}else u=$r({positionType:`individualShift`,children:[{type:`elem`,elem:i,shift:l},{type:`elem`,elem:s,shift:c,wrapperClasses:[`svg-align`]}]});return K([`mrel`,`x-arrow`],[u],t)},mathmlBuilder(e,t){var n=Zi(e.label);n.setAttribute(`minsize`,e.label.charAt(0)===`x`?`1.75em`:`3.0em`);var r;if(e.body){var i=ma(Bi(e.body,t));r=e.below?new Y(`munderover`,[n,ma(Bi(e.below,t)),i]):new Y(`mover`,[n,i])}else e.below?r=new Y(`munder`,[n,ma(Bi(e.below,t))]):(r=ma(),r=new Y(`mover`,[n,r]));return r}});function ha(e,t){var n=bi(e.body,t,!0);return K([e.mclass],n,t)}function ga(e,t){var n,r=Ri(e.body,t);return e.mclass===`minner`?n=new Y(`mpadded`,r):e.mclass===`mord`?e.isCharacterBox?(n=r[0],n.type=`mi`):n=new Y(`mi`,r):(e.isCharacterBox?(n=r[0],n.type=`mo`):n=new Y(`mo`,r),e.mclass===`mbin`?(n.attributes.lspace=`0.22em`,n.attributes.rspace=`0.22em`):e.mclass===`mpunct`?(n.attributes.lspace=`0em`,n.attributes.rspace=`0.17em`):(e.mclass===`mopen`||e.mclass===`mclose`)&&(n.attributes.lspace=`0em`,n.attributes.rspace=`0em`)),n}q({type:`mclass`,names:[`\\mathord`,`\\mathbin`,`\\mathrel`,`\\mathopen`,`\\mathclose`,`\\mathpunct`,`\\mathinner`],numArgs:1,primitive:!0,handler(e,t){var n=e.parser,r=e.funcName,i=t[0];return{type:`mclass`,mode:n.mode,mclass:`m`+r.slice(5),body:hi(i),isCharacterBox:It(i)}},htmlBuilder:ha,mathmlBuilder:ga});var _a=e=>{var t=e.type===`ordgroup`&&e.body.length?e.body[0]:e;return t.type===`atom`&&(t.family===`bin`||t.family===`rel`)?`m`+t.family:`mord`};q({type:`mclass`,names:[`\\@binrel`],numArgs:2,handler(e,t){return{type:`mclass`,mode:e.parser.mode,mclass:_a(t[0]),body:hi(t[1]),isCharacterBox:It(t[1])}}}),q({type:`mclass`,names:[`\\stackrel`,`\\overset`,`\\underset`],numArgs:2,handler(e,t){var n=e.parser,r=e.funcName,i=t[1],a=t[0],o=r===`\\stackrel`?`mrel`:_a(i),s={type:`op`,mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:r!==`\\stackrel`,body:hi(i)},c=r===`\\underset`?{type:`supsub`,mode:a.mode,base:s,sub:a}:{type:`supsub`,mode:a.mode,base:s,sup:a};return{type:`mclass`,mode:n.mode,mclass:o,body:[c],isCharacterBox:It(c)}}}),q({type:`pmb`,names:[`\\pmb`],numArgs:1,allowedInText:!0,handler(e,t){return{type:`pmb`,mode:e.parser.mode,mclass:_a(t[0]),body:hi(t[0])}},htmlBuilder(e,t){var n=bi(e.body,t,!0),r=K([e.mclass],n,t);return r.style.textShadow=`0.02em 0.01em 0.04px`,r},mathmlBuilder(e,t){var n=new Y(`mstyle`,Ri(e.body,t));return n.setAttribute(`style`,`text-shadow: 0.02em 0.01em 0.04px`),n}});var va={">":`\\\\cdrightarrow`,"<":`\\\\cdleftarrow`,"=":`\\\\cdlongequal`,A:`\\uparrow`,V:`\\downarrow`,"|":`\\Vert`,".":`no arrow`},ya=()=>({type:`styling`,body:[],mode:`math`,style:`display`,resetFont:!0}),ba=e=>e.type===`textord`&&e.text===`@`,xa=(e,t)=>(e.type===`mathord`||e.type===`atom`)&&e.text===t;function Sa(e,t,n){var r=va[e];switch(r){case`\\\\cdrightarrow`:case`\\\\cdleftarrow`:return n.callFunction(r,[t[0]],[t[1]]);case`\\uparrow`:case`\\downarrow`:var i=n.callFunction(`\\\\cdleft`,[t[0]],[]),a={type:`atom`,text:r,mode:`math`,family:`rel`},o={type:`ordgroup`,mode:`math`,body:[i,n.callFunction(`\\Big`,[a],[]),n.callFunction(`\\\\cdright`,[t[1]],[])]};return n.callFunction(`\\\\cdparent`,[o],[]);case`\\\\cdlongequal`:return n.callFunction(`\\\\cdlongequal`,[],[]);case`\\Vert`:return n.callFunction(`\\Big`,[{type:`textord`,text:`\\Vert`,mode:`math`}],[]);default:return{type:`textord`,text:` `,mode:`math`}}}function Ca(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set(`\\cr`,`\\\\\\relax`),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,`\\\\`)),e.gullet.endGroup(),e.gullet.beginGroup();var n=e.fetch().text;if(n===`&`||n===`\\\\`)e.consume();else if(n===`\\end`){t[t.length-1].length===0&&t.pop();break}else throw new N(`Expected \\\\ or \\cr or \\end`,e.nextToken)}for(var r=[],i=[r],a=0;a<t.length;a++){for(var o=t[a],s=ya(),c=0;c<o.length;c++)if(!ba(o[c]))s.body.push(o[c]);else{r.push(s),c+=1;var l=sa(o[c]).text,u=[,,];if(u[0]={type:`ordgroup`,mode:`math`,body:[]},u[1]={type:`ordgroup`,mode:`math`,body:[]},!`=|.`.includes(l))if(`<>AV`.includes(l))for(var d=0;d<2;d++){for(var f=!0,p=c+1;p<o.length;p++){if(xa(o[p],l)){f=!1,c=p;break}if(ba(o[p]))throw new N(`Missing a `+l+` character to complete a CD arrow.`,o[p]);u[d].body.push(o[p])}if(f)throw new N(`Missing a `+l+` character to complete a CD arrow.`,o[c])}else throw new N(`Expected one of "<>AV=|." after @`,o[c]);var m={type:`styling`,body:[Sa(l,u,e)],mode:`math`,style:`display`,resetFont:!0};r.push(m),s=ya()}a%2==0?r.push(s):r.shift(),r=[],i.push(r)}return e.gullet.endGroup(),e.gullet.endGroup(),{type:`array`,mode:`math`,body:i,arraystretch:1,addJot:!0,rowGaps:[null],cols:Array(i[0].length).fill({type:`align`,align:`c`,pregap:.25,postgap:.25}),colSeparationType:`CD`,hLinesBeforeRow:Array(i.length+1).fill([])}}q({type:`cdlabel`,names:[`\\\\cdleft`,`\\\\cdright`],numArgs:1,handler(e,t){var n=e.parser,r=e.funcName;return{type:`cdlabel`,mode:n.mode,side:r.slice(4),label:t[0]}},htmlBuilder(e,t){var n=t.havingStyle(t.style.sup()),r=Zr(J(e.label,n,t),t);return r.classes.push(`cd-label-`+e.side),r.style.bottom=F(.8-r.depth),r.height=0,r.depth=0,r},mathmlBuilder(e,t){var n=new Y(`mrow`,[Bi(e.label,t)]);return n=new Y(`mpadded`,[n]),n.setAttribute(`width`,`0`),e.side===`left`&&n.setAttribute(`lspace`,`-1width`),n.setAttribute(`voffset`,`0.7em`),n=new Y(`mstyle`,[n]),n.setAttribute(`displaystyle`,`false`),n.setAttribute(`scriptlevel`,`1`),n}}),q({type:`cdlabelparent`,names:[`\\\\cdparent`],numArgs:1,handler(e,t){return{type:`cdlabelparent`,mode:e.parser.mode,fragment:t[0]}},htmlBuilder(e,t){var n=Zr(J(e.fragment,t),t);return n.classes.push(`cd-vert-arrow`),n},mathmlBuilder(e,t){return new Y(`mrow`,[Bi(e.fragment,t)])}}),q({type:`textord`,names:[`\\@char`],numArgs:1,allowedInText:!0,handler(e,t){var n=e.parser,r=la(X(t[0],`ordgroup`),`\\@char has non-numeric argument`),i=parseInt(r),a;if(isNaN(i))throw new N(`\\@char has non-numeric argument `+r);if(i<0||i>1114111)throw new N(`\\@char with invalid code point `+r);return i<=65535?a=String.fromCharCode(i):(i-=65536,a=String.fromCharCode((i>>10)+55296,(i&1023)+56320)),{type:`textord`,mode:n.mode,text:a}}}),q({type:`color`,names:[`\\textcolor`],numArgs:2,allowedInText:!0,argTypes:[`color`,`original`],handler(e,t){var n=e.parser,r=X(t[0],`color-token`).color,i=t[1];return{type:`color`,mode:n.mode,color:r,body:hi(i)}},htmlBuilder:(e,t)=>Xr(bi(e.body,t.withColor(e.color),!1)),mathmlBuilder:(e,t)=>{var n=new Y(`mstyle`,Ri(e.body,t.withColor(e.color)));return n.setAttribute(`mathcolor`,e.color),n}}),q({type:`color`,names:[`\\color`],numArgs:1,allowedInText:!0,argTypes:[`color`],handler(e,t){var n=e.parser,r=e.breakOnTokenText,i=X(t[0],`color-token`).color;n.gullet.macros.set(`\\current@color`,i);var a=n.parseExpression(!0,r);return{type:`color`,mode:n.mode,color:i,body:a}}}),q({type:`cr`,names:[`\\\\`],numArgs:0,numOptionalArgs:0,allowedInText:!0,handler(e,t,n){var r=e.parser,i=r.gullet.future().text===`[`?r.parseSizeGroup(!0):null,a=!r.settings.displayMode||!r.settings.useStrictBehavior(`newLineInDisplayMode`,`In LaTeX, \\\\ or \\newline does nothing in display mode`);return{type:`cr`,mode:r.mode,newLine:a,size:i&&X(i,`size`).value}},htmlBuilder(e,t){var n=K([`mspace`],[],t);return e.newLine&&(n.classes.push(`katex-newline`),e.size&&(n.style.marginTop=F(On(e.size,t)))),n},mathmlBuilder(e,t){var n=new Y(`mspace`);return e.newLine&&(n.setAttribute(`linebreak`,`newline`),e.size&&n.setAttribute(`height`,F(On(e.size,t)))),n}});var wa={"\\global":`\\global`,"\\long":`\\\\globallong`,"\\\\globallong":`\\\\globallong`,"\\def":`\\gdef`,"\\gdef":`\\gdef`,"\\edef":`\\xdef`,"\\xdef":`\\xdef`,"\\let":`\\\\globallet`,"\\futurelet":`\\\\globalfuture`},Ta=e=>{var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new N(`Expected a control sequence`,e);return t},Ea=e=>{var t=e.gullet.popToken();return t.text===`=`&&(t=e.gullet.popToken(),t.text===` `&&(t=e.gullet.popToken())),t},Da=(e,t,n,r)=>{var i=e.gullet.macros.get(n.text);i??=(n.noexpand=!0,{tokens:[n],numArgs:0,unexpandable:!e.gullet.isExpandable(n.text)}),e.gullet.macros.set(t,i,r)};q({type:`internal`,names:[`\\global`,`\\long`,`\\\\globallong`],numArgs:0,allowedInText:!0,handler(e){var t=e.parser,n=e.funcName;t.consumeSpaces();var r=t.fetch();if(wa[r.text])return(n===`\\global`||n===`\\\\globallong`)&&(r.text=wa[r.text]),X(t.parseFunction(),`internal`);throw new N(`Invalid token after macro prefix`,r)}}),q({type:`internal`,names:[`\\def`,`\\gdef`,`\\edef`,`\\xdef`],numArgs:0,allowedInText:!0,primitive:!0,handler(e){var t=e.parser,n=e.funcName,r=t.gullet.popToken(),i=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new N(`Expected a control sequence`,r);for(var a=0,o,s=[[]];t.gullet.future().text!==`{`;)if(r=t.gullet.popToken(),r.text===`#`){if(t.gullet.future().text===`{`){o=t.gullet.future(),s[a].push(`{`);break}if(r=t.gullet.popToken(),!/^[1-9]$/.test(r.text))throw new N(`Invalid argument number "`+r.text+`"`);if(parseInt(r.text)!==a+1)throw new N(`Argument number "`+r.text+`" out of order`);a++,s.push([])}else if(r.text===`EOF`)throw new N(`Expected a macro definition`);else s[a].push(r.text);var c=t.gullet.consumeArg().tokens;return o&&c.unshift(o),(n===`\\edef`||n===`\\xdef`)&&(c=t.gullet.expandTokens(c),c.reverse()),t.gullet.macros.set(i,{tokens:c,numArgs:a,delimiters:s},n===wa[n]),{type:`internal`,mode:t.mode}}}),q({type:`internal`,names:[`\\let`,`\\\\globallet`],numArgs:0,allowedInText:!0,primitive:!0,handler(e){var t=e.parser,n=e.funcName,r=Ta(t.gullet.popToken());return t.gullet.consumeSpaces(),Da(t,r,Ea(t),n===`\\\\globallet`),{type:`internal`,mode:t.mode}}}),q({type:`internal`,names:[`\\futurelet`,`\\\\globalfuture`],numArgs:0,allowedInText:!0,primitive:!0,handler(e){var t=e.parser,n=e.funcName,r=Ta(t.gullet.popToken()),i=t.gullet.popToken(),a=t.gullet.popToken();return Da(t,r,a,n===`\\\\globalfuture`),t.gullet.pushToken(a),t.gullet.pushToken(i),{type:`internal`,mode:t.mode}}});var Oa=function(e,t,n){var r=Xn($n.math[e]&&$n.math[e].replace||e,t,n);if(!r)throw Error(`Unsupported symbol `+e+` and font size `+t+`.`);return r},ka=function(e,t,n,r){var i=n.havingBaseStyle(t),a=K(r.concat(i.sizingClasses(n)),[e],n),o=i.sizeMultiplier/n.sizeMultiplier;return a.height*=o,a.depth*=o,a.maxFontSize=i.sizeMultiplier,a},Aa=function(e,t,n){var r=t.havingBaseStyle(n),i=(1-t.sizeMultiplier/r.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push(`delimcenter`),e.style.top=F(i),e.height-=i,e.depth+=i},ja=function(e,t,n,r,i,a){var o=ka(Br(e,`Main-Regular`,i,r),t,r,a);return n&&Aa(o,r,t),o},Ma=function(e,t,n,r){return Br(e,`Size`+t+`-Regular`,n,r)},Na=function(e,t,n,r,i,a){var o=Ma(e,t,i,r),s=ka(K([`delimsizing`,`size`+t],[o],r),P.TEXT,r,a);return n&&Aa(s,r,P.TEXT),s},Pa=function(e,t,n){return{type:`elem`,elem:K([`delimsizinginner`,t===`Size1-Regular`?`delim-size1`:`delim-size4`],[K([],[Br(e,t,n)])])}},Fa=function(e,t,n){var r=Kn[`Size4-Regular`][e.charCodeAt(0)]?Kn[`Size4-Regular`][e.charCodeAt(0)][4]:Kn[`Size1-Regular`][e.charCodeAt(0)][4],i=qr([],[new Bn([new Vn(`inner`,bn(e,Math.round(1e3*t)))],{width:F(r),height:F(t),style:`width:`+F(r),viewBox:`0 0 `+1e3*r+` `+Math.round(1e3*t),preserveAspectRatio:`xMinYMin`})],n);return i.height=t,i.style.height=F(t),i.style.width=F(r),{type:`elem`,elem:i}},Ia=.008,La={type:`kern`,size:-1*Ia},Ra=new Set([`|`,`\\lvert`,`\\rvert`,`\\vert`]),za=new Set([`\\|`,`\\lVert`,`\\rVert`,`\\Vert`]),Ba=function(e,t,n,r,i,a){var o,s,c,l,u=``,d=0;o=c=l=e,s=null;var f=`Size1-Regular`;e===`\\uparrow`?c=l=`⏐`:e===`\\Uparrow`?c=l=`‖`:e===`\\downarrow`?o=c=`⏐`:e===`\\Downarrow`?o=c=`‖`:e===`\\updownarrow`?(o=`\\uparrow`,c=`⏐`,l=`\\downarrow`):e===`\\Updownarrow`?(o=`\\Uparrow`,c=`‖`,l=`\\Downarrow`):Ra.has(e)?(c=`∣`,u=`vert`,d=333):za.has(e)?(c=`∥`,u=`doublevert`,d=556):e===`[`||e===`\\lbrack`?(o=`⎡`,c=`⎢`,l=`⎣`,f=`Size4-Regular`,u=`lbrack`,d=667):e===`]`||e===`\\rbrack`?(o=`⎤`,c=`⎥`,l=`⎦`,f=`Size4-Regular`,u=`rbrack`,d=667):e===`\\lfloor`||e===`⌊`?(c=o=`⎢`,l=`⎣`,f=`Size4-Regular`,u=`lfloor`,d=667):e===`\\lceil`||e===`⌈`?(o=`⎡`,c=l=`⎢`,f=`Size4-Regular`,u=`lceil`,d=667):e===`\\rfloor`||e===`⌋`?(c=o=`⎥`,l=`⎦`,f=`Size4-Regular`,u=`rfloor`,d=667):e===`\\rceil`||e===`⌉`?(o=`⎤`,c=l=`⎥`,f=`Size4-Regular`,u=`rceil`,d=667):e===`(`||e===`\\lparen`?(o=`⎛`,c=`⎜`,l=`⎝`,f=`Size4-Regular`,u=`lparen`,d=875):e===`)`||e===`\\rparen`?(o=`⎞`,c=`⎟`,l=`⎠`,f=`Size4-Regular`,u=`rparen`,d=875):e===`\\{`||e===`\\lbrace`?(o=`⎧`,s=`⎨`,l=`⎩`,c=`⎪`,f=`Size4-Regular`):e===`\\}`||e===`\\rbrace`?(o=`⎫`,s=`⎬`,l=`⎭`,c=`⎪`,f=`Size4-Regular`):e===`\\lgroup`||e===`⟮`?(o=`⎧`,l=`⎩`,c=`⎪`,f=`Size4-Regular`):e===`\\rgroup`||e===`⟯`?(o=`⎫`,l=`⎭`,c=`⎪`,f=`Size4-Regular`):e===`\\lmoustache`||e===`⎰`?(o=`⎧`,l=`⎭`,c=`⎪`,f=`Size4-Regular`):(e===`\\rmoustache`||e===`⎱`)&&(o=`⎫`,l=`⎩`,c=`⎪`,f=`Size4-Regular`);var p=Oa(o,f,i),m=p.height+p.depth,h=Oa(c,f,i),g=h.height+h.depth,_=Oa(l,f,i),v=_.height+_.depth,y=0,b=1;if(s!==null){var x=Oa(s,f,i);y=x.height+x.depth,b=2}var S=m+v+y,C=S+Math.max(0,Math.ceil((t-S)/(b*g)))*b*g,w=r.fontMetrics().axisHeight;n&&(w*=r.sizeMultiplier);var T=C/2-w,E=[];if(u.length>0){var D=C-m-v,ee=Math.round(C*1e3),te=Sn(u,Math.round(D*1e3)),ne=new Vn(u,te),re=F(d/1e3),ie=F(ee/1e3),O=qr([],[new Bn([ne],{width:re,height:ie,viewBox:`0 0 `+d+` `+ee})],r);O.height=ee/1e3,O.style.width=re,O.style.height=ie,E.push({type:`elem`,elem:O})}else{if(E.push(Pa(l,f,i)),E.push(La),s===null){var k=C-m-v+2*Ia;E.push(Fa(c,k,r))}else{var ae=(C-m-v-y)/2+2*Ia;E.push(Fa(c,ae,r)),E.push(La),E.push(Pa(s,f,i)),E.push(La),E.push(Fa(c,ae,r))}E.push(La),E.push(Pa(o,f,i))}var oe=r.havingBaseStyle(P.TEXT);return ka(K([`delimsizing`,`mult`],[$r({positionType:`bottom`,positionData:T,children:E})],oe),P.TEXT,r,a)},Va=80,Ha=.08,Ua=function(e,t,n,r,i){return qr([`hide-tail`],[new Bn([new Vn(e,yn(e,r,n))],{width:`400em`,height:F(t),viewBox:`0 0 400000 `+n,preserveAspectRatio:`xMinYMin slice`})],i)},Wa=function(e,t){var n=t.havingBaseSizing(),r=eo(`\\surd`,e*n.sizeMultiplier,Qa,n),i=n.sizeMultiplier,a=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),o,s,c,l,u;return r.type===`small`?(l=1e3+1e3*a+Va,e<1?i=1:e<1.4&&(i=.7),s=(1+a+Ha)/i,c=(1+a)/i,o=Ua(`sqrtMain`,s,l,a,t),o.style.minWidth=`0.853em`,u=.833/i):r.type===`large`?(l=(1e3+Va)*Ja[r.size],c=(Ja[r.size]+a)/i,s=(Ja[r.size]+a+Ha)/i,o=Ua(`sqrtSize`+r.size,s,l,a,t),o.style.minWidth=`1.02em`,u=1/i):(s=e+a+Ha,c=e+a,l=Math.floor(1e3*e+a)+Va,o=Ua(`sqrtTall`,s,l,a,t),o.style.minWidth=`0.742em`,u=1.056),o.height=c,o.style.height=F(s),{span:o,advanceWidth:u,ruleWidth:(t.fontMetrics().sqrtRuleThickness+a)*i}},Ga=new Set([`(`,`\\lparen`,`)`,`\\rparen`,`[`,`\\lbrack`,`]`,`\\rbrack`,`\\{`,`\\lbrace`,`\\}`,`\\rbrace`,`\\lfloor`,`\\rfloor`,`⌊`,`⌋`,`\\lceil`,`\\rceil`,`⌈`,`⌉`,`\\surd`]),Ka=new Set([`\\uparrow`,`\\downarrow`,`\\updownarrow`,`\\Uparrow`,`\\Downarrow`,`\\Updownarrow`,`|`,`\\|`,`\\vert`,`\\Vert`,`\\lvert`,`\\rvert`,`\\lVert`,`\\rVert`,`\\lgroup`,`\\rgroup`,`⟮`,`⟯`,`\\lmoustache`,`\\rmoustache`,`⎰`,`⎱`]),qa=new Set([`<`,`>`,`\\langle`,`\\rangle`,`/`,`\\backslash`,`\\lt`,`\\gt`]),Ja=[0,1.2,1.8,2.4,3],Ya=function(e,t,n,r,i){if(e===`<`||e===`\\lt`||e===`⟨`?e=`\\langle`:(e===`>`||e===`\\gt`||e===`⟩`)&&(e=`\\rangle`),Ga.has(e)||qa.has(e))return Na(e,t,!1,n,r,i);if(Ka.has(e))return Ba(e,Ja[t],!1,n,r,i);throw new N(`Illegal delimiter: '`+e+`'`)},Xa=[{type:`small`,style:P.SCRIPTSCRIPT},{type:`small`,style:P.SCRIPT},{type:`small`,style:P.TEXT},{type:`large`,size:1},{type:`large`,size:2},{type:`large`,size:3},{type:`large`,size:4}],Za=[{type:`small`,style:P.SCRIPTSCRIPT},{type:`small`,style:P.SCRIPT},{type:`small`,style:P.TEXT},{type:`stack`}],Qa=[{type:`small`,style:P.SCRIPTSCRIPT},{type:`small`,style:P.SCRIPT},{type:`small`,style:P.TEXT},{type:`large`,size:1},{type:`large`,size:2},{type:`large`,size:3},{type:`large`,size:4},{type:`stack`}],$a=function(e){if(e.type===`small`)return`Main-Regular`;if(e.type===`large`)return`Size`+e.size+`-Regular`;if(e.type===`stack`)return`Size4-Regular`;var t=e.type;throw Error(`Add support for delim type '`+t+`' here.`)},eo=function(e,t,n,r){for(var i=Math.min(2,3-r.style.size);i<n.length;i++){var a=n[i];if(a.type===`stack`)break;var o=Oa(e,$a(a),`math`),s=o.height+o.depth;if(a.type===`small`){var c=r.havingBaseStyle(a.style);s*=c.sizeMultiplier}if(s>t)return a}return n[n.length-1]},to=function(e,t,n,r,i,a){e===`<`||e===`\\lt`||e===`⟨`?e=`\\langle`:(e===`>`||e===`\\gt`||e===`⟩`)&&(e=`\\rangle`);var o=qa.has(e)?Xa:Ga.has(e)?Qa:Za,s=eo(e,t,o,r);return s.type===`small`?ja(e,s.style,n,r,i,a):s.type===`large`?Na(e,s.size,n,r,i,a):Ba(e,t,n,r,i,a)},no=function(e,t,n,r,i,a){var o=r.fontMetrics().axisHeight*r.sizeMultiplier,s=901,c=5/r.fontMetrics().ptPerEm,l=Math.max(t-o,n+o);return to(e,Math.max(l/500*s,2*l-c),!0,r,i,a)},ro={"\\bigl":{mclass:`mopen`,size:1},"\\Bigl":{mclass:`mopen`,size:2},"\\biggl":{mclass:`mopen`,size:3},"\\Biggl":{mclass:`mopen`,size:4},"\\bigr":{mclass:`mclose`,size:1},"\\Bigr":{mclass:`mclose`,size:2},"\\biggr":{mclass:`mclose`,size:3},"\\Biggr":{mclass:`mclose`,size:4},"\\bigm":{mclass:`mrel`,size:1},"\\Bigm":{mclass:`mrel`,size:2},"\\biggm":{mclass:`mrel`,size:3},"\\Biggm":{mclass:`mrel`,size:4},"\\big":{mclass:`mord`,size:1},"\\Big":{mclass:`mord`,size:2},"\\bigg":{mclass:`mord`,size:3},"\\Bigg":{mclass:`mord`,size:4}},io=new Set(`(,\\lparen,),\\rparen,[,\\lbrack,],\\rbrack,\\{,\\lbrace,\\},\\rbrace,\\lfloor,\\rfloor,⌊,⌋,\\lceil,\\rceil,⌈,⌉,<,>,\\langle,⟨,\\rangle,⟩,\\lt,\\gt,\\lvert,\\rvert,\\lVert,\\rVert,\\lgroup,\\rgroup,⟮,⟯,\\lmoustache,\\rmoustache,⎰,⎱,/,\\backslash,|,\\vert,\\|,\\Vert,\\uparrow,\\Uparrow,\\downarrow,\\Downarrow,\\updownarrow,\\Updownarrow,.`.split(`,`));function ao(e){return`isMiddle`in e}function oo(e,t){var n=ca(e);if(n&&io.has(n.text))return n;throw n?new N(`Invalid delimiter '`+n.text+`' after '`+t.funcName+`'`,e):new N(`Invalid delimiter type '`+e.type+`'`,e)}q({type:`delimsizing`,names:[`\\bigl`,`\\Bigl`,`\\biggl`,`\\Biggl`,`\\bigr`,`\\Bigr`,`\\biggr`,`\\Biggr`,`\\bigm`,`\\Bigm`,`\\biggm`,`\\Biggm`,`\\big`,`\\Big`,`\\bigg`,`\\Bigg`],numArgs:1,argTypes:[`primitive`],handler:(e,t)=>{var n=oo(mi(t[0]),e);return{type:`delimsizing`,mode:e.parser.mode,size:ro[e.funcName].size,mclass:ro[e.funcName].mclass,delim:n.text}},htmlBuilder:(e,t)=>e.delim===`.`?K([e.mclass]):Ya(e.delim,e.size,t,e.mode,[e.mclass]),mathmlBuilder:e=>{var t=[];e.delim!==`.`&&t.push(Ni(e.delim,e.mode));var n=new Y(`mo`,t);e.mclass===`mopen`||e.mclass===`mclose`?n.setAttribute(`fence`,`true`):n.setAttribute(`fence`,`false`),n.setAttribute(`stretchy`,`true`);var r=F(Ja[e.size]);return n.setAttribute(`minsize`,r),n.setAttribute(`maxsize`,r),n}});function so(e){if(!e.body)throw Error(`Bug: The leftright ParseNode wasn't fully parsed.`)}q({type:`leftright-right`,names:[`\\right`],numArgs:1,primitive:!0,handler:(e,t)=>{var n=e.parser.gullet.macros.get(`\\current@color`);if(n&&typeof n!=`string`)throw new N(`\\current@color set to non-string in \\right`);return{type:`leftright-right`,mode:e.parser.mode,delim:oo(t[0],e).text,color:n}}}),q({type:`leftright`,names:[`\\left`],numArgs:1,primitive:!0,handler:(e,t)=>{var n=oo(t[0],e),r=e.parser;++r.leftrightDepth;var i=r.parseExpression(!1);--r.leftrightDepth,r.expect(`\\right`,!1);var a=X(r.parseFunction(),`leftright-right`);return{type:`leftright`,mode:r.mode,body:i,left:n.text,right:a.delim,rightColor:a.color}},htmlBuilder:(e,t)=>{so(e);for(var n=bi(e.body,t,!0,[`mopen`,`mclose`]),r=0,i=0,a=!1,o=0;o<n.length;o++){var s=n[o];ao(s)?a=!0:(r=Math.max(n[o].height,r),i=Math.max(n[o].depth,i))}r*=t.sizeMultiplier,i*=t.sizeMultiplier;var c=e.left===`.`?Ti(t,[`mopen`]):no(e.left,r,i,t,e.mode,[`mopen`]);if(n.unshift(c),a)for(var l=1;l<n.length;l++){var u=n[l];if(ao(u)){var d=u.isMiddle;n[l]=no(d.delim,r,i,d.options,e.mode,[])}}var f;if(e.right===`.`)f=Ti(t,[`mclose`]);else{var p=e.rightColor?t.withColor(e.rightColor):t;f=no(e.right,r,i,p,e.mode,[`mclose`])}return n.push(f),K([`minner`],n,t)},mathmlBuilder:(e,t)=>{so(e);var n=Ri(e.body,t);if(e.left!==`.`){var r=new Y(`mo`,[Ni(e.left,e.mode)]);r.setAttribute(`fence`,`true`),n.unshift(r)}if(e.right!==`.`){var i=new Y(`mo`,[Ni(e.right,e.mode)]);i.setAttribute(`fence`,`true`),e.rightColor&&i.setAttribute(`mathcolor`,e.rightColor),n.push(i)}return Pi(n)}}),q({type:`middle`,names:[`\\middle`],numArgs:1,primitive:!0,handler:(e,t)=>{var n=oo(t[0],e);if(!e.parser.leftrightDepth)throw new N(`\\middle without preceding \\left`,n);return{type:`middle`,mode:e.parser.mode,delim:n.text}},htmlBuilder:(e,t)=>{var n;return e.delim===`.`?n=Ti(t,[]):(n=Ya(e.delim,1,t,e.mode,[]),n.isMiddle={delim:e.delim,options:t}),n},mathmlBuilder:(e,t)=>{var n=new Y(`mo`,[e.delim===`\\vert`||e.delim===`|`?Ni(`|`,`text`):Ni(e.delim,e.mode)]);return n.setAttribute(`fence`,`true`),n.setAttribute(`lspace`,`0.05em`),n.setAttribute(`rspace`,`0.05em`),n}}),q({type:`enclose`,names:[`\\colorbox`],numArgs:2,allowedInText:!0,argTypes:[`color`,`hbox`],handler(e,t,n){var r=e.parser,i=e.funcName,a=X(t[0],`color-token`).color,o=t[1];return{type:`enclose`,mode:r.mode,label:i,backgroundColor:a,body:o}},htmlBuilder:(e,t)=>{var n=Zr(J(e.body,t),t),r=e.label.slice(1),i=t.sizeMultiplier,a,o,s=It(e.body);if(r===`sout`)a=K([`katex-stretchy`,`katex-sout`]),a.height=t.fontMetrics().defaultRuleThickness/i,o=-.5*t.fontMetrics().xHeight;else if(r===`phase`){var c=On({number:.6,unit:`pt`},t),l=On({number:.35,unit:`ex`},t),u=t.havingBaseSizing();i/=u.sizeMultiplier;var d=n.height+n.depth+c+l;n.style.paddingLeft=F(d/2+c);var f=Math.floor(1e3*d*i);a=qr([`hide-tail`],[new Bn([new Vn(`phase`,_n(f))],{width:`400em`,height:F(f/1e3),viewBox:`0 0 400000 `+f,preserveAspectRatio:`xMinYMin slice`})],t),a.style.height=F(d),o=n.depth+c+l}else{/cancel/.test(r)?s||n.classes.push(`cancel-pad`):r===`angl`?n.classes.push(`anglpad`):n.classes.push(`boxpad`);var p,m,h=0;/box/.test(r)?(h=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),p=t.fontMetrics().fboxsep+(r===`colorbox`?0:h),m=p):r===`angl`?(h=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness),p=4*h,m=Math.max(0,.25-n.depth)):(p=s?.2:0,m=p),a=ta(n,r,p,m,t),/fbox|boxed|fcolorbox/.test(r)?(a.style.borderStyle=`solid`,a.style.borderWidth=F(h)):r===`angl`&&h!==.049&&(a.style.borderTopWidth=F(h),a.style.borderRightWidth=F(h)),o=n.depth+m,e.backgroundColor&&(a.style.backgroundColor=e.backgroundColor,e.borderColor&&(a.style.borderColor=e.borderColor))}var g;if(e.backgroundColor)g=$r({positionType:`individualShift`,children:[{type:`elem`,elem:a,shift:o},{type:`elem`,elem:n,shift:0}]});else{var _=/cancel|phase/.test(r)?[`svg-align`]:[];g=$r({positionType:`individualShift`,children:[{type:`elem`,elem:n,shift:0},{type:`elem`,elem:a,shift:o,wrapperClasses:_}]})}return/cancel/.test(r)&&(g.height=n.height,g.depth=n.depth),/cancel/.test(r)&&!s?K([`mord`,`cancel-lap`],[g],t):K([`mord`],[g],t)},mathmlBuilder:(e,t)=>{var n,r=new Y(e.label.includes(`colorbox`)?`mpadded`:`menclose`,[Bi(e.body,t)]);switch(e.label){case`\\cancel`:r.setAttribute(`notation`,`updiagonalstrike`);break;case`\\bcancel`:r.setAttribute(`notation`,`downdiagonalstrike`);break;case`\\phase`:r.setAttribute(`notation`,`phasorangle`);break;case`\\sout`:r.setAttribute(`notation`,`horizontalstrike`);break;case`\\fbox`:r.setAttribute(`notation`,`box`);break;case`\\angl`:r.setAttribute(`notation`,`actuarial`);break;case`\\fcolorbox`:case`\\colorbox`:if(n=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,r.setAttribute(`width`,`+`+2*n+`pt`),r.setAttribute(`height`,`+`+2*n+`pt`),r.setAttribute(`lspace`,n+`pt`),r.setAttribute(`voffset`,n+`pt`),e.label===`\\fcolorbox`){var i=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);r.setAttribute(`style`,`border: `+F(i)+` solid `+e.borderColor)}break;case`\\xcancel`:r.setAttribute(`notation`,`updiagonalstrike downdiagonalstrike`);break}return e.backgroundColor&&r.setAttribute(`mathbackground`,e.backgroundColor),r}}),q({type:`enclose`,names:[`\\fcolorbox`],numArgs:3,allowedInText:!0,argTypes:[`color`,`color`,`hbox`],handler(e,t,n){var r=e.parser,i=e.funcName,a=X(t[0],`color-token`).color,o=X(t[1],`color-token`).color,s=t[2];return{type:`enclose`,mode:r.mode,label:i,backgroundColor:o,borderColor:a,body:s}}}),q({type:`enclose`,names:[`\\fbox`],numArgs:1,argTypes:[`hbox`],allowedInText:!0,handler(e,t){return{type:`enclose`,mode:e.parser.mode,label:`\\fbox`,body:t[0]}}}),q({type:`enclose`,names:[`\\cancel`,`\\bcancel`,`\\xcancel`,`\\phase`],numArgs:1,handler(e,t){var n=e.parser,r=e.funcName,i=t[0];return{type:`enclose`,mode:n.mode,label:r,body:i}}}),q({type:`enclose`,names:[`\\sout`],numArgs:1,allowedInText:!0,handler(e,t){var n=e.parser,r=e.funcName;n.mode===`math`&&n.settings.reportNonstrict(`mathVsSout`,`LaTeX's \\sout works only in text mode`);var i=t[0];return{type:`enclose`,mode:n.mode,label:r,body:i}}}),q({type:`enclose`,names:[`\\angl`],numArgs:1,argTypes:[`hbox`],allowedInText:!1,handler(e,t){return{type:`enclose`,mode:e.parser.mode,label:`\\angl`,body:t[0]}}});var co={};function lo(e){for(var t=e.type,n=e.names,r=e.props,i=e.handler,a=e.htmlBuilder,o=e.mathmlBuilder,s={type:t,numArgs:r.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:i},c=0;c<n.length;++c)co[n[c]]=s;a&&(di[t]=a),o&&(fi[t]=o)}var uo={};function Z(e,t){uo[e]=t}var fo=class e{constructor(e,t,n){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=n}static range(t,n){return n?!t||!t.loc||!n.loc||t.loc.lexer!==n.loc.lexer?null:new e(t.loc.lexer,t.loc.start,n.loc.end):t&&t.loc}},po=class e{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=t}range(t,n){return new e(n,fo.range(this,t))}};function mo(e){var t=[];e.consumeSpaces();var n=e.fetch().text;for(n===`\\relax`&&(e.consume(),e.consumeSpaces(),n=e.fetch().text);n===`\\hline`||n===`\\hdashline`;)e.consume(),t.push(n===`\\hdashline`),e.consumeSpaces(),n=e.fetch().text;return t}var ho=e=>{if(!e.parser.settings.displayMode)throw new N(`{`+e.envName+`} can be used only in display mode.`)},go=new Set([`gather`,`gather*`]);function _o(e){if(!e.includes(`ed`))return!e.includes(`*`)}function vo(e,t,n){var r=t.hskipBeforeAndAfter,i=t.addJot,a=t.cols,o=t.arraystretch,s=t.colSeparationType,c=t.autoTag,l=t.singleRow,u=t.emptySingleRow,d=t.maxNumCols,f=t.leqno;if(e.gullet.beginGroup(),l||e.gullet.macros.set(`\\cr`,`\\\\\\relax`),!o){var p=e.gullet.expandMacroAsText(`\\arraystretch`);if(p==null)o=1;else if(o=parseFloat(p),!o||o<0)throw new N(`Invalid \\arraystretch: `+p)}e.gullet.beginGroup();var m=[],h=[m],g=[],_=[],v=c==null?void 0:[];function y(){c&&e.gullet.macros.set(`\\@eqnsw`,`1`,!0)}function b(){v&&(e.gullet.macros.get(`\\df@tag`)?(v.push(e.subparse([new po(`\\df@tag`)])),e.gullet.macros.set(`\\df@tag`,void 0,!0)):v.push(!!c&&e.gullet.macros.get(`\\@eqnsw`)===`1`))}for(y(),_.push(mo(e));;){var x=e.parseExpression(!1,l?`\\end`:`\\\\`);e.gullet.endGroup(),e.gullet.beginGroup();var S={type:`ordgroup`,mode:e.mode,body:x};n&&(S={type:`styling`,mode:e.mode,style:n,resetFont:!0,body:[S]}),m.push(S);var C=e.fetch().text;if(C===`&`){if(d&&m.length===d){if(l||s)throw new N(`Too many tab characters: &`,e.nextToken);e.settings.reportNonstrict(`textEnv`,`Too few columns specified in the {array} column argument.`)}e.consume()}else if(C===`\\end`){b(),m.length===1&&S.type===`styling`&&S.body.length===1&&S.body[0].type===`ordgroup`&&S.body[0].body.length===0&&(h.length>1||!u)&&!Array.isArray(v?.[v.length-1])&&h.pop(),_.length<h.length+1&&_.push([]);break}else if(C===`\\\\`){e.consume();var w=void 0;e.gullet.future().text!==` `&&(w=e.parseSizeGroup(!0)),g.push(w?w.value:null),b(),_.push(mo(e)),m=[],h.push(m),y()}else throw new N(`Expected & or \\\\ or \\cr or \\end`,e.nextToken)}return e.gullet.endGroup(),e.gullet.endGroup(),{type:`array`,mode:e.mode,addJot:i,arraystretch:o,body:h,cols:a,rowGaps:g,hskipBeforeAndAfter:r,hLinesBeforeRow:_,colSeparationType:s,tags:v,leqno:f}}function yo(e){return e.slice(0,1)===`d`?`display`:`text`}var bo=function(e,t){var n,r,i=e.body.length,a=e.hLinesBeforeRow,o=0,s=Array(i),c=[],l=Math.max(t.fontMetrics().arrayRuleWidth,t.minRuleThickness),u=1/t.fontMetrics().ptPerEm,d=5*u;e.colSeparationType&&e.colSeparationType===`small`&&(d=.2778*(t.havingStyle(P.SCRIPT).sizeMultiplier/t.sizeMultiplier));var f=e.colSeparationType===`CD`?On({number:3,unit:`ex`},t):12*u,p=3*u,m=e.arraystretch*f,h=.7*m,g=.3*m,_=0;function v(e){for(var t=0;t<e.length;++t)t>0&&(_+=.25),c.push({pos:_,isDashed:e[t]})}for(v(a[0]),n=0;n<e.body.length;++n){var y=e.body[n],b=h,x=g;o<y.length&&(o=y.length);var S={cells:Array(y.length),height:0,depth:0,pos:0};for(r=0;r<y.length;++r){var C=J(y[r],t);x<C.depth&&(x=C.depth),b<C.height&&(b=C.height),S.cells[r]=C}var w=e.rowGaps[n],T=0;w&&(T=On(w,t),T>0&&(T+=g,x<T&&(x=T),T=0)),e.addJot&&n<e.body.length-1&&(x+=p),S.height=b,S.depth=x,_+=b,S.pos=_,_+=x+T,s[n]=S,v(a[n+1])}var E=_/2+t.fontMetrics().axisHeight,D=e.cols||[],ee=[],te,ne,re=[];if(e.tags&&e.tags.some(e=>e))for(n=0;n<i;++n){var ie=s[n],O=ie.pos-E,k=e.tags[n],ae=void 0;ae=k===!0?K([`eqn-num`],[],t):k===!1?K([],[],t):K([],bi(k,t,!0),t),ae.depth=ie.depth,ae.height=ie.height,re.push({type:`elem`,elem:ae,shift:O})}for(r=0,ne=0;r<o||ne<D.length;++r,++ne){for(var oe=D[ne],A=!0;(se=oe)?.type===`separator`;){var se;if(A||(te=K([`arraycolsep`],[]),te.style.width=F(t.fontMetrics().doubleRuleSep),ee.push(te)),oe.separator===`|`||oe.separator===`:`){var ce=oe.separator===`|`?`solid`:`dashed`,le=K([`vertical-separator`],[],t);le.style.height=F(_),le.style.borderRightWidth=F(l),le.style.borderRightStyle=ce,le.style.margin=`0 `+F(-l/2);var ue=_-E;ue&&(le.style.verticalAlign=F(-ue)),ee.push(le)}else throw new N(`Invalid separator type: `+oe.separator);ne++,oe=D[ne],A=!1}if(!(r>=o)){var de=void 0;(r>0||e.hskipBeforeAndAfter)&&(de=oe?.pregap??d,de!==0&&(te=K([`arraycolsep`],[]),te.style.width=F(de),ee.push(te)));var fe=[];for(n=0;n<i;++n){var pe=s[n],me=pe.cells[r];if(me){var he=pe.pos-E;me.depth=pe.depth,me.height=pe.height,fe.push({type:`elem`,elem:me,shift:he})}}var ge=$r({positionType:`individualShift`,children:fe}),_e=K([`col-align-`+(oe?.align||`c`)],[ge]);ee.push(_e),(r<o-1||e.hskipBeforeAndAfter)&&(de=oe?.postgap??d,de!==0&&(te=K([`arraycolsep`],[]),te.style.width=F(de),ee.push(te)))}}var ve=K([`mtable`],ee);if(c.length>0){for(var ye=Jr(`katex-hline`,t,l),be=Jr(`katex-hdashline`,t,l),xe=[{type:`elem`,elem:ve,shift:0}];c.length>0;){var Se=c.pop(),Ce=Se.pos-E;Se.isDashed?xe.push({type:`elem`,elem:be,shift:Ce}):xe.push({type:`elem`,elem:ye,shift:Ce})}ve=$r({positionType:`individualShift`,children:xe})}if(re.length===0)return K([`mord`],[ve],t);var we=K([`katex-tag`],[$r({positionType:`individualShift`,children:re})],t);return Xr([ve,we])},xo={c:`center `,l:`left `,r:`right `},So=function(e,t){for(var n=[],r=new Y(`mtd`,[],[`mtr-glue`]),i=new Y(`mtd`,[],[`mml-eqn-num`]),a=0;a<e.body.length;a++){for(var o=e.body[a],s=[],c=0;c<o.length;c++)s.push(new Y(`mtd`,[Bi(o[c],t)]));e.tags&&e.tags[a]&&(s.unshift(r),s.push(r),e.leqno?s.unshift(i):s.push(i)),n.push(new Y(`mtr`,s))}var l=new Y(`mtable`,n),u=e.arraystretch===.5?.1:.16+e.arraystretch-1+(e.addJot?.09:0);l.setAttribute(`rowspacing`,F(u));var d=``,f=``;if(e.cols&&e.cols.length>0){var p=e.cols,m=``,h=!1,g=0,_=p.length;p[0].type===`separator`&&(d+=`top `,g=1),p[p.length-1].type===`separator`&&(d+=`bottom `,--_);for(var v=g;v<_;v++){var y=p[v];y.type===`align`?(f+=xo[y.align],h&&(m+=`none `),h=!0):y.type===`separator`&&(h&&=(m+=y.separator===`|`?`solid `:`dashed `,!1))}l.setAttribute(`columnalign`,f.trim()),/[sd]/.test(m)&&l.setAttribute(`columnlines`,m.trim())}if(e.colSeparationType===`align`){for(var b=e.cols||[],x=``,S=1;S<b.length;S++)x+=S%2?`0em `:`1em `;l.setAttribute(`columnspacing`,x.trim())}else e.colSeparationType===`alignat`||e.colSeparationType===`gather`?l.setAttribute(`columnspacing`,`0em`):e.colSeparationType===`small`?l.setAttribute(`columnspacing`,`0.2778em`):e.colSeparationType===`CD`?l.setAttribute(`columnspacing`,`0.5em`):l.setAttribute(`columnspacing`,`1em`);var C=``,w=e.hLinesBeforeRow;d+=w[0].length>0?`left `:``,d+=w[w.length-1].length>0?`right `:``;for(var T=1;T<w.length-1;T++)C+=w[T].length===0?`none `:w[T][0]?`dashed `:`solid `;return/[sd]/.test(C)&&l.setAttribute(`rowlines`,C.trim()),d!==``&&(l=new Y(`menclose`,[l]),l.setAttribute(`notation`,d.trim())),e.arraystretch&&e.arraystretch<1&&(l=new Y(`mstyle`,[l]),l.setAttribute(`scriptlevel`,`1`)),l},Co=function(e,t){e.envName.includes(`ed`)||ho(e);var n=[],r=e.envName===`split`,i=vo(e.parser,{cols:n,addJot:!0,autoTag:r?void 0:_o(e.envName),emptySingleRow:!0,colSeparationType:e.envName.includes(`at`)?`alignat`:`align`,maxNumCols:r?2:void 0,leqno:e.parser.settings.leqno},`display`),a=0,o=0,s={type:`ordgroup`,mode:e.mode,body:[]};if(t[0]&&t[0].type===`ordgroup`){var c=`Number of columns should be a positive integer`,l=la(t[0],c);if(!/^[0-9]+$/.test(l)||Number(l)<1)throw new N(c,t[0]);a=Number(l),o=a*2}var u=!o;i.body.forEach(function(e){for(var t=1;t<e.length;t+=2)X(X(e[t],`styling`).body[0],`ordgroup`).body.unshift(s);if(u)o<e.length&&(o=e.length);else{var n=e.length/2;if(a<n)throw new N(`Too many math in a row: `+(`expected `+a+`, but got `+n),e[0])}});for(var d=0;d<o;++d){var f=`r`,p=0;d%2==1?f=`l`:d>0&&u&&(p=1),n[d]={type:`align`,align:f,pregap:p,postgap:0}}return i.colSeparationType=u?`align`:`alignat`,i};lo({type:`array`,names:[`array`,`darray`],props:{numArgs:1},handler(e,t){var n=(ca(t[0])?[t[0]]:X(t[0],`ordgroup`).body).map(function(e){var t=sa(e).text;if(`lcr`.includes(t))return{type:`align`,align:t};if(t===`|`)return{type:`separator`,separator:`|`};if(t===`:`)return{type:`separator`,separator:`:`};throw new N(`Unknown column alignment: `+t,e)}),r={cols:n,hskipBeforeAndAfter:!0,maxNumCols:n.length};return vo(e.parser,r,yo(e.envName))},htmlBuilder:bo,mathmlBuilder:So}),lo({type:`array`,names:[`matrix`,`pmatrix`,`bmatrix`,`Bmatrix`,`vmatrix`,`Vmatrix`,`matrix*`,`pmatrix*`,`bmatrix*`,`Bmatrix*`,`vmatrix*`,`Vmatrix*`],props:{numArgs:0},handler(e){var t={matrix:null,pmatrix:[`(`,`)`],bmatrix:[`[`,`]`],Bmatrix:[`\\{`,`\\}`],vmatrix:[`|`,`|`],Vmatrix:[`\\Vert`,`\\Vert`]}[e.envName.replace(`*`,``)],n=`c`,r={hskipBeforeAndAfter:!1,cols:[{type:`align`,align:n}]};if(e.envName.charAt(e.envName.length-1)===`*`){var i=e.parser;if(i.consumeSpaces(),i.fetch().text===`[`){if(i.consume(),i.consumeSpaces(),n=i.fetch().text,!`lcr`.includes(n))throw new N(`Expected l or c or r`,i.nextToken);i.consume(),i.consumeSpaces(),i.expect(`]`),i.consume(),r.cols=[{type:`align`,align:n}]}}var a=vo(e.parser,r,yo(e.envName)),o=Math.max(0,...a.body.map(e=>e.length));return a.cols=Array(o).fill({type:`align`,align:n}),t?{type:`leftright`,mode:e.mode,body:[a],left:t[0],right:t[1],rightColor:void 0}:a},htmlBuilder:bo,mathmlBuilder:So}),lo({type:`array`,names:[`smallmatrix`],props:{numArgs:0},handler(e){var t=vo(e.parser,{arraystretch:.5},`script`);return t.colSeparationType=`small`,t},htmlBuilder:bo,mathmlBuilder:So}),lo({type:`array`,names:[`subarray`],props:{numArgs:1},handler(e,t){var n=(ca(t[0])?[t[0]]:X(t[0],`ordgroup`).body).map(function(e){var t=sa(e).text;if(`lc`.includes(t))return{type:`align`,align:t};throw new N(`Unknown column alignment: `+t,e)});if(n.length>1)throw new N(`{subarray} can contain only one column`);var r={cols:n,hskipBeforeAndAfter:!1,arraystretch:.5},i=vo(e.parser,r,`script`);if(i.body.length>0&&i.body[0].length>1)throw new N(`{subarray} can contain only one column`);return i},htmlBuilder:bo,mathmlBuilder:So}),lo({type:`array`,names:[`cases`,`dcases`,`rcases`,`drcases`],props:{numArgs:0},handler(e){var t=vo(e.parser,{arraystretch:1.2,cols:[{type:`align`,align:`l`,pregap:0,postgap:1},{type:`align`,align:`l`,pregap:0,postgap:0}]},yo(e.envName));return{type:`leftright`,mode:e.mode,body:[t],left:e.envName.includes(`r`)?`.`:`\\{`,right:e.envName.includes(`r`)?`\\}`:`.`,rightColor:void 0}},htmlBuilder:bo,mathmlBuilder:So}),lo({type:`array`,names:[`align`,`align*`,`aligned`,`split`],props:{numArgs:0},handler:Co,htmlBuilder:bo,mathmlBuilder:So}),lo({type:`array`,names:[`gathered`,`gather`,`gather*`],props:{numArgs:0},handler(e){go.has(e.envName)&&ho(e);var t={cols:[{type:`align`,align:`c`}],addJot:!0,colSeparationType:`gather`,autoTag:_o(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return vo(e.parser,t,`display`)},htmlBuilder:bo,mathmlBuilder:So}),lo({type:`array`,names:[`alignat`,`alignat*`,`alignedat`],props:{numArgs:1},handler:Co,htmlBuilder:bo,mathmlBuilder:So}),lo({type:`array`,names:[`equation`,`equation*`],props:{numArgs:0},handler(e){ho(e);var t={autoTag:_o(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return vo(e.parser,t,`display`)},htmlBuilder:bo,mathmlBuilder:So}),lo({type:`array`,names:[`CD`],props:{numArgs:0},handler(e){return ho(e),Ca(e.parser)},htmlBuilder:bo,mathmlBuilder:So}),Z(`\\nonumber`,`\\gdef\\@eqnsw{0}`),Z(`\\notag`,`\\nonumber`),q({type:`text`,names:[`\\hline`,`\\hdashline`],numArgs:0,allowedInText:!0,allowedInMath:!0,handler(e,t){throw new N(e.funcName+` valid only within array environment`)}});var wo=co;q({type:`environment`,names:[`\\begin`,`\\end`],numArgs:1,argTypes:[`text`],handler(e,t){var n=e.parser,r=e.funcName,i=t[0];if(i.type!==`ordgroup`)throw new N(`Invalid environment name`,i);var a=la(i,`Environment name should contain only text characters and spaces`,!0);if(r===`\\begin`){if(!Object.prototype.hasOwnProperty.call(wo,a))throw new N(`No such environment: `+a,i);var o=wo[a],s=n.parseArguments(`\\begin{`+a+`}`,o),c=s.args,l=s.optArgs,u={mode:n.mode,envName:a,parser:n},d=o.handler(u,c,l);n.expect(`\\end`,!1);var f=n.nextToken,p=X(n.parseFunction(),`environment`);if(p.name!==a)throw new N(`Mismatch: \\begin{`+a+`} matched by \\end{`+p.name+`}`,f);return d}return{type:`environment`,mode:n.mode,name:a,nameGroup:i}}});var To=(e,t)=>{var n=e.font,r=t.withFont(n);return J(e.body,r)},Eo=(e,t)=>{var n=e.font,r=t.withFont(n);return Bi(e.body,r)},Do={"\\Bbb":`\\mathbb`,"\\bold":`\\mathbf`,"\\frak":`\\mathfrak`};q({type:`font`,names:[`\\mathrm`,`\\mathit`,`\\mathbf`,`\\mathnormal`,`\\mathsfit`,`\\mathbb`,`\\mathcal`,`\\mathfrak`,`\\mathscr`,`\\mathsf`,`\\mathtt`,`\\Bbb`,`\\bold`,`\\frak`],numArgs:1,allowedInArgument:!0,handler:(e,t)=>{var n=e.parser,r=e.funcName,i=mi(t[0]),a=r in Do?Do[r]:r;return{type:`font`,mode:n.mode,font:a.slice(1),body:i}},htmlBuilder:To,mathmlBuilder:Eo}),q({type:`mclass`,names:[`\\boldsymbol`,`\\bm`],numArgs:1,handler:(e,t)=>{var n=e.parser,r=t[0];return{type:`mclass`,mode:n.mode,mclass:_a(r),body:[{type:`font`,mode:n.mode,font:`boldsymbol`,body:r}],isCharacterBox:It(r)}}}),q({type:`font`,names:[`\\rm`,`\\sf`,`\\tt`,`\\bf`,`\\it`,`\\cal`],numArgs:0,allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=e.funcName,i=e.breakOnTokenText,a=n.mode,o=n.parseExpression(!0,i);return{type:`font`,mode:a,font:`math`+r.slice(1),body:{type:`ordgroup`,mode:n.mode,body:o}}}});var Oo=(e,t)=>{var n=t.style,r=n.fracNum(),i=n.fracDen(),a=t.havingStyle(r),o=J(e.numer,a,t);if(e.continued){var s=8.5/t.fontMetrics().ptPerEm,c=3.5/t.fontMetrics().ptPerEm;o.height=o.height<s?s:o.height,o.depth=o.depth<c?c:o.depth}a=t.havingStyle(i);var l=J(e.denom,a,t),u,d,f;e.hasBarLine?(e.barSize?(d=On(e.barSize,t),u=Jr(`frac-line`,t,d)):u=Jr(`frac-line`,t),d=u.height,f=u.height):(u=null,d=0,f=t.fontMetrics().defaultRuleThickness);var p,m,h;n.size===P.DISPLAY.size?(p=t.fontMetrics().num1,m=d>0?3*f:7*f,h=t.fontMetrics().denom1):(d>0?(p=t.fontMetrics().num2,m=f):(p=t.fontMetrics().num3,m=3*f),h=t.fontMetrics().denom2);var g;if(u){var _=t.fontMetrics().axisHeight;p-o.depth-(_+.5*d)<m&&(p+=m-(p-o.depth-(_+.5*d))),_-.5*d-(l.height-h)<m&&(h+=m-(_-.5*d-(l.height-h)));var v=-(_-.5*d);g=$r({positionType:`individualShift`,children:[{type:`elem`,elem:l,shift:h},{type:`elem`,elem:u,shift:v},{type:`elem`,elem:o,shift:-p}]})}else{var y=p-o.depth-(l.height-h);y<m&&(p+=.5*(m-y),h+=.5*(m-y)),g=$r({positionType:`individualShift`,children:[{type:`elem`,elem:l,shift:h},{type:`elem`,elem:o,shift:-p}]})}a=t.havingStyle(n),g.height*=a.sizeMultiplier/t.sizeMultiplier,g.depth*=a.sizeMultiplier/t.sizeMultiplier;var b=n.size===P.DISPLAY.size?t.fontMetrics().delim1:n.size===P.SCRIPTSCRIPT.size?t.havingStyle(P.SCRIPT).fontMetrics().delim2:t.fontMetrics().delim2,x=e.leftDelim==null?Ti(t,[`mopen`]):to(e.leftDelim,b,!0,t.havingStyle(n),e.mode,[`mopen`]),S=e.continued?K([]):e.rightDelim==null?Ti(t,[`mclose`]):to(e.rightDelim,b,!0,t.havingStyle(n),e.mode,[`mclose`]);return K([`mord`].concat(a.sizingClasses(t)),[x,K([`mfrac`],[g]),S],t)},ko=(e,t)=>{var n=new Y(`mfrac`,[Bi(e.numer,t),Bi(e.denom,t)]);if(!e.hasBarLine)n.setAttribute(`linethickness`,`0px`);else if(e.barSize){var r=On(e.barSize,t);n.setAttribute(`linethickness`,F(r))}if(e.leftDelim!=null||e.rightDelim!=null){var i=[];if(e.leftDelim!=null){var a=new Y(`mo`,[new ki(e.leftDelim.replace(`\\`,``))]);a.setAttribute(`fence`,`true`),i.push(a)}if(i.push(n),e.rightDelim!=null){var o=new Y(`mo`,[new ki(e.rightDelim.replace(`\\`,``))]);o.setAttribute(`fence`,`true`),i.push(o)}return Pi(i)}return n},Ao=(e,t)=>t?{type:`styling`,mode:e.mode,style:t,body:[e]}:e;q({type:`genfrac`,names:[`\\cfrac`,`\\dfrac`,`\\frac`,`\\tfrac`,`\\dbinom`,`\\binom`,`\\tbinom`,`\\\\atopfrac`,`\\\\bracefrac`,`\\\\brackfrac`],numArgs:2,allowedInArgument:!0,handler:(e,t)=>{var n=e.parser,r=e.funcName,i=t[0],a=t[1],o,s=null,c=null;switch(r){case`\\cfrac`:case`\\dfrac`:case`\\frac`:case`\\tfrac`:o=!0;break;case`\\\\atopfrac`:o=!1;break;case`\\dbinom`:case`\\binom`:case`\\tbinom`:o=!1,s=`(`,c=`)`;break;case`\\\\bracefrac`:o=!1,s=`\\{`,c=`\\}`;break;case`\\\\brackfrac`:o=!1,s=`[`,c=`]`;break;default:throw Error(`Unrecognized genfrac command`)}var l=r===`\\cfrac`,u=null;return l||r.startsWith(`\\d`)?u=`display`:r.startsWith(`\\t`)&&(u=`text`),Ao({type:`genfrac`,mode:n.mode,numer:i,denom:a,continued:l,hasBarLine:o,leftDelim:s,rightDelim:c,barSize:null},u)},htmlBuilder:Oo,mathmlBuilder:ko}),q({type:`infix`,names:[`\\over`,`\\choose`,`\\atop`,`\\brace`,`\\brack`],numArgs:0,infix:!0,handler(e){var t=e.parser,n=e.funcName,r=e.token,i;switch(n){case`\\over`:i=`\\frac`;break;case`\\choose`:i=`\\binom`;break;case`\\atop`:i=`\\\\atopfrac`;break;case`\\brace`:i=`\\\\bracefrac`;break;case`\\brack`:i=`\\\\brackfrac`;break;default:throw Error(`Unrecognized infix genfrac command`)}return{type:`infix`,mode:t.mode,replaceWith:i,token:r}}});var jo=[`display`,`text`,`script`,`scriptscript`],Mo=function(e){var t=null;return e.length>0&&(t=e,t=t===`.`?null:t),t};q({type:`genfrac`,names:[`\\genfrac`],numArgs:6,allowedInArgument:!0,argTypes:[`math`,`math`,`size`,`text`,`math`,`math`],handler(e,t){var n=e.parser,r=t[4],i=t[5],a=mi(t[0]),o=a.type===`atom`&&a.family===`open`?Mo(a.text):null,s=mi(t[1]),c=s.type===`atom`&&s.family===`close`?Mo(s.text):null,l=X(t[2],`size`),u,d=null;l.isBlank?u=!0:(d=l.value,u=d.number>0);var f=null,p=t[3];if(p.type===`ordgroup`){if(p.body.length>0){var m=X(p.body[0],`textord`);f=jo[Number(m.text)]}}else p=X(p,`textord`),f=jo[Number(p.text)];return Ao({type:`genfrac`,mode:n.mode,numer:r,denom:i,continued:!1,hasBarLine:u,barSize:d,leftDelim:o,rightDelim:c},f)}}),q({type:`infix`,names:[`\\above`],numArgs:1,argTypes:[`size`],infix:!0,handler(e,t){var n=e.parser;e.funcName;var r=e.token;return{type:`infix`,mode:n.mode,replaceWith:`\\\\abovefrac`,size:X(t[0],`size`).value,token:r}}}),q({type:`genfrac`,names:[`\\\\abovefrac`],numArgs:3,argTypes:[`math`,`size`,`math`],handler:(e,t)=>{var n=e.parser;e.funcName;var r=t[0],i=X(t[1],`infix`).size;if(!i)throw Error(`\\\\abovefrac expected size, but got `+String(i));var a=t[2],o=i.number>0;return{type:`genfrac`,mode:n.mode,numer:r,denom:a,continued:!1,hasBarLine:o,barSize:i,leftDelim:null,rightDelim:null}}});var No=(e,t)=>{var n=t.style,r,i;e.type===`supsub`?(r=e.sup?J(e.sup,t.havingStyle(n.sup()),t):J(e.sub,t.havingStyle(n.sub()),t),i=X(e.base,`horizBrace`)):i=X(e,`horizBrace`);var a=J(i.base,t.havingBaseStyle(P.DISPLAY)),o=ea(i,t),s=i.isOver?$r({positionType:`firstBaseline`,children:[{type:`elem`,elem:a},{type:`kern`,size:.1},{type:`elem`,elem:o,wrapperClasses:[`svg-align`]}]}):$r({positionType:`bottom`,positionData:a.depth+.1+o.height,children:[{type:`elem`,elem:o,wrapperClasses:[`svg-align`]},{type:`kern`,size:.1},{type:`elem`,elem:a}]});if(r){var c=K([`minner`,i.isOver?`mover`:`munder`],[s],t);s=i.isOver?$r({positionType:`firstBaseline`,children:[{type:`elem`,elem:c},{type:`kern`,size:.2},{type:`elem`,elem:r}]}):$r({positionType:`bottom`,positionData:c.depth+.2+r.height+r.depth,children:[{type:`elem`,elem:r},{type:`kern`,size:.2},{type:`elem`,elem:c}]})}return K([`minner`,i.isOver?`mover`:`munder`],[s],t)};q({type:`horizBrace`,names:[`\\overbrace`,`\\underbrace`,`\\overbracket`,`\\underbracket`],numArgs:1,handler(e,t){var n=e.parser,r=e.funcName;return{type:`horizBrace`,mode:n.mode,label:r,isOver:r.includes(`\\over`),base:t[0]}},htmlBuilder:No,mathmlBuilder:(e,t)=>{var n=Zi(e.label);return new Y(e.isOver?`mover`:`munder`,[Bi(e.base,t),n])}}),q({type:`href`,names:[`\\href`],numArgs:2,argTypes:[`url`,`original`],allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=t[1],i=X(t[0],`url`).url;return n.settings.isTrusted({command:`\\href`,url:i})?{type:`href`,mode:n.mode,href:i,body:hi(r)}:n.formatUnsupportedCmd(`\\href`)},htmlBuilder:(e,t)=>{var n=bi(e.body,t,!1);return Yr(e.href,[],n,t)},mathmlBuilder:(e,t)=>{var n=zi(e.body,t);return n instanceof Y||(n=new Y(`mrow`,[n])),n.setAttribute(`href`,e.href),n}}),q({type:`href`,names:[`\\url`],numArgs:1,argTypes:[`url`],allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=X(t[0],`url`).url;if(!n.settings.isTrusted({command:`\\url`,url:r}))return n.formatUnsupportedCmd(`\\url`);for(var i=[],a=0;a<r.length;a++){var o=r[a];o===`~`&&(o=`\\textasciitilde`),i.push({type:`textord`,mode:`text`,text:o})}var s={type:`text`,mode:n.mode,font:`\\texttt`,body:i};return{type:`href`,mode:n.mode,href:r,body:hi(s)}}}),q({type:`hbox`,names:[`\\hbox`],numArgs:1,argTypes:[`text`],allowedInText:!0,primitive:!0,handler(e,t){return{type:`hbox`,mode:e.parser.mode,body:hi(t[0])}},htmlBuilder(e,t){return Xr(bi(e.body,t.withFont(``),!1))},mathmlBuilder(e,t){return new Y(`mrow`,Ri(e.body,t.withFont(``)))}}),q({type:`html`,names:[`\\htmlClass`,`\\htmlId`,`\\htmlStyle`,`\\htmlData`],numArgs:2,argTypes:[`raw`,`original`],allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=e.funcName;e.token;var i=X(t[0],`raw`).string,a=t[1];n.settings.strict&&n.settings.reportNonstrict(`htmlExtension`,`HTML extension is disabled on strict mode`);var o,s={};switch(r){case`\\htmlClass`:s.class=i,o={command:`\\htmlClass`,class:i};break;case`\\htmlId`:s.id=i,o={command:`\\htmlId`,id:i};break;case`\\htmlStyle`:s.style=i,o={command:`\\htmlStyle`,style:i};break;case`\\htmlData`:for(var c=`{,}`,l=[],u=``,d=0;d<i.length;d++)i.startsWith(c,d)?(u+=`,`,d+=c.length-1):i[d]===`,`?(l.push(u),u=``):u+=i[d];l.push(u);for(var f=0;f<l.length;f++){var p=l[f],m=p.indexOf(`=`);if(m<0)throw new N(`\\htmlData key/value '`+p+`' missing equals sign`);var h=p.slice(0,m),g=p.slice(m+1);s[`data-`+h.trim()]=g}o={command:`\\htmlData`,attributes:s};break;default:throw Error(`Unrecognized html command`)}return n.settings.isTrusted(o)?{type:`html`,mode:n.mode,attributes:s,body:hi(a)}:n.formatUnsupportedCmd(r)},htmlBuilder:(e,t)=>{var n=bi(e.body,t,!1),r=[`enclosing`];e.attributes.class&&r.push(...e.attributes.class.trim().split(/\s+/));var i=K(r,n,t);for(var a of Object.entries(e.attributes)){var o=a[0],s=a[1];o!==`class`&&i.setAttribute(o,s)}return i},mathmlBuilder:(e,t)=>zi(e.body,t)}),q({type:`htmlmathml`,names:[`\\html@mathml`],numArgs:2,allowedInArgument:!0,allowedInText:!0,handler:(e,t)=>({type:`htmlmathml`,mode:e.parser.mode,html:hi(t[0]),mathml:hi(t[1])}),htmlBuilder:(e,t)=>Xr(bi(e.html,t,!1)),mathmlBuilder:(e,t)=>zi(e.mathml,t)});var Po=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:`bp`};var t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new N(`Invalid size: '`+e+`' in \\includegraphics`);var n={number:+(t[1]+t[2]),unit:t[3]};if(!Dn(n))throw new N(`Invalid unit: '`+n.unit+`' in \\includegraphics.`);return n};q({type:`includegraphics`,names:[`\\includegraphics`],numArgs:1,numOptionalArgs:1,argTypes:[`raw`,`url`],allowedInText:!1,handler:(e,t,n)=>{var r=e.parser,i={number:0,unit:`em`},a={number:.9,unit:`em`},o={number:0,unit:`em`},s=``;if(n[0])for(var c=X(n[0],`raw`).string.split(`,`),l=0;l<c.length;l++){var u=c[l].split(`=`);if(u.length===2){var d=u[1].trim();switch(u[0].trim()){case`alt`:s=d;break;case`width`:i=Po(d);break;case`height`:a=Po(d);break;case`totalheight`:o=Po(d);break;default:throw new N(`Invalid key: '`+u[0]+`' in \\includegraphics.`)}}}var f=X(t[0],`url`).url;return s===``&&(s=f,s=s.replace(/^.*[\\/]/,``),s=s.substring(0,s.lastIndexOf(`.`))),r.settings.isTrusted({command:`\\includegraphics`,url:f})?{type:`includegraphics`,mode:r.mode,alt:s,width:i,height:a,totalheight:o,src:f}:r.formatUnsupportedCmd(`\\includegraphics`)},htmlBuilder:(e,t)=>{var n=On(e.height,t),r=0;e.totalheight.number>0&&(r=On(e.totalheight,t)-n);var i=0;e.width.number>0&&(i=On(e.width,t));var a={height:F(n+r)};i>0&&(a.width=F(i)),r>0&&(a.verticalAlign=F(-r));var o=new Ln(e.src,e.alt,a);return o.height=n,o.depth=r,o},mathmlBuilder:(e,t)=>{var n=new Y(`mglyph`,[]);n.setAttribute(`alt`,e.alt);var r=On(e.height,t),i=0;if(e.totalheight.number>0&&(i=On(e.totalheight,t)-r,n.setAttribute(`valign`,F(-i))),n.setAttribute(`height`,F(r+i)),e.width.number>0){var a=On(e.width,t);n.setAttribute(`width`,F(a))}return n.setAttribute(`src`,e.src),n}}),q({type:`kern`,names:[`\\kern`,`\\mkern`,`\\hskip`,`\\mskip`],numArgs:1,argTypes:[`size`],primitive:!0,allowedInText:!0,handler(e,t){var n=e.parser,r=e.funcName,i=X(t[0],`size`);if(n.settings.strict){var a=r[1]===`m`,o=i.value.unit===`mu`;a?(o||n.settings.reportNonstrict(`mathVsTextUnits`,`LaTeX's `+r+` supports only mu units, `+(`not `+i.value.unit+` units`)),n.mode!==`math`&&n.settings.reportNonstrict(`mathVsTextUnits`,`LaTeX's `+r+` works only in math mode`)):o&&n.settings.reportNonstrict(`mathVsTextUnits`,`LaTeX's `+r+` doesn't support mu units`)}return{type:`kern`,mode:n.mode,dimension:i.value}},htmlBuilder(e,t){return ei(e.dimension,t)},mathmlBuilder(e,t){return new Ai(On(e.dimension,t))}}),q({type:`lap`,names:[`\\mathllap`,`\\mathrlap`,`\\mathclap`],numArgs:1,allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=e.funcName,i=t[0];return{type:`lap`,mode:n.mode,alignment:r.slice(5),body:i}},htmlBuilder:(e,t)=>{var n;e.alignment===`clap`?(n=K([],[J(e.body,t)]),n=K([`katex-inner`],[n],t)):n=K([`katex-inner`],[J(e.body,t)]);var r=K([`katex-fix`],[]),i=K([e.alignment],[n,r],t),a=K([`katex-strut`]);return a.style.height=F(i.height+i.depth),i.depth&&(a.style.verticalAlign=F(-i.depth)),i.children.unshift(a),i=K([`katex-thinbox`],[i],t),K([`mord`,`katex-vbox`],[i],t)},mathmlBuilder:(e,t)=>{var n=new Y(`mpadded`,[Bi(e.body,t)]);if(e.alignment!==`rlap`){var r=e.alignment===`llap`?`-1`:`-0.5`;n.setAttribute(`lspace`,r+`width`)}return n.setAttribute(`width`,`0px`),n}}),q({type:`styling`,names:[`\\(`,`$`],numArgs:0,allowedInText:!0,allowedInMath:!1,handler(e,t){var n=e.funcName,r=e.parser,i=r.mode;r.switchMode(`math`);var a=n===`\\(`?`\\)`:`$`,o=r.parseExpression(!1,a);return r.expect(a),r.switchMode(i),{type:`styling`,mode:r.mode,style:`text`,resetFont:!0,body:o}}}),q({type:`text`,names:[`\\)`,`\\]`],numArgs:0,allowedInText:!0,allowedInMath:!1,handler(e,t){throw new N(`Mismatched `+e.funcName)}});var Fo=(e,t)=>{switch(t.style.size){case P.DISPLAY.size:return e.display;case P.TEXT.size:return e.text;case P.SCRIPT.size:return e.script;case P.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};q({type:`mathchoice`,names:[`\\mathchoice`],numArgs:4,primitive:!0,handler:(e,t)=>({type:`mathchoice`,mode:e.parser.mode,display:hi(t[0]),text:hi(t[1]),script:hi(t[2]),scriptscript:hi(t[3])}),htmlBuilder:(e,t)=>Xr(bi(Fo(e,t),t,!1)),mathmlBuilder:(e,t)=>zi(Fo(e,t),t)});var Io=(e,t,n,r,i,a,o)=>{e=K([],[e]);var s=n&&It(n),c,l;if(t){var u=J(t,r.havingStyle(i.sup()),r);l={elem:u,kern:Math.max(r.fontMetrics().bigOpSpacing1,r.fontMetrics().bigOpSpacing3-u.depth)}}if(n){var d=J(n,r.havingStyle(i.sub()),r);c={elem:d,kern:Math.max(r.fontMetrics().bigOpSpacing2,r.fontMetrics().bigOpSpacing4-d.height)}}var f;if(l&&c)f=$r({positionType:`bottom`,positionData:r.fontMetrics().bigOpSpacing5+c.elem.height+c.elem.depth+c.kern+e.depth+o,children:[{type:`kern`,size:r.fontMetrics().bigOpSpacing5},{type:`elem`,elem:c.elem,marginLeft:F(-a)},{type:`kern`,size:c.kern},{type:`elem`,elem:e},{type:`kern`,size:l.kern},{type:`elem`,elem:l.elem,marginLeft:F(a)},{type:`kern`,size:r.fontMetrics().bigOpSpacing5}]});else if(c)f=$r({positionType:`top`,positionData:e.height-o,children:[{type:`kern`,size:r.fontMetrics().bigOpSpacing5},{type:`elem`,elem:c.elem,marginLeft:F(-a)},{type:`kern`,size:c.kern},{type:`elem`,elem:e}]});else if(l)f=$r({positionType:`bottom`,positionData:e.depth+o,children:[{type:`elem`,elem:e},{type:`kern`,size:l.kern},{type:`elem`,elem:l.elem,marginLeft:F(a)},{type:`kern`,size:r.fontMetrics().bigOpSpacing5}]});else return e;var p=[f];if(c&&a!==0&&!s){var m=K([`mspace`],[],r);m.style.marginRight=F(a),p.unshift(m)}return K([`mop`,`op-limits`],p,r)},Lo=new Set([`\\smallint`]),Ro=(e,t)=>{var n,r,i=!1,a;e.type===`supsub`?(n=e.sup,r=e.sub,a=X(e.base,`op`),i=!0):a=X(e,`op`);var o=t.style,s=!1;o.size===P.DISPLAY.size&&a.symbol&&!Lo.has(a.name)&&(s=!0);var c,l;if(a.symbol){var u=s?`Size2-Regular`:`Size1-Regular`,d=``;if((a.name===`\\oiint`||a.name===`\\oiiint`)&&(d=a.name.slice(1),a.name=d===`oiint`?`\\iint`:`\\iiint`),c=Br(a.name,u,`math`,t,[`mop`,`op-symbol`,s?`large-op`:`small-op`]),l=c.italic,d.length>0){var f=ii(d+`Size`+(s?`2`:`1`),t);c=$r({positionType:`individualShift`,children:[{type:`elem`,elem:c,shift:0},{type:`elem`,elem:f,shift:s?.08:0}]}),a.name=`\\`+d,c.classes.unshift(`mop`),c.italic=l}}else if(a.body){var p=bi(a.body,t,!0);p.length===1&&p[0]instanceof zn?(c=p[0],c.classes[0]=`mop`):c=K([`mop`],p,t)}else{for(var m=[],h=1;h<a.name.length;h++)m.push(Vr(a.name[h],a.mode,t));c=K([`mop`],m,t)}var g=0,_=0;return(c instanceof zn||a.name===`\\oiint`||a.name===`\\oiiint`)&&!a.suppressBaseShift&&(g=(c.height-c.depth)/2-t.fontMetrics().axisHeight,_=c.italic??0),i?Io(c,n,r,t,o,_,g):(g&&(c.style.position=`relative`,c.style.top=F(g)),c)},zo=(e,t)=>{var n;if(e.symbol)n=new Y(`mo`,[Ni(e.name,e.mode)]),Lo.has(e.name)&&n.setAttribute(`largeop`,`false`);else if(e.body)n=new Y(`mo`,Ri(e.body,t));else{n=new Y(`mi`,[new ki(e.name.slice(1))]);var r=new Y(`mo`,[Ni(``,`text`)]);n=e.parentIsSupSub?new Y(`mrow`,[n,r]):Oi([n,r])}return n},Bo={"∏":`\\prod`,"∐":`\\coprod`,"∑":`\\sum`,"⋀":`\\bigwedge`,"⋁":`\\bigvee`,"⋂":`\\bigcap`,"⋃":`\\bigcup`,"⨀":`\\bigodot`,"⨁":`\\bigoplus`,"⨂":`\\bigotimes`,"⨄":`\\biguplus`,"⨆":`\\bigsqcup`};q({type:`op`,names:`\\coprod.\\bigvee.\\bigwedge.\\biguplus.\\bigcap.\\bigcup.\\intop.\\prod.\\sum.\\bigotimes.\\bigoplus.\\bigodot.\\bigsqcup.\\smallint.∏.∐.∑.⋀.⋁.⋂.⋃.⨀.⨁.⨂.⨄.⨆`.split(`.`),numArgs:0,handler:(e,t)=>{var n=e.parser,r=e.funcName;return r.length===1&&(r=Bo[r]),{type:`op`,mode:n.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:r}},htmlBuilder:Ro,mathmlBuilder:zo}),q({type:`op`,names:[`\\mathop`],numArgs:1,primitive:!0,handler:(e,t)=>{var n=e.parser,r=t[0];return{type:`op`,mode:n.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:hi(r)}}});var Vo={"∫":`\\int`,"∬":`\\iint`,"∭":`\\iiint`,"∮":`\\oint`,"∯":`\\oiint`,"∰":`\\oiiint`};q({type:`op`,names:`\\arcsin.\\arccos.\\arctan.\\arctg.\\arcctg.\\arg.\\ch.\\cos.\\cosec.\\cosh.\\cot.\\cotg.\\coth.\\csc.\\ctg.\\cth.\\deg.\\dim.\\exp.\\hom.\\ker.\\lg.\\ln.\\log.\\sec.\\sin.\\sinh.\\sh.\\tan.\\tanh.\\tg.\\th`.split(`.`),numArgs:0,handler(e){var t=e.parser,n=e.funcName;return{type:`op`,mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:n}}}),q({type:`op`,names:[`\\det`,`\\gcd`,`\\inf`,`\\lim`,`\\max`,`\\min`,`\\Pr`,`\\sup`],numArgs:0,handler(e){var t=e.parser,n=e.funcName;return{type:`op`,mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:n}}}),q({type:`op`,names:[`\\int`,`\\iint`,`\\iiint`,`\\oint`,`\\oiint`,`\\oiiint`,`∫`,`∬`,`∭`,`∮`,`∯`,`∰`],numArgs:0,allowedInArgument:!0,handler(e){var t=e.parser,n=e.funcName;return n.length===1&&(n=Vo[n]),{type:`op`,mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}}});var Ho=(e,t)=>{var n,r,i=!1,a;e.type===`supsub`?(n=e.sup,r=e.sub,a=X(e.base,`operatorname`),i=!0):a=X(e,`operatorname`);var o;if(a.body.length>0){for(var s=bi(a.body.map(e=>{var t=`text`in e?e.text:void 0;return typeof t==`string`?{type:`textord`,mode:e.mode,text:t}:e}),t.withFont(`mathrm`),!0),c=0;c<s.length;c++){var l=s[c];l instanceof zn&&(l.text=l.text.replace(/\u2212/,`-`).replace(/\u2217/,`*`))}o=K([`mop`],s,t)}else o=K([`mop`],[],t);return i?Io(o,n,r,t,t.style,0,0):o};q({type:`operatorname`,names:[`\\operatorname@`,`\\operatornamewithlimits`],numArgs:1,handler:(e,t)=>{var n=e.parser,r=e.funcName,i=t[0];return{type:`operatorname`,mode:n.mode,body:hi(i),alwaysHandleSupSub:r===`\\operatornamewithlimits`,limits:!1,parentIsSupSub:!1}},htmlBuilder:Ho,mathmlBuilder:(e,t)=>{for(var n=Ri(e.body,t.withFont(`mathrm`)),r=!0,i=0;i<n.length;i++){var a=n[i];if(!(a instanceof Ai))if(a instanceof Y)switch(a.type){case`mi`:case`mn`:case`mspace`:case`mtext`:break;case`mo`:var o=a.children[0];a.children.length===1&&o instanceof ki?o.text=o.text.replace(/\u2212/,`-`).replace(/\u2217/,`*`):r=!1;break;default:r=!1}else r=!1}r&&(n=[new ki(n.map(e=>e.toText()).join(``))]);var s=new Y(`mi`,n);s.setAttribute(`mathvariant`,`normal`);var c=new Y(`mo`,[Ni(``,`text`)]);return e.parentIsSupSub?new Y(`mrow`,[s,c]):Oi([s,c])}}),Z(`\\operatorname`,`\\@ifstar\\operatornamewithlimits\\operatorname@`),pi({type:`ordgroup`,htmlBuilder(e,t){return e.semisimple?Xr(bi(e.body,t,!1)):K([`mord`],bi(e.body,t,!0),t)},mathmlBuilder(e,t){return zi(e.body,t,!0)}}),q({type:`overline`,names:[`\\overline`],numArgs:1,handler(e,t){var n=e.parser,r=t[0];return{type:`overline`,mode:n.mode,body:r}},htmlBuilder(e,t){var n=J(e.body,t.havingCrampedStyle()),r=Jr(`overline-line`,t),i=t.fontMetrics().defaultRuleThickness;return K([`mord`,`katex-overline`],[$r({positionType:`firstBaseline`,children:[{type:`elem`,elem:n},{type:`kern`,size:3*i},{type:`elem`,elem:r},{type:`kern`,size:i}]})],t)},mathmlBuilder(e,t){var n=new Y(`mo`,[new ki(`‾`)]);n.setAttribute(`stretchy`,`true`);var r=new Y(`mover`,[Bi(e.body,t),n]);return r.setAttribute(`accent`,`true`),r}}),q({type:`phantom`,names:[`\\phantom`],numArgs:1,allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=t[0];return{type:`phantom`,mode:n.mode,body:hi(r)}},htmlBuilder:(e,t)=>Xr(bi(e.body,t.withPhantom(),!1)),mathmlBuilder:(e,t)=>new Y(`mphantom`,Ri(e.body,t))}),Z(`\\hphantom`,`\\smash{\\phantom{#1}}`),q({type:`vphantom`,names:[`\\vphantom`],numArgs:1,allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=t[0];return{type:`vphantom`,mode:n.mode,body:r}},htmlBuilder:(e,t)=>K([`mord`,`rlap`],[K([`katex-inner`],[J(e.body,t.withPhantom())]),K([`katex-fix`],[])],t),mathmlBuilder:(e,t)=>{var n=new Y(`mpadded`,[new Y(`mphantom`,Ri(hi(e.body),t))]);return n.setAttribute(`width`,`0px`),n}}),q({type:`raisebox`,names:[`\\raisebox`],numArgs:2,argTypes:[`size`,`hbox`],allowedInText:!0,handler(e,t){var n=e.parser,r=X(t[0],`size`).value,i=t[1];return{type:`raisebox`,mode:n.mode,dy:r,body:i}},htmlBuilder(e,t){var n=J(e.body,t);return $r({positionType:`shift`,positionData:-On(e.dy,t),children:[{type:`elem`,elem:n}]})},mathmlBuilder(e,t){var n=new Y(`mpadded`,[Bi(e.body,t)]),r=e.dy.number+e.dy.unit;return n.setAttribute(`voffset`,r),n}});var Uo=(e,t)=>({type:`reflectbox`,mode:e.parser.mode,body:t[0]});q({type:`reflectbox`,names:[`\\reflectbox`],numArgs:1,argTypes:[`hbox`],allowedInText:!0,handler:Uo,htmlBuilder(e,t){return K([`mord`,`reflectbox`],[J(e.body,t)],t)},mathmlBuilder(e,t){return Bi(e.body,t)}}),q({type:`reflectbox`,names:[`\\mathreflectbox`],numArgs:1,argTypes:[`math`],handler:Uo}),q({type:`internal`,names:[`\\relax`],numArgs:0,allowedInText:!0,allowedInArgument:!0,handler(e){return{type:`internal`,mode:e.parser.mode}}}),q({type:`rule`,names:[`\\rule`],numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:[`size`,`size`,`size`],handler(e,t,n){var r=e.parser,i=n[0],a=X(t[0],`size`),o=X(t[1],`size`);return{type:`rule`,mode:r.mode,shift:i&&X(i,`size`).value,width:a.value,height:o.value}},htmlBuilder(e,t){var n=K([`mord`,`katex-rule`],[],t),r=On(e.width,t),i=On(e.height,t),a=e.shift?On(e.shift,t):0;return n.style.borderRightWidth=F(r),n.style.borderTopWidth=F(i),n.style.bottom=F(a),n.width=r,n.height=i+a,n.depth=-a,n.maxFontSize=i*1.125*t.sizeMultiplier,n},mathmlBuilder(e,t){var n=On(e.width,t),r=On(e.height,t),i=e.shift?On(e.shift,t):0,a=t.color&&t.getColor()||`black`,o=new Y(`mspace`);o.setAttribute(`mathbackground`,a),o.setAttribute(`width`,F(n)),o.setAttribute(`height`,F(r));var s=new Y(`mpadded`,[o]);return i>=0?s.setAttribute(`height`,F(i)):(s.setAttribute(`height`,F(i)),s.setAttribute(`depth`,F(-i))),s.setAttribute(`voffset`,F(i)),s}});function Wo(e,t,n){for(var r=bi(e,t,!1),i=t.sizeMultiplier/n.sizeMultiplier,a=0;a<r.length;a++){var o=r[a].classes.indexOf(`katex-sizing`);o<0?Array.prototype.push.apply(r[a].classes,t.sizingClasses(n)):r[a].classes[o+1]===`reset-size`+t.size&&(r[a].classes[o+1]=`reset-size`+n.size),r[a].height*=i,r[a].depth*=i}return Xr(r)}var Go=[`\\tiny`,`\\sixptsize`,`\\scriptsize`,`\\footnotesize`,`\\small`,`\\normalsize`,`\\large`,`\\Large`,`\\LARGE`,`\\huge`,`\\Huge`];q({type:`sizing`,names:Go,numArgs:0,allowedInText:!0,handler:(e,t)=>{var n=e.breakOnTokenText,r=e.funcName,i=e.parser,a=i.parseExpression(!1,n);return{type:`sizing`,mode:i.mode,size:Go.indexOf(r)+1,body:a}},htmlBuilder:(e,t)=>{var n=t.havingSize(e.size);return Wo(e.body,n,t)},mathmlBuilder:(e,t)=>{var n=t.havingSize(e.size),r=new Y(`mstyle`,Ri(e.body,n));return r.setAttribute(`mathsize`,F(n.sizeMultiplier)),r}}),q({type:`smash`,names:[`\\smash`],numArgs:1,numOptionalArgs:1,allowedInText:!0,handler:(e,t,n)=>{var r=e.parser,i=!1,a=!1,o=n[0]&&X(n[0],`ordgroup`);if(o)for(var s,c=0;c<o.body.length;++c){var l=o.body[c];if(s=sa(l).text,s===`t`)i=!0;else if(s===`b`)a=!0;else{i=!1,a=!1;break}}else i=!0,a=!0;var u=t[0];return{type:`smash`,mode:r.mode,body:u,smashHeight:i,smashDepth:a}},htmlBuilder:(e,t)=>{var n=K([],[J(e.body,t)]);if(!e.smashHeight&&!e.smashDepth)return n;if(e.smashHeight&&(n.height=0),e.smashDepth&&(n.depth=0),e.smashHeight&&e.smashDepth)return K([`mord`,`katex-smash`],[n],t);if(n.children)for(var r=0;r<n.children.length;r++)e.smashHeight&&(n.children[r].height=0),e.smashDepth&&(n.children[r].depth=0);return K([`mord`],[$r({positionType:`firstBaseline`,children:[{type:`elem`,elem:n}]})],t)},mathmlBuilder:(e,t)=>{var n=new Y(`mpadded`,[Bi(e.body,t)]);return e.smashHeight&&n.setAttribute(`height`,`0px`),e.smashDepth&&n.setAttribute(`depth`,`0px`),n}}),q({type:`sqrt`,names:[`\\sqrt`],numArgs:1,numOptionalArgs:1,handler(e,t,n){var r=e.parser,i=n[0],a=t[0];return{type:`sqrt`,mode:r.mode,body:a,index:i}},htmlBuilder(e,t){var n=J(e.body,t.havingCrampedStyle());n.height===0&&(n.height=t.fontMetrics().xHeight),n=Zr(n,t);var r=t.fontMetrics().defaultRuleThickness,i=r;t.style.id<P.TEXT.id&&(i=t.fontMetrics().xHeight);var a=r+i/4,o=Wa(n.height+n.depth+a+r,t),s=o.span,c=o.ruleWidth,l=o.advanceWidth,u=s.height-c;u>n.height+n.depth+a&&(a=(a+u-n.height-n.depth)/2);var d=s.height-n.height-a-c;n.style.paddingLeft=F(l);var f=$r({positionType:`firstBaseline`,children:[{type:`elem`,elem:n,wrapperClasses:[`svg-align`]},{type:`kern`,size:-(n.height+d)},{type:`elem`,elem:s},{type:`kern`,size:c}]});if(e.index){var p=t.havingStyle(P.SCRIPTSCRIPT),m=J(e.index,p,t);return K([`mord`,`sqrt`],[K([`katex-root`],[$r({positionType:`shift`,positionData:-(.6*(f.height-f.depth)),children:[{type:`elem`,elem:m}]})]),f],t)}else return K([`mord`,`sqrt`],[f],t)},mathmlBuilder(e,t){var n=e.body,r=e.index;return r?new Y(`mroot`,[Bi(n,t),Bi(r,t)]):new Y(`msqrt`,[Bi(n,t)])}});var Ko={display:P.DISPLAY,text:P.TEXT,script:P.SCRIPT,scriptscript:P.SCRIPTSCRIPT};function qo(e){return e in Ko}q({type:`styling`,names:[`\\displaystyle`,`\\textstyle`,`\\scriptstyle`,`\\scriptscriptstyle`],numArgs:0,allowedInText:!0,primitive:!0,handler(e,t){var n=e.breakOnTokenText,r=e.funcName,i=e.parser,a=i.parseExpression(!0,n),o=r.slice(1,r.length-5);if(!qo(o))throw Error(`Unknown style: `+o);return{type:`styling`,mode:i.mode,style:o,body:a}},htmlBuilder(e,t){var n=Ko[e.style],r=t.havingStyle(n);return e.resetFont&&(r=r.withFont(``)),Wo(e.body,r,t)},mathmlBuilder(e,t){var n=Ko[e.style],r=t.havingStyle(n);e.resetFont&&(r=r.withFont(``));var i=new Y(`mstyle`,Ri(e.body,r)),a={display:[`0`,`true`],text:[`0`,`false`],script:[`1`,`false`],scriptscript:[`2`,`false`]}[e.style];return i.setAttribute(`scriptlevel`,a[0]),i.setAttribute(`displaystyle`,a[1]),i}});var Jo=function(e,t){var n=e.base;return n?n.type===`op`?n.limits&&(t.style.size===P.DISPLAY.size||n.alwaysHandleSupSub)?Ro:null:n.type===`operatorname`?n.alwaysHandleSupSub&&(t.style.size===P.DISPLAY.size||n.limits)?Ho:null:n.type===`accent`?It(n.base)?da:null:n.type===`horizBrace`&&!e.sub===n.isOver?No:null:null};pi({type:`supsub`,htmlBuilder(e,t){var n=Jo(e,t);if(n)return n(e,t);var r=e.base,i=e.sup,a=e.sub,o=J(r,t),s,c,l=t.fontMetrics(),u=0,d=0,f=r&&It(r);if(i){var p=t.havingStyle(t.style.sup());s=J(i,p,t),f||(u=o.height-p.fontMetrics().supDrop*p.sizeMultiplier/t.sizeMultiplier)}if(a){var m=t.havingStyle(t.style.sub());c=J(a,m,t),f||(d=o.depth+m.fontMetrics().subDrop*m.sizeMultiplier/t.sizeMultiplier)}var h=t.style===P.DISPLAY?l.sup1:t.style.cramped?l.sup3:l.sup2,g=t.sizeMultiplier,_=F(.5/l.ptPerEm/g),v=null;if(c){var y=e.base&&e.base.type===`op`&&e.base.name&&(e.base.name===`\\oiint`||e.base.name===`\\oiiint`);(o instanceof zn||y)&&(v=F(-(o.italic??0)))}var b;if(s&&c){u=Math.max(u,h,s.depth+.25*l.xHeight),d=Math.max(d,l.sub2);var x=4*l.defaultRuleThickness;if(u-s.depth-(c.height-d)<x){d=x-(u-s.depth)+c.height;var S=.8*l.xHeight-(u-s.depth);S>0&&(u+=S,d-=S)}b=$r({positionType:`individualShift`,children:[{type:`elem`,elem:c,shift:d,marginRight:_,marginLeft:v},{type:`elem`,elem:s,shift:-u,marginRight:_}]})}else if(c)d=Math.max(d,l.sub1,c.height-.8*l.xHeight),b=$r({positionType:`shift`,positionData:d,children:[{type:`elem`,elem:c,marginLeft:v,marginRight:_}]});else if(s)u=Math.max(u,h,s.depth+.25*l.xHeight),b=$r({positionType:`shift`,positionData:-u,children:[{type:`elem`,elem:s,marginRight:_}]});else throw Error(`supsub must have either sup or sub.`);return K([wi(o,`right`)||`mord`],[o,K([`msupsub`],[b])],t)},mathmlBuilder(e,t){var n=!1,r,i;e.base&&e.base.type===`horizBrace`&&(i=!!e.sup,i===e.base.isOver&&(n=!0,r=e.base.isOver)),e.base&&(e.base.type===`op`||e.base.type===`operatorname`)&&(e.base.parentIsSupSub=!0);var a=[Bi(e.base,t)];e.sub&&a.push(Bi(e.sub,t)),e.sup&&a.push(Bi(e.sup,t));var o;if(n)o=r?`mover`:`munder`;else if(!e.sub){var s=e.base;o=s&&s.type===`op`&&s.limits&&(t.style===P.DISPLAY||s.alwaysHandleSupSub)||s&&s.type===`operatorname`&&s.alwaysHandleSupSub&&(s.limits||t.style===P.DISPLAY)?`mover`:`msup`}else if(e.sup){var c=e.base;o=c&&c.type===`op`&&c.limits&&t.style===P.DISPLAY||c&&c.type===`operatorname`&&c.alwaysHandleSupSub&&(t.style===P.DISPLAY||c.limits)?`munderover`:`msubsup`}else{var l=e.base;o=l&&l.type===`op`&&l.limits&&(t.style===P.DISPLAY||l.alwaysHandleSupSub)||l&&l.type===`operatorname`&&l.alwaysHandleSupSub&&(l.limits||t.style===P.DISPLAY)?`munder`:`msub`}return new Y(o,a)}}),pi({type:`atom`,htmlBuilder(e,t){return Vr(e.text,e.mode,t,[`m`+e.family])},mathmlBuilder(e,t){var n=new Y(`mo`,[Ni(e.text,e.mode)]);if(e.family===`bin`){var r=Ii(e,t);r===`bold-italic`&&n.setAttribute(`mathvariant`,r)}else e.family===`punct`?n.setAttribute(`separator`,`true`):(e.family===`open`||e.family===`close`)&&n.setAttribute(`stretchy`,`false`);return n}});var Yo={mi:`italic`,mn:`normal`,mtext:`normal`};pi({type:`mathord`,htmlBuilder(e,t){return Ur(e,t)},mathmlBuilder(e,t){var n=new Y(`mi`,[Ni(e.text,e.mode,t)]),r=Ii(e,t)||`italic`;return r!==Yo[n.type]&&n.setAttribute(`mathvariant`,r),n}}),pi({type:`textord`,htmlBuilder(e,t){return Ur(e,t)},mathmlBuilder(e,t){var n=Ni(e.text,e.mode,t),r=Ii(e,t)||`normal`,i=e.mode===`text`?new Y(`mtext`,[n]):/[0-9]/.test(e.text)?new Y(`mn`,[n]):e.text===`\\prime`?new Y(`mo`,[n]):new Y(`mi`,[n]);return r!==Yo[i.type]&&i.setAttribute(`mathvariant`,r),i}});var Xo=new Map([[`\\nobreak`,`nobreak`],[`\\allowbreak`,`allowbreak`]]),Zo=new Map([[` `,{}],[`\\ `,{}],[`~`,{className:`nobreak`}],[`\\space`,{}],[`\\nobreakspace`,{className:`nobreak`}]]);pi({type:`spacing`,htmlBuilder(e,t){var n=Zo.get(e.text),r=Xo.get(e.text);if(n){var i=n.className||``;if(e.mode===`text`){var a=Ur(e,t);return a.classes.push(i),a}else return K([`mspace`,i],[Vr(e.text,e.mode,t)],t)}else if(r)return K([`mspace`,r],[],t);else throw new N(`Unknown type of space "`+e.text+`"`)},mathmlBuilder(e,t){var n;if(Zo.has(e.text))n=new Y(`mtext`,[new ki(`\xA0`)]);else if(Xo.has(e.text))return new Y(`mspace`);else throw new N(`Unknown type of space "`+e.text+`"`);return n}});var Qo=()=>{var e=new Y(`mtd`,[]);return e.setAttribute(`width`,`50%`),e};pi({type:`tag`,mathmlBuilder(e,t){var n=new Y(`mtable`,[new Y(`mtr`,[Qo(),new Y(`mtd`,[zi(e.body,t)]),Qo(),new Y(`mtd`,[zi(e.tag,t)])])]);return n.setAttribute(`width`,`100%`),n}});var $o={"\\text":void 0,"\\textrm":`textrm`,"\\textsf":`textsf`,"\\texttt":`texttt`,"\\textnormal":`textrm`},es={"\\textbf":`textbf`,"\\textmd":`textmd`},ts={"\\textit":`textit`,"\\textup":`textup`},ns=(e,t)=>{var n=e.font;return n?$o[n]?t.withTextFontFamily($o[n]):es[n]?t.withTextFontWeight(es[n]):n===`\\emph`?t.fontShape===`textit`?t.withTextFontShape(`textup`):t.withTextFontShape(`textit`):t.withTextFontShape(ts[n]):t};q({type:`text`,names:[`\\text`,`\\textrm`,`\\textsf`,`\\texttt`,`\\textnormal`,`\\textbf`,`\\textmd`,`\\textit`,`\\textup`,`\\emph`],numArgs:1,argTypes:[`text`],allowedInArgument:!0,allowedInText:!0,handler(e,t){var n=e.parser,r=e.funcName,i=t[0];return{type:`text`,mode:n.mode,body:hi(i),font:r}},htmlBuilder(e,t){var n=ns(e,t);return K([`mord`,`text`],bi(e.body,n,!0),n)},mathmlBuilder(e,t){var n=ns(e,t);return zi(e.body,n)}}),q({type:`underline`,names:[`\\underline`],numArgs:1,allowedInText:!0,handler(e,t){return{type:`underline`,mode:e.parser.mode,body:t[0]}},htmlBuilder(e,t){var n=J(e.body,t),r=Jr(`underline-line`,t),i=t.fontMetrics().defaultRuleThickness;return K([`mord`,`katex-underline`],[$r({positionType:`top`,positionData:n.height,children:[{type:`kern`,size:i},{type:`elem`,elem:r},{type:`kern`,size:3*i},{type:`elem`,elem:n}]})],t)},mathmlBuilder(e,t){var n=new Y(`mo`,[new ki(`‾`)]);n.setAttribute(`stretchy`,`true`);var r=new Y(`munder`,[Bi(e.body,t),n]);return r.setAttribute(`accentunder`,`true`),r}}),q({type:`vcenter`,names:[`\\vcenter`],numArgs:1,argTypes:[`original`],allowedInText:!1,handler(e,t){return{type:`vcenter`,mode:e.parser.mode,body:t[0]}},htmlBuilder(e,t){var n=J(e.body,t),r=t.fontMetrics().axisHeight;return $r({positionType:`shift`,positionData:.5*(n.height-r-(n.depth+r)),children:[{type:`elem`,elem:n}]})},mathmlBuilder(e,t){return new Y(`mrow`,[new Y(`mpadded`,[Bi(e.body,t)],[`vcenter`])])}}),q({type:`verb`,names:[`\\verb`],numArgs:0,allowedInText:!0,handler(e,t,n){throw new N(`\\verb ended by end of line instead of matching delimiter`)},htmlBuilder(e,t){for(var n=rs(e),r=[],i=t.havingStyle(t.style.text()),a=0;a<n.length;a++){var o=n[a];o===`~`&&(o=`\\textasciitilde`),r.push(Br(o,`Typewriter-Regular`,e.mode,i,[`mord`,`texttt`]))}return K([`mord`,`text`].concat(i.sizingClasses(t)),Gr(r),i)},mathmlBuilder(e,t){var n=new Y(`mtext`,[new ki(rs(e))]);return n.setAttribute(`mathvariant`,`monospace`),n}});var rs=e=>e.body.replace(/ /g,e.star?`␣`:`\xA0`),is=ui,as=`[ \r
|
|
259
|
-
]`,
|
|
257
|
+
-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw Error(`Unknown stretchy delimiter.`)}};function Cn(e){return`toText`in e}var wn=class{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return this.classes.includes(e)}toNode(){for(var e=document.createDocumentFragment(),t=0;t<this.children.length;t++)e.appendChild(this.children[t].toNode());return e}toMarkup(){for(var e=``,t=0;t<this.children.length;t++)e+=this.children[t].toMarkup();return e}toText(){return this.children.map(e=>{if(Cn(e))return e.toText();throw Error(`Expected MathDomNode with toText, got `+e.constructor.name)}).join(``)}},Tn={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},En={ex:!0,em:!0,mu:!0},Dn=function(e){return typeof e!=`string`&&(e=e.unit),e in Tn||e in En||e===`ex`},On=function(e,t){var n;if(e.unit in Tn)n=Tn[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if(e.unit===`mu`)n=t.fontMetrics().cssEmPerMu;else{var r=t.style.isTight()?t.havingStyle(t.style.text()):t;if(e.unit===`ex`)n=r.fontMetrics().xHeight;else if(e.unit===`em`)n=r.fontMetrics().quad;else throw new P(`Invalid unit: '`+e.unit+`'`);r!==t&&(n*=r.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*n,t.maxSize)},I=function(e){return+e.toFixed(4)+`em`},kn=function(e){return e.filter(e=>e).join(` `)},An=function(e){var t=``;for(var n of Object.keys(e)){var r=e[n];r!==void 0&&(t+=At(n)+`:`+r+`;`)}return t},jn=function(e,t,n){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=n||{},t){t.style.isTight()&&this.classes.push(`mtight`);var r=t.getColor();r&&(this.style.color=r)}},Mn=function(e){var t=document.createElement(e);t.className=kn(this.classes),Object.assign(t.style,this.style);for(var n of Object.keys(this.attributes))t.setAttribute(n,this.attributes[n]);for(var r=0;r<this.children.length;r++)t.appendChild(this.children[r].toNode());return t},Nn=/[\s"'>/=\x00-\x1f]/,Pn=function(e){var t=`<`+e;this.classes.length&&(t+=` class="`+Nt(kn(this.classes))+`"`);var n=An(this.style);n&&(t+=` style="`+Nt(n)+`"`);for(var r of Object.keys(this.attributes)){if(Nn.test(r))throw new P(`Invalid attribute name '`+r+`'`);t+=` `+r+`="`+Nt(this.attributes[r])+`"`}t+=`>`;for(var i=0;i<this.children.length;i++)t+=this.children[i].toMarkup();return t+=`</`+e+`>`,t},Fn=class{constructor(e,t,n,r){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,this.italic=void 0,jn.call(this,e,n,r),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return this.classes.includes(e)}toNode(){return Mn.call(this,`span`)}toMarkup(){return Pn.call(this,`span`)}},In=class{constructor(e,t,n,r){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,jn.call(this,t,r),this.children=n||[],this.setAttribute(`href`,e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return this.classes.includes(e)}toNode(){return Mn.call(this,`a`)}toMarkup(){return Pn.call(this,`a`)}},Ln=class{constructor(e,t,n){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=[`mord`],this.height=0,this.depth=0,this.maxFontSize=0,this.style=n}hasClass(e){return this.classes.includes(e)}toNode(){var e=document.createElement(`img`);return e.src=this.src,e.alt=this.alt,e.className=`mord`,Object.assign(e.style,this.style),e}toMarkup(){var e=`<img src="`+Nt(this.src)+`"`+(` alt="`+Nt(this.alt)+`"`),t=An(this.style);return t&&(e+=` style="`+Nt(t)+`"`),e+=`'/>`,e}},Rn={î:`ı̂`,ï:`ı̈`,í:`ı́`,ì:`ı̀`},zn=class{constructor(e,t,n,r,i,a,o,s){this.text=void 0,this.height=void 0,this.depth=void 0,this.italic=void 0,this.skew=void 0,this.width=void 0,this.maxFontSize=void 0,this.classes=void 0,this.style=void 0,this.text=e,this.height=t||0,this.depth=n||0,this.italic=r||0,this.skew=i||0,this.width=a||0,this.classes=o||[],this.style=s||{},this.maxFontSize=0;var c=sn(this.text.charCodeAt(0));c&&this.classes.push(c+`_fallback`),/[îïíì]/.test(this.text)&&(this.text=Rn[this.text])}hasClass(e){return this.classes.includes(e)}toNode(){var e=document.createTextNode(this.text),t=null;return this.italic>0&&(t=document.createElement(`span`),t.style.marginRight=I(this.italic)),this.classes.length>0&&(t||=document.createElement(`span`),t.className=kn(this.classes)),Object.keys(this.style).length>0&&(t||=document.createElement(`span`),Object.assign(t.style,this.style)),t?(t.appendChild(e),t):e}toMarkup(){var e=!1,t=`<span`;this.classes.length&&(e=!0,t+=` class="`,t+=Nt(kn(this.classes)),t+=`"`);var n=``;this.italic>0&&(n+=`margin-right:`+I(this.italic)+`;`),n+=An(this.style),n&&(e=!0,t+=` style="`+Nt(n)+`"`);var r=Nt(this.text);return e?(t+=`>`,t+=r,t+=`</span>`,t):r}},Bn=class{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){var e=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);for(var t of Object.keys(this.attributes))e.setAttribute(t,this.attributes[t]);for(var n=0;n<this.children.length;n++)e.appendChild(this.children[n].toNode());return e}toMarkup(){var e=`<svg xmlns="http://www.w3.org/2000/svg"`;for(var t of Object.keys(this.attributes))e+=` `+t+`="`+Nt(this.attributes[t])+`"`;e+=`>`;for(var n=0;n<this.children.length;n++)e+=this.children[n].toMarkup();return e+=`</svg>`,e}},Vn=class{constructor(e,t){this.pathName=void 0,this.alternate=void 0,this.pathName=e,this.alternate=t}toNode(){var e=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);return this.alternate?e.setAttribute(`d`,this.alternate):e.setAttribute(`d`,xn[this.pathName]),e}toMarkup(){return this.alternate?`<path d="`+Nt(this.alternate)+`"/>`:`<path d="`+Nt(xn[this.pathName])+`"/>`}},Hn=class{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e=document.createElementNS(`http://www.w3.org/2000/svg`,`line`);for(var t of Object.keys(this.attributes))e.setAttribute(t,this.attributes[t]);return e}toMarkup(){var e=`<line`;for(var t of Object.keys(this.attributes))e+=` `+t+`="`+Nt(this.attributes[t])+`"`;return e+=`/>`,e}};function Un(e){if(e instanceof zn)return e;throw Error(`Expected symbolNode but got `+String(e)+`.`)}function Wn(e){if(e instanceof Fn)return e;throw Error(`Expected span<HtmlDomNode> but got `+String(e)+`.`)}var Gn=e=>e instanceof Fn||e instanceof In||e instanceof wn,Kn={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},qn={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},Jn={Å:`A`,Ð:`D`,Þ:`o`,å:`a`,ð:`d`,þ:`o`,А:`A`,Б:`B`,В:`B`,Г:`F`,Д:`A`,Е:`E`,Ж:`K`,З:`3`,И:`N`,Й:`N`,К:`K`,Л:`N`,М:`M`,Н:`H`,О:`O`,П:`N`,Р:`P`,С:`C`,Т:`T`,У:`y`,Ф:`O`,Х:`X`,Ц:`U`,Ч:`h`,Ш:`W`,Щ:`W`,Ъ:`B`,Ы:`X`,Ь:`B`,Э:`3`,Ю:`X`,Я:`R`,а:`a`,б:`b`,в:`a`,г:`r`,д:`y`,е:`e`,ж:`m`,з:`e`,и:`n`,й:`n`,к:`n`,л:`n`,м:`m`,н:`n`,о:`o`,п:`n`,р:`p`,с:`c`,т:`o`,у:`y`,ф:`b`,х:`x`,ц:`n`,ч:`n`,ш:`w`,щ:`w`,ъ:`a`,ы:`m`,ь:`a`,э:`e`,ю:`m`,я:`r`};function Yn(e,t){Kn[e]=t}function Xn(e,t,n){if(!Kn[t])throw Error(`Font metrics not found for font: `+t+`.`);var r=e.charCodeAt(0),i=Kn[t][r];if(!i&&e[0]in Jn&&(r=Jn[e[0]].charCodeAt(0),i=Kn[t][r]),!i&&n===`text`&&ln(r)&&(i=Kn[t][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}var Zn={};function Qn(e){var t=e>=5?0:e>=3?1:2;if(!Zn[t]){var n=Zn[t]={cssEmPerMu:qn.quad[t]/18};for(var r of Object.keys(qn))n[r]=qn[r][t]}return Zn[t]}var $n={math:{},text:{}};function L(e,t,n,r,i,a){$n[e][i]={font:t,group:n,replace:r},a&&r&&($n[e][r]=$n[e][i])}var R=`math`,z=`text`,B=`main`,V=`ams`,er=`accent-token`,H=`bin`,tr=`close`,nr=`inner`,U=`mathord`,rr=`op-token`,ir=`open`,ar=`punct`,W=`rel`,or=`spacing`,G=`textord`;L(R,B,W,`≡`,`\\equiv`,!0),L(R,B,W,`≺`,`\\prec`,!0),L(R,B,W,`≻`,`\\succ`,!0),L(R,B,W,`∼`,`\\sim`,!0),L(R,B,W,`⊥`,`\\perp`),L(R,B,W,`⪯`,`\\preceq`,!0),L(R,B,W,`⪰`,`\\succeq`,!0),L(R,B,W,`≃`,`\\simeq`,!0),L(R,B,W,`∣`,`\\mid`,!0),L(R,B,W,`≪`,`\\ll`,!0),L(R,B,W,`≫`,`\\gg`,!0),L(R,B,W,`≍`,`\\asymp`,!0),L(R,B,W,`∥`,`\\parallel`),L(R,B,W,`⋈`,`\\bowtie`,!0),L(R,B,W,`⌣`,`\\smile`,!0),L(R,B,W,`⊑`,`\\sqsubseteq`,!0),L(R,B,W,`⊒`,`\\sqsupseteq`,!0),L(R,B,W,`≐`,`\\doteq`,!0),L(R,B,W,`⌢`,`\\frown`,!0),L(R,B,W,`∋`,`\\ni`,!0),L(R,B,W,`∝`,`\\propto`,!0),L(R,B,W,`⊢`,`\\vdash`,!0),L(R,B,W,`⊣`,`\\dashv`,!0),L(R,B,W,`∋`,`\\owns`),L(R,B,ar,`.`,`\\ldotp`),L(R,B,ar,`⋅`,`\\cdotp`),L(R,B,ar,`⋅`,`·`),L(z,B,G,`⋅`,`·`),L(R,B,G,`#`,`\\#`),L(z,B,G,`#`,`\\#`),L(R,B,G,`&`,`\\&`),L(z,B,G,`&`,`\\&`),L(R,B,G,`ℵ`,`\\aleph`,!0),L(R,B,G,`∀`,`\\forall`,!0),L(R,B,G,`ℏ`,`\\hbar`,!0),L(R,B,G,`∃`,`\\exists`,!0),L(R,B,G,`∇`,`\\nabla`,!0),L(R,B,G,`♭`,`\\flat`,!0),L(R,B,G,`ℓ`,`\\ell`,!0),L(R,B,G,`♮`,`\\natural`,!0),L(R,B,G,`♣`,`\\clubsuit`,!0),L(R,B,G,`℘`,`\\wp`,!0),L(R,B,G,`♯`,`\\sharp`,!0),L(R,B,G,`♢`,`\\diamondsuit`,!0),L(R,B,G,`ℜ`,`\\Re`,!0),L(R,B,G,`♡`,`\\heartsuit`,!0),L(R,B,G,`ℑ`,`\\Im`,!0),L(R,B,G,`♠`,`\\spadesuit`,!0),L(R,B,G,`§`,`\\S`,!0),L(z,B,G,`§`,`\\S`),L(R,B,G,`¶`,`\\P`,!0),L(z,B,G,`¶`,`\\P`),L(R,B,G,`†`,`\\dag`),L(z,B,G,`†`,`\\dag`),L(z,B,G,`†`,`\\textdagger`),L(R,B,G,`‡`,`\\ddag`),L(z,B,G,`‡`,`\\ddag`),L(z,B,G,`‡`,`\\textdaggerdbl`),L(R,B,tr,`⎱`,`\\rmoustache`,!0),L(R,B,ir,`⎰`,`\\lmoustache`,!0),L(R,B,tr,`⟯`,`\\rgroup`,!0),L(R,B,ir,`⟮`,`\\lgroup`,!0),L(R,B,H,`∓`,`\\mp`,!0),L(R,B,H,`⊖`,`\\ominus`,!0),L(R,B,H,`⊎`,`\\uplus`,!0),L(R,B,H,`⊓`,`\\sqcap`,!0),L(R,B,H,`∗`,`\\ast`),L(R,B,H,`⊔`,`\\sqcup`,!0),L(R,B,H,`◯`,`\\bigcirc`,!0),L(R,B,H,`∙`,`\\bullet`,!0),L(R,B,H,`‡`,`\\ddagger`),L(R,B,H,`≀`,`\\wr`,!0),L(R,B,H,`⨿`,`\\amalg`),L(R,B,H,`&`,`\\And`),L(R,B,W,`⟵`,`\\longleftarrow`,!0),L(R,B,W,`⇐`,`\\Leftarrow`,!0),L(R,B,W,`⟸`,`\\Longleftarrow`,!0),L(R,B,W,`⟶`,`\\longrightarrow`,!0),L(R,B,W,`⇒`,`\\Rightarrow`,!0),L(R,B,W,`⟹`,`\\Longrightarrow`,!0),L(R,B,W,`↔`,`\\leftrightarrow`,!0),L(R,B,W,`⟷`,`\\longleftrightarrow`,!0),L(R,B,W,`⇔`,`\\Leftrightarrow`,!0),L(R,B,W,`⟺`,`\\Longleftrightarrow`,!0),L(R,B,W,`↦`,`\\mapsto`,!0),L(R,B,W,`⟼`,`\\longmapsto`,!0),L(R,B,W,`↗`,`\\nearrow`,!0),L(R,B,W,`↩`,`\\hookleftarrow`,!0),L(R,B,W,`↪`,`\\hookrightarrow`,!0),L(R,B,W,`↘`,`\\searrow`,!0),L(R,B,W,`↼`,`\\leftharpoonup`,!0),L(R,B,W,`⇀`,`\\rightharpoonup`,!0),L(R,B,W,`↙`,`\\swarrow`,!0),L(R,B,W,`↽`,`\\leftharpoondown`,!0),L(R,B,W,`⇁`,`\\rightharpoondown`,!0),L(R,B,W,`↖`,`\\nwarrow`,!0),L(R,B,W,`⇌`,`\\rightleftharpoons`,!0),L(R,V,W,`≮`,`\\nless`,!0),L(R,V,W,``,`\\@nleqslant`),L(R,V,W,``,`\\@nleqq`),L(R,V,W,`⪇`,`\\lneq`,!0),L(R,V,W,`≨`,`\\lneqq`,!0),L(R,V,W,``,`\\@lvertneqq`),L(R,V,W,`⋦`,`\\lnsim`,!0),L(R,V,W,`⪉`,`\\lnapprox`,!0),L(R,V,W,`⊀`,`\\nprec`,!0),L(R,V,W,`⋠`,`\\npreceq`,!0),L(R,V,W,`⋨`,`\\precnsim`,!0),L(R,V,W,`⪹`,`\\precnapprox`,!0),L(R,V,W,`≁`,`\\nsim`,!0),L(R,V,W,``,`\\@nshortmid`),L(R,V,W,`∤`,`\\nmid`,!0),L(R,V,W,`⊬`,`\\nvdash`,!0),L(R,V,W,`⊭`,`\\nvDash`,!0),L(R,V,W,`⋪`,`\\ntriangleleft`),L(R,V,W,`⋬`,`\\ntrianglelefteq`,!0),L(R,V,W,`⊊`,`\\subsetneq`,!0),L(R,V,W,``,`\\@varsubsetneq`),L(R,V,W,`⫋`,`\\subsetneqq`,!0),L(R,V,W,``,`\\@varsubsetneqq`),L(R,V,W,`≯`,`\\ngtr`,!0),L(R,V,W,``,`\\@ngeqslant`),L(R,V,W,``,`\\@ngeqq`),L(R,V,W,`⪈`,`\\gneq`,!0),L(R,V,W,`≩`,`\\gneqq`,!0),L(R,V,W,``,`\\@gvertneqq`),L(R,V,W,`⋧`,`\\gnsim`,!0),L(R,V,W,`⪊`,`\\gnapprox`,!0),L(R,V,W,`⊁`,`\\nsucc`,!0),L(R,V,W,`⋡`,`\\nsucceq`,!0),L(R,V,W,`⋩`,`\\succnsim`,!0),L(R,V,W,`⪺`,`\\succnapprox`,!0),L(R,V,W,`≆`,`\\ncong`,!0),L(R,V,W,``,`\\@nshortparallel`),L(R,V,W,`∦`,`\\nparallel`,!0),L(R,V,W,`⊯`,`\\nVDash`,!0),L(R,V,W,`⋫`,`\\ntriangleright`),L(R,V,W,`⋭`,`\\ntrianglerighteq`,!0),L(R,V,W,``,`\\@nsupseteqq`),L(R,V,W,`⊋`,`\\supsetneq`,!0),L(R,V,W,``,`\\@varsupsetneq`),L(R,V,W,`⫌`,`\\supsetneqq`,!0),L(R,V,W,``,`\\@varsupsetneqq`),L(R,V,W,`⊮`,`\\nVdash`,!0),L(R,V,W,`⪵`,`\\precneqq`,!0),L(R,V,W,`⪶`,`\\succneqq`,!0),L(R,V,W,``,`\\@nsubseteqq`),L(R,V,H,`⊴`,`\\unlhd`),L(R,V,H,`⊵`,`\\unrhd`),L(R,V,W,`↚`,`\\nleftarrow`,!0),L(R,V,W,`↛`,`\\nrightarrow`,!0),L(R,V,W,`⇍`,`\\nLeftarrow`,!0),L(R,V,W,`⇏`,`\\nRightarrow`,!0),L(R,V,W,`↮`,`\\nleftrightarrow`,!0),L(R,V,W,`⇎`,`\\nLeftrightarrow`,!0),L(R,V,W,`△`,`\\vartriangle`),L(R,V,G,`ℏ`,`\\hslash`),L(R,V,G,`▽`,`\\triangledown`),L(R,V,G,`◊`,`\\lozenge`),L(R,V,G,`Ⓢ`,`\\circledS`),L(R,V,G,`®`,`\\circledR`),L(z,V,G,`®`,`\\circledR`),L(R,V,G,`∡`,`\\measuredangle`,!0),L(R,V,G,`∄`,`\\nexists`),L(R,V,G,`℧`,`\\mho`),L(R,V,G,`Ⅎ`,`\\Finv`,!0),L(R,V,G,`⅁`,`\\Game`,!0),L(R,V,G,`‵`,`\\backprime`),L(R,V,G,`▲`,`\\blacktriangle`),L(R,V,G,`▼`,`\\blacktriangledown`),L(R,V,G,`■`,`\\blacksquare`),L(R,V,G,`⧫`,`\\blacklozenge`),L(R,V,G,`★`,`\\bigstar`),L(R,V,G,`∢`,`\\sphericalangle`,!0),L(R,V,G,`∁`,`\\complement`,!0),L(R,V,G,`ð`,`\\eth`,!0),L(z,B,G,`ð`,`ð`),L(R,V,G,`╱`,`\\diagup`),L(R,V,G,`╲`,`\\diagdown`),L(R,V,G,`□`,`\\square`),L(R,V,G,`□`,`\\Box`),L(R,V,G,`◊`,`\\Diamond`),L(R,V,G,`¥`,`\\yen`,!0),L(z,V,G,`¥`,`\\yen`,!0),L(R,V,G,`✓`,`\\checkmark`,!0),L(z,V,G,`✓`,`\\checkmark`),L(R,V,G,`ℶ`,`\\beth`,!0),L(R,V,G,`ℸ`,`\\daleth`,!0),L(R,V,G,`ℷ`,`\\gimel`,!0),L(R,V,G,`ϝ`,`\\digamma`,!0),L(R,V,G,`ϰ`,`\\varkappa`),L(R,V,ir,`┌`,`\\@ulcorner`,!0),L(R,V,tr,`┐`,`\\@urcorner`,!0),L(R,V,ir,`└`,`\\@llcorner`,!0),L(R,V,tr,`┘`,`\\@lrcorner`,!0),L(R,V,W,`≦`,`\\leqq`,!0),L(R,V,W,`⩽`,`\\leqslant`,!0),L(R,V,W,`⪕`,`\\eqslantless`,!0),L(R,V,W,`≲`,`\\lesssim`,!0),L(R,V,W,`⪅`,`\\lessapprox`,!0),L(R,V,W,`≊`,`\\approxeq`,!0),L(R,V,H,`⋖`,`\\lessdot`),L(R,V,W,`⋘`,`\\lll`,!0),L(R,V,W,`≶`,`\\lessgtr`,!0),L(R,V,W,`⋚`,`\\lesseqgtr`,!0),L(R,V,W,`⪋`,`\\lesseqqgtr`,!0),L(R,V,W,`≑`,`\\doteqdot`),L(R,V,W,`≓`,`\\risingdotseq`,!0),L(R,V,W,`≒`,`\\fallingdotseq`,!0),L(R,V,W,`∽`,`\\backsim`,!0),L(R,V,W,`⋍`,`\\backsimeq`,!0),L(R,V,W,`⫅`,`\\subseteqq`,!0),L(R,V,W,`⋐`,`\\Subset`,!0),L(R,V,W,`⊏`,`\\sqsubset`,!0),L(R,V,W,`≼`,`\\preccurlyeq`,!0),L(R,V,W,`⋞`,`\\curlyeqprec`,!0),L(R,V,W,`≾`,`\\precsim`,!0),L(R,V,W,`⪷`,`\\precapprox`,!0),L(R,V,W,`⊲`,`\\vartriangleleft`),L(R,V,W,`⊴`,`\\trianglelefteq`),L(R,V,W,`⊨`,`\\vDash`,!0),L(R,V,W,`⊪`,`\\Vvdash`,!0),L(R,V,W,`⌣`,`\\smallsmile`),L(R,V,W,`⌢`,`\\smallfrown`),L(R,V,W,`≏`,`\\bumpeq`,!0),L(R,V,W,`≎`,`\\Bumpeq`,!0),L(R,V,W,`≧`,`\\geqq`,!0),L(R,V,W,`⩾`,`\\geqslant`,!0),L(R,V,W,`⪖`,`\\eqslantgtr`,!0),L(R,V,W,`≳`,`\\gtrsim`,!0),L(R,V,W,`⪆`,`\\gtrapprox`,!0),L(R,V,H,`⋗`,`\\gtrdot`),L(R,V,W,`⋙`,`\\ggg`,!0),L(R,V,W,`≷`,`\\gtrless`,!0),L(R,V,W,`⋛`,`\\gtreqless`,!0),L(R,V,W,`⪌`,`\\gtreqqless`,!0),L(R,V,W,`≖`,`\\eqcirc`,!0),L(R,V,W,`≗`,`\\circeq`,!0),L(R,V,W,`≜`,`\\triangleq`,!0),L(R,V,W,`∼`,`\\thicksim`),L(R,V,W,`≈`,`\\thickapprox`),L(R,V,W,`⫆`,`\\supseteqq`,!0),L(R,V,W,`⋑`,`\\Supset`,!0),L(R,V,W,`⊐`,`\\sqsupset`,!0),L(R,V,W,`≽`,`\\succcurlyeq`,!0),L(R,V,W,`⋟`,`\\curlyeqsucc`,!0),L(R,V,W,`≿`,`\\succsim`,!0),L(R,V,W,`⪸`,`\\succapprox`,!0),L(R,V,W,`⊳`,`\\vartriangleright`),L(R,V,W,`⊵`,`\\trianglerighteq`),L(R,V,W,`⊩`,`\\Vdash`,!0),L(R,V,W,`∣`,`\\shortmid`),L(R,V,W,`∥`,`\\shortparallel`),L(R,V,W,`≬`,`\\between`,!0),L(R,V,W,`⋔`,`\\pitchfork`,!0),L(R,V,W,`∝`,`\\varpropto`),L(R,V,W,`◀`,`\\blacktriangleleft`),L(R,V,W,`∴`,`\\therefore`,!0),L(R,V,W,`∍`,`\\backepsilon`),L(R,V,W,`▶`,`\\blacktriangleright`),L(R,V,W,`∵`,`\\because`,!0),L(R,V,W,`⋘`,`\\llless`),L(R,V,W,`⋙`,`\\gggtr`),L(R,V,H,`⊲`,`\\lhd`),L(R,V,H,`⊳`,`\\rhd`),L(R,V,W,`≂`,`\\eqsim`,!0),L(R,B,W,`⋈`,`\\Join`),L(R,V,W,`≑`,`\\Doteq`,!0),L(R,V,H,`∔`,`\\dotplus`,!0),L(R,V,H,`∖`,`\\smallsetminus`),L(R,V,H,`⋒`,`\\Cap`,!0),L(R,V,H,`⋓`,`\\Cup`,!0),L(R,V,H,`⩞`,`\\doublebarwedge`,!0),L(R,V,H,`⊟`,`\\boxminus`,!0),L(R,V,H,`⊞`,`\\boxplus`,!0),L(R,V,H,`⋇`,`\\divideontimes`,!0),L(R,V,H,`⋉`,`\\ltimes`,!0),L(R,V,H,`⋊`,`\\rtimes`,!0),L(R,V,H,`⋋`,`\\leftthreetimes`,!0),L(R,V,H,`⋌`,`\\rightthreetimes`,!0),L(R,V,H,`⋏`,`\\curlywedge`,!0),L(R,V,H,`⋎`,`\\curlyvee`,!0),L(R,V,H,`⊝`,`\\circleddash`,!0),L(R,V,H,`⊛`,`\\circledast`,!0),L(R,V,H,`⋅`,`\\centerdot`),L(R,V,H,`⊺`,`\\intercal`,!0),L(R,V,H,`⋒`,`\\doublecap`),L(R,V,H,`⋓`,`\\doublecup`),L(R,V,H,`⊠`,`\\boxtimes`,!0),L(R,V,W,`⇢`,`\\dashrightarrow`,!0),L(R,V,W,`⇠`,`\\dashleftarrow`,!0),L(R,V,W,`⇇`,`\\leftleftarrows`,!0),L(R,V,W,`⇆`,`\\leftrightarrows`,!0),L(R,V,W,`⇚`,`\\Lleftarrow`,!0),L(R,V,W,`↞`,`\\twoheadleftarrow`,!0),L(R,V,W,`↢`,`\\leftarrowtail`,!0),L(R,V,W,`↫`,`\\looparrowleft`,!0),L(R,V,W,`⇋`,`\\leftrightharpoons`,!0),L(R,V,W,`↶`,`\\curvearrowleft`,!0),L(R,V,W,`↺`,`\\circlearrowleft`,!0),L(R,V,W,`↰`,`\\Lsh`,!0),L(R,V,W,`⇈`,`\\upuparrows`,!0),L(R,V,W,`↿`,`\\upharpoonleft`,!0),L(R,V,W,`⇃`,`\\downharpoonleft`,!0),L(R,B,W,`⊶`,`\\origof`,!0),L(R,B,W,`⊷`,`\\imageof`,!0),L(R,V,W,`⊸`,`\\multimap`,!0),L(R,V,W,`↭`,`\\leftrightsquigarrow`,!0),L(R,V,W,`⇉`,`\\rightrightarrows`,!0),L(R,V,W,`⇄`,`\\rightleftarrows`,!0),L(R,V,W,`↠`,`\\twoheadrightarrow`,!0),L(R,V,W,`↣`,`\\rightarrowtail`,!0),L(R,V,W,`↬`,`\\looparrowright`,!0),L(R,V,W,`↷`,`\\curvearrowright`,!0),L(R,V,W,`↻`,`\\circlearrowright`,!0),L(R,V,W,`↱`,`\\Rsh`,!0),L(R,V,W,`⇊`,`\\downdownarrows`,!0),L(R,V,W,`↾`,`\\upharpoonright`,!0),L(R,V,W,`⇂`,`\\downharpoonright`,!0),L(R,V,W,`⇝`,`\\rightsquigarrow`,!0),L(R,V,W,`⇝`,`\\leadsto`),L(R,V,W,`⇛`,`\\Rrightarrow`,!0),L(R,V,W,`↾`,`\\restriction`),L(R,B,G,`‘`,"`"),L(R,B,G,`$`,`\\$`),L(z,B,G,`$`,`\\$`),L(z,B,G,`$`,`\\textdollar`),L(R,B,G,`%`,`\\%`),L(z,B,G,`%`,`\\%`),L(R,B,G,`_`,`\\_`),L(z,B,G,`_`,`\\_`),L(z,B,G,`_`,`\\textunderscore`),L(R,B,G,`∠`,`\\angle`,!0),L(R,B,G,`∞`,`\\infty`,!0),L(R,B,G,`′`,`\\prime`),L(R,B,G,`△`,`\\triangle`),L(R,B,G,`Γ`,`\\Gamma`,!0),L(R,B,G,`Δ`,`\\Delta`,!0),L(R,B,G,`Θ`,`\\Theta`,!0),L(R,B,G,`Λ`,`\\Lambda`,!0),L(R,B,G,`Ξ`,`\\Xi`,!0),L(R,B,G,`Π`,`\\Pi`,!0),L(R,B,G,`Σ`,`\\Sigma`,!0),L(R,B,G,`Υ`,`\\Upsilon`,!0),L(R,B,G,`Φ`,`\\Phi`,!0),L(R,B,G,`Ψ`,`\\Psi`,!0),L(R,B,G,`Ω`,`\\Omega`,!0),L(R,B,G,`A`,`Α`),L(R,B,G,`B`,`Β`),L(R,B,G,`E`,`Ε`),L(R,B,G,`Z`,`Ζ`),L(R,B,G,`H`,`Η`),L(R,B,G,`I`,`Ι`),L(R,B,G,`K`,`Κ`),L(R,B,G,`M`,`Μ`),L(R,B,G,`N`,`Ν`),L(R,B,G,`O`,`Ο`),L(R,B,G,`P`,`Ρ`),L(R,B,G,`T`,`Τ`),L(R,B,G,`X`,`Χ`),L(R,B,G,`¬`,`\\neg`,!0),L(R,B,G,`¬`,`\\lnot`),L(R,B,G,`⊤`,`\\top`),L(R,B,G,`⊥`,`\\bot`),L(R,B,G,`∅`,`\\emptyset`),L(R,V,G,`∅`,`\\varnothing`),L(R,B,U,`α`,`\\alpha`,!0),L(R,B,U,`β`,`\\beta`,!0),L(R,B,U,`γ`,`\\gamma`,!0),L(R,B,U,`δ`,`\\delta`,!0),L(R,B,U,`ϵ`,`\\epsilon`,!0),L(R,B,U,`ζ`,`\\zeta`,!0),L(R,B,U,`η`,`\\eta`,!0),L(R,B,U,`θ`,`\\theta`,!0),L(R,B,U,`ι`,`\\iota`,!0),L(R,B,U,`κ`,`\\kappa`,!0),L(R,B,U,`λ`,`\\lambda`,!0),L(R,B,U,`μ`,`\\mu`,!0),L(R,B,U,`ν`,`\\nu`,!0),L(R,B,U,`ξ`,`\\xi`,!0),L(R,B,U,`ο`,`\\omicron`,!0),L(R,B,U,`π`,`\\pi`,!0),L(R,B,U,`ρ`,`\\rho`,!0),L(R,B,U,`σ`,`\\sigma`,!0),L(R,B,U,`τ`,`\\tau`,!0),L(R,B,U,`υ`,`\\upsilon`,!0),L(R,B,U,`ϕ`,`\\phi`,!0),L(R,B,U,`χ`,`\\chi`,!0),L(R,B,U,`ψ`,`\\psi`,!0),L(R,B,U,`ω`,`\\omega`,!0),L(R,B,U,`ε`,`\\varepsilon`,!0),L(R,B,U,`ϑ`,`\\vartheta`,!0),L(R,B,U,`ϖ`,`\\varpi`,!0),L(R,B,U,`ϱ`,`\\varrho`,!0),L(R,B,U,`ς`,`\\varsigma`,!0),L(R,B,U,`φ`,`\\varphi`,!0),L(R,B,H,`∗`,`*`,!0),L(R,B,H,`+`,`+`),L(R,B,H,`−`,`-`,!0),L(R,B,H,`⋅`,`\\cdot`,!0),L(R,B,H,`∘`,`\\circ`,!0),L(R,B,H,`÷`,`\\div`,!0),L(R,B,H,`±`,`\\pm`,!0),L(R,B,H,`×`,`\\times`,!0),L(R,B,H,`∩`,`\\cap`,!0),L(R,B,H,`∪`,`\\cup`,!0),L(R,B,H,`∖`,`\\setminus`,!0),L(R,B,H,`∧`,`\\land`),L(R,B,H,`∨`,`\\lor`),L(R,B,H,`∧`,`\\wedge`,!0),L(R,B,H,`∨`,`\\vee`,!0),L(R,B,G,`√`,`\\surd`),L(R,B,ir,`⟨`,`\\langle`,!0),L(R,B,ir,`∣`,`\\lvert`),L(R,B,ir,`∥`,`\\lVert`),L(R,B,tr,`?`,`?`),L(R,B,tr,`!`,`!`),L(R,B,tr,`⟩`,`\\rangle`,!0),L(R,B,tr,`∣`,`\\rvert`),L(R,B,tr,`∥`,`\\rVert`),L(R,B,W,`=`,`=`),L(R,B,W,`:`,`:`),L(R,B,W,`≈`,`\\approx`,!0),L(R,B,W,`≅`,`\\cong`,!0),L(R,B,W,`≥`,`\\ge`),L(R,B,W,`≥`,`\\geq`,!0),L(R,B,W,`←`,`\\gets`),L(R,B,W,`>`,`\\gt`,!0),L(R,B,W,`∈`,`\\in`,!0),L(R,B,W,``,`\\@not`),L(R,B,W,`⊂`,`\\subset`,!0),L(R,B,W,`⊃`,`\\supset`,!0),L(R,B,W,`⊆`,`\\subseteq`,!0),L(R,B,W,`⊇`,`\\supseteq`,!0),L(R,V,W,`⊈`,`\\nsubseteq`,!0),L(R,V,W,`⊉`,`\\nsupseteq`,!0),L(R,B,W,`⊨`,`\\models`),L(R,B,W,`←`,`\\leftarrow`,!0),L(R,B,W,`≤`,`\\le`),L(R,B,W,`≤`,`\\leq`,!0),L(R,B,W,`<`,`\\lt`,!0),L(R,B,W,`→`,`\\rightarrow`,!0),L(R,B,W,`→`,`\\to`),L(R,V,W,`≱`,`\\ngeq`,!0),L(R,V,W,`≰`,`\\nleq`,!0),L(R,B,or,`\xA0`,`\\ `),L(R,B,or,`\xA0`,`\\space`),L(R,B,or,`\xA0`,`\\nobreakspace`),L(z,B,or,`\xA0`,`\\ `),L(z,B,or,`\xA0`,` `),L(z,B,or,`\xA0`,`\\space`),L(z,B,or,`\xA0`,`\\nobreakspace`),L(R,B,or,``,`\\nobreak`),L(R,B,or,``,`\\allowbreak`),L(R,B,ar,`,`,`,`),L(R,B,ar,`;`,`;`),L(R,V,H,`⊼`,`\\barwedge`,!0),L(R,V,H,`⊻`,`\\veebar`,!0),L(R,B,H,`⊙`,`\\odot`,!0),L(R,B,H,`⊕`,`\\oplus`,!0),L(R,B,H,`⊗`,`\\otimes`,!0),L(R,B,G,`∂`,`\\partial`,!0),L(R,B,H,`⊘`,`\\oslash`,!0),L(R,V,H,`⊚`,`\\circledcirc`,!0),L(R,V,H,`⊡`,`\\boxdot`,!0),L(R,B,H,`△`,`\\bigtriangleup`),L(R,B,H,`▽`,`\\bigtriangledown`),L(R,B,H,`†`,`\\dagger`),L(R,B,H,`⋄`,`\\diamond`),L(R,B,H,`⋆`,`\\star`),L(R,B,H,`◃`,`\\triangleleft`),L(R,B,H,`▹`,`\\triangleright`),L(R,B,ir,`{`,`\\{`),L(z,B,G,`{`,`\\{`),L(z,B,G,`{`,`\\textbraceleft`),L(R,B,tr,`}`,`\\}`),L(z,B,G,`}`,`\\}`),L(z,B,G,`}`,`\\textbraceright`),L(R,B,ir,`{`,`\\lbrace`),L(R,B,tr,`}`,`\\rbrace`),L(R,B,ir,`[`,`\\lbrack`,!0),L(z,B,G,`[`,`\\lbrack`,!0),L(R,B,tr,`]`,`\\rbrack`,!0),L(z,B,G,`]`,`\\rbrack`,!0),L(R,B,ir,`(`,`\\lparen`,!0),L(R,B,tr,`)`,`\\rparen`,!0),L(z,B,G,`<`,`\\textless`,!0),L(z,B,G,`>`,`\\textgreater`,!0),L(R,B,ir,`⌊`,`\\lfloor`,!0),L(R,B,tr,`⌋`,`\\rfloor`,!0),L(R,B,ir,`⌈`,`\\lceil`,!0),L(R,B,tr,`⌉`,`\\rceil`,!0),L(R,B,G,`\\`,`\\backslash`),L(R,B,G,`∣`,`|`),L(R,B,G,`∣`,`\\vert`),L(z,B,G,`|`,`\\textbar`,!0),L(R,B,G,`∥`,`\\|`),L(R,B,G,`∥`,`\\Vert`),L(z,B,G,`∥`,`\\textbardbl`),L(z,B,G,`~`,`\\textasciitilde`),L(z,B,G,`\\`,`\\textbackslash`),L(z,B,G,`^`,`\\textasciicircum`),L(R,B,W,`↑`,`\\uparrow`,!0),L(R,B,W,`⇑`,`\\Uparrow`,!0),L(R,B,W,`↓`,`\\downarrow`,!0),L(R,B,W,`⇓`,`\\Downarrow`,!0),L(R,B,W,`↕`,`\\updownarrow`,!0),L(R,B,W,`⇕`,`\\Updownarrow`,!0),L(R,B,rr,`∐`,`\\coprod`),L(R,B,rr,`⋁`,`\\bigvee`),L(R,B,rr,`⋀`,`\\bigwedge`),L(R,B,rr,`⨄`,`\\biguplus`),L(R,B,rr,`⋂`,`\\bigcap`),L(R,B,rr,`⋃`,`\\bigcup`),L(R,B,rr,`∫`,`\\int`),L(R,B,rr,`∫`,`\\intop`),L(R,B,rr,`∬`,`\\iint`),L(R,B,rr,`∭`,`\\iiint`),L(R,B,rr,`∏`,`\\prod`),L(R,B,rr,`∑`,`\\sum`),L(R,B,rr,`⨂`,`\\bigotimes`),L(R,B,rr,`⨁`,`\\bigoplus`),L(R,B,rr,`⨀`,`\\bigodot`),L(R,B,rr,`∮`,`\\oint`),L(R,B,rr,`∯`,`\\oiint`),L(R,B,rr,`∰`,`\\oiiint`),L(R,B,rr,`⨆`,`\\bigsqcup`),L(R,B,rr,`∫`,`\\smallint`),L(z,B,nr,`…`,`\\textellipsis`),L(R,B,nr,`…`,`\\mathellipsis`),L(z,B,nr,`…`,`\\ldots`,!0),L(R,B,nr,`…`,`\\ldots`,!0),L(R,B,nr,`⋯`,`\\@cdots`,!0),L(R,B,nr,`⋱`,`\\ddots`,!0),L(R,B,G,`⋮`,`\\varvdots`),L(z,B,G,`⋮`,`\\varvdots`),L(R,B,er,`ˊ`,`\\acute`),L(R,B,er,`ˋ`,`\\grave`),L(R,B,er,`¨`,`\\ddot`),L(R,B,er,`~`,`\\tilde`),L(R,B,er,`ˉ`,`\\bar`),L(R,B,er,`˘`,`\\breve`),L(R,B,er,`ˇ`,`\\check`),L(R,B,er,`^`,`\\hat`),L(R,B,er,`⃗`,`\\vec`),L(R,B,er,`˙`,`\\dot`),L(R,B,er,`˚`,`\\mathring`),L(R,B,U,``,`\\@imath`),L(R,B,U,``,`\\@jmath`),L(R,B,G,`ı`,`ı`),L(R,B,G,`ȷ`,`ȷ`),L(z,B,G,`ı`,`\\i`,!0),L(z,B,G,`ȷ`,`\\j`,!0),L(z,B,G,`ß`,`\\ss`,!0),L(z,B,G,`æ`,`\\ae`,!0),L(z,B,G,`œ`,`\\oe`,!0),L(z,B,G,`ø`,`\\o`,!0),L(z,B,G,`Æ`,`\\AE`,!0),L(z,B,G,`Œ`,`\\OE`,!0),L(z,B,G,`Ø`,`\\O`,!0),L(z,B,er,`ˊ`,`\\'`),L(z,B,er,`ˋ`,"\\`"),L(z,B,er,`ˆ`,`\\^`),L(z,B,er,`˜`,`\\~`),L(z,B,er,`ˉ`,`\\=`),L(z,B,er,`˘`,`\\u`),L(z,B,er,`˙`,`\\.`),L(z,B,er,`¸`,`\\c`),L(z,B,er,`˚`,`\\r`),L(z,B,er,`ˇ`,`\\v`),L(z,B,er,`¨`,`\\"`),L(z,B,er,`˝`,`\\H`),L(z,B,er,`◯`,`\\textcircled`);var sr={"--":!0,"---":!0,"``":!0,"''":!0};L(z,B,G,`–`,`--`,!0),L(z,B,G,`–`,`\\textendash`),L(z,B,G,`—`,`---`,!0),L(z,B,G,`—`,`\\textemdash`),L(z,B,G,`‘`,"`",!0),L(z,B,G,`‘`,`\\textquoteleft`),L(z,B,G,`’`,`'`,!0),L(z,B,G,`’`,`\\textquoteright`),L(z,B,G,`“`,"``",!0),L(z,B,G,`“`,`\\textquotedblleft`),L(z,B,G,`”`,`''`,!0),L(z,B,G,`”`,`\\textquotedblright`),L(R,B,G,`°`,`\\degree`,!0),L(z,B,G,`°`,`\\degree`),L(z,B,G,`°`,`\\textdegree`,!0),L(R,B,G,`£`,`\\pounds`),L(R,B,G,`£`,`\\mathsterling`,!0),L(z,B,G,`£`,`\\pounds`),L(z,B,G,`£`,`\\textsterling`,!0),L(R,V,G,`✠`,`\\maltese`),L(z,V,G,`✠`,`\\maltese`);for(var cr=`0123456789/@."`,lr=0;lr<cr.length;lr++){var ur=cr.charAt(lr);L(R,B,G,ur,ur)}for(var dr=`0123456789!@*()-=+";:?/.,`,fr=0;fr<dr.length;fr++){var pr=dr.charAt(fr);L(z,B,G,pr,pr)}for(var mr=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`,hr=0;hr<mr.length;hr++){var gr=mr.charAt(hr);L(R,B,U,gr,gr),L(z,B,G,gr,gr)}L(R,V,G,`C`,`ℂ`),L(z,V,G,`C`,`ℂ`),L(R,V,G,`H`,`ℍ`),L(z,V,G,`H`,`ℍ`),L(R,V,G,`N`,`ℕ`),L(z,V,G,`N`,`ℕ`),L(R,V,G,`P`,`ℙ`),L(z,V,G,`P`,`ℙ`),L(R,V,G,`Q`,`ℚ`),L(z,V,G,`Q`,`ℚ`),L(R,V,G,`R`,`ℝ`),L(z,V,G,`R`,`ℝ`),L(R,V,G,`Z`,`ℤ`),L(z,V,G,`Z`,`ℤ`),L(R,B,U,`h`,`ℎ`),L(z,B,U,`h`,`ℎ`);for(var K,_r=0;_r<mr.length;_r++){var vr=mr.charAt(_r);K=String.fromCharCode(55349,56320+_r),L(R,B,U,vr,K),L(z,B,G,vr,K),K=String.fromCharCode(55349,56372+_r),L(R,B,U,vr,K),L(z,B,G,vr,K),K=String.fromCharCode(55349,56424+_r),L(R,B,U,vr,K),L(z,B,G,vr,K),K=String.fromCharCode(55349,56580+_r),L(R,B,U,vr,K),L(z,B,G,vr,K),K=String.fromCharCode(55349,56684+_r),L(R,B,U,vr,K),L(z,B,G,vr,K),K=String.fromCharCode(55349,56736+_r),L(R,B,U,vr,K),L(z,B,G,vr,K),K=String.fromCharCode(55349,56788+_r),L(R,B,U,vr,K),L(z,B,G,vr,K),K=String.fromCharCode(55349,56840+_r),L(R,B,U,vr,K),L(z,B,G,vr,K),K=String.fromCharCode(55349,56944+_r),L(R,B,U,vr,K),L(z,B,G,vr,K),_r<26&&(K=String.fromCharCode(55349,56632+_r),L(R,B,U,vr,K),L(z,B,G,vr,K),K=String.fromCharCode(55349,56476+_r),L(R,B,U,vr,K),L(z,B,G,vr,K))}K=String.fromCharCode(55349,56668),L(R,B,U,`k`,K),L(z,B,G,`k`,K);for(var yr=0;yr<10;yr++){var br=yr.toString();K=String.fromCharCode(55349,57294+yr),L(R,B,U,br,K),L(z,B,G,br,K),K=String.fromCharCode(55349,57314+yr),L(R,B,U,br,K),L(z,B,G,br,K),K=String.fromCharCode(55349,57324+yr),L(R,B,U,br,K),L(z,B,G,br,K),K=String.fromCharCode(55349,57334+yr),L(R,B,U,br,K),L(z,B,G,br,K)}for(var xr=`ÐÞþ`,Sr=0;Sr<xr.length;Sr++){var Cr=xr.charAt(Sr);L(R,B,U,Cr,Cr),L(z,B,G,Cr,Cr)}var wr={mathClass:`mathbf`,textClass:`textbf`,font:`Main-Bold`},Tr={mathClass:`mathnormal`,textClass:`textit`,font:`Math-Italic`},Er={mathClass:`boldsymbol`,textClass:`boldsymbol`,font:`Main-BoldItalic`},Dr={mathClass:`mathscr`,textClass:`textscr`,font:`Script-Regular`},Or={mathClass:``,textClass:``,font:``},kr={mathClass:`mathfrak`,textClass:`textfrak`,font:`Fraktur-Regular`},Ar={mathClass:`mathbb`,textClass:`textbb`,font:`AMS-Regular`},jr={mathClass:`mathboldfrak`,textClass:`textboldfrak`,font:`Fraktur-Regular`},Mr={mathClass:`mathsf`,textClass:`textsf`,font:`SansSerif-Regular`},Nr={mathClass:`mathboldsf`,textClass:`textboldsf`,font:`SansSerif-Bold`},Pr={mathClass:`mathitsf`,textClass:`textitsf`,font:`SansSerif-Italic`},Fr={mathClass:`mathtt`,textClass:`texttt`,font:`Typewriter-Regular`},Ir=[wr,wr,Tr,Tr,Er,Er,Dr,Or,Or,Or,kr,kr,Ar,Ar,jr,jr,Mr,Mr,Nr,Nr,Pr,Pr,Or,Or,Fr,Fr],Lr=[wr,Or,Mr,Nr,Fr],Rr=e=>{var t=e.charCodeAt(0),n=e.charCodeAt(1),r=(t-55296)*1024+(n-56320)+65536;if(119808<=r&&r<120484)return Ir[Math.floor((r-119808)/26)];if(120782<=r&&r<=120831)return Lr[Math.floor((r-120782)/10)];if(r===120485||r===120486)return Ir[0];if(120486<r&&r<120782)return Or;throw new P(`Unsupported character: `+e)},zr=function(e,t,n){if($n[n][e]){var r=$n[n][e].replace;r&&(e=r)}return{value:e,metrics:Xn(e,t,n)}},Br=function(e,t,n,r,i){var a=zr(e,t,n),o=a.metrics;e=a.value;var s;if(o){var c=o.italic;(n===`text`||r&&r.font===`mathit`)&&(c=0),s=new zn(e,o.height,o.depth,c,o.skew,o.width,i)}else typeof console<`u`&&console.warn(`No character metrics `+(`for '`+e+`' in style '`+t+`' and mode '`+n+`'`)),s=new zn(e,0,0,0,0,0,i);if(r){s.maxFontSize=r.sizeMultiplier,r.style.isTight()&&s.classes.push(`mtight`);var l=r.getColor();l&&(s.style.color=l)}return s},Vr=function(e,t,n,r){return r===void 0&&(r=[]),n.font===`boldsymbol`&&zr(e,`Main-Bold`,t).metrics?Br(e,`Main-Bold`,t,n,r.concat([`mathbf`])):e===`\\`||$n[t][e].font===`main`?Br(e,`Main-Regular`,t,n,r):Br(e,`AMS-Regular`,t,n,r.concat([`amsrm`]))},Hr=function(e,t,n){return n!==`textord`&&zr(e,`Math-BoldItalic`,t).metrics?{fontName:`Math-BoldItalic`,fontClass:`boldsymbol`}:{fontName:`Main-Bold`,fontClass:`mathbf`}},Ur=function(e,t){var n=e.type===`mathord`?`mathord`:`textord`,r=e.mode,i=e.text,a=[`mord`],o=t.font,s=t.fontFamily,c=t.fontWeight,l=t.fontShape,u=r===`math`||r===`text`&&!!o,d=u?o:s,f=``,p=``;if(i.charCodeAt(0)===55349){var m=Rr(i);f=m.font,p=m[r+`Class`]}if(f)return Br(i,f,r,t,a.concat(p));if(d){var h,g;if(d===`boldsymbol`){var _=Hr(i,r,n);h=_.fontName,g=[_.fontClass]}else u?(h=ni[o].fontName,g=[o]):(h=ti(s,c,l),g=[s,c,l]);if(zr(i,h,r).metrics)return Br(i,h,r,t,a.concat(g));if(Object.prototype.hasOwnProperty.call(sr,i)&&h.slice(0,10)===`Typewriter`){for(var v=[],y=0;y<i.length;y++)v.push(Br(i[y],h,r,t,a.concat(g)));return Xr(v)}}if(n===`mathord`)return Br(i,`Math-Italic`,r,t,a.concat([`mathnormal`]));if(n===`textord`){var b=$n[r][i]&&$n[r][i].font;if(b===`ams`)return Br(i,ti(`amsrm`,c,l),r,t,a.concat(`amsrm`,c,l));if(b===`main`||!b)return Br(i,ti(`textrm`,c,l),r,t,a.concat(c,l));var x=ti(b,c,l);return Br(i,x,r,t,a.concat(x,c,l))}else throw Error(`unexpected type: `+n+` in makeOrd`)},Wr=(e,t)=>{if(kn(e.classes)!==kn(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize||e.italic!==0&&e.hasClass(`mathnormal`))return!1;if(e.classes.length===1){var n=e.classes[0];if(n===`mbin`||n===`mord`)return!1}for(var r of Object.keys(e.style))if(e.style[r]!==t.style[r])return!1;for(var i of Object.keys(t.style))if(e.style[i]!==t.style[i])return!1;return!0},Gr=e=>{for(var t=0;t<e.length-1;t++){var n=e[t],r=e[t+1];n instanceof zn&&r instanceof zn&&Wr(n,r)&&(n.text+=r.text,n.height=Math.max(n.height,r.height),n.depth=Math.max(n.depth,r.depth),n.italic=r.italic,e.splice(t+1,1),t--)}return e},Kr=function(e){for(var t=0,n=0,r=0,i=0;i<e.children.length;i++){var a=e.children[i];a.height>t&&(t=a.height),a.depth>n&&(n=a.depth),a.maxFontSize>r&&(r=a.maxFontSize)}e.height=t,e.depth=n,e.maxFontSize=r},q=function(e,t,n,r){var i=new Fn(e,t,n,r);return Kr(i),i},qr=(e,t,n,r)=>new Fn(e,t,n,r),Jr=function(e,t,n){var r=q([e],[],t);return r.height=Math.max(n||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),r.style.borderBottomWidth=I(r.height),r.maxFontSize=1,r},Yr=function(e,t,n,r){var i=new In(e,t,n,r);return Kr(i),i},Xr=function(e){var t=new wn(e);return Kr(t),t},Zr=function(e,t){return e instanceof wn?q([],[e],t):e},Qr=function(e){if(e.positionType===`individualShift`){for(var t=e.children,n=[t[0]],r=-t[0].shift-t[0].elem.depth,i=r,a=1;a<t.length;a++){var o=-t[a].shift-i-t[a].elem.depth,s=o-(t[a-1].elem.height+t[a-1].elem.depth);i+=o,n.push({type:`kern`,size:s}),n.push(t[a])}return{children:n,depth:r}}var c;if(e.positionType===`top`){for(var l=e.positionData,u=0;u<e.children.length;u++){var d=e.children[u];l-=d.type===`kern`?d.size:d.elem.height+d.elem.depth}c=l}else if(e.positionType===`bottom`)c=-e.positionData;else{var f=e.children[0];if(f.type!==`elem`)throw Error(`First child must have type "elem".`);if(e.positionType===`shift`)c=-f.elem.depth-e.positionData;else if(e.positionType===`firstBaseline`)c=-f.elem.depth;else throw Error(`Invalid positionType `+e.positionType+`.`)}return{children:e.children,depth:c}},$r=function(e,t){for(var n=Qr(e),r=n.children,i=n.depth,a=0,o=0;o<r.length;o++){var s=r[o];if(s.type===`elem`){var c=s.elem;a=Math.max(a,c.maxFontSize,c.height)}}a+=2;var l=q([`pstrut`],[]);l.style.height=I(a);for(var u=[],d=i,f=i,p=i,m=0;m<r.length;m++){var h=r[m];if(h.type===`kern`)p+=h.size;else{var g=h.elem,_=h.wrapperClasses||[],v=h.wrapperStyle||{},y=q(_,[l,g],void 0,v);y.style.top=I(-a-p-g.depth),h.marginLeft&&(y.style.marginLeft=h.marginLeft),h.marginRight&&(y.style.marginRight=h.marginRight),u.push(y),p+=g.height+g.depth}d=Math.min(d,p),f=Math.max(f,p)}var b=q([`vlist`],u);b.style.height=I(f);var x;if(d<0){var S=q([`vlist`],[q([],[])]);S.style.height=I(-d),x=[q([`vlist-r`],[b,q([`vlist-s`],[new zn(``)])]),q([`vlist-r`],[S])]}else x=[q([`vlist-r`],[b])];var C=q([`vlist-t`],x);return x.length===2&&C.classes.push(`vlist-t2`),C.height=f,C.depth=-d,C},ei=(e,t)=>{var n=q([`mspace`],[],t),r=On(e,t);return n.style.marginRight=I(r),n},ti=(e,t,n)=>{var r,i;switch(e){case`amsrm`:r=`AMS`;break;case`textrm`:r=`Main`;break;case`textsf`:r=`SansSerif`;break;case`texttt`:r=`Typewriter`;break;default:r=e}return i=t===`textbf`&&n===`textit`?`BoldItalic`:t===`textbf`?`Bold`:n===`textit`?`Italic`:`Regular`,r+`-`+i},ni={mathbf:{variant:`bold`,fontName:`Main-Bold`},mathrm:{variant:`normal`,fontName:`Main-Regular`},textit:{variant:`italic`,fontName:`Main-Italic`},mathit:{variant:`italic`,fontName:`Main-Italic`},mathnormal:{variant:`italic`,fontName:`Math-Italic`},mathsfit:{variant:`sans-serif-italic`,fontName:`SansSerif-Italic`},mathbb:{variant:`double-struck`,fontName:`AMS-Regular`},mathcal:{variant:`script`,fontName:`Caligraphic-Regular`},mathfrak:{variant:`fraktur`,fontName:`Fraktur-Regular`},mathscr:{variant:`script`,fontName:`Script-Regular`},mathsf:{variant:`sans-serif`,fontName:`SansSerif-Regular`},mathtt:{variant:`monospace`,fontName:`Typewriter-Regular`}},ri={vec:[`vec`,.471,.714],oiintSize1:[`oiintSize1`,.957,.499],oiintSize2:[`oiintSize2`,1.472,.659],oiiintSize1:[`oiiintSize1`,1.304,.499],oiiintSize2:[`oiiintSize2`,1.98,.659]},ii=function(e,t){var n=ri[e],r=n[0],i=n[1],a=n[2],o=qr([`katex-overlay`],[new Bn([new Vn(r)],{width:I(i),height:I(a),style:`width:`+I(i),viewBox:`0 0 `+1e3*i+` `+1e3*a,preserveAspectRatio:`xMinYMin`})],t);return o.height=a,o.style.height=I(a),o.style.width=I(i),o},ai={number:3,unit:`mu`},oi={number:4,unit:`mu`},si={number:5,unit:`mu`},ci={mord:{mop:ai,mbin:oi,mrel:si,minner:ai},mop:{mord:ai,mop:ai,mrel:si,minner:ai},mbin:{mord:oi,mop:oi,mopen:oi,minner:oi},mrel:{mord:si,mop:si,mopen:si,minner:si},mopen:{},mclose:{mop:ai,mbin:oi,mrel:si,minner:ai},mpunct:{mord:ai,mop:ai,mrel:si,mopen:ai,mclose:ai,mpunct:ai,minner:ai},minner:{mord:ai,mop:ai,mbin:oi,mrel:si,mopen:ai,mpunct:ai,minner:ai}},li={mord:{mop:ai},mop:{mord:ai,mop:ai},mbin:{},mrel:{},mopen:{},mclose:{mop:ai},mpunct:{},minner:{mop:ai}},ui={},di={},fi={};function J(e){for(var t=e.type,n=e.names,r=e.htmlBuilder,i=e.mathmlBuilder,a=0;a<n.length;++a)ui[n[a]]=e;t&&(r&&(di[t]=r),i&&(fi[t]=i))}function pi(e){var t=e.type,n=e.htmlBuilder,r=e.mathmlBuilder;n&&(di[t]=n),r&&(fi[t]=r)}var mi=function(e){return e.type===`ordgroup`&&e.body.length===1?e.body[0]:e},hi=function(e){return e.type===`ordgroup`?e.body:[e]},gi=new Set([`leftmost`,`mbin`,`mopen`,`mrel`,`mop`,`mpunct`]),_i=new Set([`rightmost`,`mrel`,`mclose`,`mpunct`]),vi={display:F.DISPLAY,text:F.TEXT,script:F.SCRIPT,scriptscript:F.SCRIPTSCRIPT},yi={mord:`mord`,mop:`mop`,mbin:`mbin`,mrel:`mrel`,mopen:`mopen`,mclose:`mclose`,mpunct:`mpunct`,minner:`minner`},bi=function(e,t,n,r){r===void 0&&(r=[null,null]);for(var i=[],a=0;a<e.length;a++){var o=Ei(e[a],t);if(o instanceof wn){var s=o.children;i.push(...s)}else i.push(o)}if(Gr(i),!n)return i;var c=t;if(e.length===1){var l=e[0];l.type===`sizing`?c=t.havingSize(l.size):l.type===`styling`&&(c=t.havingStyle(vi[l.style]))}var u=q([r[0]||`leftmost`],[],t),d=q([r[1]||`rightmost`],[],t),f=n===`root`;return xi(i,(e,t)=>{var n=t.classes[0],r=e.classes[0];n===`mbin`&&_i.has(r)?t.classes[0]=`mord`:r===`mbin`&&gi.has(n)&&(e.classes[0]=`mord`)},{node:u},d,f),xi(i,(e,t)=>{var n=wi(t),r=wi(e),i=n&&r?e.hasClass(`mtight`)?li[n]?.[r]:ci[n]?.[r]:null;if(i)return ei(i,c)},{node:u},d,f),i},xi=function(e,t,n,r,i){r&&e.push(r);for(var a=0;a<e.length;a++){var o=e[a],s=Si(o);if(s){xi(s.children,t,n,null,i);continue}var c=!o.hasClass(`mspace`);if(c){var l=t(o,n.node);l&&(n.insertAfter?n.insertAfter(l):(e.unshift(l),a++))}c?n.node=o:i&&o.hasClass(`katex-newline`)&&(n.node=q([`leftmost`])),n.insertAfter=(t=>n=>{e.splice(t+1,0,n),a++})(a)}r&&e.pop()},Si=function(e){return e instanceof wn||e instanceof In||e instanceof Fn&&e.hasClass(`enclosing`)?e:null},Ci=function(e,t){var n=Si(e);if(n){var r=n.children;if(r.length){if(t===`right`)return Ci(r[r.length-1],`right`);if(t===`left`)return Ci(r[0],`left`)}}return e},wi=function(e,t){return e?(t&&(e=Ci(e,t)),yi[e.classes[0]]||null):null},Ti=function(e,t){var n=[`nulldelimiter`].concat(e.baseSizingClasses());return q(t.concat(n))},Ei=function(e,t,n){if(!e)return q();if(di[e.type]){var r=di[e.type](e,t);if(n&&t.size!==n.size){r=q(t.sizingClasses(n),[r],t);var i=t.sizeMultiplier/n.sizeMultiplier;r.height*=i,r.depth*=i}return r}else throw new P(`Got group of unknown type: '`+e.type+`'`)};function Di(e,t){var n=q([`katex-base`],e,t),r=q([`katex-strut`]);return r.style.height=I(n.height+n.depth),n.depth&&(r.style.verticalAlign=I(-n.depth)),n.children.unshift(r),n}function Oi(e,t){var n=null;e.length===1&&e[0].type===`tag`&&(n=e[0].tag,e=e[0].body);var r=bi(e,t,`root`),i;r.length===2&&r[1].hasClass(`katex-tag`)&&(i=r.pop());for(var a=[],o=[],s=0;s<r.length;s++)if(o.push(r[s]),r[s].hasClass(`mbin`)||r[s].hasClass(`mrel`)||r[s].hasClass(`allowbreak`)){for(var c=!1;s<r.length-1&&r[s+1].hasClass(`mspace`)&&!r[s+1].hasClass(`katex-newline`);)s++,o.push(r[s]),r[s].hasClass(`nobreak`)&&(c=!0);c||(a.push(Di(o,t)),o=[])}else r[s].hasClass(`katex-newline`)&&(o.pop(),o.length>0&&(a.push(Di(o,t)),o=[]),a.push(r[s]));o.length>0&&a.push(Di(o,t));var l;n?(l=Di(bi(n,t,!0),t),l.classes=[`katex-tag`],a.push(l)):i&&a.push(i);var u=q([`katex-html`],a);if(u.setAttribute(`aria-hidden`,`true`),l){var d=l.children[0];d.style.height=I(u.height+u.depth),u.depth&&(d.style.verticalAlign=I(-u.depth))}return u}function ki(e){return new wn(e)}var Y=class{constructor(e,t,n){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=n||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS(`http://www.w3.org/1998/Math/MathML`,this.type);for(var t of Object.entries(this.attributes)){var n=t[0],r=t[1];e.setAttribute(n,r)}this.classes.length>0&&(e.className=kn(this.classes));for(var i=0;i<this.children.length;i++)if(this.children[i]instanceof Ai&&this.children[i+1]instanceof Ai){for(var a=this.children[i].toText()+this.children[++i].toText();this.children[i+1]instanceof Ai;)a+=this.children[++i].toText();e.appendChild(new Ai(a).toNode())}else e.appendChild(this.children[i].toNode());return e}toMarkup(){var e=`<`+this.type;for(var t of Object.entries(this.attributes)){var n=t[0],r=t[1];e+=` `+n+`="`,e+=Nt(r),e+=`"`}this.classes.length>0&&(e+=` class ="`+Nt(kn(this.classes))+`"`),e+=`>`;for(var i=0;i<this.children.length;i++)e+=this.children[i].toMarkup();return e+=`</`+this.type+`>`,e}toText(){return this.children.map(e=>e.toText()).join(``)}},Ai=class{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return Nt(this.toText())}toText(){return this.text}},ji=class{constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character=` `:e>=.1666&&e<=.1667?this.character=` `:e>=.2222&&e<=.2223?this.character=` `:e>=.2777&&e<=.2778?this.character=` `:e>=-.05556&&e<=-.05555?this.character=` `:e>=-.1667&&e<=-.1666?this.character=` `:e>=-.2223&&e<=-.2222?this.character=` `:e>=-.2778&&e<=-.2777?this.character=` `:this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS(`http://www.w3.org/1998/Math/MathML`,`mspace`);return e.setAttribute(`width`,I(this.width)),e}toMarkup(){return this.character?`<mtext>`+this.character+`</mtext>`:`<mspace width="`+I(this.width)+`"/>`}toText(){return this.character?this.character:` `}},Mi=new Set([`\\imath`,`\\jmath`]),Ni=new Set([`mrow`,`mtable`]),Pi=function(e,t,n){var r,i;return $n[t][e]&&$n[t][e].replace&&e.charCodeAt(0)!==55349&&!(Object.prototype.hasOwnProperty.call(sr,e)&&((n==null||(r=n.fontFamily)==null?void 0:r.slice(4,6))===`tt`||(n==null||(i=n.font)==null?void 0:i.slice(4,6))===`tt`))&&(e=$n[t][e].replace),new Ai(e)},Fi=function(e){return e.length===1?e[0]:new Y(`mrow`,e)},Ii={mathit:`italic`,boldsymbol:e=>e.type===`textord`?`bold`:`bold-italic`,mathbf:`bold`,mathbb:`double-struck`,mathsfit:`sans-serif-italic`,mathfrak:`fraktur`,mathscr:`script`,mathcal:`script`,mathsf:`sans-serif`,mathtt:`monospace`},Li=(e,t)=>{if(e.mode===`text`){if(t.fontFamily===`texttt`)return`monospace`;if(t.fontFamily===`textsf`)return t.fontShape===`textit`&&t.fontWeight===`textbf`?`sans-serif-bold-italic`:t.fontShape===`textit`?`sans-serif-italic`:t.fontWeight===`textbf`?`bold-sans-serif`:`sans-serif`;if(t.fontShape===`textit`&&t.fontWeight===`textbf`)return`bold-italic`;if(t.fontShape===`textit`)return`italic`;if(t.fontWeight===`textbf`)return`bold`}var n=t.font;if(!n||n===`mathnormal`)return null;var r=e.mode,i=Ii[n];if(i)return typeof i==`function`?i(e):i;var a=e.text;if(Mi.has(a))return null;if($n[r][a]){var o=$n[r][a].replace;o&&(a=o)}var s=ni[n].fontName;return Xn(a,s,r)?ni[n].variant:null};function Ri(e){if(!e)return!1;if(e.type===`mi`&&e.children.length===1){var t=e.children[0];return t instanceof Ai&&t.text===`.`}else if(e.type===`mo`&&e.children.length===1&&e.getAttribute(`separator`)===`true`&&e.getAttribute(`lspace`)===`0em`&&e.getAttribute(`rspace`)===`0em`){var n=e.children[0];return n instanceof Ai&&n.text===`,`}else return!1}var zi=function(e,t,n){if(e.length===1){var r=Vi(e[0],t);return n&&r instanceof Y&&r.type===`mo`&&(r.setAttribute(`lspace`,`0em`),r.setAttribute(`rspace`,`0em`)),[r]}for(var i=[],a,o=0;o<e.length;o++){var s=Vi(e[o],t);if(s instanceof Y&&a instanceof Y){if(s.type===`mtext`&&a.type===`mtext`&&s.getAttribute(`mathvariant`)===a.getAttribute(`mathvariant`)){a.children.push(...s.children);continue}else if(s.type===`mn`&&a.type===`mn`){a.children.push(...s.children);continue}else if(Ri(s)&&a.type===`mn`){a.children.push(...s.children);continue}else if(s.type===`mn`&&Ri(a))s.children=[...a.children,...s.children],i.pop();else if((s.type===`msup`||s.type===`msub`)&&s.children.length>=1&&(a.type===`mn`||Ri(a))){var c=s.children[0];c instanceof Y&&c.type===`mn`&&(c.children=[...a.children,...c.children],i.pop())}else if(a.type===`mi`&&a.children.length===1){var l=a.children[0];if(l instanceof Ai&&l.text===`̸`&&(s.type===`mo`||s.type===`mi`||s.type===`mn`)){var u=s.children[0];u instanceof Ai&&u.text.length>0&&(u.text=u.text.slice(0,1)+`̸`+u.text.slice(1),i.pop())}}}i.push(s),a=s}return i},Bi=function(e,t,n){return Fi(zi(e,t,n))},Vi=function(e,t){if(!e)return new Y(`mrow`);if(fi[e.type])return fi[e.type](e,t);throw new P(`Got group of unknown type: '`+e.type+`'`)};function Hi(e,t,n,r,i){var a=zi(e,n),o=a.length===1&&a[0]instanceof Y&&Ni.has(a[0].type)?a[0]:new Y(`mrow`,a),s=new Y(`annotation`,[new Ai(t)]);s.setAttribute(`encoding`,`application/x-tex`);var c=new Y(`math`,[new Y(`semantics`,[o,s])]);return c.setAttribute(`xmlns`,`http://www.w3.org/1998/Math/MathML`),r&&c.setAttribute(`display`,`block`),q([i?`katex`:`katex-mathml`],[c])}var Ui=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],Wi=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],Gi=function(e,t){return t.size<2?e:Ui[e-1][t.size-1]},Ki=class e{constructor(t){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=t.style,this.color=t.color,this.size=t.size||e.BASESIZE,this.textSize=t.textSize||this.size,this.phantom=!!t.phantom,this.font=t.font||``,this.fontFamily=t.fontFamily||``,this.fontWeight=t.fontWeight||``,this.fontShape=t.fontShape||``,this.sizeMultiplier=Wi[this.size-1],this.maxSize=t.maxSize,this.minRuleThickness=t.minRuleThickness,this._fontMetrics=void 0}extend(t){var n={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};return Object.assign(n,t),new e(n)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:Gi(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:Wi[e-1]})}havingBaseStyle(t){t||=this.style.text();var n=Gi(e.BASESIZE,t);return this.size===n&&this.textSize===e.BASESIZE&&this.style===t?this:this.extend({style:t,size:n})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:``})}withTextFontWeight(e){return this.extend({fontWeight:e,font:``})}withTextFontShape(e){return this.extend({fontShape:e,font:``})}sizingClasses(e){return e.size===this.size?[]:[`katex-sizing`,`reset-size`+e.size,`size`+this.size]}baseSizingClasses(){return this.size===e.BASESIZE?[]:[`katex-sizing`,`reset-size`+this.size,`size`+e.BASESIZE]}fontMetrics(){return this._fontMetrics||=Qn(this.size),this._fontMetrics}getColor(){return this.phantom?`transparent`:this.color}};Ki.BASESIZE=6;var qi=function(e){return new Ki({style:e.displayMode?F.DISPLAY:F.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},Ji=function(e,t){if(t.displayMode){var n=[`katex-display`];t.leqno&&n.push(`leqno`),t.fleqn&&n.push(`fleqn`),e=q(n,[e])}return e},Yi=function(e,t,n){var r=qi(n),i;return n.output===`mathml`?Hi(e,t,r,n.displayMode,!0):(i=n.output===`html`?q([`katex`],[Oi(e,r)]):q([`katex`],[Hi(e,t,r,n.displayMode,!1),Oi(e,r)]),Ji(i,n))},Xi=function(e,t,n){return Ji(q([`katex`],[Oi(e,qi(n))]),n)},Zi={widehat:`^`,widecheck:`ˇ`,widetilde:`~`,utilde:`~`,overleftarrow:`←`,underleftarrow:`←`,xleftarrow:`←`,overrightarrow:`→`,underrightarrow:`→`,xrightarrow:`→`,underbrace:`⏟`,overbrace:`⏞`,underbracket:`⎵`,overbracket:`⎴`,overgroup:`⏠`,undergroup:`⏡`,overleftrightarrow:`↔`,underleftrightarrow:`↔`,xleftrightarrow:`↔`,Overrightarrow:`⇒`,xRightarrow:`⇒`,overleftharpoon:`↼`,xleftharpoonup:`↼`,overrightharpoon:`⇀`,xrightharpoonup:`⇀`,xLeftarrow:`⇐`,xLeftrightarrow:`⇔`,xhookleftarrow:`↩`,xhookrightarrow:`↪`,xmapsto:`↦`,xrightharpoondown:`⇁`,xleftharpoondown:`↽`,xrightleftharpoons:`⇌`,xleftrightharpoons:`⇋`,xtwoheadleftarrow:`↞`,xtwoheadrightarrow:`↠`,xlongequal:`=`,xtofrom:`⇄`,xrightleftarrows:`⇄`,xrightequilibrium:`⇌`,xleftequilibrium:`⇋`,"\\cdrightarrow":`→`,"\\cdleftarrow":`←`,"\\cdlongequal":`=`},Qi=function(e){var t=new Y(`mo`,[new Ai(Zi[e.replace(/^\\/,``)])]);return t.setAttribute(`stretchy`,`true`),t},$i={overrightarrow:[[`rightarrow`],.888,522,`xMaxYMin`],overleftarrow:[[`leftarrow`],.888,522,`xMinYMin`],underrightarrow:[[`rightarrow`],.888,522,`xMaxYMin`],underleftarrow:[[`leftarrow`],.888,522,`xMinYMin`],xrightarrow:[[`rightarrow`],1.469,522,`xMaxYMin`],"\\cdrightarrow":[[`rightarrow`],3,522,`xMaxYMin`],xleftarrow:[[`leftarrow`],1.469,522,`xMinYMin`],"\\cdleftarrow":[[`leftarrow`],3,522,`xMinYMin`],Overrightarrow:[[`doublerightarrow`],.888,560,`xMaxYMin`],xRightarrow:[[`doublerightarrow`],1.526,560,`xMaxYMin`],xLeftarrow:[[`doubleleftarrow`],1.526,560,`xMinYMin`],overleftharpoon:[[`leftharpoon`],.888,522,`xMinYMin`],xleftharpoonup:[[`leftharpoon`],.888,522,`xMinYMin`],xleftharpoondown:[[`leftharpoondown`],.888,522,`xMinYMin`],overrightharpoon:[[`rightharpoon`],.888,522,`xMaxYMin`],xrightharpoonup:[[`rightharpoon`],.888,522,`xMaxYMin`],xrightharpoondown:[[`rightharpoondown`],.888,522,`xMaxYMin`],xlongequal:[[`longequal`],.888,334,`xMinYMin`],"\\cdlongequal":[[`longequal`],3,334,`xMinYMin`],xtwoheadleftarrow:[[`twoheadleftarrow`],.888,334,`xMinYMin`],xtwoheadrightarrow:[[`twoheadrightarrow`],.888,334,`xMaxYMin`],overleftrightarrow:[[`leftarrow`,`rightarrow`],.888,522],overbrace:[[`leftbrace`,`midbrace`,`rightbrace`],1.6,548],underbrace:[[`leftbraceunder`,`midbraceunder`,`rightbraceunder`],1.6,548],underleftrightarrow:[[`leftarrow`,`rightarrow`],.888,522],xleftrightarrow:[[`leftarrow`,`rightarrow`],1.75,522],xLeftrightarrow:[[`doubleleftarrow`,`doublerightarrow`],1.75,560],xrightleftharpoons:[[`leftharpoondownplus`,`rightharpoonplus`],1.75,716],xleftrightharpoons:[[`leftharpoonplus`,`rightharpoondownplus`],1.75,716],xhookleftarrow:[[`leftarrow`,`righthook`],1.08,522],xhookrightarrow:[[`lefthook`,`rightarrow`],1.08,522],overlinesegment:[[`leftlinesegment`,`rightlinesegment`],.888,522],underlinesegment:[[`leftlinesegment`,`rightlinesegment`],.888,522],overbracket:[[`leftbracketover`,`rightbracketover`],1.6,440],underbracket:[[`leftbracketunder`,`rightbracketunder`],1.6,410],overgroup:[[`leftgroup`,`rightgroup`],.888,342],undergroup:[[`leftgroupunder`,`rightgroupunder`],.888,342],xmapsto:[[`leftmapsto`,`rightarrow`],1.5,522],xtofrom:[[`leftToFrom`,`rightToFrom`],1.75,528],xrightleftarrows:[[`baraboveleftarrow`,`rightarrowabovebar`],1.75,901],xrightequilibrium:[[`baraboveshortleftharpoon`,`rightharpoonaboveshortbar`],1.75,716],xleftequilibrium:[[`shortbaraboveleftharpoon`,`shortrightharpoonabovebar`],1.75,716]},ea=new Set([`widehat`,`widecheck`,`widetilde`,`utilde`]),ta=function(e,t){function n(){var n=4e5,r=e.label.slice(1);if(ea.has(r)&&`base`in e){var i=e.base.type===`ordgroup`?e.base.body.length:1,a,o,s;if(i>5)r===`widehat`||r===`widecheck`?(a=420,n=2364,s=.42,o=r+`4`):(a=312,n=2340,s=.34,o=`tilde4`);else{var c=[1,1,2,2,3,3][i];r===`widehat`||r===`widecheck`?(n=[0,1062,2364,2364,2364][c],a=[0,239,300,360,420][c],s=[0,.24,.3,.3,.36,.42][c],o=r+c):(n=[0,600,1033,2339,2340][c],a=[0,260,286,306,312][c],s=[0,.26,.286,.3,.306,.34][c],o=`tilde`+c)}return{span:qr([],[new Bn([new Vn(o)],{width:`100%`,height:I(s),viewBox:`0 0 `+n+` `+a,preserveAspectRatio:`none`})],t),minWidth:0,height:s}}else{var l=[],u=$i[r];if(!u)throw Error(`No SVG data for "`+r+`".`);var d=u[0],f=u[1],p=u[2],m=p/1e3,h=d.length,g,_;if(h===1){if(u.length!==4)throw Error(`Expected 4-tuple for single-path SVG data "`+r+`".`);g=[`hide-tail`],_=[u[3]]}else if(h===2)g=[`halfarrow-left`,`halfarrow-right`],_=[`xMinYMin`,`xMaxYMin`];else if(h===3)g=[`brace-left`,`brace-center`,`brace-right`],_=[`xMinYMin`,`xMidYMin`,`xMaxYMin`];else throw Error(`Correct katexImagesData or update code here to support
|
|
258
|
+
`+h+` children.`);for(var v=0;v<h;v++){var y=new Bn([new Vn(d[v])],{width:`400em`,height:I(m),viewBox:`0 0 `+n+` `+p,preserveAspectRatio:_[v]+` slice`}),b=qr([g[v]],[y],t);if(h===1)return{span:b,minWidth:f,height:m};b.style.height=I(m),l.push(b)}return{span:q([`katex-stretchy`],l,t),minWidth:f,height:m}}}var r=n(),i=r.span,a=r.minWidth,o=r.height;return i.height=o,i.style.height=I(o),a>0&&(i.style.minWidth=I(a)),i},na=function(e,t,n,r,i){var a,o=e.height+e.depth+n+r;if(/fbox|color|angl/.test(t)){if(a=q([`katex-stretchy`,t],[],i),t===`fbox`){var s=i.color&&i.getColor();s&&(a.style.borderColor=s)}}else{var c=[];/^[bx]cancel$/.test(t)&&c.push(new Hn({x1:`0`,y1:`0`,x2:`100%`,y2:`100%`,"stroke-width":`0.046em`})),/^x?cancel$/.test(t)&&c.push(new Hn({x1:`0`,y1:`100%`,x2:`100%`,y2:`0`,"stroke-width":`0.046em`})),a=qr([],[new Bn(c,{width:`100%`,height:I(o)})],i)}return a.height=o,a.style.height=I(o),a},ra=[`bin`,`close`,`inner`,`open`,`punct`,`rel`],ia=[`accent-token`,`mathord`,`op-token`,`spacing`,`textord`],aa=new Set(ra),oa=new Set(ia);function sa(e){return aa.has(e)}function X(e,t){if(!e||e.type!==t)throw Error(`Expected node of type `+t+`, but got `+(e?`node of type `+e.type:String(e)));return e}function ca(e){var t=la(e);if(!t)throw Error(`Expected node of symbol group type, but got `+(e?`node of type `+e.type:String(e)));return t}function la(e){return e.type===`atom`||oa.has(e.type)?e:null}function ua(e,t,n){var r=``;for(var i of e.body)if(i.type===`textord`)r+=i.text;else if(n&&i.type===`spacing`&&i.text===` `)r+=` `;else throw new P(t,e);return r}var da=e=>{if(e instanceof zn)return e;if(Gn(e)&&e.children.length===1)return da(e.children[0])},fa=(e,t)=>{var n,r,i;e&&e.type===`supsub`?(r=X(e.base,`accent`),n=r.base,e.base=n,i=Wn(Ei(e,t)),e.base=r):(r=X(e,`accent`),n=r.base);var a=Ei(n,t.havingCrampedStyle()),o=r.isShifty&&It(n),s=0;o&&(s=da(a)?.skew??0);var c=r.label===`\\c`,l=c?a.height+a.depth:Math.min(a.height,t.fontMetrics().xHeight),u;if(r.isStretchy)u=ta(r,t),u=$r({positionType:`firstBaseline`,children:[{type:`elem`,elem:a},{type:`elem`,elem:u,wrapperClasses:[`svg-align`],wrapperStyle:s>0?{width:`calc(100% - `+I(2*s)+`)`,marginLeft:I(2*s)}:void 0}]});else{var d,f;r.label===`\\vec`?(d=ii(`vec`,t),f=ri.vec[1]):(d=Ur({type:`textord`,mode:r.mode,text:r.label},t),d=Un(d),d.italic=0,f=d.width,c&&(l+=d.depth)),u=q([`accent-body`],[d]);var p=r.label===`\\textcircled`;p&&(u.classes.push(`accent-full`),l=a.height);var m=s;p||(m-=f/2),u.style.left=I(m),r.label===`\\textcircled`&&(u.style.top=`.2em`),u=$r({positionType:`firstBaseline`,children:[{type:`elem`,elem:a},{type:`kern`,size:-l},{type:`elem`,elem:u}]})}var h=q([`mord`,`katex-accent`],[u],t);return i?(i.children[0]=h,i.height=Math.max(h.height,i.height),i.classes[0]=`mord`,i):h},pa=(e,t)=>{var n=e.isStretchy?Qi(e.label):new Y(`mo`,[Pi(e.label,e.mode)]),r=new Y(`mover`,[Vi(e.base,t),n]);return r.setAttribute(`accent`,`true`),r},ma=new RegExp([`\\acute`,`\\grave`,`\\ddot`,`\\tilde`,`\\bar`,`\\breve`,`\\check`,`\\hat`,`\\vec`,`\\dot`,`\\mathring`].map(e=>`\\`+e).join(`|`));J({type:`accent`,names:[`\\acute`,`\\grave`,`\\ddot`,`\\tilde`,`\\bar`,`\\breve`,`\\check`,`\\hat`,`\\vec`,`\\dot`,`\\mathring`,`\\widecheck`,`\\widehat`,`\\widetilde`,`\\overrightarrow`,`\\overleftarrow`,`\\Overrightarrow`,`\\overleftrightarrow`,`\\overgroup`,`\\overlinesegment`,`\\overleftharpoon`,`\\overrightharpoon`],numArgs:1,handler:(e,t)=>{var n=mi(t[0]),r=!ma.test(e.funcName),i=!r||e.funcName===`\\widehat`||e.funcName===`\\widetilde`||e.funcName===`\\widecheck`;return{type:`accent`,mode:e.parser.mode,label:e.funcName,isStretchy:r,isShifty:i,base:n}},htmlBuilder:fa,mathmlBuilder:pa}),J({type:`accent`,names:[`\\'`,"\\`",`\\^`,`\\~`,`\\=`,`\\u`,`\\.`,`\\"`,`\\c`,`\\r`,`\\H`,`\\v`,`\\textcircled`],numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:[`primitive`],handler:(e,t)=>{var n=t[0],r=e.parser.mode;return r===`math`&&(e.parser.settings.reportNonstrict(`mathVsTextAccents`,`LaTeX's accent `+e.funcName+` works only in text mode`),r=`text`),{type:`accent`,mode:r,label:e.funcName,isStretchy:!1,isShifty:!0,base:n}}}),J({type:`accentUnder`,names:[`\\underleftarrow`,`\\underrightarrow`,`\\underleftrightarrow`,`\\undergroup`,`\\underlinesegment`,`\\utilde`],numArgs:1,handler:(e,t)=>{var n=e.parser,r=e.funcName,i=t[0];return{type:`accentUnder`,mode:n.mode,label:r,base:i}},htmlBuilder:(e,t)=>{var n=Ei(e.base,t),r=ta(e,t),i=e.label===`\\utilde`?.12:0;return q([`mord`,`accentunder`],[$r({positionType:`top`,positionData:n.height,children:[{type:`elem`,elem:r,wrapperClasses:[`svg-align`]},{type:`kern`,size:i},{type:`elem`,elem:n}]})],t)},mathmlBuilder:(e,t)=>{var n=Qi(e.label),r=new Y(`munder`,[Vi(e.base,t),n]);return r.setAttribute(`accentunder`,`true`),r}});var ha=e=>{var t=new Y(`mpadded`,e?[e]:[]);return t.setAttribute(`width`,`+0.6em`),t.setAttribute(`lspace`,`0.3em`),t};J({type:`xArrow`,names:[`\\xleftarrow`,`\\xrightarrow`,`\\xLeftarrow`,`\\xRightarrow`,`\\xleftrightarrow`,`\\xLeftrightarrow`,`\\xhookleftarrow`,`\\xhookrightarrow`,`\\xmapsto`,`\\xrightharpoondown`,`\\xrightharpoonup`,`\\xleftharpoondown`,`\\xleftharpoonup`,`\\xrightleftharpoons`,`\\xleftrightharpoons`,`\\xlongequal`,`\\xtwoheadrightarrow`,`\\xtwoheadleftarrow`,`\\xtofrom`,`\\xrightleftarrows`,`\\xrightequilibrium`,`\\xleftequilibrium`,`\\\\cdrightarrow`,`\\\\cdleftarrow`,`\\\\cdlongequal`],numArgs:1,numOptionalArgs:1,handler(e,t,n){var r=e.parser,i=e.funcName;return{type:`xArrow`,mode:r.mode,label:i,body:t[0],below:n[0]}},htmlBuilder(e,t){var n=t.style,r=t.havingStyle(n.sup()),i=Zr(Ei(e.body,r,t),t),a=e.label.slice(0,2)===`\\x`?`x`:`cd`;i.classes.push(a+`-arrow-pad`);var o;e.below&&(r=t.havingStyle(n.sub()),o=Zr(Ei(e.below,r,t),t),o.classes.push(a+`-arrow-pad`));var s=ta(e,t),c=-t.fontMetrics().axisHeight+.5*s.height,l=-t.fontMetrics().axisHeight-.5*s.height-.111;(i.depth>.25||e.label===`\\xleftequilibrium`)&&(l-=i.depth);var u;if(o){var d=-t.fontMetrics().axisHeight+o.height+.5*s.height+.111;u=$r({positionType:`individualShift`,children:[{type:`elem`,elem:i,shift:l},{type:`elem`,elem:s,shift:c,wrapperClasses:[`svg-align`]},{type:`elem`,elem:o,shift:d}]})}else u=$r({positionType:`individualShift`,children:[{type:`elem`,elem:i,shift:l},{type:`elem`,elem:s,shift:c,wrapperClasses:[`svg-align`]}]});return q([`mrel`,`x-arrow`],[u],t)},mathmlBuilder(e,t){var n=Qi(e.label);n.setAttribute(`minsize`,e.label.charAt(0)===`x`?`1.75em`:`3.0em`);var r;if(e.body){var i=ha(Vi(e.body,t));r=e.below?new Y(`munderover`,[n,ha(Vi(e.below,t)),i]):new Y(`mover`,[n,i])}else e.below?r=new Y(`munder`,[n,ha(Vi(e.below,t))]):(r=ha(),r=new Y(`mover`,[n,r]));return r}});function ga(e,t){var n=bi(e.body,t,!0);return q([e.mclass],n,t)}function _a(e,t){var n,r=zi(e.body,t);return e.mclass===`minner`?n=new Y(`mpadded`,r):e.mclass===`mord`?e.isCharacterBox?(n=r[0],n.type=`mi`):n=new Y(`mi`,r):(e.isCharacterBox?(n=r[0],n.type=`mo`):n=new Y(`mo`,r),e.mclass===`mbin`?(n.attributes.lspace=`0.22em`,n.attributes.rspace=`0.22em`):e.mclass===`mpunct`?(n.attributes.lspace=`0em`,n.attributes.rspace=`0.17em`):(e.mclass===`mopen`||e.mclass===`mclose`)&&(n.attributes.lspace=`0em`,n.attributes.rspace=`0em`)),n}J({type:`mclass`,names:[`\\mathord`,`\\mathbin`,`\\mathrel`,`\\mathopen`,`\\mathclose`,`\\mathpunct`,`\\mathinner`],numArgs:1,primitive:!0,handler(e,t){var n=e.parser,r=e.funcName,i=t[0];return{type:`mclass`,mode:n.mode,mclass:`m`+r.slice(5),body:hi(i),isCharacterBox:It(i)}},htmlBuilder:ga,mathmlBuilder:_a});var va=e=>{var t=e.type===`ordgroup`&&e.body.length?e.body[0]:e;return t.type===`atom`&&(t.family===`bin`||t.family===`rel`)?`m`+t.family:`mord`};J({type:`mclass`,names:[`\\@binrel`],numArgs:2,handler(e,t){return{type:`mclass`,mode:e.parser.mode,mclass:va(t[0]),body:hi(t[1]),isCharacterBox:It(t[1])}}}),J({type:`mclass`,names:[`\\stackrel`,`\\overset`,`\\underset`],numArgs:2,handler(e,t){var n=e.parser,r=e.funcName,i=t[1],a=t[0],o=r===`\\stackrel`?`mrel`:va(i),s={type:`op`,mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:r!==`\\stackrel`,body:hi(i)},c=r===`\\underset`?{type:`supsub`,mode:a.mode,base:s,sub:a}:{type:`supsub`,mode:a.mode,base:s,sup:a};return{type:`mclass`,mode:n.mode,mclass:o,body:[c],isCharacterBox:It(c)}}}),J({type:`pmb`,names:[`\\pmb`],numArgs:1,allowedInText:!0,handler(e,t){return{type:`pmb`,mode:e.parser.mode,mclass:va(t[0]),body:hi(t[0])}},htmlBuilder(e,t){var n=bi(e.body,t,!0),r=q([e.mclass],n,t);return r.style.textShadow=`0.02em 0.01em 0.04px`,r},mathmlBuilder(e,t){var n=new Y(`mstyle`,zi(e.body,t));return n.setAttribute(`style`,`text-shadow: 0.02em 0.01em 0.04px`),n}});var ya={">":`\\\\cdrightarrow`,"<":`\\\\cdleftarrow`,"=":`\\\\cdlongequal`,A:`\\uparrow`,V:`\\downarrow`,"|":`\\Vert`,".":`no arrow`},ba=()=>({type:`styling`,body:[],mode:`math`,style:`display`,resetFont:!0}),xa=e=>e.type===`textord`&&e.text===`@`,Sa=(e,t)=>(e.type===`mathord`||e.type===`atom`)&&e.text===t;function Ca(e,t,n){var r=ya[e];switch(r){case`\\\\cdrightarrow`:case`\\\\cdleftarrow`:return n.callFunction(r,[t[0]],[t[1]]);case`\\uparrow`:case`\\downarrow`:var i=n.callFunction(`\\\\cdleft`,[t[0]],[]),a={type:`atom`,text:r,mode:`math`,family:`rel`},o={type:`ordgroup`,mode:`math`,body:[i,n.callFunction(`\\Big`,[a],[]),n.callFunction(`\\\\cdright`,[t[1]],[])]};return n.callFunction(`\\\\cdparent`,[o],[]);case`\\\\cdlongequal`:return n.callFunction(`\\\\cdlongequal`,[],[]);case`\\Vert`:return n.callFunction(`\\Big`,[{type:`textord`,text:`\\Vert`,mode:`math`}],[]);default:return{type:`textord`,text:` `,mode:`math`}}}function wa(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set(`\\cr`,`\\\\\\relax`),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,`\\\\`)),e.gullet.endGroup(),e.gullet.beginGroup();var n=e.fetch().text;if(n===`&`||n===`\\\\`)e.consume();else if(n===`\\end`){t[t.length-1].length===0&&t.pop();break}else throw new P(`Expected \\\\ or \\cr or \\end`,e.nextToken)}for(var r=[],i=[r],a=0;a<t.length;a++){for(var o=t[a],s=ba(),c=0;c<o.length;c++)if(!xa(o[c]))s.body.push(o[c]);else{r.push(s),c+=1;var l=ca(o[c]).text,u=[,,];if(u[0]={type:`ordgroup`,mode:`math`,body:[]},u[1]={type:`ordgroup`,mode:`math`,body:[]},!`=|.`.includes(l))if(`<>AV`.includes(l))for(var d=0;d<2;d++){for(var f=!0,p=c+1;p<o.length;p++){if(Sa(o[p],l)){f=!1,c=p;break}if(xa(o[p]))throw new P(`Missing a `+l+` character to complete a CD arrow.`,o[p]);u[d].body.push(o[p])}if(f)throw new P(`Missing a `+l+` character to complete a CD arrow.`,o[c])}else throw new P(`Expected one of "<>AV=|." after @`,o[c]);var m={type:`styling`,body:[Ca(l,u,e)],mode:`math`,style:`display`,resetFont:!0};r.push(m),s=ba()}a%2==0?r.push(s):r.shift(),r=[],i.push(r)}return e.gullet.endGroup(),e.gullet.endGroup(),{type:`array`,mode:`math`,body:i,arraystretch:1,addJot:!0,rowGaps:[null],cols:Array(i[0].length).fill({type:`align`,align:`c`,pregap:.25,postgap:.25}),colSeparationType:`CD`,hLinesBeforeRow:Array(i.length+1).fill([])}}J({type:`cdlabel`,names:[`\\\\cdleft`,`\\\\cdright`],numArgs:1,handler(e,t){var n=e.parser,r=e.funcName;return{type:`cdlabel`,mode:n.mode,side:r.slice(4),label:t[0]}},htmlBuilder(e,t){var n=t.havingStyle(t.style.sup()),r=Zr(Ei(e.label,n,t),t);return r.classes.push(`cd-label-`+e.side),r.style.bottom=I(.8-r.depth),r.height=0,r.depth=0,r},mathmlBuilder(e,t){var n=new Y(`mrow`,[Vi(e.label,t)]);return n=new Y(`mpadded`,[n]),n.setAttribute(`width`,`0`),e.side===`left`&&n.setAttribute(`lspace`,`-1width`),n.setAttribute(`voffset`,`0.7em`),n=new Y(`mstyle`,[n]),n.setAttribute(`displaystyle`,`false`),n.setAttribute(`scriptlevel`,`1`),n}}),J({type:`cdlabelparent`,names:[`\\\\cdparent`],numArgs:1,handler(e,t){return{type:`cdlabelparent`,mode:e.parser.mode,fragment:t[0]}},htmlBuilder(e,t){var n=Zr(Ei(e.fragment,t),t);return n.classes.push(`cd-vert-arrow`),n},mathmlBuilder(e,t){return new Y(`mrow`,[Vi(e.fragment,t)])}}),J({type:`textord`,names:[`\\@char`],numArgs:1,allowedInText:!0,handler(e,t){var n=e.parser,r=ua(X(t[0],`ordgroup`),`\\@char has non-numeric argument`),i=parseInt(r),a;if(isNaN(i))throw new P(`\\@char has non-numeric argument `+r);if(i<0||i>1114111)throw new P(`\\@char with invalid code point `+r);return i<=65535?a=String.fromCharCode(i):(i-=65536,a=String.fromCharCode((i>>10)+55296,(i&1023)+56320)),{type:`textord`,mode:n.mode,text:a}}}),J({type:`color`,names:[`\\textcolor`],numArgs:2,allowedInText:!0,argTypes:[`color`,`original`],handler(e,t){var n=e.parser,r=X(t[0],`color-token`).color,i=t[1];return{type:`color`,mode:n.mode,color:r,body:hi(i)}},htmlBuilder:(e,t)=>Xr(bi(e.body,t.withColor(e.color),!1)),mathmlBuilder:(e,t)=>{var n=new Y(`mstyle`,zi(e.body,t.withColor(e.color)));return n.setAttribute(`mathcolor`,e.color),n}}),J({type:`color`,names:[`\\color`],numArgs:1,allowedInText:!0,argTypes:[`color`],handler(e,t){var n=e.parser,r=e.breakOnTokenText,i=X(t[0],`color-token`).color;n.gullet.macros.set(`\\current@color`,i);var a=n.parseExpression(!0,r);return{type:`color`,mode:n.mode,color:i,body:a}}}),J({type:`cr`,names:[`\\\\`],numArgs:0,numOptionalArgs:0,allowedInText:!0,handler(e,t,n){var r=e.parser,i=r.gullet.future().text===`[`?r.parseSizeGroup(!0):null,a=!r.settings.displayMode||!r.settings.useStrictBehavior(`newLineInDisplayMode`,`In LaTeX, \\\\ or \\newline does nothing in display mode`);return{type:`cr`,mode:r.mode,newLine:a,size:i&&X(i,`size`).value}},htmlBuilder(e,t){var n=q([`mspace`],[],t);return e.newLine&&(n.classes.push(`katex-newline`),e.size&&(n.style.marginTop=I(On(e.size,t)))),n},mathmlBuilder(e,t){var n=new Y(`mspace`);return e.newLine&&(n.setAttribute(`linebreak`,`newline`),e.size&&n.setAttribute(`height`,I(On(e.size,t)))),n}});var Ta={"\\global":`\\global`,"\\long":`\\\\globallong`,"\\\\globallong":`\\\\globallong`,"\\def":`\\gdef`,"\\gdef":`\\gdef`,"\\edef":`\\xdef`,"\\xdef":`\\xdef`,"\\let":`\\\\globallet`,"\\futurelet":`\\\\globalfuture`},Ea=e=>{var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new P(`Expected a control sequence`,e);return t},Da=e=>{var t=e.gullet.popToken();return t.text===`=`&&(t=e.gullet.popToken(),t.text===` `&&(t=e.gullet.popToken())),t},Oa=(e,t,n,r)=>{var i=e.gullet.macros.get(n.text);i??=(n.noexpand=!0,{tokens:[n],numArgs:0,unexpandable:!e.gullet.isExpandable(n.text)}),e.gullet.macros.set(t,i,r)};J({type:`internal`,names:[`\\global`,`\\long`,`\\\\globallong`],numArgs:0,allowedInText:!0,handler(e){var t=e.parser,n=e.funcName;t.consumeSpaces();var r=t.fetch();if(Ta[r.text])return(n===`\\global`||n===`\\\\globallong`)&&(r.text=Ta[r.text]),X(t.parseFunction(),`internal`);throw new P(`Invalid token after macro prefix`,r)}}),J({type:`internal`,names:[`\\def`,`\\gdef`,`\\edef`,`\\xdef`],numArgs:0,allowedInText:!0,primitive:!0,handler(e){var t=e.parser,n=e.funcName,r=t.gullet.popToken(),i=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new P(`Expected a control sequence`,r);for(var a=0,o,s=[[]];t.gullet.future().text!==`{`;)if(r=t.gullet.popToken(),r.text===`#`){if(t.gullet.future().text===`{`){o=t.gullet.future(),s[a].push(`{`);break}if(r=t.gullet.popToken(),!/^[1-9]$/.test(r.text))throw new P(`Invalid argument number "`+r.text+`"`);if(parseInt(r.text)!==a+1)throw new P(`Argument number "`+r.text+`" out of order`);a++,s.push([])}else if(r.text===`EOF`)throw new P(`Expected a macro definition`);else s[a].push(r.text);var c=t.gullet.consumeArg().tokens;return o&&c.unshift(o),(n===`\\edef`||n===`\\xdef`)&&(c=t.gullet.expandTokens(c),c.reverse()),t.gullet.macros.set(i,{tokens:c,numArgs:a,delimiters:s},n===Ta[n]),{type:`internal`,mode:t.mode}}}),J({type:`internal`,names:[`\\let`,`\\\\globallet`],numArgs:0,allowedInText:!0,primitive:!0,handler(e){var t=e.parser,n=e.funcName,r=Ea(t.gullet.popToken());return t.gullet.consumeSpaces(),Oa(t,r,Da(t),n===`\\\\globallet`),{type:`internal`,mode:t.mode}}}),J({type:`internal`,names:[`\\futurelet`,`\\\\globalfuture`],numArgs:0,allowedInText:!0,primitive:!0,handler(e){var t=e.parser,n=e.funcName,r=Ea(t.gullet.popToken()),i=t.gullet.popToken(),a=t.gullet.popToken();return Oa(t,r,a,n===`\\\\globalfuture`),t.gullet.pushToken(a),t.gullet.pushToken(i),{type:`internal`,mode:t.mode}}});var ka=function(e,t,n){var r=Xn($n.math[e]&&$n.math[e].replace||e,t,n);if(!r)throw Error(`Unsupported symbol `+e+` and font size `+t+`.`);return r},Aa=function(e,t,n,r){var i=n.havingBaseStyle(t),a=q(r.concat(i.sizingClasses(n)),[e],n),o=i.sizeMultiplier/n.sizeMultiplier;return a.height*=o,a.depth*=o,a.maxFontSize=i.sizeMultiplier,a},ja=function(e,t,n){var r=t.havingBaseStyle(n),i=(1-t.sizeMultiplier/r.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push(`delimcenter`),e.style.top=I(i),e.height-=i,e.depth+=i},Ma=function(e,t,n,r,i,a){var o=Aa(Br(e,`Main-Regular`,i,r),t,r,a);return n&&ja(o,r,t),o},Na=function(e,t,n,r){return Br(e,`Size`+t+`-Regular`,n,r)},Pa=function(e,t,n,r,i,a){var o=Na(e,t,i,r),s=Aa(q([`delimsizing`,`size`+t],[o],r),F.TEXT,r,a);return n&&ja(s,r,F.TEXT),s},Fa=function(e,t,n){return{type:`elem`,elem:q([`delimsizinginner`,t===`Size1-Regular`?`delim-size1`:`delim-size4`],[q([],[Br(e,t,n)])])}},Ia=function(e,t,n){var r=Kn[`Size4-Regular`][e.charCodeAt(0)]?Kn[`Size4-Regular`][e.charCodeAt(0)][4]:Kn[`Size1-Regular`][e.charCodeAt(0)][4],i=qr([],[new Bn([new Vn(`inner`,bn(e,Math.round(1e3*t)))],{width:I(r),height:I(t),style:`width:`+I(r),viewBox:`0 0 `+1e3*r+` `+Math.round(1e3*t),preserveAspectRatio:`xMinYMin`})],n);return i.height=t,i.style.height=I(t),i.style.width=I(r),{type:`elem`,elem:i}},La=.008,Ra={type:`kern`,size:-1*La},za=new Set([`|`,`\\lvert`,`\\rvert`,`\\vert`]),Ba=new Set([`\\|`,`\\lVert`,`\\rVert`,`\\Vert`]),Va=function(e,t,n,r,i,a){var o,s,c,l,u=``,d=0;o=c=l=e,s=null;var f=`Size1-Regular`;e===`\\uparrow`?c=l=`⏐`:e===`\\Uparrow`?c=l=`‖`:e===`\\downarrow`?o=c=`⏐`:e===`\\Downarrow`?o=c=`‖`:e===`\\updownarrow`?(o=`\\uparrow`,c=`⏐`,l=`\\downarrow`):e===`\\Updownarrow`?(o=`\\Uparrow`,c=`‖`,l=`\\Downarrow`):za.has(e)?(c=`∣`,u=`vert`,d=333):Ba.has(e)?(c=`∥`,u=`doublevert`,d=556):e===`[`||e===`\\lbrack`?(o=`⎡`,c=`⎢`,l=`⎣`,f=`Size4-Regular`,u=`lbrack`,d=667):e===`]`||e===`\\rbrack`?(o=`⎤`,c=`⎥`,l=`⎦`,f=`Size4-Regular`,u=`rbrack`,d=667):e===`\\lfloor`||e===`⌊`?(c=o=`⎢`,l=`⎣`,f=`Size4-Regular`,u=`lfloor`,d=667):e===`\\lceil`||e===`⌈`?(o=`⎡`,c=l=`⎢`,f=`Size4-Regular`,u=`lceil`,d=667):e===`\\rfloor`||e===`⌋`?(c=o=`⎥`,l=`⎦`,f=`Size4-Regular`,u=`rfloor`,d=667):e===`\\rceil`||e===`⌉`?(o=`⎤`,c=l=`⎥`,f=`Size4-Regular`,u=`rceil`,d=667):e===`(`||e===`\\lparen`?(o=`⎛`,c=`⎜`,l=`⎝`,f=`Size4-Regular`,u=`lparen`,d=875):e===`)`||e===`\\rparen`?(o=`⎞`,c=`⎟`,l=`⎠`,f=`Size4-Regular`,u=`rparen`,d=875):e===`\\{`||e===`\\lbrace`?(o=`⎧`,s=`⎨`,l=`⎩`,c=`⎪`,f=`Size4-Regular`):e===`\\}`||e===`\\rbrace`?(o=`⎫`,s=`⎬`,l=`⎭`,c=`⎪`,f=`Size4-Regular`):e===`\\lgroup`||e===`⟮`?(o=`⎧`,l=`⎩`,c=`⎪`,f=`Size4-Regular`):e===`\\rgroup`||e===`⟯`?(o=`⎫`,l=`⎭`,c=`⎪`,f=`Size4-Regular`):e===`\\lmoustache`||e===`⎰`?(o=`⎧`,l=`⎭`,c=`⎪`,f=`Size4-Regular`):(e===`\\rmoustache`||e===`⎱`)&&(o=`⎫`,l=`⎩`,c=`⎪`,f=`Size4-Regular`);var p=ka(o,f,i),m=p.height+p.depth,h=ka(c,f,i),g=h.height+h.depth,_=ka(l,f,i),v=_.height+_.depth,y=0,b=1;if(s!==null){var x=ka(s,f,i);y=x.height+x.depth,b=2}var S=m+v+y,C=S+Math.max(0,Math.ceil((t-S)/(b*g)))*b*g,w=r.fontMetrics().axisHeight;n&&(w*=r.sizeMultiplier);var T=C/2-w,E=[];if(u.length>0){var D=C-m-v,O=Math.round(C*1e3),k=Sn(u,Math.round(D*1e3)),ee=new Vn(u,k),te=I(d/1e3),ne=I(O/1e3),A=qr([],[new Bn([ee],{width:te,height:ne,viewBox:`0 0 `+d+` `+O})],r);A.height=O/1e3,A.style.width=te,A.style.height=ne,E.push({type:`elem`,elem:A})}else{if(E.push(Fa(l,f,i)),E.push(Ra),s===null){var re=C-m-v+2*La;E.push(Ia(c,re,r))}else{var ie=(C-m-v-y)/2+2*La;E.push(Ia(c,ie,r)),E.push(Ra),E.push(Fa(s,f,i)),E.push(Ra),E.push(Ia(c,ie,r))}E.push(Ra),E.push(Fa(o,f,i))}var ae=r.havingBaseStyle(F.TEXT);return Aa(q([`delimsizing`,`mult`],[$r({positionType:`bottom`,positionData:T,children:E})],ae),F.TEXT,r,a)},Ha=80,Ua=.08,Wa=function(e,t,n,r,i){return qr([`hide-tail`],[new Bn([new Vn(e,yn(e,r,n))],{width:`400em`,height:I(t),viewBox:`0 0 400000 `+n,preserveAspectRatio:`xMinYMin slice`})],i)},Ga=function(e,t){var n=t.havingBaseSizing(),r=to(`\\surd`,e*n.sizeMultiplier,$a,n),i=n.sizeMultiplier,a=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),o,s,c,l,u;return r.type===`small`?(l=1e3+1e3*a+Ha,e<1?i=1:e<1.4&&(i=.7),s=(1+a+Ua)/i,c=(1+a)/i,o=Wa(`sqrtMain`,s,l,a,t),o.style.minWidth=`0.853em`,u=.833/i):r.type===`large`?(l=(1e3+Ha)*Ya[r.size],c=(Ya[r.size]+a)/i,s=(Ya[r.size]+a+Ua)/i,o=Wa(`sqrtSize`+r.size,s,l,a,t),o.style.minWidth=`1.02em`,u=1/i):(s=e+a+Ua,c=e+a,l=Math.floor(1e3*e+a)+Ha,o=Wa(`sqrtTall`,s,l,a,t),o.style.minWidth=`0.742em`,u=1.056),o.height=c,o.style.height=I(s),{span:o,advanceWidth:u,ruleWidth:(t.fontMetrics().sqrtRuleThickness+a)*i}},Ka=new Set([`(`,`\\lparen`,`)`,`\\rparen`,`[`,`\\lbrack`,`]`,`\\rbrack`,`\\{`,`\\lbrace`,`\\}`,`\\rbrace`,`\\lfloor`,`\\rfloor`,`⌊`,`⌋`,`\\lceil`,`\\rceil`,`⌈`,`⌉`,`\\surd`]),qa=new Set([`\\uparrow`,`\\downarrow`,`\\updownarrow`,`\\Uparrow`,`\\Downarrow`,`\\Updownarrow`,`|`,`\\|`,`\\vert`,`\\Vert`,`\\lvert`,`\\rvert`,`\\lVert`,`\\rVert`,`\\lgroup`,`\\rgroup`,`⟮`,`⟯`,`\\lmoustache`,`\\rmoustache`,`⎰`,`⎱`]),Ja=new Set([`<`,`>`,`\\langle`,`\\rangle`,`/`,`\\backslash`,`\\lt`,`\\gt`]),Ya=[0,1.2,1.8,2.4,3],Xa=function(e,t,n,r,i){if(e===`<`||e===`\\lt`||e===`⟨`?e=`\\langle`:(e===`>`||e===`\\gt`||e===`⟩`)&&(e=`\\rangle`),Ka.has(e)||Ja.has(e))return Pa(e,t,!1,n,r,i);if(qa.has(e))return Va(e,Ya[t],!1,n,r,i);throw new P(`Illegal delimiter: '`+e+`'`)},Za=[{type:`small`,style:F.SCRIPTSCRIPT},{type:`small`,style:F.SCRIPT},{type:`small`,style:F.TEXT},{type:`large`,size:1},{type:`large`,size:2},{type:`large`,size:3},{type:`large`,size:4}],Qa=[{type:`small`,style:F.SCRIPTSCRIPT},{type:`small`,style:F.SCRIPT},{type:`small`,style:F.TEXT},{type:`stack`}],$a=[{type:`small`,style:F.SCRIPTSCRIPT},{type:`small`,style:F.SCRIPT},{type:`small`,style:F.TEXT},{type:`large`,size:1},{type:`large`,size:2},{type:`large`,size:3},{type:`large`,size:4},{type:`stack`}],eo=function(e){if(e.type===`small`)return`Main-Regular`;if(e.type===`large`)return`Size`+e.size+`-Regular`;if(e.type===`stack`)return`Size4-Regular`;var t=e.type;throw Error(`Add support for delim type '`+t+`' here.`)},to=function(e,t,n,r){for(var i=Math.min(2,3-r.style.size);i<n.length;i++){var a=n[i];if(a.type===`stack`)break;var o=ka(e,eo(a),`math`),s=o.height+o.depth;if(a.type===`small`){var c=r.havingBaseStyle(a.style);s*=c.sizeMultiplier}if(s>t)return a}return n[n.length-1]},no=function(e,t,n,r,i,a){e===`<`||e===`\\lt`||e===`⟨`?e=`\\langle`:(e===`>`||e===`\\gt`||e===`⟩`)&&(e=`\\rangle`);var o=Ja.has(e)?Za:Ka.has(e)?$a:Qa,s=to(e,t,o,r);return s.type===`small`?Ma(e,s.style,n,r,i,a):s.type===`large`?Pa(e,s.size,n,r,i,a):Va(e,t,n,r,i,a)},ro=function(e,t,n,r,i,a){var o=r.fontMetrics().axisHeight*r.sizeMultiplier,s=901,c=5/r.fontMetrics().ptPerEm,l=Math.max(t-o,n+o);return no(e,Math.max(l/500*s,2*l-c),!0,r,i,a)},io={"\\bigl":{mclass:`mopen`,size:1},"\\Bigl":{mclass:`mopen`,size:2},"\\biggl":{mclass:`mopen`,size:3},"\\Biggl":{mclass:`mopen`,size:4},"\\bigr":{mclass:`mclose`,size:1},"\\Bigr":{mclass:`mclose`,size:2},"\\biggr":{mclass:`mclose`,size:3},"\\Biggr":{mclass:`mclose`,size:4},"\\bigm":{mclass:`mrel`,size:1},"\\Bigm":{mclass:`mrel`,size:2},"\\biggm":{mclass:`mrel`,size:3},"\\Biggm":{mclass:`mrel`,size:4},"\\big":{mclass:`mord`,size:1},"\\Big":{mclass:`mord`,size:2},"\\bigg":{mclass:`mord`,size:3},"\\Bigg":{mclass:`mord`,size:4}},ao=new Set(`(,\\lparen,),\\rparen,[,\\lbrack,],\\rbrack,\\{,\\lbrace,\\},\\rbrace,\\lfloor,\\rfloor,⌊,⌋,\\lceil,\\rceil,⌈,⌉,<,>,\\langle,⟨,\\rangle,⟩,\\lt,\\gt,\\lvert,\\rvert,\\lVert,\\rVert,\\lgroup,\\rgroup,⟮,⟯,\\lmoustache,\\rmoustache,⎰,⎱,/,\\backslash,|,\\vert,\\|,\\Vert,\\uparrow,\\Uparrow,\\downarrow,\\Downarrow,\\updownarrow,\\Updownarrow,.`.split(`,`));function oo(e){return`isMiddle`in e}function so(e,t){var n=la(e);if(n&&ao.has(n.text))return n;throw n?new P(`Invalid delimiter '`+n.text+`' after '`+t.funcName+`'`,e):new P(`Invalid delimiter type '`+e.type+`'`,e)}J({type:`delimsizing`,names:[`\\bigl`,`\\Bigl`,`\\biggl`,`\\Biggl`,`\\bigr`,`\\Bigr`,`\\biggr`,`\\Biggr`,`\\bigm`,`\\Bigm`,`\\biggm`,`\\Biggm`,`\\big`,`\\Big`,`\\bigg`,`\\Bigg`],numArgs:1,argTypes:[`primitive`],handler:(e,t)=>{var n=so(mi(t[0]),e);return{type:`delimsizing`,mode:e.parser.mode,size:io[e.funcName].size,mclass:io[e.funcName].mclass,delim:n.text}},htmlBuilder:(e,t)=>e.delim===`.`?q([e.mclass]):Xa(e.delim,e.size,t,e.mode,[e.mclass]),mathmlBuilder:e=>{var t=[];e.delim!==`.`&&t.push(Pi(e.delim,e.mode));var n=new Y(`mo`,t);e.mclass===`mopen`||e.mclass===`mclose`?n.setAttribute(`fence`,`true`):n.setAttribute(`fence`,`false`),n.setAttribute(`stretchy`,`true`);var r=I(Ya[e.size]);return n.setAttribute(`minsize`,r),n.setAttribute(`maxsize`,r),n}});function co(e){if(!e.body)throw Error(`Bug: The leftright ParseNode wasn't fully parsed.`)}J({type:`leftright-right`,names:[`\\right`],numArgs:1,primitive:!0,handler:(e,t)=>{var n=e.parser.gullet.macros.get(`\\current@color`);if(n&&typeof n!=`string`)throw new P(`\\current@color set to non-string in \\right`);return{type:`leftright-right`,mode:e.parser.mode,delim:so(t[0],e).text,color:n}}}),J({type:`leftright`,names:[`\\left`],numArgs:1,primitive:!0,handler:(e,t)=>{var n=so(t[0],e),r=e.parser;++r.leftrightDepth;var i=r.parseExpression(!1);--r.leftrightDepth,r.expect(`\\right`,!1);var a=X(r.parseFunction(),`leftright-right`);return{type:`leftright`,mode:r.mode,body:i,left:n.text,right:a.delim,rightColor:a.color}},htmlBuilder:(e,t)=>{co(e);for(var n=bi(e.body,t,!0,[`mopen`,`mclose`]),r=0,i=0,a=!1,o=0;o<n.length;o++){var s=n[o];oo(s)?a=!0:(r=Math.max(n[o].height,r),i=Math.max(n[o].depth,i))}r*=t.sizeMultiplier,i*=t.sizeMultiplier;var c=e.left===`.`?Ti(t,[`mopen`]):ro(e.left,r,i,t,e.mode,[`mopen`]);if(n.unshift(c),a)for(var l=1;l<n.length;l++){var u=n[l];if(oo(u)){var d=u.isMiddle;n[l]=ro(d.delim,r,i,d.options,e.mode,[])}}var f;if(e.right===`.`)f=Ti(t,[`mclose`]);else{var p=e.rightColor?t.withColor(e.rightColor):t;f=ro(e.right,r,i,p,e.mode,[`mclose`])}return n.push(f),q([`minner`],n,t)},mathmlBuilder:(e,t)=>{co(e);var n=zi(e.body,t);if(e.left!==`.`){var r=new Y(`mo`,[Pi(e.left,e.mode)]);r.setAttribute(`fence`,`true`),n.unshift(r)}if(e.right!==`.`){var i=new Y(`mo`,[Pi(e.right,e.mode)]);i.setAttribute(`fence`,`true`),e.rightColor&&i.setAttribute(`mathcolor`,e.rightColor),n.push(i)}return Fi(n)}}),J({type:`middle`,names:[`\\middle`],numArgs:1,primitive:!0,handler:(e,t)=>{var n=so(t[0],e);if(!e.parser.leftrightDepth)throw new P(`\\middle without preceding \\left`,n);return{type:`middle`,mode:e.parser.mode,delim:n.text}},htmlBuilder:(e,t)=>{var n;return e.delim===`.`?n=Ti(t,[]):(n=Xa(e.delim,1,t,e.mode,[]),n.isMiddle={delim:e.delim,options:t}),n},mathmlBuilder:(e,t)=>{var n=new Y(`mo`,[e.delim===`\\vert`||e.delim===`|`?Pi(`|`,`text`):Pi(e.delim,e.mode)]);return n.setAttribute(`fence`,`true`),n.setAttribute(`lspace`,`0.05em`),n.setAttribute(`rspace`,`0.05em`),n}}),J({type:`enclose`,names:[`\\colorbox`],numArgs:2,allowedInText:!0,argTypes:[`color`,`hbox`],handler(e,t,n){var r=e.parser,i=e.funcName,a=X(t[0],`color-token`).color,o=t[1];return{type:`enclose`,mode:r.mode,label:i,backgroundColor:a,body:o}},htmlBuilder:(e,t)=>{var n=Zr(Ei(e.body,t),t),r=e.label.slice(1),i=t.sizeMultiplier,a,o,s=It(e.body);if(r===`sout`)a=q([`katex-stretchy`,`katex-sout`]),a.height=t.fontMetrics().defaultRuleThickness/i,o=-.5*t.fontMetrics().xHeight;else if(r===`phase`){var c=On({number:.6,unit:`pt`},t),l=On({number:.35,unit:`ex`},t),u=t.havingBaseSizing();i/=u.sizeMultiplier;var d=n.height+n.depth+c+l;n.style.paddingLeft=I(d/2+c);var f=Math.floor(1e3*d*i);a=qr([`hide-tail`],[new Bn([new Vn(`phase`,_n(f))],{width:`400em`,height:I(f/1e3),viewBox:`0 0 400000 `+f,preserveAspectRatio:`xMinYMin slice`})],t),a.style.height=I(d),o=n.depth+c+l}else{/cancel/.test(r)?s||n.classes.push(`cancel-pad`):r===`angl`?n.classes.push(`anglpad`):n.classes.push(`boxpad`);var p,m,h=0;/box/.test(r)?(h=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),p=t.fontMetrics().fboxsep+(r===`colorbox`?0:h),m=p):r===`angl`?(h=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness),p=4*h,m=Math.max(0,.25-n.depth)):(p=s?.2:0,m=p),a=na(n,r,p,m,t),/fbox|boxed|fcolorbox/.test(r)?(a.style.borderStyle=`solid`,a.style.borderWidth=I(h)):r===`angl`&&h!==.049&&(a.style.borderTopWidth=I(h),a.style.borderRightWidth=I(h)),o=n.depth+m,e.backgroundColor&&(a.style.backgroundColor=e.backgroundColor,e.borderColor&&(a.style.borderColor=e.borderColor))}var g;if(e.backgroundColor)g=$r({positionType:`individualShift`,children:[{type:`elem`,elem:a,shift:o},{type:`elem`,elem:n,shift:0}]});else{var _=/cancel|phase/.test(r)?[`svg-align`]:[];g=$r({positionType:`individualShift`,children:[{type:`elem`,elem:n,shift:0},{type:`elem`,elem:a,shift:o,wrapperClasses:_}]})}return/cancel/.test(r)&&(g.height=n.height,g.depth=n.depth),/cancel/.test(r)&&!s?q([`mord`,`cancel-lap`],[g],t):q([`mord`],[g],t)},mathmlBuilder:(e,t)=>{var n,r=new Y(e.label.includes(`colorbox`)?`mpadded`:`menclose`,[Vi(e.body,t)]);switch(e.label){case`\\cancel`:r.setAttribute(`notation`,`updiagonalstrike`);break;case`\\bcancel`:r.setAttribute(`notation`,`downdiagonalstrike`);break;case`\\phase`:r.setAttribute(`notation`,`phasorangle`);break;case`\\sout`:r.setAttribute(`notation`,`horizontalstrike`);break;case`\\fbox`:r.setAttribute(`notation`,`box`);break;case`\\angl`:r.setAttribute(`notation`,`actuarial`);break;case`\\fcolorbox`:case`\\colorbox`:if(n=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,r.setAttribute(`width`,`+`+2*n+`pt`),r.setAttribute(`height`,`+`+2*n+`pt`),r.setAttribute(`lspace`,n+`pt`),r.setAttribute(`voffset`,n+`pt`),e.label===`\\fcolorbox`){var i=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);r.setAttribute(`style`,`border: `+I(i)+` solid `+e.borderColor)}break;case`\\xcancel`:r.setAttribute(`notation`,`updiagonalstrike downdiagonalstrike`);break}return e.backgroundColor&&r.setAttribute(`mathbackground`,e.backgroundColor),r}}),J({type:`enclose`,names:[`\\fcolorbox`],numArgs:3,allowedInText:!0,argTypes:[`color`,`color`,`hbox`],handler(e,t,n){var r=e.parser,i=e.funcName,a=X(t[0],`color-token`).color,o=X(t[1],`color-token`).color,s=t[2];return{type:`enclose`,mode:r.mode,label:i,backgroundColor:o,borderColor:a,body:s}}}),J({type:`enclose`,names:[`\\fbox`],numArgs:1,argTypes:[`hbox`],allowedInText:!0,handler(e,t){return{type:`enclose`,mode:e.parser.mode,label:`\\fbox`,body:t[0]}}}),J({type:`enclose`,names:[`\\cancel`,`\\bcancel`,`\\xcancel`,`\\phase`],numArgs:1,handler(e,t){var n=e.parser,r=e.funcName,i=t[0];return{type:`enclose`,mode:n.mode,label:r,body:i}}}),J({type:`enclose`,names:[`\\sout`],numArgs:1,allowedInText:!0,handler(e,t){var n=e.parser,r=e.funcName;n.mode===`math`&&n.settings.reportNonstrict(`mathVsSout`,`LaTeX's \\sout works only in text mode`);var i=t[0];return{type:`enclose`,mode:n.mode,label:r,body:i}}}),J({type:`enclose`,names:[`\\angl`],numArgs:1,argTypes:[`hbox`],allowedInText:!1,handler(e,t){return{type:`enclose`,mode:e.parser.mode,label:`\\angl`,body:t[0]}}});var lo={};function uo(e){for(var t=e.type,n=e.names,r=e.props,i=e.handler,a=e.htmlBuilder,o=e.mathmlBuilder,s={type:t,numArgs:r.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:i},c=0;c<n.length;++c)lo[n[c]]=s;a&&(di[t]=a),o&&(fi[t]=o)}var fo={};function Z(e,t){fo[e]=t}var po=class e{constructor(e,t,n){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=n}static range(t,n){return n?!t||!t.loc||!n.loc||t.loc.lexer!==n.loc.lexer?null:new e(t.loc.lexer,t.loc.start,n.loc.end):t&&t.loc}},mo=class e{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=t}range(t,n){return new e(n,po.range(this,t))}};function ho(e){var t=[];e.consumeSpaces();var n=e.fetch().text;for(n===`\\relax`&&(e.consume(),e.consumeSpaces(),n=e.fetch().text);n===`\\hline`||n===`\\hdashline`;)e.consume(),t.push(n===`\\hdashline`),e.consumeSpaces(),n=e.fetch().text;return t}var go=e=>{if(!e.parser.settings.displayMode)throw new P(`{`+e.envName+`} can be used only in display mode.`)},_o=new Set([`gather`,`gather*`]);function vo(e){if(!e.includes(`ed`))return!e.includes(`*`)}function yo(e,t,n){var r=t.hskipBeforeAndAfter,i=t.addJot,a=t.cols,o=t.arraystretch,s=t.colSeparationType,c=t.autoTag,l=t.singleRow,u=t.emptySingleRow,d=t.maxNumCols,f=t.leqno;if(e.gullet.beginGroup(),l||e.gullet.macros.set(`\\cr`,`\\\\\\relax`),!o){var p=e.gullet.expandMacroAsText(`\\arraystretch`);if(p==null)o=1;else if(o=parseFloat(p),!o||o<0)throw new P(`Invalid \\arraystretch: `+p)}e.gullet.beginGroup();var m=[],h=[m],g=[],_=[],v=c==null?void 0:[];function y(){c&&e.gullet.macros.set(`\\@eqnsw`,`1`,!0)}function b(){v&&(e.gullet.macros.get(`\\df@tag`)?(v.push(e.subparse([new mo(`\\df@tag`)])),e.gullet.macros.set(`\\df@tag`,void 0,!0)):v.push(!!c&&e.gullet.macros.get(`\\@eqnsw`)===`1`))}for(y(),_.push(ho(e));;){var x=e.parseExpression(!1,l?`\\end`:`\\\\`);e.gullet.endGroup(),e.gullet.beginGroup();var S={type:`ordgroup`,mode:e.mode,body:x};n&&(S={type:`styling`,mode:e.mode,style:n,resetFont:!0,body:[S]}),m.push(S);var C=e.fetch().text;if(C===`&`){if(d&&m.length===d){if(l||s)throw new P(`Too many tab characters: &`,e.nextToken);e.settings.reportNonstrict(`textEnv`,`Too few columns specified in the {array} column argument.`)}e.consume()}else if(C===`\\end`){b(),m.length===1&&S.type===`styling`&&S.body.length===1&&S.body[0].type===`ordgroup`&&S.body[0].body.length===0&&(h.length>1||!u)&&!Array.isArray(v?.[v.length-1])&&h.pop(),_.length<h.length+1&&_.push([]);break}else if(C===`\\\\`){e.consume();var w=void 0;e.gullet.future().text!==` `&&(w=e.parseSizeGroup(!0)),g.push(w?w.value:null),b(),_.push(ho(e)),m=[],h.push(m),y()}else throw new P(`Expected & or \\\\ or \\cr or \\end`,e.nextToken)}return e.gullet.endGroup(),e.gullet.endGroup(),{type:`array`,mode:e.mode,addJot:i,arraystretch:o,body:h,cols:a,rowGaps:g,hskipBeforeAndAfter:r,hLinesBeforeRow:_,colSeparationType:s,tags:v,leqno:f}}function bo(e){return e.slice(0,1)===`d`?`display`:`text`}var xo=function(e,t){var n,r,i=e.body.length,a=e.hLinesBeforeRow,o=0,s=Array(i),c=[],l=Math.max(t.fontMetrics().arrayRuleWidth,t.minRuleThickness),u=1/t.fontMetrics().ptPerEm,d=5*u;e.colSeparationType&&e.colSeparationType===`small`&&(d=.2778*(t.havingStyle(F.SCRIPT).sizeMultiplier/t.sizeMultiplier));var f=e.colSeparationType===`CD`?On({number:3,unit:`ex`},t):12*u,p=3*u,m=e.arraystretch*f,h=.7*m,g=.3*m,_=0;function v(e){for(var t=0;t<e.length;++t)t>0&&(_+=.25),c.push({pos:_,isDashed:e[t]})}for(v(a[0]),n=0;n<e.body.length;++n){var y=e.body[n],b=h,x=g;o<y.length&&(o=y.length);var S={cells:Array(y.length),height:0,depth:0,pos:0};for(r=0;r<y.length;++r){var C=Ei(y[r],t);x<C.depth&&(x=C.depth),b<C.height&&(b=C.height),S.cells[r]=C}var w=e.rowGaps[n],T=0;w&&(T=On(w,t),T>0&&(T+=g,x<T&&(x=T),T=0)),e.addJot&&n<e.body.length-1&&(x+=p),S.height=b,S.depth=x,_+=b,S.pos=_,_+=x+T,s[n]=S,v(a[n+1])}var E=_/2+t.fontMetrics().axisHeight,D=e.cols||[],O=[],k,ee,te=[];if(e.tags&&e.tags.some(e=>e))for(n=0;n<i;++n){var ne=s[n],A=ne.pos-E,re=e.tags[n],ie=void 0;ie=re===!0?q([`eqn-num`],[],t):re===!1?q([],[],t):q([],bi(re,t,!0),t),ie.depth=ne.depth,ie.height=ne.height,te.push({type:`elem`,elem:ie,shift:A})}for(r=0,ee=0;r<o||ee<D.length;++r,++ee){for(var ae=D[ee],oe=!0;(se=ae)?.type===`separator`;){var se;if(oe||(k=q([`arraycolsep`],[]),k.style.width=I(t.fontMetrics().doubleRuleSep),O.push(k)),ae.separator===`|`||ae.separator===`:`){var ce=ae.separator===`|`?`solid`:`dashed`,le=q([`vertical-separator`],[],t);le.style.height=I(_),le.style.borderRightWidth=I(l),le.style.borderRightStyle=ce,le.style.margin=`0 `+I(-l/2);var ue=_-E;ue&&(le.style.verticalAlign=I(-ue)),O.push(le)}else throw new P(`Invalid separator type: `+ae.separator);ee++,ae=D[ee],oe=!1}if(!(r>=o)){var j=void 0;(r>0||e.hskipBeforeAndAfter)&&(j=ae?.pregap??d,j!==0&&(k=q([`arraycolsep`],[]),k.style.width=I(j),O.push(k)));var de=[];for(n=0;n<i;++n){var fe=s[n],pe=fe.cells[r];if(pe){var me=fe.pos-E;pe.depth=fe.depth,pe.height=fe.height,de.push({type:`elem`,elem:pe,shift:me})}}var he=$r({positionType:`individualShift`,children:de}),ge=q([`col-align-`+(ae?.align||`c`)],[he]);O.push(ge),(r<o-1||e.hskipBeforeAndAfter)&&(j=ae?.postgap??d,j!==0&&(k=q([`arraycolsep`],[]),k.style.width=I(j),O.push(k)))}}var _e=q([`mtable`],O);if(c.length>0){for(var ve=Jr(`katex-hline`,t,l),ye=Jr(`katex-hdashline`,t,l),be=[{type:`elem`,elem:_e,shift:0}];c.length>0;){var xe=c.pop(),Se=xe.pos-E;xe.isDashed?be.push({type:`elem`,elem:ye,shift:Se}):be.push({type:`elem`,elem:ve,shift:Se})}_e=$r({positionType:`individualShift`,children:be})}if(te.length===0)return q([`mord`],[_e],t);var Ce=q([`katex-tag`],[$r({positionType:`individualShift`,children:te})],t);return Xr([_e,Ce])},So={c:`center `,l:`left `,r:`right `},Co=function(e,t){for(var n=[],r=new Y(`mtd`,[],[`mtr-glue`]),i=new Y(`mtd`,[],[`mml-eqn-num`]),a=0;a<e.body.length;a++){for(var o=e.body[a],s=[],c=0;c<o.length;c++)s.push(new Y(`mtd`,[Vi(o[c],t)]));e.tags&&e.tags[a]&&(s.unshift(r),s.push(r),e.leqno?s.unshift(i):s.push(i)),n.push(new Y(`mtr`,s))}var l=new Y(`mtable`,n),u=e.arraystretch===.5?.1:.16+e.arraystretch-1+(e.addJot?.09:0);l.setAttribute(`rowspacing`,I(u));var d=``,f=``;if(e.cols&&e.cols.length>0){var p=e.cols,m=``,h=!1,g=0,_=p.length;p[0].type===`separator`&&(d+=`top `,g=1),p[p.length-1].type===`separator`&&(d+=`bottom `,--_);for(var v=g;v<_;v++){var y=p[v];y.type===`align`?(f+=So[y.align],h&&(m+=`none `),h=!0):y.type===`separator`&&(h&&=(m+=y.separator===`|`?`solid `:`dashed `,!1))}l.setAttribute(`columnalign`,f.trim()),/[sd]/.test(m)&&l.setAttribute(`columnlines`,m.trim())}if(e.colSeparationType===`align`){for(var b=e.cols||[],x=``,S=1;S<b.length;S++)x+=S%2?`0em `:`1em `;l.setAttribute(`columnspacing`,x.trim())}else e.colSeparationType===`alignat`||e.colSeparationType===`gather`?l.setAttribute(`columnspacing`,`0em`):e.colSeparationType===`small`?l.setAttribute(`columnspacing`,`0.2778em`):e.colSeparationType===`CD`?l.setAttribute(`columnspacing`,`0.5em`):l.setAttribute(`columnspacing`,`1em`);var C=``,w=e.hLinesBeforeRow;d+=w[0].length>0?`left `:``,d+=w[w.length-1].length>0?`right `:``;for(var T=1;T<w.length-1;T++)C+=w[T].length===0?`none `:w[T][0]?`dashed `:`solid `;return/[sd]/.test(C)&&l.setAttribute(`rowlines`,C.trim()),d!==``&&(l=new Y(`menclose`,[l]),l.setAttribute(`notation`,d.trim())),e.arraystretch&&e.arraystretch<1&&(l=new Y(`mstyle`,[l]),l.setAttribute(`scriptlevel`,`1`)),l},wo=function(e,t){e.envName.includes(`ed`)||go(e);var n=[],r=e.envName===`split`,i=yo(e.parser,{cols:n,addJot:!0,autoTag:r?void 0:vo(e.envName),emptySingleRow:!0,colSeparationType:e.envName.includes(`at`)?`alignat`:`align`,maxNumCols:r?2:void 0,leqno:e.parser.settings.leqno},`display`),a=0,o=0,s={type:`ordgroup`,mode:e.mode,body:[]};if(t[0]&&t[0].type===`ordgroup`){var c=`Number of columns should be a positive integer`,l=ua(t[0],c);if(!/^[0-9]+$/.test(l)||Number(l)<1)throw new P(c,t[0]);a=Number(l),o=a*2}var u=!o;i.body.forEach(function(e){for(var t=1;t<e.length;t+=2)X(X(e[t],`styling`).body[0],`ordgroup`).body.unshift(s);if(u)o<e.length&&(o=e.length);else{var n=e.length/2;if(a<n)throw new P(`Too many math in a row: `+(`expected `+a+`, but got `+n),e[0])}});for(var d=0;d<o;++d){var f=`r`,p=0;d%2==1?f=`l`:d>0&&u&&(p=1),n[d]={type:`align`,align:f,pregap:p,postgap:0}}return i.colSeparationType=u?`align`:`alignat`,i};uo({type:`array`,names:[`array`,`darray`],props:{numArgs:1},handler(e,t){var n=(la(t[0])?[t[0]]:X(t[0],`ordgroup`).body).map(function(e){var t=ca(e).text;if(`lcr`.includes(t))return{type:`align`,align:t};if(t===`|`)return{type:`separator`,separator:`|`};if(t===`:`)return{type:`separator`,separator:`:`};throw new P(`Unknown column alignment: `+t,e)}),r={cols:n,hskipBeforeAndAfter:!0,maxNumCols:n.length};return yo(e.parser,r,bo(e.envName))},htmlBuilder:xo,mathmlBuilder:Co}),uo({type:`array`,names:[`matrix`,`pmatrix`,`bmatrix`,`Bmatrix`,`vmatrix`,`Vmatrix`,`matrix*`,`pmatrix*`,`bmatrix*`,`Bmatrix*`,`vmatrix*`,`Vmatrix*`],props:{numArgs:0},handler(e){var t={matrix:null,pmatrix:[`(`,`)`],bmatrix:[`[`,`]`],Bmatrix:[`\\{`,`\\}`],vmatrix:[`|`,`|`],Vmatrix:[`\\Vert`,`\\Vert`]}[e.envName.replace(`*`,``)],n=`c`,r={hskipBeforeAndAfter:!1,cols:[{type:`align`,align:n}]};if(e.envName.charAt(e.envName.length-1)===`*`){var i=e.parser;if(i.consumeSpaces(),i.fetch().text===`[`){if(i.consume(),i.consumeSpaces(),n=i.fetch().text,!`lcr`.includes(n))throw new P(`Expected l or c or r`,i.nextToken);i.consume(),i.consumeSpaces(),i.expect(`]`),i.consume(),r.cols=[{type:`align`,align:n}]}}var a=yo(e.parser,r,bo(e.envName)),o=Math.max(0,...a.body.map(e=>e.length));return a.cols=Array(o).fill({type:`align`,align:n}),t?{type:`leftright`,mode:e.mode,body:[a],left:t[0],right:t[1],rightColor:void 0}:a},htmlBuilder:xo,mathmlBuilder:Co}),uo({type:`array`,names:[`smallmatrix`],props:{numArgs:0},handler(e){var t=yo(e.parser,{arraystretch:.5},`script`);return t.colSeparationType=`small`,t},htmlBuilder:xo,mathmlBuilder:Co}),uo({type:`array`,names:[`subarray`],props:{numArgs:1},handler(e,t){var n=(la(t[0])?[t[0]]:X(t[0],`ordgroup`).body).map(function(e){var t=ca(e).text;if(`lc`.includes(t))return{type:`align`,align:t};throw new P(`Unknown column alignment: `+t,e)});if(n.length>1)throw new P(`{subarray} can contain only one column`);var r={cols:n,hskipBeforeAndAfter:!1,arraystretch:.5},i=yo(e.parser,r,`script`);if(i.body.length>0&&i.body[0].length>1)throw new P(`{subarray} can contain only one column`);return i},htmlBuilder:xo,mathmlBuilder:Co}),uo({type:`array`,names:[`cases`,`dcases`,`rcases`,`drcases`],props:{numArgs:0},handler(e){var t=yo(e.parser,{arraystretch:1.2,cols:[{type:`align`,align:`l`,pregap:0,postgap:1},{type:`align`,align:`l`,pregap:0,postgap:0}]},bo(e.envName));return{type:`leftright`,mode:e.mode,body:[t],left:e.envName.includes(`r`)?`.`:`\\{`,right:e.envName.includes(`r`)?`\\}`:`.`,rightColor:void 0}},htmlBuilder:xo,mathmlBuilder:Co}),uo({type:`array`,names:[`align`,`align*`,`aligned`,`split`],props:{numArgs:0},handler:wo,htmlBuilder:xo,mathmlBuilder:Co}),uo({type:`array`,names:[`gathered`,`gather`,`gather*`],props:{numArgs:0},handler(e){_o.has(e.envName)&&go(e);var t={cols:[{type:`align`,align:`c`}],addJot:!0,colSeparationType:`gather`,autoTag:vo(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return yo(e.parser,t,`display`)},htmlBuilder:xo,mathmlBuilder:Co}),uo({type:`array`,names:[`alignat`,`alignat*`,`alignedat`],props:{numArgs:1},handler:wo,htmlBuilder:xo,mathmlBuilder:Co}),uo({type:`array`,names:[`equation`,`equation*`],props:{numArgs:0},handler(e){go(e);var t={autoTag:vo(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return yo(e.parser,t,`display`)},htmlBuilder:xo,mathmlBuilder:Co}),uo({type:`array`,names:[`CD`],props:{numArgs:0},handler(e){return go(e),wa(e.parser)},htmlBuilder:xo,mathmlBuilder:Co}),Z(`\\nonumber`,`\\gdef\\@eqnsw{0}`),Z(`\\notag`,`\\nonumber`),J({type:`text`,names:[`\\hline`,`\\hdashline`],numArgs:0,allowedInText:!0,allowedInMath:!0,handler(e,t){throw new P(e.funcName+` valid only within array environment`)}});var To=lo;J({type:`environment`,names:[`\\begin`,`\\end`],numArgs:1,argTypes:[`text`],handler(e,t){var n=e.parser,r=e.funcName,i=t[0];if(i.type!==`ordgroup`)throw new P(`Invalid environment name`,i);var a=ua(i,`Environment name should contain only text characters and spaces`,!0);if(r===`\\begin`){if(!Object.prototype.hasOwnProperty.call(To,a))throw new P(`No such environment: `+a,i);var o=To[a],s=n.parseArguments(`\\begin{`+a+`}`,o),c=s.args,l=s.optArgs,u={mode:n.mode,envName:a,parser:n},d=o.handler(u,c,l);n.expect(`\\end`,!1);var f=n.nextToken,p=X(n.parseFunction(),`environment`);if(p.name!==a)throw new P(`Mismatch: \\begin{`+a+`} matched by \\end{`+p.name+`}`,f);return d}return{type:`environment`,mode:n.mode,name:a,nameGroup:i}}});var Eo=(e,t)=>{var n=e.font,r=t.withFont(n);return Ei(e.body,r)},Do=(e,t)=>{var n=e.font,r=t.withFont(n);return Vi(e.body,r)},Oo={"\\Bbb":`\\mathbb`,"\\bold":`\\mathbf`,"\\frak":`\\mathfrak`};J({type:`font`,names:[`\\mathrm`,`\\mathit`,`\\mathbf`,`\\mathnormal`,`\\mathsfit`,`\\mathbb`,`\\mathcal`,`\\mathfrak`,`\\mathscr`,`\\mathsf`,`\\mathtt`,`\\Bbb`,`\\bold`,`\\frak`],numArgs:1,allowedInArgument:!0,handler:(e,t)=>{var n=e.parser,r=e.funcName,i=mi(t[0]),a=r in Oo?Oo[r]:r;return{type:`font`,mode:n.mode,font:a.slice(1),body:i}},htmlBuilder:Eo,mathmlBuilder:Do}),J({type:`mclass`,names:[`\\boldsymbol`,`\\bm`],numArgs:1,handler:(e,t)=>{var n=e.parser,r=t[0];return{type:`mclass`,mode:n.mode,mclass:va(r),body:[{type:`font`,mode:n.mode,font:`boldsymbol`,body:r}],isCharacterBox:It(r)}}}),J({type:`font`,names:[`\\rm`,`\\sf`,`\\tt`,`\\bf`,`\\it`,`\\cal`],numArgs:0,allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=e.funcName,i=e.breakOnTokenText,a=n.mode,o=n.parseExpression(!0,i);return{type:`font`,mode:a,font:`math`+r.slice(1),body:{type:`ordgroup`,mode:n.mode,body:o}}}});var ko=(e,t)=>{var n=t.style,r=n.fracNum(),i=n.fracDen(),a=t.havingStyle(r),o=Ei(e.numer,a,t);if(e.continued){var s=8.5/t.fontMetrics().ptPerEm,c=3.5/t.fontMetrics().ptPerEm;o.height=o.height<s?s:o.height,o.depth=o.depth<c?c:o.depth}a=t.havingStyle(i);var l=Ei(e.denom,a,t),u,d,f;e.hasBarLine?(e.barSize?(d=On(e.barSize,t),u=Jr(`frac-line`,t,d)):u=Jr(`frac-line`,t),d=u.height,f=u.height):(u=null,d=0,f=t.fontMetrics().defaultRuleThickness);var p,m,h;n.size===F.DISPLAY.size?(p=t.fontMetrics().num1,m=d>0?3*f:7*f,h=t.fontMetrics().denom1):(d>0?(p=t.fontMetrics().num2,m=f):(p=t.fontMetrics().num3,m=3*f),h=t.fontMetrics().denom2);var g;if(u){var _=t.fontMetrics().axisHeight;p-o.depth-(_+.5*d)<m&&(p+=m-(p-o.depth-(_+.5*d))),_-.5*d-(l.height-h)<m&&(h+=m-(_-.5*d-(l.height-h)));var v=-(_-.5*d);g=$r({positionType:`individualShift`,children:[{type:`elem`,elem:l,shift:h},{type:`elem`,elem:u,shift:v},{type:`elem`,elem:o,shift:-p}]})}else{var y=p-o.depth-(l.height-h);y<m&&(p+=.5*(m-y),h+=.5*(m-y)),g=$r({positionType:`individualShift`,children:[{type:`elem`,elem:l,shift:h},{type:`elem`,elem:o,shift:-p}]})}a=t.havingStyle(n),g.height*=a.sizeMultiplier/t.sizeMultiplier,g.depth*=a.sizeMultiplier/t.sizeMultiplier;var b=n.size===F.DISPLAY.size?t.fontMetrics().delim1:n.size===F.SCRIPTSCRIPT.size?t.havingStyle(F.SCRIPT).fontMetrics().delim2:t.fontMetrics().delim2,x=e.leftDelim==null?Ti(t,[`mopen`]):no(e.leftDelim,b,!0,t.havingStyle(n),e.mode,[`mopen`]),S=e.continued?q([]):e.rightDelim==null?Ti(t,[`mclose`]):no(e.rightDelim,b,!0,t.havingStyle(n),e.mode,[`mclose`]);return q([`mord`].concat(a.sizingClasses(t)),[x,q([`mfrac`],[g]),S],t)},Ao=(e,t)=>{var n=new Y(`mfrac`,[Vi(e.numer,t),Vi(e.denom,t)]);if(!e.hasBarLine)n.setAttribute(`linethickness`,`0px`);else if(e.barSize){var r=On(e.barSize,t);n.setAttribute(`linethickness`,I(r))}if(e.leftDelim!=null||e.rightDelim!=null){var i=[];if(e.leftDelim!=null){var a=new Y(`mo`,[new Ai(e.leftDelim.replace(`\\`,``))]);a.setAttribute(`fence`,`true`),i.push(a)}if(i.push(n),e.rightDelim!=null){var o=new Y(`mo`,[new Ai(e.rightDelim.replace(`\\`,``))]);o.setAttribute(`fence`,`true`),i.push(o)}return Fi(i)}return n},jo=(e,t)=>t?{type:`styling`,mode:e.mode,style:t,body:[e]}:e;J({type:`genfrac`,names:[`\\cfrac`,`\\dfrac`,`\\frac`,`\\tfrac`,`\\dbinom`,`\\binom`,`\\tbinom`,`\\\\atopfrac`,`\\\\bracefrac`,`\\\\brackfrac`],numArgs:2,allowedInArgument:!0,handler:(e,t)=>{var n=e.parser,r=e.funcName,i=t[0],a=t[1],o,s=null,c=null;switch(r){case`\\cfrac`:case`\\dfrac`:case`\\frac`:case`\\tfrac`:o=!0;break;case`\\\\atopfrac`:o=!1;break;case`\\dbinom`:case`\\binom`:case`\\tbinom`:o=!1,s=`(`,c=`)`;break;case`\\\\bracefrac`:o=!1,s=`\\{`,c=`\\}`;break;case`\\\\brackfrac`:o=!1,s=`[`,c=`]`;break;default:throw Error(`Unrecognized genfrac command`)}var l=r===`\\cfrac`,u=null;return l||r.startsWith(`\\d`)?u=`display`:r.startsWith(`\\t`)&&(u=`text`),jo({type:`genfrac`,mode:n.mode,numer:i,denom:a,continued:l,hasBarLine:o,leftDelim:s,rightDelim:c,barSize:null},u)},htmlBuilder:ko,mathmlBuilder:Ao}),J({type:`infix`,names:[`\\over`,`\\choose`,`\\atop`,`\\brace`,`\\brack`],numArgs:0,infix:!0,handler(e){var t=e.parser,n=e.funcName,r=e.token,i;switch(n){case`\\over`:i=`\\frac`;break;case`\\choose`:i=`\\binom`;break;case`\\atop`:i=`\\\\atopfrac`;break;case`\\brace`:i=`\\\\bracefrac`;break;case`\\brack`:i=`\\\\brackfrac`;break;default:throw Error(`Unrecognized infix genfrac command`)}return{type:`infix`,mode:t.mode,replaceWith:i,token:r}}});var Mo=[`display`,`text`,`script`,`scriptscript`],No=function(e){var t=null;return e.length>0&&(t=e,t=t===`.`?null:t),t};J({type:`genfrac`,names:[`\\genfrac`],numArgs:6,allowedInArgument:!0,argTypes:[`math`,`math`,`size`,`text`,`math`,`math`],handler(e,t){var n=e.parser,r=t[4],i=t[5],a=mi(t[0]),o=a.type===`atom`&&a.family===`open`?No(a.text):null,s=mi(t[1]),c=s.type===`atom`&&s.family===`close`?No(s.text):null,l=X(t[2],`size`),u,d=null;l.isBlank?u=!0:(d=l.value,u=d.number>0);var f=null,p=t[3];if(p.type===`ordgroup`){if(p.body.length>0){var m=X(p.body[0],`textord`);f=Mo[Number(m.text)]}}else p=X(p,`textord`),f=Mo[Number(p.text)];return jo({type:`genfrac`,mode:n.mode,numer:r,denom:i,continued:!1,hasBarLine:u,barSize:d,leftDelim:o,rightDelim:c},f)}}),J({type:`infix`,names:[`\\above`],numArgs:1,argTypes:[`size`],infix:!0,handler(e,t){var n=e.parser;e.funcName;var r=e.token;return{type:`infix`,mode:n.mode,replaceWith:`\\\\abovefrac`,size:X(t[0],`size`).value,token:r}}}),J({type:`genfrac`,names:[`\\\\abovefrac`],numArgs:3,argTypes:[`math`,`size`,`math`],handler:(e,t)=>{var n=e.parser;e.funcName;var r=t[0],i=X(t[1],`infix`).size;if(!i)throw Error(`\\\\abovefrac expected size, but got `+String(i));var a=t[2],o=i.number>0;return{type:`genfrac`,mode:n.mode,numer:r,denom:a,continued:!1,hasBarLine:o,barSize:i,leftDelim:null,rightDelim:null}}});var Po=(e,t)=>{var n=t.style,r,i;e.type===`supsub`?(r=e.sup?Ei(e.sup,t.havingStyle(n.sup()),t):Ei(e.sub,t.havingStyle(n.sub()),t),i=X(e.base,`horizBrace`)):i=X(e,`horizBrace`);var a=Ei(i.base,t.havingBaseStyle(F.DISPLAY)),o=ta(i,t),s=i.isOver?$r({positionType:`firstBaseline`,children:[{type:`elem`,elem:a},{type:`kern`,size:.1},{type:`elem`,elem:o,wrapperClasses:[`svg-align`]}]}):$r({positionType:`bottom`,positionData:a.depth+.1+o.height,children:[{type:`elem`,elem:o,wrapperClasses:[`svg-align`]},{type:`kern`,size:.1},{type:`elem`,elem:a}]});if(r){var c=q([`minner`,i.isOver?`mover`:`munder`],[s],t);s=i.isOver?$r({positionType:`firstBaseline`,children:[{type:`elem`,elem:c},{type:`kern`,size:.2},{type:`elem`,elem:r}]}):$r({positionType:`bottom`,positionData:c.depth+.2+r.height+r.depth,children:[{type:`elem`,elem:r},{type:`kern`,size:.2},{type:`elem`,elem:c}]})}return q([`minner`,i.isOver?`mover`:`munder`],[s],t)};J({type:`horizBrace`,names:[`\\overbrace`,`\\underbrace`,`\\overbracket`,`\\underbracket`],numArgs:1,handler(e,t){var n=e.parser,r=e.funcName;return{type:`horizBrace`,mode:n.mode,label:r,isOver:r.includes(`\\over`),base:t[0]}},htmlBuilder:Po,mathmlBuilder:(e,t)=>{var n=Qi(e.label);return new Y(e.isOver?`mover`:`munder`,[Vi(e.base,t),n])}}),J({type:`href`,names:[`\\href`],numArgs:2,argTypes:[`url`,`original`],allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=t[1],i=X(t[0],`url`).url;return n.settings.isTrusted({command:`\\href`,url:i})?{type:`href`,mode:n.mode,href:i,body:hi(r)}:n.formatUnsupportedCmd(`\\href`)},htmlBuilder:(e,t)=>{var n=bi(e.body,t,!1);return Yr(e.href,[],n,t)},mathmlBuilder:(e,t)=>{var n=Bi(e.body,t);return n instanceof Y||(n=new Y(`mrow`,[n])),n.setAttribute(`href`,e.href),n}}),J({type:`href`,names:[`\\url`],numArgs:1,argTypes:[`url`],allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=X(t[0],`url`).url;if(!n.settings.isTrusted({command:`\\url`,url:r}))return n.formatUnsupportedCmd(`\\url`);for(var i=[],a=0;a<r.length;a++){var o=r[a];o===`~`&&(o=`\\textasciitilde`),i.push({type:`textord`,mode:`text`,text:o})}var s={type:`text`,mode:n.mode,font:`\\texttt`,body:i};return{type:`href`,mode:n.mode,href:r,body:hi(s)}}}),J({type:`hbox`,names:[`\\hbox`],numArgs:1,argTypes:[`text`],allowedInText:!0,primitive:!0,handler(e,t){return{type:`hbox`,mode:e.parser.mode,body:hi(t[0])}},htmlBuilder(e,t){return Xr(bi(e.body,t.withFont(``),!1))},mathmlBuilder(e,t){return new Y(`mrow`,zi(e.body,t.withFont(``)))}}),J({type:`html`,names:[`\\htmlClass`,`\\htmlId`,`\\htmlStyle`,`\\htmlData`],numArgs:2,argTypes:[`raw`,`original`],allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=e.funcName;e.token;var i=X(t[0],`raw`).string,a=t[1];n.settings.strict&&n.settings.reportNonstrict(`htmlExtension`,`HTML extension is disabled on strict mode`);var o,s={};switch(r){case`\\htmlClass`:s.class=i,o={command:`\\htmlClass`,class:i};break;case`\\htmlId`:s.id=i,o={command:`\\htmlId`,id:i};break;case`\\htmlStyle`:s.style=i,o={command:`\\htmlStyle`,style:i};break;case`\\htmlData`:for(var c=`{,}`,l=[],u=``,d=0;d<i.length;d++)i.startsWith(c,d)?(u+=`,`,d+=c.length-1):i[d]===`,`?(l.push(u),u=``):u+=i[d];l.push(u);for(var f=0;f<l.length;f++){var p=l[f],m=p.indexOf(`=`);if(m<0)throw new P(`\\htmlData key/value '`+p+`' missing equals sign`);var h=p.slice(0,m),g=p.slice(m+1);s[`data-`+h.trim()]=g}o={command:`\\htmlData`,attributes:s};break;default:throw Error(`Unrecognized html command`)}return n.settings.isTrusted(o)?{type:`html`,mode:n.mode,attributes:s,body:hi(a)}:n.formatUnsupportedCmd(r)},htmlBuilder:(e,t)=>{var n=bi(e.body,t,!1),r=[`enclosing`];e.attributes.class&&r.push(...e.attributes.class.trim().split(/\s+/));var i=q(r,n,t);for(var a of Object.entries(e.attributes)){var o=a[0],s=a[1];o!==`class`&&i.setAttribute(o,s)}return i},mathmlBuilder:(e,t)=>Bi(e.body,t)}),J({type:`htmlmathml`,names:[`\\html@mathml`],numArgs:2,allowedInArgument:!0,allowedInText:!0,handler:(e,t)=>({type:`htmlmathml`,mode:e.parser.mode,html:hi(t[0]),mathml:hi(t[1])}),htmlBuilder:(e,t)=>Xr(bi(e.html,t,!1)),mathmlBuilder:(e,t)=>Bi(e.mathml,t)});var Fo=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:`bp`};var t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new P(`Invalid size: '`+e+`' in \\includegraphics`);var n={number:+(t[1]+t[2]),unit:t[3]};if(!Dn(n))throw new P(`Invalid unit: '`+n.unit+`' in \\includegraphics.`);return n};J({type:`includegraphics`,names:[`\\includegraphics`],numArgs:1,numOptionalArgs:1,argTypes:[`raw`,`url`],allowedInText:!1,handler:(e,t,n)=>{var r=e.parser,i={number:0,unit:`em`},a={number:.9,unit:`em`},o={number:0,unit:`em`},s=``;if(n[0])for(var c=X(n[0],`raw`).string.split(`,`),l=0;l<c.length;l++){var u=c[l].split(`=`);if(u.length===2){var d=u[1].trim();switch(u[0].trim()){case`alt`:s=d;break;case`width`:i=Fo(d);break;case`height`:a=Fo(d);break;case`totalheight`:o=Fo(d);break;default:throw new P(`Invalid key: '`+u[0]+`' in \\includegraphics.`)}}}var f=X(t[0],`url`).url;return s===``&&(s=f,s=s.replace(/^.*[\\/]/,``),s=s.substring(0,s.lastIndexOf(`.`))),r.settings.isTrusted({command:`\\includegraphics`,url:f})?{type:`includegraphics`,mode:r.mode,alt:s,width:i,height:a,totalheight:o,src:f}:r.formatUnsupportedCmd(`\\includegraphics`)},htmlBuilder:(e,t)=>{var n=On(e.height,t),r=0;e.totalheight.number>0&&(r=On(e.totalheight,t)-n);var i=0;e.width.number>0&&(i=On(e.width,t));var a={height:I(n+r)};i>0&&(a.width=I(i)),r>0&&(a.verticalAlign=I(-r));var o=new Ln(e.src,e.alt,a);return o.height=n,o.depth=r,o},mathmlBuilder:(e,t)=>{var n=new Y(`mglyph`,[]);n.setAttribute(`alt`,e.alt);var r=On(e.height,t),i=0;if(e.totalheight.number>0&&(i=On(e.totalheight,t)-r,n.setAttribute(`valign`,I(-i))),n.setAttribute(`height`,I(r+i)),e.width.number>0){var a=On(e.width,t);n.setAttribute(`width`,I(a))}return n.setAttribute(`src`,e.src),n}}),J({type:`kern`,names:[`\\kern`,`\\mkern`,`\\hskip`,`\\mskip`],numArgs:1,argTypes:[`size`],primitive:!0,allowedInText:!0,handler(e,t){var n=e.parser,r=e.funcName,i=X(t[0],`size`);if(n.settings.strict){var a=r[1]===`m`,o=i.value.unit===`mu`;a?(o||n.settings.reportNonstrict(`mathVsTextUnits`,`LaTeX's `+r+` supports only mu units, `+(`not `+i.value.unit+` units`)),n.mode!==`math`&&n.settings.reportNonstrict(`mathVsTextUnits`,`LaTeX's `+r+` works only in math mode`)):o&&n.settings.reportNonstrict(`mathVsTextUnits`,`LaTeX's `+r+` doesn't support mu units`)}return{type:`kern`,mode:n.mode,dimension:i.value}},htmlBuilder(e,t){return ei(e.dimension,t)},mathmlBuilder(e,t){return new ji(On(e.dimension,t))}}),J({type:`lap`,names:[`\\mathllap`,`\\mathrlap`,`\\mathclap`],numArgs:1,allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=e.funcName,i=t[0];return{type:`lap`,mode:n.mode,alignment:r.slice(5),body:i}},htmlBuilder:(e,t)=>{var n;e.alignment===`clap`?(n=q([],[Ei(e.body,t)]),n=q([`katex-inner`],[n],t)):n=q([`katex-inner`],[Ei(e.body,t)]);var r=q([`katex-fix`],[]),i=q([e.alignment],[n,r],t),a=q([`katex-strut`]);return a.style.height=I(i.height+i.depth),i.depth&&(a.style.verticalAlign=I(-i.depth)),i.children.unshift(a),i=q([`katex-thinbox`],[i],t),q([`mord`,`katex-vbox`],[i],t)},mathmlBuilder:(e,t)=>{var n=new Y(`mpadded`,[Vi(e.body,t)]);if(e.alignment!==`rlap`){var r=e.alignment===`llap`?`-1`:`-0.5`;n.setAttribute(`lspace`,r+`width`)}return n.setAttribute(`width`,`0px`),n}}),J({type:`styling`,names:[`\\(`,`$`],numArgs:0,allowedInText:!0,allowedInMath:!1,handler(e,t){var n=e.funcName,r=e.parser,i=r.mode;r.switchMode(`math`);var a=n===`\\(`?`\\)`:`$`,o=r.parseExpression(!1,a);return r.expect(a),r.switchMode(i),{type:`styling`,mode:r.mode,style:`text`,resetFont:!0,body:o}}}),J({type:`text`,names:[`\\)`,`\\]`],numArgs:0,allowedInText:!0,allowedInMath:!1,handler(e,t){throw new P(`Mismatched `+e.funcName)}});var Io=(e,t)=>{switch(t.style.size){case F.DISPLAY.size:return e.display;case F.TEXT.size:return e.text;case F.SCRIPT.size:return e.script;case F.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};J({type:`mathchoice`,names:[`\\mathchoice`],numArgs:4,primitive:!0,handler:(e,t)=>({type:`mathchoice`,mode:e.parser.mode,display:hi(t[0]),text:hi(t[1]),script:hi(t[2]),scriptscript:hi(t[3])}),htmlBuilder:(e,t)=>Xr(bi(Io(e,t),t,!1)),mathmlBuilder:(e,t)=>Bi(Io(e,t),t)});var Lo=(e,t,n,r,i,a,o)=>{e=q([],[e]);var s=n&&It(n),c,l;if(t){var u=Ei(t,r.havingStyle(i.sup()),r);l={elem:u,kern:Math.max(r.fontMetrics().bigOpSpacing1,r.fontMetrics().bigOpSpacing3-u.depth)}}if(n){var d=Ei(n,r.havingStyle(i.sub()),r);c={elem:d,kern:Math.max(r.fontMetrics().bigOpSpacing2,r.fontMetrics().bigOpSpacing4-d.height)}}var f;if(l&&c)f=$r({positionType:`bottom`,positionData:r.fontMetrics().bigOpSpacing5+c.elem.height+c.elem.depth+c.kern+e.depth+o,children:[{type:`kern`,size:r.fontMetrics().bigOpSpacing5},{type:`elem`,elem:c.elem,marginLeft:I(-a)},{type:`kern`,size:c.kern},{type:`elem`,elem:e},{type:`kern`,size:l.kern},{type:`elem`,elem:l.elem,marginLeft:I(a)},{type:`kern`,size:r.fontMetrics().bigOpSpacing5}]});else if(c)f=$r({positionType:`top`,positionData:e.height-o,children:[{type:`kern`,size:r.fontMetrics().bigOpSpacing5},{type:`elem`,elem:c.elem,marginLeft:I(-a)},{type:`kern`,size:c.kern},{type:`elem`,elem:e}]});else if(l)f=$r({positionType:`bottom`,positionData:e.depth+o,children:[{type:`elem`,elem:e},{type:`kern`,size:l.kern},{type:`elem`,elem:l.elem,marginLeft:I(a)},{type:`kern`,size:r.fontMetrics().bigOpSpacing5}]});else return e;var p=[f];if(c&&a!==0&&!s){var m=q([`mspace`],[],r);m.style.marginRight=I(a),p.unshift(m)}return q([`mop`,`op-limits`],p,r)},Ro=new Set([`\\smallint`]),zo=(e,t)=>{var n,r,i=!1,a;e.type===`supsub`?(n=e.sup,r=e.sub,a=X(e.base,`op`),i=!0):a=X(e,`op`);var o=t.style,s=!1;o.size===F.DISPLAY.size&&a.symbol&&!Ro.has(a.name)&&(s=!0);var c,l;if(a.symbol){var u=s?`Size2-Regular`:`Size1-Regular`,d=``;if((a.name===`\\oiint`||a.name===`\\oiiint`)&&(d=a.name.slice(1),a.name=d===`oiint`?`\\iint`:`\\iiint`),c=Br(a.name,u,`math`,t,[`mop`,`op-symbol`,s?`large-op`:`small-op`]),l=c.italic,d.length>0){var f=ii(d+`Size`+(s?`2`:`1`),t);c=$r({positionType:`individualShift`,children:[{type:`elem`,elem:c,shift:0},{type:`elem`,elem:f,shift:s?.08:0}]}),a.name=`\\`+d,c.classes.unshift(`mop`),c.italic=l}}else if(a.body){var p=bi(a.body,t,!0);p.length===1&&p[0]instanceof zn?(c=p[0],c.classes[0]=`mop`):c=q([`mop`],p,t)}else{for(var m=[],h=1;h<a.name.length;h++)m.push(Vr(a.name[h],a.mode,t));c=q([`mop`],m,t)}var g=0,_=0;return(c instanceof zn||a.name===`\\oiint`||a.name===`\\oiiint`)&&!a.suppressBaseShift&&(g=(c.height-c.depth)/2-t.fontMetrics().axisHeight,_=c.italic??0),i?Lo(c,n,r,t,o,_,g):(g&&(c.style.position=`relative`,c.style.top=I(g)),c)},Bo=(e,t)=>{var n;if(e.symbol)n=new Y(`mo`,[Pi(e.name,e.mode)]),Ro.has(e.name)&&n.setAttribute(`largeop`,`false`);else if(e.body)n=new Y(`mo`,zi(e.body,t));else{n=new Y(`mi`,[new Ai(e.name.slice(1))]);var r=new Y(`mo`,[Pi(``,`text`)]);n=e.parentIsSupSub?new Y(`mrow`,[n,r]):ki([n,r])}return n},Vo={"∏":`\\prod`,"∐":`\\coprod`,"∑":`\\sum`,"⋀":`\\bigwedge`,"⋁":`\\bigvee`,"⋂":`\\bigcap`,"⋃":`\\bigcup`,"⨀":`\\bigodot`,"⨁":`\\bigoplus`,"⨂":`\\bigotimes`,"⨄":`\\biguplus`,"⨆":`\\bigsqcup`};J({type:`op`,names:`\\coprod.\\bigvee.\\bigwedge.\\biguplus.\\bigcap.\\bigcup.\\intop.\\prod.\\sum.\\bigotimes.\\bigoplus.\\bigodot.\\bigsqcup.\\smallint.∏.∐.∑.⋀.⋁.⋂.⋃.⨀.⨁.⨂.⨄.⨆`.split(`.`),numArgs:0,handler:(e,t)=>{var n=e.parser,r=e.funcName;return r.length===1&&(r=Vo[r]),{type:`op`,mode:n.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:r}},htmlBuilder:zo,mathmlBuilder:Bo}),J({type:`op`,names:[`\\mathop`],numArgs:1,primitive:!0,handler:(e,t)=>{var n=e.parser,r=t[0];return{type:`op`,mode:n.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:hi(r)}}});var Ho={"∫":`\\int`,"∬":`\\iint`,"∭":`\\iiint`,"∮":`\\oint`,"∯":`\\oiint`,"∰":`\\oiiint`};J({type:`op`,names:`\\arcsin.\\arccos.\\arctan.\\arctg.\\arcctg.\\arg.\\ch.\\cos.\\cosec.\\cosh.\\cot.\\cotg.\\coth.\\csc.\\ctg.\\cth.\\deg.\\dim.\\exp.\\hom.\\ker.\\lg.\\ln.\\log.\\sec.\\sin.\\sinh.\\sh.\\tan.\\tanh.\\tg.\\th`.split(`.`),numArgs:0,handler(e){var t=e.parser,n=e.funcName;return{type:`op`,mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:n}}}),J({type:`op`,names:[`\\det`,`\\gcd`,`\\inf`,`\\lim`,`\\max`,`\\min`,`\\Pr`,`\\sup`],numArgs:0,handler(e){var t=e.parser,n=e.funcName;return{type:`op`,mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:n}}}),J({type:`op`,names:[`\\int`,`\\iint`,`\\iiint`,`\\oint`,`\\oiint`,`\\oiiint`,`∫`,`∬`,`∭`,`∮`,`∯`,`∰`],numArgs:0,allowedInArgument:!0,handler(e){var t=e.parser,n=e.funcName;return n.length===1&&(n=Ho[n]),{type:`op`,mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}}});var Uo=(e,t)=>{var n,r,i=!1,a;e.type===`supsub`?(n=e.sup,r=e.sub,a=X(e.base,`operatorname`),i=!0):a=X(e,`operatorname`);var o;if(a.body.length>0){for(var s=bi(a.body.map(e=>{var t=`text`in e?e.text:void 0;return typeof t==`string`?{type:`textord`,mode:e.mode,text:t}:e}),t.withFont(`mathrm`),!0),c=0;c<s.length;c++){var l=s[c];l instanceof zn&&(l.text=l.text.replace(/\u2212/,`-`).replace(/\u2217/,`*`))}o=q([`mop`],s,t)}else o=q([`mop`],[],t);return i?Lo(o,n,r,t,t.style,0,0):o};J({type:`operatorname`,names:[`\\operatorname@`,`\\operatornamewithlimits`],numArgs:1,handler:(e,t)=>{var n=e.parser,r=e.funcName,i=t[0];return{type:`operatorname`,mode:n.mode,body:hi(i),alwaysHandleSupSub:r===`\\operatornamewithlimits`,limits:!1,parentIsSupSub:!1}},htmlBuilder:Uo,mathmlBuilder:(e,t)=>{for(var n=zi(e.body,t.withFont(`mathrm`)),r=!0,i=0;i<n.length;i++){var a=n[i];if(!(a instanceof ji))if(a instanceof Y)switch(a.type){case`mi`:case`mn`:case`mspace`:case`mtext`:break;case`mo`:var o=a.children[0];a.children.length===1&&o instanceof Ai?o.text=o.text.replace(/\u2212/,`-`).replace(/\u2217/,`*`):r=!1;break;default:r=!1}else r=!1}r&&(n=[new Ai(n.map(e=>e.toText()).join(``))]);var s=new Y(`mi`,n);s.setAttribute(`mathvariant`,`normal`);var c=new Y(`mo`,[Pi(``,`text`)]);return e.parentIsSupSub?new Y(`mrow`,[s,c]):ki([s,c])}}),Z(`\\operatorname`,`\\@ifstar\\operatornamewithlimits\\operatorname@`),pi({type:`ordgroup`,htmlBuilder(e,t){return e.semisimple?Xr(bi(e.body,t,!1)):q([`mord`],bi(e.body,t,!0),t)},mathmlBuilder(e,t){return Bi(e.body,t,!0)}}),J({type:`overline`,names:[`\\overline`],numArgs:1,handler(e,t){var n=e.parser,r=t[0];return{type:`overline`,mode:n.mode,body:r}},htmlBuilder(e,t){var n=Ei(e.body,t.havingCrampedStyle()),r=Jr(`overline-line`,t),i=t.fontMetrics().defaultRuleThickness;return q([`mord`,`katex-overline`],[$r({positionType:`firstBaseline`,children:[{type:`elem`,elem:n},{type:`kern`,size:3*i},{type:`elem`,elem:r},{type:`kern`,size:i}]})],t)},mathmlBuilder(e,t){var n=new Y(`mo`,[new Ai(`‾`)]);n.setAttribute(`stretchy`,`true`);var r=new Y(`mover`,[Vi(e.body,t),n]);return r.setAttribute(`accent`,`true`),r}}),J({type:`phantom`,names:[`\\phantom`],numArgs:1,allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=t[0];return{type:`phantom`,mode:n.mode,body:hi(r)}},htmlBuilder:(e,t)=>Xr(bi(e.body,t.withPhantom(),!1)),mathmlBuilder:(e,t)=>new Y(`mphantom`,zi(e.body,t))}),Z(`\\hphantom`,`\\smash{\\phantom{#1}}`),J({type:`vphantom`,names:[`\\vphantom`],numArgs:1,allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=t[0];return{type:`vphantom`,mode:n.mode,body:r}},htmlBuilder:(e,t)=>q([`mord`,`rlap`],[q([`katex-inner`],[Ei(e.body,t.withPhantom())]),q([`katex-fix`],[])],t),mathmlBuilder:(e,t)=>{var n=new Y(`mpadded`,[new Y(`mphantom`,zi(hi(e.body),t))]);return n.setAttribute(`width`,`0px`),n}}),J({type:`raisebox`,names:[`\\raisebox`],numArgs:2,argTypes:[`size`,`hbox`],allowedInText:!0,handler(e,t){var n=e.parser,r=X(t[0],`size`).value,i=t[1];return{type:`raisebox`,mode:n.mode,dy:r,body:i}},htmlBuilder(e,t){var n=Ei(e.body,t);return $r({positionType:`shift`,positionData:-On(e.dy,t),children:[{type:`elem`,elem:n}]})},mathmlBuilder(e,t){var n=new Y(`mpadded`,[Vi(e.body,t)]),r=e.dy.number+e.dy.unit;return n.setAttribute(`voffset`,r),n}});var Wo=(e,t)=>({type:`reflectbox`,mode:e.parser.mode,body:t[0]});J({type:`reflectbox`,names:[`\\reflectbox`],numArgs:1,argTypes:[`hbox`],allowedInText:!0,handler:Wo,htmlBuilder(e,t){return q([`mord`,`reflectbox`],[Ei(e.body,t)],t)},mathmlBuilder(e,t){return Vi(e.body,t)}}),J({type:`reflectbox`,names:[`\\mathreflectbox`],numArgs:1,argTypes:[`math`],handler:Wo}),J({type:`internal`,names:[`\\relax`],numArgs:0,allowedInText:!0,allowedInArgument:!0,handler(e){return{type:`internal`,mode:e.parser.mode}}}),J({type:`rule`,names:[`\\rule`],numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:[`size`,`size`,`size`],handler(e,t,n){var r=e.parser,i=n[0],a=X(t[0],`size`),o=X(t[1],`size`);return{type:`rule`,mode:r.mode,shift:i&&X(i,`size`).value,width:a.value,height:o.value}},htmlBuilder(e,t){var n=q([`mord`,`katex-rule`],[],t),r=On(e.width,t),i=On(e.height,t),a=e.shift?On(e.shift,t):0;return n.style.borderRightWidth=I(r),n.style.borderTopWidth=I(i),n.style.bottom=I(a),n.width=r,n.height=i+a,n.depth=-a,n.maxFontSize=i*1.125*t.sizeMultiplier,n},mathmlBuilder(e,t){var n=On(e.width,t),r=On(e.height,t),i=e.shift?On(e.shift,t):0,a=t.color&&t.getColor()||`black`,o=new Y(`mspace`);o.setAttribute(`mathbackground`,a),o.setAttribute(`width`,I(n)),o.setAttribute(`height`,I(r));var s=new Y(`mpadded`,[o]);return i>=0?s.setAttribute(`height`,I(i)):(s.setAttribute(`height`,I(i)),s.setAttribute(`depth`,I(-i))),s.setAttribute(`voffset`,I(i)),s}});function Go(e,t,n){for(var r=bi(e,t,!1),i=t.sizeMultiplier/n.sizeMultiplier,a=0;a<r.length;a++){var o=r[a].classes.indexOf(`katex-sizing`);o<0?Array.prototype.push.apply(r[a].classes,t.sizingClasses(n)):r[a].classes[o+1]===`reset-size`+t.size&&(r[a].classes[o+1]=`reset-size`+n.size),r[a].height*=i,r[a].depth*=i}return Xr(r)}var Ko=[`\\tiny`,`\\sixptsize`,`\\scriptsize`,`\\footnotesize`,`\\small`,`\\normalsize`,`\\large`,`\\Large`,`\\LARGE`,`\\huge`,`\\Huge`];J({type:`sizing`,names:Ko,numArgs:0,allowedInText:!0,handler:(e,t)=>{var n=e.breakOnTokenText,r=e.funcName,i=e.parser,a=i.parseExpression(!1,n);return{type:`sizing`,mode:i.mode,size:Ko.indexOf(r)+1,body:a}},htmlBuilder:(e,t)=>{var n=t.havingSize(e.size);return Go(e.body,n,t)},mathmlBuilder:(e,t)=>{var n=t.havingSize(e.size),r=new Y(`mstyle`,zi(e.body,n));return r.setAttribute(`mathsize`,I(n.sizeMultiplier)),r}}),J({type:`smash`,names:[`\\smash`],numArgs:1,numOptionalArgs:1,allowedInText:!0,handler:(e,t,n)=>{var r=e.parser,i=!1,a=!1,o=n[0]&&X(n[0],`ordgroup`);if(o)for(var s,c=0;c<o.body.length;++c){var l=o.body[c];if(s=ca(l).text,s===`t`)i=!0;else if(s===`b`)a=!0;else{i=!1,a=!1;break}}else i=!0,a=!0;var u=t[0];return{type:`smash`,mode:r.mode,body:u,smashHeight:i,smashDepth:a}},htmlBuilder:(e,t)=>{var n=q([],[Ei(e.body,t)]);if(!e.smashHeight&&!e.smashDepth)return n;if(e.smashHeight&&(n.height=0),e.smashDepth&&(n.depth=0),e.smashHeight&&e.smashDepth)return q([`mord`,`katex-smash`],[n],t);if(n.children)for(var r=0;r<n.children.length;r++)e.smashHeight&&(n.children[r].height=0),e.smashDepth&&(n.children[r].depth=0);return q([`mord`],[$r({positionType:`firstBaseline`,children:[{type:`elem`,elem:n}]})],t)},mathmlBuilder:(e,t)=>{var n=new Y(`mpadded`,[Vi(e.body,t)]);return e.smashHeight&&n.setAttribute(`height`,`0px`),e.smashDepth&&n.setAttribute(`depth`,`0px`),n}}),J({type:`sqrt`,names:[`\\sqrt`],numArgs:1,numOptionalArgs:1,handler(e,t,n){var r=e.parser,i=n[0],a=t[0];return{type:`sqrt`,mode:r.mode,body:a,index:i}},htmlBuilder(e,t){var n=Ei(e.body,t.havingCrampedStyle());n.height===0&&(n.height=t.fontMetrics().xHeight),n=Zr(n,t);var r=t.fontMetrics().defaultRuleThickness,i=r;t.style.id<F.TEXT.id&&(i=t.fontMetrics().xHeight);var a=r+i/4,o=Ga(n.height+n.depth+a+r,t),s=o.span,c=o.ruleWidth,l=o.advanceWidth,u=s.height-c;u>n.height+n.depth+a&&(a=(a+u-n.height-n.depth)/2);var d=s.height-n.height-a-c;n.style.paddingLeft=I(l);var f=$r({positionType:`firstBaseline`,children:[{type:`elem`,elem:n,wrapperClasses:[`svg-align`]},{type:`kern`,size:-(n.height+d)},{type:`elem`,elem:s},{type:`kern`,size:c}]});if(e.index){var p=t.havingStyle(F.SCRIPTSCRIPT),m=Ei(e.index,p,t);return q([`mord`,`sqrt`],[q([`katex-root`],[$r({positionType:`shift`,positionData:-(.6*(f.height-f.depth)),children:[{type:`elem`,elem:m}]})]),f],t)}else return q([`mord`,`sqrt`],[f],t)},mathmlBuilder(e,t){var n=e.body,r=e.index;return r?new Y(`mroot`,[Vi(n,t),Vi(r,t)]):new Y(`msqrt`,[Vi(n,t)])}});var qo={display:F.DISPLAY,text:F.TEXT,script:F.SCRIPT,scriptscript:F.SCRIPTSCRIPT};function Jo(e){return e in qo}J({type:`styling`,names:[`\\displaystyle`,`\\textstyle`,`\\scriptstyle`,`\\scriptscriptstyle`],numArgs:0,allowedInText:!0,primitive:!0,handler(e,t){var n=e.breakOnTokenText,r=e.funcName,i=e.parser,a=i.parseExpression(!0,n),o=r.slice(1,r.length-5);if(!Jo(o))throw Error(`Unknown style: `+o);return{type:`styling`,mode:i.mode,style:o,body:a}},htmlBuilder(e,t){var n=qo[e.style],r=t.havingStyle(n);return e.resetFont&&(r=r.withFont(``)),Go(e.body,r,t)},mathmlBuilder(e,t){var n=qo[e.style],r=t.havingStyle(n);e.resetFont&&(r=r.withFont(``));var i=new Y(`mstyle`,zi(e.body,r)),a={display:[`0`,`true`],text:[`0`,`false`],script:[`1`,`false`],scriptscript:[`2`,`false`]}[e.style];return i.setAttribute(`scriptlevel`,a[0]),i.setAttribute(`displaystyle`,a[1]),i}});var Yo=function(e,t){var n=e.base;return n?n.type===`op`?n.limits&&(t.style.size===F.DISPLAY.size||n.alwaysHandleSupSub)?zo:null:n.type===`operatorname`?n.alwaysHandleSupSub&&(t.style.size===F.DISPLAY.size||n.limits)?Uo:null:n.type===`accent`?It(n.base)?fa:null:n.type===`horizBrace`&&!e.sub===n.isOver?Po:null:null};pi({type:`supsub`,htmlBuilder(e,t){var n=Yo(e,t);if(n)return n(e,t);var r=e.base,i=e.sup,a=e.sub,o=Ei(r,t),s,c,l=t.fontMetrics(),u=0,d=0,f=r&&It(r);if(i){var p=t.havingStyle(t.style.sup());s=Ei(i,p,t),f||(u=o.height-p.fontMetrics().supDrop*p.sizeMultiplier/t.sizeMultiplier)}if(a){var m=t.havingStyle(t.style.sub());c=Ei(a,m,t),f||(d=o.depth+m.fontMetrics().subDrop*m.sizeMultiplier/t.sizeMultiplier)}var h=t.style===F.DISPLAY?l.sup1:t.style.cramped?l.sup3:l.sup2,g=t.sizeMultiplier,_=I(.5/l.ptPerEm/g),v=null;if(c){var y=e.base&&e.base.type===`op`&&e.base.name&&(e.base.name===`\\oiint`||e.base.name===`\\oiiint`);(o instanceof zn||y)&&(v=I(-(o.italic??0)))}var b;if(s&&c){u=Math.max(u,h,s.depth+.25*l.xHeight),d=Math.max(d,l.sub2);var x=4*l.defaultRuleThickness;if(u-s.depth-(c.height-d)<x){d=x-(u-s.depth)+c.height;var S=.8*l.xHeight-(u-s.depth);S>0&&(u+=S,d-=S)}b=$r({positionType:`individualShift`,children:[{type:`elem`,elem:c,shift:d,marginRight:_,marginLeft:v},{type:`elem`,elem:s,shift:-u,marginRight:_}]})}else if(c)d=Math.max(d,l.sub1,c.height-.8*l.xHeight),b=$r({positionType:`shift`,positionData:d,children:[{type:`elem`,elem:c,marginLeft:v,marginRight:_}]});else if(s)u=Math.max(u,h,s.depth+.25*l.xHeight),b=$r({positionType:`shift`,positionData:-u,children:[{type:`elem`,elem:s,marginRight:_}]});else throw Error(`supsub must have either sup or sub.`);return q([wi(o,`right`)||`mord`],[o,q([`msupsub`],[b])],t)},mathmlBuilder(e,t){var n=!1,r,i;e.base&&e.base.type===`horizBrace`&&(i=!!e.sup,i===e.base.isOver&&(n=!0,r=e.base.isOver)),e.base&&(e.base.type===`op`||e.base.type===`operatorname`)&&(e.base.parentIsSupSub=!0);var a=[Vi(e.base,t)];e.sub&&a.push(Vi(e.sub,t)),e.sup&&a.push(Vi(e.sup,t));var o;if(n)o=r?`mover`:`munder`;else if(!e.sub){var s=e.base;o=s&&s.type===`op`&&s.limits&&(t.style===F.DISPLAY||s.alwaysHandleSupSub)||s&&s.type===`operatorname`&&s.alwaysHandleSupSub&&(s.limits||t.style===F.DISPLAY)?`mover`:`msup`}else if(e.sup){var c=e.base;o=c&&c.type===`op`&&c.limits&&t.style===F.DISPLAY||c&&c.type===`operatorname`&&c.alwaysHandleSupSub&&(t.style===F.DISPLAY||c.limits)?`munderover`:`msubsup`}else{var l=e.base;o=l&&l.type===`op`&&l.limits&&(t.style===F.DISPLAY||l.alwaysHandleSupSub)||l&&l.type===`operatorname`&&l.alwaysHandleSupSub&&(l.limits||t.style===F.DISPLAY)?`munder`:`msub`}return new Y(o,a)}}),pi({type:`atom`,htmlBuilder(e,t){return Vr(e.text,e.mode,t,[`m`+e.family])},mathmlBuilder(e,t){var n=new Y(`mo`,[Pi(e.text,e.mode)]);if(e.family===`bin`){var r=Li(e,t);r===`bold-italic`&&n.setAttribute(`mathvariant`,r)}else e.family===`punct`?n.setAttribute(`separator`,`true`):(e.family===`open`||e.family===`close`)&&n.setAttribute(`stretchy`,`false`);return n}});var Xo={mi:`italic`,mn:`normal`,mtext:`normal`};pi({type:`mathord`,htmlBuilder(e,t){return Ur(e,t)},mathmlBuilder(e,t){var n=new Y(`mi`,[Pi(e.text,e.mode,t)]),r=Li(e,t)||`italic`;return r!==Xo[n.type]&&n.setAttribute(`mathvariant`,r),n}}),pi({type:`textord`,htmlBuilder(e,t){return Ur(e,t)},mathmlBuilder(e,t){var n=Pi(e.text,e.mode,t),r=Li(e,t)||`normal`,i=e.mode===`text`?new Y(`mtext`,[n]):/[0-9]/.test(e.text)?new Y(`mn`,[n]):e.text===`\\prime`?new Y(`mo`,[n]):new Y(`mi`,[n]);return r!==Xo[i.type]&&i.setAttribute(`mathvariant`,r),i}});var Zo=new Map([[`\\nobreak`,`nobreak`],[`\\allowbreak`,`allowbreak`]]),Qo=new Map([[` `,{}],[`\\ `,{}],[`~`,{className:`nobreak`}],[`\\space`,{}],[`\\nobreakspace`,{className:`nobreak`}]]);pi({type:`spacing`,htmlBuilder(e,t){var n=Qo.get(e.text),r=Zo.get(e.text);if(n){var i=n.className||``;if(e.mode===`text`){var a=Ur(e,t);return a.classes.push(i),a}else return q([`mspace`,i],[Vr(e.text,e.mode,t)],t)}else if(r)return q([`mspace`,r],[],t);else throw new P(`Unknown type of space "`+e.text+`"`)},mathmlBuilder(e,t){var n;if(Qo.has(e.text))n=new Y(`mtext`,[new Ai(`\xA0`)]);else if(Zo.has(e.text))return new Y(`mspace`);else throw new P(`Unknown type of space "`+e.text+`"`);return n}});var $o=()=>{var e=new Y(`mtd`,[]);return e.setAttribute(`width`,`50%`),e};pi({type:`tag`,mathmlBuilder(e,t){var n=new Y(`mtable`,[new Y(`mtr`,[$o(),new Y(`mtd`,[Bi(e.body,t)]),$o(),new Y(`mtd`,[Bi(e.tag,t)])])]);return n.setAttribute(`width`,`100%`),n}});var es={"\\text":void 0,"\\textrm":`textrm`,"\\textsf":`textsf`,"\\texttt":`texttt`,"\\textnormal":`textrm`},ts={"\\textbf":`textbf`,"\\textmd":`textmd`},ns={"\\textit":`textit`,"\\textup":`textup`},rs=(e,t)=>{var n=e.font;return n?es[n]?t.withTextFontFamily(es[n]):ts[n]?t.withTextFontWeight(ts[n]):n===`\\emph`?t.fontShape===`textit`?t.withTextFontShape(`textup`):t.withTextFontShape(`textit`):t.withTextFontShape(ns[n]):t};J({type:`text`,names:[`\\text`,`\\textrm`,`\\textsf`,`\\texttt`,`\\textnormal`,`\\textbf`,`\\textmd`,`\\textit`,`\\textup`,`\\emph`],numArgs:1,argTypes:[`text`],allowedInArgument:!0,allowedInText:!0,handler(e,t){var n=e.parser,r=e.funcName,i=t[0];return{type:`text`,mode:n.mode,body:hi(i),font:r}},htmlBuilder(e,t){var n=rs(e,t);return q([`mord`,`text`],bi(e.body,n,!0),n)},mathmlBuilder(e,t){var n=rs(e,t);return Bi(e.body,n)}}),J({type:`underline`,names:[`\\underline`],numArgs:1,allowedInText:!0,handler(e,t){return{type:`underline`,mode:e.parser.mode,body:t[0]}},htmlBuilder(e,t){var n=Ei(e.body,t),r=Jr(`underline-line`,t),i=t.fontMetrics().defaultRuleThickness;return q([`mord`,`katex-underline`],[$r({positionType:`top`,positionData:n.height,children:[{type:`kern`,size:i},{type:`elem`,elem:r},{type:`kern`,size:3*i},{type:`elem`,elem:n}]})],t)},mathmlBuilder(e,t){var n=new Y(`mo`,[new Ai(`‾`)]);n.setAttribute(`stretchy`,`true`);var r=new Y(`munder`,[Vi(e.body,t),n]);return r.setAttribute(`accentunder`,`true`),r}}),J({type:`vcenter`,names:[`\\vcenter`],numArgs:1,argTypes:[`original`],allowedInText:!1,handler(e,t){return{type:`vcenter`,mode:e.parser.mode,body:t[0]}},htmlBuilder(e,t){var n=Ei(e.body,t),r=t.fontMetrics().axisHeight;return $r({positionType:`shift`,positionData:.5*(n.height-r-(n.depth+r)),children:[{type:`elem`,elem:n}]})},mathmlBuilder(e,t){return new Y(`mrow`,[new Y(`mpadded`,[Vi(e.body,t)],[`vcenter`])])}}),J({type:`verb`,names:[`\\verb`],numArgs:0,allowedInText:!0,handler(e,t,n){throw new P(`\\verb ended by end of line instead of matching delimiter`)},htmlBuilder(e,t){for(var n=is(e),r=[],i=t.havingStyle(t.style.text()),a=0;a<n.length;a++){var o=n[a];o===`~`&&(o=`\\textasciitilde`),r.push(Br(o,`Typewriter-Regular`,e.mode,i,[`mord`,`texttt`]))}return q([`mord`,`text`].concat(i.sizingClasses(t)),Gr(r),i)},mathmlBuilder(e,t){var n=new Y(`mtext`,[new Ai(is(e))]);return n.setAttribute(`mathvariant`,`monospace`),n}});var is=e=>e.body.replace(/ /g,e.star?`␣`:`\xA0`),as=ui,os=`[ \r
|
|
259
|
+
]`,ss=`\\\\[a-zA-Z@]+`,cs=`\\\\[^\ud800-\udfff]`,ls=`(`+ss+`)`+os+`*`,us=`\\\\(
|
|
260
260
|
|[ \r ]+
|
|
261
|
-
?)[ \r ]*`,
|
|
262
|
-
`,this.tokenRegex.lastIndex);return i===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict(`commentAtEnd`,`% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)`)):this.tokenRegex.lastIndex=i+1,this.lex()}return new po(r,new fo(this,t,this.tokenRegex.lastIndex))}},ms=class{constructor(e,t){e===void 0&&(e={}),t===void 0&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new N(`Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug`);var e=this.undefStack.pop();for(var t of Object.keys(e))e[t]===void 0?delete this.current[t]:this.current[t]=e[t]}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return Object.prototype.hasOwnProperty.call(this.current,e)||Object.prototype.hasOwnProperty.call(this.builtins,e)}get(e){if(Object.prototype.hasOwnProperty.call(this.current,e))return this.current[e];if(Object.prototype.hasOwnProperty.call(this.builtins,e))return this.builtins[e]}set(e,t,n){if(n===void 0&&(n=!1),n){for(var r=0;r<this.undefStack.length;r++)delete this.undefStack[r][e];this.undefStack.length>0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var i=this.undefStack[this.undefStack.length-1];i&&!Object.prototype.hasOwnProperty.call(i,e)&&(i[e]=Object.prototype.hasOwnProperty.call(this.current,e)?this.current[e]:void 0)}t==null?delete this.current[e]:this.current[e]=t}},hs=uo;Z(`\\noexpand`,function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}}),Z(`\\expandafter`,function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}}),Z(`\\@firstoftwo`,function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}}),Z(`\\@secondoftwo`,function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}}),Z(`\\@ifnextchar`,function(e){var t=e.consumeArgs(3);e.consumeSpaces();var n=e.future();return t[0].length===1&&t[0][0].text===n.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}}),Z(`\\@ifstar`,`\\@ifnextchar *{\\@firstoftwo{#1}}`),Z(`\\TextOrMath`,function(e){var t=e.consumeArgs(2);return e.mode===`text`?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}});var gs={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};Z(`\\char`,function(e){var t=e.popToken(),n,r=0;if(t.text===`'`)n=8,t=e.popToken();else if(t.text===`"`)n=16,t=e.popToken();else if(t.text==="`")if(t=e.popToken(),t.text[0]===`\\`)r=t.text.charCodeAt(1);else if(t.text===`EOF`)throw new N("\\char` missing argument");else r=t.text.charCodeAt(0);else n=10;if(n){if(r=gs[t.text],r==null||r>=n)throw new N(`Invalid base-`+n+` digit `+t.text);for(var i;(i=gs[e.future().text])!=null&&i<n;)r*=n,r+=i,e.popToken()}return`\\@char{`+r+`}`});var _s=(e,t,n,r)=>{var i=e.consumeArg().tokens;if(i.length!==1)throw new N(`\\newcommand's first argument must be a macro name`);var a=i[0].text,o=e.isDefined(a);if(o&&!t)throw new N(`\\newcommand{`+a+`} attempting to redefine `+(a+`; use \\renewcommand`));if(!o&&!n)throw new N(`\\renewcommand{`+a+`} when command `+a+` does not yet exist; use \\newcommand`);var s=0;if(i=e.consumeArg().tokens,i.length===1&&i[0].text===`[`){for(var c=``,l=e.expandNextToken();l.text!==`]`&&l.text!==`EOF`;)c+=l.text,l=e.expandNextToken();if(!c.match(/^\s*[0-9]+\s*$/))throw new N(`Invalid number of arguments: `+c);s=parseInt(c),i=e.consumeArg().tokens}return o&&r||e.macros.set(a,{tokens:i,numArgs:s}),``};Z(`\\newcommand`,e=>_s(e,!1,!0,!1)),Z(`\\renewcommand`,e=>_s(e,!0,!1,!1)),Z(`\\providecommand`,e=>_s(e,!0,!0,!0)),Z(`\\message`,e=>{var t=e.consumeArgs(1)[0];return console.log(t.reverse().map(e=>e.text).join(``)),``}),Z(`\\errmessage`,e=>{var t=e.consumeArgs(1)[0];return console.error(t.reverse().map(e=>e.text).join(``)),``}),Z(`\\show`,e=>{var t=e.popToken(),n=t.text;return console.log(t,e.macros.get(n),is[n],$n.math[n],$n.text[n]),``}),Z(`\\bgroup`,`{`),Z(`\\egroup`,`}`),Z(`~`,`\\nobreakspace`),Z(`\\lq`,"`"),Z(`\\rq`,`'`),Z(`\\aa`,`\\r a`),Z(`\\AA`,`\\r A`),Z(`\\textcopyright`,"\\html@mathml{\\textcircled{c}}{\\char`©}"),Z(`\\copyright`,`\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}`),Z(`\\textregistered`,"\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}"),Z(`ℬ`,`\\mathscr{B}`),Z(`ℰ`,`\\mathscr{E}`),Z(`ℱ`,`\\mathscr{F}`),Z(`ℋ`,`\\mathscr{H}`),Z(`ℐ`,`\\mathscr{I}`),Z(`ℒ`,`\\mathscr{L}`),Z(`ℳ`,`\\mathscr{M}`),Z(`ℛ`,`\\mathscr{R}`),Z(`ℭ`,`\\mathfrak{C}`),Z(`ℌ`,`\\mathfrak{H}`),Z(`ℨ`,`\\mathfrak{Z}`),Z(`\\Bbbk`,`\\Bbb{k}`),Z(`\\llap`,`\\mathllap{\\textrm{#1}}`),Z(`\\rlap`,`\\mathrlap{\\textrm{#1}}`),Z(`\\clap`,`\\mathclap{\\textrm{#1}}`),Z(`\\mathstrut`,`\\vphantom{(}`),Z(`\\underbar`,`\\underline{\\text{#1}}`),Z(`\\not`,`\\html@mathml{\\mathrel{\\mathrlap\\@not}\\nobreak}{\\char"338}`),Z(`\\neq`,"\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}"),Z(`\\ne`,`\\neq`),Z(`≠`,`\\neq`),Z(`\\notin`,"\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}"),Z(`∉`,`\\notin`),Z(`≘`,"\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}"),Z(`≙`,"\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}"),Z(`≚`,"\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}"),Z(`≛`,"\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}"),Z(`≝`,"\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}"),Z(`≞`,"\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}"),Z(`≟`,"\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}"),Z(`⟂`,`\\perp`),Z(`‼`,`\\mathclose{!\\mkern-0.8mu!}`),Z(`∌`,`\\notni`),Z(`⌜`,`\\ulcorner`),Z(`⌝`,`\\urcorner`),Z(`⌞`,`\\llcorner`),Z(`⌟`,`\\lrcorner`),Z(`©`,`\\copyright`),Z(`®`,`\\textregistered`),Z(`\\ulcorner`,`\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}`),Z(`\\urcorner`,`\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}`),Z(`\\llcorner`,`\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}`),Z(`\\lrcorner`,`\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}`),Z(`\\vdots`,`{\\varvdots\\rule{0pt}{15pt}}`),Z(`⋮`,`\\vdots`),Z(`\\varGamma`,`\\mathit{\\Gamma}`),Z(`\\varDelta`,`\\mathit{\\Delta}`),Z(`\\varTheta`,`\\mathit{\\Theta}`),Z(`\\varLambda`,`\\mathit{\\Lambda}`),Z(`\\varXi`,`\\mathit{\\Xi}`),Z(`\\varPi`,`\\mathit{\\Pi}`),Z(`\\varSigma`,`\\mathit{\\Sigma}`),Z(`\\varUpsilon`,`\\mathit{\\Upsilon}`),Z(`\\varPhi`,`\\mathit{\\Phi}`),Z(`\\varPsi`,`\\mathit{\\Psi}`),Z(`\\varOmega`,`\\mathit{\\Omega}`),Z(`\\substack`,`\\begin{subarray}{c}#1\\end{subarray}`),Z(`\\colon`,`\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax`),Z(`\\boxed`,`\\fbox{$\\displaystyle{#1}$}`),Z(`\\iff`,`\\DOTSB\\;\\Longleftrightarrow\\;`),Z(`\\implies`,`\\DOTSB\\;\\Longrightarrow\\;`),Z(`\\impliedby`,`\\DOTSB\\;\\Longleftarrow\\;`),Z(`\\dddot`,`{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}`),Z(`\\ddddot`,`{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}`);var vs={",":`\\dotsc`,"\\not":`\\dotsb`,"+":`\\dotsb`,"=":`\\dotsb`,"<":`\\dotsb`,">":`\\dotsb`,"-":`\\dotsb`,"*":`\\dotsb`,":":`\\dotsb`,"\\DOTSB":`\\dotsb`,"\\coprod":`\\dotsb`,"\\bigvee":`\\dotsb`,"\\bigwedge":`\\dotsb`,"\\biguplus":`\\dotsb`,"\\bigcap":`\\dotsb`,"\\bigcup":`\\dotsb`,"\\prod":`\\dotsb`,"\\sum":`\\dotsb`,"\\bigotimes":`\\dotsb`,"\\bigoplus":`\\dotsb`,"\\bigodot":`\\dotsb`,"\\bigsqcup":`\\dotsb`,"\\And":`\\dotsb`,"\\longrightarrow":`\\dotsb`,"\\Longrightarrow":`\\dotsb`,"\\longleftarrow":`\\dotsb`,"\\Longleftarrow":`\\dotsb`,"\\longleftrightarrow":`\\dotsb`,"\\Longleftrightarrow":`\\dotsb`,"\\mapsto":`\\dotsb`,"\\longmapsto":`\\dotsb`,"\\hookrightarrow":`\\dotsb`,"\\doteq":`\\dotsb`,"\\mathbin":`\\dotsb`,"\\mathrel":`\\dotsb`,"\\relbar":`\\dotsb`,"\\Relbar":`\\dotsb`,"\\xrightarrow":`\\dotsb`,"\\xleftarrow":`\\dotsb`,"\\DOTSI":`\\dotsi`,"\\int":`\\dotsi`,"\\oint":`\\dotsi`,"\\iint":`\\dotsi`,"\\iiint":`\\dotsi`,"\\iiiint":`\\dotsi`,"\\idotsint":`\\dotsi`,"\\DOTSX":`\\dotsx`},ys=new Set([`bin`,`rel`]);Z(`\\dots`,function(e){var t=`\\dotso`,n=e.expandAfterFuture().text;return n in vs?t=vs[n]:(n.slice(0,4)===`\\not`||n in $n.math&&ys.has($n.math[n].group))&&(t=`\\dotsb`),t});var bs={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};Z(`\\dotso`,function(e){return e.future().text in bs?`\\ldots\\,`:`\\ldots`}),Z(`\\dotsc`,function(e){var t=e.future().text;return t in bs&&t!==`,`?`\\ldots\\,`:`\\ldots`}),Z(`\\cdots`,function(e){return e.future().text in bs?`\\@cdots\\,`:`\\@cdots`}),Z(`\\dotsb`,`\\cdots`),Z(`\\dotsm`,`\\cdots`),Z(`\\dotsi`,`\\!\\cdots`),Z(`\\dotsx`,`\\ldots\\,`),Z(`\\DOTSI`,`\\relax`),Z(`\\DOTSB`,`\\relax`),Z(`\\DOTSX`,`\\relax`),Z(`\\tmspace`,`\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax`),Z(`\\,`,`\\tmspace+{3mu}{.1667em}`),Z(`\\thinspace`,`\\,`),Z(`\\>`,`\\mskip{4mu}`),Z(`\\:`,`\\tmspace+{4mu}{.2222em}`),Z(`\\medspace`,`\\:`),Z(`\\;`,`\\tmspace+{5mu}{.2777em}`),Z(`\\thickspace`,`\\;`),Z(`\\!`,`\\tmspace-{3mu}{.1667em}`),Z(`\\negthinspace`,`\\!`),Z(`\\negmedspace`,`\\tmspace-{4mu}{.2222em}`),Z(`\\negthickspace`,`\\tmspace-{5mu}{.277em}`),Z(`\\enspace`,`\\kern.5em `),Z(`\\enskip`,`\\hskip.5em\\relax`),Z(`\\quad`,`\\hskip1em\\relax`),Z(`\\qquad`,`\\hskip2em\\relax`),Z(`\\tag`,`\\@ifstar\\tag@literal\\tag@paren`),Z(`\\tag@paren`,`\\tag@literal{({#1})}`),Z(`\\tag@literal`,e=>{if(e.macros.get(`\\df@tag`))throw new N(`Multiple \\tag`);return`\\gdef\\df@tag{\\text{#1}}`}),Z(`\\bmod`,`\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}`),Z(`\\pod`,`\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)`),Z(`\\pmod`,`\\pod{{\\rm mod}\\mkern6mu#1}`),Z(`\\mod`,`\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1`),Z(`\\newline`,`\\\\\\relax`),Z(`\\TeX`,`\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}`);var xs=F(Kn[`Main-Regular`][84][1]-.7*Kn[`Main-Regular`][65][1]);Z(`\\LaTeX`,`\\textrm{\\html@mathml{`+(`L\\kern-.36em\\raisebox{`+xs+`}{\\scriptstyle A}`)+`\\kern-.15em\\TeX}{LaTeX}}`),Z(`\\KaTeX`,`\\textrm{\\html@mathml{`+(`K\\kern-.17em\\raisebox{`+xs+`}{\\scriptstyle A}`)+`\\kern-.15em\\TeX}{KaTeX}}`),Z(`\\hspace`,`\\@ifstar\\@hspacer\\@hspace`),Z(`\\@hspace`,`\\hskip #1\\relax`),Z(`\\@hspacer`,`\\rule{0pt}{0pt}\\hskip #1\\relax`),Z(`\\ordinarycolon`,`:`),Z(`\\vcentcolon`,`\\mathrel{\\mathop\\ordinarycolon}`),Z(`\\dblcolon`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}`),Z(`\\coloneqq`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}`),Z(`\\Coloneqq`,`\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}`),Z(`\\coloneq`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}`),Z(`\\Coloneq`,`\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}`),Z(`\\eqqcolon`,`\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}`),Z(`\\Eqqcolon`,`\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}`),Z(`\\eqcolon`,`\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}`),Z(`\\Eqcolon`,`\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}`),Z(`\\colonapprox`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}`),Z(`\\Colonapprox`,`\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}`),Z(`\\colonsim`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}`),Z(`\\Colonsim`,`\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}`),Z(`∷`,`\\dblcolon`),Z(`∹`,`\\eqcolon`),Z(`≔`,`\\coloneqq`),Z(`≕`,`\\eqqcolon`),Z(`⩴`,`\\Coloneqq`),Z(`\\ratio`,`\\vcentcolon`),Z(`\\coloncolon`,`\\dblcolon`),Z(`\\colonequals`,`\\coloneqq`),Z(`\\coloncolonequals`,`\\Coloneqq`),Z(`\\equalscolon`,`\\eqqcolon`),Z(`\\equalscoloncolon`,`\\Eqqcolon`),Z(`\\colonminus`,`\\coloneq`),Z(`\\coloncolonminus`,`\\Coloneq`),Z(`\\minuscolon`,`\\eqcolon`),Z(`\\minuscoloncolon`,`\\Eqcolon`),Z(`\\coloncolonapprox`,`\\Colonapprox`),Z(`\\coloncolonsim`,`\\Colonsim`),Z(`\\simcolon`,`\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}`),Z(`\\simcoloncolon`,`\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}`),Z(`\\approxcolon`,`\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}`),Z(`\\approxcoloncolon`,`\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}`),Z(`\\notni`,"\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}"),Z(`\\limsup`,`\\DOTSB\\operatorname*{lim\\,sup}`),Z(`\\liminf`,`\\DOTSB\\operatorname*{lim\\,inf}`),Z(`\\injlim`,`\\DOTSB\\operatorname*{inj\\,lim}`),Z(`\\projlim`,`\\DOTSB\\operatorname*{proj\\,lim}`),Z(`\\varlimsup`,`\\DOTSB\\operatorname*{\\overline{lim}}`),Z(`\\varliminf`,`\\DOTSB\\operatorname*{\\underline{lim}}`),Z(`\\varinjlim`,`\\DOTSB\\operatorname*{\\underrightarrow{lim}}`),Z(`\\varprojlim`,`\\DOTSB\\operatorname*{\\underleftarrow{lim}}`),Z(`\\gvertneqq`,`\\html@mathml{\\@gvertneqq}{≩}`),Z(`\\lvertneqq`,`\\html@mathml{\\@lvertneqq}{≨}`),Z(`\\ngeqq`,`\\html@mathml{\\@ngeqq}{≱}`),Z(`\\ngeqslant`,`\\html@mathml{\\@ngeqslant}{≱}`),Z(`\\nleqq`,`\\html@mathml{\\@nleqq}{≰}`),Z(`\\nleqslant`,`\\html@mathml{\\@nleqslant}{≰}`),Z(`\\nshortmid`,`\\html@mathml{\\@nshortmid}{∤}`),Z(`\\nshortparallel`,`\\html@mathml{\\@nshortparallel}{∦}`),Z(`\\nsubseteqq`,`\\html@mathml{\\@nsubseteqq}{⊈}`),Z(`\\nsupseteqq`,`\\html@mathml{\\@nsupseteqq}{⊉}`),Z(`\\varsubsetneq`,`\\html@mathml{\\@varsubsetneq}{⊊}`),Z(`\\varsubsetneqq`,`\\html@mathml{\\@varsubsetneqq}{⫋}`),Z(`\\varsupsetneq`,`\\html@mathml{\\@varsupsetneq}{⊋}`),Z(`\\varsupsetneqq`,`\\html@mathml{\\@varsupsetneqq}{⫌}`),Z(`\\imath`,`\\html@mathml{\\@imath}{ı}`),Z(`\\jmath`,`\\html@mathml{\\@jmath}{ȷ}`),Z(`\\llbracket`,"\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}"),Z(`\\rrbracket`,"\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}"),Z(`⟦`,`\\llbracket`),Z(`⟧`,`\\rrbracket`),Z(`\\lBrace`,"\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}"),Z(`\\rBrace`,"\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}"),Z(`↤`,`\\mapsfrom`),Z(`\\mapsfrom`,"\\html@mathml{\\mathrel{\\mathreflectbox{\\mapsto}}}{\\mathrel{\\char`↤}}"),Z(`⦃`,`\\lBrace`),Z(`⦄`,`\\rBrace`),Z(`\\minuso`,"\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}"),Z(`⦵`,`\\minuso`),Z(`\\darr`,`\\downarrow`),Z(`\\dArr`,`\\Downarrow`),Z(`\\Darr`,`\\Downarrow`),Z(`\\lang`,`\\langle`),Z(`\\rang`,`\\rangle`),Z(`\\uarr`,`\\uparrow`),Z(`\\uArr`,`\\Uparrow`),Z(`\\Uarr`,`\\Uparrow`),Z(`\\N`,`\\mathbb{N}`),Z(`\\R`,`\\mathbb{R}`),Z(`\\Z`,`\\mathbb{Z}`),Z(`\\alef`,`\\aleph`),Z(`\\alefsym`,`\\aleph`),Z(`\\Alpha`,`\\mathrm{A}`),Z(`\\Beta`,`\\mathrm{B}`),Z(`\\bull`,`\\bullet`),Z(`\\Chi`,`\\mathrm{X}`),Z(`\\clubs`,`\\clubsuit`),Z(`\\cnums`,`\\mathbb{C}`),Z(`\\Complex`,`\\mathbb{C}`),Z(`\\Dagger`,`\\ddagger`),Z(`\\diamonds`,`\\diamondsuit`),Z(`\\empty`,`\\emptyset`),Z(`\\Epsilon`,`\\mathrm{E}`),Z(`\\Eta`,`\\mathrm{H}`),Z(`\\exist`,`\\exists`),Z(`\\harr`,`\\leftrightarrow`),Z(`\\hArr`,`\\Leftrightarrow`),Z(`\\Harr`,`\\Leftrightarrow`),Z(`\\hearts`,`\\heartsuit`),Z(`\\image`,`\\Im`),Z(`\\infin`,`\\infty`),Z(`\\Iota`,`\\mathrm{I}`),Z(`\\isin`,`\\in`),Z(`\\Kappa`,`\\mathrm{K}`),Z(`\\larr`,`\\leftarrow`),Z(`\\lArr`,`\\Leftarrow`),Z(`\\Larr`,`\\Leftarrow`),Z(`\\lrarr`,`\\leftrightarrow`),Z(`\\lrArr`,`\\Leftrightarrow`),Z(`\\Lrarr`,`\\Leftrightarrow`),Z(`\\Mu`,`\\mathrm{M}`),Z(`\\natnums`,`\\mathbb{N}`),Z(`\\Nu`,`\\mathrm{N}`),Z(`\\Omicron`,`\\mathrm{O}`),Z(`\\plusmn`,`\\pm`),Z(`\\rarr`,`\\rightarrow`),Z(`\\rArr`,`\\Rightarrow`),Z(`\\Rarr`,`\\Rightarrow`),Z(`\\real`,`\\Re`),Z(`\\reals`,`\\mathbb{R}`),Z(`\\Reals`,`\\mathbb{R}`),Z(`\\Rho`,`\\mathrm{P}`),Z(`\\sdot`,`\\cdot`),Z(`\\sect`,`\\S`),Z(`\\spades`,`\\spadesuit`),Z(`\\sub`,`\\subset`),Z(`\\sube`,`\\subseteq`),Z(`\\supe`,`\\supseteq`),Z(`\\Tau`,`\\mathrm{T}`),Z(`\\thetasym`,`\\vartheta`),Z(`\\weierp`,`\\wp`),Z(`\\Zeta`,`\\mathrm{Z}`),Z(`\\argmin`,`\\DOTSB\\operatorname*{arg\\,min}`),Z(`\\argmax`,`\\DOTSB\\operatorname*{arg\\,max}`),Z(`\\plim`,`\\DOTSB\\mathop{\\operatorname{plim}}\\limits`),Z(`\\bra`,`\\mathinner{\\langle{#1}|}`),Z(`\\ket`,`\\mathinner{|{#1}\\rangle}`),Z(`\\braket`,`\\mathinner{\\langle{#1}\\rangle}`),Z(`\\Bra`,`\\left\\langle#1\\right|`),Z(`\\Ket`,`\\left|#1\\right\\rangle`);var Ss=e=>t=>{var n=t.consumeArg().tokens,r=t.consumeArg().tokens,i=t.consumeArg().tokens,a=t.consumeArg().tokens,o=t.macros.get(`|`),s=t.macros.get(`\\|`);t.macros.beginGroup();var c=t=>n=>{e&&(n.macros.set(`|`,o),i.length&&n.macros.set(`\\|`,s));var a=t;return!t&&i.length&&n.future().text===`|`&&(n.popToken(),a=!0),{tokens:a?i:r,numArgs:0}};t.macros.set(`|`,c(!1)),i.length&&t.macros.set(`\\|`,c(!0));var l=t.consumeArg().tokens,u=t.expandTokens([...a,...l,...n]);return t.macros.endGroup(),{tokens:u.reverse(),numArgs:0}};Z(`\\bra@ket`,Ss(!1)),Z(`\\bra@set`,Ss(!0)),Z(`\\Braket`,`\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}`),Z(`\\Set`,`\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}`),Z(`\\set`,`\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}`),Z(`\\angln`,`{\\angl n}`),Z(`\\blue`,`\\textcolor{##6495ed}{#1}`),Z(`\\orange`,`\\textcolor{##ffa500}{#1}`),Z(`\\pink`,`\\textcolor{##ff00af}{#1}`),Z(`\\red`,`\\textcolor{##df0030}{#1}`),Z(`\\green`,`\\textcolor{##28ae7b}{#1}`),Z(`\\gray`,`\\textcolor{gray}{#1}`),Z(`\\purple`,`\\textcolor{##9d38bd}{#1}`),Z(`\\blueA`,`\\textcolor{##ccfaff}{#1}`),Z(`\\blueB`,`\\textcolor{##80f6ff}{#1}`),Z(`\\blueC`,`\\textcolor{##63d9ea}{#1}`),Z(`\\blueD`,`\\textcolor{##11accd}{#1}`),Z(`\\blueE`,`\\textcolor{##0c7f99}{#1}`),Z(`\\tealA`,`\\textcolor{##94fff5}{#1}`),Z(`\\tealB`,`\\textcolor{##26edd5}{#1}`),Z(`\\tealC`,`\\textcolor{##01d1c1}{#1}`),Z(`\\tealD`,`\\textcolor{##01a995}{#1}`),Z(`\\tealE`,`\\textcolor{##208170}{#1}`),Z(`\\greenA`,`\\textcolor{##b6ffb0}{#1}`),Z(`\\greenB`,`\\textcolor{##8af281}{#1}`),Z(`\\greenC`,`\\textcolor{##74cf70}{#1}`),Z(`\\greenD`,`\\textcolor{##1fab54}{#1}`),Z(`\\greenE`,`\\textcolor{##0d923f}{#1}`),Z(`\\goldA`,`\\textcolor{##ffd0a9}{#1}`),Z(`\\goldB`,`\\textcolor{##ffbb71}{#1}`),Z(`\\goldC`,`\\textcolor{##ff9c39}{#1}`),Z(`\\goldD`,`\\textcolor{##e07d10}{#1}`),Z(`\\goldE`,`\\textcolor{##a75a05}{#1}`),Z(`\\redA`,`\\textcolor{##fca9a9}{#1}`),Z(`\\redB`,`\\textcolor{##ff8482}{#1}`),Z(`\\redC`,`\\textcolor{##f9685d}{#1}`),Z(`\\redD`,`\\textcolor{##e84d39}{#1}`),Z(`\\redE`,`\\textcolor{##bc2612}{#1}`),Z(`\\maroonA`,`\\textcolor{##ffbde0}{#1}`),Z(`\\maroonB`,`\\textcolor{##ff92c6}{#1}`),Z(`\\maroonC`,`\\textcolor{##ed5fa6}{#1}`),Z(`\\maroonD`,`\\textcolor{##ca337c}{#1}`),Z(`\\maroonE`,`\\textcolor{##9e034e}{#1}`),Z(`\\purpleA`,`\\textcolor{##ddd7ff}{#1}`),Z(`\\purpleB`,`\\textcolor{##c6b9fc}{#1}`),Z(`\\purpleC`,`\\textcolor{##aa87ff}{#1}`),Z(`\\purpleD`,`\\textcolor{##7854ab}{#1}`),Z(`\\purpleE`,`\\textcolor{##543b78}{#1}`),Z(`\\mintA`,`\\textcolor{##f5f9e8}{#1}`),Z(`\\mintB`,`\\textcolor{##edf2df}{#1}`),Z(`\\mintC`,`\\textcolor{##e0e5cc}{#1}`),Z(`\\grayA`,`\\textcolor{##f6f7f7}{#1}`),Z(`\\grayB`,`\\textcolor{##f0f1f2}{#1}`),Z(`\\grayC`,`\\textcolor{##e3e5e6}{#1}`),Z(`\\grayD`,`\\textcolor{##d6d8da}{#1}`),Z(`\\grayE`,`\\textcolor{##babec2}{#1}`),Z(`\\grayF`,`\\textcolor{##888d93}{#1}`),Z(`\\grayG`,`\\textcolor{##626569}{#1}`),Z(`\\grayH`,`\\textcolor{##3b3e40}{#1}`),Z(`\\grayI`,`\\textcolor{##21242c}{#1}`),Z(`\\kaBlue`,`\\textcolor{##314453}{#1}`),Z(`\\kaGreen`,`\\textcolor{##71B307}{#1}`);var Cs={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},ws=class{constructor(e,t,n){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new ms(hs,t.macros),this.mode=n,this.stack=[]}feed(e){this.lexer=new ps(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var t,n,r;if(e){if(this.consumeSpaces(),this.future().text!==`[`)return null;t=this.popToken();var i=this.consumeArg([`]`]);r=i.tokens,n=i.end}else{var a=this.consumeArg();r=a.tokens,t=a.start,n=a.end}return this.pushToken(new po(`EOF`,n.loc)),this.pushTokens(r),new po(``,fo.range(t,n))}consumeSpaces(){for(;this.future().text===` `;)this.stack.pop()}consumeArg(e){var t=[],n=e&&e.length>0;n||this.consumeSpaces();var r=this.future(),i,a=0,o=0;do{if(i=this.popToken(),t.push(i),i.text===`{`)++a;else if(i.text===`}`){if(--a,a===-1)throw new N(`Extra }`,i)}else if(i.text===`EOF`)throw new N(`Unexpected end of input in a macro argument, expected '`+(e&&n?e[o]:`}`)+`'`,i);if(e&&n)if((a===0||a===1&&e[o]===`{`)&&i.text===e[o]){if(++o,o===e.length){t.splice(-o,o);break}}else o=0}while(a!==0||n);return r.text===`{`&&t[t.length-1].text===`}`&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:r,end:i}}consumeArgs(e,t){if(t){if(t.length!==e+1)throw new N(`The length of delimiters doesn't match the number of args!`);for(var n=t[0],r=0;r<n.length;r++){var i=this.popToken();if(n[r]!==i.text)throw new N(`Use of the macro doesn't match its definition`,i)}}for(var a=[],o=0;o<e;o++)a.push(this.consumeArg(t&&t[o+1]).tokens);return a}countExpansion(e){if(this.expansionCount+=e,this.expansionCount>this.settings.maxExpand)throw new N(`Too many expansions: infinite loop or need to increase maxExpand setting`)}expandOnce(e){var t=this.popToken(),n=t.text,r=t.noexpand?null:this._getExpansion(n);if(r==null||e&&r.unexpandable){if(e&&r==null&&n[0]===`\\`&&!this.isDefined(n))throw new N(`Undefined control sequence: `+n);return this.pushToken(t),!1}this.countExpansion(1);var i=r.tokens,a=this.consumeArgs(r.numArgs,r.delimiters);if(r.numArgs){i=i.slice();for(var o=i.length-1;o>=0;--o){var s=i[o];if(s.text===`#`){if(o===0)throw new N(`Incomplete placeholder at end of macro body`,s);if(s=i[--o],s.text===`#`)i.splice(o+1,1);else if(/^[1-9]$/.test(s.text))i.splice(o,2,...a[s.text-1]);else throw new N(`Not a valid argument number`,s)}}}return this.pushTokens(i),i.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text=`\\relax`),e}}expandMacro(e){return this.macros.has(e)?this.expandTokens([new po(e)]):void 0}expandTokens(e){var t=[],n=this.stack.length;for(this.pushTokens(e);this.stack.length>n;)if(this.expandOnce(!0)===!1){var r=this.stack.pop();r.treatAsRelax&&=(r.noexpand=!1,!1),t.push(r)}return this.countExpansion(t.length),t}expandMacroAsText(e){var t=this.expandMacro(e);return t&&t.map(e=>e.text).join(``)}_getExpansion(e){var t=this.macros.get(e);if(t==null)return t;if(e.length===1){var n=this.lexer.catcodes[e];if(n!=null&&n!==13)return}var r=typeof t==`function`?t(this):t;if(typeof r==`string`){var i=0;if(r.includes(`#`))for(var a=r.replace(/##/g,``);a.includes(`#`+(i+1));)++i;for(var o=new ps(r,this.settings),s=[],c=o.lex();c.text!==`EOF`;)s.push(c),c=o.lex();return s.reverse(),{tokens:s,numArgs:i}}return r}isDefined(e){return this.macros.has(e)||Object.prototype.hasOwnProperty.call(is,e)||Object.prototype.hasOwnProperty.call($n.math,e)||Object.prototype.hasOwnProperty.call($n.text,e)||Object.prototype.hasOwnProperty.call(Cs,e)}isExpandable(e){var t=this.macros.get(e);return t==null?Object.prototype.hasOwnProperty.call(is,e)&&!is[e].primitive:typeof t==`string`||typeof t==`function`||!t.unexpandable}},Ts=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,Es=Object.freeze({"₊":`+`,"₋":`-`,"₌":`=`,"₍":`(`,"₎":`)`,"₀":`0`,"₁":`1`,"₂":`2`,"₃":`3`,"₄":`4`,"₅":`5`,"₆":`6`,"₇":`7`,"₈":`8`,"₉":`9`,ₐ:`a`,ₑ:`e`,ₕ:`h`,ᵢ:`i`,ⱼ:`j`,ₖ:`k`,ₗ:`l`,ₘ:`m`,ₙ:`n`,ₒ:`o`,ₚ:`p`,ᵣ:`r`,ₛ:`s`,ₜ:`t`,ᵤ:`u`,ᵥ:`v`,ₓ:`x`,ᵦ:`β`,ᵧ:`γ`,ᵨ:`ρ`,ᵩ:`ϕ`,ᵪ:`χ`,"⁺":`+`,"⁻":`-`,"⁼":`=`,"⁽":`(`,"⁾":`)`,"⁰":`0`,"¹":`1`,"²":`2`,"³":`3`,"⁴":`4`,"⁵":`5`,"⁶":`6`,"⁷":`7`,"⁸":`8`,"⁹":`9`,ᴬ:`A`,ᴮ:`B`,ᴰ:`D`,ᴱ:`E`,ᴳ:`G`,ᴴ:`H`,ᴵ:`I`,ᴶ:`J`,ᴷ:`K`,ᴸ:`L`,ᴹ:`M`,ᴺ:`N`,ᴼ:`O`,ᴾ:`P`,ᴿ:`R`,ᵀ:`T`,ᵁ:`U`,ⱽ:`V`,ᵂ:`W`,ᵃ:`a`,ᵇ:`b`,ᶜ:`c`,ᵈ:`d`,ᵉ:`e`,ᶠ:`f`,ᵍ:`g`,ʰ:`h`,ⁱ:`i`,ʲ:`j`,ᵏ:`k`,ˡ:`l`,ᵐ:`m`,ⁿ:`n`,ᵒ:`o`,ᵖ:`p`,ʳ:`r`,ˢ:`s`,ᵗ:`t`,ᵘ:`u`,ᵛ:`v`,ʷ:`w`,ˣ:`x`,ʸ:`y`,ᶻ:`z`,ᵝ:`β`,ᵞ:`γ`,ᵟ:`δ`,ᵠ:`ϕ`,ᵡ:`χ`,ᶿ:`θ`}),Ds={"́":{text:`\\'`,math:`\\acute`},"̀":{text:"\\`",math:`\\grave`},"̈":{text:`\\"`,math:`\\ddot`},"̃":{text:`\\~`,math:`\\tilde`},"̄":{text:`\\=`,math:`\\bar`},"̆":{text:`\\u`,math:`\\breve`},"̌":{text:`\\v`,math:`\\check`},"̂":{text:`\\^`,math:`\\hat`},"̇":{text:`\\.`,math:`\\dot`},"̊":{text:`\\r`,math:`\\mathring`},"̋":{text:`\\H`},"̧":{text:`\\c`}},Os={á:`á`,à:`à`,ä:`ä`,ǟ:`ǟ`,ã:`ã`,ā:`ā`,ă:`ă`,ắ:`ắ`,ằ:`ằ`,ẵ:`ẵ`,ǎ:`ǎ`,â:`â`,ấ:`ấ`,ầ:`ầ`,ẫ:`ẫ`,ȧ:`ȧ`,ǡ:`ǡ`,å:`å`,ǻ:`ǻ`,ḃ:`ḃ`,ć:`ć`,ḉ:`ḉ`,č:`č`,ĉ:`ĉ`,ċ:`ċ`,ç:`ç`,ď:`ď`,ḋ:`ḋ`,ḑ:`ḑ`,é:`é`,è:`è`,ë:`ë`,ẽ:`ẽ`,ē:`ē`,ḗ:`ḗ`,ḕ:`ḕ`,ĕ:`ĕ`,ḝ:`ḝ`,ě:`ě`,ê:`ê`,ế:`ế`,ề:`ề`,ễ:`ễ`,ė:`ė`,ȩ:`ȩ`,ḟ:`ḟ`,ǵ:`ǵ`,ḡ:`ḡ`,ğ:`ğ`,ǧ:`ǧ`,ĝ:`ĝ`,ġ:`ġ`,ģ:`ģ`,ḧ:`ḧ`,ȟ:`ȟ`,ĥ:`ĥ`,ḣ:`ḣ`,ḩ:`ḩ`,í:`í`,ì:`ì`,ï:`ï`,ḯ:`ḯ`,ĩ:`ĩ`,ī:`ī`,ĭ:`ĭ`,ǐ:`ǐ`,î:`î`,ǰ:`ǰ`,ĵ:`ĵ`,ḱ:`ḱ`,ǩ:`ǩ`,ķ:`ķ`,ĺ:`ĺ`,ľ:`ľ`,ļ:`ļ`,ḿ:`ḿ`,ṁ:`ṁ`,ń:`ń`,ǹ:`ǹ`,ñ:`ñ`,ň:`ň`,ṅ:`ṅ`,ņ:`ņ`,ó:`ó`,ò:`ò`,ö:`ö`,ȫ:`ȫ`,õ:`õ`,ṍ:`ṍ`,ṏ:`ṏ`,ȭ:`ȭ`,ō:`ō`,ṓ:`ṓ`,ṑ:`ṑ`,ŏ:`ŏ`,ǒ:`ǒ`,ô:`ô`,ố:`ố`,ồ:`ồ`,ỗ:`ỗ`,ȯ:`ȯ`,ȱ:`ȱ`,ő:`ő`,ṕ:`ṕ`,ṗ:`ṗ`,ŕ:`ŕ`,ř:`ř`,ṙ:`ṙ`,ŗ:`ŗ`,ś:`ś`,ṥ:`ṥ`,š:`š`,ṧ:`ṧ`,ŝ:`ŝ`,ṡ:`ṡ`,ş:`ş`,ẗ:`ẗ`,ť:`ť`,ṫ:`ṫ`,ţ:`ţ`,ú:`ú`,ù:`ù`,ü:`ü`,ǘ:`ǘ`,ǜ:`ǜ`,ǖ:`ǖ`,ǚ:`ǚ`,ũ:`ũ`,ṹ:`ṹ`,ū:`ū`,ṻ:`ṻ`,ŭ:`ŭ`,ǔ:`ǔ`,û:`û`,ů:`ů`,ű:`ű`,ṽ:`ṽ`,ẃ:`ẃ`,ẁ:`ẁ`,ẅ:`ẅ`,ŵ:`ŵ`,ẇ:`ẇ`,ẘ:`ẘ`,ẍ:`ẍ`,ẋ:`ẋ`,ý:`ý`,ỳ:`ỳ`,ÿ:`ÿ`,ỹ:`ỹ`,ȳ:`ȳ`,ŷ:`ŷ`,ẏ:`ẏ`,ẙ:`ẙ`,ź:`ź`,ž:`ž`,ẑ:`ẑ`,ż:`ż`,Á:`Á`,À:`À`,Ä:`Ä`,Ǟ:`Ǟ`,Ã:`Ã`,Ā:`Ā`,Ă:`Ă`,Ắ:`Ắ`,Ằ:`Ằ`,Ẵ:`Ẵ`,Ǎ:`Ǎ`,Â:`Â`,Ấ:`Ấ`,Ầ:`Ầ`,Ẫ:`Ẫ`,Ȧ:`Ȧ`,Ǡ:`Ǡ`,Å:`Å`,Ǻ:`Ǻ`,Ḃ:`Ḃ`,Ć:`Ć`,Ḉ:`Ḉ`,Č:`Č`,Ĉ:`Ĉ`,Ċ:`Ċ`,Ç:`Ç`,Ď:`Ď`,Ḋ:`Ḋ`,Ḑ:`Ḑ`,É:`É`,È:`È`,Ë:`Ë`,Ẽ:`Ẽ`,Ē:`Ē`,Ḗ:`Ḗ`,Ḕ:`Ḕ`,Ĕ:`Ĕ`,Ḝ:`Ḝ`,Ě:`Ě`,Ê:`Ê`,Ế:`Ế`,Ề:`Ề`,Ễ:`Ễ`,Ė:`Ė`,Ȩ:`Ȩ`,Ḟ:`Ḟ`,Ǵ:`Ǵ`,Ḡ:`Ḡ`,Ğ:`Ğ`,Ǧ:`Ǧ`,Ĝ:`Ĝ`,Ġ:`Ġ`,Ģ:`Ģ`,Ḧ:`Ḧ`,Ȟ:`Ȟ`,Ĥ:`Ĥ`,Ḣ:`Ḣ`,Ḩ:`Ḩ`,Í:`Í`,Ì:`Ì`,Ï:`Ï`,Ḯ:`Ḯ`,Ĩ:`Ĩ`,Ī:`Ī`,Ĭ:`Ĭ`,Ǐ:`Ǐ`,Î:`Î`,İ:`İ`,Ĵ:`Ĵ`,Ḱ:`Ḱ`,Ǩ:`Ǩ`,Ķ:`Ķ`,Ĺ:`Ĺ`,Ľ:`Ľ`,Ļ:`Ļ`,Ḿ:`Ḿ`,Ṁ:`Ṁ`,Ń:`Ń`,Ǹ:`Ǹ`,Ñ:`Ñ`,Ň:`Ň`,Ṅ:`Ṅ`,Ņ:`Ņ`,Ó:`Ó`,Ò:`Ò`,Ö:`Ö`,Ȫ:`Ȫ`,Õ:`Õ`,Ṍ:`Ṍ`,Ṏ:`Ṏ`,Ȭ:`Ȭ`,Ō:`Ō`,Ṓ:`Ṓ`,Ṑ:`Ṑ`,Ŏ:`Ŏ`,Ǒ:`Ǒ`,Ô:`Ô`,Ố:`Ố`,Ồ:`Ồ`,Ỗ:`Ỗ`,Ȯ:`Ȯ`,Ȱ:`Ȱ`,Ő:`Ő`,Ṕ:`Ṕ`,Ṗ:`Ṗ`,Ŕ:`Ŕ`,Ř:`Ř`,Ṙ:`Ṙ`,Ŗ:`Ŗ`,Ś:`Ś`,Ṥ:`Ṥ`,Š:`Š`,Ṧ:`Ṧ`,Ŝ:`Ŝ`,Ṡ:`Ṡ`,Ş:`Ş`,Ť:`Ť`,Ṫ:`Ṫ`,Ţ:`Ţ`,Ú:`Ú`,Ù:`Ù`,Ü:`Ü`,Ǘ:`Ǘ`,Ǜ:`Ǜ`,Ǖ:`Ǖ`,Ǚ:`Ǚ`,Ũ:`Ũ`,Ṹ:`Ṹ`,Ū:`Ū`,Ṻ:`Ṻ`,Ŭ:`Ŭ`,Ǔ:`Ǔ`,Û:`Û`,Ů:`Ů`,Ű:`Ű`,Ṽ:`Ṽ`,Ẃ:`Ẃ`,Ẁ:`Ẁ`,Ẅ:`Ẅ`,Ŵ:`Ŵ`,Ẇ:`Ẇ`,Ẍ:`Ẍ`,Ẋ:`Ẋ`,Ý:`Ý`,Ỳ:`Ỳ`,Ÿ:`Ÿ`,Ỹ:`Ỹ`,Ȳ:`Ȳ`,Ŷ:`Ŷ`,Ẏ:`Ẏ`,Ź:`Ź`,Ž:`Ž`,Ẑ:`Ẑ`,Ż:`Ż`,ά:`ά`,ὰ:`ὰ`,ᾱ:`ᾱ`,ᾰ:`ᾰ`,έ:`έ`,ὲ:`ὲ`,ή:`ή`,ὴ:`ὴ`,ί:`ί`,ὶ:`ὶ`,ϊ:`ϊ`,ΐ:`ΐ`,ῒ:`ῒ`,ῑ:`ῑ`,ῐ:`ῐ`,ό:`ό`,ὸ:`ὸ`,ύ:`ύ`,ὺ:`ὺ`,ϋ:`ϋ`,ΰ:`ΰ`,ῢ:`ῢ`,ῡ:`ῡ`,ῠ:`ῠ`,ώ:`ώ`,ὼ:`ὼ`,Ύ:`Ύ`,Ὺ:`Ὺ`,Ϋ:`Ϋ`,Ῡ:`Ῡ`,Ῠ:`Ῠ`,Ώ:`Ώ`,Ὼ:`Ὼ`},ks=class e{constructor(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode=`math`,this.gullet=new ws(e,t,this.mode),this.settings=t,this.leftrightDepth=0,this.nextToken=null}expect(e,t){if(t===void 0&&(t=!0),this.fetch().text!==e)throw new N(`Expected '`+e+`', got '`+this.fetch().text+`'`,this.fetch());t&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken??=this.gullet.expandNextToken(),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set(`\\color`,`\\textcolor`);try{var e=this.parseExpression(!1);return this.expect(`EOF`),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new po(`}`)),this.gullet.pushTokens(e);var n=this.parseExpression(!1);return this.expect(`}`),this.nextToken=t,n}parseExpression(t,n){for(var r=[];;){this.mode===`math`&&this.consumeSpaces();var i=this.fetch();if(e.endOfExpression.has(i.text)||n&&i.text===n||t&&is[i.text]&&is[i.text].infix)break;var a=this.parseAtom(n);if(!a)break;a.type!==`internal`&&r.push(a)}return this.mode===`text`&&this.formLigatures(r),this.handleInfixNodes(r)}handleInfixNodes(e){for(var t=-1,n,r=0;r<e.length;r++){var i=e[r];if(i.type===`infix`){if(t!==-1)throw new N(`only one infix operator per group`,i.token);t=r,n=i.replaceWith}}if(t!==-1&&n){var a,o,s=e.slice(0,t),c=e.slice(t+1);return a=s.length===1&&s[0].type===`ordgroup`?s[0]:{type:`ordgroup`,mode:this.mode,body:s},o=c.length===1&&c[0].type===`ordgroup`?c[0]:{type:`ordgroup`,mode:this.mode,body:c},[n===`\\\\abovefrac`?this.callFunction(n,[a,e[t],o],[]):this.callFunction(n,[a,o],[])]}else return e}handleSupSubscript(e){var t=this.fetch(),n=t.text;this.consume(),this.consumeSpaces();var r;do r=this.parseGroup(e);while(r?.type===`internal`);if(!r)throw new N(`Expected group after '`+n+`'`,t);return r}formatUnsupportedCmd(e){for(var t=[],n=0;n<e.length;n++)t.push({type:`textord`,mode:`text`,text:e[n]});var r={type:`text`,mode:this.mode,body:t};return{type:`color`,mode:this.mode,color:this.settings.errorColor,body:[r]}}parseAtom(e){var t=this.parseGroup(`atom`,e);if(t?.type===`internal`||this.mode===`text`)return t;for(var n,r;;){this.consumeSpaces();var i=this.fetch();if(i.text===`\\limits`||i.text===`\\nolimits`){if(t&&t.type===`op`)t.limits=i.text===`\\limits`,t.alwaysHandleSupSub=!0;else if(t&&t.type===`operatorname`)t.alwaysHandleSupSub&&(t.limits=i.text===`\\limits`);else throw new N(`Limit controls must follow a math operator`,i);this.consume()}else if(i.text===`^`){if(n)throw new N(`Double superscript`,i);n=this.handleSupSubscript(`superscript`)}else if(i.text===`_`){if(r)throw new N(`Double subscript`,i);r=this.handleSupSubscript(`subscript`)}else if(i.text===`'`){if(n)throw new N(`Double superscript`,i);var a={type:`textord`,mode:this.mode,text:`\\prime`},o=[a];for(this.consume();this.fetch().text===`'`;)o.push(a),this.consume();this.fetch().text===`^`&&o.push(this.handleSupSubscript(`superscript`)),n={type:`ordgroup`,mode:this.mode,body:o}}else if(Es[i.text]){var s=Ts.test(i.text),c=[];for(c.push(new po(Es[i.text])),this.consume();;){var l=this.fetch().text;if(!Es[l]||Ts.test(l)!==s)break;c.unshift(new po(Es[l])),this.consume()}var u=this.subparse(c);s?r={type:`ordgroup`,mode:`math`,body:u}:n={type:`ordgroup`,mode:`math`,body:u}}else break}return n&&r?{type:`supsub`,mode:this.mode,base:t,sup:n,sub:r}:n?{type:`supsub`,mode:this.mode,base:t,sup:n}:r?{type:`supsub`,mode:this.mode,base:t,sub:r}:t}parseFunction(e,t){var n=this.fetch(),r=n.text,i=is[r];if(!i)return null;if(this.consume(),t&&t!==`atom`&&!i.allowedInArgument)throw new N(`Got function '`+r+`' with no arguments`+(t?` as `+t:``),n);if(this.mode===`text`&&!i.allowedInText)throw new N(`Can't use function '`+r+`' in text mode`,n);if(this.mode===`math`&&i.allowedInMath===!1)throw new N(`Can't use function '`+r+`' in math mode`,n);var a=this.parseArguments(r,i),o=a.args,s=a.optArgs;return this.callFunction(r,o,s,n,e)}callFunction(e,t,n,r,i){var a={funcName:e,parser:this,token:r,breakOnTokenText:i},o=is[e];if(o&&o.handler)return o.handler(a,t,n);throw new N(`No function handler for `+e)}parseArguments(e,t){var n=t.numOptionalArgs??0,r=t.numArgs+n;if(r===0)return{args:[],optArgs:[]};for(var i=[],a=[],o=0;o<r;o++){var s=t.argTypes?.[o],c=o<n;(`primitive`in t&&t.primitive&&s==null||t.type===`sqrt`&&o===1&&a[0]==null)&&(s=`primitive`);var l=this.parseGroupOfType(`argument to '`+e+`'`,s,c);if(c)a.push(l);else if(l!=null)i.push(l);else throw new N(`Null argument, please report this as a bug`)}return{args:i,optArgs:a}}parseGroupOfType(e,t,n){switch(t){case`color`:return this.parseColorGroup(n);case`size`:return this.parseSizeGroup(n);case`url`:return this.parseUrlGroup(n);case`math`:case`text`:return this.parseArgumentGroup(n,t);case`hbox`:var r=this.parseArgumentGroup(n,`text`);return r==null?null:{type:`styling`,mode:r.mode,body:[r],style:`text`,resetFont:!0};case`raw`:var i=this.parseStringGroup(n);return i==null?null:{type:`raw`,mode:`text`,string:i.text};case`primitive`:if(n)throw new N(`A primitive argument cannot be optional`);var a=this.parseGroup(e);if(a==null)throw new N(`Expected group as `+e,this.fetch());return a;case`original`:case void 0:return this.parseArgumentGroup(n);default:throw new N(`Unknown group type as `+e,this.fetch())}}consumeSpaces(){for(;this.fetch().text===` `;)this.consume()}parseStringGroup(e){var t=this.gullet.scanArgument(e);if(t==null)return null;for(var n=``,r;(r=this.fetch()).text!==`EOF`;)n+=r.text,this.consume();return this.consume(),t.text=n,t}parseRegexGroup(e,t){for(var n=this.fetch(),r=n,i=``,a;(a=this.fetch()).text!==`EOF`&&e.test(i+a.text);)r=a,i+=r.text,this.consume();if(i===``)throw new N(`Invalid `+t+`: '`+n.text+`'`,n);return n.range(r,i)}parseColorGroup(e){var t=this.parseStringGroup(e);if(t==null)return null;var n=/^(#[a-f0-9]{3,4}|#[a-f0-9]{6}|#[a-f0-9]{8}|[a-f0-9]{6}|[a-z]+)$/i.exec(t.text);if(!n)throw new N(`Invalid color: '`+t.text+`'`,t);var r=n[0];return/^[0-9a-f]{6}$/i.test(r)&&(r=`#`+r),{type:`color-token`,mode:this.mode,color:r}}parseSizeGroup(e){var t,n=!1;if(this.gullet.consumeSpaces(),t=!e&&this.gullet.future().text!==`{`?this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/,`size`):this.parseStringGroup(e),!t)return null;!e&&t.text.length===0&&(t.text=`0pt`,n=!0);var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t.text);if(!r)throw new N(`Invalid size: '`+t.text+`'`,t);var i={number:+(r[1]+r[2]),unit:r[3]};if(!Dn(i))throw new N(`Invalid unit: '`+i.unit+`'`,t);return{type:`size`,mode:this.mode,value:i,isBlank:n}}parseUrlGroup(e){this.gullet.lexer.setCatcode(`%`,13),this.gullet.lexer.setCatcode(`~`,12);var t=this.parseStringGroup(e);if(this.gullet.lexer.setCatcode(`%`,14),this.gullet.lexer.setCatcode(`~`,13),t==null)return null;var n=t.text.replace(/\\([#$%&~_^{}])/g,`$1`);return{type:`url`,mode:this.mode,url:n}}parseArgumentGroup(e,t){var n=this.gullet.scanArgument(e);if(n==null)return null;var r=this.mode;t&&this.switchMode(t),this.gullet.beginGroup();var i=this.parseExpression(!1,`EOF`);this.expect(`EOF`),this.gullet.endGroup();var a={type:`ordgroup`,mode:this.mode,loc:n.loc,body:i};return t&&this.switchMode(r),a}parseGroup(e,t){var n=this.fetch(),r=n.text,i;if(r===`{`||r===`\\begingroup`){this.consume();var a=r===`{`?`}`:`\\endgroup`;this.gullet.beginGroup();var o=this.parseExpression(!1,a),s=this.fetch();this.expect(a),this.gullet.endGroup(),i={type:`ordgroup`,mode:this.mode,loc:fo.range(n,s),body:o,semisimple:r===`\\begingroup`||void 0}}else if(i=this.parseFunction(t,e)||this.parseSymbol(),i==null&&r[0]===`\\`&&!Object.prototype.hasOwnProperty.call(Cs,r)){if(this.settings.throwOnError)throw new N(`Undefined control sequence: `+r,n);i=this.formatUnsupportedCmd(r),this.consume()}return i}formLigatures(e){for(var t=e.length-1,n=0;n<t;++n){var r=e[n];if(r.type===`textord`){var i=r.text,a=e[n+1];if(!(!a||a.type!==`textord`)){if(i===`-`&&a.text===`-`){var o=e[n+2];n+1<t&&o&&o.type===`textord`&&o.text===`-`?(e.splice(n,3,{type:`textord`,mode:`text`,loc:fo.range(r,o),text:`---`}),t-=2):(e.splice(n,2,{type:`textord`,mode:`text`,loc:fo.range(r,a),text:`--`}),--t)}(i===`'`||i==="`")&&a.text===i&&(e.splice(n,2,{type:`textord`,mode:`text`,loc:fo.range(r,a),text:i+i}),--t)}}}}parseSymbol(){var e=this.fetch(),t=e.text;if(/^\\verb[^a-zA-Z]/.test(t)){this.consume();var n=t.slice(5),r=n.charAt(0)===`*`;if(r&&(n=n.slice(1)),n.length<2||n.charAt(0)!==n.slice(-1))throw new N(`\\verb assertion failed --
|
|
263
|
-
please report what input caused this bug`);return n=n.slice(1,-1),{type:`verb`,mode:`text`,body:n,star:r}}Object.prototype.hasOwnProperty.call(Os,t[0])&&!$n[this.mode][t[0]]&&(this.settings.strict&&this.mode===`math`&&this.settings.reportNonstrict(`unicodeTextInMathMode`,`Accented Unicode text character "`+t[0]+`" used in math mode`,e),t=Os[t[0]]+t.slice(1));var i=ds.exec(t);i&&(t=t.substring(0,i.index),t===`i`?t=`ı`:t===`j`&&(t=`ȷ`));var a;if($n[this.mode][t]){this.settings.strict&&this.mode===`math`&&xr.includes(t)&&this.settings.reportNonstrict(`unicodeTextInMathMode`,`Latin-1/Unicode text character "`+t[0]+`" used in math mode`,e);var o=$n[this.mode][t].group,s=fo.range(e);a=oa(o)?{type:`atom`,mode:this.mode,family:o,loc:s,text:t}:{type:o,mode:this.mode,loc:s,text:t}}else if(t.charCodeAt(0)>=128)this.settings.strict&&(ln(t.charCodeAt(0))?this.mode===`math`&&this.settings.reportNonstrict(`unicodeTextInMathMode`,`Unicode text character "`+t[0]+`" used in math mode`,e):this.settings.reportNonstrict(`unknownSymbol`,`Unrecognized Unicode character "`+t[0]+`"`+(` (`+t.charCodeAt(0)+`)`),e)),a={type:`textord`,mode:`text`,loc:fo.range(e),text:t};else return null;if(this.consume(),i)for(var c=0;c<i[0].length;c++){var l=i[0][c];if(!Ds[l])throw new N(`Unknown accent ' `+l+`'`,e);var u=Ds[l][this.mode]||Ds[l].text;if(!u)throw new N(`Accent `+l+` unsupported in `+this.mode+` mode`,e);a={type:`accent`,mode:this.mode,loc:fo.range(e),label:u,isStretchy:!1,isShifty:!0,base:a}}return a}};ks.endOfExpression=new Set([`}`,`\\endgroup`,`\\end`,`\\right`,`&`]);var As=function(e,t){if(!(typeof e==`string`||e instanceof String))throw TypeError(`KaTeX can only parse string typed expression`);var n=new ks(e,t);delete n.gullet.macros.current[`\\df@tag`];var r=n.parse();if(delete n.gullet.macros.current[`\\current@color`],delete n.gullet.macros.current[`\\color`],n.gullet.macros.get(`\\df@tag`)){if(!t.displayMode)throw new N(`\\tag works only in display equations`);r=[{type:`tag`,mode:`text`,body:r,tag:n.subparse([new po(`\\df@tag`)])}]}return r},js=function(e,t,n){t.textContent=``;var r=Fs(e,n).toNode();t.appendChild(r)};typeof document<`u`&&document.compatMode!==`CSS1Compat`&&(typeof console<`u`&&console.warn(`Warning: KaTeX doesn't work in quirks mode. Make sure your website has a suitable doctype.`),js=function(){throw new N(`KaTeX doesn't work in quirks mode.`)});var Ms=function(e,t){return Fs(e,t).toMarkup()},Ns=function(e,t){return As(e,new Ht(t))},Ps=function(e,t,n){if(n.throwOnError||!(e instanceof N))throw e;var r=K([`katex-error`],[new zn(t)]);return r.setAttribute(`title`,e.toString()),r.setAttribute(`style`,`color:`+n.errorColor),r},Fs=function(e,t){var n=new Ht(t);try{return Ji(As(e,n),e,n)}catch(t){return Ps(t,e,n)}},Is={version:`0.18.7`,render:js,renderToString:Ms,ParseError:N,SETTINGS_SCHEMA:Rt,__parse:Ns,__renderToDomTree:Fs,__renderToHTMLTree:function(e,t){var n=new Ht(t);try{return Yi(As(e,n),e,n)}catch(t){return Ps(t,e,n)}},__setFontMetrics:Yn,__defineSymbol:I,__defineFunction:q,__defineMacro:Z,__domTree:{Span:Fn,Anchor:In,SymbolNode:zn,SvgNode:Bn,PathNode:Vn,LineNode:Hn}};let Ls=new Map;function Rs(e,t=!1){let n=`${t?`D`:`I`}${e}`,r=Ls.get(n);if(r===void 0){try{r=Is.renderToString(String(e),{displayMode:t,throwOnError:!1,strict:`ignore`,trust:!1,maxSize:20,maxExpand:500,output:`htmlAndMathml`})}catch{r=null}Ls.size>2e3&&Ls.clear(),Ls.set(n,r)}return r}function zs({tex:e,display:t=!1}){let n=Rs(e,t);return n===null?(0,i.jsx)(`code`,{children:e}):(0,i.jsx)(`span`,{className:t?`aha-tex aha-tex-display`:`aha-tex`,dangerouslySetInnerHTML:{__html:n}})}let Bs=`#2b2b2b`,Vs=`#e08a1e`,Q=e=>e.toFixed(1);function Hs(e){try{let t=He(e);return{compiled:t,bounds:Ke(e,t),labels:Ye(e)}}catch{return null}}function Us(e,t,n){let r=0,i=1,a=t[0]-e[0],o=t[1]-e[1];for(let[t,s]of[[-a,e[0]-n.left],[a,n.right-e[0]],[-o,e[1]-n.top],[o,n.bottom-e[1]]])if(t===0){if(s<0)return null}else{let e=s/t;if(t<0){if(e>i)return null;e>r&&(r=e)}else{if(e<r)return null;e<i&&(i=e)}}return[[e[0]+r*a,e[1]+r*o],[e[0]+i*a,e[1]+i*o]]}function Ws(e,t){let n=[],r=null,i=t.bottom-t.top;for(let a=1;a<e.length;a+=1){let o=e[a-1],s=e[a];if(!o.every(Number.isFinite)||!s.every(Number.isFinite)){r=null;continue}let c=o[1]<t.top-i&&s[1]>t.bottom+i||s[1]<t.top-i&&o[1]>t.bottom+i?null:Us(o,s,t);if(!c){r=null;continue}let[l,u]=c,d=r?.[r.length-1];(!d||Math.abs(d[0]-l[0])>.05||Math.abs(d[1]-l[1])>.05)&&(r=[l],n.push(r)),r.push(u)}return n.filter(e=>e.length>1)}let Gs=e=>e.map(e=>e.map(([e,t],n)=>`${n?`L`:`M`}${Q(e)} ${Q(t)}`).join(` `)).join(` `);function Ks(e,t){for(let n of[Math.PI/4,Math.PI/2,Math.PI,2*Math.PI,4*Math.PI]){let r=Math.ceil(e/n-1e-9),i=Math.floor(t/n+1e-9);if(i-r+1<=9){let e=[];for(let t=r;t<=i;t+=1)e.push(t*n);return e}}return bt(e,t)}let qs=e=>Je(Math.abs(e)<1e-12?0:e),Js=(e,t)=>[...String(e)].reduce((e,n)=>e+(/[\u2E80-\uFFFF]/u.test(n)?t*1.05:t*.58),0);function Ys(e,t=Ue(e),{width:n=420,height:r=290,prepared:i=Hs(e)}={}){if(!i)return``;let a=e.params.map((e,n)=>Math.min(e.max,Math.max(e.min,Number.isFinite(t[n])?t[n]:e.value))),{x:{min:o,max:s},y:{min:c,max:l}}=i.bounds,u=e.fns.map((e,t)=>e.name||i.labels[t]),d=[];if(e.fns.length>1){let e=0,t=36;u.forEach((r,i)=>{let a=24+Js(r,13);t+a>n-12&&t>36&&(e+=1,t=36),d.push({index:i,name:r,row:e,x:t}),t+=a+16})}let f=d.length?d[d.length-1].row+1:0,p={top:(e.title?28:0)+f*19+20,right:30,bottom:32,left:40};if(e.equal){let e=p.top+p.bottom+(n-p.left-p.right)*(l-c)/(s-o);r=Math.round(Math.min(440,Math.max(220,e)));let t=n-p.left-p.right,i=r-p.top-p.bottom,a=Math.min(t/(s-o),i/(l-c)),[u,d]=[(o+s)/2,(c+l)/2];[o,s]=[u-t/a/2,u+t/a/2],[c,l]=[d-i/a/2,d+i/a/2]}let m={left:p.left,right:n-p.right,top:p.top,bottom:r-p.bottom},h=e=>m.left+(e-o)/(s-o)*(m.right-m.left),g=e=>m.bottom-(e-c)/(l-c)*(m.bottom-m.top),_=([e,t])=>[h(e),g(t)],v=e=>gt[e%gt.length],y=[],b=[],x=(e,t,n,{size:r=13,anchor:i=`middle`,fill:a=_t,italic:o=!1,weight:s}={})=>{b.push(`<text x="${Q(e)}" y="${Q(t)}" font-size="${r}" text-anchor="${i}" fill="${a}"${o?` font-style="italic"`:``}${s?` font-weight="${s}"`:``}>${yt(n)}</text>`)},S=c<=0&&l>=0?g(0):c>0?m.bottom:m.top,C=o<=0&&s>=0?h(0):o>0?m.left:m.right;y.push(`<line x1="${Q(m.left-4)}" y1="${Q(S)}" x2="${Q(m.right+14)}" y2="${Q(S)}" stroke="${_t}" stroke-width="1.5" stroke-linecap="round"/>`),y.push(`<path d="M${Q(m.right+16)} ${Q(S)} l-9 -4 l2 4 l-2 4 Z" fill="${_t}" stroke="${_t}" stroke-width="1" stroke-linejoin="round"/>`),y.push(`<line x1="${Q(C)}" y1="${Q(m.bottom+4)}" x2="${Q(C)}" y2="${Q(m.top-10)}" stroke="${_t}" stroke-width="1.5" stroke-linecap="round"/>`),y.push(`<path d="M${Q(C)} ${Q(m.top-12)} l-4 9 l4 -2 l4 2 Z" fill="${_t}" stroke="${_t}" stroke-width="1" stroke-linejoin="round"/>`),x(m.right+16,S<m.top+16?S+18:S-8,e.xLabel||`x`,{size:15,italic:!e.xLabel,anchor:`end`}),x(C+8,m.top-2,e.yLabel||`y`,{size:15,italic:!e.yLabel,anchor:`start`});let w=o<=0&&s>=0&&c<=0&&l>=0;w&&x(C-8,S+17,`O`,{size:13,italic:!0});let T=(e.xPi?Ks(o,s):bt(o,s,6)).filter(e=>e>=o-1e-9&&e<=s+1e-9);for(let e of T){if(w&&Math.abs(e)<1e-12)continue;let t=h(e);Math.abs(t-C)<3&&!w||(y.push(`<line x1="${Q(t)}" y1="${Q(S-3)}" x2="${Q(t)}" y2="${Q(S+3)}" stroke="${_t}" stroke-width="1.2"/>`),x(t,S+18,qs(e),{size:12.5}))}for(let e of bt(c,l,5).filter(e=>e>=c-1e-9&&e<=l+1e-9)){if(w&&Math.abs(e)<1e-12)continue;let t=g(e);y.push(`<line x1="${Q(C-3)}" y1="${Q(t)}" x2="${Q(C+3)}" y2="${Q(t)}" stroke="${_t}" stroke-width="1.2"/>`),x(C-6,t+4.5,qs(e),{size:12.5,anchor:`end`})}let E=We(e,i.compiled,a,{min:o,max:s}),D=e=>i.compiled[e];for(let t of e.shades){let e=[],n=[];for(let r=0;r<=120;r+=1){let i=t.from+(t.to-t.from)*r/120,o=D(t.fn).y(i,a),s=t.fn2===void 0?0:D(t.fn2).y(i,a);if(!Number.isFinite(o)||!Number.isFinite(s))continue;let u=e=>Math.min(l,Math.max(c,e));e.push([h(i),g(u(o))]),n.push([h(i),g(u(s))])}if(e.length<2)continue;let r=[...e,...n.reverse()].map(([e,t],n)=>`${n?`L`:`M`}${Q(e)} ${Q(t)}`).join(` `);if(y.push(`<path d="${r} Z" fill="${v(t.fn)}" fill-opacity="0.18" stroke="none"/>`),t.label){let r=Math.floor(e.length/2),i=e[r][0];Math.abs(i-C)<28&&(i=C+28),x(i,Math.min(m.bottom-6,e[r][1]+(n[r][1]-e[r][1])*.6+4),t.label,{size:13,fill:v(t.fn),weight:600})}}let ee=[];E.forEach((e,t)=>{let n=Ws(e.map(_),m);n.length&&y.push(`<path d="${Gs(n)}" fill="none" stroke="${v(t)}" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/>`);let r=n[n.length-1];ee.push(r?r[r.length-1]:null)});for(let t of e.lines)if(t.x!==void 0){if(t.x<o||t.x>s)continue;let e=h(t.x);y.push(`<line x1="${Q(e)}" y1="${Q(m.top)}" x2="${Q(e)}" y2="${Q(m.bottom)}" stroke="${Bs}" stroke-opacity="0.55" stroke-width="1.3" stroke-dasharray="6 5"/>`),t.label&&x(e+5,m.top+12,t.label,{size:13,anchor:`start`})}else{if(t.y<c||t.y>l)continue;let e=g(t.y);y.push(`<line x1="${Q(m.left)}" y1="${Q(e)}" x2="${Q(m.right)}" y2="${Q(e)}" stroke="${Bs}" stroke-opacity="0.55" stroke-width="1.3" stroke-dasharray="6 5"/>`),t.label&&x(m.right-2,e-5,t.label,{size:13,anchor:`end`})}for(let t of e.tangents){let e=D(t.fn),n=e.y(t.x,a),r=j(e,t.x,a,s-o);if(!Number.isFinite(n)||!Number.isFinite(r))continue;let i=(s-o)*.24,c=Us(_([t.x-i,n-r*i]),_([t.x+i,n+r*i]),m);if(!c)continue;y.push(`<line x1="${Q(c[0][0])}" y1="${Q(c[0][1])}" x2="${Q(c[1][0])}" y2="${Q(c[1][1])}" stroke="${Vs}" stroke-width="1.8" stroke-linecap="round"/>`);let[l,u]=_([t.x,n]);if(l>=m.left&&l<=m.right&&u>=m.top&&u<=m.bottom&&y.push(`<circle cx="${Q(l)}" cy="${Q(u)}" r="3.2" fill="${Vs}"/>`),t.label){let[n,r]=c[1],i=g(e.y(o+(n-m.left)/(m.right-m.left)*(s-o),a)),l=Number.isFinite(i)?i<r:!1,u=Js(t.label,13),d=l?Math.min(m.bottom-4,r+14):Math.max(m.top+12,r-6);n+6+u<=m.right+24?x(n+6,d,t.label,{size:13,anchor:`start`,fill:Vs}):x(n-6,l?Math.min(m.bottom-4,r+28):d,t.label,{size:13,anchor:`end`,fill:Vs})}}for(let t of e.points){let e=t.y??D(t.fn).y(t.x,a);if(!Number.isFinite(e))continue;let[n,r]=_([t.x,e]);if(!(n<m.left-1||n>m.right+1||r<m.top-1||r>m.bottom+1)&&(y.push(`<circle cx="${Q(n)}" cy="${Q(r)}" r="3.8" fill="${t.fn===void 0?_t:v(t.fn)}"/>`),t.label)){let e=n>m.right-90;x(n+(e?-7:7),r-8<m.top+10?r+18:r-8,t.label,{size:13,anchor:e?`end`:`start`})}}for(let t of d){let n=(e.title?28:0)+12+t.row*18;y.push(`<rect x="${Q(t.x)}" y="${Q(n-6)}" width="16" height="4" rx="2" fill="${v(t.index)}"/>`),x(t.x+22,n,t.name,{size:13,anchor:`start`})}if(!d.length&&ee[0]){let[e,t]=ee[0],n=e>m.left+(m.right-m.left)*.55;x(n?Math.min(e-4,m.right-2):e+6,Math.max(m.top+12,Math.min(m.bottom-6,t-10)),u[0],{size:14,anchor:n?`end`:`start`,fill:v(0)})}let te=e.title?`<text x="${n/2}" y="20" font-size="15" text-anchor="middle" fill="${_t}" font-weight="600">${yt(e.title)}</text>`:``;return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${n} ${r}" width="${n}" height="${r}" font-family="${yt(vt)}">${y.join(``)}${te}${b.join(``)}</svg>`}let Xs=new Set([`svg`,`g`,`path`,`line`,`polyline`,`polygon`,`rect`,`circle`,`ellipse`,`text`,`tspan`,`textPath`,`defs`,`marker`,`lineargradient`,`radialgradient`,`stop`,`title`,`desc`,`clippath`,`mask`,`pattern`,`use`,`symbol`]),Zs=new Set(`xmlns.viewbox.width.height.x.y.x1.y1.x2.y2.cx.cy.r.rx.ry.d.points.transform.fill.stroke.stroke-width.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.opacity.fill-opacity.stroke-opacity.fill-rule.clip-rule.font-size.font-family.font-weight.font-style.text-anchor.dominant-baseline.alignment-baseline.letter-spacing.text-decoration.dx.dy.rotate.marker-start.marker-mid.marker-end.refx.refy.markerwidth.markerheight.markerunits.orient.offset.stop-color.stop-opacity.gradientunits.gradienttransform.fx.fy.id.clip-path.mask.preserveaspectratio.vector-effect.patternunits.patterncontentunits.href.xlink:href.startoffset.textlength.lengthadjust.style.class`.split(`.`)),Qs=new Set([`fill`,`stroke`,`stroke-width`,`stroke-dasharray`,`stroke-linecap`,`stroke-linejoin`,`opacity`,`fill-opacity`,`stroke-opacity`,`font-size`,`font-family`,`font-weight`,`font-style`,`text-anchor`,`dominant-baseline`,`letter-spacing`]);function $s(e,t){let n=String(t).toLowerCase();return/javascript:|data:|expression\(|@import|<|>/u.test(n)||n.includes(`url(`)&&!/^url\(\s*#[\w-]+\s*\)$/u.test(n.trim())||(e===`href`||e===`xlink:href`)&&!/^#[\w-]+$/u.test(String(t).trim())?null:t}function ec(e){let t=[];for(let n of String(e).split(`;`)){let[e,...r]=n.split(`:`),i=e?.trim().toLowerCase(),a=r.join(`:`).trim();!i||!a||!Qs.has(i)||$s(i,a)!==null&&t.push(`${i}:${a}`)}return t.join(`;`)}function tc(e){for(let t of[...e.childNodes]){if(t.nodeType===8){t.remove();continue}if(t.nodeType!==1)continue;let e=String(t.localName||t.nodeName).toLowerCase();if(!Xs.has(e)){t.remove();continue}for(let e of[...t.attributes]){let n=e.name.toLowerCase();if(n.startsWith(`on`)||!Zs.has(n)){t.removeAttribute(e.name);continue}if(n===`style`){let n=ec(e.value);n?t.setAttribute(`style`,n):t.removeAttribute(`style`);continue}$s(n,e.value)===null&&t.removeAttribute(e.name)}tc(t)}}function nc(e,{DOMParserImpl:t=globalThis.DOMParser,XMLSerializerImpl:n=globalThis.XMLSerializer}={}){if(typeof e!=`string`||!/^\s*<svg[\s>]/iu.test(e)||e.length>64*1024||!t)return null;let r;try{r=new t().parseFromString(e,`image/svg+xml`)}catch{return null}let i=r?.documentElement;if(!i||String(i.localName||i.nodeName).toLowerCase()!==`svg`||r.getElementsByTagName(`parsererror`).length)return null;for(let e of[...i.attributes]){let t=e.name.toLowerCase();(t.startsWith(`on`)||!Zs.has(t)||$s(t,e.value)===null)&&i.removeAttribute(e.name)}i.getAttribute(`xmlns`)||i.setAttribute(`xmlns`,`http://www.w3.org/2000/svg`),tc(i);let a=n?new n().serializeToString(i):i.outerHTML;return/^\s*<svg[\s>]/iu.test(a)?a:null}function rc(e,t=`light`){let n=String(e??``),r=t===`dark`?`dark`:`light`,i=`<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data: blob:; font-src data:; media-src data: blob:"><meta charset="utf-8"><meta name="color-scheme" content="${r}"><style>:root{color-scheme:${r}}html,body{margin:0;background:transparent;overflow:hidden}canvas,svg{max-width:100%;height:auto}</style>`;return/<head[^>]*>/iu.test(n)?n.replace(/<head[^>]*>/iu,e=>`${e}${i}`):/<html[^>]*>/iu.test(n)?n.replace(/<html[^>]*>/iu,e=>`${e}<head>${i}</head>`):`<!doctype html><html><head>${i}</head><body>${n}</body></html>`}let ic=1.25;function ac(e){return Math.min(3,Math.max(.05,Number(e)||1))}function oc(e,t,n,r){let i=ac(e.k*r),a=i/e.k;return{x:t-(t-e.x)*a,y:n-(n-e.y)*a,k:i}}function sc(e,t,{margin:n=24,maxZoom:r=3}={}){let i=ac(Math.min(r,(e.width-n*2)/Math.max(1,t.width),(e.height-n*2)/Math.max(1,t.height)));return{k:i,x:(e.width-t.width*i)/2-t.x*i,y:(e.height-t.height*i)/2-t.y*i}}function cc(e,t,{top:n=24,bottom:r=56}={}){let i=e.height-r;return t.height>i-n?n-t.top:t.top+t.height>i?i-(t.top+t.height):t.top<n?n-t.top:0}function lc(e,t,n,r=80){let i=n.width*e.k,a=n.height*e.k;return{...e,x:Math.min(t.width-r,Math.max(r-i,e.x)),y:Math.min(t.height-r,Math.max(r-a,e.y))}}function uc(e,t){let n=e.deltaMode===1?16:e.deltaMode===2?t:1;return{x:e.deltaX*n,y:e.deltaY*n}}function dc(e){return Math.exp(-Math.max(-120,Math.min(120,e))*.0045)}function fc({room:e,natural:t,widest:n=t,floor:r=.7}){if(!(e>0)||!(t>e))return{mode:`fit`,scale:1};let i=Math.min(1,e/n),a=e/t;return a>=r*i?{mode:`shrink`,scale:a}:{mode:`wrap`,scale:i}}function pc(e){return[...e.querySelectorAll(`.katex-html > .katex-base, .katex-html > .katex-tag`)]}function mc(e){e.style.fontSize=``,e.removeAttribute(`data-fit`);let t=e.clientWidth,n=pc(e).map(e=>e.getBoundingClientRect().width),r=fc({room:t,natural:e.scrollWidth,widest:Math.max(0,...n)});if(r.mode===`fit`)return r.mode;e.dataset.fit=r.mode;let i=(Number.parseFloat(getComputedStyle(e).fontSize)||20)*r.scale;r.scale<1&&(e.style.fontSize=`${i}px`);for(let t=0;t<3&&e.scrollWidth>e.clientWidth;t+=1)i*=(e.clientWidth-1)/e.scrollWidth,e.style.fontSize=`${i}px`;return r.mode}function hc(e){let t=[],n=null;for(let r of e){if(!(r.right>r.left))continue;let e=t.at(-1);e&&r.left>=n.right-2&&r.top<e.bottom?(e.right=Math.max(e.right,r.right),e.top=Math.min(e.top,r.top),e.bottom=Math.max(e.bottom,r.bottom)):t.push({left:r.left,right:r.right,top:r.top,bottom:r.bottom}),n=r}return t}function gc(e){let t=e.getBoundingClientRect();return hc(pc(e).map(e=>{let n=e.getBoundingClientRect();return{left:n.left-t.left,right:n.right-t.left,top:n.top-t.top,bottom:n.bottom-t.top}}))}let _c=e=>`${Math.round(e*10)/10}px`;function vc(e,t){if(t>=1)return{clip:``,pen:null};if(!e.length)return{clip:`inset(0 ${Math.round((1-Math.max(0,t))*1e3)/10}% 0 0)`,pen:null};let n=e.reduce((e,t)=>e+(t.right-t.left),0),r=Math.max(0,t)*n;for(let[t,n]of e.entries()){let i=n.right-n.left;if(r>i&&t<e.length-1){r-=i;continue}let a=n.left+Math.min(i,r),o=t?_c((e[t-1].bottom+n.top)/2):`0`,s=t<e.length-1?_c((n.bottom+e[t+1].top)/2):`100%`;return{clip:`polygon(0 0, 100% 0, 100% ${o}, ${_c(a)} ${o}, ${_c(a)} ${s}, 0 ${s})`,pen:{x:a,y:n.bottom}}}return{clip:``,pen:null}}let yc=/\$[^$\n]+\$/gu,bc=/(\$[^$\n]+\$|\*\*(?:\$[^$\n]+\$|[^*\n])+?\*\*|==(?:\$[^$\n]+\$|=(?!=)|[^=\n])+?==)/gu;function xc(e,t,n){let r=0;for(let i of t.matchAll(yc))i.index>r&&e.push({kind:n,text:t.slice(r,i.index)}),e.push({kind:`math`,tex:i[0].slice(1,-1),style:n}),r=i.index+i[0].length;r<t.length&&e.push({kind:n,text:t.slice(r)})}function Sc(e){let t=[],n=String(e??``),r=0;for(let e of n.matchAll(bc)){e.index>r&&t.push({kind:`text`,text:n.slice(r,e.index)});let i=e[0];i.startsWith(`$`)?t.push({kind:`math`,tex:i.slice(1,-1)}):xc(t,i.slice(2,-2),i.startsWith(`**`)?`bold`:`mark`),r=e.index+i.length}return r<n.length&&t.push({kind:`text`,text:n.slice(r)}),t}function Cc(e){return e.kind===`math`?Math.min(10,Math.max(2,e.tex.length/2)):[...e.text].length}function wc(e){return e.reduce((e,t)=>e+Cc(t),0)}function Tc(e,t){let n=[],r=t;for(let t of e){if(r<=0)break;let e=Cc(t);if(t.kind===`math`){r>=e&&n.push(t),r-=e;continue}let i=[...t.text];i.length<=r?n.push(t):n.push({...t,text:i.slice(0,Math.max(0,Math.floor(r))).join(``)}),r-=i.length}return n}let Ec={alpha:`α`,beta:`β`,gamma:`γ`,delta:`δ`,epsilon:`ε`,varepsilon:`ε`,zeta:`ζ`,eta:`η`,theta:`θ`,vartheta:`ϑ`,iota:`ι`,kappa:`κ`,varkappa:`ϰ`,lambda:`λ`,mu:`μ`,nu:`ν`,xi:`ξ`,pi:`π`,varpi:`ϖ`,rho:`ρ`,varrho:`ϱ`,sigma:`σ`,varsigma:`ς`,tau:`τ`,upsilon:`υ`,phi:`φ`,varphi:`φ`,chi:`χ`,psi:`ψ`,omega:`ω`,Gamma:`Γ`,Delta:`Δ`,Theta:`Θ`,Lambda:`Λ`,Xi:`Ξ`,Pi:`Π`,Sigma:`Σ`,Upsilon:`Υ`,Phi:`Φ`,Psi:`Ψ`,Omega:`Ω`},Dc={cdot:`·`,times:`×`,div:`÷`,pm:`±`,mp:`∓`,ast:`∗`,star:`⋆`,bullet:`•`,oplus:`⊕`,otimes:`⊗`,odot:`⊙`,setminus:`∖`,backslash:`∖`,le:`≤`,leq:`≤`,leqslant:`≤`,ge:`≥`,geq:`≥`,geqslant:`≥`,lt:`<`,gt:`>`,neq:`≠`,ne:`≠`,approx:`≈`,equiv:`≡`,cong:`≅`,simeq:`≃`,sim:`∼`,propto:`∝`,ll:`≪`,gg:`≫`,doteq:`≐`,mid:`|`,vert:`|`,lvert:`|`,rvert:`|`,Vert:`‖`,lVert:`‖`,rVert:`‖`,parallel:`∥`,perp:`⊥`,to:`→`,rightarrow:`→`,longrightarrow:`→`,gets:`←`,leftarrow:`←`,longleftarrow:`←`,leftrightarrow:`↔`,longleftrightarrow:`↔`,Rightarrow:`⇒`,Longrightarrow:`⇒`,implies:`⇒`,Leftarrow:`⇐`,Longleftarrow:`⇐`,impliedby:`⇐`,Leftrightarrow:`⇔`,Longleftrightarrow:`⇔`,iff:`⇔`,mapsto:`↦`,longmapsto:`↦`,uparrow:`↑`,downarrow:`↓`,Uparrow:`⇑`,Downarrow:`⇓`,updownarrow:`↕`,nearrow:`↗`,searrow:`↘`,rightleftharpoons:`⇌`,leftrightharpoons:`⇋`,rightharpoonup:`⇀`,hookrightarrow:`↪`,in:`∈`,notin:`∉`,ni:`∋`,subset:`⊂`,subseteq:`⊆`,subsetneq:`⊊`,supset:`⊃`,supseteq:`⊇`,cup:`∪`,cap:`∩`,emptyset:`∅`,varnothing:`∅`,forall:`∀`,exists:`∃`,nexists:`∄`,neg:`¬`,lnot:`¬`,land:`∧`,wedge:`∧`,lor:`∨`,vee:`∨`,therefore:`∴`,because:`∵`,sum:`Σ`,prod:`Π`,int:`∫`,iint:`∬`,iiint:`∭`,oint:`∮`,partial:`∂`,nabla:`∇`,infty:`∞`,hbar:`ħ`,ell:`ℓ`,aleph:`ℵ`,Re:`ℜ`,Im:`ℑ`,degree:`°`,circ:`°`,prime:`′`,angle:`∠`,measuredangle:`∡`,triangle:`△`,square:`□`,ldots:`…`,dots:`…`,dotsc:`…`,cdots:`⋯`,dotsb:`⋯`,vdots:`⋮`,ddots:`⋱`,langle:`⟨`,rangle:`⟩`,lfloor:`⌊`,rfloor:`⌋`,lceil:`⌈`,rceil:`⌉`,lbrace:`{`,rbrace:`}`,lbrack:`[`,rbrack:`]`,colon:`:`},Oc={0:`⁰`,1:`¹`,2:`²`,3:`³`,4:`⁴`,5:`⁵`,6:`⁶`,7:`⁷`,8:`⁸`,9:`⁹`,"+":`⁺`,"-":`⁻`,"=":`⁼`,"(":`⁽`,")":`⁾`,n:`ⁿ`,i:`ⁱ`,x:`ˣ`,T:`ᵀ`},kc={0:`₀`,1:`₁`,2:`₂`,3:`₃`,4:`₄`,5:`₅`,6:`₆`,7:`₇`,8:`₈`,9:`₉`,"+":`₊`,"-":`₋`,"=":`₌`,"(":`₍`,")":`₎`,a:`ₐ`,e:`ₑ`,i:`ᵢ`,n:`ₙ`,x:`ₓ`,k:`ₖ`,t:`ₜ`},Ac=new Set(`sin.cos.tan.cot.sec.csc.arcsin.arccos.arctan.sinh.cosh.tanh.coth.log.ln.lg.exp.lim.limsup.liminf.max.min.sup.inf.det.dim.ker.deg.arg.gcd.hom.Pr`.split(`.`)),jc={xrightarrow:`→`,xleftarrow:`←`,xRightarrow:`⇒`,xLeftarrow:`⇐`,xleftrightarrow:`↔`,xLeftrightarrow:`⇔`,xrightleftharpoons:`⇌`,xleftrightharpoons:`⇋`,xhookrightarrow:`↪`,xmapsto:`↦`,xlongequal:`=`,xtofrom:`⇄`},Mc={bar:`̄`,overline:`̅`,vec:`⃗`,overrightarrow:`⃗`,overleftarrow:`⃖`,overleftrightarrow:`⃡`,hat:`̂`,widehat:`̂`,tilde:`̃`,widetilde:`̃`,check:`̌`,breve:`̆`,acute:`́`,grave:`̀`,dot:`̇`,ddot:`̈`,mathring:`̊`},Nc={C:`ℂ`,H:`ℍ`,N:`ℕ`,P:`ℙ`,Q:`ℚ`,R:`ℝ`,Z:`ℤ`},Pc=new Set(`text.textrm.textbf.textit.textsf.texttt.textnormal.textup.emph.mathrm.mathbf.mathit.mathsf.mathtt.mathcal.mathscr.mathfrak.mathnormal.boldsymbol.bm.pmb.mbox.hbox.boxed.fbox.underline.cancel.bcancel.xcancel.sout.smash.mathop.mathord.mathrel.mathbin.mathpunct.mathopen.mathclose.mathinner.url`.split(`.`)),Fc=new Set([`label`,`color`,`phantom`,`hphantom`,`vphantom`,`hspace`,`hspace*`,`vspace`,`vspace*`,`mspace`,`mkern`,`kern`,`hskip`,`mskip`]),Ic={",":` `,":":` `,";":` `,">":` `," ":` `,"!":``,quad:` `,qquad:` `,enspace:` `,thinspace:` `,medspace:` `,thickspace:` `,space:` `,nobreakspace:` `},Lc=new Set([`displaystyle`,`textstyle`,`scriptstyle`,`scriptscriptstyle`,`limits`,`nolimits`,`notag`,`nonumber`,`hline`,`hdashline`,`allowbreak`,`nobreak`,`relax`,`strut`,`negthinspace`,`negmedspace`,`negthickspace`]),Rc=/^(?:left|right|middle|[bB]igg?[lrm]?)$/u,zc=new Set([`operatorname`,`tag`,`hspace`,`vspace`]),Bc={matrix:``,smallmatrix:``,array:``,darray:``,pmatrix:`()`,bmatrix:`[]`,Bmatrix:`{}`,vmatrix:`||`,Vmatrix:`‖‖`},Vc=/^(?:[\d.]+|[\p{L}\p{N}][\p{M}\p{Lm}′'⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎]*)$/u,Hc=(e,t)=>Object.hasOwn(e,t)?e[t]:void 0,Uc=e=>Vc.test(e)?e:`(${e})`,Wc=(e,t)=>[...e.replace(/\s+/gu,``)].map(e=>t[e]??e).join(``),Gc=(e,t)=>{let n=t.map(e=>e.trim()).filter(Boolean).join(`, `);return n?`${e}(${n})`:e};function Kc(e,t){return e.map(e=>e.trim()).filter(Boolean).reduce((e,n)=>e?`${e}${/[,,;;::]$/u.test(e)?` `:t}${n}`:n,``)}function qc(e,t){return!e.includes(``)&&!e.includes(``)?e:Kc(e.split(``).map(e=>Kc(e.split(``),t)),`; `)}function Jc(e){let t=0,n=``,r=()=>{for(;/\s/u.test(e[t]??``);)t+=1},i=(n,r)=>{let i=t+1,a=0;for(;t<e.length;t+=1)if(e[t]===`\\`)t+=1;else if(e[t]===n)a+=1;else if(e[t]===r&&--a===0)return e.slice(i,t++);return e.slice(i)},a=()=>{let n=t;for(;/[a-zA-Z]/u.test(e[t]??``);)t+=1;return t===n?e[t++]??``:(e[t]===`*`&&zc.has(e.slice(n,t))&&(t+=1),e.slice(n,t))},o=()=>{if(r(),t>=e.length)return``;if(e[t]===`{`)return qc(Jc(i(`{`,`}`)),` `);if(e[t]===`\\`)return t+=1,l(a());let n=String.fromCodePoint(e.codePointAt(t));return t+=n.length,n},s=()=>(r(),e[t]===`[`?qc(Jc(i(`[`,`]`)),` `):``),c=()=>{let n=o().trim();/^(?:d?array|subarray|alignat\*?|alignedat)$/u.test(n)&&o();let r=`\\begin{${n}}`,i=`\\end{${n}}`,a=1,s=t,c=e.length;for(;s<e.length;){let t=e.indexOf(i,s);if(t<0)break;let n=e.indexOf(r,s);if(n>=0&&n<t){a+=1,s=n+r.length;continue}if(--a,!a){c=t;break}s=t+i.length}let l=Jc(e.slice(t,c));t=Math.min(e.length,c+i.length);let u=Hc(Bc,n);return u===void 0?qc(l,/^d?r?cases\*?$/u.test(n)?`, `:` `):`${u.charAt(0)}${qc(l,`, `)}${u.charAt(1)}`},l=n=>{let i=Hc(Ic,n)??Hc(Ec,n)??Hc(Dc,n);if(i!==void 0)return i;if(Lc.has(n))return``;if(Rc.test(n))return r(),e[t]===`.`&&(t+=1),``;if(Ac.has(n))return`${n}`;let a=Hc(jc,n);if(a){let e=s();return Gc(a,[o(),e])}let l=Hc(Mc,n);if(l)return[...o()].map(e=>/\s/u.test(e)?e:`${e}${l}`).join(``);if(Pc.has(n))return o();if(Fc.has(n)){let n=/^\s*-?[\d.]+\s*(?:em|ex|mu|pt|px|cm|mm|in|bp|pc|dd|cc|sp)/u.exec(e.slice(t));return n?t+=n[0].length:o(),` `}switch(n){case`frac`:case`dfrac`:case`tfrac`:case`cfrac`:{let e=o();return`${Uc(e)}/${Uc(o())}`}case`binom`:case`dbinom`:case`tbinom`:return`C(${o()}, ${o()})`;case`sqrt`:{let e=s();return`${Wc(e,Oc)}√${Uc(o())}`}case`overset`:case`underset`:case`stackrel`:{let e=o();return Gc(o(),[e])}case`overbrace`:case`underbrace`:{let n=o();return r(),e[t]!==`^`&&e[t]!==`_`?n:(t+=1,Gc(n,[o()]))}case`mathbb`:case`Bbb`:return[...o()].map(e=>Nc[e]??e).join(``);case`operatorname`:case`operatorname*`:return`${o()}`;case`textcolor`:case`colorbox`:case`href`:return o(),o();case`fcolorbox`:return o(),o(),o();case`tag`:return` (${o()})`;case`tag*`:return` ${o()}`;case`pmod`:return` (mod ${o()})`;case`pod`:return` (${o()})`;case`bmod`:case`mod`:return` mod `;case`not`:return`${o()}\u0338`;case`begin`:return c();case`end`:return o(),``;case`\\`:case`cr`:case`newline`:return s(),``;case`|`:return`‖`;default:return n.length===1&&!/[a-zA-Z]/u.test(n)?n:``}};for(;t<e.length;){let r=e[t];r===`\\`?(t+=1,n+=l(a())):r===`{`?n+=Jc(i(`{`,`}`)):r===`^`||r===`_`?(t+=1,n+=Wc(o(),r===`^`?Oc:kc)):(t+=1,n+=r===`&`?``:r===`~`?` `:r===`}`?``:r)}return n}function Yc(e){return qc(Jc(String(e??``)),` `).replace(/\u0001(?=[\p{Lu}\p{Ll}\p{Lo}\d])/gu,` `).replace(/[\u0001-\u0003]/gu,``).replace(/\s+/gu,` `).trim().normalize(`NFC`)}function Xc(e){return Sc(e).map(e=>e.kind===`math`?Yc(e.tex):e.text).join(``)}let Zc=new Set([`。`,`!`,`?`,`!`,`?`,`;`,`;`]),Qc=new Set([`”`,`’`,`」`,`』`,`)`,`)`,`】`,`]`,`"`,`'`,`…`]);function $c(e){let t=String(e??``),n=[],r=``,i=()=>{let e=r.trim();e&&n.push(e),r=``},a=0,o=e=>{let t=[...e];for(let e=0;e<t.length;e+=1){let n=t[e];if(n===`
|
|
264
|
-
`){i();continue}r+=n;let a=n===`.`&&(e+1===t.length||/\s/u.test(t[e+1])&&/[\p{Lu}\p{Lo}]/u.test(t[e+2]??``));if(!(!
|
|
265
|
-
`).length*.8+1);case`svg`:case`chart`:return 8.5;case`plot`:return(e.equal?10:9)+e.params.length*1.1;case`anim`:return Math.round(e.height/34);default:return 0}}function
|
|
261
|
+
?)[ \r ]*`,ds=`[̀-ͯ]`,fs=RegExp(ds+`+$`),ps=`(`+os+`+)|`+(us+`|`)+`([!-\\[\\]-‧-豈-]`+(ds+`*`)+`|[\ud800-\udbff][\udc00-\udfff]`+(ds+`*`)+`|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5`+(`|`+ls)+(`|`+cs+`)`),ms=class{constructor(e,t){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=t,this.tokenRegex=new RegExp(ps,`g`),this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){var e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new mo(`EOF`,new po(this,t,t));var n=this.tokenRegex.exec(e);if(n===null||n.index!==t)throw new P(`Unexpected character: '`+e[t]+`'`,new mo(e[t],new po(this,t,t+1)));var r=n[6]||n[3]||(n[2]?`\\ `:` `);if(this.catcodes[r]===14){var i=e.indexOf(`
|
|
262
|
+
`,this.tokenRegex.lastIndex);return i===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict(`commentAtEnd`,`% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)`)):this.tokenRegex.lastIndex=i+1,this.lex()}return new mo(r,new po(this,t,this.tokenRegex.lastIndex))}},hs=class{constructor(e,t){e===void 0&&(e={}),t===void 0&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new P(`Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug`);var e=this.undefStack.pop();for(var t of Object.keys(e))e[t]===void 0?delete this.current[t]:this.current[t]=e[t]}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return Object.prototype.hasOwnProperty.call(this.current,e)||Object.prototype.hasOwnProperty.call(this.builtins,e)}get(e){if(Object.prototype.hasOwnProperty.call(this.current,e))return this.current[e];if(Object.prototype.hasOwnProperty.call(this.builtins,e))return this.builtins[e]}set(e,t,n){if(n===void 0&&(n=!1),n){for(var r=0;r<this.undefStack.length;r++)delete this.undefStack[r][e];this.undefStack.length>0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var i=this.undefStack[this.undefStack.length-1];i&&!Object.prototype.hasOwnProperty.call(i,e)&&(i[e]=Object.prototype.hasOwnProperty.call(this.current,e)?this.current[e]:void 0)}t==null?delete this.current[e]:this.current[e]=t}},gs=fo;Z(`\\noexpand`,function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}}),Z(`\\expandafter`,function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}}),Z(`\\@firstoftwo`,function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}}),Z(`\\@secondoftwo`,function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}}),Z(`\\@ifnextchar`,function(e){var t=e.consumeArgs(3);e.consumeSpaces();var n=e.future();return t[0].length===1&&t[0][0].text===n.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}}),Z(`\\@ifstar`,`\\@ifnextchar *{\\@firstoftwo{#1}}`),Z(`\\TextOrMath`,function(e){var t=e.consumeArgs(2);return e.mode===`text`?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}});var _s={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};Z(`\\char`,function(e){var t=e.popToken(),n,r=0;if(t.text===`'`)n=8,t=e.popToken();else if(t.text===`"`)n=16,t=e.popToken();else if(t.text==="`")if(t=e.popToken(),t.text[0]===`\\`)r=t.text.charCodeAt(1);else if(t.text===`EOF`)throw new P("\\char` missing argument");else r=t.text.charCodeAt(0);else n=10;if(n){if(r=_s[t.text],r==null||r>=n)throw new P(`Invalid base-`+n+` digit `+t.text);for(var i;(i=_s[e.future().text])!=null&&i<n;)r*=n,r+=i,e.popToken()}return`\\@char{`+r+`}`});var vs=(e,t,n,r)=>{var i=e.consumeArg().tokens;if(i.length!==1)throw new P(`\\newcommand's first argument must be a macro name`);var a=i[0].text,o=e.isDefined(a);if(o&&!t)throw new P(`\\newcommand{`+a+`} attempting to redefine `+(a+`; use \\renewcommand`));if(!o&&!n)throw new P(`\\renewcommand{`+a+`} when command `+a+` does not yet exist; use \\newcommand`);var s=0;if(i=e.consumeArg().tokens,i.length===1&&i[0].text===`[`){for(var c=``,l=e.expandNextToken();l.text!==`]`&&l.text!==`EOF`;)c+=l.text,l=e.expandNextToken();if(!c.match(/^\s*[0-9]+\s*$/))throw new P(`Invalid number of arguments: `+c);s=parseInt(c),i=e.consumeArg().tokens}return o&&r||e.macros.set(a,{tokens:i,numArgs:s}),``};Z(`\\newcommand`,e=>vs(e,!1,!0,!1)),Z(`\\renewcommand`,e=>vs(e,!0,!1,!1)),Z(`\\providecommand`,e=>vs(e,!0,!0,!0)),Z(`\\message`,e=>{var t=e.consumeArgs(1)[0];return console.log(t.reverse().map(e=>e.text).join(``)),``}),Z(`\\errmessage`,e=>{var t=e.consumeArgs(1)[0];return console.error(t.reverse().map(e=>e.text).join(``)),``}),Z(`\\show`,e=>{var t=e.popToken(),n=t.text;return console.log(t,e.macros.get(n),as[n],$n.math[n],$n.text[n]),``}),Z(`\\bgroup`,`{`),Z(`\\egroup`,`}`),Z(`~`,`\\nobreakspace`),Z(`\\lq`,"`"),Z(`\\rq`,`'`),Z(`\\aa`,`\\r a`),Z(`\\AA`,`\\r A`),Z(`\\textcopyright`,"\\html@mathml{\\textcircled{c}}{\\char`©}"),Z(`\\copyright`,`\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}`),Z(`\\textregistered`,"\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}"),Z(`ℬ`,`\\mathscr{B}`),Z(`ℰ`,`\\mathscr{E}`),Z(`ℱ`,`\\mathscr{F}`),Z(`ℋ`,`\\mathscr{H}`),Z(`ℐ`,`\\mathscr{I}`),Z(`ℒ`,`\\mathscr{L}`),Z(`ℳ`,`\\mathscr{M}`),Z(`ℛ`,`\\mathscr{R}`),Z(`ℭ`,`\\mathfrak{C}`),Z(`ℌ`,`\\mathfrak{H}`),Z(`ℨ`,`\\mathfrak{Z}`),Z(`\\Bbbk`,`\\Bbb{k}`),Z(`\\llap`,`\\mathllap{\\textrm{#1}}`),Z(`\\rlap`,`\\mathrlap{\\textrm{#1}}`),Z(`\\clap`,`\\mathclap{\\textrm{#1}}`),Z(`\\mathstrut`,`\\vphantom{(}`),Z(`\\underbar`,`\\underline{\\text{#1}}`),Z(`\\not`,`\\html@mathml{\\mathrel{\\mathrlap\\@not}\\nobreak}{\\char"338}`),Z(`\\neq`,"\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}"),Z(`\\ne`,`\\neq`),Z(`≠`,`\\neq`),Z(`\\notin`,"\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}"),Z(`∉`,`\\notin`),Z(`≘`,"\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}"),Z(`≙`,"\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}"),Z(`≚`,"\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}"),Z(`≛`,"\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}"),Z(`≝`,"\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}"),Z(`≞`,"\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}"),Z(`≟`,"\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}"),Z(`⟂`,`\\perp`),Z(`‼`,`\\mathclose{!\\mkern-0.8mu!}`),Z(`∌`,`\\notni`),Z(`⌜`,`\\ulcorner`),Z(`⌝`,`\\urcorner`),Z(`⌞`,`\\llcorner`),Z(`⌟`,`\\lrcorner`),Z(`©`,`\\copyright`),Z(`®`,`\\textregistered`),Z(`\\ulcorner`,`\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}`),Z(`\\urcorner`,`\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}`),Z(`\\llcorner`,`\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}`),Z(`\\lrcorner`,`\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}`),Z(`\\vdots`,`{\\varvdots\\rule{0pt}{15pt}}`),Z(`⋮`,`\\vdots`),Z(`\\varGamma`,`\\mathit{\\Gamma}`),Z(`\\varDelta`,`\\mathit{\\Delta}`),Z(`\\varTheta`,`\\mathit{\\Theta}`),Z(`\\varLambda`,`\\mathit{\\Lambda}`),Z(`\\varXi`,`\\mathit{\\Xi}`),Z(`\\varPi`,`\\mathit{\\Pi}`),Z(`\\varSigma`,`\\mathit{\\Sigma}`),Z(`\\varUpsilon`,`\\mathit{\\Upsilon}`),Z(`\\varPhi`,`\\mathit{\\Phi}`),Z(`\\varPsi`,`\\mathit{\\Psi}`),Z(`\\varOmega`,`\\mathit{\\Omega}`),Z(`\\substack`,`\\begin{subarray}{c}#1\\end{subarray}`),Z(`\\colon`,`\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax`),Z(`\\boxed`,`\\fbox{$\\displaystyle{#1}$}`),Z(`\\iff`,`\\DOTSB\\;\\Longleftrightarrow\\;`),Z(`\\implies`,`\\DOTSB\\;\\Longrightarrow\\;`),Z(`\\impliedby`,`\\DOTSB\\;\\Longleftarrow\\;`),Z(`\\dddot`,`{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}`),Z(`\\ddddot`,`{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}`);var ys={",":`\\dotsc`,"\\not":`\\dotsb`,"+":`\\dotsb`,"=":`\\dotsb`,"<":`\\dotsb`,">":`\\dotsb`,"-":`\\dotsb`,"*":`\\dotsb`,":":`\\dotsb`,"\\DOTSB":`\\dotsb`,"\\coprod":`\\dotsb`,"\\bigvee":`\\dotsb`,"\\bigwedge":`\\dotsb`,"\\biguplus":`\\dotsb`,"\\bigcap":`\\dotsb`,"\\bigcup":`\\dotsb`,"\\prod":`\\dotsb`,"\\sum":`\\dotsb`,"\\bigotimes":`\\dotsb`,"\\bigoplus":`\\dotsb`,"\\bigodot":`\\dotsb`,"\\bigsqcup":`\\dotsb`,"\\And":`\\dotsb`,"\\longrightarrow":`\\dotsb`,"\\Longrightarrow":`\\dotsb`,"\\longleftarrow":`\\dotsb`,"\\Longleftarrow":`\\dotsb`,"\\longleftrightarrow":`\\dotsb`,"\\Longleftrightarrow":`\\dotsb`,"\\mapsto":`\\dotsb`,"\\longmapsto":`\\dotsb`,"\\hookrightarrow":`\\dotsb`,"\\doteq":`\\dotsb`,"\\mathbin":`\\dotsb`,"\\mathrel":`\\dotsb`,"\\relbar":`\\dotsb`,"\\Relbar":`\\dotsb`,"\\xrightarrow":`\\dotsb`,"\\xleftarrow":`\\dotsb`,"\\DOTSI":`\\dotsi`,"\\int":`\\dotsi`,"\\oint":`\\dotsi`,"\\iint":`\\dotsi`,"\\iiint":`\\dotsi`,"\\iiiint":`\\dotsi`,"\\idotsint":`\\dotsi`,"\\DOTSX":`\\dotsx`},bs=new Set([`bin`,`rel`]);Z(`\\dots`,function(e){var t=`\\dotso`,n=e.expandAfterFuture().text;return n in ys?t=ys[n]:(n.slice(0,4)===`\\not`||n in $n.math&&bs.has($n.math[n].group))&&(t=`\\dotsb`),t});var xs={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};Z(`\\dotso`,function(e){return e.future().text in xs?`\\ldots\\,`:`\\ldots`}),Z(`\\dotsc`,function(e){var t=e.future().text;return t in xs&&t!==`,`?`\\ldots\\,`:`\\ldots`}),Z(`\\cdots`,function(e){return e.future().text in xs?`\\@cdots\\,`:`\\@cdots`}),Z(`\\dotsb`,`\\cdots`),Z(`\\dotsm`,`\\cdots`),Z(`\\dotsi`,`\\!\\cdots`),Z(`\\dotsx`,`\\ldots\\,`),Z(`\\DOTSI`,`\\relax`),Z(`\\DOTSB`,`\\relax`),Z(`\\DOTSX`,`\\relax`),Z(`\\tmspace`,`\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax`),Z(`\\,`,`\\tmspace+{3mu}{.1667em}`),Z(`\\thinspace`,`\\,`),Z(`\\>`,`\\mskip{4mu}`),Z(`\\:`,`\\tmspace+{4mu}{.2222em}`),Z(`\\medspace`,`\\:`),Z(`\\;`,`\\tmspace+{5mu}{.2777em}`),Z(`\\thickspace`,`\\;`),Z(`\\!`,`\\tmspace-{3mu}{.1667em}`),Z(`\\negthinspace`,`\\!`),Z(`\\negmedspace`,`\\tmspace-{4mu}{.2222em}`),Z(`\\negthickspace`,`\\tmspace-{5mu}{.277em}`),Z(`\\enspace`,`\\kern.5em `),Z(`\\enskip`,`\\hskip.5em\\relax`),Z(`\\quad`,`\\hskip1em\\relax`),Z(`\\qquad`,`\\hskip2em\\relax`),Z(`\\tag`,`\\@ifstar\\tag@literal\\tag@paren`),Z(`\\tag@paren`,`\\tag@literal{({#1})}`),Z(`\\tag@literal`,e=>{if(e.macros.get(`\\df@tag`))throw new P(`Multiple \\tag`);return`\\gdef\\df@tag{\\text{#1}}`}),Z(`\\bmod`,`\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}`),Z(`\\pod`,`\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)`),Z(`\\pmod`,`\\pod{{\\rm mod}\\mkern6mu#1}`),Z(`\\mod`,`\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1`),Z(`\\newline`,`\\\\\\relax`),Z(`\\TeX`,`\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}`);var Ss=I(Kn[`Main-Regular`][84][1]-.7*Kn[`Main-Regular`][65][1]);Z(`\\LaTeX`,`\\textrm{\\html@mathml{`+(`L\\kern-.36em\\raisebox{`+Ss+`}{\\scriptstyle A}`)+`\\kern-.15em\\TeX}{LaTeX}}`),Z(`\\KaTeX`,`\\textrm{\\html@mathml{`+(`K\\kern-.17em\\raisebox{`+Ss+`}{\\scriptstyle A}`)+`\\kern-.15em\\TeX}{KaTeX}}`),Z(`\\hspace`,`\\@ifstar\\@hspacer\\@hspace`),Z(`\\@hspace`,`\\hskip #1\\relax`),Z(`\\@hspacer`,`\\rule{0pt}{0pt}\\hskip #1\\relax`),Z(`\\ordinarycolon`,`:`),Z(`\\vcentcolon`,`\\mathrel{\\mathop\\ordinarycolon}`),Z(`\\dblcolon`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}`),Z(`\\coloneqq`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}`),Z(`\\Coloneqq`,`\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}`),Z(`\\coloneq`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}`),Z(`\\Coloneq`,`\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}`),Z(`\\eqqcolon`,`\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}`),Z(`\\Eqqcolon`,`\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}`),Z(`\\eqcolon`,`\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}`),Z(`\\Eqcolon`,`\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}`),Z(`\\colonapprox`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}`),Z(`\\Colonapprox`,`\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}`),Z(`\\colonsim`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}`),Z(`\\Colonsim`,`\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}`),Z(`∷`,`\\dblcolon`),Z(`∹`,`\\eqcolon`),Z(`≔`,`\\coloneqq`),Z(`≕`,`\\eqqcolon`),Z(`⩴`,`\\Coloneqq`),Z(`\\ratio`,`\\vcentcolon`),Z(`\\coloncolon`,`\\dblcolon`),Z(`\\colonequals`,`\\coloneqq`),Z(`\\coloncolonequals`,`\\Coloneqq`),Z(`\\equalscolon`,`\\eqqcolon`),Z(`\\equalscoloncolon`,`\\Eqqcolon`),Z(`\\colonminus`,`\\coloneq`),Z(`\\coloncolonminus`,`\\Coloneq`),Z(`\\minuscolon`,`\\eqcolon`),Z(`\\minuscoloncolon`,`\\Eqcolon`),Z(`\\coloncolonapprox`,`\\Colonapprox`),Z(`\\coloncolonsim`,`\\Colonsim`),Z(`\\simcolon`,`\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}`),Z(`\\simcoloncolon`,`\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}`),Z(`\\approxcolon`,`\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}`),Z(`\\approxcoloncolon`,`\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}`),Z(`\\notni`,"\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}"),Z(`\\limsup`,`\\DOTSB\\operatorname*{lim\\,sup}`),Z(`\\liminf`,`\\DOTSB\\operatorname*{lim\\,inf}`),Z(`\\injlim`,`\\DOTSB\\operatorname*{inj\\,lim}`),Z(`\\projlim`,`\\DOTSB\\operatorname*{proj\\,lim}`),Z(`\\varlimsup`,`\\DOTSB\\operatorname*{\\overline{lim}}`),Z(`\\varliminf`,`\\DOTSB\\operatorname*{\\underline{lim}}`),Z(`\\varinjlim`,`\\DOTSB\\operatorname*{\\underrightarrow{lim}}`),Z(`\\varprojlim`,`\\DOTSB\\operatorname*{\\underleftarrow{lim}}`),Z(`\\gvertneqq`,`\\html@mathml{\\@gvertneqq}{≩}`),Z(`\\lvertneqq`,`\\html@mathml{\\@lvertneqq}{≨}`),Z(`\\ngeqq`,`\\html@mathml{\\@ngeqq}{≱}`),Z(`\\ngeqslant`,`\\html@mathml{\\@ngeqslant}{≱}`),Z(`\\nleqq`,`\\html@mathml{\\@nleqq}{≰}`),Z(`\\nleqslant`,`\\html@mathml{\\@nleqslant}{≰}`),Z(`\\nshortmid`,`\\html@mathml{\\@nshortmid}{∤}`),Z(`\\nshortparallel`,`\\html@mathml{\\@nshortparallel}{∦}`),Z(`\\nsubseteqq`,`\\html@mathml{\\@nsubseteqq}{⊈}`),Z(`\\nsupseteqq`,`\\html@mathml{\\@nsupseteqq}{⊉}`),Z(`\\varsubsetneq`,`\\html@mathml{\\@varsubsetneq}{⊊}`),Z(`\\varsubsetneqq`,`\\html@mathml{\\@varsubsetneqq}{⫋}`),Z(`\\varsupsetneq`,`\\html@mathml{\\@varsupsetneq}{⊋}`),Z(`\\varsupsetneqq`,`\\html@mathml{\\@varsupsetneqq}{⫌}`),Z(`\\imath`,`\\html@mathml{\\@imath}{ı}`),Z(`\\jmath`,`\\html@mathml{\\@jmath}{ȷ}`),Z(`\\llbracket`,"\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}"),Z(`\\rrbracket`,"\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}"),Z(`⟦`,`\\llbracket`),Z(`⟧`,`\\rrbracket`),Z(`\\lBrace`,"\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}"),Z(`\\rBrace`,"\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}"),Z(`↤`,`\\mapsfrom`),Z(`\\mapsfrom`,"\\html@mathml{\\mathrel{\\mathreflectbox{\\mapsto}}}{\\mathrel{\\char`↤}}"),Z(`⦃`,`\\lBrace`),Z(`⦄`,`\\rBrace`),Z(`\\minuso`,"\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}"),Z(`⦵`,`\\minuso`),Z(`\\darr`,`\\downarrow`),Z(`\\dArr`,`\\Downarrow`),Z(`\\Darr`,`\\Downarrow`),Z(`\\lang`,`\\langle`),Z(`\\rang`,`\\rangle`),Z(`\\uarr`,`\\uparrow`),Z(`\\uArr`,`\\Uparrow`),Z(`\\Uarr`,`\\Uparrow`),Z(`\\N`,`\\mathbb{N}`),Z(`\\R`,`\\mathbb{R}`),Z(`\\Z`,`\\mathbb{Z}`),Z(`\\alef`,`\\aleph`),Z(`\\alefsym`,`\\aleph`),Z(`\\Alpha`,`\\mathrm{A}`),Z(`\\Beta`,`\\mathrm{B}`),Z(`\\bull`,`\\bullet`),Z(`\\Chi`,`\\mathrm{X}`),Z(`\\clubs`,`\\clubsuit`),Z(`\\cnums`,`\\mathbb{C}`),Z(`\\Complex`,`\\mathbb{C}`),Z(`\\Dagger`,`\\ddagger`),Z(`\\diamonds`,`\\diamondsuit`),Z(`\\empty`,`\\emptyset`),Z(`\\Epsilon`,`\\mathrm{E}`),Z(`\\Eta`,`\\mathrm{H}`),Z(`\\exist`,`\\exists`),Z(`\\harr`,`\\leftrightarrow`),Z(`\\hArr`,`\\Leftrightarrow`),Z(`\\Harr`,`\\Leftrightarrow`),Z(`\\hearts`,`\\heartsuit`),Z(`\\image`,`\\Im`),Z(`\\infin`,`\\infty`),Z(`\\Iota`,`\\mathrm{I}`),Z(`\\isin`,`\\in`),Z(`\\Kappa`,`\\mathrm{K}`),Z(`\\larr`,`\\leftarrow`),Z(`\\lArr`,`\\Leftarrow`),Z(`\\Larr`,`\\Leftarrow`),Z(`\\lrarr`,`\\leftrightarrow`),Z(`\\lrArr`,`\\Leftrightarrow`),Z(`\\Lrarr`,`\\Leftrightarrow`),Z(`\\Mu`,`\\mathrm{M}`),Z(`\\natnums`,`\\mathbb{N}`),Z(`\\Nu`,`\\mathrm{N}`),Z(`\\Omicron`,`\\mathrm{O}`),Z(`\\plusmn`,`\\pm`),Z(`\\rarr`,`\\rightarrow`),Z(`\\rArr`,`\\Rightarrow`),Z(`\\Rarr`,`\\Rightarrow`),Z(`\\real`,`\\Re`),Z(`\\reals`,`\\mathbb{R}`),Z(`\\Reals`,`\\mathbb{R}`),Z(`\\Rho`,`\\mathrm{P}`),Z(`\\sdot`,`\\cdot`),Z(`\\sect`,`\\S`),Z(`\\spades`,`\\spadesuit`),Z(`\\sub`,`\\subset`),Z(`\\sube`,`\\subseteq`),Z(`\\supe`,`\\supseteq`),Z(`\\Tau`,`\\mathrm{T}`),Z(`\\thetasym`,`\\vartheta`),Z(`\\weierp`,`\\wp`),Z(`\\Zeta`,`\\mathrm{Z}`),Z(`\\argmin`,`\\DOTSB\\operatorname*{arg\\,min}`),Z(`\\argmax`,`\\DOTSB\\operatorname*{arg\\,max}`),Z(`\\plim`,`\\DOTSB\\mathop{\\operatorname{plim}}\\limits`),Z(`\\bra`,`\\mathinner{\\langle{#1}|}`),Z(`\\ket`,`\\mathinner{|{#1}\\rangle}`),Z(`\\braket`,`\\mathinner{\\langle{#1}\\rangle}`),Z(`\\Bra`,`\\left\\langle#1\\right|`),Z(`\\Ket`,`\\left|#1\\right\\rangle`);var Cs=e=>t=>{var n=t.consumeArg().tokens,r=t.consumeArg().tokens,i=t.consumeArg().tokens,a=t.consumeArg().tokens,o=t.macros.get(`|`),s=t.macros.get(`\\|`);t.macros.beginGroup();var c=t=>n=>{e&&(n.macros.set(`|`,o),i.length&&n.macros.set(`\\|`,s));var a=t;return!t&&i.length&&n.future().text===`|`&&(n.popToken(),a=!0),{tokens:a?i:r,numArgs:0}};t.macros.set(`|`,c(!1)),i.length&&t.macros.set(`\\|`,c(!0));var l=t.consumeArg().tokens,u=t.expandTokens([...a,...l,...n]);return t.macros.endGroup(),{tokens:u.reverse(),numArgs:0}};Z(`\\bra@ket`,Cs(!1)),Z(`\\bra@set`,Cs(!0)),Z(`\\Braket`,`\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}`),Z(`\\Set`,`\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}`),Z(`\\set`,`\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}`),Z(`\\angln`,`{\\angl n}`),Z(`\\blue`,`\\textcolor{##6495ed}{#1}`),Z(`\\orange`,`\\textcolor{##ffa500}{#1}`),Z(`\\pink`,`\\textcolor{##ff00af}{#1}`),Z(`\\red`,`\\textcolor{##df0030}{#1}`),Z(`\\green`,`\\textcolor{##28ae7b}{#1}`),Z(`\\gray`,`\\textcolor{gray}{#1}`),Z(`\\purple`,`\\textcolor{##9d38bd}{#1}`),Z(`\\blueA`,`\\textcolor{##ccfaff}{#1}`),Z(`\\blueB`,`\\textcolor{##80f6ff}{#1}`),Z(`\\blueC`,`\\textcolor{##63d9ea}{#1}`),Z(`\\blueD`,`\\textcolor{##11accd}{#1}`),Z(`\\blueE`,`\\textcolor{##0c7f99}{#1}`),Z(`\\tealA`,`\\textcolor{##94fff5}{#1}`),Z(`\\tealB`,`\\textcolor{##26edd5}{#1}`),Z(`\\tealC`,`\\textcolor{##01d1c1}{#1}`),Z(`\\tealD`,`\\textcolor{##01a995}{#1}`),Z(`\\tealE`,`\\textcolor{##208170}{#1}`),Z(`\\greenA`,`\\textcolor{##b6ffb0}{#1}`),Z(`\\greenB`,`\\textcolor{##8af281}{#1}`),Z(`\\greenC`,`\\textcolor{##74cf70}{#1}`),Z(`\\greenD`,`\\textcolor{##1fab54}{#1}`),Z(`\\greenE`,`\\textcolor{##0d923f}{#1}`),Z(`\\goldA`,`\\textcolor{##ffd0a9}{#1}`),Z(`\\goldB`,`\\textcolor{##ffbb71}{#1}`),Z(`\\goldC`,`\\textcolor{##ff9c39}{#1}`),Z(`\\goldD`,`\\textcolor{##e07d10}{#1}`),Z(`\\goldE`,`\\textcolor{##a75a05}{#1}`),Z(`\\redA`,`\\textcolor{##fca9a9}{#1}`),Z(`\\redB`,`\\textcolor{##ff8482}{#1}`),Z(`\\redC`,`\\textcolor{##f9685d}{#1}`),Z(`\\redD`,`\\textcolor{##e84d39}{#1}`),Z(`\\redE`,`\\textcolor{##bc2612}{#1}`),Z(`\\maroonA`,`\\textcolor{##ffbde0}{#1}`),Z(`\\maroonB`,`\\textcolor{##ff92c6}{#1}`),Z(`\\maroonC`,`\\textcolor{##ed5fa6}{#1}`),Z(`\\maroonD`,`\\textcolor{##ca337c}{#1}`),Z(`\\maroonE`,`\\textcolor{##9e034e}{#1}`),Z(`\\purpleA`,`\\textcolor{##ddd7ff}{#1}`),Z(`\\purpleB`,`\\textcolor{##c6b9fc}{#1}`),Z(`\\purpleC`,`\\textcolor{##aa87ff}{#1}`),Z(`\\purpleD`,`\\textcolor{##7854ab}{#1}`),Z(`\\purpleE`,`\\textcolor{##543b78}{#1}`),Z(`\\mintA`,`\\textcolor{##f5f9e8}{#1}`),Z(`\\mintB`,`\\textcolor{##edf2df}{#1}`),Z(`\\mintC`,`\\textcolor{##e0e5cc}{#1}`),Z(`\\grayA`,`\\textcolor{##f6f7f7}{#1}`),Z(`\\grayB`,`\\textcolor{##f0f1f2}{#1}`),Z(`\\grayC`,`\\textcolor{##e3e5e6}{#1}`),Z(`\\grayD`,`\\textcolor{##d6d8da}{#1}`),Z(`\\grayE`,`\\textcolor{##babec2}{#1}`),Z(`\\grayF`,`\\textcolor{##888d93}{#1}`),Z(`\\grayG`,`\\textcolor{##626569}{#1}`),Z(`\\grayH`,`\\textcolor{##3b3e40}{#1}`),Z(`\\grayI`,`\\textcolor{##21242c}{#1}`),Z(`\\kaBlue`,`\\textcolor{##314453}{#1}`),Z(`\\kaGreen`,`\\textcolor{##71B307}{#1}`);var ws={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},Ts=class{constructor(e,t,n){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new hs(gs,t.macros),this.mode=n,this.stack=[]}feed(e){this.lexer=new ms(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var t,n,r;if(e){if(this.consumeSpaces(),this.future().text!==`[`)return null;t=this.popToken();var i=this.consumeArg([`]`]);r=i.tokens,n=i.end}else{var a=this.consumeArg();r=a.tokens,t=a.start,n=a.end}return this.pushToken(new mo(`EOF`,n.loc)),this.pushTokens(r),new mo(``,po.range(t,n))}consumeSpaces(){for(;this.future().text===` `;)this.stack.pop()}consumeArg(e){var t=[],n=e&&e.length>0;n||this.consumeSpaces();var r=this.future(),i,a=0,o=0;do{if(i=this.popToken(),t.push(i),i.text===`{`)++a;else if(i.text===`}`){if(--a,a===-1)throw new P(`Extra }`,i)}else if(i.text===`EOF`)throw new P(`Unexpected end of input in a macro argument, expected '`+(e&&n?e[o]:`}`)+`'`,i);if(e&&n)if((a===0||a===1&&e[o]===`{`)&&i.text===e[o]){if(++o,o===e.length){t.splice(-o,o);break}}else o=0}while(a!==0||n);return r.text===`{`&&t[t.length-1].text===`}`&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:r,end:i}}consumeArgs(e,t){if(t){if(t.length!==e+1)throw new P(`The length of delimiters doesn't match the number of args!`);for(var n=t[0],r=0;r<n.length;r++){var i=this.popToken();if(n[r]!==i.text)throw new P(`Use of the macro doesn't match its definition`,i)}}for(var a=[],o=0;o<e;o++)a.push(this.consumeArg(t&&t[o+1]).tokens);return a}countExpansion(e){if(this.expansionCount+=e,this.expansionCount>this.settings.maxExpand)throw new P(`Too many expansions: infinite loop or need to increase maxExpand setting`)}expandOnce(e){var t=this.popToken(),n=t.text,r=t.noexpand?null:this._getExpansion(n);if(r==null||e&&r.unexpandable){if(e&&r==null&&n[0]===`\\`&&!this.isDefined(n))throw new P(`Undefined control sequence: `+n);return this.pushToken(t),!1}this.countExpansion(1);var i=r.tokens,a=this.consumeArgs(r.numArgs,r.delimiters);if(r.numArgs){i=i.slice();for(var o=i.length-1;o>=0;--o){var s=i[o];if(s.text===`#`){if(o===0)throw new P(`Incomplete placeholder at end of macro body`,s);if(s=i[--o],s.text===`#`)i.splice(o+1,1);else if(/^[1-9]$/.test(s.text))i.splice(o,2,...a[s.text-1]);else throw new P(`Not a valid argument number`,s)}}}return this.pushTokens(i),i.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text=`\\relax`),e}}expandMacro(e){return this.macros.has(e)?this.expandTokens([new mo(e)]):void 0}expandTokens(e){var t=[],n=this.stack.length;for(this.pushTokens(e);this.stack.length>n;)if(this.expandOnce(!0)===!1){var r=this.stack.pop();r.treatAsRelax&&=(r.noexpand=!1,!1),t.push(r)}return this.countExpansion(t.length),t}expandMacroAsText(e){var t=this.expandMacro(e);return t&&t.map(e=>e.text).join(``)}_getExpansion(e){var t=this.macros.get(e);if(t==null)return t;if(e.length===1){var n=this.lexer.catcodes[e];if(n!=null&&n!==13)return}var r=typeof t==`function`?t(this):t;if(typeof r==`string`){var i=0;if(r.includes(`#`))for(var a=r.replace(/##/g,``);a.includes(`#`+(i+1));)++i;for(var o=new ms(r,this.settings),s=[],c=o.lex();c.text!==`EOF`;)s.push(c),c=o.lex();return s.reverse(),{tokens:s,numArgs:i}}return r}isDefined(e){return this.macros.has(e)||Object.prototype.hasOwnProperty.call(as,e)||Object.prototype.hasOwnProperty.call($n.math,e)||Object.prototype.hasOwnProperty.call($n.text,e)||Object.prototype.hasOwnProperty.call(ws,e)}isExpandable(e){var t=this.macros.get(e);return t==null?Object.prototype.hasOwnProperty.call(as,e)&&!as[e].primitive:typeof t==`string`||typeof t==`function`||!t.unexpandable}},Es=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,Ds=Object.freeze({"₊":`+`,"₋":`-`,"₌":`=`,"₍":`(`,"₎":`)`,"₀":`0`,"₁":`1`,"₂":`2`,"₃":`3`,"₄":`4`,"₅":`5`,"₆":`6`,"₇":`7`,"₈":`8`,"₉":`9`,ₐ:`a`,ₑ:`e`,ₕ:`h`,ᵢ:`i`,ⱼ:`j`,ₖ:`k`,ₗ:`l`,ₘ:`m`,ₙ:`n`,ₒ:`o`,ₚ:`p`,ᵣ:`r`,ₛ:`s`,ₜ:`t`,ᵤ:`u`,ᵥ:`v`,ₓ:`x`,ᵦ:`β`,ᵧ:`γ`,ᵨ:`ρ`,ᵩ:`ϕ`,ᵪ:`χ`,"⁺":`+`,"⁻":`-`,"⁼":`=`,"⁽":`(`,"⁾":`)`,"⁰":`0`,"¹":`1`,"²":`2`,"³":`3`,"⁴":`4`,"⁵":`5`,"⁶":`6`,"⁷":`7`,"⁸":`8`,"⁹":`9`,ᴬ:`A`,ᴮ:`B`,ᴰ:`D`,ᴱ:`E`,ᴳ:`G`,ᴴ:`H`,ᴵ:`I`,ᴶ:`J`,ᴷ:`K`,ᴸ:`L`,ᴹ:`M`,ᴺ:`N`,ᴼ:`O`,ᴾ:`P`,ᴿ:`R`,ᵀ:`T`,ᵁ:`U`,ⱽ:`V`,ᵂ:`W`,ᵃ:`a`,ᵇ:`b`,ᶜ:`c`,ᵈ:`d`,ᵉ:`e`,ᶠ:`f`,ᵍ:`g`,ʰ:`h`,ⁱ:`i`,ʲ:`j`,ᵏ:`k`,ˡ:`l`,ᵐ:`m`,ⁿ:`n`,ᵒ:`o`,ᵖ:`p`,ʳ:`r`,ˢ:`s`,ᵗ:`t`,ᵘ:`u`,ᵛ:`v`,ʷ:`w`,ˣ:`x`,ʸ:`y`,ᶻ:`z`,ᵝ:`β`,ᵞ:`γ`,ᵟ:`δ`,ᵠ:`ϕ`,ᵡ:`χ`,ᶿ:`θ`}),Os={"́":{text:`\\'`,math:`\\acute`},"̀":{text:"\\`",math:`\\grave`},"̈":{text:`\\"`,math:`\\ddot`},"̃":{text:`\\~`,math:`\\tilde`},"̄":{text:`\\=`,math:`\\bar`},"̆":{text:`\\u`,math:`\\breve`},"̌":{text:`\\v`,math:`\\check`},"̂":{text:`\\^`,math:`\\hat`},"̇":{text:`\\.`,math:`\\dot`},"̊":{text:`\\r`,math:`\\mathring`},"̋":{text:`\\H`},"̧":{text:`\\c`}},ks={á:`á`,à:`à`,ä:`ä`,ǟ:`ǟ`,ã:`ã`,ā:`ā`,ă:`ă`,ắ:`ắ`,ằ:`ằ`,ẵ:`ẵ`,ǎ:`ǎ`,â:`â`,ấ:`ấ`,ầ:`ầ`,ẫ:`ẫ`,ȧ:`ȧ`,ǡ:`ǡ`,å:`å`,ǻ:`ǻ`,ḃ:`ḃ`,ć:`ć`,ḉ:`ḉ`,č:`č`,ĉ:`ĉ`,ċ:`ċ`,ç:`ç`,ď:`ď`,ḋ:`ḋ`,ḑ:`ḑ`,é:`é`,è:`è`,ë:`ë`,ẽ:`ẽ`,ē:`ē`,ḗ:`ḗ`,ḕ:`ḕ`,ĕ:`ĕ`,ḝ:`ḝ`,ě:`ě`,ê:`ê`,ế:`ế`,ề:`ề`,ễ:`ễ`,ė:`ė`,ȩ:`ȩ`,ḟ:`ḟ`,ǵ:`ǵ`,ḡ:`ḡ`,ğ:`ğ`,ǧ:`ǧ`,ĝ:`ĝ`,ġ:`ġ`,ģ:`ģ`,ḧ:`ḧ`,ȟ:`ȟ`,ĥ:`ĥ`,ḣ:`ḣ`,ḩ:`ḩ`,í:`í`,ì:`ì`,ï:`ï`,ḯ:`ḯ`,ĩ:`ĩ`,ī:`ī`,ĭ:`ĭ`,ǐ:`ǐ`,î:`î`,ǰ:`ǰ`,ĵ:`ĵ`,ḱ:`ḱ`,ǩ:`ǩ`,ķ:`ķ`,ĺ:`ĺ`,ľ:`ľ`,ļ:`ļ`,ḿ:`ḿ`,ṁ:`ṁ`,ń:`ń`,ǹ:`ǹ`,ñ:`ñ`,ň:`ň`,ṅ:`ṅ`,ņ:`ņ`,ó:`ó`,ò:`ò`,ö:`ö`,ȫ:`ȫ`,õ:`õ`,ṍ:`ṍ`,ṏ:`ṏ`,ȭ:`ȭ`,ō:`ō`,ṓ:`ṓ`,ṑ:`ṑ`,ŏ:`ŏ`,ǒ:`ǒ`,ô:`ô`,ố:`ố`,ồ:`ồ`,ỗ:`ỗ`,ȯ:`ȯ`,ȱ:`ȱ`,ő:`ő`,ṕ:`ṕ`,ṗ:`ṗ`,ŕ:`ŕ`,ř:`ř`,ṙ:`ṙ`,ŗ:`ŗ`,ś:`ś`,ṥ:`ṥ`,š:`š`,ṧ:`ṧ`,ŝ:`ŝ`,ṡ:`ṡ`,ş:`ş`,ẗ:`ẗ`,ť:`ť`,ṫ:`ṫ`,ţ:`ţ`,ú:`ú`,ù:`ù`,ü:`ü`,ǘ:`ǘ`,ǜ:`ǜ`,ǖ:`ǖ`,ǚ:`ǚ`,ũ:`ũ`,ṹ:`ṹ`,ū:`ū`,ṻ:`ṻ`,ŭ:`ŭ`,ǔ:`ǔ`,û:`û`,ů:`ů`,ű:`ű`,ṽ:`ṽ`,ẃ:`ẃ`,ẁ:`ẁ`,ẅ:`ẅ`,ŵ:`ŵ`,ẇ:`ẇ`,ẘ:`ẘ`,ẍ:`ẍ`,ẋ:`ẋ`,ý:`ý`,ỳ:`ỳ`,ÿ:`ÿ`,ỹ:`ỹ`,ȳ:`ȳ`,ŷ:`ŷ`,ẏ:`ẏ`,ẙ:`ẙ`,ź:`ź`,ž:`ž`,ẑ:`ẑ`,ż:`ż`,Á:`Á`,À:`À`,Ä:`Ä`,Ǟ:`Ǟ`,Ã:`Ã`,Ā:`Ā`,Ă:`Ă`,Ắ:`Ắ`,Ằ:`Ằ`,Ẵ:`Ẵ`,Ǎ:`Ǎ`,Â:`Â`,Ấ:`Ấ`,Ầ:`Ầ`,Ẫ:`Ẫ`,Ȧ:`Ȧ`,Ǡ:`Ǡ`,Å:`Å`,Ǻ:`Ǻ`,Ḃ:`Ḃ`,Ć:`Ć`,Ḉ:`Ḉ`,Č:`Č`,Ĉ:`Ĉ`,Ċ:`Ċ`,Ç:`Ç`,Ď:`Ď`,Ḋ:`Ḋ`,Ḑ:`Ḑ`,É:`É`,È:`È`,Ë:`Ë`,Ẽ:`Ẽ`,Ē:`Ē`,Ḗ:`Ḗ`,Ḕ:`Ḕ`,Ĕ:`Ĕ`,Ḝ:`Ḝ`,Ě:`Ě`,Ê:`Ê`,Ế:`Ế`,Ề:`Ề`,Ễ:`Ễ`,Ė:`Ė`,Ȩ:`Ȩ`,Ḟ:`Ḟ`,Ǵ:`Ǵ`,Ḡ:`Ḡ`,Ğ:`Ğ`,Ǧ:`Ǧ`,Ĝ:`Ĝ`,Ġ:`Ġ`,Ģ:`Ģ`,Ḧ:`Ḧ`,Ȟ:`Ȟ`,Ĥ:`Ĥ`,Ḣ:`Ḣ`,Ḩ:`Ḩ`,Í:`Í`,Ì:`Ì`,Ï:`Ï`,Ḯ:`Ḯ`,Ĩ:`Ĩ`,Ī:`Ī`,Ĭ:`Ĭ`,Ǐ:`Ǐ`,Î:`Î`,İ:`İ`,Ĵ:`Ĵ`,Ḱ:`Ḱ`,Ǩ:`Ǩ`,Ķ:`Ķ`,Ĺ:`Ĺ`,Ľ:`Ľ`,Ļ:`Ļ`,Ḿ:`Ḿ`,Ṁ:`Ṁ`,Ń:`Ń`,Ǹ:`Ǹ`,Ñ:`Ñ`,Ň:`Ň`,Ṅ:`Ṅ`,Ņ:`Ņ`,Ó:`Ó`,Ò:`Ò`,Ö:`Ö`,Ȫ:`Ȫ`,Õ:`Õ`,Ṍ:`Ṍ`,Ṏ:`Ṏ`,Ȭ:`Ȭ`,Ō:`Ō`,Ṓ:`Ṓ`,Ṑ:`Ṑ`,Ŏ:`Ŏ`,Ǒ:`Ǒ`,Ô:`Ô`,Ố:`Ố`,Ồ:`Ồ`,Ỗ:`Ỗ`,Ȯ:`Ȯ`,Ȱ:`Ȱ`,Ő:`Ő`,Ṕ:`Ṕ`,Ṗ:`Ṗ`,Ŕ:`Ŕ`,Ř:`Ř`,Ṙ:`Ṙ`,Ŗ:`Ŗ`,Ś:`Ś`,Ṥ:`Ṥ`,Š:`Š`,Ṧ:`Ṧ`,Ŝ:`Ŝ`,Ṡ:`Ṡ`,Ş:`Ş`,Ť:`Ť`,Ṫ:`Ṫ`,Ţ:`Ţ`,Ú:`Ú`,Ù:`Ù`,Ü:`Ü`,Ǘ:`Ǘ`,Ǜ:`Ǜ`,Ǖ:`Ǖ`,Ǚ:`Ǚ`,Ũ:`Ũ`,Ṹ:`Ṹ`,Ū:`Ū`,Ṻ:`Ṻ`,Ŭ:`Ŭ`,Ǔ:`Ǔ`,Û:`Û`,Ů:`Ů`,Ű:`Ű`,Ṽ:`Ṽ`,Ẃ:`Ẃ`,Ẁ:`Ẁ`,Ẅ:`Ẅ`,Ŵ:`Ŵ`,Ẇ:`Ẇ`,Ẍ:`Ẍ`,Ẋ:`Ẋ`,Ý:`Ý`,Ỳ:`Ỳ`,Ÿ:`Ÿ`,Ỹ:`Ỹ`,Ȳ:`Ȳ`,Ŷ:`Ŷ`,Ẏ:`Ẏ`,Ź:`Ź`,Ž:`Ž`,Ẑ:`Ẑ`,Ż:`Ż`,ά:`ά`,ὰ:`ὰ`,ᾱ:`ᾱ`,ᾰ:`ᾰ`,έ:`έ`,ὲ:`ὲ`,ή:`ή`,ὴ:`ὴ`,ί:`ί`,ὶ:`ὶ`,ϊ:`ϊ`,ΐ:`ΐ`,ῒ:`ῒ`,ῑ:`ῑ`,ῐ:`ῐ`,ό:`ό`,ὸ:`ὸ`,ύ:`ύ`,ὺ:`ὺ`,ϋ:`ϋ`,ΰ:`ΰ`,ῢ:`ῢ`,ῡ:`ῡ`,ῠ:`ῠ`,ώ:`ώ`,ὼ:`ὼ`,Ύ:`Ύ`,Ὺ:`Ὺ`,Ϋ:`Ϋ`,Ῡ:`Ῡ`,Ῠ:`Ῠ`,Ώ:`Ώ`,Ὼ:`Ὼ`},As=class e{constructor(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode=`math`,this.gullet=new Ts(e,t,this.mode),this.settings=t,this.leftrightDepth=0,this.nextToken=null}expect(e,t){if(t===void 0&&(t=!0),this.fetch().text!==e)throw new P(`Expected '`+e+`', got '`+this.fetch().text+`'`,this.fetch());t&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken??=this.gullet.expandNextToken(),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set(`\\color`,`\\textcolor`);try{var e=this.parseExpression(!1);return this.expect(`EOF`),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new mo(`}`)),this.gullet.pushTokens(e);var n=this.parseExpression(!1);return this.expect(`}`),this.nextToken=t,n}parseExpression(t,n){for(var r=[];;){this.mode===`math`&&this.consumeSpaces();var i=this.fetch();if(e.endOfExpression.has(i.text)||n&&i.text===n||t&&as[i.text]&&as[i.text].infix)break;var a=this.parseAtom(n);if(!a)break;a.type!==`internal`&&r.push(a)}return this.mode===`text`&&this.formLigatures(r),this.handleInfixNodes(r)}handleInfixNodes(e){for(var t=-1,n,r=0;r<e.length;r++){var i=e[r];if(i.type===`infix`){if(t!==-1)throw new P(`only one infix operator per group`,i.token);t=r,n=i.replaceWith}}if(t!==-1&&n){var a,o,s=e.slice(0,t),c=e.slice(t+1);return a=s.length===1&&s[0].type===`ordgroup`?s[0]:{type:`ordgroup`,mode:this.mode,body:s},o=c.length===1&&c[0].type===`ordgroup`?c[0]:{type:`ordgroup`,mode:this.mode,body:c},[n===`\\\\abovefrac`?this.callFunction(n,[a,e[t],o],[]):this.callFunction(n,[a,o],[])]}else return e}handleSupSubscript(e){var t=this.fetch(),n=t.text;this.consume(),this.consumeSpaces();var r;do r=this.parseGroup(e);while(r?.type===`internal`);if(!r)throw new P(`Expected group after '`+n+`'`,t);return r}formatUnsupportedCmd(e){for(var t=[],n=0;n<e.length;n++)t.push({type:`textord`,mode:`text`,text:e[n]});var r={type:`text`,mode:this.mode,body:t};return{type:`color`,mode:this.mode,color:this.settings.errorColor,body:[r]}}parseAtom(e){var t=this.parseGroup(`atom`,e);if(t?.type===`internal`||this.mode===`text`)return t;for(var n,r;;){this.consumeSpaces();var i=this.fetch();if(i.text===`\\limits`||i.text===`\\nolimits`){if(t&&t.type===`op`)t.limits=i.text===`\\limits`,t.alwaysHandleSupSub=!0;else if(t&&t.type===`operatorname`)t.alwaysHandleSupSub&&(t.limits=i.text===`\\limits`);else throw new P(`Limit controls must follow a math operator`,i);this.consume()}else if(i.text===`^`){if(n)throw new P(`Double superscript`,i);n=this.handleSupSubscript(`superscript`)}else if(i.text===`_`){if(r)throw new P(`Double subscript`,i);r=this.handleSupSubscript(`subscript`)}else if(i.text===`'`){if(n)throw new P(`Double superscript`,i);var a={type:`textord`,mode:this.mode,text:`\\prime`},o=[a];for(this.consume();this.fetch().text===`'`;)o.push(a),this.consume();this.fetch().text===`^`&&o.push(this.handleSupSubscript(`superscript`)),n={type:`ordgroup`,mode:this.mode,body:o}}else if(Ds[i.text]){var s=Es.test(i.text),c=[];for(c.push(new mo(Ds[i.text])),this.consume();;){var l=this.fetch().text;if(!Ds[l]||Es.test(l)!==s)break;c.unshift(new mo(Ds[l])),this.consume()}var u=this.subparse(c);s?r={type:`ordgroup`,mode:`math`,body:u}:n={type:`ordgroup`,mode:`math`,body:u}}else break}return n&&r?{type:`supsub`,mode:this.mode,base:t,sup:n,sub:r}:n?{type:`supsub`,mode:this.mode,base:t,sup:n}:r?{type:`supsub`,mode:this.mode,base:t,sub:r}:t}parseFunction(e,t){var n=this.fetch(),r=n.text,i=as[r];if(!i)return null;if(this.consume(),t&&t!==`atom`&&!i.allowedInArgument)throw new P(`Got function '`+r+`' with no arguments`+(t?` as `+t:``),n);if(this.mode===`text`&&!i.allowedInText)throw new P(`Can't use function '`+r+`' in text mode`,n);if(this.mode===`math`&&i.allowedInMath===!1)throw new P(`Can't use function '`+r+`' in math mode`,n);var a=this.parseArguments(r,i),o=a.args,s=a.optArgs;return this.callFunction(r,o,s,n,e)}callFunction(e,t,n,r,i){var a={funcName:e,parser:this,token:r,breakOnTokenText:i},o=as[e];if(o&&o.handler)return o.handler(a,t,n);throw new P(`No function handler for `+e)}parseArguments(e,t){var n=t.numOptionalArgs??0,r=t.numArgs+n;if(r===0)return{args:[],optArgs:[]};for(var i=[],a=[],o=0;o<r;o++){var s=t.argTypes?.[o],c=o<n;(`primitive`in t&&t.primitive&&s==null||t.type===`sqrt`&&o===1&&a[0]==null)&&(s=`primitive`);var l=this.parseGroupOfType(`argument to '`+e+`'`,s,c);if(c)a.push(l);else if(l!=null)i.push(l);else throw new P(`Null argument, please report this as a bug`)}return{args:i,optArgs:a}}parseGroupOfType(e,t,n){switch(t){case`color`:return this.parseColorGroup(n);case`size`:return this.parseSizeGroup(n);case`url`:return this.parseUrlGroup(n);case`math`:case`text`:return this.parseArgumentGroup(n,t);case`hbox`:var r=this.parseArgumentGroup(n,`text`);return r==null?null:{type:`styling`,mode:r.mode,body:[r],style:`text`,resetFont:!0};case`raw`:var i=this.parseStringGroup(n);return i==null?null:{type:`raw`,mode:`text`,string:i.text};case`primitive`:if(n)throw new P(`A primitive argument cannot be optional`);var a=this.parseGroup(e);if(a==null)throw new P(`Expected group as `+e,this.fetch());return a;case`original`:case void 0:return this.parseArgumentGroup(n);default:throw new P(`Unknown group type as `+e,this.fetch())}}consumeSpaces(){for(;this.fetch().text===` `;)this.consume()}parseStringGroup(e){var t=this.gullet.scanArgument(e);if(t==null)return null;for(var n=``,r;(r=this.fetch()).text!==`EOF`;)n+=r.text,this.consume();return this.consume(),t.text=n,t}parseRegexGroup(e,t){for(var n=this.fetch(),r=n,i=``,a;(a=this.fetch()).text!==`EOF`&&e.test(i+a.text);)r=a,i+=r.text,this.consume();if(i===``)throw new P(`Invalid `+t+`: '`+n.text+`'`,n);return n.range(r,i)}parseColorGroup(e){var t=this.parseStringGroup(e);if(t==null)return null;var n=/^(#[a-f0-9]{3,4}|#[a-f0-9]{6}|#[a-f0-9]{8}|[a-f0-9]{6}|[a-z]+)$/i.exec(t.text);if(!n)throw new P(`Invalid color: '`+t.text+`'`,t);var r=n[0];return/^[0-9a-f]{6}$/i.test(r)&&(r=`#`+r),{type:`color-token`,mode:this.mode,color:r}}parseSizeGroup(e){var t,n=!1;if(this.gullet.consumeSpaces(),t=!e&&this.gullet.future().text!==`{`?this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/,`size`):this.parseStringGroup(e),!t)return null;!e&&t.text.length===0&&(t.text=`0pt`,n=!0);var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t.text);if(!r)throw new P(`Invalid size: '`+t.text+`'`,t);var i={number:+(r[1]+r[2]),unit:r[3]};if(!Dn(i))throw new P(`Invalid unit: '`+i.unit+`'`,t);return{type:`size`,mode:this.mode,value:i,isBlank:n}}parseUrlGroup(e){this.gullet.lexer.setCatcode(`%`,13),this.gullet.lexer.setCatcode(`~`,12);var t=this.parseStringGroup(e);if(this.gullet.lexer.setCatcode(`%`,14),this.gullet.lexer.setCatcode(`~`,13),t==null)return null;var n=t.text.replace(/\\([#$%&~_^{}])/g,`$1`);return{type:`url`,mode:this.mode,url:n}}parseArgumentGroup(e,t){var n=this.gullet.scanArgument(e);if(n==null)return null;var r=this.mode;t&&this.switchMode(t),this.gullet.beginGroup();var i=this.parseExpression(!1,`EOF`);this.expect(`EOF`),this.gullet.endGroup();var a={type:`ordgroup`,mode:this.mode,loc:n.loc,body:i};return t&&this.switchMode(r),a}parseGroup(e,t){var n=this.fetch(),r=n.text,i;if(r===`{`||r===`\\begingroup`){this.consume();var a=r===`{`?`}`:`\\endgroup`;this.gullet.beginGroup();var o=this.parseExpression(!1,a),s=this.fetch();this.expect(a),this.gullet.endGroup(),i={type:`ordgroup`,mode:this.mode,loc:po.range(n,s),body:o,semisimple:r===`\\begingroup`||void 0}}else if(i=this.parseFunction(t,e)||this.parseSymbol(),i==null&&r[0]===`\\`&&!Object.prototype.hasOwnProperty.call(ws,r)){if(this.settings.throwOnError)throw new P(`Undefined control sequence: `+r,n);i=this.formatUnsupportedCmd(r),this.consume()}return i}formLigatures(e){for(var t=e.length-1,n=0;n<t;++n){var r=e[n];if(r.type===`textord`){var i=r.text,a=e[n+1];if(!(!a||a.type!==`textord`)){if(i===`-`&&a.text===`-`){var o=e[n+2];n+1<t&&o&&o.type===`textord`&&o.text===`-`?(e.splice(n,3,{type:`textord`,mode:`text`,loc:po.range(r,o),text:`---`}),t-=2):(e.splice(n,2,{type:`textord`,mode:`text`,loc:po.range(r,a),text:`--`}),--t)}(i===`'`||i==="`")&&a.text===i&&(e.splice(n,2,{type:`textord`,mode:`text`,loc:po.range(r,a),text:i+i}),--t)}}}}parseSymbol(){var e=this.fetch(),t=e.text;if(/^\\verb[^a-zA-Z]/.test(t)){this.consume();var n=t.slice(5),r=n.charAt(0)===`*`;if(r&&(n=n.slice(1)),n.length<2||n.charAt(0)!==n.slice(-1))throw new P(`\\verb assertion failed --
|
|
263
|
+
please report what input caused this bug`);return n=n.slice(1,-1),{type:`verb`,mode:`text`,body:n,star:r}}Object.prototype.hasOwnProperty.call(ks,t[0])&&!$n[this.mode][t[0]]&&(this.settings.strict&&this.mode===`math`&&this.settings.reportNonstrict(`unicodeTextInMathMode`,`Accented Unicode text character "`+t[0]+`" used in math mode`,e),t=ks[t[0]]+t.slice(1));var i=fs.exec(t);i&&(t=t.substring(0,i.index),t===`i`?t=`ı`:t===`j`&&(t=`ȷ`));var a;if($n[this.mode][t]){this.settings.strict&&this.mode===`math`&&xr.includes(t)&&this.settings.reportNonstrict(`unicodeTextInMathMode`,`Latin-1/Unicode text character "`+t[0]+`" used in math mode`,e);var o=$n[this.mode][t].group,s=po.range(e);a=sa(o)?{type:`atom`,mode:this.mode,family:o,loc:s,text:t}:{type:o,mode:this.mode,loc:s,text:t}}else if(t.charCodeAt(0)>=128)this.settings.strict&&(ln(t.charCodeAt(0))?this.mode===`math`&&this.settings.reportNonstrict(`unicodeTextInMathMode`,`Unicode text character "`+t[0]+`" used in math mode`,e):this.settings.reportNonstrict(`unknownSymbol`,`Unrecognized Unicode character "`+t[0]+`"`+(` (`+t.charCodeAt(0)+`)`),e)),a={type:`textord`,mode:`text`,loc:po.range(e),text:t};else return null;if(this.consume(),i)for(var c=0;c<i[0].length;c++){var l=i[0][c];if(!Os[l])throw new P(`Unknown accent ' `+l+`'`,e);var u=Os[l][this.mode]||Os[l].text;if(!u)throw new P(`Accent `+l+` unsupported in `+this.mode+` mode`,e);a={type:`accent`,mode:this.mode,loc:po.range(e),label:u,isStretchy:!1,isShifty:!0,base:a}}return a}};As.endOfExpression=new Set([`}`,`\\endgroup`,`\\end`,`\\right`,`&`]);var js=function(e,t){if(!(typeof e==`string`||e instanceof String))throw TypeError(`KaTeX can only parse string typed expression`);var n=new As(e,t);delete n.gullet.macros.current[`\\df@tag`];var r=n.parse();if(delete n.gullet.macros.current[`\\current@color`],delete n.gullet.macros.current[`\\color`],n.gullet.macros.get(`\\df@tag`)){if(!t.displayMode)throw new P(`\\tag works only in display equations`);r=[{type:`tag`,mode:`text`,body:r,tag:n.subparse([new mo(`\\df@tag`)])}]}return r},Ms=function(e,t,n){t.textContent=``;var r=Is(e,n).toNode();t.appendChild(r)};typeof document<`u`&&document.compatMode!==`CSS1Compat`&&(typeof console<`u`&&console.warn(`Warning: KaTeX doesn't work in quirks mode. Make sure your website has a suitable doctype.`),Ms=function(){throw new P(`KaTeX doesn't work in quirks mode.`)});var Ns=function(e,t){return Is(e,t).toMarkup()},Ps=function(e,t){return js(e,new Ht(t))},Fs=function(e,t,n){if(n.throwOnError||!(e instanceof P))throw e;var r=q([`katex-error`],[new zn(t)]);return r.setAttribute(`title`,e.toString()),r.setAttribute(`style`,`color:`+n.errorColor),r},Is=function(e,t){var n=new Ht(t);try{return Yi(js(e,n),e,n)}catch(t){return Fs(t,e,n)}},Ls={version:`0.18.7`,render:Ms,renderToString:Ns,ParseError:P,SETTINGS_SCHEMA:Rt,__parse:Ps,__renderToDomTree:Is,__renderToHTMLTree:function(e,t){var n=new Ht(t);try{return Xi(js(e,n),e,n)}catch(t){return Fs(t,e,n)}},__setFontMetrics:Yn,__defineSymbol:L,__defineFunction:J,__defineMacro:Z,__domTree:{Span:Fn,Anchor:In,SymbolNode:zn,SvgNode:Bn,PathNode:Vn,LineNode:Hn}};let Rs=new Map;function zs(e,t=!1){let n=`${t?`D`:`I`}${e}`,r=Rs.get(n);if(r===void 0){try{r=Ls.renderToString(String(e),{displayMode:t,throwOnError:!1,strict:`ignore`,trust:!1,maxSize:20,maxExpand:500,output:`htmlAndMathml`})}catch{r=null}Rs.size>2e3&&Rs.clear(),Rs.set(n,r)}return r}function Bs({tex:e,display:t=!1}){let n=zs(e,t);return n===null?(0,i.jsx)(`code`,{children:e}):(0,i.jsx)(`span`,{className:t?`aha-tex aha-tex-display`:`aha-tex`,dangerouslySetInnerHTML:{__html:n}})}let Vs=`#2b2b2b`,Hs=`#e08a1e`,Q=e=>e.toFixed(1);function Us(e){try{let t=Ve(e);return{compiled:t,bounds:Ke(e,t),labels:Xe(e)}}catch{return null}}function Ws(e,t,n){let r=0,i=1,a=t[0]-e[0],o=t[1]-e[1];for(let[t,s]of[[-a,e[0]-n.left],[a,n.right-e[0]],[-o,e[1]-n.top],[o,n.bottom-e[1]]])if(t===0){if(s<0)return null}else{let e=s/t;if(t<0){if(e>i)return null;e>r&&(r=e)}else{if(e<r)return null;e<i&&(i=e)}}return[[e[0]+r*a,e[1]+r*o],[e[0]+i*a,e[1]+i*o]]}function Gs(e,t){let n=[],r=null,i=t.bottom-t.top;for(let a=1;a<e.length;a+=1){let o=e[a-1],s=e[a];if(!o.every(Number.isFinite)||!s.every(Number.isFinite)){r=null;continue}let c=o[1]<t.top-i&&s[1]>t.bottom+i||s[1]<t.top-i&&o[1]>t.bottom+i?null:Ws(o,s,t);if(!c){r=null;continue}let[l,u]=c,d=r?.[r.length-1];(!d||Math.abs(d[0]-l[0])>.05||Math.abs(d[1]-l[1])>.05)&&(r=[l],n.push(r)),r.push(u)}return n.filter(e=>e.length>1)}let Ks=e=>e.map(e=>e.map(([e,t],n)=>`${n?`L`:`M`}${Q(e)} ${Q(t)}`).join(` `)).join(` `);function qs(e,t){for(let n of[Math.PI/4,Math.PI/2,Math.PI,2*Math.PI,4*Math.PI]){let r=Math.ceil(e/n-1e-9),i=Math.floor(t/n+1e-9);if(i-r+1<=9){let e=[];for(let t=r;t<=i;t+=1)e.push(t*n);return e}}return bt(e,t)}let Js=e=>Ye(Math.abs(e)<1e-12?0:e),Ys=(e,t)=>[...String(e)].reduce((e,n)=>e+(/[\u2E80-\uFFFF]/u.test(n)?t*1.05:t*.58),0);function Xs(e,t=He(e),{width:n=420,height:r=290,prepared:i=Us(e)}={}){if(!i)return``;let a=e.params.map((e,n)=>Math.min(e.max,Math.max(e.min,Number.isFinite(t[n])?t[n]:e.value))),{x:{min:o,max:s},y:{min:c,max:l}}=i.bounds,u=e.fns.map((e,t)=>e.name||i.labels[t]),d=[];if(e.fns.length>1){let e=0,t=36;u.forEach((r,i)=>{let a=24+Ys(r,13);t+a>n-12&&t>36&&(e+=1,t=36),d.push({index:i,name:r,row:e,x:t}),t+=a+16})}let f=d.length?d[d.length-1].row+1:0,p={top:(e.title?28:0)+f*19+20,right:30,bottom:32,left:40};if(e.equal){let e=p.top+p.bottom+(n-p.left-p.right)*(l-c)/(s-o);r=Math.round(Math.min(440,Math.max(220,e)));let t=n-p.left-p.right,i=r-p.top-p.bottom,a=Math.min(t/(s-o),i/(l-c)),[u,d]=[(o+s)/2,(c+l)/2];[o,s]=[u-t/a/2,u+t/a/2],[c,l]=[d-i/a/2,d+i/a/2]}let m={left:p.left,right:n-p.right,top:p.top,bottom:r-p.bottom},h=e=>m.left+(e-o)/(s-o)*(m.right-m.left),g=e=>m.bottom-(e-c)/(l-c)*(m.bottom-m.top),_=([e,t])=>[h(e),g(t)],v=e=>gt[e%gt.length],y=[],b=[],x=(e,t,n,{size:r=13,anchor:i=`middle`,fill:a=_t,italic:o=!1,weight:s}={})=>{b.push(`<text x="${Q(e)}" y="${Q(t)}" font-size="${r}" text-anchor="${i}" fill="${a}"${o?` font-style="italic"`:``}${s?` font-weight="${s}"`:``}>${yt(n)}</text>`)},S=c<=0&&l>=0?g(0):c>0?m.bottom:m.top,C=o<=0&&s>=0?h(0):o>0?m.left:m.right;y.push(`<line x1="${Q(m.left-4)}" y1="${Q(S)}" x2="${Q(m.right+14)}" y2="${Q(S)}" stroke="${_t}" stroke-width="1.5" stroke-linecap="round"/>`),y.push(`<path d="M${Q(m.right+16)} ${Q(S)} l-9 -4 l2 4 l-2 4 Z" fill="${_t}" stroke="${_t}" stroke-width="1" stroke-linejoin="round"/>`),y.push(`<line x1="${Q(C)}" y1="${Q(m.bottom+4)}" x2="${Q(C)}" y2="${Q(m.top-10)}" stroke="${_t}" stroke-width="1.5" stroke-linecap="round"/>`),y.push(`<path d="M${Q(C)} ${Q(m.top-12)} l-4 9 l4 -2 l4 2 Z" fill="${_t}" stroke="${_t}" stroke-width="1" stroke-linejoin="round"/>`),x(m.right+16,S<m.top+16?S+18:S-8,e.xLabel||`x`,{size:15,italic:!e.xLabel,anchor:`end`}),x(C+8,m.top-2,e.yLabel||`y`,{size:15,italic:!e.yLabel,anchor:`start`});let w=o<=0&&s>=0&&c<=0&&l>=0;w&&x(C-8,S+17,`O`,{size:13,italic:!0});let T=(e.xPi?qs(o,s):bt(o,s,6)).filter(e=>e>=o-1e-9&&e<=s+1e-9);for(let e of T){if(w&&Math.abs(e)<1e-12)continue;let t=h(e);Math.abs(t-C)<3&&!w||(y.push(`<line x1="${Q(t)}" y1="${Q(S-3)}" x2="${Q(t)}" y2="${Q(S+3)}" stroke="${_t}" stroke-width="1.2"/>`),x(t,S+18,Js(e),{size:12.5}))}for(let e of bt(c,l,5).filter(e=>e>=c-1e-9&&e<=l+1e-9)){if(w&&Math.abs(e)<1e-12)continue;let t=g(e);y.push(`<line x1="${Q(C-3)}" y1="${Q(t)}" x2="${Q(C+3)}" y2="${Q(t)}" stroke="${_t}" stroke-width="1.2"/>`),x(C-6,t+4.5,Js(e),{size:12.5,anchor:`end`})}let E=Ue(e,i.compiled,a,{min:o,max:s}),D=e=>i.compiled[e];for(let t of e.shades){let e=[],n=[];for(let r=0;r<=120;r+=1){let i=t.from+(t.to-t.from)*r/120,o=D(t.fn).y(i,a),s=t.fn2===void 0?0:D(t.fn2).y(i,a);if(!Number.isFinite(o)||!Number.isFinite(s))continue;let u=e=>Math.min(l,Math.max(c,e));e.push([h(i),g(u(o))]),n.push([h(i),g(u(s))])}if(e.length<2)continue;let r=[...e,...n.reverse()].map(([e,t],n)=>`${n?`L`:`M`}${Q(e)} ${Q(t)}`).join(` `);if(y.push(`<path d="${r} Z" fill="${v(t.fn)}" fill-opacity="0.18" stroke="none"/>`),t.label){let r=Math.floor(e.length/2),i=e[r][0];Math.abs(i-C)<28&&(i=C+28),x(i,Math.min(m.bottom-6,e[r][1]+(n[r][1]-e[r][1])*.6+4),t.label,{size:13,fill:v(t.fn),weight:600})}}let O=[];E.forEach((e,t)=>{let n=Gs(e.map(_),m);n.length&&y.push(`<path d="${Ks(n)}" fill="none" stroke="${v(t)}" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/>`);let r=n[n.length-1];O.push(r?r[r.length-1]:null)});for(let t of e.lines)if(t.x!==void 0){if(t.x<o||t.x>s)continue;let e=h(t.x);y.push(`<line x1="${Q(e)}" y1="${Q(m.top)}" x2="${Q(e)}" y2="${Q(m.bottom)}" stroke="${Vs}" stroke-opacity="0.55" stroke-width="1.3" stroke-dasharray="6 5"/>`),t.label&&x(e+5,m.top+12,t.label,{size:13,anchor:`start`})}else{if(t.y<c||t.y>l)continue;let e=g(t.y);y.push(`<line x1="${Q(m.left)}" y1="${Q(e)}" x2="${Q(m.right)}" y2="${Q(e)}" stroke="${Vs}" stroke-opacity="0.55" stroke-width="1.3" stroke-dasharray="6 5"/>`),t.label&&x(m.right-2,e-5,t.label,{size:13,anchor:`end`})}for(let t of e.tangents){let e=D(t.fn),n=e.y(t.x,a),r=We(e,t.x,a,s-o);if(!Number.isFinite(n)||!Number.isFinite(r))continue;let i=(s-o)*.24,c=Ws(_([t.x-i,n-r*i]),_([t.x+i,n+r*i]),m);if(!c)continue;y.push(`<line x1="${Q(c[0][0])}" y1="${Q(c[0][1])}" x2="${Q(c[1][0])}" y2="${Q(c[1][1])}" stroke="${Hs}" stroke-width="1.8" stroke-linecap="round"/>`);let[l,u]=_([t.x,n]);if(l>=m.left&&l<=m.right&&u>=m.top&&u<=m.bottom&&y.push(`<circle cx="${Q(l)}" cy="${Q(u)}" r="3.2" fill="${Hs}"/>`),t.label){let[n,r]=c[1],i=g(e.y(o+(n-m.left)/(m.right-m.left)*(s-o),a)),l=Number.isFinite(i)?i<r:!1,u=Ys(t.label,13),d=l?Math.min(m.bottom-4,r+14):Math.max(m.top+12,r-6);n+6+u<=m.right+24?x(n+6,d,t.label,{size:13,anchor:`start`,fill:Hs}):x(n-6,l?Math.min(m.bottom-4,r+28):d,t.label,{size:13,anchor:`end`,fill:Hs})}}for(let t of e.points){let e=t.y??D(t.fn).y(t.x,a);if(!Number.isFinite(e))continue;let[n,r]=_([t.x,e]);if(!(n<m.left-1||n>m.right+1||r<m.top-1||r>m.bottom+1)&&(y.push(`<circle cx="${Q(n)}" cy="${Q(r)}" r="3.8" fill="${t.fn===void 0?_t:v(t.fn)}"/>`),t.label)){let e=n>m.right-90;x(n+(e?-7:7),r-8<m.top+10?r+18:r-8,t.label,{size:13,anchor:e?`end`:`start`})}}for(let t of d){let n=(e.title?28:0)+12+t.row*18;y.push(`<rect x="${Q(t.x)}" y="${Q(n-6)}" width="16" height="4" rx="2" fill="${v(t.index)}"/>`),x(t.x+22,n,t.name,{size:13,anchor:`start`})}if(!d.length&&O[0]){let[e,t]=O[0],n=e>m.left+(m.right-m.left)*.55;x(n?Math.min(e-4,m.right-2):e+6,Math.max(m.top+12,Math.min(m.bottom-6,t-10)),u[0],{size:14,anchor:n?`end`:`start`,fill:v(0)})}let k=e.title?`<text x="${n/2}" y="20" font-size="15" text-anchor="middle" fill="${_t}" font-weight="600">${yt(e.title)}</text>`:``;return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${n} ${r}" width="${n}" height="${r}" font-family="${yt(vt)}">${y.join(``)}${k}${b.join(``)}</svg>`}let Zs=new Set([`svg`,`g`,`path`,`line`,`polyline`,`polygon`,`rect`,`circle`,`ellipse`,`text`,`tspan`,`textPath`,`defs`,`marker`,`lineargradient`,`radialgradient`,`stop`,`title`,`desc`,`clippath`,`mask`,`pattern`,`use`,`symbol`]),Qs=new Set(`xmlns.viewbox.width.height.x.y.x1.y1.x2.y2.cx.cy.r.rx.ry.d.points.transform.fill.stroke.stroke-width.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.opacity.fill-opacity.stroke-opacity.fill-rule.clip-rule.font-size.font-family.font-weight.font-style.text-anchor.dominant-baseline.alignment-baseline.letter-spacing.text-decoration.dx.dy.rotate.marker-start.marker-mid.marker-end.refx.refy.markerwidth.markerheight.markerunits.orient.offset.stop-color.stop-opacity.gradientunits.gradienttransform.fx.fy.id.clip-path.mask.preserveaspectratio.vector-effect.patternunits.patterncontentunits.href.xlink:href.startoffset.textlength.lengthadjust.style.class`.split(`.`)),$s=new Set([`fill`,`stroke`,`stroke-width`,`stroke-dasharray`,`stroke-linecap`,`stroke-linejoin`,`opacity`,`fill-opacity`,`stroke-opacity`,`font-size`,`font-family`,`font-weight`,`font-style`,`text-anchor`,`dominant-baseline`,`letter-spacing`]);function ec(e,t){let n=String(t).toLowerCase();return/javascript:|data:|expression\(|@import|<|>/u.test(n)||n.includes(`url(`)&&!/^url\(\s*#[\w-]+\s*\)$/u.test(n.trim())||(e===`href`||e===`xlink:href`)&&!/^#[\w-]+$/u.test(String(t).trim())?null:t}function tc(e){let t=[];for(let n of String(e).split(`;`)){let[e,...r]=n.split(`:`),i=e?.trim().toLowerCase(),a=r.join(`:`).trim();!i||!a||!$s.has(i)||ec(i,a)!==null&&t.push(`${i}:${a}`)}return t.join(`;`)}function nc(e){for(let t of[...e.childNodes]){if(t.nodeType===8){t.remove();continue}if(t.nodeType!==1)continue;let e=String(t.localName||t.nodeName).toLowerCase();if(!Zs.has(e)){t.remove();continue}for(let e of[...t.attributes]){let n=e.name.toLowerCase();if(n.startsWith(`on`)||!Qs.has(n)){t.removeAttribute(e.name);continue}if(n===`style`){let n=tc(e.value);n?t.setAttribute(`style`,n):t.removeAttribute(`style`);continue}ec(n,e.value)===null&&t.removeAttribute(e.name)}nc(t)}}function rc(e,{DOMParserImpl:t=globalThis.DOMParser,XMLSerializerImpl:n=globalThis.XMLSerializer}={}){if(typeof e!=`string`||!/^\s*<svg[\s>]/iu.test(e)||e.length>64*1024||!t)return null;let r;try{r=new t().parseFromString(e,`image/svg+xml`)}catch{return null}let i=r?.documentElement;if(!i||String(i.localName||i.nodeName).toLowerCase()!==`svg`||r.getElementsByTagName(`parsererror`).length)return null;for(let e of[...i.attributes]){let t=e.name.toLowerCase();(t.startsWith(`on`)||!Qs.has(t)||ec(t,e.value)===null)&&i.removeAttribute(e.name)}i.getAttribute(`xmlns`)||i.setAttribute(`xmlns`,`http://www.w3.org/2000/svg`),nc(i);let a=n?new n().serializeToString(i):i.outerHTML;return/^\s*<svg[\s>]/iu.test(a)?a:null}function ic(e,t=`light`){let n=String(e??``),r=t===`dark`?`dark`:`light`,i=`<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data: blob:; font-src data:; media-src data: blob:"><meta charset="utf-8"><meta name="color-scheme" content="${r}"><style>:root{color-scheme:${r}}html,body{margin:0;background:transparent;overflow:hidden}canvas,svg{max-width:100%;height:auto}</style>`;return/<head[^>]*>/iu.test(n)?n.replace(/<head[^>]*>/iu,e=>`${e}${i}`):/<html[^>]*>/iu.test(n)?n.replace(/<html[^>]*>/iu,e=>`${e}<head>${i}</head>`):`<!doctype html><html><head>${i}</head><body>${n}</body></html>`}let ac=1.25;function oc(e){return Math.min(3,Math.max(.05,Number(e)||1))}function sc(e,t,n,r){let i=oc(e.k*r),a=i/e.k;return{x:t-(t-e.x)*a,y:n-(n-e.y)*a,k:i}}function cc(e,t,{margin:n=24,maxZoom:r=3}={}){let i=oc(Math.min(r,(e.width-n*2)/Math.max(1,t.width),(e.height-n*2)/Math.max(1,t.height)));return{k:i,x:(e.width-t.width*i)/2-t.x*i,y:(e.height-t.height*i)/2-t.y*i}}function lc(e,t,{top:n=24,bottom:r=56}={}){let i=e.height-r;return t.height>i-n?n-t.top:t.top+t.height>i?i-(t.top+t.height):t.top<n?n-t.top:0}function uc(e,t,n,r=80){let i=n.width*e.k,a=n.height*e.k;return{...e,x:Math.min(t.width-r,Math.max(r-i,e.x)),y:Math.min(t.height-r,Math.max(r-a,e.y))}}function dc(e,t){let n=e.deltaMode===1?16:e.deltaMode===2?t:1;return{x:e.deltaX*n,y:e.deltaY*n}}function fc(e){return Math.exp(-Math.max(-120,Math.min(120,e))*.0045)}function pc({room:e,natural:t,widest:n=t,floor:r=.7}){if(!(e>0)||!(t>e))return{mode:`fit`,scale:1};let i=Math.min(1,e/n),a=e/t;return a>=r*i?{mode:`shrink`,scale:a}:{mode:`wrap`,scale:i}}function mc(e){return[...e.querySelectorAll(`.katex-html > .katex-base, .katex-html > .katex-tag`)]}function hc(e){e.style.fontSize=``,e.removeAttribute(`data-fit`);let t=e.clientWidth,n=mc(e).map(e=>e.getBoundingClientRect().width),r=pc({room:t,natural:e.scrollWidth,widest:Math.max(0,...n)});if(r.mode===`fit`)return r.mode;e.dataset.fit=r.mode;let i=(Number.parseFloat(getComputedStyle(e).fontSize)||20)*r.scale;r.scale<1&&(e.style.fontSize=`${i}px`);for(let t=0;t<3&&e.scrollWidth>e.clientWidth;t+=1)i*=(e.clientWidth-1)/e.scrollWidth,e.style.fontSize=`${i}px`;return r.mode}function gc(e){let t=[],n=null;for(let r of e){if(!(r.right>r.left))continue;let e=t.at(-1);e&&r.left>=n.right-2&&r.top<e.bottom?(e.right=Math.max(e.right,r.right),e.top=Math.min(e.top,r.top),e.bottom=Math.max(e.bottom,r.bottom)):t.push({left:r.left,right:r.right,top:r.top,bottom:r.bottom}),n=r}return t}function _c(e){let t=e.getBoundingClientRect();return gc(mc(e).map(e=>{let n=e.getBoundingClientRect();return{left:n.left-t.left,right:n.right-t.left,top:n.top-t.top,bottom:n.bottom-t.top}}))}let vc=e=>`${Math.round(e*10)/10}px`;function yc(e,t){if(t>=1)return{clip:``,pen:null};if(!e.length)return{clip:`inset(0 ${Math.round((1-Math.max(0,t))*1e3)/10}% 0 0)`,pen:null};let n=e.reduce((e,t)=>e+(t.right-t.left),0),r=Math.max(0,t)*n;for(let[t,n]of e.entries()){let i=n.right-n.left;if(r>i&&t<e.length-1){r-=i;continue}let a=n.left+Math.min(i,r),o=t?vc((e[t-1].bottom+n.top)/2):`0`,s=t<e.length-1?vc((n.bottom+e[t+1].top)/2):`100%`;return{clip:`polygon(0 0, 100% 0, 100% ${o}, ${vc(a)} ${o}, ${vc(a)} ${s}, 0 ${s})`,pen:{x:a,y:n.bottom}}}return{clip:``,pen:null}}let bc=/\$[^$\n]+\$/gu,xc=/(\$[^$\n]+\$|\*\*(?:\$[^$\n]+\$|[^*\n])+?\*\*|==(?:\$[^$\n]+\$|=(?!=)|[^=\n])+?==)/gu;function Sc(e,t,n){let r=0;for(let i of t.matchAll(bc))i.index>r&&e.push({kind:n,text:t.slice(r,i.index)}),e.push({kind:`math`,tex:i[0].slice(1,-1),style:n}),r=i.index+i[0].length;r<t.length&&e.push({kind:n,text:t.slice(r)})}function Cc(e){let t=[],n=String(e??``),r=0;for(let e of n.matchAll(xc)){e.index>r&&t.push({kind:`text`,text:n.slice(r,e.index)});let i=e[0];i.startsWith(`$`)?t.push({kind:`math`,tex:i.slice(1,-1)}):Sc(t,i.slice(2,-2),i.startsWith(`**`)?`bold`:`mark`),r=e.index+i.length}return r<n.length&&t.push({kind:`text`,text:n.slice(r)}),t}function wc(e){return e.kind===`math`?Math.min(10,Math.max(2,e.tex.length/2)):[...e.text].length}function Tc(e){return e.reduce((e,t)=>e+wc(t),0)}function Ec(e,t){let n=[],r=t;for(let t of e){if(r<=0)break;let e=wc(t);if(t.kind===`math`){r>=e&&n.push(t),r-=e;continue}let i=[...t.text];i.length<=r?n.push(t):n.push({...t,text:i.slice(0,Math.max(0,Math.floor(r))).join(``)}),r-=i.length}return n}let Dc={alpha:`α`,beta:`β`,gamma:`γ`,delta:`δ`,epsilon:`ε`,varepsilon:`ε`,zeta:`ζ`,eta:`η`,theta:`θ`,vartheta:`ϑ`,iota:`ι`,kappa:`κ`,varkappa:`ϰ`,lambda:`λ`,mu:`μ`,nu:`ν`,xi:`ξ`,pi:`π`,varpi:`ϖ`,rho:`ρ`,varrho:`ϱ`,sigma:`σ`,varsigma:`ς`,tau:`τ`,upsilon:`υ`,phi:`φ`,varphi:`φ`,chi:`χ`,psi:`ψ`,omega:`ω`,Gamma:`Γ`,Delta:`Δ`,Theta:`Θ`,Lambda:`Λ`,Xi:`Ξ`,Pi:`Π`,Sigma:`Σ`,Upsilon:`Υ`,Phi:`Φ`,Psi:`Ψ`,Omega:`Ω`},Oc={cdot:`·`,times:`×`,div:`÷`,pm:`±`,mp:`∓`,ast:`∗`,star:`⋆`,bullet:`•`,oplus:`⊕`,otimes:`⊗`,odot:`⊙`,setminus:`∖`,backslash:`∖`,le:`≤`,leq:`≤`,leqslant:`≤`,ge:`≥`,geq:`≥`,geqslant:`≥`,lt:`<`,gt:`>`,neq:`≠`,ne:`≠`,approx:`≈`,equiv:`≡`,cong:`≅`,simeq:`≃`,sim:`∼`,propto:`∝`,ll:`≪`,gg:`≫`,doteq:`≐`,mid:`|`,vert:`|`,lvert:`|`,rvert:`|`,Vert:`‖`,lVert:`‖`,rVert:`‖`,parallel:`∥`,perp:`⊥`,to:`→`,rightarrow:`→`,longrightarrow:`→`,gets:`←`,leftarrow:`←`,longleftarrow:`←`,leftrightarrow:`↔`,longleftrightarrow:`↔`,Rightarrow:`⇒`,Longrightarrow:`⇒`,implies:`⇒`,Leftarrow:`⇐`,Longleftarrow:`⇐`,impliedby:`⇐`,Leftrightarrow:`⇔`,Longleftrightarrow:`⇔`,iff:`⇔`,mapsto:`↦`,longmapsto:`↦`,uparrow:`↑`,downarrow:`↓`,Uparrow:`⇑`,Downarrow:`⇓`,updownarrow:`↕`,nearrow:`↗`,searrow:`↘`,rightleftharpoons:`⇌`,leftrightharpoons:`⇋`,rightharpoonup:`⇀`,hookrightarrow:`↪`,in:`∈`,notin:`∉`,ni:`∋`,subset:`⊂`,subseteq:`⊆`,subsetneq:`⊊`,supset:`⊃`,supseteq:`⊇`,cup:`∪`,cap:`∩`,emptyset:`∅`,varnothing:`∅`,forall:`∀`,exists:`∃`,nexists:`∄`,neg:`¬`,lnot:`¬`,land:`∧`,wedge:`∧`,lor:`∨`,vee:`∨`,therefore:`∴`,because:`∵`,sum:`Σ`,prod:`Π`,int:`∫`,iint:`∬`,iiint:`∭`,oint:`∮`,partial:`∂`,nabla:`∇`,infty:`∞`,hbar:`ħ`,ell:`ℓ`,aleph:`ℵ`,Re:`ℜ`,Im:`ℑ`,degree:`°`,circ:`°`,prime:`′`,angle:`∠`,measuredangle:`∡`,triangle:`△`,square:`□`,ldots:`…`,dots:`…`,dotsc:`…`,cdots:`⋯`,dotsb:`⋯`,vdots:`⋮`,ddots:`⋱`,langle:`⟨`,rangle:`⟩`,lfloor:`⌊`,rfloor:`⌋`,lceil:`⌈`,rceil:`⌉`,lbrace:`{`,rbrace:`}`,lbrack:`[`,rbrack:`]`,colon:`:`},kc={0:`⁰`,1:`¹`,2:`²`,3:`³`,4:`⁴`,5:`⁵`,6:`⁶`,7:`⁷`,8:`⁸`,9:`⁹`,"+":`⁺`,"-":`⁻`,"=":`⁼`,"(":`⁽`,")":`⁾`,n:`ⁿ`,i:`ⁱ`,x:`ˣ`,T:`ᵀ`},Ac={0:`₀`,1:`₁`,2:`₂`,3:`₃`,4:`₄`,5:`₅`,6:`₆`,7:`₇`,8:`₈`,9:`₉`,"+":`₊`,"-":`₋`,"=":`₌`,"(":`₍`,")":`₎`,a:`ₐ`,e:`ₑ`,i:`ᵢ`,n:`ₙ`,x:`ₓ`,k:`ₖ`,t:`ₜ`},jc=new Set(`sin.cos.tan.cot.sec.csc.arcsin.arccos.arctan.sinh.cosh.tanh.coth.log.ln.lg.exp.lim.limsup.liminf.max.min.sup.inf.det.dim.ker.deg.arg.gcd.hom.Pr`.split(`.`)),Mc={xrightarrow:`→`,xleftarrow:`←`,xRightarrow:`⇒`,xLeftarrow:`⇐`,xleftrightarrow:`↔`,xLeftrightarrow:`⇔`,xrightleftharpoons:`⇌`,xleftrightharpoons:`⇋`,xhookrightarrow:`↪`,xmapsto:`↦`,xlongequal:`=`,xtofrom:`⇄`},Nc={bar:`̄`,overline:`̅`,vec:`⃗`,overrightarrow:`⃗`,overleftarrow:`⃖`,overleftrightarrow:`⃡`,hat:`̂`,widehat:`̂`,tilde:`̃`,widetilde:`̃`,check:`̌`,breve:`̆`,acute:`́`,grave:`̀`,dot:`̇`,ddot:`̈`,mathring:`̊`},Pc={C:`ℂ`,H:`ℍ`,N:`ℕ`,P:`ℙ`,Q:`ℚ`,R:`ℝ`,Z:`ℤ`},Fc=new Set(`text.textrm.textbf.textit.textsf.texttt.textnormal.textup.emph.mathrm.mathbf.mathit.mathsf.mathtt.mathcal.mathscr.mathfrak.mathnormal.boldsymbol.bm.pmb.mbox.hbox.boxed.fbox.underline.cancel.bcancel.xcancel.sout.smash.mathop.mathord.mathrel.mathbin.mathpunct.mathopen.mathclose.mathinner.url`.split(`.`)),Ic=new Set([`label`,`color`,`phantom`,`hphantom`,`vphantom`,`hspace`,`hspace*`,`vspace`,`vspace*`,`mspace`,`mkern`,`kern`,`hskip`,`mskip`]),Lc={",":` `,":":` `,";":` `,">":` `," ":` `,"!":``,quad:` `,qquad:` `,enspace:` `,thinspace:` `,medspace:` `,thickspace:` `,space:` `,nobreakspace:` `},Rc=new Set([`displaystyle`,`textstyle`,`scriptstyle`,`scriptscriptstyle`,`limits`,`nolimits`,`notag`,`nonumber`,`hline`,`hdashline`,`allowbreak`,`nobreak`,`relax`,`strut`,`negthinspace`,`negmedspace`,`negthickspace`]),zc=/^(?:left|right|middle|[bB]igg?[lrm]?)$/u,Bc=new Set([`operatorname`,`tag`,`hspace`,`vspace`]),Vc={matrix:``,smallmatrix:``,array:``,darray:``,pmatrix:`()`,bmatrix:`[]`,Bmatrix:`{}`,vmatrix:`||`,Vmatrix:`‖‖`},Hc=/^(?:[\d.]+|[\p{L}\p{N}][\p{M}\p{Lm}′'⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎]*)$/u,Uc=(e,t)=>Object.hasOwn(e,t)?e[t]:void 0,Wc=e=>Hc.test(e)?e:`(${e})`,Gc=(e,t)=>[...e.replace(/\s+/gu,``)].map(e=>t[e]??e).join(``),Kc=(e,t)=>{let n=t.map(e=>e.trim()).filter(Boolean).join(`, `);return n?`${e}(${n})`:e};function qc(e,t){return e.map(e=>e.trim()).filter(Boolean).reduce((e,n)=>e?`${e}${/[,,;;::]$/u.test(e)?` `:t}${n}`:n,``)}function Jc(e,t){return!e.includes(``)&&!e.includes(``)?e:qc(e.split(``).map(e=>qc(e.split(``),t)),`; `)}function Yc(e){let t=0,n=``,r=()=>{for(;/\s/u.test(e[t]??``);)t+=1},i=(n,r)=>{let i=t+1,a=0;for(;t<e.length;t+=1)if(e[t]===`\\`)t+=1;else if(e[t]===n)a+=1;else if(e[t]===r&&--a===0)return e.slice(i,t++);return e.slice(i)},a=()=>{let n=t;for(;/[a-zA-Z]/u.test(e[t]??``);)t+=1;return t===n?e[t++]??``:(e[t]===`*`&&Bc.has(e.slice(n,t))&&(t+=1),e.slice(n,t))},o=()=>{if(r(),t>=e.length)return``;if(e[t]===`{`)return Jc(Yc(i(`{`,`}`)),` `);if(e[t]===`\\`)return t+=1,l(a());let n=String.fromCodePoint(e.codePointAt(t));return t+=n.length,n},s=()=>(r(),e[t]===`[`?Jc(Yc(i(`[`,`]`)),` `):``),c=()=>{let n=o().trim();/^(?:d?array|subarray|alignat\*?|alignedat)$/u.test(n)&&o();let r=`\\begin{${n}}`,i=`\\end{${n}}`,a=1,s=t,c=e.length;for(;s<e.length;){let t=e.indexOf(i,s);if(t<0)break;let n=e.indexOf(r,s);if(n>=0&&n<t){a+=1,s=n+r.length;continue}if(--a,!a){c=t;break}s=t+i.length}let l=Yc(e.slice(t,c));t=Math.min(e.length,c+i.length);let u=Uc(Vc,n);return u===void 0?Jc(l,/^d?r?cases\*?$/u.test(n)?`, `:` `):`${u.charAt(0)}${Jc(l,`, `)}${u.charAt(1)}`},l=n=>{let i=Uc(Lc,n)??Uc(Dc,n)??Uc(Oc,n);if(i!==void 0)return i;if(Rc.has(n))return``;if(zc.test(n))return r(),e[t]===`.`&&(t+=1),``;if(jc.has(n))return`${n}`;let a=Uc(Mc,n);if(a){let e=s();return Kc(a,[o(),e])}let l=Uc(Nc,n);if(l)return[...o()].map(e=>/\s/u.test(e)?e:`${e}${l}`).join(``);if(Fc.has(n))return o();if(Ic.has(n)){let n=/^\s*-?[\d.]+\s*(?:em|ex|mu|pt|px|cm|mm|in|bp|pc|dd|cc|sp)/u.exec(e.slice(t));return n?t+=n[0].length:o(),` `}switch(n){case`frac`:case`dfrac`:case`tfrac`:case`cfrac`:{let e=o();return`${Wc(e)}/${Wc(o())}`}case`binom`:case`dbinom`:case`tbinom`:return`C(${o()}, ${o()})`;case`sqrt`:{let e=s();return`${Gc(e,kc)}√${Wc(o())}`}case`overset`:case`underset`:case`stackrel`:{let e=o();return Kc(o(),[e])}case`overbrace`:case`underbrace`:{let n=o();return r(),e[t]!==`^`&&e[t]!==`_`?n:(t+=1,Kc(n,[o()]))}case`mathbb`:case`Bbb`:return[...o()].map(e=>Pc[e]??e).join(``);case`operatorname`:case`operatorname*`:return`${o()}`;case`textcolor`:case`colorbox`:case`href`:return o(),o();case`fcolorbox`:return o(),o(),o();case`tag`:return` (${o()})`;case`tag*`:return` ${o()}`;case`pmod`:return` (mod ${o()})`;case`pod`:return` (${o()})`;case`bmod`:case`mod`:return` mod `;case`not`:return`${o()}\u0338`;case`begin`:return c();case`end`:return o(),``;case`\\`:case`cr`:case`newline`:return s(),``;case`|`:return`‖`;default:return n.length===1&&!/[a-zA-Z]/u.test(n)?n:``}};for(;t<e.length;){let r=e[t];r===`\\`?(t+=1,n+=l(a())):r===`{`?n+=Yc(i(`{`,`}`)):r===`^`||r===`_`?(t+=1,n+=Gc(o(),r===`^`?kc:Ac)):(t+=1,n+=r===`&`?``:r===`~`?` `:r===`}`?``:r)}return n}function Xc(e){return Jc(Yc(String(e??``)),` `).replace(/\u0001(?=[\p{Lu}\p{Ll}\p{Lo}\d])/gu,` `).replace(/[\u0001-\u0003]/gu,``).replace(/\s+/gu,` `).trim().normalize(`NFC`)}function Zc(e){return Cc(e).map(e=>e.kind===`math`?Xc(e.tex):e.text).join(``)}let Qc=new Set([`。`,`!`,`?`,`!`,`?`,`;`,`;`]),$c=new Set([`”`,`’`,`」`,`』`,`)`,`)`,`】`,`]`,`"`,`'`,`…`]);function el(e){let t=String(e??``),n=[],r=``,i=()=>{let e=r.trim();e&&n.push(e),r=``},a=0,o=e=>{let t=[...e];for(let e=0;e<t.length;e+=1){let n=t[e];if(n===`
|
|
264
|
+
`){i();continue}r+=n;let a=n===`.`&&(e+1===t.length||/\s/u.test(t[e+1])&&/[\p{Lu}\p{Lo}]/u.test(t[e+2]??``));if(!(!Qc.has(n)&&!a)){for(;e+1<t.length&&(Qc.has(t[e+1])||$c.has(t[e+1]));)r+=t[++e];i()}}};for(let e of t.matchAll(bc))o(t.slice(a,e.index)),r+=e[0],a=e.index+e[0].length;return o(t.slice(a)),i(),n}function tl(e,t){return Math.max(1,Math.ceil(String(e??``).length/t))}function nl(e){switch(e.t){case`title`:return 1.6;case`h`:return 1.4;case`p`:return tl(e.text,26)*1.05;case`math`:{let t=[...Xc(e.tex)].length;return t<=40?2:2+(Math.ceil(t/28)-1)*1.2}case`list`:return e.items.reduce((e,t)=>e+tl(t,24),0)*1.05;case`note`:return tl(e.text,24)+1;case`table`:return(e.rows.length+1)*1.1+.6;case`code`:return Math.min(14,e.code.split(`
|
|
265
|
+
`).length*.8+1);case`svg`:case`chart`:return 8.5;case`plot`:return(e.equal?10:9)+e.params.length*1.1;case`anim`:return Math.round(e.height/34);default:return 0}}function rl(e){let t=[],n=new Map,r=null,i=0,a=0,o=!1,s=e=>{r={title:e??``,columns:[[],[]]},t.push(r),i=0,a=0,o=!1};return s(``),e.forEach((e,c)=>{for(let l of e.ops??[]){if(l.t===`page`){r.columns[0].length||r.columns[1].length?s(l.title):r.title=l.title||r.title,n.set(l.id,{page:t.length-1,column:i});continue}if(l.t===`col`){i===0?(i=1,a=0):o?o=!1:s(``),n.set(l.id,{page:t.length-1,column:i});continue}if(l.t===`mark`){n.set(l.id,n.get(l.ref)??{page:t.length-1,column:i});continue}if(l.t===`title`){r.columns[0].length||r.columns[1].length?s(l.text):r.title=l.text,n.set(l.id,{page:t.length-1,column:0,title:!0});continue}let e=nl(l);a>0&&a+e>26&&(i===0?(i=1,a=0,o=!0):s(``)),r.columns[i].push({op:l,step:c}),n.set(l.id,{page:t.length-1,column:i}),a+=e}}),{pages:t,where:n}}function il(e,t){return e.map((e,n)=>{let r=new Map(e.ops.map(e=>[e.id,`${t}${e.id}`]));return{...e,id:`${t}${e.id??n}`,aside:!0,ops:e.ops.map(e=>({...e,id:r.get(e.id),...e.t===`mark`?{ref:r.get(e.ref)??e.ref}:{}})),...e.check?{check:{...e.check,id:`${t}${e.check.id}`}}:{}}})}function al(e,t=12e3){let n=[];for(let t of e)for(let e of t.ops)if(e.text&&n.push(e.text),e.caption&&n.push(e.caption),e.items&&n.push(...e.items),e.head&&n.push(...e.head),e.rows)for(let t of e.rows)n.push(...t);return[...new Set([...n.join(``)])].join(``).slice(0,t)}function ol(e,t,n){return!n||e<n.index?1:e>n.index?0:t<n.op?1:t>n.op?0:n.progress}function sl({text:e,reveal:t=1}){let n=(0,r.useMemo)(()=>Cc(e),[e]),a=(0,r.useMemo)(()=>Tc(n),[n]);return(t>=1?n:Ec(n,a*t)).map((e,t)=>{if(e.kind===`math`){let n=(0,i.jsx)(Bs,{tex:e.tex},t);return e.style===`mark`?(0,i.jsx)(`mark`,{children:n},t):e.style===`bold`?(0,i.jsx)(`strong`,{children:n},t):n}return e.kind===`bold`?(0,i.jsx)(`strong`,{children:e.text},t):e.kind===`mark`?(0,i.jsx)(`mark`,{children:e.text},t):(0,i.jsx)(`span`,{children:e.text},t)})}function cl({markup:e,reveal:t,caption:n}){let a=(0,r.useRef)(null),o=(0,r.useMemo)(()=>rc(e),[e]);return(0,r.useLayoutEffect)(()=>{let e=a.current?.querySelector(`svg`);if(!e)return;let n=[...e.querySelectorAll(`path,line,polyline,polygon,rect,circle,ellipse`)],r=[...e.querySelectorAll(`text`)],i=r.length?.8:1;n.forEach((e,r)=>{let a=0;try{a=e.getTotalLength?.()??0}catch{a=0}let o=r/Math.max(1,n.length)*i,s=(r+1)/Math.max(1,n.length)*i,c=Math.min(1,Math.max(0,(t-o)/Math.max(1e-4,s-o)));a>0&&c<1?(e.style.strokeDasharray=`${a}`,e.style.strokeDashoffset=`${a*(1-c)}`):(e.style.strokeDasharray=``,e.style.strokeDashoffset=``),e.style.fillOpacity=c>=1?``:String(c*.6),a||(e.style.opacity=String(c))});let o=r.length?Math.min(1,Math.max(0,(t-i)/(1-i))):1;r.forEach(e=>{e.style.opacity=String(t>=1?1:o)})},[t,o]),o?(0,i.jsxs)(`div`,{className:`aha-op-figure`,children:[(0,i.jsx)(`div`,{ref:a,dangerouslySetInnerHTML:{__html:o}}),n?(0,i.jsx)(`div`,{className:`aha-figCaption`,style:{opacity:t>=1?1:.4},children:n}):null]}):null}function ll({op:e,reveal:t,still:n,onInteract:a}){let o=(0,r.useMemo)(()=>Us(e),[e]),[s,c]=(0,r.useState)(()=>He(e));(0,r.useEffect)(()=>{c(He(e))},[JSON.stringify([e.fns,e.params])]);let l=(0,r.useMemo)(()=>o?Xs(e,s,{prepared:o}):``,[e,o,s]);if(!o)return null;let u=(e,t)=>{a?.(),c(n=>n.map((n,r)=>r===e?t:n))},d=t>=1;return(0,i.jsxs)(`div`,{className:`aha-plot`,children:[(0,i.jsx)(cl,{markup:l,reveal:t,caption:``}),!n&&e.params.length?(0,i.jsx)(`div`,{className:`aha-plotSliders`,"data-written":d,"aria-hidden":!d,children:e.params.map((e,t)=>(0,i.jsxs)(`label`,{className:`aha-plotSlider`,children:[(0,i.jsx)(`span`,{className:`aha-plotName`,children:e.label||e.name}),(0,i.jsx)(`input`,{type:`range`,min:e.min,max:e.max,step:e.step,value:s[t]??e.value,disabled:!d,onPointerDown:()=>a?.(),onChange:e=>u(t,Number(e.currentTarget.value))}),(0,i.jsx)(`span`,{className:`aha-plotValue`,children:Ye(s[t]??e.value)})]},e.name))}):null,e.caption?(0,i.jsx)(`div`,{className:`aha-figCaption`,style:{opacity:d?1:.4},children:e.caption}):null]})}function ul({op:e,reveal:t,theme:n}){let a=(0,r.useMemo)(()=>ic(e.html,n),[e.html,n]),o=(0,r.useRef)(null),[s,c]=(0,r.useState)(e.height);return(0,r.useLayoutEffect)(()=>{let t=o.current;if(!t||typeof ResizeObserver!=`function`)return;let n=()=>c(Math.round(Math.max(120,Math.min(e.height,e.height*t.clientWidth/560))));n();let r=new ResizeObserver(n);return r.observe(t),()=>r.disconnect()},[e.height,t>0]),t<=0?null:(0,i.jsxs)(`div`,{className:`aha-op-figure`,style:{opacity:Math.min(1,t*3)},children:[(0,i.jsx)(`iframe`,{ref:o,className:`aha-op-anim`,title:e.caption||`animation`,sandbox:`allow-scripts`,referrerPolicy:`no-referrer`,srcDoc:a,style:{height:s,colorScheme:n===`dark`?`dark`:`light`}}),e.caption?(0,i.jsx)(`div`,{className:`aha-figCaption`,children:e.caption}):null]})}function dl({tex:e,reveal:t}){let n=(0,r.useRef)(null),[a,o]=(0,r.useState)([]);(0,r.useLayoutEffect)(()=>{let e=n.current;if(!e)return;let t=-1,r=()=>{t=e.clientWidth,hc(e),o(_c(e))};r();let i=0,a=typeof ResizeObserver==`function`?new ResizeObserver(()=>{e.clientWidth!==t&&(cancelAnimationFrame(i),i=requestAnimationFrame(r))}):null;a?.observe(e);let s=typeof document<`u`?document.fonts:null;return s?.addEventListener?.(`loadingdone`,r),()=>{a?.disconnect(),cancelAnimationFrame(i),s?.removeEventListener?.(`loadingdone`,r)}},[e]);let{clip:s,pen:c}=yc(a,t);return(0,i.jsx)(`div`,{ref:n,className:`aha-op-math`,style:s?{clipPath:s}:void 0,"data-pen":c?`${Math.round(c.x)} ${Math.round(c.y)}`:void 0,children:(0,i.jsx)(Bs,{tex:e,display:!0})})}function fl({op:e,label:t}){return e.poster?(0,i.jsx)(cl,{markup:e.poster,reveal:1,caption:e.caption}):(0,i.jsxs)(`div`,{className:`aha-op-note`,"data-tone":`tip`,children:[`▶ `,e.caption||t]})}function pl({op:e,reveal:t,marks:n,aside:r,now:a,opRef:o,theme:s,still:c=!1,animationLabel:l=``,onInteract:u,fixedNote:d}){let f=n.map(e=>(0,i.jsx)(`span`,{className:e.style===`circle`?`aha-markRing`:e.style===`box`?`aha-markBox`:`aha-markLine`,style:{opacity:e.reveal,clipPath:`inset(0 ${100-e.reveal*100}% 0 0)`}},e.id)),p;switch(e.t){case`h`:p=(0,i.jsx)(`div`,{className:`aha-op-h`,children:(0,i.jsx)(`span`,{children:(0,i.jsx)(sl,{text:e.text,reveal:t})})});break;case`p`:p=(0,i.jsx)(`div`,{className:`aha-op-p`,children:(0,i.jsx)(sl,{text:e.text,reveal:t})});break;case`math`:p=(0,i.jsx)(dl,{tex:e.tex,reveal:t});break;case`list`:{let n=e.items.reduce((e,t)=>e+Tc(Cc(t)),0)*t;p=(0,i.jsx)(e.ordered?`ol`:`ul`,{className:`aha-op-list`,children:e.items.map((e,r)=>{let a=Tc(Cc(e)),o=t>=1?1:Math.max(0,Math.min(1,n/Math.max(1,a)));return n-=a,o>0?(0,i.jsx)(`li`,{children:(0,i.jsx)(sl,{text:e,reveal:o})},r):null})});break}case`note`:p=(0,i.jsx)(`div`,{className:`aha-op-note`,"data-tone":e.tone,children:(0,i.jsx)(sl,{text:e.text,reveal:t})});break;case`svg`:p=(0,i.jsx)(cl,{markup:e.svg,reveal:t,caption:e.caption});break;case`chart`:p=(0,i.jsx)(cl,{markup:Ot(e),reveal:t,caption:``});break;case`plot`:p=(0,i.jsx)(ll,{op:e,reveal:t,still:c,onInteract:u});break;case`table`:{let n=t>=1?e.rows.length:Math.floor(e.rows.length*t);p=(0,i.jsxs)(`table`,{className:`aha-op-table`,children:[e.head.length?(0,i.jsx)(`thead`,{children:(0,i.jsx)(`tr`,{children:e.head.map((e,t)=>(0,i.jsx)(`th`,{children:(0,i.jsx)(sl,{text:e})},t))})}):null,(0,i.jsx)(`tbody`,{children:e.rows.slice(0,n).map((e,t)=>(0,i.jsx)(`tr`,{children:e.map((e,t)=>(0,i.jsx)(`td`,{children:(0,i.jsx)(sl,{text:e})},t))},t))})]});break}case`code`:{let n=e.code.split(`
|
|
266
266
|
`);p=(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`pre`,{className:`aha-op-code`,children:(t>=1?n:n.slice(0,Math.ceil(n.length*t))).join(`
|
|
267
|
-
`)}),e.caption?(0,i.jsx)(`div`,{className:`aha-figCaption`,children:e.caption}):null]});break}case`anim`:p=c?(0,i.jsx)(dl,{op:e,label:l}):(0,i.jsx)(ll,{op:e,reveal:t,theme:s});break;default:p=null}let m=e.fixed&&d&&t>=1?d(e):null;return(0,i.jsxs)(`div`,{ref:o,className:`aha-op`,"data-t":e.t,"data-aside":r?`true`:void 0,"data-now":a?`true`:void 0,"data-op":e.id,children:[p,f,m?(0,i.jsxs)(`span`,{className:`aha-fixed`,title:m.title,children:[`✎ `,m.label]}):null]})}function pl({target:e,active:t,stage:n,scale:a=1,scrolls:o=!1}){let[s,c]=(0,r.useState)(null);return(0,r.useLayoutEffect)(()=>{let r=e?.current,i=n?.current;if(!t||!r||!i){c(e=>e===null?e:null);return}let s=r.getBoundingClientRect(),l=i.getBoundingClientRect(),u=r.querySelector(`.aha-op-math`),d=u?[]:r.querySelectorAll(`span,strong,mark,li,td,pre`),f=d[d.length-1]?.getBoundingClientRect(),p=f&&f.width?f.right:s.left+s.width*t.progress,m=f&&f.height?f.bottom-4*a:s.top+s.height/2;if(u?.dataset.pen){let[e,t]=u.dataset.pen.split(` `).map(Number),n=u.getBoundingClientRect();p=n.left+e*a,m=n.top+(t-4)*a}let h={left:Math.round((p-l.left)/a+(o?i.scrollLeft:0)),top:Math.round((m-l.top)/a+(o?i.scrollTop:0)),glide:!u};c(e=>e&&e.left===h.left&&e.top===h.top&&e.glide===h.glide?e:h)}),s?(0,i.jsxs)(`svg`,{className:`aha-pencil`,style:{left:s.left,top:s.top},"data-glide":s.glide,viewBox:`0 0 24 24`,"aria-hidden":`true`,children:[(0,i.jsx)(`path`,{d:`M3 21l3.5-1 11-11-2.5-2.5-11 11L3 21z`,fill:`var(--pencil)`,stroke:`var(--ink)`,strokeWidth:`1.2`,strokeLinejoin:`round`}),(0,i.jsx)(`path`,{d:`M14.5 6.5l2.5 2.5 2-2a1.77 1.77 0 0 0-2.5-2.5l-2 2z`,fill:`var(--accent)`,stroke:`var(--ink)`,strokeWidth:`1.2`})]}):null}let ml=new Set([`p`,`h`,`list`,`note`,`math`,`title`]);function hl({page:e,title:t,board:n,activeRef:r}){let{reveal:a,marks:o,nowIds:s,opMeta:c,activeOp:l,theme:u,onInteract:d,fixedNote:f}=n,p=t?a(t.id):1;return(0,i.jsxs)(i.Fragment,{children:[e.title&&p>0?(0,i.jsx)(`h2`,{className:`aha-boardTitle`,children:(0,i.jsx)(`span`,{children:(0,i.jsx)(ol,{text:e.title,reveal:p})})}):null,(0,i.jsx)(`div`,{className:`aha-cols`,children:e.columns.map((e,t)=>(0,i.jsx)(`div`,{className:`aha-colBody`,children:e.map(({op:e})=>{let t=a(e.id);if(t<=0)return null;let n=l?.id===e.id&&t<1;return(0,i.jsx)(fl,{op:e,reveal:t,marks:o.get(e.id)??[],aside:c.get(e.id)?.aside,now:s.has(e.id),opRef:n?r:void 0,theme:u,onInteract:d,fixedNote:f},e.id)})},t))})]})}function gl(e,t,n){let{reveal:r,marks:i,nowIds:a}=n,o=[t?`t${Math.round(r(t.id)*1e3)}`:``];for(let t of e.columns)for(let{op:e}of t){let t=Math.round(r(e.id)*1e3);t<=0||o.push(`${e.id}:${t}${a.has(e.id)?`*`:``}${(i.get(e.id)??[]).map(e=>`/${e.id}:${Math.round(e.reveal*1e3)}`).join(``)}`)}return o.join(` `)}let _l=(0,r.memo)(function({index:e,page:t,title:n,board:r,activeRef:a,label:o}){return(0,i.jsx)(`section`,{className:`aha-frame`,"data-frame":e,"aria-label":o,children:(0,i.jsx)(hl,{page:t,title:n,board:r,activeRef:a})})},(e,t)=>e.signature===t.signature&&e.page===t.page&&e.activeRef===t.activeRef&&e.board.theme===t.board.theme&&e.label===t.label);function vl({board:e,layout:t,position:n,activePage:a,pencil:o}){let{activeOp:s}=e,[c,l]=(0,r.useState)(null);(0,r.useEffect)(()=>{l(null)},[a]);let u=Math.min(t.pages.length-1,c??a),d=t.pages[u],f=(0,r.useRef)(null),p=(0,r.useRef)(null);(0,r.useEffect)(()=>{let e=f.current,t=s?e?.querySelector(`[data-op="${s.id}"]`):null;if(!e||!t)return;let n=t.getBoundingClientRect(),r=e.getBoundingClientRect();n.bottom>r.bottom-24?e.scrollTo({top:e.scrollTop+n.bottom-r.bottom+56,behavior:`smooth`}):n.top<r.top+8&&e.scrollTo({top:Math.max(0,e.scrollTop-(r.top-n.top)-24),behavior:`smooth`})},[s?`${s.id}:${Math.round((n?.progress??0)*4)}`:``,u]);let m=t.pages.map((e,t)=>t).filter(e=>e<=Math.max(a,c??0)||!n);return(0,i.jsxs)(i.Fragment,{children:[m.length>1?(0,i.jsx)(`div`,{className:`aha-pager`,children:m.map(e=>(0,i.jsx)(`button`,{type:`button`,"data-active":e===u,onClick:()=>l(e),children:e+1},e))}):null,(0,i.jsxs)(`div`,{className:`aha-boardScroll`,ref:f,children:[d?(0,i.jsx)(hl,{page:d,title:e.titles.get(u),board:e,activeRef:p}):null,(0,i.jsx)(pl,{target:p,stage:f,scrolls:!0,active:o})]})]})}function yl({board:e,layout:t,position:n,activePage:a,pencil:o}){let{t:s}=v(),{activeOp:c}=e,l=(0,r.useRef)(null),u=(0,r.useRef)(null),d=(0,r.useRef)(null),[f,p]=(0,r.useState)({width:0,height:0}),[m,h]=(0,r.useState)({x:16,y:16,k:1,animate:!1}),[g,_]=(0,r.useState)(!0),[y,b]=(0,r.useState)(!1),x=(0,r.useRef)({camera:m,size:f,pointers:new Map,drag:null}),S=(0,r.useRef)(-1);x.current.camera=m,x.current.size=f,(0,r.useLayoutEffect)(()=>{let e=l.current;if(!e)return;let t=()=>p(t=>t.width===e.clientWidth&&t.height===e.clientHeight?t:{width:e.clientWidth,height:e.clientHeight});t();let n=typeof ResizeObserver==`function`?new ResizeObserver(t):null;return n?.observe(e),()=>n?.disconnect()},[]);let C=Math.max(240,f.width-32),w=()=>({width:u.current?.offsetWidth??C,height:u.current?.offsetHeight??0}),T=(e,{animate:t=!1,manual:n=!1}={})=>{n&&_(!1),h(n=>({...lc(typeof e==`function`?e(n):e,x.current.size,w()),animate:t}))};(0,r.useEffect)(()=>{let e=l.current;if(!e)return;let t=t=>{t.preventDefault();let n=e.getBoundingClientRect(),r=uc(t,n.height);t.ctrlKey||t.metaKey?T(e=>oc(e,t.clientX-n.left,t.clientY-n.top,dc(r.y)),{manual:!0}):T(e=>({...e,x:e.x-(t.shiftKey?r.y:r.x),y:e.y-(t.shiftKey?0:r.y)}),{manual:!0})};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[]);let E=e=>{e.pointerType===`mouse`&&e.button!==0||e.target.closest?.(`button,a,input,textarea,select,iframe,.aha-canvasBar`)||(x.current.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),x.current.drag||(x.current.drag={x:e.clientX,y:e.clientY,moved:!1}),l.current?.setPointerCapture?.(e.pointerId))},D=e=>{let{pointers:t,drag:n}=x.current,r=t.get(e.pointerId);if(!r)return;let i={x:e.clientX,y:e.clientY};if(t.size===1){if(!n.moved&&Math.hypot(i.x-n.x,i.y-n.y)<4)return;n.moved=!0,b(!0),t.set(e.pointerId,i),T(e=>({...e,x:e.x+i.x-r.x,y:e.y+i.y-r.y}),{manual:!0});return}let a=[...t.entries()].find(([t])=>t!==e.pointerId)?.[1];if(t.set(e.pointerId,i),!a)return;let o=l.current.getBoundingClientRect(),s={x:(r.x+a.x)/2,y:(r.y+a.y)/2,d:Math.hypot(r.x-a.x,r.y-a.y)},c={x:(i.x+a.x)/2,y:(i.y+a.y)/2,d:Math.hypot(i.x-a.x,i.y-a.y)};n.moved=!0,T(e=>{let t=oc(e,s.x-o.left,s.y-o.top,c.d/Math.max(1,s.d));return{...t,x:t.x+c.x-s.x,y:t.y+c.y-s.y}},{manual:!0})},ee=e=>{x.current.pointers.delete(e.pointerId),x.current.pointers.size||(x.current.drag=null,b(!1))},te=(e,t)=>T(sc(x.current.size,e,{margin:16,maxZoom:t}),{animate:!0,manual:!0}),ne=e=>{let t=e.target.closest?.(`.aha-frame`);t&&te({x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight})},re=e=>T(t=>oc(t,x.current.size.width/2,x.current.size.height/2,e),{animate:!0,manual:!0}),ie=()=>te({x:0,y:0,...w()},1),O=()=>T(e=>({...oc(e,x.current.size.width/2,x.current.size.height/2,1/e.k),x:16}),{animate:!0,manual:!0});(0,r.useLayoutEffect)(()=>{if(!g||!n||!f.height)return;let e=u.current?.querySelector(`[data-frame="${a}"]`);if(!e)return;let t=c?.t===`mark`?c.ref:c?.id,r=e.querySelectorAll(`[data-op]`),i=t?u.current.querySelector(`[data-op="${t}"]`):c?null:r[r.length-1]??null,o=e.offsetTop;for(let t=i;t&&t!==e;t=t.offsetParent)o+=t.offsetTop;let s=i?.offsetHeight??0,l=S.current!==a;S.current=a,h(t=>{let n=t.k===1&&t.x===16?t:{x:16,y:t.y,k:1},r=n.y;return(l||!i)&&(r+=16-(r+e.offsetTop)),i&&(r+=cc(x.current.size,{top:r+o,height:s})),r===t.y&&n===t?t:{...n,y:r,animate:!0}})},[c?`${c.id}:${Math.round((n?.progress??0)*4)}`:`page:${a}`,a,g,f.width,f.height]);let k=t.pages.map((e,t)=>t).filter(e=>!n||e<=a);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{ref:l,className:`aha-canvas`,"data-panning":y?`true`:void 0,onPointerDown:E,onPointerMove:D,onPointerUp:ee,onPointerCancel:ee,onDoubleClick:ne,children:(0,i.jsxs)(`div`,{ref:u,className:`aha-canvasWorld`,style:{width:C,transform:`translate(${m.x}px, ${m.y}px) scale(${m.k})`,transition:m.animate?`transform .45s ease`:`none`},children:[k.map(n=>(0,i.jsx)(_l,{index:n,page:t.pages[n],title:e.titles.get(n),board:e,signature:gl(t.pages[n],e.titles.get(n),e),activeRef:n===a?d:null,label:s(`canvasPage`,{n:n+1})},n)),(0,i.jsx)(pl,{target:d,stage:u,scale:m.k,active:o})]})}),(0,i.jsxs)(`div`,{className:`aha-canvasBar`,role:`toolbar`,"aria-label":s(`canvasTools`),title:s(`canvasHelp`),children:[!g&&n?(0,i.jsx)(`button`,{type:`button`,className:`aha-canvasFollow`,onClick:()=>_(!0),children:s(`canvasFollow`)}):null,(0,i.jsx)(`button`,{type:`button`,"aria-label":s(`canvasZoomOut`),title:s(`canvasZoomOut`),onClick:()=>re(1/ic),children:`−`}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-canvasZoom`,title:s(`canvasZoomReset`),onClick:O,children:[Math.round(m.k*100),`%`]}),(0,i.jsx)(`button`,{type:`button`,"aria-label":s(`canvasZoomIn`),title:s(`canvasZoomIn`),onClick:()=>re(ic),children:`+`}),(0,i.jsx)(`button`,{type:`button`,title:s(`canvasFit`),onClick:ie,children:s(`canvasFitShort`)})]})]})}function bl({steps:e,position:t,theme:n=`light`,font:a=`hand`,buffering:o=!1,bufferingLabel:s=``,view:c=`canvas`,onInteract:l}){let{t:u}=v(),d=(0,r.useMemo)(()=>nl(e),[e]),f=(0,r.useMemo)(()=>a===`hand`?il(e):``,[e,a]);(0,r.useEffect)(()=>{if(!(!f||typeof document>`u`||!document.fonts?.load))for(let e of[`Aha Hand Latin`,`Aha Hand`])document.fonts.load(`20px '${e}'`,f).catch(()=>void 0)},[f]);let p=(0,r.useMemo)(()=>{let t=new Map;return e.forEach((e,n)=>e.ops.forEach((r,i)=>t.set(r.id,{stepIndex:n,opIndex:i,aside:e.aside===!0}))),t},[e]),m=(0,r.useMemo)(()=>{let t=new Map;for(let n of e)for(let e of n.ops)if(e.t===`title`){let n=d.where.get(e.id);n&&!t.has(n.page)&&t.set(n.page,e)}return t},[e,d]),h=t&&e[t.index]?.ops[t.op],g=h?d.where.get(h.id)?.page??0:t?Sl(d,e,t):0,_=e=>{let n=p.get(e);return n?al(n.stepIndex,n.opIndex,t):0},y=new Map;e.forEach(e=>e.ops.forEach(e=>{if(e.t!==`mark`)return;let t=_(e.id);if(t<=0)return;let n=y.get(e.ref)??[];n.push({id:e.id,style:e.style,reveal:t}),y.set(e.ref,n)}));let b={reveal:_,marks:y,nowIds:new Set(t?.now??[]),opMeta:p,activeOp:h,theme:n,titles:m,onInteract:l,fixedNote:e=>({label:u(`fixed`),title:u(`fixedWas`,{was:e.fixed.was})})},x=h&&t&&t.progress<1&&ml.has(h.t)?t:null;return(0,i.jsxs)(`div`,{className:`aha-board`,"data-theme":n,"data-font":a,"data-view":c===`pages`?`pages`:`canvas`,children:[(0,i.jsx)(c===`pages`?vl:yl,{board:b,layout:d,position:t,activePage:g,pencil:x}),o?(0,i.jsxs)(`div`,{className:`aha-buffering`,children:[(0,i.jsx)(`span`,{className:`aha-spinner`}),s]}):null]})}function xl({steps:e,title:t=``,theme:n=`light`,font:a=`hand`,footer:o={},animationLabel:s=``,fixedLabel:c=``}){let l=(0,r.useMemo)(()=>nl(e),[e]),u=(0,r.useMemo)(()=>new Set(e.flatMap(e=>e.aside?e.ops.map(e=>e.id):[])),[e]),d=(0,r.useMemo)(()=>{let t=new Map;for(let n of e)for(let e of n.ops)e.t===`mark`&&t.set(e.ref,[...t.get(e.ref)??[],{id:e.id,style:e.style,reveal:1}]);return t},[e]),f=l.pages.filter(e=>e.columns.some(e=>e.length));return f.map((e,r)=>{let l=e.title||(r===0?t:``);return(0,i.jsxs)(`div`,{className:`aha-board aha-exportPage`,"data-theme":n,"data-font":a,"data-sheet":r,children:[l?(0,i.jsx)(`h2`,{className:`aha-boardTitle`,children:(0,i.jsx)(`span`,{children:(0,i.jsx)(ol,{text:l})})}):null,(0,i.jsx)(`div`,{className:`aha-cols`,children:e.columns.map((e,t)=>(0,i.jsx)(`div`,{className:`aha-colBody`,children:e.map(({op:e})=>(0,i.jsx)(fl,{op:e,reveal:1,marks:d.get(e.id)??[],aside:u.has(e.id),now:!1,theme:n,still:!0,animationLabel:s,fixedNote:c?()=>({label:c}):void 0},e.id))},t))}),(0,i.jsxs)(`div`,{className:`aha-exportFoot`,children:[(0,i.jsx)(`span`,{children:o.left??``}),(0,i.jsx)(`span`,{children:[o.right,`${r+1} / ${f.length}`].filter(Boolean).join(` · `)})]})]},r)})}function Sl(e,t,n){let r=0;return t.forEach((t,i)=>t.ops.forEach((t,a)=>{al(i,a,n)>0&&(r=Math.max(r,e.where.get(t.id)?.page??0))})),r}function Cl({speech:e,onChange:t,onNarration:n,now:r=()=>performance.now(),frame:i,cancelFrame:a,startIndex:o=0}){let s=i??(e=>requestAnimationFrame(e)),c=a??(e=>cancelAnimationFrame(e)),l=[],u=!1,d=1,f=null,p=null,m=new Set,h={index:Math.max(0,o),op:0,progress:0,sentence:0,status:`idle`},g=()=>{if(!p?.synced||h.status!==`playing`&&h.status!==`paused`)return[];let e=Math.max(0,p.sentences.length-1);return p.step.ops.filter((t,n)=>n<=h.op&&Math.min(t.at,e)===h.sentence).map(e=>e.t===`mark`?e.ref:e.id)},_=()=>({...h,total:l.length,complete:u,rate:d,step:l[h.index]??null,now:g()}),v=()=>t?.(_());function y(){f!==null&&c(f),f=null}function b(){y(),e?.cancel?.();let t=l[h.index];if(!t){h.status=u?`ended`:`buffering`,v();return}h.op=0,h.progress=0,h.sentence=0,h.status=`playing`;let i=dt(t,{rate:d}),a=$c(t.say).map(Xc),o=!!t.say&&t.ops.some(e=>Number.isInteger(e.at));p={step:t,timing:i,startedAt:r(),elapsedBefore:0,speechDone:!t.say,silentUntil:null,token:{},sentences:a,exactSentence:!1,synced:o,written:0,lastTime:0,finishAt:null};let s=p.token;t.say&&((e?.speak(Xc(t.say),{rate:d,sentences:a,onSentence:e=>{!p||p.token!==s||(p.exactSentence=!0,h.sentence!==e&&(h.sentence=e,v()))}})??{done:Promise.resolve({silent:!0})}).done.then(e=>{!p||p.token!==s||(e?.silent||e?.error?p.silentUntil=ct(t.say,d)*.8:p.speechDone=!0,n?.(e))}),e?.prefetch?.(Xc(l[h.index+1]?.say??``))),v(),C()}function x(e){let t=p?.sentences??[];if(t.length<2)return 0;if(p.speechDone)return t.length-1;let n=ct(p.step.say,d),r=t.map(e=>[...e].length),i=r.reduce((e,t)=>e+t,0)||1,a=0;for(let t=0;t<r.length;t+=1)if(a+=r[t],e<a/i*n)return t;return t.length-1}function S(){return p?p.elapsedBefore+(h.status===`playing`?r()-p.startedAt:0):0}function C(){f=s(T)}function w(e,t,n){if(!p.synced)return e;let r=Math.max(0,e-p.lastTime);p.lastTime=e;let i=Math.max(0,p.sentences.length-1),a=p.speechDone?1/0:t,o=0,s=0;for(;o<n.length&&Math.min(p.step.ops[o].at,i)<=a;)s+=n[o],o+=1;return p.written=Math.min(p.written+r,s),p.written}function T(){if(f=null,h.status!==`playing`||!p)return;let e=S(),t=p.timing.writeMs;p.silentUntil!==null&&e>=p.silentUntil&&(p.speechDone=!0);let n=p.exactSentence?h.sentence:x(e),r=w(e,n,t),i=0,a=t.length,o=1;for(let e=0;e<t.length;e+=1){if(r<i+t[e]){a=e,o=t[e]?(r-i)/t[e]:1;break}i+=t[e]}let s=a!==h.op||Math.abs(o-h.progress)>.002||n!==h.sentence;if(h.op=a,h.sentence=n,h.progress=Math.min(1,Math.max(0,o)),a>=t.length&&p.speechDone&&(p.finishAt??=p.synced?e+450:i+450,e>=p.finishAt)){E();return}s&&v(),C()}function E(){let e=l[h.index];if(h.op=e?.ops.length??0,h.progress=1,e?.check&&!m.has(e.check.id)){h.status=`check`,v();return}D()}function D(){h.index+=1,b()}return{get state(){return _()},setSteps(e,{done:t=!1}={}){l=e,u=t,h.status===`buffering`&&l[h.index]?b():(h.status===`buffering`&&u&&(h.status=`ended`),v())},play(){if(h.status!==`playing`){if(h.status===`paused`&&p){h.status=`playing`,p.startedAt=r(),e?.resume?.(),v(),C();return}h.status===`ended`&&(h.index=0),h.status!==`check`&&b()}},pause(){h.status!==`playing`||!p||(p.elapsedBefore=S(),h.status=`paused`,y(),e?.pause?.(),v())},toggle(){h.status===`playing`?this.pause():this.play()},next(){let t=l[h.index];h.status===`check`&&t?.check&&m.add(t.check.id),t&&(y(),e?.cancel?.(),D())},prev(){y(),e?.cancel?.();let t=h.op===0&&h.progress<.05;h.index=Math.max(0,Math.min(l.length-1,t?h.index-1:h.index)),b()},seek(t){y(),e?.cancel?.(),h.index=Math.min(Math.max(0,t),Math.max(0,l.length)),b()},answer(e){m.add(e),h.status===`check`&&D()},setRate(t){let n=Math.min(2,Math.max(.5,Number(t)||1));if(p&&h.status===`playing`){let e=S(),t=d/n;p.elapsedBefore=e*t,p.startedAt=r(),p.timing=dt(p.step,{rate:n}),p.written*=t,p.lastTime=p.elapsedBefore,p.finishAt=null}d=n,e?.setRate?.(n),v()},insertAfterCurrent(e){if(!e?.length)return l;let t=Math.min(l.length,h.index+1);return l=[...l.slice(0,t),...e,...l.slice(t)],v(),l},dispose(){y(),e?.cancel?.(),p=null}}}function wl(e,t,n,r=!1){if(!n)return[];if(!e.some(e=>Number.isInteger(e.goal)))return null;if(r)return Array(n).fill(`done`);let i=Array(n).fill(-1);e.forEach((e,t)=>{Number.isInteger(e.goal)&&e.goal<n&&(i[e.goal]=Math.max(i[e.goal],t))});let a=e[t]?.goal;return i.map((e,n)=>a===n?`current`:e>=0&&t>e?`done`:`todo`)}function Tl(e,t,n=[]){let r=[],i=e=>[`question`,`correction`,`challenge`].includes(e.kind)?e.kind:`reexplain`,a=new Set,o=e=>n.find(t=>e.startsWith(`${t.id}_`));e.forEach((e,n)=>{if(!(n>t)){if(e.aside){let t=o(e.id);t&&!a.has(t.id)&&(a.add(t.id),r.push({key:`${t.id}:ask`,kind:i(t),text:t.label,stepIndex:n,aside:!0}))}e.say&&r.push({key:e.id,kind:`say`,text:e.say,stepIndex:n,aside:e.aside===!0})}});for(let e of n)e.streaming&&!e.steps.length&&r.push({key:`${e.id}:ask`,kind:i(e),text:e.label,stepIndex:-1,aside:!0,pending:!0});return r}function El(e,t,n=null){let r=Math.min(t,e.length-1);for(;r>0&&e[r]?.aside;)--r;let i=e[r]?.id;return i?n&&e.findIndex(e=>e.id===n)>=r?n:i:n}function Dl({label:e}){return(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:8},children:[(0,i.jsx)(`span`,{className:`aha-spinner`}),e?(0,i.jsx)(`span`,{className:`aha-hint`,children:e}):null]})}function Ol({value:e}){return(0,i.jsx)(`div`,{className:`aha-progress`,children:(0,i.jsx)(`div`,{style:{width:`${Math.max(0,Math.min(100,e))}%`}})})}function kl({progress:e,label:t,onCancel:n}){let{t:r}=v(),a=e?.total?Math.round(e.done/e.total*100):0;return(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:6},children:[(0,i.jsx)(Dl,{label:t}),e?.total?(0,i.jsx)(Ol,{value:a}):null,n?(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:n,children:r(`cancel`)}),(0,i.jsx)(`span`,{className:`aha-hint`,children:r(`keepsRunning`)})]}):null]})}function Al({title:e,onClose:t,children:n,footer:r,width:a}){return(0,i.jsx)(`div`,{className:`aha-modalBack`,onMouseDown:e=>{e.target===e.currentTarget&&t?.()},children:(0,i.jsxs)(`div`,{className:`aha-modal`,role:`dialog`,"aria-label":e,style:a?{width:`min(${a}px,100%)`}:void 0,children:[e?(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:e}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:t,"aria-label":`close`,children:`✕`})]}):null,n,r?(0,i.jsx)(`div`,{className:`aha-row`,style:{justifyContent:`flex-end`},children:r}):null]})})}function jl({text:e,onConfirm:t,onCancel:n,danger:r=!1}){let{t:a}=v();return(0,i.jsx)(Al,{title:a(`confirm`),onClose:n,footer:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:n,children:a(`cancel`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":r?`danger`:`primary`,onClick:t,children:a(`confirm`)})]}),children:(0,i.jsx)(`p`,{children:e})})}function Ml(e,t){let n=String(t?.code??``).replace(/^aha-tutor\//u,``),r=`err_${n}`;return n&&e(r)!==r?e(r):e(`errorGeneric`,{message:t?.message??String(t)})}function $({error:e,style:t,reveal:n=!1}){let{t:a}=v(),o=(0,r.useRef)(null);return(0,r.useEffect)(()=>{n&&e&&o.current?.scrollIntoView?.({block:`nearest`})},[n,e]),e?(0,i.jsx)(`div`,{ref:o,className:`aha-error`,role:`alert`,style:t,title:e.message??void 0,children:Ml(a,e)}):null}function Nl({children:e}){return(0,i.jsx)(`div`,{className:`aha-empty`,children:e})}function Pl(){let{api:e}=v(),[t,n]=(0,r.useState)(null),[i,a]=(0,r.useState)(null);async function o(t){try{let n=await fetch(new URL(`api/aha-tutor/upload?name=${encodeURIComponent(t.name)}`,document.baseURI),{method:`POST`,credentials:`same-origin`,headers:{"content-type":t.type||`application/octet-stream`},body:t});if(n.status!==404){let t=await n.json();if(!t?.ok)throw new u(t?.error?.code??`failed`,t?.error?.message??`Upload failed`);return(await e.follow(t.value)).material}}catch(e){if(e?.message!==`Failed to fetch`)throw e}let n=await p(t);return(await e.run(`material/upload`,{name:t.name,base64:n})).material}async function s(e){let t=[];a(null);for(let r of e){n(r.name);try{t.push(await o(r))}catch(e){a(e)}}return n(null),t}async function c(t){n(t),a(null);try{return[(await e.run(`material/url`,{url:t})).material]}catch(e){return a(e),[]}finally{n(null)}}return{upload:s,addUrl:c,busy:t,error:i}}function Fl({onAdded:e,compact:t=!1}){let{t:n}=v(),a=(0,r.useRef)(null),[o,s]=(0,r.useState)(``),[c,l]=(0,r.useState)(!1),{upload:u,addUrl:d,busy:f,error:p}=Pl(),m=async t=>{let n=await u([...t]);n.length&&e?.(n)};return(0,i.jsxs)(`div`,{className:`aha-col`,children:[(0,i.jsxs)(`div`,{className:`aha-empty`,style:{padding:t?14:24,borderColor:c?`var(--aha-brand)`:void 0,cursor:`pointer`},onClick:()=>a.current?.click(),onDragOver:e=>{e.preventDefault(),l(!0)},onDragLeave:()=>l(!1),onDrop:e=>{e.preventDefault(),l(!1),m(e.dataTransfer.files)},children:[(0,i.jsxs)(`div`,{className:`aha-row`,style:{justifyContent:`center`},children:[(0,i.jsx)(me,{name:`upload`}),n(`dropHere`)]}),(0,i.jsx)(`input`,{ref:a,type:`file`,multiple:!0,accept:`.pdf,.docx,.pptx,.md,.markdown,.txt,.csv,.json,.tex,.py,.js,.ts,.html,.png,.jpg,.jpeg,.webp,.gif`,hidden:!0,onChange:e=>{m(e.currentTarget.files),e.currentTarget.value=``}})]}),(0,i.jsxs)(`form`,{className:`aha-row`,onSubmit:async t=>{if(t.preventDefault(),!o.trim())return;let n=await d(o.trim());n.length&&(s(``),e?.(n))},children:[(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:1},value:o,placeholder:n(`urlPlaceholder`),onChange:e=>s(e.currentTarget.value)}),(0,i.jsxs)(`button`,{type:`submit`,className:`aha-btn`,disabled:!o.trim()||!!f,children:[(0,i.jsx)(me,{name:`link`}),n(`addUrl`)]})]}),f?(0,i.jsx)(Dl,{label:`${n(`reading`)} ${f}`}):null,(0,i.jsx)($,{error:p})]})}function Il({selected:e,onChange:t,onClose:n}){let{api:r,t:a}=v(),o=y(()=>r.call(`material/list`),[]),s=n=>t(e.includes(n)?e.filter(e=>e!==n):[...e,n].slice(0,8));return(0,i.jsxs)(Al,{title:a(`pickMaterials`),onClose:n,width:640,footer:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:n,children:a(`confirm`)}),children:[(0,i.jsx)(Fl,{compact:!0,onAdded:n=>{o.reload(),t([...e,...n.map(e=>e.id)].slice(0,8))}}),o.loading&&!o.value?(0,i.jsx)(Dl,{label:a(`loading`)}):null,(0,i.jsx)(`div`,{className:`aha-col`,style:{gap:6,maxHeight:320,overflow:`auto`},children:(o.value??[]).map(t=>(0,i.jsxs)(`label`,{className:`aha-option`,style:{flexDirection:`row`,alignItems:`center`,gap:10},children:[(0,i.jsx)(`input`,{type:`checkbox`,checked:e.includes(t.id),onChange:()=>s(t.id)}),(0,i.jsxs)(`span`,{className:`aha-col`,style:{gap:0},children:[(0,i.jsx)(`b`,{children:t.title}),(0,i.jsx)(`small`,{children:Ll(t,a)})]})]},t.id))})]})}function Ll(e,t){let n=[e.kind.toUpperCase()];return e.pages&&n.push(t(`pages`,{count:e.pages})),e.slides&&n.push(t(`slides`,{count:e.slides})),e.kind===`image`&&n.push(t(`imageNeedsVision`)),n.join(` · `)}function Rl({sources:e}){return(0,i.jsx)(`ol`,{className:`aha-sourceList`,children:(e??[]).filter(e=>/^https?:\/\//iu.test(String(e?.url??``))).map(e=>(0,i.jsxs)(`li`,{children:[(0,i.jsx)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,children:e.title||e.url}),(0,i.jsxs)(`span`,{className:`aha-hint`,children:[` · `,new URL(e.url).hostname]}),e.snippet?(0,i.jsx)(`p`,{className:`aha-hint`,children:e.snippet}):null]},e.url))})}function zl({title:e,emoji:t}){return e?(0,i.jsxs)(`span`,{className:`aha-hint`,title:e,children:[` · `,t?`${t} `:``,Qe(e)]}):null}function Bl({value:e,stage:t,label:n}){let r=t===`none`?0:Math.round((Number(e)||0)/20),a=n?t===`none`?n:`${n} · ${Math.round(e??0)}%`:`${Math.round(e??0)}%`;return(0,i.jsx)(`span`,{className:`aha-meter`,title:a,"aria-label":a,role:`img`,"data-stage":t,children:[0,1,2,3,4].map(e=>(0,i.jsx)(`i`,{"data-on":e<r},e))})}function Vl(e){return navigator.clipboard?.writeText(e).catch(()=>void 0)}let Hl=Object.freeze([`choice`,`multi`,`blank`,`number`,`order`]),Ul=/[!-~]/gu;function Wl(e){return String(e??``).normalize(`NFKC`).replace(Ul,e=>String.fromCharCode(e.charCodeAt(0)-65248)).toLowerCase().replace(/[\s ]+/gu,` `).replace(/^[\s.,;:!?'"`,。;:!?、“”‘’]+|[\s.,;:!?'"`,。;:!?、“”‘’]+$/gu,``).trim()}function Gl(e){if(typeof e==`number`)return e;let t=Wl(e).replace(/,/gu,``).replace(/\s/gu,``),n=/^(-?\d+(?:\.\d+)?)\/(\d+(?:\.\d+)?)$/u.exec(t);if(n)return Number(n[1])/Number(n[2]);let r=/^(-?\d+(?:\.\d+)?)%$/u.exec(t);if(r)return Number(r[1])/100;let i=Number(t);return Number.isFinite(i)?i:NaN}function Kl(e,t){if(!e||!Hl.includes(e.kind))return{score:0,correct:!1,gradable:!1};if(e.kind===`choice`){let n=String(t??``)===String(e.answer??``);return{score:+!!n,correct:n,gradable:!0}}if(e.kind===`multi`){let n=new Set((Array.isArray(e.answer)?e.answer:[e.answer]).map(String)),r=new Set((Array.isArray(t)?t:[]).map(String));if(!n.size)return{score:0,correct:!1,gradable:!1};let i=0,a=0;for(let e of r)n.has(e)?i+=1:a+=1;let o=Math.max(0,(i-a)/n.size),s=i===n.size&&a===0;return{score:ql(o),correct:s,gradable:!0}}if(e.kind===`order`){let n=(Array.isArray(e.answer)?e.answer:[]).map(String),r=(Array.isArray(t)?t:[]).map(String);if(!n.length)return{score:0,correct:!1,gradable:!1};let i=0;return n.forEach((e,t)=>{r[t]===e&&(i+=1)}),{score:ql(i/n.length),correct:i===n.length,gradable:!0}}if(e.kind===`number`){let n=Gl(e.answer),r=Gl(t);if(!Number.isFinite(n))return{score:0,correct:!1,gradable:!1};if(!Number.isFinite(r))return{score:0,correct:!1,gradable:!0};let i=Number.isFinite(Number(e.tolerance))&&Number(e.tolerance)>=0?Number(e.tolerance):Math.max(1e-9,Math.abs(n)*.01),a=Math.abs(r-n)<=i;return{score:+!!a,correct:a,gradable:!0}}let n=(Array.isArray(e.answer)?e.answer:[e.answer]).map(Wl).filter(Boolean);if(!n.length)return{score:0,correct:!1,gradable:!1};let r=Wl(t),i=n.includes(r);if(i)return{score:1,correct:i,gradable:!0};let a=Gl(t),o=n.map(Gl).filter(Number.isFinite);return Number.isFinite(a)&&o.some(e=>Math.abs(e-a)<=Math.max(1e-9,Math.abs(e)*.001))?{score:1,correct:!0,gradable:!0}:{score:0,correct:!1,gradable:!0}}function ql(e){return Math.round(e*100)/100}let Jl=Object.freeze({wrong:`itemCheck_wrong`,unclear:`itemCheck_unclear`,misgraded:`itemCheck_misgraded`,right:`itemCheck_right`});function Yl({courseId:e,lessonId:t,unitId:n,deckId:r}={},i){return i?.id?i.context?i.context.source??null:r?{kind:`deck`,deckId:r,itemId:i.id}:e&&n?{kind:`quiz`,courseId:e,unitId:n,itemId:i.id}:e&&t?{kind:`practice`,courseId:e,lessonId:t,itemId:i.id}:null:null}let Xl=(e,t=160)=>{let n=[...String(e??``).replace(/\s+/gu,` `).trim()];return n.length>t?`${n.slice(0,t).join(``)}…`:n.join(``)};function Zl(e,t=e?.answer){return e.kind===`choice`?(t=>{let n=e.options?.find(e=>e.id===t);return n?`${t.toUpperCase()}. ${n.text}`:String(t??``).toUpperCase()})(t):e.kind===`multi`?(Array.isArray(t)?t:[]).map(e=>String(e).toUpperCase()).join(`, `):e.kind===`order`?(Array.isArray(t)?t:[]).map(t=>e.options?.find(e=>e.id===t)?.text??t).join(` → `):e.kind===`number`?`${t}${e.unit?` ${e.unit}`:``}`:e.kind===`blank`?(Array.isArray(t)?t:[t]).join(` / `):Xl(t)}function Ql(e,t){let n=t?.fixed?.was;if(!n)return[];let r=[];n.prompt!==void 0&&r.push(e(`fixedPart_prompt`,{text:Xl(n.prompt)||`—`}));for(let[t,i]of Object.entries(n.options??{}))r.push(e(`fixedPart_option`,{id:t.toUpperCase(),text:Xl(i,80)}));if(n.answer!==void 0){let i=t.options?.map(e=>({...e,text:n.options?.[e.id]??e.text}));r.push(e(`fixedPart_answer`,{text:n.answer===null?`—`:Zl({...t,options:i,unit:n.unit??t.unit},n.answer)}))}return n.unit!==void 0&&n.answer===void 0&&r.push(e(`fixedPart_unit`,{text:n.unit||`—`})),n.tolerance!==void 0&&r.push(e(`fixedPart_tolerance`,{text:n.tolerance??`—`})),n.explanation!==void 0&&r.push(e(`fixedPart_explanation`,{text:Xl(n.explanation)||`—`})),n.hints!==void 0&&r.push(e(`fixedPart_hints`,{text:Xl((n.hints??[]).join(` / `))||`—`})),n.rubric!==void 0&&r.push(e(`fixedPart_rubric`,{text:Xl((n.rubric??[]).join(` / `))||`—`})),n.figure&&r.push(e(`fixedPart_figure`)),r}function $l(e){return{score:Number(e?.score)||0,correct:e?.correct===!0,partial:e?.partial===!0,feedback:e?.feedback??``,wrongStep:e?.wrongStep??``,fix:e?.fix??``}}function eu(e,t,n){return{status:`done`,note:e?.note??``,verdict:t?.verdict??`right`,summary:t?.summary??``,explanation:t?.explanation??``,item:t?.item??e?.item??null,result:t?.result?{...n,...t.result,regraded:!0}:e?.result??null}}function tu(e,t,n){return e.map(e=>e.index===t?{...e,...n,index:t,regraded:!0}:e)}function nu(e,{index:t,verdict:n,regraded:r=!1,message:i}){if(i!==void 0)return e(`itemCheckFailedNotice`,{n:t+1,message:i});let a=e(`itemCheckDone`,{n:t+1,verdict:e(Jl[n]??Jl.right)});return r?`${a}${e(`itemCheckRegraded`)}`:a}function ru({text:e,compact:t=!1,streaming:n=!1}){let{t:o}=v(),s=(0,r.useMemo)(()=>({code:{copyLabel:o(`copyCode`),copiedLabel:o(`copied`)},footnotes:o(`footnotes`)}),[o]);return(0,i.jsx)(`div`,{className:`aha-markdown`,children:(0,i.jsx)(a.MarkdownText,{text:String(e??``),labels:s,streaming:n,variant:t?`compact`:`body`})})}let iu=16e3,au={NotAllowedError:{code:`mic-denied`},SecurityError:{code:`mic-denied`},NotFoundError:{code:`mic-missing`},OverconstrainedError:{code:`mic-missing`},NotReadableError:{code:`mic-busy`},AbortError:{code:`mic-busy`}},ou={code:`mic-unsupported`},su={code:`speech-audio`};function cu({code:e,device:t}){return Object.assign(Error(e),{name:`RecordingError`,code:e},t?{device:t}:{})}function lu(){try{let e=JSON.parse(window.localStorage.getItem(`dsh.voice-input.microphone`)??`null`);if(typeof e?.id==`string`&&e.id&&typeof e.label==`string`)return{id:e.id,label:e.label.slice(0,120)}}catch{}return null}function uu(e){let t=new Uint8Array(44+e.length*2),n=new DataView(t.buffer),r=(e,n)=>{for(let r=0;r<4;r+=1)t[e+r]=n.charCodeAt(r)};r(0,`RIFF`),n.setUint32(4,36+e.length*2,!0),r(8,`WAVE`),r(12,`fmt `),n.setUint32(16,16,!0),n.setUint16(20,1,!0),n.setUint16(22,1,!0),n.setUint32(24,iu,!0),n.setUint32(28,iu*2,!0),n.setUint16(32,2,!0),n.setUint16(34,16,!0),r(36,`data`),n.setUint32(40,e.length*2,!0);for(let t=0;t<e.length;t+=1){let r=Math.max(-1,Math.min(1,Number(e[t])||0));n.setInt16(44+t*2,Math.round(r<0?r*32768:r*32767),!0)}return t}async function du(e,t){let n=new(globalThis.AudioContext??globalThis.webkitAudioContext);try{let r=await n.decodeAudioData(await e.arrayBuffer()),i=Math.max(1,Math.floor(Math.min(r.duration,t)*iu)),a=new OfflineAudioContext(1,i,iu),o=a.createBufferSource();return o.buffer=r,o.connect(a.destination),o.start(),uu((await a.startRendering()).getChannelData(0))}finally{n.close?.()?.catch?.(()=>void 0)}}function fu(e){let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return btoa(t)}function pu({maxSeconds:e=120,onLimit:t}={}){let n=null,r=null,i=[],a=null,o=0,s=()=>{clearTimeout(a);for(let e of n?.getTracks?.()??[])e.stop();n=null};async function c(){if(!globalThis.navigator?.mediaDevices?.getUserMedia||typeof MediaRecorder!=`function`)throw cu(ou);let s=lu();try{n=await navigator.mediaDevices.getUserMedia({audio:{channelCount:1,echoCancellation:!0,noiseSuppression:!0,...s?{deviceId:{exact:s.id}}:{}}})}catch(e){throw s&&(e?.name===`NotFoundError`||e?.name===`OverconstrainedError`)?cu({code:`mic-chosen-missing`,device:s.label}):cu(au[e?.name]??ou)}i=[],r=new MediaRecorder(n),r.ondataavailable=e=>{e.data?.size&&i.push(e.data)},r.start(250),o=performance.now(),a=setTimeout(()=>t?.(),e*1e3)}function l(){return new Promise((t,n)=>{let a=r;if(r=null,!a||a.state===`inactive`){s(),n(cu(su));return}a.onstop=async()=>{s();try{t(await du(new Blob(i,{type:a.mimeType||`audio/webm`}),e))}catch{n(cu(su))}},a.stop()})}function u(){let e=r;r=null,i=[],e&&e.state!==`inactive`&&(e.onstop=null,e.stop()),s()}return{start:c,stop:l,cancel:u,elapsed:()=>o?(performance.now()-o)/1e3:0}}function mu(e){for(let t=e?.parentElement;t;t=t.parentElement)if(getComputedStyle(t).overflowX!==`visible`)return t;return null}function hu(e){let t=mu(e);if(!t)return 0;e.style.width=``,e.style.transform=``;let n=t.getBoundingClientRect();e.style.width=`${Math.min(e.getBoundingClientRect().width,n.width-16)}px`;let r=e.getBoundingClientRect(),i=r.left<n.left+8?n.left+8-r.left:Math.min(0,n.right-8-r.right);return i&&(e.style.transform=`translateX(${Math.round(i)}px)`),i}function gu(e){hu(e);let t=mu(e);if(!t||typeof ResizeObserver!=`function`)return()=>void 0;let n=new ResizeObserver(()=>hu(e));return n.observe(t),()=>n.disconnect()}function _u(e,{reducedMotion:t=vu()}={}){let n=e?.closest?.(`.aha-main`);if(!n||n.scrollHeight<=n.clientHeight)return!1;let r=e.getBoundingClientRect().top-n.getBoundingClientRect().top-12;return Math.abs(r)<1?!1:(n.scrollTo({top:Math.max(0,n.scrollTop+r),behavior:t?`auto`:`smooth`}),!0)}function vu(){return globalThis.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0}async function yu(e,t){try{let e=await fetch(new URL(`api/aha-tutor/speech`,document.baseURI),{method:`POST`,credentials:`same-origin`,headers:{"content-type":`audio/wav`},body:t});if(e.status!==404){let t=await e.json();if(!t?.ok)throw new u(t?.error?.code??`speech-failed`,t?.error?.message??`Speech recognition failed`);return t.value}}catch(e){if(e?.message!==`Failed to fetch`)throw e}return e.call(`speech/transcribe`,{base64:fu(t)})}let bu=e=>`${Math.floor(e/60)}:${String(e%60).padStart(2,`0`)}`;function xu(e,t){return t?.code===`mic-chosen-missing`&&t.device?e(`micChosenMissing`,{name:t.device}):Ml(e,t)}function Su({onText:e,onStart:t,disabled:n=!1}){let{api:a,t:o}=v(),[s,c]=(0,r.useState)(null),[l,u]=(0,r.useState)(`idle`),[d,f]=(0,r.useState)(0),[p,m]=(0,r.useState)(null),[h,g]=(0,r.useState)(()=>lu()?.label??``),_=(0,r.useRef)(null),y=(0,r.useRef)(null);(0,r.useLayoutEffect)(()=>p&&y.current?gu(y.current):void 0,[p]);async function b(){let e;try{e=await a.call(`speech/status`)}catch{e={state:`off`}}return c(e),e}(0,r.useEffect)(()=>(b(),()=>_.current?.cancel()),[]),(0,r.useEffect)(()=>{if(l!==`recording`)return;let e=setInterval(()=>f(Math.floor(_.current?.elapsed()??0)),250);return()=>clearInterval(e)},[l]);async function x(){let t=_.current;if(t){_.current=null,u(`working`);try{let{text:n}=await yu(a,await t.stop());e?.(n)}catch(e){m({text:Ml(o,e),error:!0}),/speech-(off|unprepared)$/u.test(String(e?.code??``))&&b()}finally{u(`idle`)}}}async function S(){if(l===`recording`){x();return}if(l!==`idle`)return;m(null);let e=s?.state===`ready`?s:await b();if(e.state!==`ready`){m({text:o(`voice_${e.state}`)});return}t?.();let n=pu({maxSeconds:e.maxSeconds??120,onLimit:()=>{x()}});_.current=n,f(0),u(`starting`);try{await n.start(),u(`recording`)}catch(e){_.current=null,u(`idle`),m({text:xu(o,e),error:!0})}}let C=s!==null&&s.state!==`ready`,w=l===`recording`;return(0,i.jsxs)(`span`,{className:`aha-mic`,children:[(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn aha-micBtn`,"data-state":l,"data-unavailable":C?`true`:void 0,"aria-pressed":w,"aria-label":o(w?`voiceStop`:`voiceAsk`),title:w?o(`voiceStop`):C?o(`voiceSetup`):h?o(`voiceAskWith`,{name:h}):o(`voiceAsk`),disabled:n&&l===`idle`||l===`starting`||l===`working`,onClick:S,onPointerEnter:()=>g(lu()?.label??``),children:[l===`working`?(0,i.jsx)(`span`,{className:`aha-spinner`}):(0,i.jsx)(me,{name:w?`stop`:`mic`,size:16}),w?(0,i.jsx)(`span`,{className:`aha-micTime`,children:bu(d)}):l===`working`?(0,i.jsx)(`span`,{className:`aha-micTime`,children:o(`voiceWorking`)}):null]}),p?(0,i.jsxs)(`span`,{ref:y,className:`aha-micNote`,role:`status`,"data-error":p.error?`true`:void 0,children:[p.text,(0,i.jsx)(`button`,{type:`button`,className:`aha-micClose`,"aria-label":o(`close`),onClick:()=>m(null),children:`×`})]}):null]})}let Cu=[[`sure`,`confSure`],[`unsure`,`confUnsure`],[`guess`,`confGuess`]];function wu({item:e,language:t,onResult:n,onContinue:a,continueLabel:o,askConfidence:s=!0,compact:c=!1,keyboard:l=!1,onChallenge:u,check:d=null}){let{api:f,t:p}=v(),m=d?.item??e,[h,g]=(0,r.useState)(m.kind===`multi`||m.kind===`order`?[]:``),[_,y]=(0,r.useState)(null),[b,x]=(0,r.useState)(0),[S,C]=(0,r.useState)(null),[w,T]=(0,r.useState)(!1),[E,D]=(0,r.useState)(null),[ee,te]=(0,r.useState)(!1),[ne,re]=(0,r.useState)(null),ie=(0,r.useRef)(Date.now()),O=S&&d?.result?d.result:S;(0,r.useEffect)(()=>{g(e.kind===`multi`||e.kind===`order`?e.kind===`order`?e.options.map(e=>e.id):[]:``),y(null),x(0),C(null),D(null),te(!1),re(null),ie.current=Date.now()},[e]);let k=m.kind===`multi`?h.length>0:m.kind===`order`||String(h).trim()!==``,ae=k&&(!s||_);async function oe(){if(!ae||O||w)return;let e=Date.now()-ie.current,r;if(m.kind===`short`||m.kind===`work`){T(!0),D(null);try{let e=await f.call(`lesson/grade`,{item:{kind:m.kind,prompt:m.prompt,answer:m.answer,rubric:m.rubric},response:h,language:t});r={score:e.score,correct:e.verdict===`correct`,partial:e.verdict===`partial`,feedback:e.feedback,errorTag:e.errorTag,misconception:e.misconception},m.kind===`work`&&Object.assign(r,{wrongStep:e.wrongStep??``,why:e.why??``,fix:e.fix??``})}catch(e){D(e),T(!1);return}T(!1)}else{let e=Kl(m,h);r={score:e.score,correct:e.correct,partial:!e.correct&&e.score>0,errorTag:e.correct?``:Du(m,h)}}let i={...r,response:typeof h==`string`?h:void 0,given:h,confidence:_??void 0,timeMs:e,hintsUsed:b};C(i),n?.(i)}function A(e){if(e?.preventDefault(),ne===null)return;let t=ne.trim();re(null),u?.(t)}let se=e=>g(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),ce=(0,r.useRef)(null);ce.current={result:O,ready:ae,answered:k,confidence:_,hints:b,submit:oe,toggle:se,onContinue:a},(0,r.useEffect)(()=>{if(!l)return;let e=e=>{if(e.defaultPrevented||e.metaKey||e.ctrlKey||e.altKey||e.isComposing)return;let t=ce.current,n=e.target,r=n instanceof HTMLElement&&(/^(input|textarea|select)$/iu.test(n.tagName)||n.isContentEditable);if(e.key===`Enter`){if(r)return;t.result?t.onContinue&&(e.preventDefault(),t.onContinue()):t.ready?(e.preventDefault(),t.submit()):t.answered&&s&&!t.confidence&&te(!0);return}if(!(r||t.result))if(/^[1-9]$/u.test(e.key)&&(m.kind===`choice`||m.kind===`multi`)){let n=m.options[Number(e.key)-1];if(!n)return;e.preventDefault(),m.kind===`multi`?t.toggle(n.id):g(n.id)}else(e.key===`h`||e.key===`H`)&&t.hints<(m.hints?.length??0)&&(e.preventDefault(),x(e=>e+1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[l,m,s]);let le=(e,t)=>g(n=>{let r=[...n],i=e+t;return i<0||i>=r.length?n:([r[e],r[i]]=[r[i],r[e]],r)}),ue=e=>{if(O)return(Array.isArray(m.answer)?m.answer:[m.answer]).includes(e.id)?`right`:(Array.isArray(h)?h.includes(e.id):h===e.id)?`wrong`:void 0},de=m.fixed?Ql(p,m):[],fe=de.length?`${p(`fixedWasItem`)}\n${de.join(`
|
|
268
|
-
`)}`:``;return(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:c?8:12},children:[m.fixed?(0,i.jsx)(`div`,{children:(0,i.jsxs)(`span`,{className:`aha-itemFixed`,tabIndex:0,title:
|
|
269
|
-
`).filter(e=>e.trim()).map((e,t)=>(0,i.jsx)(ru,{text:e,compact:!0},t))}):null]}):null,m.hints?.length&&!O?(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[m.hints.slice(0,b).map((e,t)=>(0,i.jsxs)(`div`,{className:`aha-hint`,children:[`💡 `,e]},t)),b<m.hints.length?(0,i.jsx)(`div`,{children:(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>x(e=>e+1),children:[p(`hint`),` (`,b+1,`/`,m.hints.length,`)`]})}):null]}):null,s&&!O?(0,i.jsxs)(`div`,{className:`aha-row aha-confidence`,style:{gap:6},"data-nudge":ee&&!_?`true`:void 0,children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:p(`confidence`)}),Cu.map(([e,t])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":_===e,onClick:()=>{y(e),te(!1)},children:p(t)},e))]}):null,(0,i.jsx)($,{error:E}),O?(0,i.jsxs)(`div`,{className:`aha-feedback`,"data-ok":O.correct?`true`:O.partial?void 0:`false`,children:[(0,i.jsxs)(`b`,{children:[O.correct?p(`correct`):O.partial?p(`partial`):p(`incorrect`),O.regraded?p(`regraded`):``]}),O.feedback?(0,i.jsx)(ru,{text:O.feedback,compact:!0}):null,m.explanation?(0,i.jsx)(ru,{text:m.explanation,compact:!0}):null,O.wrongStep?(0,i.jsxs)(`div`,{className:`aha-wrongStep`,children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:p(`wrongStep`)}),(0,i.jsx)(ru,{text:O.wrongStep,compact:!0}),O.fix?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:p(`fixedStep`)}),(0,i.jsx)(ru,{text:O.fix,compact:!0})]}):null]}):null,m.kind!==`short`&&m.kind!==`work`&&!O.correct?(0,i.jsx)(`div`,{className:`aha-hint`,children:Eu(m)}):null,u&&ne===null&&d?.status!==`checking`?(0,i.jsxs)(`button`,{type:`button`,className:`aha-itemFlag`,onClick:()=>re(``),children:[`🧐 `,p(`itemChallenge`)]}):null]}):null,O&&ne!==null?(0,i.jsxs)(`form`,{className:`aha-challengeBox aha-itemChallenge`,onSubmit:A,children:[(0,i.jsx)(`b`,{children:p(`itemChallengeTitle`)}),(0,i.jsx)(`textarea`,{className:`aha-textarea`,rows:2,autoFocus:!0,value:ne,placeholder:p(`itemChallengePlaceholder`),onChange:e=>{let t=e.currentTarget.value;re(e=>e===null?e:t)},onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&A(e),e.key===`Escape`&&re(null)}}),(0,i.jsxs)(`div`,{className:`aha-challengeActions`,children:[(0,i.jsx)(Su,{onText:e=>re(t=>t===null?t:t.trim()?`${t.trimEnd()} ${e}`:e)}),(0,i.jsx)(`span`,{className:`aha-challengeHint`,children:p(`itemChallengeHint`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>re(null),children:p(`cancel`)}),(0,i.jsx)(`button`,{type:`submit`,className:`aha-btn`,"data-kind":`primary`,children:p(`challengeSend`)})]})]}):null,O&&d?(0,i.jsxs)(`div`,{className:`aha-itemCheck`,"data-verdict":d.status===`done`?d.verdict:void 0,role:`status`,children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:p(`itemCheckTitle`)}),d.status===`checking`?(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:6},children:[(0,i.jsx)(`span`,{className:`aha-spinner`}),p(`itemChecking`)]}):null,d.status===`done`?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`b`,{children:p(Jl[d.verdict]??Jl.right)}),d.summary?(0,i.jsx)(ru,{text:d.summary,compact:!0}):null,d.explanation?(0,i.jsx)(ru,{text:d.explanation,compact:!0}):null]}):null,d.status===`failed`?(0,i.jsxs)(`div`,{className:`aha-row`,style:{gap:6},children:[(0,i.jsx)($,{error:d.error}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>u?.(d.note??``),children:p(`retry`)})]}):null]}):null,(0,i.jsxs)(`div`,{className:`aha-row aha-itemActions`,children:[O?null:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:!ae||w,onClick:oe,children:w?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`span`,{className:`aha-spinner`}),p(`grading`)]}):p(`submit`)}),O&&a?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:a,children:o??p(`continue`)}):null,!O&&a?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:a,children:p(`skip`)}):null]})]})}function Tu({svg:e,plot:t}){let n=(0,r.useMemo)(()=>nc(t?Ys(t):e),[e,t]);return n?(0,i.jsx)(`div`,{className:`aha-itemFigure`,dangerouslySetInnerHTML:{__html:n}}):null}function Eu(e){return e.kind===`choice`?`✔ ${e.answer.toUpperCase()}. ${e.options.find(t=>t.id===e.answer)?.text??``}`:e.kind===`multi`?`✔ ${e.answer.map(e=>e.toUpperCase()).join(`, `)}`:e.kind===`order`?`✔ ${e.answer.map(t=>e.options.find(e=>e.id===t)?.text??t).join(` → `)}`:e.kind===`number`?`✔ ${e.answer}${e.unit?` ${e.unit}`:``}`:e.kind===`blank`?`✔ ${e.answer.join(` / `)}`:``}function Du(e,t){return e.kind===`choice`?`chose ${String(t).toUpperCase()}: ${(e.options.find(e=>e.id===t)?.text??``).slice(0,50)}`:e.kind===`number`||e.kind===`blank`?`answered ${String(t).slice(0,40)}`:`wrong`}let Ou=[[`thinking`,`prepThinking`],[`writing`,`prepWriting`]];function ku(e){if(!((e?.thinking??0)>0))return null;let t=Ou.findIndex(([t])=>t===e.phase);return Ou.map(([e,n],r)=>({name:e,key:n,state:r<t?`done`:r===t?`now`:`next`}))}function Au({prep:e,label:t,first:n,hand:a=!0}){let{t:o}=v(),[s,c]=(0,r.useState)(()=>performance.now());(0,r.useEffect)(()=>{if(!n)return;let e=setInterval(()=>c(performance.now()),1e3);return()=>clearInterval(e)},[n]);let l=e.phase??`starting`,u=n?ku(e):null,d=Math.max(0,Math.round(((e.elapsedMs??0)+s-(e.receivedAt??s))/1e3));return(0,i.jsxs)(`div`,{className:`aha-prep`,role:`status`,"aria-live":`polite`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:8,flexWrap:`nowrap`},children:[(0,i.jsx)(`span`,{className:`aha-spinner`}),(0,i.jsx)(`b`,{children:t})]}),n?(0,i.jsx)(`span`,{className:`aha-hint`,children:o(`prepSeconds`,{seconds:d})}):null]}),u?(0,i.jsx)(`ol`,{className:`aha-prepStages`,children:u.map(e=>(0,i.jsx)(`li`,{"data-state":e.state,children:o(e.key)},e.name))}):null,(0,i.jsx)(`div`,{className:`aha-prepNow`,children:l===`writing`?(0,i.jsxs)(i.Fragment,{children:[o(`prepStep`,{n:(e.steps??0)+1}),e.current?(0,i.jsxs)(i.Fragment,{children:[`:`,(0,i.jsx)(`span`,{className:`aha-prepHint`,"data-hand":a?`true`:void 0,children:(0,i.jsx)(ol,{text:e.current})})]}):`…`]}):l===`thinking`?o(`prepThinkingDetail`,{chars:(e.thinking??0).toLocaleString()}):o(`prepStarting`)}),l===`writing`?(0,i.jsx)(`div`,{className:`aha-hint`,children:o(`prepCounts`,{steps:e.steps??0,chars:(e.chars??0).toLocaleString()})}):null]})}let ju=[.75,1,1.25,1.5,2],Mu=[[`analogy`,`styleAnalogy`],[`visual`,`styleVisual`],[`example`,`styleExample`],[`simpler`,`styleSimpler`],[`deeper`,`styleDeeper`]];function Nu({id:e,kind:t,label:n,anchorId:r,steps:i=[],streaming:a=!1,serverId:o}){return{id:e,kind:t,label:n,anchorId:r,streaming:a,serverId:o,steps:rl(i,`${e}_`).map(e=>({...e,anchorId:r}))}}let Pu=e=>{let t=[...String(e??``).replace(/\s+/gu,` `).trim()];return t.length>28?`${t.slice(0,28).join(``)}…`:t.join(``)};function Fu({scope:e,title:t,crumb:n,steps:a=[],stream:o=null,asides:s=[],objectives:c=[],language:l,startIndex:u=0,autoplay:d=!0,onPosition:p,onEnded:m,onStreamDone:h,header:g,stageClass:_,recordChecks:y=!0,reveal:b}){let{api:x,t:T,speech:E,settings:D,dsh:ee}=v(),te=w(),ne=D.boardTheme===`dark`||D.boardTheme!==`light`&&te?`dark`:`light`,re=e=>T(Mu.find(([t])=>t===e)?.[1]??`reexplain`),ie=e=>e?T(`correctionOf`,{tag:e}):T(`correction`),O=(e,t)=>[e||T(`challengeLabel`),t?T(`challenge_${t}`):``].filter(Boolean).join(` · `),[k,ae]=(0,r.useState)(a),[A,se]=(0,r.useState)(()=>s.map(e=>Nu({id:e.id,kind:e.kind,label:e.kind===`question`?e.question:e.kind===`correction`?ie(e.errorTag):e.kind===`challenge`?O(e.note,e.verdict):T(`reexplainedAs`,{style:re(e.style)}),anchorId:e.anchorStepId,steps:e.steps??[],serverId:e.id}))),ce=(0,r.useRef)([]),[le,ue]=C(`classPanel`,!0),de=(0,r.useRef)(null),pe=(0,r.useRef)(null),me=(0,r.useRef)(null),[he,ge]=(0,r.useState)(!o),[_e,ve]=(0,r.useState)(null),[ye,be]=(0,r.useState)(!0),[xe,Se]=(0,r.useState)(!1),[Ce,we]=(0,r.useState)(null),Te=(0,r.useRef)({failures:0,down:!1}),[Ee,De]=(0,r.useState)(!1),[Oe,ke]=(0,r.useState)(``),[Ae,je]=(0,r.useState)(null),[Me,Ne]=(0,r.useState)(null),[Pe,Fe]=(0,r.useState)(null),Ie=(0,r.useRef)(new Set),[Le,Re]=(0,r.useState)(!1),[ze,Be]=(0,r.useState)(null),[Ve,He]=(0,r.useState)(null),Ue=(0,r.useRef)(0),We=(0,r.useRef)(null);We.current||=new AbortController,(0,r.useEffect)(()=>()=>We.current.abort(),[]),(0,r.useEffect)(()=>{_u(de.current)},[b]);let j=(0,r.useMemo)(()=>{let e=[];for(let t of k){e.push(t);for(let n of A)n.anchorId===t.id&&e.push(...n.steps)}return e},[k,A]),Ge=(0,r.useMemo)(()=>{let e=A.find(e=>e.streaming),t=e?j.findIndex(t=>t.id===e.anchorId):-1;if(t<0)return null;let n=t+1;for(;n<j.length&&j[n].aside;)n+=1;return n},[j,A]),Ke=(0,r.useMemo)(()=>Ge===null?j:j.slice(0,Ge),[j,Ge]),qe=(0,r.useRef)(null);qe.current=e=>{if(Te.current.down)return;let t=oe(Te.current.failures,e);Te.current.failures=t.failures,t.stop&&(Te.current.down=!0,E.configure({engine:`off`}),we({engine:D.voiceEngine??`browser`,...t.stop,dismissed:!1}))};let M=(0,r.useMemo)(()=>{let e=k[Math.min(u,k.length-1)]?.id,t=e?j.findIndex(t=>t.id===e):-1;return Cl({speech:E,onChange:ve,onNarration:e=>qe.current(e),startIndex:t>=0?t:u})},[E]);(0,r.useEffect)(()=>()=>M.dispose(),[M]),(0,r.useEffect)(()=>{M.setSteps(Ke,{done:he&&Ge===null})},[M,Ke,he,Ge]);let Je=xe||Ce?`off`:D.voiceEngine??`browser`;(0,r.useEffect)(()=>{E.configure({engine:Je,voiceId:D.voiceId||void 0,language:l})},[E,Je,D.voiceId,l]),(0,r.useEffect)(()=>{M.setRate(D.voiceRate??1)},[M,D.voiceRate]);let[Ye,Xe]=(0,r.useState)(null);(0,r.useEffect)(()=>{if(!o)return;let e=new AbortController;return ge(!1),x.follow({job:o},{signal:e.signal,onPartial:e=>ae(t=>{let n=new Set(t.map(e=>e.id)),r=e.filter(e=>!n.has(e.id));return r.length?[...t,...r]:t}),onPreview:(e,t)=>Xe(e?.phase?{...e,elapsedMs:t?.elapsedMs??0,receivedAt:performance.now()}:null)}).then(e=>{let t=e?.board??e?.item?.board??e;t?.steps?.length&&ae(ce.current.length?mt(t.steps,ce.current).steps:t.steps),Xe(null),ge(!0),h?.(e)}).catch(t=>{e.signal.aborted||(Xe(null),He(t),ge(!0))}),()=>e.abort()},[o]);let Ze=(0,r.useRef)(!1);(0,r.useEffect)(()=>{!d||Ze.current||!j.length||(Ze.current=!0,M.play())},[j.length,d,M]);let Qe=_e?.index??0,[$e,et]=(0,r.useState)(null);(0,r.useEffect)(()=>{et(e=>El(j,Qe,e))},[Qe,j]);let tt=Math.max(0,j.findIndex(e=>e.id===$e)),nt=_e?.status===`ended`&&he,rt=(0,r.useRef)(!1);(0,r.useEffect)(()=>{nt&&!rt.current&&(rt.current=!0,m?.()),nt||(rt.current=!1)},[nt]),(0,r.useEffect)(()=>{let e=e=>{e.target instanceof HTMLElement&&/input|textarea|select/iu.test(e.target.tagName)||(e.key===` `?(e.preventDefault(),M.toggle()):e.key===`ArrowRight`?M.next():e.key===`ArrowLeft`&&M.prev())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[M]);let it=(0,r.useCallback)(e=>{for(let t=Math.min(e,j.length-1);t>=0;--t)if(!j[t]?.aside)return j[t]?.id;return k[0]?.id},[j,k]),at=(0,r.useCallback)(e=>{let t=Math.max(0,Math.min(e,j.length-1)),n=j[t]?.aside?it(t):j[t]?.id;return Math.max(0,k.findIndex(e=>e.id===n))},[j,k,it]);(0,r.useEffect)(()=>{_e&&p?.(at(Qe))},[Qe]),(0,r.useEffect)(()=>{if(!Ae)return;let e=Ke.findIndex(e=>e.id===Ae);e>=0&&(je(null),M.seek(e))},[Ke,Ae,M]);async function ot({endpoint:t,payload:n,kind:r,label:i,anchorIndex:a,onStarted:s,onAdded:c,onFailed:l,onResult:u}){let d=it(a);Ue.current+=1;let p=`a${Ue.current}`,m=We.current.signal,h=!1,g=e=>{let t=Nu({id:p,kind:r,label:i,anchorId:d,steps:e,streaming:!0});se(e=>e.map(e=>e.id===p?{...e,steps:t.steps}:e)),!h&&t.steps.length&&(h=!0,De(!1),je(t.steps[0].id))},_=!1;He(null);try{let{job:l}=await x.call(t,{...n,scope:f(e,o),stepIndex:at(a),anchorStepId:d});s?.(),se(e=>[...e,Nu({id:p,kind:r,label:i,anchorId:d,streaming:!0})]),_=!0,c?.(p);let h=[],v=await x.follow({job:l},{signal:m,onPartial:e=>{h.push(...e),g([...h])}});g(v?.steps?.length?v.steps:h),se(e=>e.map(e=>e.id===p?{...e,streaming:!1,serverId:v?.aside?.id}:e)),De(!1),u?.(v,p)}catch(e){if(m.aborted)return;se(e=>e.flatMap(e=>e.id===p?e.steps.length?[{...e,streaming:!1}]:[]:[e])),De(!1),r===`question`&&!h&&ke(e=>e||i),_||l?.(),He(e)}}async function st(e){e?.preventDefault();let t=Oe.trim();t&&(M.pause(),De(`answering`),await ot({endpoint:`lesson/ask`,payload:{question:t},kind:`question`,label:t,anchorIndex:Qe,onStarted:()=>ke(``)}))}async function ct(e){Re(!1),M.pause(),De(`reexplaining`),await ot({endpoint:`lesson/reexplain`,payload:{style:e},kind:`reexplain`,label:T(`reexplainedAs`,{style:re(e)}),anchorIndex:Math.max(0,Math.min(Qe,j.length-1))})}async function lt(e,t){De(`correcting`),await ot({endpoint:`lesson/correct`,payload:{item:{prompt:e.prompt,answer:e.answer},response:t.response,grade:{feedback:t.feedback,errorTag:t.errorTag,wrongStep:t.wrongStep,why:t.why,fix:t.fix}},kind:`correction`,label:ie(t.errorTag),anchorIndex:Qe,onAdded:t=>Fe({checkId:e.id,asideId:t}),onFailed:()=>M.answer(e.id)})}(0,r.useEffect)(()=>{!Pe||!A.some(e=>e.id===Pe.asideId)||(Fe(null),M.answer(Pe.checkId))},[A,Pe,M]);function ut(e){M.pause(),Re(!1),Be({index:Math.max(0,Math.min(e,j.length-1)),note:``})}function dt(t){let n=j[t];if(!n?.aside)return n?{stepId:n.id}:null;let r=A.find(e=>n.id.startsWith(`${e.id}_`));return!r||r.streaming?null:r.serverId&&e.kind===`lesson`?{stepId:n.id.slice(r.id.length+1),asideId:r.serverId}:{step:{id:n.id,say:n.say,ops:n.ops.map(({fixed:e,...t})=>t)}}}async function ft(e){if(e?.preventDefault(),!ze)return;let t=dt(ze.index),n=ze.note.trim();Be(null),t&&(M.pause(),De(`checking`),await ot({endpoint:`lesson/challenge`,payload:{target:t,note:n},kind:`challenge`,label:O(n),anchorIndex:Qe,onResult:(e,t)=>{se(r=>r.map(r=>r.id===t?{...r,label:O(n,e?.verdict)}:r));let r=Array.isArray(e?.fixes)?e.fixes:[];r.length&&(e.target?.main?(ce.current.push(...r),ae(e=>mt(e,r).steps)):e.target?.asideId?se(t=>t.map(t=>t.serverId===e.target.asideId?{...t,steps:mt(t.steps,ht(r,`${t.id}_`)).steps}:t)):se(e=>e.map(e=>({...e,steps:mt(e.steps,r).steps}))))}}))}function pt(){M.pause(),ue(!0),setTimeout(()=>pe.current?.focus(),0)}let gt=at(Qe),_t=(0,r.useMemo)(()=>wl(k,gt,c.length,_e?.status===`ended`&&he),[k,gt,c.length,_e?.status,he]),vt=(0,r.useMemo)(()=>Tl(j,Math.max(tt,Qe),A),[j,tt,Qe,A]);(0,r.useEffect)(()=>{let e=me.current;e&&(e.scrollTop=e.scrollHeight)},[vt.length,le]);let yt=_e?.step,bt=_e?.status===`check`?yt?.check:null,xt=(0,r.useMemo)(()=>$c(yt?.say),[yt?.say]),St=xt[Math.min(_e?.sentence??0,xt.length-1)]??``;function Ct(t){Ne({checkId:bt?.id,result:t}),!(!y||e.kind!==`lesson`)&&x.call(`lesson/record`,{courseId:e.courseId,lessonId:e.lessonId,conceptIds:bt?.conceptIds??[],evidence:{kind:`check`,score:t.score,confidence:t.confidence,hintsUsed:t.hintsUsed,timeMs:t.timeMs,expectedMs:4e4,errorTag:t.errorTag}}).catch(()=>void 0)}let wt=_e?.status??`idle`,Tt=(wt===`buffering`||!j.length&&!he)&&!Ve,Et=j.length+ +!he,Dt=A.find(e=>e.streaming),Ot=Ee===`answering`||Dt?.kind===`question`?T(`answering`):Ee===`correcting`||Dt?.kind===`correction`?T(`correcting`):Ee===`checking`||Dt?.kind===`challenge`&&!Dt.steps.length?T(`checkingStep`):Ee===`reexplaining`||Dt?T(`generating`):j.length?T(`bufferingLesson`):T(`preparingLesson`),N=S(Tt&&!Ee&&!Dt&&!he,3e3)&&!!Ye,kt=_t?_t.filter(e=>e===`done`).length:0,At=!!Dt||!!Ee,jt=bt?.kind===`work`&&Me?.checkId===bt.id&&!Me.result.correct&&!!Me.result.response?.trim();function Mt(){if(bt){if(jt){if(Ie.current.has(bt.id))return;Ie.current.add(bt.id),lt(bt,Me.result);return}M.answer(bt.id)}}function Nt({replay:e}){Te.current={failures:0,down:!1},we(null),Se(!1),E.configure({engine:D.voiceEngine??`browser`}),e&&(wt===`playing`||wt===`paused`)&&M.seek(Qe)}let Pt=xe||!!Ce,Ft=!Ce||Ce.dismissed?null:Ce.engine===`cloud`?T(`voiceDownCloud`,{reason:Ml(T,Ce)}):T(`voiceDownSystem`,{reason:Ml(T,Ce)});return(0,i.jsxs)(`div`,{ref:de,className:`aha-class`,"data-panel":le?`open`:`closed`,children:[(0,i.jsxs)(`div`,{className:`aha-classBar`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:0},children:[n?(0,i.jsx)(`span`,{className:`aha-crumb`,children:n}):null,(0,i.jsx)(`span`,{className:`aha-cardTitle`,children:t})]}),(0,i.jsx)(`div`,{className:`aha-row`,children:typeof g==`function`?g({steps:j}):g})]}),(0,i.jsxs)(`div`,{className:`aha-classBody`,children:[(0,i.jsxs)(`div`,{className:`aha-classMain`,children:[(0,i.jsxs)(`div`,{className:`aha-stage ${_??``}`,children:[(0,i.jsx)(bl,{steps:j,position:_e?{index:_e.index,op:_e.op,progress:_e.progress,now:_e.now}:{index:0,op:0,progress:0},theme:ne,font:D.boardFont===`standard`?`standard`:`hand`,view:D.boardView===`pages`?`pages`:`canvas`,buffering:(Tt||!!Ee)&&!N,bufferingLabel:Ot,onInteract:()=>M.pause()}),N?(0,i.jsx)(Au,{prep:Ye,label:Ot,first:!j.length,hand:D.boardFont!==`standard`}):null,bt?(0,i.jsxs)(`div`,{className:`aha-checkCard`,children:[(0,i.jsx)(`div`,{className:`aha-spread`,children:(0,i.jsx)(`b`,{children:T(`checkTitle`)})}),(0,i.jsx)(wu,{item:bt,language:l,onResult:Ct,onContinue:Mt,continueLabel:jt?T(`seeCorrection`):void 0,keyboard:!0})]}):null]}),ye&&St?(0,i.jsx)(`div`,{className:`aha-caption`,children:(0,i.jsx)(ol,{text:St})}):(0,i.jsx)(`div`,{className:`aha-caption`}),(0,i.jsx)($,{error:Ve,style:{textAlign:`center`}}),ze?(0,i.jsxs)(`form`,{className:`aha-challengeBox`,onSubmit:ft,children:[(0,i.jsx)(`b`,{children:ze.index===Qe?T(`challengeTitle`):T(`challengeTitleStep`,{n:ze.index+1,text:Pu(j[ze.index]?.say)})}),(0,i.jsx)(`textarea`,{className:`aha-textarea`,rows:2,autoFocus:!0,value:ze.note,placeholder:T(`challengePlaceholder`),onChange:e=>{let t=e.currentTarget.value;Be(e=>e&&{...e,note:t})},onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&ft(e),e.key===`Escape`&&Be(null)}}),(0,i.jsxs)(`div`,{className:`aha-challengeActions`,children:[(0,i.jsx)(Su,{onStart:()=>M.pause(),onText:e=>Be(t=>t&&{...t,note:t.note.trim()?`${t.note.trimEnd()} ${e}`:e})}),(0,i.jsx)(`span`,{className:`aha-challengeHint`,children:T(`challengeHint`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>Be(null),children:T(`cancel`)}),(0,i.jsx)(`button`,{type:`submit`,className:`aha-btn`,"data-kind":`primary`,disabled:!dt(ze.index),children:T(`challengeSend`)})]})]}):null,Ft?(0,i.jsxs)(`div`,{className:`aha-voiceNote`,role:`status`,children:[(0,i.jsxs)(`span`,{className:`aha-voiceNoteText`,children:[`🔇 `,Ft]}),(0,i.jsxs)(`span`,{className:`aha-voiceNoteActions`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>Nt({replay:!0}),children:T(`retry`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>fe(ee,`settings`),children:T(`openSettings`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>we(e=>e&&{...e,dismissed:!0}),title:T(`close`),"aria-label":T(`close`),children:`×`})]})]}):null,(0,i.jsxs)(`div`,{className:`aha-controls`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>M.prev(),title:T(`prevStep`),"aria-label":T(`prevStep`),children:`⏮`}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>M.toggle(),disabled:!j.length,"aria-label":T(wt===`playing`?`pause`:`play`),children:[wt===`playing`?`⏸`:`▶`,` `,T(wt===`playing`?`pause`:`play`)]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>M.next(),title:T(`nextStep`),"aria-label":T(`nextStep`),children:`⏭`}),(0,i.jsx)(`span`,{className:`aha-tag`,children:T(`stepOf`,{current:Math.min(Qe+1,Math.max(1,j.length)),total:Math.max(Et,1)})}),(0,i.jsx)(`select`,{className:`aha-select`,style:{width:`auto`},value:_e?.rate??1,onChange:e=>M.setRate(Number(e.currentTarget.value)),"aria-label":T(`speed`),children:ju.map(e=>(0,i.jsxs)(`option`,{value:e,children:[e,`×`]},e))}),(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":!Pt,onClick:()=>Ce?Nt({replay:!1}):Se(e=>!e),children:Pt?`🔇 ${T(`voiceOff`)}`:`🔊 ${T(`voiceOn`)}`}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"data-active":ye,onClick:()=>be(e=>!e),children:[`CC `,T(`captions`)]}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,onClick:pt,disabled:!j.length,children:[`✋ `,T(`raiseHand`)]}),(0,i.jsxs)(`span`,{style:{position:`relative`},children:[(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,onClick:()=>Re(e=>!e),disabled:!j.length,children:[`🔄 `,T(`reexplain`)]}),Le?(0,i.jsx)(`div`,{className:`aha-card`,style:{position:`absolute`,bottom:`110%`,left:0,zIndex:10,padding:6,gap:2,minWidth:140},children:Mu.map(([e,t])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,style:{justifyContent:`flex-start`},onClick:()=>ct(e),children:T(t)},e))}):null]}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"aria-expanded":!!ze,onClick:()=>ze?Be(null):ut(Qe),disabled:!j.length||At,children:[`🧐 `,T(`challenge`)]}),le?null:(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"aria-expanded":!1,onClick:()=>ue(!0),children:[`📋 `,T(`showPanel`)]})]})]}),le?(0,i.jsxs)(`aside`,{className:`aha-panel`,"aria-label":T(`panelTitle`),children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`b`,{children:c.length?T(`lessonGoals`):T(`transcript`)}),(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:6},children:[c.length&&_t?(0,i.jsxs)(`span`,{className:`aha-tag`,children:[kt,`/`,c.length]}):null,(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>ue(!1),title:T(`hidePanel`),"aria-label":T(`hidePanel`),children:`›`})]})]}),c.length?(0,i.jsx)(`ol`,{className:`aha-goals`,children:c.map((e,t)=>(0,i.jsxs)(`li`,{"data-state":_t?.[t]??`plain`,children:[(0,i.jsx)(`span`,{className:`aha-goalMark`,"aria-hidden":`true`,children:_t?.[t]===`done`?`✓`:t+1}),(0,i.jsx)(`span`,{children:e})]},t))}):null,c.length?(0,i.jsx)(`b`,{className:`aha-panelHead`,children:T(`transcript`)}):null,(0,i.jsx)(`div`,{ref:me,className:`aha-transcript`,role:`list`,children:vt.map(e=>(0,i.jsxs)(`div`,{role:`listitem`,className:`aha-lineRow`,"data-aside":e.aside?`true`:void 0,children:[(0,i.jsxs)(`button`,{type:`button`,className:`aha-line`,"data-kind":e.kind,"data-current":e.stepIndex===Qe?`true`:void 0,disabled:e.stepIndex<0,onClick:()=>M.seek(e.stepIndex),children:[e.kind===`question`?(0,i.jsx)(`span`,{className:`aha-lineTag`,children:`✋`}):e.kind===`reexplain`?(0,i.jsx)(`span`,{className:`aha-lineTag`,children:`🔄`}):e.kind===`correction`?(0,i.jsx)(`span`,{className:`aha-lineTag`,children:`✏️`}):e.kind===`challenge`?(0,i.jsx)(`span`,{className:`aha-lineTag`,children:`🧐`}):null,(0,i.jsx)(`span`,{className:`aha-lineText`,children:(0,i.jsx)(ol,{text:e.text})}),e.pending?(0,i.jsx)(Dl,{}):null]}),e.kind===`say`&&e.stepIndex>=0&&!At?(0,i.jsx)(`button`,{type:`button`,className:`aha-lineFlag`,title:T(`challenge`),"aria-label":T(`challengeStep`,{n:e.stepIndex+1}),onClick:()=>ut(e.stepIndex),children:T(`challengeLine`)}):null]},e.key))}),(0,i.jsxs)(`form`,{className:`aha-askBox`,onSubmit:st,children:[(0,i.jsx)(`textarea`,{ref:pe,className:`aha-textarea`,rows:2,value:Oe,placeholder:T(`askPlaceholder`),disabled:!j.length,onChange:e=>ke(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&st(e)}}),(0,i.jsxs)(`div`,{className:`aha-askActions`,children:[(0,i.jsx)(Su,{disabled:!j.length,onStart:()=>M.pause(),onText:e=>{ke(t=>t.trim()?`${t.trimEnd()} ${e}`:e),pe.current?.focus()}}),(0,i.jsx)(`button`,{type:`submit`,className:`aha-btn`,"data-kind":`primary`,disabled:!Oe.trim()||At,children:T(`ask`)})]})]})]}):null]})]})}let Iu=[[`explain`,`modeExplain`,`💡`],[`solve`,`modeSolve`,`🧮`],[`visualize`,`modeVisualize`,`📈`]];function Lu({draftMode:e,draftRequest:t,draftMaterials:n,token:a}){let{api:o,t:s}=v(),c=y(()=>o.call(`items/list`,{kind:`assist`}),[]),[l,u]=(0,r.useState)(Iu.some(([t])=>t===e)?e:`explain`),[d,f]=(0,r.useState)(t??``),[p,m]=(0,r.useState)(Array.isArray(n)?n:[]),[h,g]=(0,r.useState)(!1),[_,b]=(0,r.useState)(null),[S,C]=(0,r.useState)(null),w=x(a);async function T(e=d){let t=e.trim();if(!t)return;C(null);let n=_?.threadId??be(`thd`);_?.stream&&!_.done&&o.cancel(_.stream);try{let{job:e}=await o.call(`assist/ask`,{mode:l,request:t,materialIds:p,threadId:_?.threadId,newThreadId:_?.threadId?void 0:n});b(r=>({threadId:n,turn:r?r.turn+1:0,stream:e,done:!1,steps:[],title:t.slice(0,80),language:void 0,key:`${n}:${Date.now()}`})),f(``)}catch(e){C(e)}}(0,r.useEffect)(()=>{w&&t&&T(t)},[]);async function E(e){C(null);try{let{item:t}=await o.call(`items/get`,{kind:`assist`,id:e}),n=t.turns.length-1;b({threadId:t.id,turn:n,stream:null,steps:t.turns[n]?.board?.steps??[],title:t.turns[n]?.request??t.title,language:t.language,key:`${t.id}:${n}:open`,opened:Date.now()})}catch(e){C(e)}}return(0,i.jsxs)(`div`,{className:`aha-page`,"data-wide":`true`,children:[(0,i.jsxs)(`div`,{className:`aha-split`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{minHeight:0},children:[_?(0,i.jsx)(Fu,{scope:{kind:`thread`,id:_.threadId,turn:_.turn},title:_.title,steps:_.steps,stream:_.stream,language:_.language,recordChecks:!1,reveal:_.opened,onStreamDone:e=>{b(t=>t?.stream?.id===_.stream?.id?{...t,done:!0,turn:Number.isInteger(e?.turn)?e.turn:t.turn}:t),c.reload()}},_.key):(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:s(`assistTitle`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:s(`assistHint`)})]}),(0,i.jsxs)(`div`,{className:`aha-composer`,children:[(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:6},children:Iu.map(([e,t,n])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"data-active":l===e,onClick:()=>u(e),children:[n,` `,s(t)]},e))}),(0,i.jsx)(`textarea`,{value:d,placeholder:s(_?`followUp`:`assistPlaceholder`),onChange:e=>f(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&T()}}),(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>g(!0),children:p.length?s(`attached`,{count:p.length}):s(`attach`)}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[_?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>b(null),children:s(`newThread`)}):null,(0,i.jsx)(Su,{onText:e=>f(t=>t.trim()?`${t.trimEnd()} ${e}`:e)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:!d.trim(),onClick:()=>T(),children:s(`ask`)})]})]})]}),(0,i.jsx)($,{error:S})]}),(0,i.jsxs)(`aside`,{className:`aha-col`,style:{minHeight:0,overflow:`auto`},children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:s(`history`)}),c.loading&&!c.value?(0,i.jsx)(Dl,{}):(c.value??[]).map(e=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-option`,onClick:()=>E(e.id),children:[(0,i.jsx)(`b`,{children:e.title}),(0,i.jsx)(`small`,{children:new Date(e.updatedAt).toLocaleString()})]},e.id))]})]}),h?(0,i.jsx)(Il,{selected:p,onChange:m,onClose:()=>g(!1)}):null]})}Object.freeze({pInit:.2,pTransit:.15,pSlip:.1,pGuess:.2}),Object.freeze([{id:`struggling`,min:0},{id:`learning`,min:.4},{id:`proficient`,min:.7},{id:`mastered`,min:.9}]);let Ru=(e,t,n)=>Math.min(n,Math.max(t,e));function zu(e){return Math.round(Ru(Number(e?.pKnown)||0,0,1)*100)}Object.freeze([`none`,`weak`,`learning`,`proficient`,`mastered`]);function Bu(e){return!e||!e.attempts&&!e.history?.length?`none`:Vu(zu(e))}function Vu(e){let t=Number(e);return Number.isFinite(t)?t>=90?`mastered`:t>=70?`proficient`:t>=40?`learning`:`weak`:`none`}let Hu=Object.freeze({none:`stageNone`,weak:`stageWeak`,learning:`stageLearning`,proficient:`stageProficient`,mastered:`stageMastered`});function Uu(e){let t=e.filter(Boolean),n=t.length?t.reduce((e,t)=>e+(Number(t.score)||0),0)/t.length:0,r=0,i=0;for(let e of t)r=e.correct?r+1:0,i=Math.max(i,r);return{answered:t.length,correct:t.filter(e=>e.correct).length,accuracy:n,stars:n>=.9?3:n>=.6?2:1,streak:r,bestStreak:i}}function Wu(e,{lessonId:t,unitId:n,nextLessonId:r}={}){let i=e?.action;return i===`remediate`?t?{kind:`relearn`,lessonId:t}:{kind:`review`}:i===`review`?{kind:`review`}:i===`challenge`&&n?{kind:`quiz`,unitId:n}:r?{kind:`next`,lessonId:r}:{kind:`course`}}function Gu(e,t){let n=(e.concepts??[]).map(e=>t?.concepts?.[e.id]);if(!n.some(e=>Bu(e)!==`none`))return{stage:`none`,percent:0};let r=Math.round(n.reduce((e,t)=>e+zu(t??{pKnown:.2}),0)/n.length);return{stage:Vu(r),percent:r}}function Ku(e,t,{now:n=Date.now()}={}){let r=nt(e),i=Object.entries(t?.reviews??{}).filter(([e,t])=>r.has(e)&&Date.parse(t?.dueAt)<=n).length;if(i)return{kind:`review`,count:i};let a=[...r.values()].map(e=>({concept:e,state:t?.concepts?.[e.id]})).filter(e=>Bu(e.state)===`weak`).sort((e,t)=>e.state.pKnown-t.state.pKnown)[0];if(a)return{kind:`practice`,lessonId:a.concept.lessonId,concept:a.concept.name};let o=at(e,t);return o?{kind:`lesson`,lessonId:o.lesson.id,title:o.lesson.title}:{kind:`done`,unitId:e.units?.at(-1)?.id??null}}let qu=[[`outline`,`tabOutline`],[`practice`,`tabPractice`],[`sheets`,`tabSheets`],[`cards`,`tabCards`],[`projects`,`tabProjects`],[`progress`,`tabProgress`]];function Ju({courseId:e,tab:t=`outline`}){let{api:n,t:a,navigate:o,toast:s}=v(),c=y(()=>n.call(`course/get`,{courseId:e}),[e]),[l,u]=(0,r.useState)(t),[d,f]=(0,r.useState)(!1),[p,m]=(0,r.useState)(!1),[g,_]=(0,r.useState)(!1),b=c.value?.course,x=c.value?.progress,S=(0,r.useMemo)(()=>b?.units?it(b,x):null,[b,x]),C=(0,r.useMemo)(()=>b?.units?at(b,x):null,[b,x]),w=(0,r.useMemo)(()=>b?.units?Ku(b,x):null,[b,x]);if(c.loading&&!c.value)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Dl,{label:a(`loading`)})});if(!b)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)($,{error:c.error})});if(b.status!==`ready`)return o(`craft`,{courseId:e},{replace:!0}),null;let T=e=>zu(x?.concepts?.[e]??{pKnown:.2}),E=e=>x?.lessons?.[e]?.status??`new`;async function D(t){m(!1);try{let r=await n.call(`course/export`,{courseId:e,includeProgress:t});h(r.fileName,r.json)}catch(e){s(Ml(a,e))}}return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4,flex:1,minWidth:260},children:[(0,i.jsxs)(`div`,{className:`aha-row`,style:{flexWrap:`nowrap`},children:[(0,i.jsx)(`span`,{style:{fontSize:30},children:b.emoji}),(0,i.jsx)(`h2`,{className:`aha-title`,children:b.title})]}),b.subtitle?(0,i.jsx)(`p`,{className:`aha-subtitle`,children:b.subtitle}):null,S?(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4,maxWidth:480},children:[(0,i.jsx)(Ol,{value:S.percent}),(0,i.jsxs)(`span`,{className:`aha-hint`,children:[a(`lessonsCount`,S),` · `,a(`minutesLeft`,{minutes:S.minutesLeft})]})]}):null]}),(0,i.jsxs)(`div`,{className:`aha-row`,style:{position:`relative`},children:[C?(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>o(`lesson`,{courseId:e,lessonId:C.lesson.id}),children:[(0,i.jsx)(me,{name:`play`,size:14}),a(`continueLearning`)]}):null,(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>f(e=>!e),children:`⋯`}),d?(0,i.jsxs)(`div`,{className:`aha-card`,style:{position:`absolute`,right:0,top:`110%`,zIndex:20,padding:6,gap:2,minWidth:180},onMouseLeave:()=>f(!1),children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,style:{justifyContent:`flex-start`},onClick:()=>{f(!1),o(`craft`,{courseId:e,edit:!0})},children:a(`editOutline`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,style:{justifyContent:`flex-start`},onClick:()=>{f(!1),m(!0)},children:a(`exportPack`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,style:{justifyContent:`flex-start`},onClick:async()=>{f(!1),await n.call(`course/update`,{courseId:e,archived:!b.archived}),c.reload()},children:b.archived?a(`unarchive`):a(`archive`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,style:{justifyContent:`flex-start`,color:`var(--aha-bad)`},onClick:()=>{f(!1),_(!0)},children:a(`deleteCourse`)})]}):null]})]}),w?(0,i.jsx)(Yu,{step:w,courseId:e}):null,(0,i.jsx)(`div`,{className:`aha-tabs`,children:qu.map(([e,t])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-tab`,"data-active":l===e,onClick:()=>u(e),children:a(t)},e))}),l===`outline`?(0,i.jsx)(`div`,{className:`aha-tree`,children:b.units.map((t,n)=>(0,i.jsxs)(`div`,{className:`aha-unit`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`b`,{children:[a(`unitN`,{n:n+1}),` · `,t.title]}),(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:4},children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>o(`sheet`,{courseId:e,unitId:t.id}),children:a(`unitSheet`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>o(`practice`,{courseId:e,unitId:t.id}),children:a(`unitQuiz`)})]})]}),t.summary?(0,i.jsx)(`p`,{className:`aha-hint`,children:t.summary}):null,t.lectures.map((t,n)=>(0,i.jsxs)(`div`,{className:`aha-lecture`,children:[(0,i.jsxs)(`div`,{className:`aha-hint`,style:{fontWeight:600},children:[a(`lectureN`,{n:n+1}),` · `,t.title]}),t.lessons.map(t=>(0,i.jsxs)(`div`,{className:`aha-lesson`,children:[(0,i.jsx)(`span`,{className:`aha-dot`,"data-state":E(t.id)}),(0,i.jsx)(`span`,{style:{flex:1,cursor:`pointer`},onClick:()=>o(`lesson`,{courseId:e,lessonId:t.id}),title:t.summary,children:t.title}),t.kind===`remedial`?(0,i.jsx)(`span`,{className:`aha-tag`,children:a(`remedial`)}):null,(0,i.jsx)(`span`,{className:`aha-hint`,children:a(`estMinutes`,{minutes:t.estMinutes})}),(0,i.jsx)(Xu,{lesson:t,progress:x}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>o(`lesson`,{courseId:e,lessonId:t.id}),children:a(`learn`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>o(`practice`,{courseId:e,lessonId:t.id}),children:a(`practice`)})]},t.id))]},t.id))]},t.id))}):null,l===`outline`&&b.sources?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:a(`courseSources`)}),(0,i.jsx)(Rl,{sources:b.sources})]}):null,l===`practice`?(0,i.jsxs)(`div`,{className:`aha-col`,children:[(0,i.jsx)(`div`,{className:`aha-row`,children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>o(`practice`,{courseId:e,review:!0}),children:a(`startReview`)})}),b.units.map((t,n)=>(0,i.jsxs)(`div`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`b`,{children:[a(`unitN`,{n:n+1}),` · `,t.title]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>o(`practice`,{courseId:e,unitId:t.id}),children:a(`unitQuiz`)})]}),(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:6},children:t.lectures.flatMap(e=>e.lessons).map(t=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,onClick:()=>o(`practice`,{courseId:e,lessonId:t.id}),children:t.title},t.id))})]},t.id))]}):null,l===`sheets`?(0,i.jsx)(`div`,{className:`aha-grid`,children:b.units.map((t,n)=>(0,i.jsxs)(`div`,{className:`aha-card`,"data-click":`true`,onClick:()=>o(`sheet`,{courseId:e,unitId:t.id}),children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:a(`unitN`,{n:n+1})}),(0,i.jsx)(`b`,{children:t.title}),(0,i.jsx)(`span`,{className:`aha-tag`,children:c.value.ready.sheets.includes(t.id)?a(`open`):a(`generate`)})]},t.id))}):null,l===`cards`?(0,i.jsxs)(`div`,{className:`aha-card`,children:[(0,i.jsx)(`p`,{children:a(`cardsTitle`)}),(0,i.jsx)(`div`,{className:`aha-row`,children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>o(`cards`,{courseId:e}),children:a(`open`)})})]}):null,l===`projects`?b.projects?.length?(0,i.jsx)(`div`,{className:`aha-grid`,children:b.projects.map(t=>(0,i.jsxs)(`div`,{className:`aha-card`,"data-click":`true`,onClick:()=>o(`project`,{courseId:e,projectId:t.id}),children:[(0,i.jsx)(`b`,{children:t.title}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t.brief.slice(0,160)}),(0,i.jsx)(`span`,{className:`aha-tag`,children:x?.projects?.[t.id]?.status===`passed`?`✔`:t.kind})]},t.id))}):(0,i.jsx)(Nl,{children:a(`empty`)}):null,l===`progress`?(0,i.jsxs)(`div`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:a(`conceptMastery`)}),(0,i.jsx)(`div`,{className:`aha-col`,style:{gap:4},children:$e(b).flatMap(({lesson:e})=>e.concepts.map(t=>({concept:t,lesson:e}))).map(({concept:e,lesson:t})=>{let n=x?.concepts?.[e.id],r=Bu(n);return(0,i.jsxs)(`div`,{className:`aha-spread`,style:{padding:`3px 0`,borderBottom:`1px solid var(--aha-border)`},children:[(0,i.jsxs)(`span`,{children:[e.name,` `,(0,i.jsxs)(`span`,{className:`aha-hint`,children:[`· `,t.title]})]}),(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:8},children:[n?.misconceptions?.length?(0,i.jsxs)(`span`,{className:`aha-tag`,title:n.misconceptions.join(`
|
|
270
|
-
`),children:[`⚠ `,n.misconceptions.length]}):null,(0,i.jsx)(`span`,{className:`aha-level`,"data-level":r,children:a(Hu[r])}),(0,i.jsx)(Bl,{value:T(e.id),stage:r,label:a(Hu[r])}),(0,i.jsx)(`span`,{className:`aha-hint`,style:{width:36,textAlign:`right`},children:r===`none`?`—`:`${T(e.id)}%`})]})]},e.id)})})]}):null,p?(0,i.jsx)(Al,{title:a(`exportPack`),onClose:()=>m(!1),footer:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>D(!1),children:a(`exportPack`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>D(!0),children:a(`exportWithProgress`)})]}),children:(0,i.jsx)(`p`,{className:`aha-hint`,children:b.title})}):null,g?(0,i.jsx)(jl,{danger:!0,text:a(`deleteConfirm`,{title:b.title}),onCancel:()=>_(!1),onConfirm:async()=>{await n.call(`course/remove`,{courseId:e}),o(`courses`,{},{replace:!0})}}):null]})}function Yu({step:e,courseId:t}){let{t:n,navigate:r}=v(),a={review:[n(`nextStepReview`,{count:e.count}),n(`startReview`),()=>r(`practice`,{courseId:t,review:!0})],practice:[n(`nextStepWeak`,{concept:e.concept}),n(`practiceThis`),()=>r(`practice`,{courseId:t,lessonId:e.lessonId})],lesson:[n(`nextStepLesson`,{title:e.title}),n(`continueLearning`),()=>r(`lesson`,{courseId:t,lessonId:e.lessonId})],done:[n(`nextStepDone`),n(`unitQuiz`),e.unitId?()=>r(`practice`,{courseId:t,unitId:e.unitId}):null]}[e.kind];if(!a)return null;let[o,s,c]=a;return(0,i.jsxs)(`div`,{className:`aha-card aha-nextStep`,"data-kind":e.kind,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:2,flex:1,minWidth:200},children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:n(`nextStepTitle`)}),(0,i.jsx)(`b`,{children:o})]}),c?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:c,children:s}):null]})}function Xu({lesson:e,progress:t}){let{t:n}=v(),{stage:r,percent:a}=Gu(e,t);return(0,i.jsx)(Bl,{value:a,stage:r,label:n(Hu[r])})}let Zu=[[`all`,`filterAll`],[`active`,`filterActive`],[`done`,`filterDone`],[`archived`,`filterArchived`]];function Qu(){let{api:e,t,navigate:n,toast:a}=v(),o=y(()=>e.call(`course/list`),[]),[s,c]=(0,r.useState)(`all`),[l,u]=(0,r.useState)(``),[d,f]=(0,r.useState)(null),p=(0,r.useRef)(null),m=(o.value??[]).filter(e=>s===`archived`?e.archived:e.archived?!1:s===`active`?e.status!==`ready`||e.progress.percent<100:s!==`done`||e.status===`ready`&&e.progress.percent>=100).filter(e=>!l.trim()||`${e.title} ${e.subtitle}`.toLowerCase().includes(l.trim().toLowerCase()));async function h(r){f(null);try{let i=await r.text(),o=await e.call(`course/import`,{json:i});a(t(`courseReady`)),n(`course`,{courseId:o.id})}catch(e){f(e)}}return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:t(`coursesTitle`)}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>p.current?.click(),children:t(`importPack`)}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>n(`home`),children:[`+ `,t(`modeCourse`)]}),(0,i.jsx)(`input`,{ref:p,type:`file`,accept:`.json,application/json`,hidden:!0,onChange:e=>{let t=e.currentTarget.files?.[0];t&&h(t),e.currentTarget.value=``}})]})]}),(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:6},children:Zu.map(([e,n])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":s===e,onClick:()=>c(e),children:t(n)},e))}),(0,i.jsx)(`input`,{className:`aha-input`,style:{maxWidth:260},value:l,placeholder:t(`searchCourses`),onChange:e=>u(e.currentTarget.value)})]}),(0,i.jsx)($,{error:d??o.error}),o.loading&&!o.value?(0,i.jsx)(Dl,{label:t(`loading`)}):m.length?(0,i.jsx)(`div`,{className:`aha-grid`,children:m.map(e=>(0,i.jsxs)(`div`,{className:`aha-card`,"data-click":`true`,onClick:()=>n(e.status===`ready`?`course`:`craft`,{courseId:e.id}),children:[(0,i.jsxs)(`div`,{className:`aha-row`,style:{flexWrap:`nowrap`},children:[(0,i.jsx)(`span`,{style:{fontSize:26},children:e.emoji}),(0,i.jsx)(`span`,{className:`aha-cardTitle`,children:e.title})]}),e.subtitle?(0,i.jsx)(`p`,{className:`aha-hint`,children:e.subtitle}):null,e.status===`ready`?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Ol,{value:e.progress.percent}),(0,i.jsxs)(`span`,{className:`aha-hint`,children:[t(`lessonsCount`,e.progress),e.next?` · ${t(`nextUp`,{title:e.next.title})}`:``]})]}):(0,i.jsx)(`span`,{className:`aha-tag`,children:e.status===`intake`?t(`statusIntake`):t(`statusBlueprint`)})]},e.id))}):(0,i.jsx)(Nl,{children:t(`noCourses`)})]})}let $u=[[`intensive`,`paceIntensive`,`paceIntensiveHint`],[`balanced`,`paceBalanced`,`paceBalancedHint`],[`relaxed`,`paceRelaxed`,`paceRelaxedHint`]],ed=[[`auto`,`sizeAuto`,`sizeAutoHint`],[`short`,`sizeShort`,`sizeShortHint`],[`standard`,`sizeStandard`,`sizeStandardHint`],[`full`,`sizeFull`,`sizeFullHint`]],td=[60,120,180,300,420,600];function nd({jobId:e,courseId:t,edit:n=!1}){let{api:a,t:o,navigate:s}=v(),[c,l]=(0,r.useState)(null),[u,d]=(0,r.useState)(`questions`);return(0,r.useEffect)(()=>{if(!e||t)return;let n=new AbortController;return a.follow({job:{id:e,status:`running`}},{signal:n.signal,onProgress:e=>d(e?.label===`research`?`research`:`questions`)}).then(e=>s(`craft`,{courseId:e.courseId},{replace:!0})).catch(e=>{n.signal.aborted||l(e)}),()=>n.abort()},[e,t]),t?(0,i.jsx)(rd,{courseId:t,edit:n}):(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:o(`craftQuestionsTitle`)}),c?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)($,{error:c}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>s(`home`),children:o(`back`)})]}):(0,i.jsx)(Dl,{label:o(u===`research`?`researching`:`thinkingQuestions`)})]})}function rd({courseId:e,edit:t}){let{api:n,t:a,navigate:o}=v(),s=y(()=>n.call(`course/get`,{courseId:e}),[e]),c=b(),l=s.value?.course;return(0,r.useEffect)(()=>{let e=s.value?.jobs?.questions??s.value?.jobs?.blueprint??s.value?.jobs?.confirm;!e||c.running||c.run(null,null,{existing:e}).then(()=>s.reload()).catch(()=>void 0)},[s.value]),(0,r.useEffect)(()=>{l?.status===`ready`&&!c.running&&!t&&o(`course`,{courseId:e},{replace:!0})},[l?.status]),s.loading&&!s.value?(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Dl,{label:a(`loading`)})}):s.error&&!s.value?(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)($,{error:s.error})}):l?l.status===`intake`?(0,i.jsx)(id,{course:l,intake:s.value.intake,job:c,onDone:()=>s.reload()}):(0,i.jsx)(ld,{course:l,proposal:s.value.proposal,progress:s.value.progress,boards:s.value.ready?.boards??[],job:c,onChange:()=>s.reload()}):null}function id({course:e,intake:t,job:n,onDone:a}){let{t:o}=v(),s=t?.questionnaire?.questions??[],[c,l]=(0,r.useState)({}),[u,d]=(0,r.useState)(`balanced`),[f,p]=(0,r.useState)(`auto`),[m,h]=(0,r.useState)(180),[g,_]=(0,r.useState)(``),y=(e,t)=>l(n=>{let r=n[e.id]??{choice:[],other:``},i=e.multi?r.choice.includes(t)?r.choice.filter(e=>e!==t):[...r.choice,t]:[t];return{...n,[e.id]:{...r,choice:i}}});async function b(){try{await n.run(`course/intake`,{courseId:e.id,answers:c,timeline:u,size:f,weeklyMinutes:m,deadline:g||void 0}),a()}catch{}}return n.running?n.progress?.label===`questions`?(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:e.goal}),(0,i.jsx)(kl,{progress:n.progress,label:o(`thinkingQuestions`),onCancel:n.cancel})]}):(0,i.jsx)(od,{course:e,job:n,research:t?.research}):(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:o(`craftQuestionsTitle`)}),(0,i.jsx)(`p`,{className:`aha-subtitle`,children:e.goal}),(0,i.jsx)(`p`,{className:`aha-hint`,children:o(`craftQuestionsHint`)}),t?.research?(0,i.jsx)(ad,{research:t.research}):null]}),s.map((e,t)=>(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-cardTitle`,children:[t+1,`. `,e.prompt]}),(0,i.jsx)(`div`,{className:`aha-grid`,style:{gridTemplateColumns:`repeat(auto-fill,minmax(220px,1fr))`},children:e.options.map(t=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-option`,"data-active":c[e.id]?.choice?.includes(t.id)??!1,onClick:()=>y(e,t.id),children:[(0,i.jsx)(`b`,{children:t.label}),t.detail?(0,i.jsx)(`small`,{children:t.detail}):null]},t.id))}),(0,i.jsx)(`input`,{className:`aha-input`,placeholder:o(`craftOther`),value:c[e.id]?.other??``,onChange:t=>{let n=t.currentTarget.value;l(t=>({...t,[e.id]:{choice:t[e.id]?.choice??[],other:n}}))}})]},e.id)),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`div`,{className:`aha-cardTitle`,children:o(`craftSize`)}),(0,i.jsx)(`div`,{className:`aha-grid`,style:{gridTemplateColumns:`repeat(auto-fill,minmax(180px,1fr))`},children:ed.map(([e,t,n])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-option`,"data-active":f===e,onClick:()=>p(e),children:[(0,i.jsx)(`b`,{children:o(t)}),(0,i.jsx)(`small`,{children:o(n)})]},e))})]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`div`,{className:`aha-cardTitle`,children:o(`craftPace`)}),(0,i.jsx)(`div`,{className:`aha-grid`,style:{gridTemplateColumns:`repeat(auto-fill,minmax(200px,1fr))`},children:$u.map(([e,t,n])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-option`,"data-active":u===e,onClick:()=>d(e),children:[(0,i.jsx)(`b`,{children:o(t)}),(0,i.jsx)(`small`,{children:o(n)})]},e))}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsxs)(`label`,{className:`aha-label`,style:{flex:1,minWidth:220},children:[o(`weeklyMinutes`),(0,i.jsx)(`select`,{className:`aha-select`,value:m,onChange:e=>h(Number(e.currentTarget.value)),children:td.map(e=>(0,i.jsx)(`option`,{value:e,children:o(`minutesUnit`,{minutes:e})},e))})]}),(0,i.jsxs)(`label`,{className:`aha-label`,style:{flex:1,minWidth:220},children:[o(`deadline`),(0,i.jsx)(`input`,{className:`aha-input`,type:`date`,value:g,onChange:e=>_(e.currentTarget.value)})]})]})]}),(0,i.jsx)($,{error:n.error}),(0,i.jsx)(`div`,{className:`aha-row`,children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:b,children:o(`makeBlueprint`)})})]})}function ad({research:e}){let{t}=v();return e.skipped?(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`researchSkipped`,{reason:t(`researchSkipped_${e.skipped}`)})}):(0,i.jsxs)(`details`,{className:`aha-sources`,children:[(0,i.jsx)(`summary`,{children:t(`researchFound`,{count:e.sources.length})}),(0,i.jsx)(Rl,{sources:e.sources})]})}function od({course:e,job:t,research:n}){let{t:r}=v(),a=t.preview?.units??[],o=a.reduce((e,t)=>e+t.lectures.reduce((e,t)=>e+t.lessons.length,0),0),s=t.progress?.label===`materials`?`materials`:a.length?`lessons`:`units`,c=[...n?.sources?.length?[[`research`,r(`buildResearch`,{count:n.sources.length})]]:[],[`answers`,r(`buildAnswers`)],...e.materialIds?.length?[[`materials`,r(`buildMaterials`)]]:[],[`units`,r(`buildUnits`)],[`lessons`,o?r(`buildLessonsSoFar`,{count:o}):r(`buildLessons`)]],l=c.findIndex(([e])=>e===s);return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:t.preview?.title||e.goal}),(0,i.jsxs)(`p`,{className:`aha-hint`,children:[r(`designingBlueprint`),` `,r(`keepsRunning`)]})]}),(0,i.jsx)(`ol`,{className:`aha-buildLog`,children:c.map(([e,t],n)=>(0,i.jsxs)(`li`,{"data-state":n<l?`done`:n===l?`current`:`todo`,children:[(0,i.jsx)(`span`,{className:`aha-buildMark`,"aria-hidden":`true`,children:n<l?`✓`:n===l?(0,i.jsx)(`span`,{className:`aha-spinner`}):``}),(0,i.jsx)(`span`,{children:t})]},e))}),a.length?(0,i.jsx)(`div`,{className:`aha-outlinePreview`,children:a.map((e,t)=>(0,i.jsxs)(`section`,{className:`aha-card`,"data-writing":t===a.length-1?`true`:void 0,children:[(0,i.jsxs)(`div`,{className:`aha-cardTitle`,children:[r(`unitN`,{n:t+1}),` · `,e.title]}),e.lectures.map((e,t)=>(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:2},children:[e.title?(0,i.jsx)(`span`,{className:`aha-hint`,children:e.title}):null,(0,i.jsx)(`ul`,{className:`aha-outlineLessons`,children:e.lessons.map((e,t)=>(0,i.jsx)(`li`,{children:e},t))})]},t))]},t))}):null,(0,i.jsx)(`div`,{className:`aha-row`,children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:t.cancel,children:r(`cancel`)})})]})}function sd(e){return JSON.parse(JSON.stringify(e??[]))}function cd(e,t,n){let r=[...e],i=t+n;return i<0||i>=r.length?e:([r[t],r[i]]=[r[i],r[t]],r)}function ld({course:e,proposal:t,progress:n,boards:a,job:o,onChange:s}){let{api:c,t:l,toast:u,navigate:d}=v(),f=e.status===`ready`,[p,m]=(0,r.useState)(()=>sd(e.units)),[h,g]=(0,r.useState)(e.title),[_,y]=(0,r.useState)(!1),[x,S]=(0,r.useState)(``),[C,w]=(0,r.useState)(!1),[T,E]=(0,r.useState)(null),[D,ee]=(0,r.useState)(null),[te,ne]=(0,r.useState)(null),[re,ie]=(0,r.useState)(null),O=b();(0,r.useEffect)(()=>{m(sd(e.units)),g(e.title),y(!1)},[e]);let k=e=>{m(t=>{let n=sd(t);return e(n),n.filter(e=>e.lectures.length).map(e=>({...e,lectures:e.lectures.filter(e=>e.lessons.length)}))}),y(!0)},ae=(0,r.useMemo)(()=>p.reduce((e,t)=>e+t.lectures.reduce((e,t)=>e+t.lessons.length,0),0),[p]),oe=(0,r.useMemo)(()=>p.reduce((e,t)=>e+t.lectures.reduce((e,t)=>e+t.lessons.reduce((e,t)=>e+(t.estMinutes||15),0),0),0),[p]),A=(0,r.useMemo)(()=>t?.blueprint?.units?et(e,t.blueprint):null,[e,t]),se=e=>!!e.id&&((n?.lessons?.[e.id]?.status??`new`)!==`new`||a.includes(e.id)),ce=!!A||!!re;async function le(){w(!0),E(null);try{return await c.call(`course/save-blueprint`,{courseId:e.id,blueprint:{...e,title:h,units:p}}),y(!1),u(l(`saved`)),s(),!0}catch(e){return E(e),!1}finally{w(!1)}}async function ue(t,n){t?.preventDefault();let r=n??x.trim();if(r&&!(_&&!await le()))try{await o.run(`course/revise`,{courseId:e.id,instruction:r}),S(``),s()}catch{}}async function de(t,n){E(null);try{await c.call(t,{courseId:e.id}),n&&u(n),s()}catch(e){E(e)}}async function fe(t,n,r,i){ne(null);let a=p[t],o=a.lectures[n];ie(`${t}.${n}.${r}`);try{let s=await O.run(`course/rework-lesson`,{courseId:e.id,lesson:o.lessons[r],unitTitle:a.title,lectureTitle:o.title,mode:i});k(e=>{e[t].lectures[n].lessons.splice(r,1,...s.lessons)}),u(l(i===`split`?`splitDone`:`deepenDone`))}catch{}finally{ie(null)}}async function pe(){if(!(_&&!await le()))try{await o.run(`course/confirm`,{courseId:e.id}),s()}catch{}}async function me(){_&&!await le()||d(`course`,{courseId:e.id})}if(o.running){let t=o.progress?.label===`practice`||o.progress?.label===`projects`?l(`confirming`,{done:o.progress.done,total:o.progress.total}):o.progress?.done?l(`revisingSoFar`,{count:o.progress.done}):l(`revising`);return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`h2`,{className:`aha-title`,children:[e.emoji,` `,e.title]}),(0,i.jsx)(kl,{progress:o.progress,label:t,onCancel:o.cancel})]})}let he=(e,t)=>ee({text:e,run:t});return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4,flex:1},children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:l(f?`editOutline`:`blueprintTitle`)}),(0,i.jsxs)(`div`,{className:`aha-row`,style:{flexWrap:`nowrap`},children:[(0,i.jsx)(`span`,{style:{fontSize:28},children:e.emoji}),(0,i.jsx)(`input`,{className:`aha-input aha-title`,style:{border:`none`,padding:`2px 4px`},value:h,disabled:ce,onChange:e=>{g(e.currentTarget.value),y(!0)}})]}),e.subtitle?(0,i.jsx)(`p`,{className:`aha-subtitle`,children:e.subtitle}):null,(0,i.jsxs)(`p`,{className:`aha-hint`,children:[l(`lessonsCount`,{done:0,total:ae}),` · `,l(`minutesLeft`,{minutes:oe})]})]}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[_?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,disabled:C||ce,onClick:le,children:l(`saveEdits`)}):null,f?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:C||ce,onClick:me,children:l(_?`saveAndBack`:`backToCourse`)}):(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:ce,onClick:pe,children:l(`confirmCourse`)})]})]}),e.summary?(0,i.jsx)(`p`,{children:e.summary}):null,A?(0,i.jsxs)(`section`,{className:`aha-card aha-proposal`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:2},children:[(0,i.jsx)(`b`,{children:l(`proposalTitle`)}),(0,i.jsxs)(`span`,{className:`aha-hint`,children:[`“`,t.instruction,`”`]})]}),tt(A)?(0,i.jsx)(`p`,{className:`aha-hint`,children:l(`proposalNoChange`)}):(0,i.jsxs)(`ul`,{className:`aha-diff`,children:[A.title?(0,i.jsxs)(`li`,{"data-kind":`renamed`,children:[(0,i.jsx)(`span`,{className:`aha-diffTag`,children:l(`diffRenamed`)}),A.title.from,` → `,A.title.to]}):null,A.unitsAdded.map((e,t)=>(0,i.jsxs)(`li`,{"data-kind":`added`,children:[(0,i.jsx)(`span`,{className:`aha-diffTag`,children:l(`diffAdded`)}),l(`diffUnit`,{title:e})]},`ua${t}`)),A.unitsRemoved.map((e,t)=>(0,i.jsxs)(`li`,{"data-kind":`removed`,children:[(0,i.jsx)(`span`,{className:`aha-diffTag`,children:l(`diffRemoved`)}),l(`diffUnit`,{title:e})]},`ur${t}`)),A.added.map((e,t)=>(0,i.jsxs)(`li`,{"data-kind":`added`,children:[(0,i.jsx)(`span`,{className:`aha-diffTag`,children:l(`diffAdded`)}),e.title,(0,i.jsxs)(`span`,{className:`aha-hint`,children:[` · `,e.unit]})]},`a${t}`)),A.removed.map((e,t)=>(0,i.jsxs)(`li`,{"data-kind":`removed`,children:[(0,i.jsx)(`span`,{className:`aha-diffTag`,children:l(`diffRemoved`)}),e.title,(0,i.jsxs)(`span`,{className:`aha-hint`,children:[` · `,e.unit]})]},`r${t}`)),A.renamed.map((e,t)=>(0,i.jsxs)(`li`,{"data-kind":`renamed`,children:[(0,i.jsx)(`span`,{className:`aha-diffTag`,children:l(`diffRenamed`)}),e.from,` → `,e.to]},`n${t}`)),A.changed.map((e,t)=>(0,i.jsxs)(`li`,{"data-kind":`changed`,children:[(0,i.jsx)(`span`,{className:`aha-diffTag`,children:l(`diffChanged`)}),e.title,(0,i.jsxs)(`span`,{className:`aha-hint`,children:[` · `,e.unit]})]},`c${t}`))]}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>de(`course/proposal-apply`,l(`proposalApplied`)),children:l(`applyProposal`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>de(`course/proposal-discard`),children:l(`discardProposal`)})]})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`p`,{className:`aha-hint`,children:l(`blueprintHint`)}),(0,i.jsxs)(`form`,{className:`aha-row`,onSubmit:ue,children:[(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:1},value:x,placeholder:l(`revisePlaceholder`),onChange:e=>S(e.currentTarget.value),"aria-label":l(`reviseLabel`)}),(0,i.jsx)(`button`,{type:`submit`,className:`aha-btn`,disabled:!x.trim()||ce,children:l(`revise`)}),f?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,disabled:ce,onClick:()=>ue(null,l(`extendInstruction`)),children:l(`extendCourse`)}):null]})]}),(0,i.jsx)($,{error:T??o.error??O.error}),(0,i.jsxs)(`fieldset`,{className:`aha-tree`,disabled:ce,children:[p.map((e,t)=>(0,i.jsxs)(`div`,{className:`aha-unit`,children:[(0,i.jsxs)(`div`,{className:`aha-lesson`,style:{fontWeight:650},children:[(0,i.jsx)(`span`,{className:`aha-tag`,children:l(`unitN`,{n:t+1})}),(0,i.jsx)(`input`,{value:e.title,onChange:e=>{let n=e.currentTarget.value;k(e=>{e[t].title=n})}}),(0,i.jsx)(ud,{onUp:()=>k(e=>{e.splice(0,e.length,...cd(e,t,-1))}),onDown:()=>k(e=>{e.splice(0,e.length,...cd(e,t,1))}),onRemove:()=>he(l(`confirmRemoveUnit`,{title:e.title}),()=>k(e=>{e.splice(t,1)}))})]}),e.lectures.map((e,n)=>(0,i.jsxs)(`div`,{className:`aha-lecture`,children:[(0,i.jsxs)(`div`,{className:`aha-lesson`,style:{fontWeight:600},children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:l(`lectureN`,{n:n+1})}),(0,i.jsx)(`input`,{value:e.title,onChange:e=>{let r=e.currentTarget.value;k(e=>{e[t].lectures[n].title=r})}}),(0,i.jsx)(ud,{onUp:()=>k(e=>{let r=e[t].lectures;r.splice(0,r.length,...cd(r,n,-1))}),onDown:()=>k(e=>{let r=e[t].lectures;r.splice(0,r.length,...cd(r,n,1))}),onRemove:()=>he(l(`confirmRemoveLecture`,{title:e.title}),()=>k(e=>{e[t].lectures.splice(n,1)}))})]}),e.lessons.map((e,r)=>{let a=`${t}.${n}.${r}`,o=()=>k(e=>{e[t].lectures[n].lessons.splice(r,1)});return(0,i.jsxs)(`div`,{className:`aha-lesson`,children:[(0,i.jsx)(`span`,{className:`aha-dot`}),(0,i.jsx)(`input`,{value:e.title,title:e.summary,onChange:e=>{let i=e.currentTarget.value;k(e=>{e[t].lectures[n].lessons[r].title=i})}}),(0,i.jsx)(`span`,{className:`aha-hint`,children:l(`estMinutes`,{minutes:e.estMinutes})}),re===a?(0,i.jsx)(Dl,{}):se(e)?null:(0,i.jsxs)(`span`,{className:`aha-menuAnchor`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,title:l(`reworkLesson`),"aria-label":l(`reworkLesson`),"aria-expanded":te===a,onClick:()=>ne(e=>e===a?null:a),children:`✦`}),te===a?(0,i.jsxs)(`div`,{className:`aha-card aha-menu`,onMouseLeave:()=>ne(null),children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>fe(t,n,r,`split`),children:l(`splitLesson`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>fe(t,n,r,`deepen`),children:l(`deepenLesson`)})]}):null]}),(0,i.jsx)(ud,{onUp:()=>k(e=>{let i=e[t].lectures[n].lessons;i.splice(0,i.length,...cd(i,r,-1))}),onDown:()=>k(e=>{let i=e[t].lectures[n].lessons;i.splice(0,i.length,...cd(i,r,1))}),onRemove:()=>se(e)?he(l(`confirmRemoveStarted`,{title:e.title}),o):o()})]},e.id??r)}),(0,i.jsx)(`div`,{children:(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>k(e=>{e[t].lectures[n].lessons.push({title:l(`untitled`),objectives:[],concepts:[],estMinutes:15})}),children:[`+ `,l(`addLesson`)]})})]},e.id??n)),(0,i.jsx)(`div`,{children:(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>k(e=>{e[t].lectures.push({title:l(`untitled`),lessons:[{title:l(`untitled`),objectives:[],concepts:[],estMinutes:15}]})}),children:[`+ `,l(`addLecture`)]})})]},e.id??t)),(0,i.jsx)(`div`,{children:(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>k(e=>{e.push({title:l(`untitled`),objectives:[],lectures:[{title:l(`untitled`),lessons:[{title:l(`untitled`),objectives:[],concepts:[],estMinutes:15}]}]})}),children:[`+ `,l(`addUnit`)]})})]}),e.projects?.length?(0,i.jsxs)(`section`,{className:`aha-col`,children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:l(`projects`)}),(0,i.jsx)(`div`,{className:`aha-grid`,children:e.projects.map(e=>(0,i.jsxs)(`div`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:e.title}),(0,i.jsx)(`p`,{className:`aha-hint`,children:e.brief})]},e.id))})]}):null,D?(0,i.jsx)(jl,{danger:!0,text:D.text,onConfirm:()=>{D.run(),ee(null)},onCancel:()=>ee(null)}):null]})}function ud({onUp:e,onDown:t,onRemove:n}){let{t:r}=v();return(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:2,flexWrap:`nowrap`},children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:e,title:r(`moveUp`),"aria-label":r(`moveUp`),children:`↑`}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:t,title:r(`moveDown`),"aria-label":r(`moveDown`),children:`↓`}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:n,title:r(`remove`),"aria-label":r(`remove`),children:`✕`})]})}function dd({item:e,day:t,today:n,onToggle:r}){let{t:a,navigate:o}=v(),s=e.kind!==`exam`&&t<=n,c=e.checked===`auto`;return(0,i.jsxs)(`div`,{className:`aha-planItem`,"data-checked":e.checked?`true`:void 0,children:[s?(0,i.jsx)(`input`,{type:`checkbox`,className:`aha-check`,checked:!!e.checked,disabled:c,title:c?a(`checkedAuto`):void 0,"aria-label":e.checked?a(`unmarkDone`):a(`markDone`),onChange:()=>r?.(e,t)}):null,(0,i.jsx)(`span`,{className:`aha-tag`,children:e.kind===`lesson`?a(`lessonItem`):e.kind===`review`?a(`reviewItem`):a(`examItem`)}),(0,i.jsxs)(`span`,{className:`aha-planTitle`,children:[e.title,(0,i.jsx)(zl,{title:e.courseTitle,emoji:e.courseEmoji})]}),e.minutes?(0,i.jsx)(`span`,{className:`aha-hint`,children:a(`minutesUnit`,{minutes:e.minutes})}):null,e.kind===`lesson`&&!e.checked?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>o(`lesson`,{courseId:e.courseId,lessonId:e.refId}),children:a(`learn`)}):null,e.kind===`review`&&!e.checked&&t===n?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>o(`practice`,{courseId:e.courseId??void 0,review:!0}),children:a(`review`)}):null]})}function fd(e,t,n,r){return t.checked===`manual`?e.call(`plan/uncheck`,{today:r,day:n,refId:t.refId}):e.call(`plan/check`,{today:r,day:n,item:t})}function pd(e){let t=e instanceof Date?e:new Date(e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}function md(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/u.exec(String(e));if(!t)throw TypeError(`invalid day "${e}"`);return new Date(Number(t[1]),Number(t[2])-1,Number(t[3]))}let hd=[[`course`,`modeCourse`,`🎓`],[`explain`,`modeExplain`,`💡`],[`solve`,`modeSolve`,`🧮`],[`visualize`,`modeVisualize`,`📈`],[`digest`,`modeDigest`,`📚`],[`short`,`modeShort`,`🎬`]];function gd(){let{api:e,t,navigate:n,toast:a}=v(),[o,s]=(0,r.useState)(`course`),[c,l]=C(`craftWeb`,!0),[u,d]=(0,r.useState)(null),[f,p]=(0,r.useState)(``),[m,h]=(0,r.useState)([]),[g,_]=(0,r.useState)(!1),[b,x]=(0,r.useState)(!1),[S,w]=(0,r.useState)(null),T=y(()=>e.call(`course/list`),[]),E=y(()=>e.call(`plan/get`,{today:pd(new Date)}),[]),D=y(()=>e.call(`samples/list`),[]),ee=u??(!m.length&&c);function te(){d(!ee),m.length||l(!ee)}async function ne(t=!1){let r=f.trim();if(w(null),o===`course`){if(!r&&!m.length)return;x(!0);try{let{job:i}=await e.call(`course/start`,{goal:r,materialIds:m,quick:t,web:ee});n(`craft`,{jobId:i.id})}catch(e){w(e)}finally{x(!1)}return}if(o===`digest`){if(!m.length){_(!0);return}n(`item`,{kind:`digest`,materialId:m[0]});return}if(o===`short`){let e=/^https?:\/\//iu.test(r);n(`shorts`,{draftTopic:e?``:r,draftUrl:e?r:``,token:Date.now().toString(36)});return}r&&n(`assist`,{draftMode:o,draftRequest:r,draftMaterials:m,token:Date.now().toString(36)})}let re=(T.value??[]).filter(e=>e.status===`ready`&&!e.archived&&e.progress.percent<100).slice(0,3),ie=(T.value??[]).filter(e=>e.status!==`ready`&&!e.archived).slice(0,2),O=E.value?.today??[],k=pd(new Date);async function ae(t,n){try{E.setValue(await fd(e,t,n,k))}catch(e){w(e)}}return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`section`,{className:`aha-hero`,children:[(0,i.jsx)(`div`,{className:`aha-heroTitle`,children:t(`heroTitle`)}),(0,i.jsx)(`p`,{className:`aha-subtitle`,children:t(`heroHint`)}),(0,i.jsxs)(`div`,{className:`aha-composer`,children:[(0,i.jsx)(`textarea`,{value:f,placeholder:t(`heroPlaceholder`),onChange:e=>p(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&ne()}}),(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`div`,{className:`aha-row`,style:{gap:6},children:[(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>_(!0),children:[(0,i.jsx)(me,{name:`plus`,size:15}),m.length?t(`attached`,{count:m.length}):t(`attach`)]}),o===`course`?(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"data-active":ee,"aria-pressed":ee,onClick:te,title:t(`webResearchHint`),children:[`🌐 `,t(`webResearch`)]}):null]}),(0,i.jsxs)(`div`,{className:`aha-row`,style:{gap:6},children:[o===`course`?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,disabled:b,onClick:()=>ne(!0),children:t(`quickStart`)}):null,(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:b||!f.trim()&&!m.length,onClick:()=>ne(!1),children:[b?(0,i.jsx)(`span`,{className:`aha-spinner`}):null,t(`start`)]})]})]})]}),(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:8},children:hd.map(([e,n,r])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"data-active":o===e,onClick:()=>s(e),children:[r,` `,t(n)]},e))}),(0,i.jsx)($,{error:S})]}),re.length||ie.length?(0,i.jsxs)(`section`,{className:`aha-col`,children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:t(`continueLearning`)}),(0,i.jsx)(`div`,{className:`aha-grid`,children:[...ie,...re].map(e=>(0,i.jsxs)(`div`,{className:`aha-card`,"data-click":`true`,onClick:()=>n(e.status===`ready`?`course`:`craft`,{courseId:e.id}),children:[(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`span`,{style:{fontSize:24},children:e.emoji}),(0,i.jsx)(`span`,{className:`aha-cardTitle`,children:e.title})]}),e.status===`ready`?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Ol,{value:e.progress.percent}),(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:t(`lessonsCount`,e.progress)}),e.next?(0,i.jsx)(`span`,{className:`aha-hint`,children:t(`nextUp`,{title:e.next.title})}):null]}),e.next?(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:t=>{t.stopPropagation(),n(`lesson`,{courseId:e.id,lessonId:e.next.lessonId})},children:[(0,i.jsx)(me,{name:`play`,size:14}),t(`continueLearning`)]}):null]}):(0,i.jsx)(`span`,{className:`aha-tag`,children:e.status===`intake`?t(`statusIntake`):t(`statusBlueprint`)})]},e.id))})]}):null,(0,i.jsxs)(`section`,{className:`aha-col`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:t(`todayPlan`)}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>n(`plan`),children:[t(`navPlan`),` →`]})]}),E.loading&&!E.value?(0,i.jsx)(Dl,{}):O.length?(0,i.jsx)(`div`,{className:`aha-col`,style:{gap:6},children:O.map(e=>(0,i.jsx)(`div`,{className:`aha-card`,style:{padding:`6px 14px`},children:(0,i.jsx)(dd,{item:e,day:k,today:k,onToggle:ae})},`${e.kind}:${e.refId}`))}):(0,i.jsx)(Nl,{children:t(`noPlanToday`)})]}),D.value?.length?(0,i.jsxs)(`section`,{className:`aha-col`,children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:t(`sampleCourses`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`sampleHint`)}),(0,i.jsx)(`div`,{className:`aha-grid`,children:D.value.map(r=>(0,i.jsxs)(`div`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`span`,{style:{fontSize:24},children:r.emoji}),(0,i.jsx)(`span`,{className:`aha-cardTitle`,children:r.title})]}),(0,i.jsx)(`p`,{className:`aha-hint`,children:r.subtitle}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:async()=>{try{let i=await e.call(`samples/import`,{id:r.id});a(t(`courseReady`)),n(`course`,{courseId:i.id})}catch(e){a(Ml(t,e))}},children:t(`importSample`)})]},r.id))})]}):null,g?(0,i.jsx)(Il,{selected:m,onChange:h,onClose:()=>_(!1)}):null]})}let _d=`http://www.w3.org/2000/svg`,vd=new Set([`SCRIPT`,`STYLE`,`TEMPLATE`,`IFRAME`,`BUTTON`,`INPUT`,`TEXTAREA`,`SELECT`]),yd=[`Top`,`Right`,`Bottom`,`Left`],bd=[`fill`,`fill-opacity`,`fill-rule`,`stroke`,`stroke-width`,`stroke-opacity`,`stroke-dasharray`,`stroke-dashoffset`,`stroke-linecap`,`stroke-linejoin`,`stroke-miterlimit`,`opacity`,`font-family`,`font-size`,`font-style`,`font-weight`,`text-anchor`,`dominant-baseline`],xd=typeof Intl<`u`&&typeof Intl.Segmenter==`function`?new Intl.Segmenter(void 0,{granularity:`grapheme`}):null;function Sd(e){if(xd)return Array.from(xd.segment(e),e=>({index:e.index,text:e.segment}));let t=[],n=0;for(let r of e)t.push({index:n,text:r}),n+=r.length;return t}function Cd(e){if(!e||e===`transparent`||e===`none`)return!1;let t=/^(?:rgba?|hsla?|color|lab|lch|oklab|oklch)\((.*)\)$/u.exec(e.trim());if(!t)return!0;let n=t[1],r=n.includes(`/`)?n.split(`/`).pop():n.split(`,`).length===4?n.split(`,`).pop():null;return r===null||Number.parseFloat(r)>0}function wd(e){if(!e||!e.startsWith(`linear-gradient(`))return[];let t=e.slice(16);if(/^\s*(?:to\s+(?!bottom)|-?[\d.]+(?:deg|turn|rad))/u.test(t)&&!/^\s*180deg/u.test(t))return[];let n=[...t.matchAll(/((?:rgba?|hsla?|color|oklab|oklch|lab|lch)\([^)]*\)|transparent|#[0-9a-f]{3,8})\s+(-?[\d.]+)%/giu)].map(e=>({color:e[1],at:Number.parseFloat(e[2])/100})),r=[];for(let e=0;e+1<n.length;e+=1){let[t,i]=[n[e],n[e+1]];t.color===i.color&&Cd(t.color)&&i.at>t.at&&r.push({color:t.color,from:Math.max(0,t.at),to:Math.min(1,i.at)})}return r}function Td(e,t,n){let[r,i=r]=String(e||`0`).trim().split(/\s+/u),a=(e,t)=>e.endsWith(`%`)?Number.parseFloat(e)/100*t:Number.parseFloat(e)||0;return{x:a(r,t),y:a(i,n)}}function Ed(e,t,n){let r=[e.borderTopLeftRadius,e.borderTopRightRadius,e.borderBottomRightRadius,e.borderBottomLeftRadius].map(e=>Td(e,t,n));return r.some(e=>e.x>0&&e.y>0)?r:null}function Dd(e){return`${e.fontStyle.startsWith(`oblique`)?`italic`:e.fontStyle} ${e.fontWeight} ${e.fontSize} ${e.fontFamily}`}function Od(e,t){if(!e)return t;if(!t)return e;let n=Math.max(e.x,t.x),r=Math.max(e.y,t.y);return{x:n,y:r,w:Math.max(0,Math.min(e.x+e.w,t.x+t.w)-n),h:Math.max(0,Math.min(e.y+e.h,t.y+t.h)-r)}}function kd(e,t){let n=Math.min(e.x,t.x),r=Math.min(e.y,t.y);return{x:n,y:r,w:Math.max(e.x+e.w,t.x+t.w)-n,h:Math.max(e.y+e.h,t.y+t.h)-r}}function Ad(e,t){return e===`dashed`?[t*3,t*2.2]:e===`dotted`?[.01,t*2]:null}async function jd(e,{timeoutMs:t=1e4}={}){e.offsetHeight,await new Promise(e=>{setTimeout(e,50)});let n=document.fonts;if(!n)return;let r=(e.textContent??``).slice(0,2e4),i=[`Aha Hand Latin`,`Aha Hand`].map(e=>n.load?.(`20px '${e}'`,r).catch(()=>void 0));await Promise.race([Promise.all([...i,n.ready]),new Promise(e=>{setTimeout(e,t)})])}function Md(e){for(let t of e.querySelectorAll(`.aha-op-math`))mc(t);for(let t of e.querySelectorAll(`.aha-op-table`)){let e=t.closest(`.aha-op`)?.clientWidth??0;if(!e||t.offsetWidth<=e+1)continue;let n=e/t.offsetWidth,r=getComputedStyle(t);t.style.fontSize=`${Math.max(10,(Number.parseFloat(r.fontSize)||16)*n)}px`,t.style.lineHeight=`${Math.max(14,(Number.parseFloat(r.lineHeight)||24)*n)}px`}}function Nd(e,{scale:t=2}={}){let n=e.getBoundingClientRect(),r=[],i=new Map,a=document.createElement(`canvas`).getContext(`2d`),o=document.createRange(),s=e=>({x:e.left-n.left,y:e.top-n.top,w:e.width,h:e.height}),c=e=>{let t=i.get(e);if(!t){a.font=e;let n=a.measureText(`Hg`),r=Number.parseFloat(/([\d.]+)px/u.exec(e)?.[1]??`16`);t={ascent:Number.isFinite(n.fontBoundingBoxAscent)?n.fontBoundingBoxAscent:r*.8,descent:Number.isFinite(n.fontBoundingBoxDescent)?n.fontBoundingBoxDescent:r*.2},i.set(e,t)}return t},l=getComputedStyle(e);r.push({kind:`paper`,w:n.width,h:n.height,paper:l.getPropertyValue(`--paper`).trim()||l.backgroundColor,dot:l.getPropertyValue(`--grid`).trim()});let u=(e,t)=>{let i=e.data;if(!i||!/\S/u.test(i))return;let a=getComputedStyle(e.parentElement);if(!Cd(a.color))return;let s=Dd(a),{ascent:l}=c(s),u=null,d=()=>{u&&/\S/u.test(u.text)&&r.push({kind:`text`,text:u.text,x:u.x,y:u.top+l,font:s,color:a.color,alpha:t.alpha,clip:t.clip}),u=null};for(let t of Sd(i)){if(t.text===`
|
|
271
|
-
`||t.text===`\r`||t.text===` `){d();continue}o.setStart(e,t.index),o.setEnd(e,t.index+t.text.length);let r=o.getClientRects(),i=r[r.length-1];if(!i||i.width<=0){/\s/u.test(t.text)||d();continue}let a=i.left-n.left,s=i.top-n.top;u&&Math.abs(s-u.top)<1&&Math.abs(a-u.right)<1?(u.text+=t.text,u.right=a+i.width):(d(),u={text:t.text,x:a,top:s,right:a+i.width})}d()},d=(e,t,n,i,a)=>{let o=t.backgroundColor,c=
|
|
267
|
+
`)}),e.caption?(0,i.jsx)(`div`,{className:`aha-figCaption`,children:e.caption}):null]});break}case`anim`:p=c?(0,i.jsx)(fl,{op:e,label:l}):(0,i.jsx)(ul,{op:e,reveal:t,theme:s});break;default:p=null}let m=e.fixed&&d&&t>=1?d(e):null;return(0,i.jsxs)(`div`,{ref:o,className:`aha-op`,"data-t":e.t,"data-aside":r?`true`:void 0,"data-now":a?`true`:void 0,"data-op":e.id,children:[p,f,m?(0,i.jsxs)(`span`,{className:`aha-fixed`,title:m.title,children:[`✎ `,m.label]}):null]})}function ml({target:e,active:t,stage:n,scale:a=1,scrolls:o=!1}){let[s,c]=(0,r.useState)(null);return(0,r.useLayoutEffect)(()=>{let r=e?.current,i=n?.current;if(!t||!r||!i){c(e=>e===null?e:null);return}let s=r.getBoundingClientRect(),l=i.getBoundingClientRect(),u=r.querySelector(`.aha-op-math`),d=u?[]:r.querySelectorAll(`span,strong,mark,li,td,pre`),f=d[d.length-1]?.getBoundingClientRect(),p=f&&f.width?f.right:s.left+s.width*t.progress,m=f&&f.height?f.bottom-4*a:s.top+s.height/2;if(u?.dataset.pen){let[e,t]=u.dataset.pen.split(` `).map(Number),n=u.getBoundingClientRect();p=n.left+e*a,m=n.top+(t-4)*a}let h={left:Math.round((p-l.left)/a+(o?i.scrollLeft:0)),top:Math.round((m-l.top)/a+(o?i.scrollTop:0)),glide:!u};c(e=>e&&e.left===h.left&&e.top===h.top&&e.glide===h.glide?e:h)}),s?(0,i.jsxs)(`svg`,{className:`aha-pencil`,style:{left:s.left,top:s.top},"data-glide":s.glide,viewBox:`0 0 24 24`,"aria-hidden":`true`,children:[(0,i.jsx)(`path`,{d:`M3 21l3.5-1 11-11-2.5-2.5-11 11L3 21z`,fill:`var(--pencil)`,stroke:`var(--ink)`,strokeWidth:`1.2`,strokeLinejoin:`round`}),(0,i.jsx)(`path`,{d:`M14.5 6.5l2.5 2.5 2-2a1.77 1.77 0 0 0-2.5-2.5l-2 2z`,fill:`var(--accent)`,stroke:`var(--ink)`,strokeWidth:`1.2`})]}):null}let hl=new Set([`p`,`h`,`list`,`note`,`math`,`title`]);function gl({page:e,title:t,board:n,activeRef:r}){let{reveal:a,marks:o,nowIds:s,opMeta:c,activeOp:l,theme:u,onInteract:d,fixedNote:f}=n,p=t?a(t.id):1;return(0,i.jsxs)(i.Fragment,{children:[e.title&&p>0?(0,i.jsx)(`h2`,{className:`aha-boardTitle`,children:(0,i.jsx)(`span`,{children:(0,i.jsx)(sl,{text:e.title,reveal:p})})}):null,(0,i.jsx)(`div`,{className:`aha-cols`,children:e.columns.map((e,t)=>(0,i.jsx)(`div`,{className:`aha-colBody`,children:e.map(({op:e})=>{let t=a(e.id);if(t<=0)return null;let n=l?.id===e.id&&t<1;return(0,i.jsx)(pl,{op:e,reveal:t,marks:o.get(e.id)??[],aside:c.get(e.id)?.aside,now:s.has(e.id),opRef:n?r:void 0,theme:u,onInteract:d,fixedNote:f},e.id)})},t))})]})}function _l(e,t,n){let{reveal:r,marks:i,nowIds:a}=n,o=[t?`t${Math.round(r(t.id)*1e3)}`:``];for(let t of e.columns)for(let{op:e}of t){let t=Math.round(r(e.id)*1e3);t<=0||o.push(`${e.id}:${t}${a.has(e.id)?`*`:``}${(i.get(e.id)??[]).map(e=>`/${e.id}:${Math.round(e.reveal*1e3)}`).join(``)}`)}return o.join(` `)}let vl=(0,r.memo)(function({index:e,page:t,title:n,board:r,activeRef:a,label:o}){return(0,i.jsx)(`section`,{className:`aha-frame`,"data-frame":e,"aria-label":o,children:(0,i.jsx)(gl,{page:t,title:n,board:r,activeRef:a})})},(e,t)=>e.signature===t.signature&&e.page===t.page&&e.activeRef===t.activeRef&&e.board.theme===t.board.theme&&e.label===t.label);function yl({board:e,layout:t,position:n,activePage:a,pencil:o}){let{activeOp:s}=e,[c,l]=(0,r.useState)(null);(0,r.useEffect)(()=>{l(null)},[a]);let u=Math.min(t.pages.length-1,c??a),d=t.pages[u],f=(0,r.useRef)(null),p=(0,r.useRef)(null);(0,r.useEffect)(()=>{let e=f.current,t=s?e?.querySelector(`[data-op="${s.id}"]`):null;if(!e||!t)return;let n=t.getBoundingClientRect(),r=e.getBoundingClientRect();n.bottom>r.bottom-24?e.scrollTo({top:e.scrollTop+n.bottom-r.bottom+56,behavior:`smooth`}):n.top<r.top+8&&e.scrollTo({top:Math.max(0,e.scrollTop-(r.top-n.top)-24),behavior:`smooth`})},[s?`${s.id}:${Math.round((n?.progress??0)*4)}`:``,u]);let m=t.pages.map((e,t)=>t).filter(e=>e<=Math.max(a,c??0)||!n);return(0,i.jsxs)(i.Fragment,{children:[m.length>1?(0,i.jsx)(`div`,{className:`aha-pager`,children:m.map(e=>(0,i.jsx)(`button`,{type:`button`,"data-active":e===u,onClick:()=>l(e),children:e+1},e))}):null,(0,i.jsxs)(`div`,{className:`aha-boardScroll`,ref:f,children:[d?(0,i.jsx)(gl,{page:d,title:e.titles.get(u),board:e,activeRef:p}):null,(0,i.jsx)(ml,{target:p,stage:f,scrolls:!0,active:o})]})]})}function bl({board:e,layout:t,position:n,activePage:a,pencil:o}){let{t:s}=v(),{activeOp:c}=e,l=(0,r.useRef)(null),u=(0,r.useRef)(null),d=(0,r.useRef)(null),[f,p]=(0,r.useState)({width:0,height:0}),[m,h]=(0,r.useState)({x:16,y:16,k:1,animate:!1}),[g,_]=(0,r.useState)(!0),[y,b]=(0,r.useState)(!1),x=(0,r.useRef)({camera:m,size:f,pointers:new Map,drag:null}),S=(0,r.useRef)(-1);x.current.camera=m,x.current.size=f,(0,r.useLayoutEffect)(()=>{let e=l.current;if(!e)return;let t=()=>p(t=>t.width===e.clientWidth&&t.height===e.clientHeight?t:{width:e.clientWidth,height:e.clientHeight});t();let n=typeof ResizeObserver==`function`?new ResizeObserver(t):null;return n?.observe(e),()=>n?.disconnect()},[]);let C=Math.max(240,f.width-32),w=()=>({width:u.current?.offsetWidth??C,height:u.current?.offsetHeight??0}),T=(e,{animate:t=!1,manual:n=!1}={})=>{n&&_(!1),h(n=>({...uc(typeof e==`function`?e(n):e,x.current.size,w()),animate:t}))};(0,r.useEffect)(()=>{let e=l.current;if(!e)return;let t=t=>{t.preventDefault();let n=e.getBoundingClientRect(),r=dc(t,n.height);t.ctrlKey||t.metaKey?T(e=>sc(e,t.clientX-n.left,t.clientY-n.top,fc(r.y)),{manual:!0}):T(e=>({...e,x:e.x-(t.shiftKey?r.y:r.x),y:e.y-(t.shiftKey?0:r.y)}),{manual:!0})};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[]);let E=e=>{e.pointerType===`mouse`&&e.button!==0||e.target.closest?.(`button,a,input,textarea,select,iframe,.aha-canvasBar`)||(x.current.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),x.current.drag||(x.current.drag={x:e.clientX,y:e.clientY,moved:!1}),l.current?.setPointerCapture?.(e.pointerId))},D=e=>{let{pointers:t,drag:n}=x.current,r=t.get(e.pointerId);if(!r)return;let i={x:e.clientX,y:e.clientY};if(t.size===1){if(!n.moved&&Math.hypot(i.x-n.x,i.y-n.y)<4)return;n.moved=!0,b(!0),t.set(e.pointerId,i),T(e=>({...e,x:e.x+i.x-r.x,y:e.y+i.y-r.y}),{manual:!0});return}let a=[...t.entries()].find(([t])=>t!==e.pointerId)?.[1];if(t.set(e.pointerId,i),!a)return;let o=l.current.getBoundingClientRect(),s={x:(r.x+a.x)/2,y:(r.y+a.y)/2,d:Math.hypot(r.x-a.x,r.y-a.y)},c={x:(i.x+a.x)/2,y:(i.y+a.y)/2,d:Math.hypot(i.x-a.x,i.y-a.y)};n.moved=!0,T(e=>{let t=sc(e,s.x-o.left,s.y-o.top,c.d/Math.max(1,s.d));return{...t,x:t.x+c.x-s.x,y:t.y+c.y-s.y}},{manual:!0})},O=e=>{x.current.pointers.delete(e.pointerId),x.current.pointers.size||(x.current.drag=null,b(!1))},k=(e,t)=>T(cc(x.current.size,e,{margin:16,maxZoom:t}),{animate:!0,manual:!0}),ee=e=>{let t=e.target.closest?.(`.aha-frame`);t&&k({x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight})},te=e=>T(t=>sc(t,x.current.size.width/2,x.current.size.height/2,e),{animate:!0,manual:!0}),ne=()=>k({x:0,y:0,...w()},1),A=()=>T(e=>({...sc(e,x.current.size.width/2,x.current.size.height/2,1/e.k),x:16}),{animate:!0,manual:!0});(0,r.useLayoutEffect)(()=>{if(!g||!n||!f.height)return;let e=u.current?.querySelector(`[data-frame="${a}"]`);if(!e)return;let t=c?.t===`mark`?c.ref:c?.id,r=e.querySelectorAll(`[data-op]`),i=t?u.current.querySelector(`[data-op="${t}"]`):c?null:r[r.length-1]??null,o=e.offsetTop;for(let t=i;t&&t!==e;t=t.offsetParent)o+=t.offsetTop;let s=i?.offsetHeight??0,l=S.current!==a;S.current=a,h(t=>{let n=t.k===1&&t.x===16?t:{x:16,y:t.y,k:1},r=n.y;return(l||!i)&&(r+=16-(r+e.offsetTop)),i&&(r+=lc(x.current.size,{top:r+o,height:s})),r===t.y&&n===t?t:{...n,y:r,animate:!0}})},[c?`${c.id}:${Math.round((n?.progress??0)*4)}`:`page:${a}`,a,g,f.width,f.height]);let re=t.pages.map((e,t)=>t).filter(e=>!n||e<=a);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{ref:l,className:`aha-canvas`,"data-panning":y?`true`:void 0,onPointerDown:E,onPointerMove:D,onPointerUp:O,onPointerCancel:O,onDoubleClick:ee,children:(0,i.jsxs)(`div`,{ref:u,className:`aha-canvasWorld`,style:{width:C,transform:`translate(${m.x}px, ${m.y}px) scale(${m.k})`,transition:m.animate?`transform .45s ease`:`none`},children:[re.map(n=>(0,i.jsx)(vl,{index:n,page:t.pages[n],title:e.titles.get(n),board:e,signature:_l(t.pages[n],e.titles.get(n),e),activeRef:n===a?d:null,label:s(`canvasPage`,{n:n+1})},n)),(0,i.jsx)(ml,{target:d,stage:u,scale:m.k,active:o})]})}),(0,i.jsxs)(`div`,{className:`aha-canvasBar`,role:`toolbar`,"aria-label":s(`canvasTools`),title:s(`canvasHelp`),children:[!g&&n?(0,i.jsx)(`button`,{type:`button`,className:`aha-canvasFollow`,onClick:()=>_(!0),children:s(`canvasFollow`)}):null,(0,i.jsx)(`button`,{type:`button`,"aria-label":s(`canvasZoomOut`),title:s(`canvasZoomOut`),onClick:()=>te(1/ac),children:`−`}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-canvasZoom`,title:s(`canvasZoomReset`),onClick:A,children:[Math.round(m.k*100),`%`]}),(0,i.jsx)(`button`,{type:`button`,"aria-label":s(`canvasZoomIn`),title:s(`canvasZoomIn`),onClick:()=>te(ac),children:`+`}),(0,i.jsx)(`button`,{type:`button`,title:s(`canvasFit`),onClick:ne,children:s(`canvasFitShort`)})]})]})}function xl({steps:e,position:t,theme:n=`light`,font:a=`hand`,buffering:o=!1,bufferingLabel:s=``,view:c=`canvas`,onInteract:l}){let{t:u}=v(),d=(0,r.useMemo)(()=>rl(e),[e]),f=(0,r.useMemo)(()=>a===`hand`?al(e):``,[e,a]);(0,r.useEffect)(()=>{if(!(!f||typeof document>`u`||!document.fonts?.load))for(let e of[`Aha Hand Latin`,`Aha Hand`])document.fonts.load(`20px '${e}'`,f).catch(()=>void 0)},[f]);let p=(0,r.useMemo)(()=>{let t=new Map;return e.forEach((e,n)=>e.ops.forEach((r,i)=>t.set(r.id,{stepIndex:n,opIndex:i,aside:e.aside===!0}))),t},[e]),m=(0,r.useMemo)(()=>{let t=new Map;for(let n of e)for(let e of n.ops)if(e.t===`title`){let n=d.where.get(e.id);n&&!t.has(n.page)&&t.set(n.page,e)}return t},[e,d]),h=t&&e[t.index]?.ops[t.op],g=h?d.where.get(h.id)?.page??0:t?Cl(d,e,t):0,_=e=>{let n=p.get(e);return n?ol(n.stepIndex,n.opIndex,t):0},y=new Map;e.forEach(e=>e.ops.forEach(e=>{if(e.t!==`mark`)return;let t=_(e.id);if(t<=0)return;let n=y.get(e.ref)??[];n.push({id:e.id,style:e.style,reveal:t}),y.set(e.ref,n)}));let b={reveal:_,marks:y,nowIds:new Set(t?.now??[]),opMeta:p,activeOp:h,theme:n,titles:m,onInteract:l,fixedNote:e=>({label:u(`fixed`),title:u(`fixedWas`,{was:e.fixed.was})})},x=h&&t&&t.progress<1&&hl.has(h.t)?t:null;return(0,i.jsxs)(`div`,{className:`aha-board`,"data-theme":n,"data-font":a,"data-view":c===`pages`?`pages`:`canvas`,children:[(0,i.jsx)(c===`pages`?yl:bl,{board:b,layout:d,position:t,activePage:g,pencil:x}),o?(0,i.jsxs)(`div`,{className:`aha-buffering`,children:[(0,i.jsx)(`span`,{className:`aha-spinner`}),s]}):null]})}function Sl({steps:e,title:t=``,theme:n=`light`,font:a=`hand`,footer:o={},animationLabel:s=``,fixedLabel:c=``}){let l=(0,r.useMemo)(()=>rl(e),[e]),u=(0,r.useMemo)(()=>new Set(e.flatMap(e=>e.aside?e.ops.map(e=>e.id):[])),[e]),d=(0,r.useMemo)(()=>{let t=new Map;for(let n of e)for(let e of n.ops)e.t===`mark`&&t.set(e.ref,[...t.get(e.ref)??[],{id:e.id,style:e.style,reveal:1}]);return t},[e]),f=l.pages.filter(e=>e.columns.some(e=>e.length));return f.map((e,r)=>{let l=e.title||(r===0?t:``);return(0,i.jsxs)(`div`,{className:`aha-board aha-exportPage`,"data-theme":n,"data-font":a,"data-sheet":r,children:[l?(0,i.jsx)(`h2`,{className:`aha-boardTitle`,children:(0,i.jsx)(`span`,{children:(0,i.jsx)(sl,{text:l})})}):null,(0,i.jsx)(`div`,{className:`aha-cols`,children:e.columns.map((e,t)=>(0,i.jsx)(`div`,{className:`aha-colBody`,children:e.map(({op:e})=>(0,i.jsx)(pl,{op:e,reveal:1,marks:d.get(e.id)??[],aside:u.has(e.id),now:!1,theme:n,still:!0,animationLabel:s,fixedNote:c?()=>({label:c}):void 0},e.id))},t))}),(0,i.jsxs)(`div`,{className:`aha-exportFoot`,children:[(0,i.jsx)(`span`,{children:o.left??``}),(0,i.jsx)(`span`,{children:[o.right,`${r+1} / ${f.length}`].filter(Boolean).join(` · `)})]})]},r)})}function Cl(e,t,n){let r=0;return t.forEach((t,i)=>t.ops.forEach((t,a)=>{ol(i,a,n)>0&&(r=Math.max(r,e.where.get(t.id)?.page??0))})),r}function wl({speech:e,onChange:t,onNarration:n,now:r=()=>performance.now(),frame:i,cancelFrame:a,startIndex:o=0}){let s=i??(e=>requestAnimationFrame(e)),c=a??(e=>cancelAnimationFrame(e)),l=[],u=!1,d=1,f=null,p=null,m=new Set,h={index:Math.max(0,o),op:0,progress:0,sentence:0,status:`idle`},g=()=>{if(!p?.synced||h.status!==`playing`&&h.status!==`paused`)return[];let e=Math.max(0,p.sentences.length-1);return p.step.ops.filter((t,n)=>n<=h.op&&Math.min(t.at,e)===h.sentence).map(e=>e.t===`mark`?e.ref:e.id)},_=()=>({...h,total:l.length,complete:u,rate:d,step:l[h.index]??null,now:g()}),v=()=>t?.(_());function y(){f!==null&&c(f),f=null}function b(){y(),e?.cancel?.();let t=l[h.index];if(!t){h.status=u?`ended`:`buffering`,v();return}h.op=0,h.progress=0,h.sentence=0,h.status=`playing`;let i=dt(t,{rate:d}),a=el(t.say).map(Zc),o=!!t.say&&t.ops.some(e=>Number.isInteger(e.at));p={step:t,timing:i,startedAt:r(),elapsedBefore:0,speechDone:!t.say,silentUntil:null,token:{},sentences:a,exactSentence:!1,synced:o,written:0,lastTime:0,finishAt:null};let s=p.token;t.say&&((e?.speak(Zc(t.say),{rate:d,sentences:a,onSentence:e=>{!p||p.token!==s||(p.exactSentence=!0,h.sentence!==e&&(h.sentence=e,v()))}})??{done:Promise.resolve({silent:!0})}).done.then(e=>{!p||p.token!==s||(e?.silent||e?.error?p.silentUntil=ct(t.say,d)*.8:p.speechDone=!0,n?.(e))}),e?.prefetch?.(Zc(l[h.index+1]?.say??``))),v(),C()}function x(e){let t=p?.sentences??[];if(t.length<2)return 0;if(p.speechDone)return t.length-1;let n=ct(p.step.say,d),r=t.map(e=>[...e].length),i=r.reduce((e,t)=>e+t,0)||1,a=0;for(let t=0;t<r.length;t+=1)if(a+=r[t],e<a/i*n)return t;return t.length-1}function S(){return p?p.elapsedBefore+(h.status===`playing`?r()-p.startedAt:0):0}function C(){f=s(T)}function w(e,t,n){if(!p.synced)return e;let r=Math.max(0,e-p.lastTime);p.lastTime=e;let i=Math.max(0,p.sentences.length-1),a=p.speechDone?1/0:t,o=0,s=0;for(;o<n.length&&Math.min(p.step.ops[o].at,i)<=a;)s+=n[o],o+=1;return p.written=Math.min(p.written+r,s),p.written}function T(){if(f=null,h.status!==`playing`||!p)return;let e=S(),t=p.timing.writeMs;p.silentUntil!==null&&e>=p.silentUntil&&(p.speechDone=!0);let n=p.exactSentence?h.sentence:x(e),r=w(e,n,t),i=0,a=t.length,o=1;for(let e=0;e<t.length;e+=1){if(r<i+t[e]){a=e,o=t[e]?(r-i)/t[e]:1;break}i+=t[e]}let s=a!==h.op||Math.abs(o-h.progress)>.002||n!==h.sentence;if(h.op=a,h.sentence=n,h.progress=Math.min(1,Math.max(0,o)),a>=t.length&&p.speechDone&&(p.finishAt??=p.synced?e+450:i+450,e>=p.finishAt)){E();return}s&&v(),C()}function E(){let e=l[h.index];if(h.op=e?.ops.length??0,h.progress=1,e?.check&&!m.has(e.check.id)){h.status=`check`,v();return}D()}function D(){h.index+=1,b()}return{get state(){return _()},setSteps(e,{done:t=!1}={}){l=e,u=t,h.status===`buffering`&&l[h.index]?b():(h.status===`buffering`&&u&&(h.status=`ended`),v())},play(){if(h.status!==`playing`){if(h.status===`paused`&&p){h.status=`playing`,p.startedAt=r(),e?.resume?.(),v(),C();return}h.status===`ended`&&(h.index=0),h.status!==`check`&&b()}},pause(){h.status!==`playing`||!p||(p.elapsedBefore=S(),h.status=`paused`,y(),e?.pause?.(),v())},toggle(){h.status===`playing`?this.pause():this.play()},next(){let t=l[h.index];h.status===`check`&&t?.check&&m.add(t.check.id),t&&(y(),e?.cancel?.(),D())},prev(){y(),e?.cancel?.();let t=h.op===0&&h.progress<.05;h.index=Math.max(0,Math.min(l.length-1,t?h.index-1:h.index)),b()},seek(t){y(),e?.cancel?.(),h.index=Math.min(Math.max(0,t),Math.max(0,l.length)),b()},answer(e){m.add(e),h.status===`check`&&D()},setRate(t){let n=Math.min(2,Math.max(.5,Number(t)||1));if(p&&h.status===`playing`){let e=S(),t=d/n;p.elapsedBefore=e*t,p.startedAt=r(),p.timing=dt(p.step,{rate:n}),p.written*=t,p.lastTime=p.elapsedBefore,p.finishAt=null}d=n,e?.setRate?.(n),v()},insertAfterCurrent(e){if(!e?.length)return l;let t=Math.min(l.length,h.index+1);return l=[...l.slice(0,t),...e,...l.slice(t)],v(),l},dispose(){y(),e?.cancel?.(),p=null}}}function Tl(e,t,n,r=!1){if(!n)return[];if(!e.some(e=>Number.isInteger(e.goal)))return null;if(r)return Array(n).fill(`done`);let i=Array(n).fill(-1);e.forEach((e,t)=>{Number.isInteger(e.goal)&&e.goal<n&&(i[e.goal]=Math.max(i[e.goal],t))});let a=e[t]?.goal;return i.map((e,n)=>a===n?`current`:e>=0&&t>e?`done`:`todo`)}function El(e,t,n=[]){let r=[],i=e=>[`question`,`correction`,`challenge`].includes(e.kind)?e.kind:`reexplain`,a=new Set,o=e=>n.find(t=>e.startsWith(`${t.id}_`));e.forEach((e,n)=>{if(!(n>t)){if(e.aside){let t=o(e.id);t&&!a.has(t.id)&&(a.add(t.id),r.push({key:`${t.id}:ask`,kind:i(t),text:t.label,stepIndex:n,aside:!0}))}e.say&&r.push({key:e.id,kind:`say`,text:e.say,stepIndex:n,aside:e.aside===!0})}});for(let e of n)e.streaming&&!e.steps.length&&r.push({key:`${e.id}:ask`,kind:i(e),text:e.label,stepIndex:-1,aside:!0,pending:!0});return r}function Dl(e,t,n=null){let r=Math.min(t,e.length-1);for(;r>0&&e[r]?.aside;)--r;let i=e[r]?.id;return i?n&&e.findIndex(e=>e.id===n)>=r?n:i:n}let Ol=Object.freeze([{target:`.aha-stage`,title:`tourBoardTitle`,text:`tourBoard`},{target:`.aha-controls`,title:`tourControlsTitle`,text:`tourControls`},{target:`[data-tour=raise]`,title:`tourRaiseTitle`,text:`tourRaise`},{target:`[data-tour=reexplain]`,title:`tourReexplainTitle`,text:`tourReexplain`},{target:`[data-tour=challenge]`,title:`tourChallengeTitle`,text:`tourChallenge`},{target:`.aha-panel`,title:`tourPanelTitle`,text:`tourPanel`}]);function kl(e,t,n){let r=(e,t)=>Math.max(8,Math.min(e,t-8)),i=r(e.x,n.width-t.width);return e.y+e.height+12+t.height<=n.height-8?{x:i,y:e.y+e.height+12,side:`below`}:e.y-12-t.height>=8?{x:i,y:e.y-12-t.height,side:`above`}:{x:r(e.x+e.width-t.width-12,n.width-t.width),y:r(e.y+e.height-t.height-12,n.height-t.height),side:`inside`}}function Al(e,t,n=6){let r=Math.max(0,e.x-n),i=Math.max(0,e.y-n);return{x:r,y:i,width:Math.min(t.width,e.x+e.width+n)-r,height:Math.min(t.height,e.y+e.height+n)-i}}function jl({root:e,onDone:t}){let{t:n}=v(),[a,o]=(0,r.useState)(0),[s,c]=(0,r.useState)(null),l=(0,r.useRef)(null),[u]=(0,r.useState)(()=>Ol.filter(t=>e.current?.querySelector(t.target))),d=u[a];(0,r.useLayoutEffect)(()=>{let t=e.current;if(!t||!d)return;let n=()=>{let e=t.querySelector(d.target);if(!e)return;let n=t.getBoundingClientRect(),r=e.getBoundingClientRect(),i={width:n.width,height:n.height},a=Al({x:r.left-n.left,y:r.top-n.top,width:r.width,height:r.height},i),o=l.current?.getBoundingClientRect(),s=kl(a,{width:o?.width??320,height:o?.height??150},i);c({hole:a,place:s})};t.querySelector(d.target)?.scrollIntoView?.({block:`nearest`}),n();let r=requestAnimationFrame(n),i=typeof ResizeObserver==`function`?new ResizeObserver(n):null;return i?.observe(t),()=>{cancelAnimationFrame(r),i?.disconnect()}},[a,d]);let f=()=>a+1<u.length?o(a+1):t(),p=()=>o(Math.max(0,a-1));return(0,r.useEffect)(()=>{let e=e=>{if(e.key===`Escape`)t();else if(e.key===`ArrowRight`||e.key===`Enter`)f();else if(e.key===`ArrowLeft`)p();else if(e.key!==` `)return;e.preventDefault(),e.stopImmediatePropagation()};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)}),(0,r.useEffect)(()=>{d||t()},[d]),d?(0,i.jsxs)(`div`,{className:`aha-tour`,role:`dialog`,"aria-modal":`true`,"aria-label":n(`tourLabel`),children:[s?(0,i.jsx)(`div`,{className:`aha-tourHole`,style:{left:s.hole.x,top:s.hole.y,width:s.hole.width,height:s.hole.height}}):null,(0,i.jsxs)(`div`,{ref:l,className:`aha-tourCard`,"data-side":s?.place.side,style:s?{left:s.place.x,top:s.place.y}:{visibility:`hidden`},children:[(0,i.jsx)(`b`,{children:n(d.title)}),(0,i.jsx)(`p`,{children:n(d.text)}),(0,i.jsxs)(`div`,{className:`aha-tourActions`,children:[(0,i.jsxs)(`span`,{className:`aha-hint`,children:[a+1,` / `,u.length]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:t,children:n(`tourSkip`)}),a>0?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:p,children:n(`tourBack`)}):null,(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,"data-size":`sm`,autoFocus:!0,onClick:f,children:a+1<u.length?n(`tourNext`):n(`tourStart`)})]})]})]}):null}function Ml({label:e}){return(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:8},children:[(0,i.jsx)(`span`,{className:`aha-spinner`}),e?(0,i.jsx)(`span`,{className:`aha-hint`,children:e}):null]})}function Nl({value:e}){return(0,i.jsx)(`div`,{className:`aha-progress`,children:(0,i.jsx)(`div`,{style:{width:`${Math.max(0,Math.min(100,e))}%`}})})}function Pl({progress:e,label:t,onCancel:n}){let{t:r}=v(),a=e?.total?Math.round(e.done/e.total*100):0;return(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:6},children:[(0,i.jsx)(Ml,{label:t}),e?.total?(0,i.jsx)(Nl,{value:a}):null,n?(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:n,children:r(`cancel`)}),(0,i.jsx)(`span`,{className:`aha-hint`,children:r(`keepsRunning`)})]}):null]})}function Fl({title:e,onClose:t,children:n,footer:r,width:a}){return(0,i.jsx)(`div`,{className:`aha-modalBack`,onMouseDown:e=>{e.target===e.currentTarget&&t?.()},children:(0,i.jsxs)(`div`,{className:`aha-modal`,role:`dialog`,"aria-label":e,style:a?{width:`min(${a}px,100%)`}:void 0,children:[e?(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:e}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:t,"aria-label":`close`,children:`✕`})]}):null,n,r?(0,i.jsx)(`div`,{className:`aha-row`,style:{justifyContent:`flex-end`},children:r}):null]})})}function Il({text:e,onConfirm:t,onCancel:n,danger:r=!1}){let{t:a}=v();return(0,i.jsx)(Fl,{title:a(`confirm`),onClose:n,footer:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:n,children:a(`cancel`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":r?`danger`:`primary`,onClick:t,children:a(`confirm`)})]}),children:(0,i.jsx)(`p`,{children:e})})}function Ll(e,t){let n=String(t?.code??``).replace(/^aha-tutor\//u,``),r=`err_${n}`;return n&&e(r)!==r?e(r):e(`errorGeneric`,{message:t?.message??String(t)})}function $({error:e,style:t,reveal:n=!1}){let{t:a}=v(),o=(0,r.useRef)(null);return(0,r.useEffect)(()=>{n&&e&&o.current?.scrollIntoView?.({block:`nearest`})},[n,e]),e?(0,i.jsx)(`div`,{ref:o,className:`aha-error`,role:`alert`,style:t,title:e.message??void 0,children:Ll(a,e)}):null}function Rl({children:e}){return(0,i.jsx)(`div`,{className:`aha-empty`,children:e})}function zl(){let{api:e}=v(),[t,n]=(0,r.useState)(null),[i,a]=(0,r.useState)(null);async function o(t){try{let n=await fetch(new URL(`api/aha-tutor/upload?name=${encodeURIComponent(t.name)}`,document.baseURI),{method:`POST`,credentials:`same-origin`,headers:{"content-type":t.type||`application/octet-stream`},body:t});if(n.status!==404){let t=await n.json();if(!t?.ok)throw new u(t?.error?.code??`failed`,t?.error?.message??`Upload failed`);return(await e.follow(t.value)).material}}catch(e){if(e?.message!==`Failed to fetch`)throw e}let n=await p(t);return(await e.run(`material/upload`,{name:t.name,base64:n})).material}async function s(e){let t=[];a(null);for(let r of e){n(r.name);try{t.push(await o(r))}catch(e){a(e)}}return n(null),t}async function c(t){n(t),a(null);try{return[(await e.run(`material/url`,{url:t})).material]}catch(e){return a(e),[]}finally{n(null)}}return{upload:s,addUrl:c,busy:t,error:i}}function Bl({onAdded:e,compact:t=!1}){let{t:n}=v(),a=(0,r.useRef)(null),[o,s]=(0,r.useState)(``),[c,l]=(0,r.useState)(!1),{upload:u,addUrl:d,busy:f,error:p}=zl(),m=async t=>{let n=await u([...t]);n.length&&e?.(n)};return(0,i.jsxs)(`div`,{className:`aha-col`,children:[(0,i.jsxs)(`div`,{className:`aha-empty`,style:{padding:t?14:24,borderColor:c?`var(--aha-brand)`:void 0,cursor:`pointer`},onClick:()=>a.current?.click(),onDragOver:e=>{e.preventDefault(),l(!0)},onDragLeave:()=>l(!1),onDrop:e=>{e.preventDefault(),l(!1),m(e.dataTransfer.files)},children:[(0,i.jsxs)(`div`,{className:`aha-row`,style:{justifyContent:`center`},children:[(0,i.jsx)(pe,{name:`upload`}),n(`dropHere`)]}),(0,i.jsx)(`input`,{ref:a,type:`file`,multiple:!0,accept:`.pdf,.docx,.pptx,.md,.markdown,.txt,.csv,.json,.tex,.py,.js,.ts,.html,.png,.jpg,.jpeg,.webp,.gif`,hidden:!0,onChange:e=>{m(e.currentTarget.files),e.currentTarget.value=``}})]}),(0,i.jsxs)(`form`,{className:`aha-row`,onSubmit:async t=>{if(t.preventDefault(),!o.trim())return;let n=await d(o.trim());n.length&&(s(``),e?.(n))},children:[(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:1},value:o,placeholder:n(`urlPlaceholder`),onChange:e=>s(e.currentTarget.value)}),(0,i.jsxs)(`button`,{type:`submit`,className:`aha-btn`,disabled:!o.trim()||!!f,children:[(0,i.jsx)(pe,{name:`link`}),n(`addUrl`)]})]}),f?(0,i.jsx)(Ml,{label:`${n(`reading`)} ${f}`}):null,(0,i.jsx)($,{error:p})]})}function Vl({selected:e,onChange:t,onClose:n,exclude:r=[],max:a=8}){let{api:o,t:s}=v(),c=y(()=>o.call(`material/list`),[]),l=n=>t(e.includes(n)?e.filter(e=>e!==n):[...e,n].slice(0,a));return(0,i.jsxs)(Fl,{title:s(`pickMaterials`),onClose:n,width:640,footer:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:n,children:s(`confirm`)}),children:[(0,i.jsx)(Bl,{compact:!0,onAdded:n=>{c.reload(),t([...e,...n.map(e=>e.id)].slice(0,a))}}),c.loading&&!c.value?(0,i.jsx)(Ml,{label:s(`loading`)}):null,(0,i.jsx)(`div`,{className:`aha-col`,style:{gap:6,maxHeight:320,overflow:`auto`},children:(c.value??[]).filter(e=>!r.includes(e.id)).map(t=>(0,i.jsxs)(`label`,{className:`aha-option`,style:{flexDirection:`row`,alignItems:`center`,gap:10},children:[(0,i.jsx)(`input`,{type:`checkbox`,checked:e.includes(t.id),onChange:()=>l(t.id)}),(0,i.jsxs)(`span`,{className:`aha-col`,style:{gap:0},children:[(0,i.jsx)(`b`,{children:t.title}),(0,i.jsx)(`small`,{children:Hl(t,s)})]})]},t.id))})]})}function Hl(e,t){let n=[e.kind.toUpperCase()];return e.pages&&n.push(t(`pages`,{count:e.pages})),e.slides&&n.push(t(`slides`,{count:e.slides})),e.kind===`image`&&n.push(t(`imageNeedsVision`)),n.join(` · `)}function Ul({sources:e}){return(0,i.jsx)(`ol`,{className:`aha-sourceList`,children:(e??[]).filter(e=>/^https?:\/\//iu.test(String(e?.url??``))).map(e=>(0,i.jsxs)(`li`,{children:[(0,i.jsx)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,children:e.title||e.url}),(0,i.jsxs)(`span`,{className:`aha-hint`,children:[` · `,new URL(e.url).hostname]}),e.snippet?(0,i.jsx)(`p`,{className:`aha-hint`,children:e.snippet}):null]},e.url))})}function Wl({title:e,emoji:t}){return e?(0,i.jsxs)(`span`,{className:`aha-hint`,title:e,children:[` · `,t?`${t} `:``,M(e)]}):null}function Gl({value:e,stage:t,label:n}){let r=t===`none`?0:Math.round((Number(e)||0)/20),a=n?t===`none`?n:`${n} · ${Math.round(e??0)}%`:`${Math.round(e??0)}%`;return(0,i.jsx)(`span`,{className:`aha-meter`,title:a,"aria-label":a,role:`img`,"data-stage":t,children:[0,1,2,3,4].map(e=>(0,i.jsx)(`i`,{"data-on":e<r},e))})}function Kl(e){return navigator.clipboard?.writeText(e).catch(()=>void 0)}let ql=Object.freeze([`choice`,`multi`,`blank`,`number`,`order`]),Jl=/[!-~]/gu;function Yl(e){return String(e??``).normalize(`NFKC`).replace(Jl,e=>String.fromCharCode(e.charCodeAt(0)-65248)).toLowerCase().replace(/[\s ]+/gu,` `).replace(/^[\s.,;:!?'"`,。;:!?、“”‘’]+|[\s.,;:!?'"`,。;:!?、“”‘’]+$/gu,``).trim()}function Xl(e){if(typeof e==`number`)return e;let t=Yl(e).replace(/,/gu,``).replace(/\s/gu,``),n=/^(-?\d+(?:\.\d+)?)\/(\d+(?:\.\d+)?)$/u.exec(t);if(n)return Number(n[1])/Number(n[2]);let r=/^(-?\d+(?:\.\d+)?)%$/u.exec(t);if(r)return Number(r[1])/100;let i=Number(t);return Number.isFinite(i)?i:NaN}function Zl(e,t){if(!e||!ql.includes(e.kind))return{score:0,correct:!1,gradable:!1};if(e.kind===`choice`){let n=String(t??``)===String(e.answer??``);return{score:+!!n,correct:n,gradable:!0}}if(e.kind===`multi`){let n=new Set((Array.isArray(e.answer)?e.answer:[e.answer]).map(String)),r=new Set((Array.isArray(t)?t:[]).map(String));if(!n.size)return{score:0,correct:!1,gradable:!1};let i=0,a=0;for(let e of r)n.has(e)?i+=1:a+=1;let o=Math.max(0,(i-a)/n.size),s=i===n.size&&a===0;return{score:$l(o),correct:s,gradable:!0}}if(e.kind===`order`){let n=(Array.isArray(e.answer)?e.answer:[]).map(String),r=(Array.isArray(t)?t:[]).map(String);if(!n.length)return{score:0,correct:!1,gradable:!1};let i=0;return n.forEach((e,t)=>{r[t]===e&&(i+=1)}),{score:$l(i/n.length),correct:i===n.length,gradable:!0}}if(e.kind===`number`){let n=Xl(e.answer),r=Xl(t);if(!Number.isFinite(n))return{score:0,correct:!1,gradable:!1};if(!Number.isFinite(r))return{score:0,correct:!1,gradable:!0};let i=Number.isFinite(Number(e.tolerance))&&Number(e.tolerance)>=0?Number(e.tolerance):Math.max(1e-9,Math.abs(n)*.01),a=Math.abs(r-n)<=i;return{score:+!!a,correct:a,gradable:!0}}let n=(Array.isArray(e.answer)?e.answer:[e.answer]).map(Yl).filter(Boolean);if(!n.length)return{score:0,correct:!1,gradable:!1};let r=Yl(t),i=n.includes(r);if(i)return{score:1,correct:i,gradable:!0};let a=Xl(t),o=n.map(Xl).filter(Number.isFinite);return Number.isFinite(a)&&o.some(e=>Math.abs(e-a)<=Math.max(1e-9,Math.abs(e)*.001))?{score:1,correct:!0,gradable:!0}:{score:0,correct:!1,gradable:!0}}function Ql(e,t){return e.kind===`choice`?`chose ${String(t).toUpperCase()}: ${(e.options?.find(e=>e.id===t)?.text??``).slice(0,50)}`:e.kind===`number`||e.kind===`blank`?`answered ${String(t).slice(0,40)}`:`wrong`}function $l(e){return Math.round(e*100)/100}let eu=Object.freeze({wrong:`itemCheck_wrong`,unclear:`itemCheck_unclear`,misgraded:`itemCheck_misgraded`,right:`itemCheck_right`});function tu({courseId:e,lessonId:t,unitId:n,deckId:r}={},i){return i?.id?i.context?i.context.source??null:r?{kind:`deck`,deckId:r,itemId:i.id}:e&&n?{kind:`quiz`,courseId:e,unitId:n,itemId:i.id}:e&&t?{kind:`practice`,courseId:e,lessonId:t,itemId:i.id}:null:null}let nu=(e,t=160)=>{let n=[...String(e??``).replace(/\s+/gu,` `).trim()];return n.length>t?`${n.slice(0,t).join(``)}…`:n.join(``)};function ru(e,t=e?.answer){return e.kind===`choice`?(t=>{let n=e.options?.find(e=>e.id===t);return n?`${t.toUpperCase()}. ${n.text}`:String(t??``).toUpperCase()})(t):e.kind===`multi`?(Array.isArray(t)?t:[]).map(e=>String(e).toUpperCase()).join(`, `):e.kind===`order`?(Array.isArray(t)?t:[]).map(t=>e.options?.find(e=>e.id===t)?.text??t).join(` → `):e.kind===`number`?`${t}${e.unit?` ${e.unit}`:``}`:e.kind===`blank`?(Array.isArray(t)?t:[t]).join(` / `):nu(t)}function iu(e,t){let n=t?.fixed?.was;if(!n)return[];let r=[];n.prompt!==void 0&&r.push(e(`fixedPart_prompt`,{text:nu(n.prompt)||`—`}));for(let[t,i]of Object.entries(n.options??{}))r.push(e(`fixedPart_option`,{id:t.toUpperCase(),text:nu(i,80)}));if(n.answer!==void 0){let i=t.options?.map(e=>({...e,text:n.options?.[e.id]??e.text}));r.push(e(`fixedPart_answer`,{text:n.answer===null?`—`:ru({...t,options:i,unit:n.unit??t.unit},n.answer)}))}return n.unit!==void 0&&n.answer===void 0&&r.push(e(`fixedPart_unit`,{text:n.unit||`—`})),n.tolerance!==void 0&&r.push(e(`fixedPart_tolerance`,{text:n.tolerance??`—`})),n.explanation!==void 0&&r.push(e(`fixedPart_explanation`,{text:nu(n.explanation)||`—`})),n.hints!==void 0&&r.push(e(`fixedPart_hints`,{text:nu((n.hints??[]).join(` / `))||`—`})),n.rubric!==void 0&&r.push(e(`fixedPart_rubric`,{text:nu((n.rubric??[]).join(` / `))||`—`})),n.figure&&r.push(e(`fixedPart_figure`)),r}function au(e){return{score:Number(e?.score)||0,correct:e?.correct===!0,partial:e?.partial===!0,feedback:e?.feedback??``,wrongStep:e?.wrongStep??``,fix:e?.fix??``}}function ou(e,t,n){return{status:`done`,note:e?.note??``,verdict:t?.verdict??`right`,summary:t?.summary??``,explanation:t?.explanation??``,item:t?.item??e?.item??null,result:t?.result?{...n,...t.result,regraded:!0}:e?.result??null,earlier:(e?.earlier??0)+(Number(t?.earlier)||0)}}function su(e,t,n){return e.map(e=>e.index===t?{...e,...n,index:t,regraded:!0}:e)}function cu(e,{index:t,verdict:n,regraded:r=!1,earlier:i=0,message:a}){return a===void 0?`${e(`itemCheckDone`,{n:t+1,verdict:e(eu[n]??eu.right)})}${r?e(`itemCheckRegraded`):``}${i?e(`itemCheckEarlier`,{count:i}):``}`:e(`itemCheckFailedNotice`,{n:t+1,message:a})}function lu({text:e,compact:t=!1,streaming:n=!1}){let{t:o}=v(),s=(0,r.useMemo)(()=>({code:{copyLabel:o(`copyCode`),copiedLabel:o(`copied`)},footnotes:o(`footnotes`)}),[o]);return(0,i.jsx)(`div`,{className:`aha-markdown`,children:(0,i.jsx)(a.MarkdownText,{text:String(e??``),labels:s,streaming:n,variant:t?`compact`:`body`})})}let uu=16e3,du={NotAllowedError:{code:`mic-denied`},SecurityError:{code:`mic-denied`},NotFoundError:{code:`mic-missing`},OverconstrainedError:{code:`mic-missing`},NotReadableError:{code:`mic-busy`},AbortError:{code:`mic-busy`}},fu={code:`mic-unsupported`},pu={code:`speech-audio`};function mu({code:e,device:t}){return Object.assign(Error(e),{name:`RecordingError`,code:e},t?{device:t}:{})}function hu(){try{let e=JSON.parse(window.localStorage.getItem(`dsh.voice-input.microphone`)??`null`);if(typeof e?.id==`string`&&e.id&&typeof e.label==`string`)return{id:e.id,label:e.label.slice(0,120)}}catch{}return null}function gu(e){let t=new Uint8Array(44+e.length*2),n=new DataView(t.buffer),r=(e,n)=>{for(let r=0;r<4;r+=1)t[e+r]=n.charCodeAt(r)};r(0,`RIFF`),n.setUint32(4,36+e.length*2,!0),r(8,`WAVE`),r(12,`fmt `),n.setUint32(16,16,!0),n.setUint16(20,1,!0),n.setUint16(22,1,!0),n.setUint32(24,uu,!0),n.setUint32(28,uu*2,!0),n.setUint16(32,2,!0),n.setUint16(34,16,!0),r(36,`data`),n.setUint32(40,e.length*2,!0);for(let t=0;t<e.length;t+=1){let r=Math.max(-1,Math.min(1,Number(e[t])||0));n.setInt16(44+t*2,Math.round(r<0?r*32768:r*32767),!0)}return t}async function _u(e,t){let n=new(globalThis.AudioContext??globalThis.webkitAudioContext);try{let r=await n.decodeAudioData(await e.arrayBuffer()),i=Math.max(1,Math.floor(Math.min(r.duration,t)*uu)),a=new OfflineAudioContext(1,i,uu),o=a.createBufferSource();return o.buffer=r,o.connect(a.destination),o.start(),gu((await a.startRendering()).getChannelData(0))}finally{n.close?.()?.catch?.(()=>void 0)}}function vu(e){let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return btoa(t)}function yu({maxSeconds:e=120,onLimit:t}={}){let n=null,r=null,i=[],a=null,o=0,s=!1,c=()=>{clearTimeout(a);for(let e of n?.getTracks?.()??[])e.stop();n=null};async function l(){if(!globalThis.navigator?.mediaDevices?.getUserMedia||typeof MediaRecorder!=`function`)throw mu(fu);let l=hu();try{n=await navigator.mediaDevices.getUserMedia({audio:{channelCount:1,echoCancellation:!0,noiseSuppression:!0,...l?{deviceId:{exact:l.id}}:{}}})}catch(e){throw l&&(e?.name===`NotFoundError`||e?.name===`OverconstrainedError`)?mu({code:`mic-chosen-missing`,device:l.label}):mu(du[e?.name]??fu)}if(s){c();return}i=[],r=new MediaRecorder(n),r.ondataavailable=e=>{e.data?.size&&i.push(e.data)},r.start(250),o=performance.now(),a=setTimeout(()=>t?.(),e*1e3)}function u(){return new Promise((t,n)=>{let a=r;if(r=null,!a||a.state===`inactive`){c(),n(mu(pu));return}a.onstop=async()=>{c();try{t(await _u(new Blob(i,{type:a.mimeType||`audio/webm`}),e))}catch{n(mu(pu))}},a.stop()})}function d(){s=!0;let e=r;r=null,i=[],e&&e.state!==`inactive`&&(e.onstop=null,e.stop()),c()}return{start:l,stop:u,cancel:d,elapsed:()=>o?(performance.now()-o)/1e3:0}}function bu(e){for(let t=e?.parentElement;t;t=t.parentElement)if(getComputedStyle(t).overflowX!==`visible`)return t;return null}function xu(e){let t=bu(e);if(!t)return 0;e.style.width=``,e.style.transform=``;let n=t.getBoundingClientRect();e.style.width=`${Math.min(e.getBoundingClientRect().width,n.width-16)}px`;let r=e.getBoundingClientRect(),i=r.left<n.left+8?n.left+8-r.left:Math.min(0,n.right-8-r.right);return i&&(e.style.transform=`translateX(${Math.round(i)}px)`),i}function Su(e){xu(e);let t=bu(e);if(!t||typeof ResizeObserver!=`function`)return()=>void 0;let n=new ResizeObserver(()=>xu(e));return n.observe(t),()=>n.disconnect()}function Cu(e,{reducedMotion:t=wu()}={}){let n=e?.closest?.(`.aha-main`);if(!n||n.scrollHeight<=n.clientHeight)return!1;let r=e.getBoundingClientRect().top-n.getBoundingClientRect().top-12;return Math.abs(r)<1?!1:(n.scrollTo({top:Math.max(0,n.scrollTop+r),behavior:t?`auto`:`smooth`}),!0)}function wu(){return globalThis.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0}let Tu=e=>(e?.key===`v`||e?.key===`V`)&&!e.ctrlKey&&!e.metaKey&&!e.altKey,Eu=e=>!!e?.isContentEditable||/^(input|textarea|select)$/iu.test(String(e?.tagName??``));function Du(){let e=null,t=e=>e===`starting`||e===`recording`;return{down(n,r){return n===`idle`?(e=r,`start`):(e=null,t(n)?`stop`:null)},up(n,r){if(e===null)return null;let i=r-e;return e=null,i>=350&&t(n)?`stop`:null}}}async function Ou(e,t){try{let e=await fetch(new URL(`api/aha-tutor/speech`,document.baseURI),{method:`POST`,credentials:`same-origin`,headers:{"content-type":`audio/wav`},body:t});if(e.status!==404){let t=await e.json();if(!t?.ok)throw new u(t?.error?.code??`speech-failed`,t?.error?.message??`Speech recognition failed`);return t.value}}catch(e){if(e?.message!==`Failed to fetch`)throw e}return e.call(`speech/transcribe`,{base64:vu(t)})}let ku=e=>`${Math.floor(e/60)}:${String(e%60).padStart(2,`0`)}`;function Au(e,t){return t?.code===`mic-chosen-missing`&&t.device?e(`micChosenMissing`,{name:t.device}):Ll(e,t)}let ju=(0,r.forwardRef)(function({onText:e,onStart:t,disabled:n=!1,keyHint:a=``},o){let{api:s,t:c}=v(),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(`idle`),[p,m]=(0,r.useState)(0),[h,g]=(0,r.useState)(null),[_,y]=(0,r.useState)(()=>hu()?.label??``),b=(0,r.useRef)(null),x=(0,r.useRef)(null),S=(0,r.useRef)(null),C=(0,r.useRef)(`idle`),w=(0,r.useRef)(!1),T=(0,r.useRef)(null);T.current??=Du();let E=e=>{C.current=e,f(e)};(0,r.useLayoutEffect)(()=>h&&x.current?Su(x.current):void 0,[h]);async function D(){let e;try{e=await s.call(`speech/status`)}catch{e={state:`off`}}return u(e),e}(0,r.useEffect)(()=>(D(),()=>b.current?.cancel()),[]),(0,r.useEffect)(()=>{if(d!==`recording`)return;let e=setInterval(()=>m(Math.floor(b.current?.elapsed()??0)),250);return()=>clearInterval(e)},[d]);async function O(){let t=b.current;if(t){b.current=null,E(`working`);try{let{text:n}=await Ou(s,await t.stop());e?.(n)}catch(e){g({text:Ll(c,e),error:!0}),/speech-(off|unprepared)$/u.test(String(e?.code??``))&&D()}finally{E(`idle`)}}}async function k(){g(null),w.current=!1,E(`starting`);let e=l?.state===`ready`?l:await D();if(e.state!==`ready`){E(`idle`),g({text:c(`voice_${e.state}`)});return}t?.();let n=yu({maxSeconds:e.maxSeconds??120,onLimit:()=>{O()}});b.current=n,m(0);try{await n.start(),E(`recording`),w.current&&O()}catch(e){b.current=null,E(`idle`),g({text:Au(c,e),error:!0})}}function ee(){C.current===`starting`?w.current=!0:C.current===`recording`&&O()}function te(){C.current===`recording`?O():C.current===`idle`&&k()}(0,r.useImperativeHandle)(o,()=>({press(e){if(n&&C.current===`idle`)return;let t=T.current.down(C.current,e);t===`start`?(S.current?.scrollIntoView?.({block:`nearest`}),k()):t===`stop`&&ee()},release(e){T.current.up(C.current,e)===`stop`&&ee()}}));let ne=l!==null&&l.state!==`ready`,A=d===`recording`,re=A?c(`voiceStop`):ne?c(`voiceSetup`):_?c(`voiceAskWith`,{name:_}):c(`voiceAsk`);return(0,i.jsxs)(`span`,{className:`aha-mic`,children:[(0,i.jsxs)(`button`,{ref:S,type:`button`,className:`aha-btn aha-micBtn`,"data-state":d,"data-unavailable":ne?`true`:void 0,"aria-pressed":A,"aria-label":c(A?`voiceStop`:`voiceAsk`),title:a?`${re}\n${a}`:re,disabled:n&&d===`idle`||d===`starting`||d===`working`,onClick:te,onPointerEnter:()=>y(hu()?.label??``),children:[d===`working`?(0,i.jsx)(`span`,{className:`aha-spinner`}):(0,i.jsx)(pe,{name:A?`stop`:`mic`,size:16}),A?(0,i.jsx)(`span`,{className:`aha-micTime`,children:ku(p)}):d===`working`?(0,i.jsx)(`span`,{className:`aha-micTime`,children:c(`voiceWorking`)}):null]}),h?(0,i.jsxs)(`span`,{ref:x,className:`aha-micNote`,role:`status`,"data-error":h.error?`true`:void 0,children:[h.text,(0,i.jsx)(`button`,{type:`button`,className:`aha-micClose`,"aria-label":c(`close`),onClick:()=>g(null),children:`×`})]}):null]})}),Mu=[[`sure`,`confSure`],[`unsure`,`confUnsure`],[`guess`,`confGuess`]];function Nu({item:e,language:t,onResult:n,onContinue:a,continueLabel:o,askConfidence:s=!0,compact:c=!1,keyboard:l=!1,onChallenge:u,check:d=null}){let{api:f,t:p}=v(),m=d?.item??e,[h,g]=(0,r.useState)(m.kind===`multi`||m.kind===`order`?[]:``),[_,y]=(0,r.useState)(null),[b,x]=(0,r.useState)(0),[S,C]=(0,r.useState)(null),[w,T]=(0,r.useState)(!1),[E,D]=(0,r.useState)(null),[O,k]=(0,r.useState)(!1),[ee,te]=(0,r.useState)(null),ne=(0,r.useRef)(Date.now()),A=S&&d?.result?d.result:S;(0,r.useEffect)(()=>{g(e.kind===`multi`||e.kind===`order`?e.kind===`order`?e.options.map(e=>e.id):[]:``),y(null),x(0),C(null),D(null),k(!1),te(null),ne.current=Date.now()},[e]);let re=m.kind===`multi`?h.length>0:m.kind===`order`||String(h).trim()!==``,ie=re&&(!s||_);async function ae(){if(!ie||A||w)return;let e=Date.now()-ne.current,r;if(m.kind===`short`||m.kind===`work`){T(!0),D(null);try{let e=await f.call(`lesson/grade`,{item:{kind:m.kind,prompt:m.prompt,answer:m.answer,rubric:m.rubric},response:h,language:t});r={score:e.score,correct:e.verdict===`correct`,partial:e.verdict===`partial`,feedback:e.feedback,errorTag:e.errorTag,misconception:e.misconception},m.kind===`work`&&Object.assign(r,{wrongStep:e.wrongStep??``,why:e.why??``,fix:e.fix??``})}catch(e){D(e),T(!1);return}T(!1)}else{let e=Zl(m,h);r={score:e.score,correct:e.correct,partial:!e.correct&&e.score>0,errorTag:e.correct?``:Ql(m,h)}}let i={...r,response:typeof h==`string`?h:void 0,given:h,confidence:_??void 0,timeMs:e,hintsUsed:b};C(i),n?.(i)}function oe(e){if(e?.preventDefault(),ee===null)return;let t=ee.trim();te(null),u?.(t)}let se=e=>g(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),ce=(0,r.useRef)(null);ce.current={result:A,ready:ie,answered:re,confidence:_,hints:b,submit:ae,toggle:se,onContinue:a},(0,r.useEffect)(()=>{if(!l)return;let e=e=>{if(e.defaultPrevented||e.metaKey||e.ctrlKey||e.altKey||e.isComposing)return;let t=ce.current,n=e.target,r=n instanceof HTMLElement&&(/^(input|textarea|select)$/iu.test(n.tagName)||n.isContentEditable);if(e.key===`Enter`){if(r)return;t.result?t.onContinue&&(e.preventDefault(),t.onContinue()):t.ready?(e.preventDefault(),t.submit()):t.answered&&s&&!t.confidence&&k(!0);return}if(!(r||t.result))if(/^[1-9]$/u.test(e.key)&&(m.kind===`choice`||m.kind===`multi`)){let n=m.options[Number(e.key)-1];if(!n)return;e.preventDefault(),m.kind===`multi`?t.toggle(n.id):g(n.id)}else(e.key===`h`||e.key===`H`)&&t.hints<(m.hints?.length??0)&&(e.preventDefault(),x(e=>e+1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[l,m,s]);let le=(e,t)=>g(n=>{let r=[...n],i=e+t;return i<0||i>=r.length?n:([r[e],r[i]]=[r[i],r[e]],r)}),ue=e=>{if(A)return(Array.isArray(m.answer)?m.answer:[m.answer]).includes(e.id)?`right`:(Array.isArray(h)?h.includes(e.id):h===e.id)?`wrong`:void 0},j=m.fixed?iu(p,m):[],de=j.length?`${p(`fixedWasItem`)}\n${j.join(`
|
|
268
|
+
`)}`:``;return(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:c?8:12},children:[m.fixed?(0,i.jsx)(`div`,{children:(0,i.jsxs)(`span`,{className:`aha-itemFixed`,tabIndex:0,title:de,"aria-label":`${p(`fixed`)}. ${de}`,children:[`✎ `,p(`fixed`)]})}):null,(0,i.jsx)(lu,{text:m.prompt,compact:!0}),m.svg?(0,i.jsx)(Pu,{svg:m.svg}):m.plot?(0,i.jsx)(Pu,{plot:m.plot}):null,m.kind===`choice`||m.kind===`multi`?(0,i.jsx)(`div`,{className:`aha-col aha-options`,style:{gap:6},"data-grid":m.options.every(e=>e.text.length<=22),children:m.options.map(e=>{let t=m.kind===`multi`?h.includes(e.id):h===e.id,n=ue(e);return(0,i.jsx)(`button`,{type:`button`,className:`aha-option`,"data-active":t,disabled:!!A,style:n===`right`?{borderColor:`var(--aha-ok)`}:n===`wrong`?{borderColor:`var(--aha-bad)`}:void 0,onClick:()=>m.kind===`multi`?se(e.id):g(e.id),children:(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:8,flexWrap:`nowrap`},children:[(0,i.jsxs)(`b`,{children:[e.id.toUpperCase(),`.`]}),(0,i.jsx)(lu,{text:e.text,compact:!0})]})},e.id)})}):null,m.kind===`order`?(0,i.jsx)(`div`,{className:`aha-col`,style:{gap:6},children:h.map((e,t)=>(0,i.jsxs)(`div`,{className:`aha-option`,style:{flexDirection:`row`,alignItems:`center`,gap:8},children:[(0,i.jsx)(`span`,{style:{flex:1},children:(0,i.jsx)(lu,{text:m.options.find(t=>t.id===e)?.text??e,compact:!0})}),A?null:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>le(t,-1),"aria-label":p(`moveUp`),children:`↑`}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>le(t,1),"aria-label":p(`moveDown`),children:`↓`})]})]},e))}):null,m.kind===`blank`||m.kind===`number`?(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`input`,{className:`aha-input`,style:{maxWidth:360},value:h,disabled:!!A,placeholder:p(`yourAnswer`),inputMode:m.kind===`number`?`decimal`:void 0,onChange:e=>g(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&ae()}}),m.unit?(0,i.jsx)(`span`,{className:`aha-hint`,children:m.unit}):null]}):null,m.kind===`short`?(0,i.jsx)(`textarea`,{className:`aha-textarea`,value:h,disabled:!!A,placeholder:p(`yourAnswer`),onChange:e=>g(e.currentTarget.value)}):null,m.kind===`work`?(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:6},children:[(0,i.jsx)(`textarea`,{className:`aha-textarea aha-work`,rows:6,value:h,disabled:!!A,placeholder:p(`workPlaceholder`),onChange:e=>g(e.currentTarget.value)}),!A&&/\$[^$\n]+\$/u.test(h)?(0,i.jsx)(`div`,{className:`aha-workPreview`,"aria-label":p(`workPreview`),children:h.split(`
|
|
269
|
+
`).filter(e=>e.trim()).map((e,t)=>(0,i.jsx)(lu,{text:e,compact:!0},t))}):null]}):null,m.hints?.length&&!A?(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[m.hints.slice(0,b).map((e,t)=>(0,i.jsxs)(`div`,{className:`aha-hint`,children:[`💡 `,e]},t)),b<m.hints.length?(0,i.jsx)(`div`,{children:(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>x(e=>e+1),children:[p(`hint`),` (`,b+1,`/`,m.hints.length,`)`]})}):null]}):null,s&&!A?(0,i.jsxs)(`div`,{className:`aha-row aha-confidence`,style:{gap:6},"data-nudge":O&&!_?`true`:void 0,children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:p(`confidence`)}),Mu.map(([e,t])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":_===e,onClick:()=>{y(e),k(!1)},children:p(t)},e))]}):null,(0,i.jsx)($,{error:E}),A?(0,i.jsxs)(`div`,{className:`aha-feedback`,"data-ok":A.correct?`true`:A.partial?void 0:`false`,children:[(0,i.jsxs)(`b`,{children:[A.correct?p(`correct`):A.partial?p(`partial`):p(`incorrect`),A.regraded?p(`regraded`):``]}),A.feedback?(0,i.jsx)(lu,{text:A.feedback,compact:!0}):null,m.explanation?(0,i.jsx)(lu,{text:m.explanation,compact:!0}):null,A.wrongStep?(0,i.jsxs)(`div`,{className:`aha-wrongStep`,children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:p(`wrongStep`)}),(0,i.jsx)(lu,{text:A.wrongStep,compact:!0}),A.fix?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:p(`fixedStep`)}),(0,i.jsx)(lu,{text:A.fix,compact:!0})]}):null]}):null,m.kind!==`short`&&m.kind!==`work`&&!A.correct?(0,i.jsx)(`div`,{className:`aha-hint`,children:Fu(m)}):null,u&&ee===null&&d?.status!==`checking`?(0,i.jsxs)(`button`,{type:`button`,className:`aha-itemFlag`,onClick:()=>te(``),children:[`🧐 `,p(`itemChallenge`)]}):null]}):null,A&&ee!==null?(0,i.jsxs)(`form`,{className:`aha-challengeBox aha-itemChallenge`,onSubmit:oe,children:[(0,i.jsx)(`b`,{children:p(`itemChallengeTitle`)}),(0,i.jsx)(`textarea`,{className:`aha-textarea`,rows:2,autoFocus:!0,value:ee,placeholder:p(`itemChallengePlaceholder`),onChange:e=>{let t=e.currentTarget.value;te(e=>e===null?e:t)},onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&oe(e),e.key===`Escape`&&te(null)}}),(0,i.jsxs)(`div`,{className:`aha-challengeActions`,children:[(0,i.jsx)(ju,{onText:e=>te(t=>t===null?t:t.trim()?`${t.trimEnd()} ${e}`:e)}),(0,i.jsx)(`span`,{className:`aha-challengeHint`,children:p(`itemChallengeHint`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>te(null),children:p(`cancel`)}),(0,i.jsx)(`button`,{type:`submit`,className:`aha-btn`,"data-kind":`primary`,children:p(`challengeSend`)})]})]}):null,A&&d?(0,i.jsxs)(`div`,{className:`aha-itemCheck`,"data-verdict":d.status===`done`?d.verdict:void 0,role:`status`,children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:p(`itemCheckTitle`)}),d.status===`checking`?(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:6},children:[(0,i.jsx)(`span`,{className:`aha-spinner`}),p(`itemChecking`)]}):null,d.status===`done`?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`b`,{children:p(eu[d.verdict]??eu.right)}),d.summary?(0,i.jsx)(lu,{text:d.summary,compact:!0}):null,d.explanation?(0,i.jsx)(lu,{text:d.explanation,compact:!0}):null,d.earlier?(0,i.jsx)(`span`,{className:`aha-hint`,children:p(`itemCheckEarlier`,{count:d.earlier}).trim()}):null]}):null,d.status===`failed`?(0,i.jsxs)(`div`,{className:`aha-row`,style:{gap:6},children:[(0,i.jsx)($,{error:d.error}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>u?.(d.note??``),children:p(`retry`)})]}):null]}):null,(0,i.jsxs)(`div`,{className:`aha-row aha-itemActions`,children:[A?null:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:!ie||w,onClick:ae,children:w?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`span`,{className:`aha-spinner`}),p(`grading`)]}):p(`submit`)}),A&&a?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:a,children:o??p(`continue`)}):null,!A&&a?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:a,children:p(`skip`)}):null]})]})}function Pu({svg:e,plot:t}){let n=(0,r.useMemo)(()=>rc(t?Xs(t):e),[e,t]);return n?(0,i.jsx)(`div`,{className:`aha-itemFigure`,dangerouslySetInnerHTML:{__html:n}}):null}function Fu(e){return e.kind===`choice`?`✔ ${e.answer.toUpperCase()}. ${e.options.find(t=>t.id===e.answer)?.text??``}`:e.kind===`multi`?`✔ ${e.answer.map(e=>e.toUpperCase()).join(`, `)}`:e.kind===`order`?`✔ ${e.answer.map(t=>e.options.find(e=>e.id===t)?.text??t).join(` → `)}`:e.kind===`number`?`✔ ${e.answer}${e.unit?` ${e.unit}`:``}`:e.kind===`blank`?`✔ ${e.answer.join(` / `)}`:``}let Iu=[[`thinking`,`prepThinking`],[`writing`,`prepWriting`]];function Lu(e){if(!((e?.thinking??0)>0))return null;let t=Iu.findIndex(([t])=>t===e.phase);return Iu.map(([e,n],r)=>({name:e,key:n,state:r<t?`done`:r===t?`now`:`next`}))}function Ru({prep:e,label:t,first:n,hand:a=!0}){let{t:o}=v(),[s,c]=(0,r.useState)(()=>performance.now());(0,r.useEffect)(()=>{if(!n)return;let e=setInterval(()=>c(performance.now()),1e3);return()=>clearInterval(e)},[n]);let l=e.phase??`starting`,u=n?Lu(e):null,d=Math.max(0,Math.round(((e.elapsedMs??0)+s-(e.receivedAt??s))/1e3));return(0,i.jsxs)(`div`,{className:`aha-prep`,role:`status`,"aria-live":`polite`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:8,flexWrap:`nowrap`},children:[(0,i.jsx)(`span`,{className:`aha-spinner`}),(0,i.jsx)(`b`,{children:t})]}),n?(0,i.jsx)(`span`,{className:`aha-hint`,children:o(`prepSeconds`,{seconds:d})}):null]}),u?(0,i.jsx)(`ol`,{className:`aha-prepStages`,children:u.map(e=>(0,i.jsx)(`li`,{"data-state":e.state,children:o(e.key)},e.name))}):null,(0,i.jsx)(`div`,{className:`aha-prepNow`,children:l===`writing`?(0,i.jsxs)(i.Fragment,{children:[o(`prepStep`,{n:(e.steps??0)+1}),e.current?(0,i.jsxs)(i.Fragment,{children:[`:`,(0,i.jsx)(`span`,{className:`aha-prepHint`,"data-hand":a?`true`:void 0,children:(0,i.jsx)(sl,{text:e.current})})]}):`…`]}):l===`thinking`?o(`prepThinkingDetail`,{chars:(e.thinking??0).toLocaleString()}):o(`prepStarting`)}),l===`writing`?(0,i.jsx)(`div`,{className:`aha-hint`,children:o(`prepCounts`,{steps:e.steps??0,chars:(e.chars??0).toLocaleString()})}):null]})}let zu=[.75,1,1.25,1.5,2],Bu=[[`analogy`,`styleAnalogy`],[`visual`,`styleVisual`],[`example`,`styleExample`],[`simpler`,`styleSimpler`],[`deeper`,`styleDeeper`]];function Vu({id:e,kind:t,label:n,anchorId:r,steps:i=[],streaming:a=!1,serverId:o}){return{id:e,kind:t,label:n,anchorId:r,streaming:a,serverId:o,steps:il(i,`${e}_`).map(e=>({...e,anchorId:r}))}}let Hu=e=>{let t=[...String(e??``).replace(/\s+/gu,` `).trim()];return t.length>28?`${t.slice(0,28).join(``)}…`:t.join(``)};function Uu({scope:e,title:t,crumb:n,steps:a=[],stream:o=null,asides:s=[],objectives:c=[],language:l,startIndex:u=0,autoplay:d=!0,onPosition:p,onEnded:m,onStreamDone:h,header:g,stageClass:_,recordChecks:y=!0,reveal:b,tour:x=!0,talkKey:T=!0}){let{api:E,t:D,speech:O,settings:k,dsh:ee}=v(),te=w(),ne=k.boardTheme===`dark`||k.boardTheme!==`light`&&te?`dark`:`light`,A=e=>D(Bu.find(([t])=>t===e)?.[1]??`reexplain`),re=e=>e?D(`correctionOf`,{tag:e}):D(`correction`),ie=(e,t)=>[e||D(`challengeLabel`),t?D(`challenge_${t}`):``].filter(Boolean).join(` · `),[oe,se]=(0,r.useState)(a),[ce,le]=(0,r.useState)(()=>s.map(e=>Vu({id:e.id,kind:e.kind,label:e.kind===`question`?e.question:e.kind===`correction`?re(e.errorTag):e.kind===`challenge`?ie(e.note,e.verdict):D(`reexplainedAs`,{style:A(e.style)}),anchorId:e.anchorStepId,steps:e.steps??[],serverId:e.id}))),ue=(0,r.useRef)([]),[j,fe]=C(`classPanel`,!0),[pe,me]=C(`classTourSeen`,!1),[he,ge]=(0,r.useState)(!1),_e=x&&!pe,ve=(0,r.useRef)(null),ye=(0,r.useRef)(null),be=(0,r.useRef)(null),xe=(0,r.useRef)(null),Se=(0,r.useRef)(!1),Ce=(0,r.useRef)(null),[we,Te]=(0,r.useState)(!o),[Ee,De]=(0,r.useState)(null),[Oe,ke]=(0,r.useState)(!0),[Ae,je]=(0,r.useState)(!1),[Me,Ne]=(0,r.useState)(null),Pe=(0,r.useRef)({failures:0,down:!1}),[Fe,Ie]=(0,r.useState)(!1),[Le,Re]=(0,r.useState)(``),[ze,Be]=(0,r.useState)(null),[Ve,He]=(0,r.useState)(null),[Ue,We]=(0,r.useState)(null),Ge=(0,r.useRef)(new Set),[Ke,qe]=(0,r.useState)(!1),[Je,Ye]=(0,r.useState)(null),[Xe,Ze]=(0,r.useState)(null),Qe=(0,r.useRef)(0),$e=(0,r.useRef)(null);$e.current||=new AbortController,(0,r.useEffect)(()=>()=>$e.current.abort(),[]),(0,r.useEffect)(()=>{Cu(ve.current)},[b]);let M=(0,r.useMemo)(()=>{let e=[];for(let t of oe){e.push(t);for(let n of ce)n.anchorId===t.id&&e.push(...n.steps)}return e},[oe,ce]),et=(0,r.useMemo)(()=>{let e=ce.find(e=>e.streaming),t=e?M.findIndex(t=>t.id===e.anchorId):-1;if(t<0)return null;let n=t+1;for(;n<M.length&&M[n].aside;)n+=1;return n},[M,ce]),tt=(0,r.useMemo)(()=>et===null?M:M.slice(0,et),[M,et]),nt=(0,r.useRef)(null);nt.current=e=>{if(Pe.current.down)return;let t=ae(Pe.current.failures,e);Pe.current.failures=t.failures,t.stop&&(Pe.current.down=!0,O.configure({engine:`off`}),Ne({engine:k.voiceEngine??`browser`,...t.stop,dismissed:!1}))};let N=(0,r.useMemo)(()=>{let e=oe[Math.min(u,oe.length-1)]?.id,t=e?M.findIndex(t=>t.id===e):-1;return wl({speech:O,onChange:De,onNarration:e=>nt.current(e),startIndex:t>=0?t:u})},[O]);(0,r.useEffect)(()=>()=>N.dispose(),[N]),(0,r.useEffect)(()=>{N.setSteps(tt,{done:we&&et===null})},[N,tt,we,et]);let rt=Ae||Me?`off`:k.voiceEngine??`browser`;(0,r.useEffect)(()=>{O.configure({engine:rt,voiceId:k.voiceId||void 0,language:l})},[O,rt,k.voiceId,l]),(0,r.useEffect)(()=>{N.setRate(k.voiceRate??1)},[N,k.voiceRate]);let[it,at]=(0,r.useState)(null);(0,r.useEffect)(()=>{if(!o)return;let e=new AbortController;return Te(!1),E.follow({job:o},{signal:e.signal,onPartial:e=>se(t=>{let n=new Set(t.map(e=>e.id)),r=e.filter(e=>!n.has(e.id));return r.length?[...t,...r]:t}),onPreview:(e,t)=>at(e?.phase?{...e,elapsedMs:t?.elapsedMs??0,receivedAt:performance.now()}:null)}).then(e=>{let t=e?.board??e?.item?.board??e;t?.steps?.length&&se(ue.current.length?mt(t.steps,ue.current).steps:t.steps),at(null),Te(!0),h?.(e)}).catch(t=>{e.signal.aborted||(at(null),Ze(t),Te(!0))}),()=>e.abort()},[o]);let ot=(0,r.useRef)(!1);(0,r.useEffect)(()=>{!d||ot.current||!M.length||_e||(ot.current=!0,N.play())},[M.length,d,N,_e]),(0,r.useEffect)(()=>{_e&&M.length&&ge(!0)},[_e,M.length>0]);let st=()=>{ge(!1),me(!0)},ct=Ee?.index??0,[lt,ut]=(0,r.useState)(null);(0,r.useEffect)(()=>{ut(e=>Dl(M,ct,e))},[ct,M]);let dt=Math.max(0,M.findIndex(e=>e.id===lt)),ft=Ee?.status===`ended`&&we,pt=(0,r.useRef)(!1);(0,r.useEffect)(()=>{ft&&!pt.current&&(pt.current=!0,m?.()),ft||(pt.current=!1)},[ft]),(0,r.useEffect)(()=>{let e=e=>{Eu(e.target)||(e.key===` `?(e.preventDefault(),N.toggle()):e.key===`ArrowRight`?N.next():e.key===`ArrowLeft`?N.prev():T&&!he&&Tu(e)&&!e.repeat&&(e.preventDefault(),be.current?be.current.press(e.timeStamp):(xe.current={down:e.timeStamp,up:null},fe(!0))))},t=e=>{!T||!Tu(e)||(xe.current?xe.current.up=e.timeStamp:be.current?.release(e.timeStamp))};return window.addEventListener(`keydown`,e),window.addEventListener(`keyup`,t),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`keyup`,t)}},[N,T,he]),(0,r.useEffect)(()=>{let e=xe.current;!j||!e||!be.current||(xe.current=null,be.current.press(e.down),e.up!==null&&be.current.release(e.up))},[j]);let gt=(0,r.useCallback)(e=>{for(let t=Math.min(e,M.length-1);t>=0;--t)if(!M[t]?.aside)return M[t]?.id;return oe[0]?.id},[M,oe]),_t=(0,r.useCallback)(e=>{let t=Math.max(0,Math.min(e,M.length-1)),n=M[t]?.aside?gt(t):M[t]?.id;return Math.max(0,oe.findIndex(e=>e.id===n))},[M,oe,gt]);(0,r.useEffect)(()=>{Ee&&p?.(_t(ct))},[ct]),(0,r.useEffect)(()=>{if(!ze)return;let e=tt.findIndex(e=>e.id===ze);e>=0&&(Be(null),N.seek(e))},[tt,ze,N]);async function vt({endpoint:t,payload:n,kind:r,label:i,anchorIndex:a,onStarted:s,onAdded:c,onFailed:l,onResult:u}){let d=gt(a);Qe.current+=1;let p=`a${Qe.current}`,m=$e.current.signal,h=!1,g=e=>{let t=Vu({id:p,kind:r,label:i,anchorId:d,steps:e,streaming:!0});le(e=>e.map(e=>e.id===p?{...e,steps:t.steps}:e)),!h&&t.steps.length&&(h=!0,Ie(!1),Be(t.steps[0].id))},_=!1;Ze(null);try{let{job:l}=await E.call(t,{...n,scope:f(e,o),stepIndex:_t(a),anchorStepId:d});s?.(),le(e=>[...e,Vu({id:p,kind:r,label:i,anchorId:d,streaming:!0})]),_=!0,c?.(p);let h=[],v=await E.follow({job:l},{signal:m,onPartial:e=>{h.push(...e),g([...h])}});g(v?.steps?.length?v.steps:h),le(e=>e.map(e=>e.id===p?{...e,streaming:!1,serverId:v?.aside?.id}:e)),Ie(!1),u?.(v,p)}catch(e){if(m.aborted)return;le(e=>e.flatMap(e=>e.id===p?e.steps.length?[{...e,streaming:!1}]:[]:[e])),Ie(!1),r===`question`&&!h&&Re(e=>e||i),_||l?.(),Ze(e)}}async function yt(e){e?.preventDefault();let t=Le.trim();t&&(Se.current&&ye.current?.blur(),Se.current=!1,N.pause(),Ie(`answering`),await vt({endpoint:`lesson/ask`,payload:{question:t},kind:`question`,label:t,anchorIndex:ct,onStarted:()=>Re(``)}))}async function bt(e){qe(!1),N.pause(),Ie(`reexplaining`),await vt({endpoint:`lesson/reexplain`,payload:{style:e},kind:`reexplain`,label:D(`reexplainedAs`,{style:A(e)}),anchorIndex:Math.max(0,Math.min(ct,M.length-1))})}async function xt(e,t){Ie(`correcting`),await vt({endpoint:`lesson/correct`,payload:{item:{prompt:e.prompt,answer:e.answer},response:t.response,grade:{feedback:t.feedback,errorTag:t.errorTag,wrongStep:t.wrongStep,why:t.why,fix:t.fix}},kind:`correction`,label:re(t.errorTag),anchorIndex:ct,onAdded:t=>We({checkId:e.id,asideId:t}),onFailed:()=>N.answer(e.id)})}(0,r.useEffect)(()=>{!Ue||!ce.some(e=>e.id===Ue.asideId)||(We(null),N.answer(Ue.checkId))},[ce,Ue,N]);function St(e){N.pause(),qe(!1),Ye({index:Math.max(0,Math.min(e,M.length-1)),note:``})}function Ct(t){let n=M[t];if(!n?.aside)return n?{stepId:n.id}:null;let r=ce.find(e=>n.id.startsWith(`${e.id}_`));return!r||r.streaming?null:r.serverId&&e.kind===`lesson`?{stepId:n.id.slice(r.id.length+1),asideId:r.serverId}:{step:{id:n.id,say:n.say,ops:n.ops.map(({fixed:e,...t})=>t)}}}async function wt(e){if(e?.preventDefault(),!Je)return;let t=Ct(Je.index),n=Je.note.trim();Ye(null),t&&(N.pause(),Ie(`checking`),await vt({endpoint:`lesson/challenge`,payload:{target:t,note:n},kind:`challenge`,label:ie(n),anchorIndex:ct,onResult:(e,t)=>{le(r=>r.map(r=>r.id===t?{...r,label:ie(n,e?.verdict)}:r));let r=Array.isArray(e?.fixes)?e.fixes:[];r.length&&(e.target?.main?(ue.current.push(...r),se(e=>mt(e,r).steps)):e.target?.asideId?le(t=>t.map(t=>t.serverId===e.target.asideId?{...t,steps:mt(t.steps,ht(r,`${t.id}_`)).steps}:t)):le(e=>e.map(e=>({...e,steps:mt(e.steps,r).steps}))))}}))}function Tt(){N.pause(),fe(!0),setTimeout(()=>ye.current?.focus(),0)}let Et=_t(ct),Dt=(0,r.useMemo)(()=>Tl(oe,Et,c.length,Ee?.status===`ended`&&we),[oe,Et,c.length,Ee?.status,we]),Ot=(0,r.useMemo)(()=>El(M,Math.max(dt,ct),ce),[M,dt,ct,ce]);(0,r.useEffect)(()=>{let e=Ce.current;e&&(e.scrollTop=e.scrollHeight)},[Ot.length,j]);let P=Ee?.step,kt=Ee?.status===`check`?P?.check:null,At=(0,r.useMemo)(()=>el(P?.say),[P?.say]),jt=At[Math.min(Ee?.sentence??0,At.length-1)]??``;function Mt(t){He({checkId:kt?.id,result:t}),!(!y||e.kind!==`lesson`)&&E.call(`lesson/record`,{courseId:e.courseId,lessonId:e.lessonId,conceptIds:kt?.conceptIds??[],evidence:{kind:`check`,score:t.score,confidence:t.confidence,hintsUsed:t.hintsUsed,timeMs:t.timeMs,expectedMs:4e4,errorTag:t.errorTag},...P?.id&&!P.aside?{source:{kind:`check`,courseId:e.courseId,lessonId:e.lessonId,stepId:P.id},response:t.given??t.response??``}:{}}).catch(()=>void 0)}let Nt=Ee?.status??`idle`,Pt=(Nt===`buffering`||!M.length&&!we)&&!Xe,Ft=M.length+ +!we,It=ce.find(e=>e.streaming),Lt=Fe===`answering`||It?.kind===`question`?D(`answering`):Fe===`correcting`||It?.kind===`correction`?D(`correcting`):Fe===`checking`||It?.kind===`challenge`&&!It.steps.length?D(`checkingStep`):Fe===`reexplaining`||It?D(`generating`):M.length?D(`bufferingLesson`):D(`preparingLesson`),Rt=S(Pt&&!Fe&&!It&&!we,3e3)&&!!it,zt=Dt?Dt.filter(e=>e===`done`).length:0,Bt=!!It||!!Fe,Vt=kt?.kind===`work`&&Ve?.checkId===kt.id&&!Ve.result.correct&&!!Ve.result.response?.trim();function Ht(){if(kt){if(Vt){if(Ge.current.has(kt.id))return;Ge.current.add(kt.id),xt(kt,Ve.result);return}N.answer(kt.id)}}function Ut({replay:e}){Pe.current={failures:0,down:!1},Ne(null),je(!1),O.configure({engine:k.voiceEngine??`browser`}),e&&(Nt===`playing`||Nt===`paused`)&&N.seek(ct)}let Wt=Ae||!!Me,Gt=!Me||Me.dismissed?null:Me.engine===`cloud`?D(`voiceDownCloud`,{reason:Ll(D,Me)}):D(`voiceDownSystem`,{reason:Ll(D,Me)});return(0,i.jsxs)(`div`,{ref:ve,className:`aha-class`,"data-panel":j?`open`:`closed`,children:[(0,i.jsxs)(`div`,{className:`aha-classBar`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:0},children:[n?(0,i.jsx)(`span`,{className:`aha-crumb`,children:n}):null,(0,i.jsx)(`span`,{className:`aha-cardTitle`,children:t})]}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[x?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,title:D(`tourReplay`),"aria-label":D(`tourReplay`),onClick:()=>{N.pause(),ge(!0)},children:`?`}):null,typeof g==`function`?g({steps:M}):g]})]}),(0,i.jsxs)(`div`,{className:`aha-classBody`,children:[(0,i.jsxs)(`div`,{className:`aha-classMain`,children:[(0,i.jsxs)(`div`,{className:`aha-stage ${_??``}`,children:[(0,i.jsx)(xl,{steps:M,position:Ee?{index:Ee.index,op:Ee.op,progress:Ee.progress,now:Ee.now}:{index:0,op:0,progress:0},theme:ne,font:k.boardFont===`standard`?`standard`:`hand`,view:k.boardView===`pages`?`pages`:`canvas`,buffering:(Pt||!!Fe)&&!Rt,bufferingLabel:Lt,onInteract:()=>N.pause()}),Rt?(0,i.jsx)(Ru,{prep:it,label:Lt,first:!M.length,hand:k.boardFont!==`standard`}):null,kt?(0,i.jsxs)(`div`,{className:`aha-checkCard`,children:[(0,i.jsx)(`div`,{className:`aha-spread`,children:(0,i.jsx)(`b`,{children:D(`checkTitle`)})}),(0,i.jsx)(Nu,{item:kt,language:l,onResult:Mt,onContinue:Ht,continueLabel:Vt?D(`seeCorrection`):void 0,keyboard:!0})]}):null]}),Oe&&jt?(0,i.jsx)(`div`,{className:`aha-caption`,children:(0,i.jsx)(sl,{text:jt})}):(0,i.jsx)(`div`,{className:`aha-caption`}),(0,i.jsx)($,{error:Xe,style:{textAlign:`center`}}),Je?(0,i.jsxs)(`form`,{className:`aha-challengeBox`,onSubmit:wt,children:[(0,i.jsx)(`b`,{children:Je.index===ct?D(`challengeTitle`):D(`challengeTitleStep`,{n:Je.index+1,text:Hu(M[Je.index]?.say)})}),(0,i.jsx)(`textarea`,{className:`aha-textarea`,rows:2,autoFocus:!0,value:Je.note,placeholder:D(`challengePlaceholder`),onChange:e=>{let t=e.currentTarget.value;Ye(e=>e&&{...e,note:t})},onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&wt(e),e.key===`Escape`&&Ye(null)}}),(0,i.jsxs)(`div`,{className:`aha-challengeActions`,children:[(0,i.jsx)(ju,{onStart:()=>N.pause(),onText:e=>Ye(t=>t&&{...t,note:t.note.trim()?`${t.note.trimEnd()} ${e}`:e})}),(0,i.jsx)(`span`,{className:`aha-challengeHint`,children:D(`challengeHint`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>Ye(null),children:D(`cancel`)}),(0,i.jsx)(`button`,{type:`submit`,className:`aha-btn`,"data-kind":`primary`,disabled:!Ct(Je.index),children:D(`challengeSend`)})]})]}):null,Gt?(0,i.jsxs)(`div`,{className:`aha-voiceNote`,role:`status`,children:[(0,i.jsxs)(`span`,{className:`aha-voiceNoteText`,children:[`🔇 `,Gt]}),(0,i.jsxs)(`span`,{className:`aha-voiceNoteActions`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>Ut({replay:!0}),children:D(`retry`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>de(ee,`settings`),children:D(`openSettings`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>Ne(e=>e&&{...e,dismissed:!0}),title:D(`close`),"aria-label":D(`close`),children:`×`})]})]}):null,(0,i.jsxs)(`div`,{className:`aha-controls`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>N.prev(),title:D(`prevStep`),"aria-label":D(`prevStep`),children:`⏮`}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>N.toggle(),disabled:!M.length,"aria-label":D(Nt===`playing`?`pause`:`play`),children:[Nt===`playing`?`⏸`:`▶`,` `,D(Nt===`playing`?`pause`:`play`)]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>N.next(),title:D(`nextStep`),"aria-label":D(`nextStep`),children:`⏭`}),(0,i.jsx)(`span`,{className:`aha-tag`,children:D(`stepOf`,{current:Math.min(ct+1,Math.max(1,M.length)),total:Math.max(Ft,1)})}),(0,i.jsx)(`select`,{className:`aha-select`,style:{width:`auto`},value:Ee?.rate??1,onChange:e=>N.setRate(Number(e.currentTarget.value)),"aria-label":D(`speed`),children:zu.map(e=>(0,i.jsxs)(`option`,{value:e,children:[e,`×`]},e))}),(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":!Wt,onClick:()=>Me?Ut({replay:!1}):je(e=>!e),children:Wt?`🔇 ${D(`voiceOff`)}`:`🔊 ${D(`voiceOn`)}`}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"data-active":Oe,onClick:()=>ke(e=>!e),children:[`CC `,D(`captions`)]}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"data-tour":`raise`,onClick:Tt,disabled:!M.length,title:T?D(`raiseHandKey`):void 0,children:[`✋ `,D(`raiseHand`)]}),(0,i.jsxs)(`span`,{style:{position:`relative`},children:[(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"data-tour":`reexplain`,onClick:()=>qe(e=>!e),disabled:!M.length,children:[`🔄 `,D(`reexplain`)]}),Ke?(0,i.jsx)(`div`,{className:`aha-card`,style:{position:`absolute`,bottom:`110%`,left:0,zIndex:10,padding:6,gap:2,minWidth:140},children:Bu.map(([e,t])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,style:{justifyContent:`flex-start`},onClick:()=>bt(e),children:D(t)},e))}):null]}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"data-tour":`challenge`,"aria-expanded":!!Je,onClick:()=>Je?Ye(null):St(ct),disabled:!M.length||Bt,children:[`🧐 `,D(`challenge`)]}),j?null:(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"aria-expanded":!1,onClick:()=>fe(!0),children:[`📋 `,D(`showPanel`)]})]})]}),j?(0,i.jsxs)(`aside`,{className:`aha-panel`,"aria-label":D(`panelTitle`),children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`b`,{children:c.length?D(`lessonGoals`):D(`transcript`)}),(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:6},children:[c.length&&Dt?(0,i.jsxs)(`span`,{className:`aha-tag`,children:[zt,`/`,c.length]}):null,(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>fe(!1),title:D(`hidePanel`),"aria-label":D(`hidePanel`),children:`›`})]})]}),c.length?(0,i.jsx)(`ol`,{className:`aha-goals`,children:c.map((e,t)=>(0,i.jsxs)(`li`,{"data-state":Dt?.[t]??`plain`,children:[(0,i.jsx)(`span`,{className:`aha-goalMark`,"aria-hidden":`true`,children:Dt?.[t]===`done`?`✓`:t+1}),(0,i.jsx)(`span`,{children:e})]},t))}):null,c.length?(0,i.jsx)(`b`,{className:`aha-panelHead`,children:D(`transcript`)}):null,(0,i.jsx)(`div`,{ref:Ce,className:`aha-transcript`,role:`list`,children:Ot.map(e=>(0,i.jsxs)(`div`,{role:`listitem`,className:`aha-lineRow`,"data-aside":e.aside?`true`:void 0,children:[(0,i.jsxs)(`button`,{type:`button`,className:`aha-line`,"data-kind":e.kind,"data-current":e.stepIndex===ct?`true`:void 0,disabled:e.stepIndex<0,onClick:()=>N.seek(e.stepIndex),children:[e.kind===`question`?(0,i.jsx)(`span`,{className:`aha-lineTag`,children:`✋`}):e.kind===`reexplain`?(0,i.jsx)(`span`,{className:`aha-lineTag`,children:`🔄`}):e.kind===`correction`?(0,i.jsx)(`span`,{className:`aha-lineTag`,children:`✏️`}):e.kind===`challenge`?(0,i.jsx)(`span`,{className:`aha-lineTag`,children:`🧐`}):null,(0,i.jsx)(`span`,{className:`aha-lineText`,children:(0,i.jsx)(sl,{text:e.text})}),e.pending?(0,i.jsx)(Ml,{}):null]}),e.kind===`say`&&e.stepIndex>=0&&!Bt?(0,i.jsx)(`button`,{type:`button`,className:`aha-lineFlag`,title:D(`challenge`),"aria-label":D(`challengeStep`,{n:e.stepIndex+1}),onClick:()=>St(e.stepIndex),children:D(`challengeLine`)}):null]},e.key))}),(0,i.jsxs)(`form`,{className:`aha-askBox`,onSubmit:yt,children:[(0,i.jsx)(`textarea`,{ref:ye,className:`aha-textarea`,rows:2,value:Le,placeholder:D(`askPlaceholder`),disabled:!M.length,onChange:e=>Re(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing?yt(e):e.key===`Escape`&&e.currentTarget.blur()}}),(0,i.jsxs)(`div`,{className:`aha-askActions`,children:[(0,i.jsx)(ju,{ref:be,disabled:!M.length,keyHint:T?D(`talkKeyHint`):``,onStart:()=>N.pause(),onText:e=>{Se.current=!0,Re(t=>t.trim()?`${t.trimEnd()} ${e}`:e),ye.current?.focus()}}),(0,i.jsx)(`button`,{type:`submit`,className:`aha-btn`,"data-kind":`primary`,disabled:!Le.trim()||Bt,children:D(`ask`)})]})]})]}):null]}),he?(0,i.jsx)(jl,{root:ve,onDone:st}):null]})}let Wu=[[`explain`,`modeExplain`,`💡`],[`solve`,`modeSolve`,`🧮`],[`visualize`,`modeVisualize`,`📈`]];function Gu({draftMode:e,draftRequest:t,draftMaterials:n,token:a}){let{api:o,t:s}=v(),c=y(()=>o.call(`items/list`,{kind:`assist`}),[]),[l,u]=(0,r.useState)(Wu.some(([t])=>t===e)?e:`explain`),[d,f]=(0,r.useState)(t??``),[p,m]=(0,r.useState)(Array.isArray(n)?n:[]),[h,g]=(0,r.useState)(!1),[_,b]=(0,r.useState)(null),[S,C]=(0,r.useState)(null),w=x(a);async function T(e=d){let t=e.trim();if(!t)return;C(null);let n=_?.threadId??ye(`thd`);_?.stream&&!_.done&&o.cancel(_.stream);try{let{job:e}=await o.call(`assist/ask`,{mode:l,request:t,materialIds:p,threadId:_?.threadId,newThreadId:_?.threadId?void 0:n});b(r=>({threadId:n,turn:r?r.turn+1:0,stream:e,done:!1,steps:[],title:t.slice(0,80),language:void 0,key:`${n}:${Date.now()}`})),f(``)}catch(e){C(e)}}(0,r.useEffect)(()=>{w&&t&&T(t)},[]);async function E(e){C(null);try{let{item:t}=await o.call(`items/get`,{kind:`assist`,id:e}),n=t.turns.length-1;b({threadId:t.id,turn:n,stream:null,steps:t.turns[n]?.board?.steps??[],title:t.turns[n]?.request??t.title,language:t.language,key:`${t.id}:${n}:open`,opened:Date.now()})}catch(e){C(e)}}return(0,i.jsxs)(`div`,{className:`aha-page`,"data-wide":`true`,children:[(0,i.jsxs)(`div`,{className:`aha-split`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{minHeight:0},children:[_?(0,i.jsx)(Uu,{scope:{kind:`thread`,id:_.threadId,turn:_.turn},title:_.title,steps:_.steps,stream:_.stream,language:_.language,recordChecks:!1,reveal:_.opened,onStreamDone:e=>{b(t=>t?.stream?.id===_.stream?.id?{...t,done:!0,turn:Number.isInteger(e?.turn)?e.turn:t.turn}:t),c.reload()}},_.key):(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:s(`assistTitle`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:s(`assistHint`)})]}),(0,i.jsxs)(`div`,{className:`aha-composer`,children:[(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:6},children:Wu.map(([e,t,n])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"data-active":l===e,onClick:()=>u(e),children:[n,` `,s(t)]},e))}),(0,i.jsx)(`textarea`,{value:d,placeholder:s(_?`followUp`:`assistPlaceholder`),onChange:e=>f(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&T()}}),(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>g(!0),children:p.length?s(`attached`,{count:p.length}):s(`attach`)}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[_?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>b(null),children:s(`newThread`)}):null,(0,i.jsx)(ju,{onText:e=>f(t=>t.trim()?`${t.trimEnd()} ${e}`:e)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:!d.trim(),onClick:()=>T(),children:s(`ask`)})]})]})]}),(0,i.jsx)($,{error:S})]}),(0,i.jsxs)(`aside`,{className:`aha-col`,style:{minHeight:0,overflow:`auto`},children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:s(`history`)}),c.loading&&!c.value?(0,i.jsx)(Ml,{}):(c.value??[]).map(e=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-option`,onClick:()=>E(e.id),children:[(0,i.jsx)(`b`,{children:e.title}),(0,i.jsx)(`small`,{children:new Date(e.updatedAt).toLocaleString()})]},e.id))]})]}),h?(0,i.jsx)(Vl,{selected:p,onChange:m,onClose:()=>g(!1)}):null]})}Object.freeze({pInit:.2,pTransit:.15,pSlip:.1,pGuess:.2}),Object.freeze([{id:`struggling`,min:0},{id:`learning`,min:.4},{id:`proficient`,min:.7},{id:`mastered`,min:.9}]);let Ku=(e,t,n)=>Math.min(n,Math.max(t,e));function qu(e){return Math.round(Ku(Number(e?.pKnown)||0,0,1)*100)}Object.freeze([`none`,`weak`,`learning`,`proficient`,`mastered`]);function Ju(e){return!e||!e.attempts&&!e.history?.length?`none`:Yu(qu(e))}function Yu(e){let t=Number(e);return Number.isFinite(t)?t>=90?`mastered`:t>=70?`proficient`:t>=40?`learning`:`weak`:`none`}let Xu=Object.freeze({none:`stageNone`,weak:`stageWeak`,learning:`stageLearning`,proficient:`stageProficient`,mastered:`stageMastered`});function Zu(e){let t=e.filter(Boolean),n=t.length?t.reduce((e,t)=>e+(Number(t.score)||0),0)/t.length:0,r=0,i=0;for(let e of t)r=e.correct?r+1:0,i=Math.max(i,r);return{answered:t.length,correct:t.filter(e=>e.correct).length,accuracy:n,stars:n>=.9?3:n>=.6?2:1,streak:r,bestStreak:i}}function Qu(e,{lessonId:t,unitId:n,nextLessonId:r}={}){let i=e?.action;return i===`remediate`?t?{kind:`relearn`,lessonId:t}:{kind:`review`}:i===`review`?{kind:`review`}:i===`challenge`&&n?{kind:`quiz`,unitId:n}:r?{kind:`next`,lessonId:r}:{kind:`course`}}function $u(e,t){let n=(e.concepts??[]).map(e=>t?.concepts?.[e.id]);if(!n.some(e=>Ju(e)!==`none`))return{stage:`none`,percent:0};let r=Math.round(n.reduce((e,t)=>e+qu(t??{pKnown:.2}),0)/n.length);return{stage:Yu(r),percent:r}}function ed(e,t,{now:n=Date.now()}={}){let r=N(e),i=Object.entries(t?.reviews??{}).filter(([e,t])=>r.has(e)&&Date.parse(t?.dueAt)<=n).length;if(i)return{kind:`review`,count:i};let a=[...r.values()].map(e=>({concept:e,state:t?.concepts?.[e.id]})).filter(e=>Ju(e.state)===`weak`).sort((e,t)=>e.state.pKnown-t.state.pKnown)[0];if(a)return{kind:`practice`,lessonId:a.concept.lessonId,concept:a.concept.name};let o=at(e,t);return o?{kind:`lesson`,lessonId:o.lesson.id,title:o.lesson.title}:{kind:`done`,unitId:e.units?.at(-1)?.id??null}}let td=[[`outline`,`tabOutline`],[`practice`,`tabPractice`],[`sheets`,`tabSheets`],[`cards`,`tabCards`],[`projects`,`tabProjects`],[`progress`,`tabProgress`]];function nd({courseId:e,tab:t=`outline`}){let{api:n,t:a,navigate:o,toast:s}=v(),c=y(()=>n.call(`course/get`,{courseId:e}),[e]),[l,u]=(0,r.useState)(t),[d,f]=(0,r.useState)(!1),[p,m]=(0,r.useState)(!1),[g,_]=(0,r.useState)(!1),b=c.value?.course,x=c.value?.progress,S=(0,r.useMemo)(()=>b?.units?it(b,x):null,[b,x]),C=(0,r.useMemo)(()=>b?.units?at(b,x):null,[b,x]),w=(0,r.useMemo)(()=>b?.units?ed(b,x):null,[b,x]);if(c.loading&&!c.value)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Ml,{label:a(`loading`)})});if(!b)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)($,{error:c.error})});if(b.status!==`ready`)return o(`craft`,{courseId:e},{replace:!0}),null;let T=e=>qu(x?.concepts?.[e]??{pKnown:.2}),E=e=>x?.lessons?.[e]?.status??`new`;async function D(t){m(!1);try{let r=await n.call(`course/export`,{courseId:e,includeProgress:t});h(r.fileName,r.json)}catch(e){s(Ll(a,e))}}return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4,flex:1,minWidth:260},children:[(0,i.jsxs)(`div`,{className:`aha-row`,style:{flexWrap:`nowrap`},children:[(0,i.jsx)(`span`,{style:{fontSize:30},children:b.emoji}),(0,i.jsx)(`h2`,{className:`aha-title`,children:b.title})]}),b.subtitle?(0,i.jsx)(`p`,{className:`aha-subtitle`,children:b.subtitle}):null,S?(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4,maxWidth:480},children:[(0,i.jsx)(Nl,{value:S.percent}),(0,i.jsxs)(`span`,{className:`aha-hint`,children:[a(`lessonsCount`,S),` · `,a(`minutesLeft`,{minutes:S.minutesLeft})]})]}):null]}),(0,i.jsxs)(`div`,{className:`aha-row`,style:{position:`relative`},children:[C?(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>o(`lesson`,{courseId:e,lessonId:C.lesson.id}),children:[(0,i.jsx)(pe,{name:`play`,size:14}),a(`continueLearning`)]}):null,(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>f(e=>!e),children:`⋯`}),d?(0,i.jsxs)(`div`,{className:`aha-card`,style:{position:`absolute`,right:0,top:`110%`,zIndex:20,padding:6,gap:2,minWidth:180},onMouseLeave:()=>f(!1),children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,style:{justifyContent:`flex-start`},onClick:()=>{f(!1),o(`craft`,{courseId:e,edit:!0})},children:a(`editOutline`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,style:{justifyContent:`flex-start`},onClick:()=>{f(!1),o(`craft`,{courseId:e,edit:!0,add:!0})},children:a(`addMaterials`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,style:{justifyContent:`flex-start`},onClick:()=>{f(!1),m(!0)},children:a(`exportPack`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,style:{justifyContent:`flex-start`},onClick:async()=>{f(!1),await n.call(`course/update`,{courseId:e,archived:!b.archived}),c.reload()},children:b.archived?a(`unarchive`):a(`archive`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,style:{justifyContent:`flex-start`,color:`var(--aha-bad)`},onClick:()=>{f(!1),_(!0)},children:a(`deleteCourse`)})]}):null]})]}),w?(0,i.jsx)(rd,{step:w,courseId:e}):null,(0,i.jsx)(`div`,{className:`aha-tabs`,children:td.map(([e,t])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-tab`,"data-active":l===e,onClick:()=>u(e),children:a(t)},e))}),l===`outline`?(0,i.jsx)(`div`,{className:`aha-tree`,children:b.units.map((t,n)=>(0,i.jsxs)(`div`,{className:`aha-unit`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`b`,{children:[a(`unitN`,{n:n+1}),` · `,t.title]}),(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:4},children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>o(`sheet`,{courseId:e,unitId:t.id}),children:a(`unitSheet`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>o(`practice`,{courseId:e,unitId:t.id}),children:a(`unitQuiz`)})]})]}),t.summary?(0,i.jsx)(`p`,{className:`aha-hint`,children:t.summary}):null,t.lectures.map((t,n)=>(0,i.jsxs)(`div`,{className:`aha-lecture`,children:[(0,i.jsxs)(`div`,{className:`aha-hint`,style:{fontWeight:600},children:[a(`lectureN`,{n:n+1}),` · `,t.title]}),t.lessons.map(t=>(0,i.jsxs)(`div`,{className:`aha-lesson`,children:[(0,i.jsx)(`span`,{className:`aha-dot`,"data-state":E(t.id)}),(0,i.jsx)(`span`,{style:{flex:1,cursor:`pointer`},onClick:()=>o(`lesson`,{courseId:e,lessonId:t.id}),title:t.summary,children:t.title}),t.kind===`remedial`?(0,i.jsx)(`span`,{className:`aha-tag`,children:a(`remedial`)}):null,t.depth?(0,i.jsx)(`span`,{className:`aha-depth`,"data-depth":t.depth,title:a(`depthTitle`),children:a(`depth_${t.depth}`)}):null,(0,i.jsx)(`span`,{className:`aha-hint`,children:a(`estMinutes`,{minutes:t.estMinutes})}),(0,i.jsx)(id,{lesson:t,progress:x}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>o(`lesson`,{courseId:e,lessonId:t.id}),children:a(`learn`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>o(`practice`,{courseId:e,lessonId:t.id}),children:a(`practice`)})]},t.id))]},t.id))]},t.id))}):null,l===`outline`&&b.sources?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:a(`courseSources`)}),(0,i.jsx)(Ul,{sources:b.sources})]}):null,l===`practice`?(0,i.jsxs)(`div`,{className:`aha-col`,children:[(0,i.jsx)(`div`,{className:`aha-row`,children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>o(`practice`,{courseId:e,review:!0}),children:a(`startReview`)})}),b.units.map((t,n)=>(0,i.jsxs)(`div`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`b`,{children:[a(`unitN`,{n:n+1}),` · `,t.title]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>o(`practice`,{courseId:e,unitId:t.id}),children:a(`unitQuiz`)})]}),(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:6},children:t.lectures.flatMap(e=>e.lessons).map(t=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,onClick:()=>o(`practice`,{courseId:e,lessonId:t.id}),children:t.title},t.id))})]},t.id))]}):null,l===`sheets`?(0,i.jsx)(`div`,{className:`aha-grid`,children:b.units.map((t,n)=>(0,i.jsxs)(`div`,{className:`aha-card`,"data-click":`true`,onClick:()=>o(`sheet`,{courseId:e,unitId:t.id}),children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:a(`unitN`,{n:n+1})}),(0,i.jsx)(`b`,{children:t.title}),(0,i.jsx)(`span`,{className:`aha-tag`,children:c.value.ready.sheets.includes(t.id)?a(`open`):a(`generate`)})]},t.id))}):null,l===`cards`?(0,i.jsxs)(`div`,{className:`aha-card`,children:[(0,i.jsx)(`p`,{children:a(`cardsTitle`)}),(0,i.jsx)(`div`,{className:`aha-row`,children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>o(`cards`,{courseId:e}),children:a(`open`)})})]}):null,l===`projects`?b.projects?.length?(0,i.jsx)(`div`,{className:`aha-grid`,children:b.projects.map(t=>(0,i.jsxs)(`div`,{className:`aha-card`,"data-click":`true`,onClick:()=>o(`project`,{courseId:e,projectId:t.id}),children:[(0,i.jsx)(`b`,{children:t.title}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t.brief.slice(0,160)}),(0,i.jsx)(`span`,{className:`aha-tag`,children:x?.projects?.[t.id]?.status===`passed`?`✔`:t.kind})]},t.id))}):(0,i.jsx)(Rl,{children:a(`empty`)}):null,l===`progress`?(0,i.jsxs)(`div`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:a(`conceptMastery`)}),(0,i.jsx)(`div`,{className:`aha-col`,style:{gap:4},children:et(b).flatMap(({lesson:e})=>e.concepts.map(t=>({concept:t,lesson:e}))).map(({concept:e,lesson:t})=>{let n=x?.concepts?.[e.id],r=Ju(n);return(0,i.jsxs)(`div`,{className:`aha-spread`,style:{padding:`3px 0`,borderBottom:`1px solid var(--aha-border)`},children:[(0,i.jsxs)(`span`,{children:[e.name,` `,(0,i.jsxs)(`span`,{className:`aha-hint`,children:[`· `,t.title]})]}),(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:8},children:[n?.misconceptions?.length?(0,i.jsxs)(`span`,{className:`aha-tag`,title:n.misconceptions.join(`
|
|
270
|
+
`),children:[`⚠ `,n.misconceptions.length]}):null,(0,i.jsx)(`span`,{className:`aha-level`,"data-level":r,children:a(Xu[r])}),(0,i.jsx)(Gl,{value:T(e.id),stage:r,label:a(Xu[r])}),(0,i.jsx)(`span`,{className:`aha-hint`,style:{width:36,textAlign:`right`},children:r===`none`?`—`:`${T(e.id)}%`})]})]},e.id)})})]}):null,p?(0,i.jsx)(Fl,{title:a(`exportPack`),onClose:()=>m(!1),footer:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>D(!1),children:a(`exportPack`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>D(!0),children:a(`exportWithProgress`)})]}),children:(0,i.jsx)(`p`,{className:`aha-hint`,children:b.title})}):null,g?(0,i.jsx)(Il,{danger:!0,text:a(`deleteConfirm`,{title:b.title}),onCancel:()=>_(!1),onConfirm:async()=>{await n.call(`course/remove`,{courseId:e}),o(`courses`,{},{replace:!0})}}):null]})}function rd({step:e,courseId:t}){let{t:n,navigate:r}=v(),a={review:[n(`nextStepReview`,{count:e.count}),n(`startReview`),()=>r(`practice`,{courseId:t,review:!0})],practice:[n(`nextStepWeak`,{concept:e.concept}),n(`practiceThis`),()=>r(`practice`,{courseId:t,lessonId:e.lessonId})],lesson:[n(`nextStepLesson`,{title:e.title}),n(`continueLearning`),()=>r(`lesson`,{courseId:t,lessonId:e.lessonId})],done:[n(`nextStepDone`),n(`unitQuiz`),e.unitId?()=>r(`practice`,{courseId:t,unitId:e.unitId}):null]}[e.kind];if(!a)return null;let[o,s,c]=a;return(0,i.jsxs)(`div`,{className:`aha-card aha-nextStep`,"data-kind":e.kind,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:2,flex:1,minWidth:200},children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:n(`nextStepTitle`)}),(0,i.jsx)(`b`,{children:o})]}),c?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:c,children:s}):null]})}function id({lesson:e,progress:t}){let{t:n}=v(),{stage:r,percent:a}=$u(e,t);return(0,i.jsx)(Gl,{value:a,stage:r,label:n(Xu[r])})}let ad=[[`all`,`filterAll`],[`active`,`filterActive`],[`done`,`filterDone`],[`archived`,`filterArchived`]];function od(){let{api:e,t,navigate:n,toast:a}=v(),o=y(()=>e.call(`course/list`),[]),[s,c]=(0,r.useState)(`all`),[l,u]=(0,r.useState)(``),[d,f]=(0,r.useState)(null),p=(0,r.useRef)(null),m=(o.value??[]).filter(e=>s===`archived`?e.archived:e.archived?!1:s===`active`?e.status!==`ready`||e.progress.percent<100:s!==`done`||e.status===`ready`&&e.progress.percent>=100).filter(e=>!l.trim()||`${e.title} ${e.subtitle}`.toLowerCase().includes(l.trim().toLowerCase()));async function h(r){f(null);try{let i=await r.text(),o=await e.call(`course/import`,{json:i});a(t(`courseReady`)),n(`course`,{courseId:o.id})}catch(e){f(e)}}return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:t(`coursesTitle`)}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>p.current?.click(),children:t(`importPack`)}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>n(`home`),children:[`+ `,t(`modeCourse`)]}),(0,i.jsx)(`input`,{ref:p,type:`file`,accept:`.json,application/json`,hidden:!0,onChange:e=>{let t=e.currentTarget.files?.[0];t&&h(t),e.currentTarget.value=``}})]})]}),(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:6},children:ad.map(([e,n])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":s===e,onClick:()=>c(e),children:t(n)},e))}),(0,i.jsx)(`input`,{className:`aha-input`,style:{maxWidth:260},value:l,placeholder:t(`searchCourses`),onChange:e=>u(e.currentTarget.value)})]}),(0,i.jsx)($,{error:d??o.error}),o.loading&&!o.value?(0,i.jsx)(Ml,{label:t(`loading`)}):m.length?(0,i.jsx)(`div`,{className:`aha-grid`,children:m.map(e=>(0,i.jsxs)(`div`,{className:`aha-card`,"data-click":`true`,onClick:()=>n(e.status===`ready`?`course`:`craft`,{courseId:e.id}),children:[(0,i.jsxs)(`div`,{className:`aha-row`,style:{flexWrap:`nowrap`},children:[(0,i.jsx)(`span`,{style:{fontSize:26},children:e.emoji}),(0,i.jsx)(`span`,{className:`aha-cardTitle`,children:e.title})]}),e.subtitle?(0,i.jsx)(`p`,{className:`aha-hint`,children:e.subtitle}):null,e.status===`ready`?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Nl,{value:e.progress.percent}),(0,i.jsxs)(`span`,{className:`aha-hint`,children:[t(`lessonsCount`,e.progress),e.next?` · ${t(`nextUp`,{title:e.next.title})}`:``]})]}):(0,i.jsx)(`span`,{className:`aha-tag`,children:e.status===`intake`?t(`statusIntake`):t(`statusBlueprint`)})]},e.id))}):(0,i.jsx)(Rl,{children:t(`noCourses`)})]})}let sd=Object.freeze([{maxWidth:210,font:16,line:22,padX:16,padY:11},{maxWidth:220,font:14.5,line:20,padX:14,padY:9},{maxWidth:210,font:13.5,line:19,padX:12,padY:8},{maxWidth:250,font:13.5,line:19,padX:12,padY:7}]),cd=Object.freeze({x:56,y:10,unit:18,meta:20}),ld=/[⺀-]/u;function ud(e,t){let n=0;for(let r of String(e??``))n+=ld.test(r)?t:r===` `?t*.3:t*.58;return n}function dd(e,t,n){let r=sd[t],i=r.maxWidth-r.padX*2-12,a=ud(e,r.font),o=Math.max(1,Math.ceil(a/i));return{w:Math.ceil(Math.min(r.maxWidth,Math.max(56,a+r.padX*2+12))),h:Math.ceil(o*r.line+r.padY*2+(n?cd.meta:0))}}function fd(e){let t=[],n=[],r={key:`root`,title:e?.title??``,children:(e?.units??[]).map(e=>({key:e.key,title:e.title,children:(e.lectures??[]).map(e=>({key:e.key,title:e.title,children:(e.lessons??[]).map(e=>({key:e.key,title:e.title,meta:e.meta??null,children:[]}))}))}))},i=new Map,a=[0,0,0,0],o=(e,t)=>{let n=dd(e.title,t,!!e.meta);i.set(e,n),a[t]=Math.max(a[t],n.w);for(let n of e.children)o(n,t+1)};o(r,0);let s=[0];for(let e=1;e<4;e+=1)s[e]=s[e-1]+a[e-1]+cd.x;let c=0,l=[-1/0,-1/0,-1/0,-1/0],u=`root`,d=(e,r)=>{let{w:a,h:o}=i.get(e),f;if(!e.children.length)f=c+o/2,c+=o+cd.y;else{let t=e.children.map((e,t)=>(r===0&&t>0&&(c+=cd.unit),d(e,r+1)));f=(t[0].centre+t[t.length-1].centre)/2;for(let t of e.children)n.push({from:e.key,to:t.key})}let p=f-o/2;return p<l[r]+cd.y&&(p=l[r]+cd.y),l[r]=p+o,c=Math.max(c,p+o+cd.y),t.push({key:e.key,level:r,x:s[r],y:p,w:a,h:o,title:e.title,meta:e.meta??null}),(e.key!==`root`||!e.children.length)&&(u=pd(e)),{centre:p+o/2}};d(r,0);let f=Math.max(...t.map(e=>e.x+e.w)),p=Math.max(...t.map(e=>e.y+e.h)),m=new Map,h=0,g=e=>{m.set(e.key,h++),e.children.forEach(g)};return g(r),t.sort((e,t)=>m.get(e.key)-m.get(t.key)),{nodes:t,links:n,width:f,height:p,last:u}}function pd(e){let t=e;for(;t.children.length;)t=t.children[t.children.length-1];return t.key}function md(e,t=``){return{title:e?.title||t,units:(e?.units??[]).map((e,t)=>({key:`u${t}`,title:e.title,lectures:(e.lectures??[]).map((e,n)=>({key:`u${t}.${n}`,title:e.title||`…`,lessons:(e.lessons??[]).map((e,r)=>({key:`u${t}.${n}.${r}`,title:typeof e==`string`?e:e?.title??``}))}))}))}}function hd(e,t){let n=e.x+e.w,r=e.y+e.h/2,i=t.x,a=t.y+t.h/2,o=(n+i)/2;return`M${n} ${r} C${o} ${r} ${o} ${a} ${i} ${a}`}function gd({tree:e,live:t=!1,onPick:n,renderMeta:a}){let{t:o}=v(),s=(0,r.useMemo)(()=>fd(e),[e]),c=(0,r.useMemo)(()=>new Map(s.nodes.map(e=>[e.key,e])),[s]),l=(0,r.useRef)(null),[u,d]=(0,r.useState)({width:0,height:0}),[f,p]=(0,r.useState)({x:20,y:20,k:1,animate:!1}),[m,h]=(0,r.useState)(!0),g=(0,r.useRef)({size:u,map:s,pointers:new Map,drag:null});g.current.size=u,g.current.map=s,(0,r.useLayoutEffect)(()=>{let e=l.current;if(!e)return;let t=()=>d(t=>t.width===e.clientWidth&&t.height===e.clientHeight?t:{width:e.clientWidth,height:e.clientHeight});t();let n=typeof ResizeObserver==`function`?new ResizeObserver(t):null;return n?.observe(e),()=>n?.disconnect()},[]);let _=()=>({width:g.current.map.width,height:g.current.map.height}),y=(e,{animate:t=!1,manual:n=!1}={})=>{n&&h(!1),p(n=>({...uc(typeof e==`function`?e(n):e,g.current.size,_(),60),animate:t}))},b=(e=!0)=>y(cc(g.current.size,{x:0,y:-30,width:_().width,height:_().height+30},{margin:20,maxZoom:1}),{animate:e});(0,r.useLayoutEffect)(()=>{if(!u.width||!u.height)return;if(!t){b(!1);return}if(!m)return;let e=c.get(s.last);e&&p(t=>{let n=Math.min(1,Math.max(.55,(u.width-40)/Math.max(1,s.width))),r=Math.min(20,u.width-20-(e.x+e.w)*n),i=(e.y+e.h)*n,a=Math.min(50,u.height-40-i);return t.k===n&&t.x===r&&t.y===a?t:{x:r,y:a,k:n,animate:!0}})},[s,t,m,u.width,u.height]),(0,r.useEffect)(()=>{let e=l.current;if(!e)return;let t=t=>{t.preventDefault();let n=e.getBoundingClientRect(),r=dc(t,n.height);t.ctrlKey||t.metaKey?y(e=>sc(e,t.clientX-n.left,t.clientY-n.top,fc(r.y)),{manual:!0}):y(e=>({...e,x:e.x-(t.shiftKey?r.y:r.x),y:e.y-(t.shiftKey?0:r.y)}),{manual:!0})};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[]);let x=e=>{e.pointerType===`mouse`&&e.button!==0||e.target.closest?.(`.aha-mapBar`)||(g.current.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),g.current.drag||(g.current.drag={x:e.clientX,y:e.clientY,moved:!1}))},S=e=>{let{pointers:t,drag:n}=g.current,r=t.get(e.pointerId);if(!r||!n)return;let i={x:e.clientX,y:e.clientY};if(t.size===1){if(!n.moved&&Math.hypot(i.x-n.x,i.y-n.y)<5)return;n.moved||l.current?.setPointerCapture?.(e.pointerId),n.moved=!0,t.set(e.pointerId,i),y(e=>({...e,x:e.x+i.x-r.x,y:e.y+i.y-r.y}),{manual:!0});return}let a=[...t.entries()].find(([t])=>t!==e.pointerId)?.[1];if(t.set(e.pointerId,i),!a)return;let o=l.current.getBoundingClientRect(),s={x:(r.x+a.x)/2,y:(r.y+a.y)/2,d:Math.hypot(r.x-a.x,r.y-a.y)},c={x:(i.x+a.x)/2,y:(i.y+a.y)/2,d:Math.hypot(i.x-a.x,i.y-a.y)};n.moved=!0,y(e=>{let t=sc(e,s.x-o.left,s.y-o.top,c.d/Math.max(1,s.d));return{...t,x:t.x+c.x-s.x,y:t.y+c.y-s.y}},{manual:!0})},C=e=>{let t=g.current.drag?.moved;if(g.current.pointers.delete(e.pointerId),g.current.pointers.size||(g.current.drag=null),!t&&n){let t=e.target.closest?.(`[data-pick]`)?.dataset.pick;t&&n(t)}},w=e=>y(t=>sc(t,g.current.size.width/2,g.current.size.height/2,e),{animate:!0,manual:!0});return(0,i.jsxs)(`div`,{className:`aha-map`,children:[(0,i.jsx)(`div`,{ref:l,className:`aha-mapView`,onPointerDown:x,onPointerMove:S,onPointerUp:C,onPointerCancel:C,onDoubleClick:()=>b(),children:(0,i.jsxs)(`div`,{className:`aha-mapWorld`,style:{width:s.width,height:s.height,transform:`translate(${f.x}px, ${f.y}px) scale(${f.k})`,transition:f.animate?`transform .45s ease`:`none`},children:[(0,i.jsx)(`svg`,{className:`aha-mapLinks`,width:s.width,height:s.height,"aria-hidden":`true`,children:s.links.map(e=>{let t=c.get(e.from),n=c.get(e.to);return t&&n?(0,i.jsx)(`path`,{d:hd(t,n)},`${e.from}>${e.to}`):null})}),s.nodes.map(e=>(0,i.jsxs)(`div`,{className:`aha-mapNode`,"data-level":e.level,"data-pick":n&&e.level===3?e.key:void 0,style:{left:e.x,top:e.y,width:e.w,minHeight:e.h},title:n&&e.level===3?o(`mapPick`):void 0,children:[(0,i.jsx)(`span`,{className:`aha-mapTitle`,children:e.title}),e.meta&&a?(0,i.jsx)(`span`,{className:`aha-mapMeta`,children:a(e.meta)}):null]},e.key))]})}),(0,i.jsxs)(`div`,{className:`aha-mapBar`,role:`toolbar`,"aria-label":o(`mapTools`),children:[t&&!m?(0,i.jsx)(`button`,{type:`button`,className:`aha-mapFollow`,onClick:()=>h(!0),children:o(`mapFollow`)}):null,(0,i.jsx)(`button`,{type:`button`,"aria-label":o(`canvasZoomOut`),title:o(`canvasZoomOut`),onClick:()=>w(1/ac),children:`−`}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-mapZoom`,title:o(`canvasZoomReset`),onClick:()=>y(e=>({...sc(e,g.current.size.width/2,g.current.size.height/2,1/e.k)}),{animate:!0,manual:!0}),children:[Math.round(f.k*100),`%`]}),(0,i.jsx)(`button`,{type:`button`,"aria-label":o(`canvasZoomIn`),title:o(`canvasZoomIn`),onClick:()=>w(ac),children:`+`}),(0,i.jsx)(`button`,{type:`button`,title:o(`canvasFit`),onClick:()=>{h(!1),b()},children:o(`canvasFitShort`)})]})]})}let _d=[[`intensive`,`paceIntensive`,`paceIntensiveHint`],[`balanced`,`paceBalanced`,`paceBalancedHint`],[`relaxed`,`paceRelaxed`,`paceRelaxedHint`]],vd=[[`auto`,`sizeAuto`,`sizeAutoHint`],[`short`,`sizeShort`,`sizeShortHint`],[`standard`,`sizeStandard`,`sizeStandardHint`],[`full`,`sizeFull`,`sizeFullHint`]],yd=[60,120,180,300,420,600];function bd({jobId:e,courseId:t,edit:n=!1,add:a=!1}){let{api:o,t:s,navigate:c}=v(),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(`questions`);return(0,r.useEffect)(()=>{if(!e||t)return;let n=new AbortController;return o.follow({job:{id:e,status:`running`}},{signal:n.signal,onProgress:e=>f(e?.label===`research`?`research`:`questions`)}).then(e=>c(`craft`,{courseId:e.courseId},{replace:!0})).catch(e=>{n.signal.aborted||u(e)}),()=>n.abort()},[e,t]),t?(0,i.jsx)(xd,{courseId:t,edit:n,add:a}):(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:s(`craftQuestionsTitle`)}),l?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)($,{error:l}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>c(`home`),children:s(`back`)})]}):(0,i.jsx)(Ml,{label:s(d===`research`?`researching`:`thinkingQuestions`)})]})}function xd({courseId:e,edit:t,add:n}){let{api:a,t:o,navigate:s}=v(),c=y(()=>a.call(`course/get`,{courseId:e}),[e]),l=b(),u=c.value?.course;return(0,r.useEffect)(()=>{let e=c.value?.jobs?.questions??c.value?.jobs?.blueprint??c.value?.jobs?.confirm;!e||l.running||l.run(null,null,{existing:e}).then(()=>c.reload()).catch(()=>void 0)},[c.value]),(0,r.useEffect)(()=>{u?.status===`ready`&&!l.running&&!t&&s(`course`,{courseId:e},{replace:!0})},[u?.status]),c.loading&&!c.value?(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Ml,{label:o(`loading`)})}):c.error&&!c.value?(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)($,{error:c.error})}):u?u.status===`intake`?(0,i.jsx)(Sd,{course:u,intake:c.value.intake,job:l,onDone:()=>c.reload()}):(0,i.jsx)(Od,{course:u,proposal:c.value.proposal,progress:c.value.progress,boards:c.value.ready?.boards??[],job:l,onChange:()=>c.reload(),adding:n}):null}function Sd({course:e,intake:t,job:n,onDone:a}){let{t:o}=v(),s=t?.questionnaire?.questions??[],[c,l]=(0,r.useState)({}),[u,d]=(0,r.useState)(`balanced`),[f,p]=(0,r.useState)(`auto`),[m,h]=(0,r.useState)(180),[g,_]=(0,r.useState)(``),y=(e,t)=>l(n=>{let r=n[e.id]??{choice:[],other:``},i=e.multi?r.choice.includes(t)?r.choice.filter(e=>e!==t):[...r.choice,t]:[t];return{...n,[e.id]:{...r,choice:i}}});async function b(){try{await n.run(`course/intake`,{courseId:e.id,answers:c,timeline:u,size:f,weeklyMinutes:m,deadline:g||void 0}),a()}catch{}}return n.running?n.progress?.label===`questions`?(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:e.goal}),(0,i.jsx)(Pl,{progress:n.progress,label:o(`thinkingQuestions`),onCancel:n.cancel})]}):(0,i.jsx)(wd,{course:e,job:n,research:t?.research}):(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:o(`craftQuestionsTitle`)}),(0,i.jsx)(`p`,{className:`aha-subtitle`,children:e.goal}),(0,i.jsx)(`p`,{className:`aha-hint`,children:o(`craftQuestionsHint`)}),t?.research?(0,i.jsx)(Cd,{research:t.research}):null]}),s.map((e,t)=>(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-cardTitle`,children:[t+1,`. `,e.prompt]}),(0,i.jsx)(`div`,{className:`aha-grid`,style:{gridTemplateColumns:`repeat(auto-fill,minmax(220px,1fr))`},children:e.options.map(t=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-option`,"data-active":c[e.id]?.choice?.includes(t.id)??!1,onClick:()=>y(e,t.id),children:[(0,i.jsx)(`b`,{children:t.label}),t.detail?(0,i.jsx)(`small`,{children:t.detail}):null]},t.id))}),(0,i.jsx)(`input`,{className:`aha-input`,placeholder:o(`craftOther`),value:c[e.id]?.other??``,onChange:t=>{let n=t.currentTarget.value;l(t=>({...t,[e.id]:{choice:t[e.id]?.choice??[],other:n}}))}})]},e.id)),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`div`,{className:`aha-cardTitle`,children:o(`craftSize`)}),(0,i.jsx)(`div`,{className:`aha-grid`,style:{gridTemplateColumns:`repeat(auto-fill,minmax(180px,1fr))`},children:vd.map(([e,t,n])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-option`,"data-active":f===e,onClick:()=>p(e),children:[(0,i.jsx)(`b`,{children:o(t)}),(0,i.jsx)(`small`,{children:o(n)})]},e))})]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`div`,{className:`aha-cardTitle`,children:o(`craftPace`)}),(0,i.jsx)(`div`,{className:`aha-grid`,style:{gridTemplateColumns:`repeat(auto-fill,minmax(200px,1fr))`},children:_d.map(([e,t,n])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-option`,"data-active":u===e,onClick:()=>d(e),children:[(0,i.jsx)(`b`,{children:o(t)}),(0,i.jsx)(`small`,{children:o(n)})]},e))}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsxs)(`label`,{className:`aha-label`,style:{flex:1,minWidth:220},children:[o(`weeklyMinutes`),(0,i.jsx)(`select`,{className:`aha-select`,value:m,onChange:e=>h(Number(e.currentTarget.value)),children:yd.map(e=>(0,i.jsx)(`option`,{value:e,children:o(`minutesUnit`,{minutes:e})},e))})]}),(0,i.jsxs)(`label`,{className:`aha-label`,style:{flex:1,minWidth:220},children:[o(`deadline`),(0,i.jsx)(`input`,{className:`aha-input`,type:`date`,value:g,onChange:e=>_(e.currentTarget.value)})]})]})]}),(0,i.jsx)($,{error:n.error}),(0,i.jsx)(`div`,{className:`aha-row`,children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:b,children:o(`makeBlueprint`)})})]})}function Cd({research:e}){let{t}=v();return e.skipped?(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`researchSkipped`,{reason:t(`researchSkipped_${e.skipped}`)})}):(0,i.jsxs)(`details`,{className:`aha-sources`,children:[(0,i.jsx)(`summary`,{children:t(`researchFound`,{count:e.sources.length})}),(0,i.jsx)(Ul,{sources:e.sources})]})}function wd({course:e,job:t,research:n}){let{t:a}=v(),o=t.preview?.units??[],s=(0,r.useMemo)(()=>md(t.preview,e.goal),[t.preview,e.goal]),c=o.reduce((e,t)=>e+t.lectures.reduce((e,t)=>e+t.lessons.length,0),0),l=t.progress?.label===`materials`?`materials`:o.length?`lessons`:`units`,u=[...n?.sources?.length?[[`research`,a(`buildResearch`,{count:n.sources.length})]]:[],[`answers`,a(`buildAnswers`)],...e.materialIds?.length?[[`materials`,a(`buildMaterials`)]]:[],[`units`,a(`buildUnits`)],[`lessons`,c?a(`buildLessonsSoFar`,{count:c}):a(`buildLessons`)]],d=u.findIndex(([e])=>e===l);return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:t.preview?.title||e.goal}),(0,i.jsxs)(`p`,{className:`aha-hint`,children:[a(`designingBlueprint`),` `,a(`keepsRunning`)]})]}),(0,i.jsx)(`ol`,{className:`aha-buildLog`,children:u.map(([e,t],n)=>(0,i.jsxs)(`li`,{"data-state":n<d?`done`:n===d?`current`:`todo`,children:[(0,i.jsx)(`span`,{className:`aha-buildMark`,"aria-hidden":`true`,children:n<d?`✓`:n===d?(0,i.jsx)(`span`,{className:`aha-spinner`}):``}),(0,i.jsx)(`span`,{children:t})]},e))}),o.length?(0,i.jsx)(gd,{tree:s,live:!0}):null,(0,i.jsx)(`div`,{className:`aha-row`,children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:t.cancel,children:a(`cancel`)})})]})}function Td(e){return JSON.parse(JSON.stringify(e??[]))}function Ed(e,t,n){let r=[...e],i=t+n;return i<0||i>=r.length?e:([r[t],r[i]]=[r[i],r[t]],r)}function Dd({course:e,job:t,onDone:n,onClose:a}){let{api:o,t:s}=v(),c=y(()=>o.call(`material/list`),[]),[l,u]=(0,r.useState)([]),[d,f]=(0,r.useState)(!1),[p,m]=(0,r.useState)(``),h=new Map((c.value??[]).map(e=>[e.id,e.title]));async function g(){try{await t.run(`course/add-materials`,{courseId:e.id,materialIds:l,instruction:p.trim()}),n()}catch{}}return(0,i.jsxs)(`section`,{className:`aha-card aha-addMaterials`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`b`,{children:s(`addMaterialsTitle`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:a,children:s(`cancel`)})]}),(0,i.jsx)(`p`,{className:`aha-hint`,children:s(`addMaterialsHint`)}),(0,i.jsxs)(`div`,{className:`aha-row`,style:{gap:6},children:[l.map(e=>(0,i.jsx)(`span`,{className:`aha-tag`,children:h.get(e)??`…`},e)),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>{c.reload(),f(!0)},children:l.length?s(`changeMaterials`):s(`pickMaterials`)})]}),(0,i.jsx)(`input`,{className:`aha-input`,value:p,placeholder:s(`addMaterialsPlaceholder`),"aria-label":s(`addMaterialsPlaceholder`),onChange:e=>m(e.currentTarget.value)}),(0,i.jsx)(`div`,{className:`aha-row`,children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:!l.length,onClick:g,children:s(`addMaterialsSend`)})}),d?(0,i.jsx)(Vl,{selected:l,max:12,exclude:e.materialIds??[],onChange:e=>{u(e),c.reload()},onClose:()=>f(!1)}):null]})}function Od({course:e,proposal:t,progress:n,boards:a,job:o,onChange:s,adding:c=!1}){let{api:l,t:u,toast:d,navigate:f}=v(),p=e.status===`ready`,[m,h]=(0,r.useState)(()=>Td(e.units)),[g,_]=(0,r.useState)(e.title),[y,x]=(0,r.useState)(!1),[S,C]=(0,r.useState)(``),[w,T]=(0,r.useState)(!1),[E,D]=(0,r.useState)(null),[O,k]=(0,r.useState)(null),[ee,te]=(0,r.useState)(null),[ne,A]=(0,r.useState)(null),[re,ie]=(0,r.useState)(p?`list`:`map`),[ae,oe]=(0,r.useState)(c),[se,ce]=(0,r.useState)(null),le=(0,r.useRef)(null),ue=b();(0,r.useEffect)(()=>{h(Td(e.units)),_(e.title),x(!1)},[e]);let j=e=>{h(t=>{let n=Td(t);return e(n),n.filter(e=>e.lectures.length).map(e=>({...e,lectures:e.lectures.filter(e=>e.lessons.length)}))}),x(!0)},de=(0,r.useMemo)(()=>m.reduce((e,t)=>e+t.lectures.reduce((e,t)=>e+t.lessons.length,0),0),[m]),fe=(0,r.useMemo)(()=>m.reduce((e,t)=>e+t.lectures.reduce((e,t)=>e+t.lessons.reduce((e,t)=>e+(t.estMinutes||15),0),0),0),[m]),pe=(0,r.useMemo)(()=>t?.blueprint?.units?tt(e,t.blueprint):null,[e,t]),me=e=>!!e.id&&((n?.lessons?.[e.id]?.status??`new`)!==`new`||a.includes(e.id)),he=!!pe||!!ne,ge=(0,r.useMemo)(()=>({title:g,units:m.map((e,t)=>({key:`u${t}`,title:e.title,lectures:e.lectures.map((e,n)=>({key:`u${t}.${n}`,title:e.title,lessons:e.lessons.map((e,r)=>({key:`u${t}.${n}.${r}`,title:e.title,meta:{depth:e.depth,minutes:e.estMinutes}}))}))}))}),[m,g]),_e=e=>(0,i.jsxs)(i.Fragment,{children:[e.depth?(0,i.jsx)(`span`,{className:`aha-depth`,"data-depth":e.depth,children:u(`depth_${e.depth}`)}):null,(0,i.jsx)(`span`,{children:u(`estMinutes`,{minutes:e.minutes})})]});(0,r.useEffect)(()=>{if(!se||re!==`list`)return;let e=le.current?.querySelector(`[data-path="${se}"]`);e?.scrollIntoView({block:`center`,behavior:`smooth`}),e?.querySelector(`input`)?.focus({preventScroll:!0});let t=setTimeout(()=>ce(null),1700);return()=>clearTimeout(t)},[se,re]);async function ve(){T(!0),D(null);try{return await l.call(`course/save-blueprint`,{courseId:e.id,blueprint:{...e,title:g,units:m}}),x(!1),d(u(`saved`)),s(),!0}catch(e){return D(e),!1}finally{T(!1)}}async function ye(t,n){t?.preventDefault();let r=n??S.trim();if(r&&!(y&&!await ve()))try{await o.run(`course/revise`,{courseId:e.id,instruction:r}),C(``),s()}catch{}}async function be(t,n){D(null);try{await l.call(t,{courseId:e.id}),n&&d(n),s()}catch(e){D(e)}}async function xe(t,n,r,i){te(null);let a=m[t],o=a.lectures[n];A(`${t}.${n}.${r}`);try{let s=await ue.run(`course/rework-lesson`,{courseId:e.id,lesson:o.lessons[r],unitTitle:a.title,lectureTitle:o.title,mode:i});j(e=>{e[t].lectures[n].lessons.splice(r,1,...s.lessons)}),d(u(i===`split`?`splitDone`:`deepenDone`))}catch{}finally{A(null)}}async function Se(){if(!(y&&!await ve()))try{await o.run(`course/confirm`,{courseId:e.id}),s()}catch{}}async function Ce(){y&&!await ve()||f(`course`,{courseId:e.id})}if(o.running){let t=o.progress?.label===`practice`||o.progress?.label===`projects`?u(`confirming`,{done:o.progress.done,total:o.progress.total}):o.progress?.done?u(`revisingSoFar`,{count:o.progress.done}):u(`revising`);return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`h2`,{className:`aha-title`,children:[e.emoji,` `,e.title]}),(0,i.jsx)(Pl,{progress:o.progress,label:t,onCancel:o.cancel})]})}let we=(e,t)=>k({text:e,run:t});return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4,flex:1},children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:u(p?`editOutline`:`blueprintTitle`)}),(0,i.jsxs)(`div`,{className:`aha-row`,style:{flexWrap:`nowrap`},children:[(0,i.jsx)(`span`,{style:{fontSize:28},children:e.emoji}),(0,i.jsx)(`input`,{className:`aha-input aha-title`,style:{border:`none`,padding:`2px 4px`},value:g,disabled:he,onChange:e=>{_(e.currentTarget.value),x(!0)}})]}),e.subtitle?(0,i.jsx)(`p`,{className:`aha-subtitle`,children:e.subtitle}):null,(0,i.jsxs)(`p`,{className:`aha-hint`,children:[u(`lessonsCount`,{done:0,total:de}),` · `,u(`minutesLeft`,{minutes:fe})]})]}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[y?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,disabled:w||he,onClick:ve,children:u(`saveEdits`)}):null,p?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:w||he,onClick:Ce,children:u(y?`saveAndBack`:`backToCourse`)}):(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:he,onClick:Se,children:u(`confirmCourse`)})]})]}),e.summary?(0,i.jsx)(`p`,{children:e.summary}):null,pe?(0,i.jsxs)(`section`,{className:`aha-card aha-proposal`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:2},children:[(0,i.jsx)(`b`,{children:u(`proposalTitle`)}),t.materials?.length?(0,i.jsx)(`span`,{className:`aha-hint`,children:u(`proposalMaterials`,{titles:t.materials.map(e=>`《${e.title}》`).join(``)})}):null,t.instruction?(0,i.jsxs)(`span`,{className:`aha-hint`,children:[`“`,t.instruction,`”`]}):null]}),nt(pe)?(0,i.jsx)(`p`,{className:`aha-hint`,children:u(`proposalNoChange`)}):(0,i.jsxs)(`ul`,{className:`aha-diff`,children:[pe.title?(0,i.jsxs)(`li`,{"data-kind":`renamed`,children:[(0,i.jsx)(`span`,{className:`aha-diffTag`,children:u(`diffRenamed`)}),pe.title.from,` → `,pe.title.to]}):null,pe.unitsAdded.map((e,t)=>(0,i.jsxs)(`li`,{"data-kind":`added`,children:[(0,i.jsx)(`span`,{className:`aha-diffTag`,children:u(`diffAdded`)}),u(`diffUnit`,{title:e})]},`ua${t}`)),pe.unitsRemoved.map((e,t)=>(0,i.jsxs)(`li`,{"data-kind":`removed`,children:[(0,i.jsx)(`span`,{className:`aha-diffTag`,children:u(`diffRemoved`)}),u(`diffUnit`,{title:e})]},`ur${t}`)),pe.added.map((e,t)=>(0,i.jsxs)(`li`,{"data-kind":`added`,children:[(0,i.jsx)(`span`,{className:`aha-diffTag`,children:u(`diffAdded`)}),e.title,(0,i.jsxs)(`span`,{className:`aha-hint`,children:[` · `,e.unit]})]},`a${t}`)),pe.removed.map((e,t)=>(0,i.jsxs)(`li`,{"data-kind":`removed`,children:[(0,i.jsx)(`span`,{className:`aha-diffTag`,children:u(`diffRemoved`)}),e.title,(0,i.jsxs)(`span`,{className:`aha-hint`,children:[` · `,e.unit]})]},`r${t}`)),pe.renamed.map((e,t)=>(0,i.jsxs)(`li`,{"data-kind":`renamed`,children:[(0,i.jsx)(`span`,{className:`aha-diffTag`,children:u(`diffRenamed`)}),e.from,` → `,e.to]},`n${t}`)),pe.changed.map((e,t)=>(0,i.jsxs)(`li`,{"data-kind":`changed`,children:[(0,i.jsx)(`span`,{className:`aha-diffTag`,children:u(`diffChanged`)}),e.title,(0,i.jsxs)(`span`,{className:`aha-hint`,children:[` · `,e.unit]})]},`c${t}`))]}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>be(`course/proposal-apply`,u(`proposalApplied`)),children:u(`applyProposal`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>be(`course/proposal-discard`),children:u(`discardProposal`)})]})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`p`,{className:`aha-hint`,children:u(`blueprintHint`)}),(0,i.jsxs)(`form`,{className:`aha-row`,onSubmit:ye,children:[(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:1},value:S,placeholder:u(`revisePlaceholder`),onChange:e=>C(e.currentTarget.value),"aria-label":u(`reviseLabel`)}),(0,i.jsx)(`button`,{type:`submit`,className:`aha-btn`,disabled:!S.trim()||he,children:u(`revise`)}),p?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,disabled:he,onClick:()=>ye(null,u(`extendInstruction`)),children:u(`extendCourse`)}):null,(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,disabled:he,"aria-expanded":ae,onClick:()=>oe(e=>!e),children:u(`addMaterials`)})]}),ae?(0,i.jsx)(Dd,{course:e,job:o,onClose:()=>oe(!1),onDone:()=>{oe(!1),s()}}):null]}),(0,i.jsx)($,{error:E??o.error??ue.error}),(0,i.jsxs)(`div`,{className:`aha-viewToggle`,role:`group`,"aria-label":u(`outlineView`),children:[(0,i.jsx)(`button`,{type:`button`,"aria-pressed":re===`list`,onClick:()=>ie(`list`),children:u(`viewList`)}),(0,i.jsx)(`button`,{type:`button`,"aria-pressed":re===`map`,onClick:()=>ie(`map`),children:u(`viewMap`)})]}),re===`map`?(0,i.jsx)(gd,{tree:ge,renderMeta:_e,onPick:e=>{ce(e),ie(`list`)}}):(0,i.jsxs)(`fieldset`,{ref:le,className:`aha-tree`,disabled:he,children:[m.map((e,t)=>(0,i.jsxs)(`div`,{className:`aha-unit`,children:[(0,i.jsxs)(`div`,{className:`aha-lesson`,style:{fontWeight:650},children:[(0,i.jsx)(`span`,{className:`aha-tag`,children:u(`unitN`,{n:t+1})}),(0,i.jsx)(`input`,{value:e.title,onChange:e=>{let n=e.currentTarget.value;j(e=>{e[t].title=n})}}),(0,i.jsx)(kd,{onUp:()=>j(e=>{e.splice(0,e.length,...Ed(e,t,-1))}),onDown:()=>j(e=>{e.splice(0,e.length,...Ed(e,t,1))}),onRemove:()=>we(u(`confirmRemoveUnit`,{title:e.title}),()=>j(e=>{e.splice(t,1)}))})]}),e.lectures.map((e,n)=>(0,i.jsxs)(`div`,{className:`aha-lecture`,children:[(0,i.jsxs)(`div`,{className:`aha-lesson`,style:{fontWeight:600},children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:u(`lectureN`,{n:n+1})}),(0,i.jsx)(`input`,{value:e.title,onChange:e=>{let r=e.currentTarget.value;j(e=>{e[t].lectures[n].title=r})}}),(0,i.jsx)(kd,{onUp:()=>j(e=>{let r=e[t].lectures;r.splice(0,r.length,...Ed(r,n,-1))}),onDown:()=>j(e=>{let r=e[t].lectures;r.splice(0,r.length,...Ed(r,n,1))}),onRemove:()=>we(u(`confirmRemoveLecture`,{title:e.title}),()=>j(e=>{e[t].lectures.splice(n,1)}))})]}),e.lessons.map((e,r)=>{let a=`${t}.${n}.${r}`,o=()=>j(e=>{e[t].lectures[n].lessons.splice(r,1)});return(0,i.jsxs)(`div`,{className:`aha-lesson`,"data-path":`u${a}`,"data-flash":se===`u${a}`?`true`:void 0,children:[(0,i.jsx)(`span`,{className:`aha-dot`}),(0,i.jsx)(`input`,{value:e.title,title:e.summary,onChange:e=>{let i=e.currentTarget.value;j(e=>{e[t].lectures[n].lessons[r].title=i})}}),(0,i.jsxs)(`select`,{className:`aha-depthSelect`,"data-depth":e.depth||void 0,value:e.depth??``,title:u(`depthTitle`),"aria-label":u(`depthTitle`),onChange:e=>{let i=e.currentTarget.value;j(e=>{let a=e[t].lectures[n].lessons[r];i?a.depth=i:delete a.depth})},children:[(0,i.jsx)(`option`,{value:``,children:u(`depthNone`)}),$e.map(e=>(0,i.jsx)(`option`,{value:e,children:u(`depth_${e}`)},e))]}),(0,i.jsx)(`span`,{className:`aha-hint`,children:u(`estMinutes`,{minutes:e.estMinutes})}),ne===a?(0,i.jsx)(Ml,{}):me(e)?null:(0,i.jsxs)(`span`,{className:`aha-menuAnchor`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,title:u(`reworkLesson`),"aria-label":u(`reworkLesson`),"aria-expanded":ee===a,onClick:()=>te(e=>e===a?null:a),children:`✦`}),ee===a?(0,i.jsxs)(`div`,{className:`aha-card aha-menu`,onMouseLeave:()=>te(null),children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>xe(t,n,r,`split`),children:u(`splitLesson`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>xe(t,n,r,`deepen`),children:u(`deepenLesson`)})]}):null]}),(0,i.jsx)(kd,{onUp:()=>j(e=>{let i=e[t].lectures[n].lessons;i.splice(0,i.length,...Ed(i,r,-1))}),onDown:()=>j(e=>{let i=e[t].lectures[n].lessons;i.splice(0,i.length,...Ed(i,r,1))}),onRemove:()=>me(e)?we(u(`confirmRemoveStarted`,{title:e.title}),o):o()})]},e.id??r)}),(0,i.jsx)(`div`,{children:(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>j(e=>{e[t].lectures[n].lessons.push({title:u(`untitled`),objectives:[],concepts:[],estMinutes:15})}),children:[`+ `,u(`addLesson`)]})})]},e.id??n)),(0,i.jsx)(`div`,{children:(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>j(e=>{e[t].lectures.push({title:u(`untitled`),lessons:[{title:u(`untitled`),objectives:[],concepts:[],estMinutes:15}]})}),children:[`+ `,u(`addLecture`)]})})]},e.id??t)),(0,i.jsx)(`div`,{children:(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>j(e=>{e.push({title:u(`untitled`),objectives:[],lectures:[{title:u(`untitled`),lessons:[{title:u(`untitled`),objectives:[],concepts:[],estMinutes:15}]}]})}),children:[`+ `,u(`addUnit`)]})})]}),e.projects?.length?(0,i.jsxs)(`section`,{className:`aha-col`,children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:u(`projects`)}),(0,i.jsx)(`div`,{className:`aha-grid`,children:e.projects.map(e=>(0,i.jsxs)(`div`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:e.title}),(0,i.jsx)(`p`,{className:`aha-hint`,children:e.brief})]},e.id))})]}):null,O?(0,i.jsx)(Il,{danger:!0,text:O.text,onConfirm:()=>{O.run(),k(null)},onCancel:()=>k(null)}):null]})}function kd({onUp:e,onDown:t,onRemove:n}){let{t:r}=v();return(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:2,flexWrap:`nowrap`},children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:e,title:r(`moveUp`),"aria-label":r(`moveUp`),children:`↑`}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:t,title:r(`moveDown`),"aria-label":r(`moveDown`),children:`↓`}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:n,title:r(`remove`),"aria-label":r(`remove`),children:`✕`})]})}function Ad({courseId:e,lessonId:t}){let{api:n,t:a,navigate:o}=v(),s=b(),[c,l]=(0,r.useState)(null),[u,d]=(0,r.useState)(null),f=async r=>{d(null);try{let i=await n.call(`lesson/handout`,{courseId:e,lessonId:t,force:r});l(i.job?(await s.run(null,null,{existing:i.job})).handout:i.handout)}catch(e){d(e)}};(0,r.useEffect)(()=>{f(!1)},[e,t]);let p=()=>{for(let e of document.querySelectorAll(`.aha-handout details`))e.open=!0;window.print()},m=(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>o(`lesson`,{courseId:e,lessonId:t}),children:[`← `,a(`backToLesson`)]});return u?(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsx)($,{error:u}),(0,i.jsx)(`div`,{className:`aha-row`,children:m})]}):c?(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:860},children:[(0,i.jsxs)(`div`,{className:`aha-spread aha-noprint`,children:[m,(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:p,children:a(`print`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>{l(null),f(!0)},children:a(`regenerate`)})]})]}),(0,i.jsxs)(`article`,{className:`aha-printable aha-handout`,children:[(0,i.jsxs)(`header`,{children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:a(`handout`)}),(0,i.jsx)(`h2`,{children:c.title}),c.summary?(0,i.jsx)(`p`,{className:`aha-handoutSummary`,children:(0,i.jsx)(sl,{text:c.summary})}):null]}),(0,i.jsxs)(`section`,{children:[(0,i.jsx)(`h3`,{children:a(`handoutPoints`)}),(0,i.jsx)(`ol`,{className:`aha-handoutPoints`,children:c.points.map((e,t)=>(0,i.jsxs)(`li`,{children:[(0,i.jsx)(`b`,{children:(0,i.jsx)(sl,{text:e.title})}),e.oneLine?(0,i.jsx)(`div`,{className:`aha-handoutOneLine`,children:(0,i.jsx)(sl,{text:e.oneLine})}):null,e.detail?(0,i.jsx)(`div`,{className:`aha-hint`,children:(0,i.jsx)(sl,{text:e.detail})}):null]},t))})]}),c.example?(0,i.jsxs)(`section`,{children:[(0,i.jsx)(`h3`,{children:a(`handoutExample`)}),(0,i.jsx)(`p`,{children:(0,i.jsx)(sl,{text:c.example.problem})}),(0,i.jsx)(`ol`,{className:`aha-handoutSteps`,children:c.example.steps.map((e,t)=>(0,i.jsx)(`li`,{children:(0,i.jsx)(sl,{text:e})},t))}),c.example.answer?(0,i.jsxs)(`div`,{className:`aha-handoutAnswer`,children:[(0,i.jsx)(`b`,{children:a(`handoutAnswer`)}),` `,(0,i.jsx)(sl,{text:c.example.answer})]}):null]}):null,c.mistakes.length?(0,i.jsxs)(`section`,{children:[(0,i.jsx)(`h3`,{children:a(`handoutMistakes`)}),(0,i.jsx)(`ul`,{className:`aha-handoutMistakes`,children:c.mistakes.map((e,t)=>(0,i.jsxs)(`li`,{children:[(0,i.jsx)(`span`,{"data-wrong":`true`,children:(0,i.jsx)(sl,{text:e.mistake})}),e.fix?(0,i.jsxs)(`span`,{children:[`→ `,(0,i.jsx)(sl,{text:e.fix})]}):null]},t))})]}):null,c.glossary.length?(0,i.jsxs)(`section`,{children:[(0,i.jsx)(`h3`,{children:a(`handoutGlossary`)}),(0,i.jsx)(`dl`,{className:`aha-handoutGlossary`,children:c.glossary.map((e,t)=>(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`dt`,{children:(0,i.jsx)(sl,{text:e.term})}),(0,i.jsx)(`dd`,{children:(0,i.jsx)(sl,{text:e.meaning})})]},t))})]}):null,c.questions.length?(0,i.jsxs)(`section`,{children:[(0,i.jsx)(`h3`,{children:a(`handoutQuestions`)}),(0,i.jsx)(`ol`,{className:`aha-handoutQuestions`,children:c.questions.map((e,t)=>(0,i.jsxs)(`li`,{children:[(0,i.jsx)(sl,{text:e.question}),e.answer?(0,i.jsxs)(`details`,{children:[(0,i.jsx)(`summary`,{children:a(`handoutAnswer`)}),(0,i.jsx)(sl,{text:e.answer})]}):null]},t))})]}):null]})]}):(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Pl,{progress:s.progress,label:a(`handoutMaking`),onCancel:s.running?s.cancel:void 0})})}function jd({item:e,day:t,today:n,onToggle:r}){let{t:a,navigate:o}=v(),s=e.kind!==`exam`&&t<=n,c=e.checked===`auto`;return(0,i.jsxs)(`div`,{className:`aha-planItem`,"data-checked":e.checked?`true`:void 0,children:[s?(0,i.jsx)(`input`,{type:`checkbox`,className:`aha-check`,checked:!!e.checked,disabled:c,title:c?a(`checkedAuto`):void 0,"aria-label":e.checked?a(`unmarkDone`):a(`markDone`),onChange:()=>r?.(e,t)}):null,(0,i.jsx)(`span`,{className:`aha-tag`,children:e.kind===`lesson`?a(`lessonItem`):e.kind===`review`?a(`reviewItem`):a(`examItem`)}),(0,i.jsxs)(`span`,{className:`aha-planTitle`,children:[e.title,(0,i.jsx)(Wl,{title:e.courseTitle,emoji:e.courseEmoji})]}),e.minutes?(0,i.jsx)(`span`,{className:`aha-hint`,children:a(`minutesUnit`,{minutes:e.minutes})}):null,e.kind===`lesson`&&!e.checked?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>o(`lesson`,{courseId:e.courseId,lessonId:e.refId}),children:a(`learn`)}):null,e.kind===`review`&&!e.checked&&t===n?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>o(`practice`,{courseId:e.courseId??void 0,review:!0}),children:a(`review`)}):null]})}function Md(e,t,n,r){return t.checked===`manual`?e.call(`plan/uncheck`,{today:r,day:n,refId:t.refId}):e.call(`plan/check`,{today:r,day:n,item:t})}function Nd(e){let t=e instanceof Date?e:new Date(e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}function Pd(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/u.exec(String(e));if(!t)throw TypeError(`invalid day "${e}"`);return new Date(Number(t[1]),Number(t[2])-1,Number(t[3]))}let Fd=[[`course`,`modeCourse`,`🎓`],[`explain`,`modeExplain`,`💡`],[`solve`,`modeSolve`,`🧮`],[`visualize`,`modeVisualize`,`📈`],[`digest`,`modeDigest`,`📚`],[`short`,`modeShort`,`🎬`]];function Id(){let{api:e,t,navigate:n,toast:a}=v(),[o,s]=(0,r.useState)(`course`),[c,l]=C(`craftWeb`,!0),[u,d]=(0,r.useState)(null),[f,p]=(0,r.useState)(``),[m,h]=(0,r.useState)([]),[g,_]=(0,r.useState)(!1),[b,x]=(0,r.useState)(!1),[S,w]=(0,r.useState)(null),T=y(()=>e.call(`course/list`),[]),E=y(()=>e.call(`plan/get`,{today:Nd(new Date)}),[]),D=y(()=>e.call(`samples/list`),[]),O=u??(!m.length&&c);function k(){d(!O),m.length||l(!O)}async function ee(t=!1){let r=f.trim();if(w(null),o===`course`){if(!r&&!m.length)return;x(!0);try{let{job:i}=await e.call(`course/start`,{goal:r,materialIds:m,quick:t,web:O});n(`craft`,{jobId:i.id})}catch(e){w(e)}finally{x(!1)}return}if(o===`digest`){if(!m.length){_(!0);return}n(`item`,{kind:`digest`,materialId:m[0]});return}if(o===`short`){let e=/^https?:\/\//iu.test(r);n(`shorts`,{draftTopic:e?``:r,draftUrl:e?r:``,token:Date.now().toString(36)});return}r&&n(`assist`,{draftMode:o,draftRequest:r,draftMaterials:m,token:Date.now().toString(36)})}let te=(T.value??[]).filter(e=>e.status===`ready`&&!e.archived&&e.progress.percent<100).slice(0,3),ne=(T.value??[]).filter(e=>e.status!==`ready`&&!e.archived).slice(0,2),A=E.value?.today??[],re=Nd(new Date);async function ie(t,n){try{E.setValue(await Md(e,t,n,re))}catch(e){w(e)}}return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`section`,{className:`aha-hero`,children:[(0,i.jsx)(`div`,{className:`aha-heroTitle`,children:t(`heroTitle`)}),(0,i.jsx)(`p`,{className:`aha-subtitle`,children:t(`heroHint`)}),(0,i.jsxs)(`div`,{className:`aha-composer`,children:[(0,i.jsx)(`textarea`,{value:f,placeholder:t(`heroPlaceholder`),onChange:e=>p(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&ee()}}),(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`div`,{className:`aha-row`,style:{gap:6},children:[(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>_(!0),children:[(0,i.jsx)(pe,{name:`plus`,size:15}),m.length?t(`attached`,{count:m.length}):t(`attach`)]}),o===`course`?(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"data-active":O,"aria-pressed":O,onClick:k,title:t(`webResearchHint`),children:[`🌐 `,t(`webResearch`)]}):null]}),(0,i.jsxs)(`div`,{className:`aha-row`,style:{gap:6},children:[o===`course`?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,disabled:b,onClick:()=>ee(!0),children:t(`quickStart`)}):null,(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:b||!f.trim()&&!m.length,onClick:()=>ee(!1),children:[b?(0,i.jsx)(`span`,{className:`aha-spinner`}):null,t(`start`)]})]})]})]}),(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:8},children:Fd.map(([e,n,r])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"data-active":o===e,onClick:()=>s(e),children:[r,` `,t(n)]},e))}),(0,i.jsx)($,{error:S})]}),te.length||ne.length?(0,i.jsxs)(`section`,{className:`aha-col`,children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:t(`continueLearning`)}),(0,i.jsx)(`div`,{className:`aha-grid`,children:[...ne,...te].map(e=>(0,i.jsxs)(`div`,{className:`aha-card`,"data-click":`true`,onClick:()=>n(e.status===`ready`?`course`:`craft`,{courseId:e.id}),children:[(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`span`,{style:{fontSize:24},children:e.emoji}),(0,i.jsx)(`span`,{className:`aha-cardTitle`,children:e.title})]}),e.status===`ready`?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Nl,{value:e.progress.percent}),(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:t(`lessonsCount`,e.progress)}),e.next?(0,i.jsx)(`span`,{className:`aha-hint`,children:t(`nextUp`,{title:e.next.title})}):null]}),e.next?(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:t=>{t.stopPropagation(),n(`lesson`,{courseId:e.id,lessonId:e.next.lessonId})},children:[(0,i.jsx)(pe,{name:`play`,size:14}),t(`continueLearning`)]}):null]}):(0,i.jsx)(`span`,{className:`aha-tag`,children:e.status===`intake`?t(`statusIntake`):t(`statusBlueprint`)})]},e.id))})]}):null,(0,i.jsxs)(`section`,{className:`aha-col`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:t(`todayPlan`)}),(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>n(`plan`),children:[t(`navPlan`),` →`]})]}),E.loading&&!E.value?(0,i.jsx)(Ml,{}):A.length?(0,i.jsx)(`div`,{className:`aha-col`,style:{gap:6},children:A.map(e=>(0,i.jsx)(`div`,{className:`aha-card`,style:{padding:`6px 14px`},children:(0,i.jsx)(jd,{item:e,day:re,today:re,onToggle:ie})},`${e.kind}:${e.refId}`))}):(0,i.jsx)(Rl,{children:t(`noPlanToday`)})]}),D.value?.length?(0,i.jsxs)(`section`,{className:`aha-col`,children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:t(`sampleCourses`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`sampleHint`)}),(0,i.jsx)(`div`,{className:`aha-grid`,children:D.value.map(r=>(0,i.jsxs)(`div`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`span`,{style:{fontSize:24},children:r.emoji}),(0,i.jsx)(`span`,{className:`aha-cardTitle`,children:r.title})]}),(0,i.jsx)(`p`,{className:`aha-hint`,children:r.subtitle}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:async()=>{try{let i=await e.call(`samples/import`,{id:r.id});a(t(`courseReady`)),n(`course`,{courseId:i.id})}catch(e){a(Ll(t,e))}},children:t(`importSample`)})]},r.id))})]}):null,g?(0,i.jsx)(Vl,{selected:m,onChange:h,onClose:()=>_(!1)}):null]})}let Ld=`http://www.w3.org/2000/svg`,Rd=new Set([`SCRIPT`,`STYLE`,`TEMPLATE`,`IFRAME`,`BUTTON`,`INPUT`,`TEXTAREA`,`SELECT`]),zd=[`Top`,`Right`,`Bottom`,`Left`],Bd=[`fill`,`fill-opacity`,`fill-rule`,`stroke`,`stroke-width`,`stroke-opacity`,`stroke-dasharray`,`stroke-dashoffset`,`stroke-linecap`,`stroke-linejoin`,`stroke-miterlimit`,`opacity`,`font-family`,`font-size`,`font-style`,`font-weight`,`text-anchor`,`dominant-baseline`],Vd=typeof Intl<`u`&&typeof Intl.Segmenter==`function`?new Intl.Segmenter(void 0,{granularity:`grapheme`}):null;function Hd(e){if(Vd)return Array.from(Vd.segment(e),e=>({index:e.index,text:e.segment}));let t=[],n=0;for(let r of e)t.push({index:n,text:r}),n+=r.length;return t}function Ud(e){if(!e||e===`transparent`||e===`none`)return!1;let t=/^(?:rgba?|hsla?|color|lab|lch|oklab|oklch)\((.*)\)$/u.exec(e.trim());if(!t)return!0;let n=t[1],r=n.includes(`/`)?n.split(`/`).pop():n.split(`,`).length===4?n.split(`,`).pop():null;return r===null||Number.parseFloat(r)>0}function Wd(e){if(!e||!e.startsWith(`linear-gradient(`))return[];let t=e.slice(16);if(/^\s*(?:to\s+(?!bottom)|-?[\d.]+(?:deg|turn|rad))/u.test(t)&&!/^\s*180deg/u.test(t))return[];let n=[...t.matchAll(/((?:rgba?|hsla?|color|oklab|oklch|lab|lch)\([^)]*\)|transparent|#[0-9a-f]{3,8})\s+(-?[\d.]+)%/giu)].map(e=>({color:e[1],at:Number.parseFloat(e[2])/100})),r=[];for(let e=0;e+1<n.length;e+=1){let[t,i]=[n[e],n[e+1]];t.color===i.color&&Ud(t.color)&&i.at>t.at&&r.push({color:t.color,from:Math.max(0,t.at),to:Math.min(1,i.at)})}return r}function Gd(e,t,n){let[r,i=r]=String(e||`0`).trim().split(/\s+/u),a=(e,t)=>e.endsWith(`%`)?Number.parseFloat(e)/100*t:Number.parseFloat(e)||0;return{x:a(r,t),y:a(i,n)}}function Kd(e,t,n){let r=[e.borderTopLeftRadius,e.borderTopRightRadius,e.borderBottomRightRadius,e.borderBottomLeftRadius].map(e=>Gd(e,t,n));return r.some(e=>e.x>0&&e.y>0)?r:null}function qd(e){return`${e.fontStyle.startsWith(`oblique`)?`italic`:e.fontStyle} ${e.fontWeight} ${e.fontSize} ${e.fontFamily}`}function Jd(e,t){if(!e)return t;if(!t)return e;let n=Math.max(e.x,t.x),r=Math.max(e.y,t.y);return{x:n,y:r,w:Math.max(0,Math.min(e.x+e.w,t.x+t.w)-n),h:Math.max(0,Math.min(e.y+e.h,t.y+t.h)-r)}}function Yd(e,t){let n=Math.min(e.x,t.x),r=Math.min(e.y,t.y);return{x:n,y:r,w:Math.max(e.x+e.w,t.x+t.w)-n,h:Math.max(e.y+e.h,t.y+t.h)-r}}function Xd(e,t){return e===`dashed`?[t*3,t*2.2]:e===`dotted`?[.01,t*2]:null}async function Zd(e,{timeoutMs:t=1e4}={}){e.offsetHeight,await new Promise(e=>{setTimeout(e,50)});let n=document.fonts;if(!n)return;let r=(e.textContent??``).slice(0,2e4),i=[`Aha Hand Latin`,`Aha Hand`].map(e=>n.load?.(`20px '${e}'`,r).catch(()=>void 0));await Promise.race([Promise.all([...i,n.ready]),new Promise(e=>{setTimeout(e,t)})])}function Qd(e){for(let t of e.querySelectorAll(`.aha-op-math`))hc(t);for(let t of e.querySelectorAll(`.aha-op-table`)){let e=t.closest(`.aha-op`)?.clientWidth??0;if(!e||t.offsetWidth<=e+1)continue;let n=e/t.offsetWidth,r=getComputedStyle(t);t.style.fontSize=`${Math.max(10,(Number.parseFloat(r.fontSize)||16)*n)}px`,t.style.lineHeight=`${Math.max(14,(Number.parseFloat(r.lineHeight)||24)*n)}px`}}function $d(e,{scale:t=2}={}){let n=e.getBoundingClientRect(),r=[],i=new Map,a=document.createElement(`canvas`).getContext(`2d`),o=document.createRange(),s=e=>({x:e.left-n.left,y:e.top-n.top,w:e.width,h:e.height}),c=e=>{let t=i.get(e);if(!t){a.font=e;let n=a.measureText(`Hg`),r=Number.parseFloat(/([\d.]+)px/u.exec(e)?.[1]??`16`);t={ascent:Number.isFinite(n.fontBoundingBoxAscent)?n.fontBoundingBoxAscent:r*.8,descent:Number.isFinite(n.fontBoundingBoxDescent)?n.fontBoundingBoxDescent:r*.2},i.set(e,t)}return t},l=getComputedStyle(e);r.push({kind:`paper`,w:n.width,h:n.height,paper:l.getPropertyValue(`--paper`).trim()||l.backgroundColor,dot:l.getPropertyValue(`--grid`).trim()});let u=(e,t)=>{let i=e.data;if(!i||!/\S/u.test(i))return;let a=getComputedStyle(e.parentElement);if(!Ud(a.color))return;let s=qd(a),{ascent:l}=c(s),u=null,d=()=>{u&&/\S/u.test(u.text)&&r.push({kind:`text`,text:u.text,x:u.x,y:u.top+l,font:s,color:a.color,alpha:t.alpha,clip:t.clip}),u=null};for(let t of Hd(i)){if(t.text===`
|
|
271
|
+
`||t.text===`\r`||t.text===` `){d();continue}o.setStart(e,t.index),o.setEnd(e,t.index+t.text.length);let r=o.getClientRects(),i=r[r.length-1];if(!i||i.width<=0){/\s/u.test(t.text)||d();continue}let a=i.left-n.left,s=i.top-n.top;u&&Math.abs(s-u.top)<1&&Math.abs(a-u.right)<1?(u.text+=t.text,u.right=a+i.width):(d(),u={text:t.text,x:a,top:s,right:a+i.width})}d()},d=(e,t,n,i,a)=>{let o=t.backgroundColor,c=Wd(t.backgroundImage);for(let e of n){let n=s(e);Ud(o)&&r.push({kind:`fill`,box:n,color:o,radius:Kd(t,n.w,n.h),alpha:i,clip:a});for(let e of c)r.push({kind:`fill`,box:{x:n.x,y:n.y+n.h*e.from,w:n.w,h:n.h*(e.to-e.from)},color:e.color,alpha:i,clip:a})}let l=zd.map(e=>({width:Number.parseFloat(t[`border${e}Width`])||0,style:t[`border${e}Style`],color:t[`border${e}Color`]})),u=l.map(e=>e.width>0&&e.style!==`none`&&e.style!==`hidden`&&Ud(e.color));if(!u.some(Boolean))return;let d=(e.tagName===`TD`||e.tagName===`TH`)&&t.borderCollapse===`collapse`,f=!d&&u.every(Boolean)&&l.every(e=>e.width===l[0].width&&e.style===l[0].style&&e.color===l[0].color);for(let e of n){let n=s(e);if(f){let e=l[0].width,o=Kd(t,n.w,n.h)?.map(t=>({x:Math.max(0,t.x-e/2),y:Math.max(0,t.y-e/2)}))??null;r.push({kind:`stroke`,box:{x:n.x+e/2,y:n.y+e/2,w:Math.max(0,n.w-e),h:Math.max(0,n.h-e)},width:e,color:l[0].color,dash:Xd(l[0].style,e),radius:o,alpha:i,clip:a});continue}l.forEach((e,t)=>{if(!u[t])return;let o=d?0:e.width/2,s=[[n.x,n.y+o,n.x+n.w,n.y+o],[n.x+n.w-o,n.y,n.x+n.w-o,n.y+n.h],[n.x,n.y+n.h-o,n.x+n.w,n.y+n.h-o],[n.x+o,n.y,n.x+o,n.y+n.h]][t];r.push({kind:`line`,points:s,width:e.width,color:e.color,dash:Xd(e.style,e.width),alpha:i,clip:a})})}},f=(e,t,n,i)=>{let a=e.parentElement;if(!a||t.listStyleType===`none`||t.display!==`list-item`)return;let o=qd(t),{ascent:l,descent:u}=c(o),d=Number.parseFloat(t.fontSize)||16,f=Number.parseFloat(t.lineHeight)||(l+u)*1.2,p=s(e.getBoundingClientRect()),m=[...a.children].filter(e=>e.tagName===`LI`),h=a.tagName===`OL`?`${m.indexOf(e)+(Number(a.getAttribute(`start`))||1)}.`:`•`;r.push({kind:`text`,text:h,align:`right`,x:p.x-d*.4,y:p.y+(Number.parseFloat(t.paddingTop)||0)+(f-l-u)/2+l,font:o,color:t.color,alpha:n,clip:i})},p=(e,i,a,o)=>{let l=e.getBoundingClientRect(),u=s(l),d=i.overflow===`visible`||i.overflowX===`visible`;if(d)try{let t=e.getBBox(),r=e.getScreenCTM();if(r&&(t.width||t.height)){let e=[[t.x,t.y],[t.x+t.width,t.y],[t.x,t.y+t.height],[t.x+t.width,t.y+t.height]].map(([e,t])=>[r.a*e+r.c*t+r.e-n.left,r.b*e+r.d*t+r.f-n.top]),i=e.map(e=>e[0]),a=e.map(e=>e[1]);u=Yd(u,{x:Math.min(...i)-4,y:Math.min(...a)-4,w:Math.max(...i)-Math.min(...i)+8,h:Math.max(...a)-Math.min(...a)+8})}}catch{}if(u=Jd(u,o??{x:0,y:0,w:n.width,h:n.height}),u.w<.5||u.h<.5)return;let f=[],p=e.cloneNode(!0),m=(e,t)=>{let r=getComputedStyle(e),i=Bd.map(e=>[e,r.getPropertyValue(e)]).filter(([,e])=>e&&!e.includes(`url(`));r.display===`none`&&i.push([`display`,`none`]),r.visibility===`hidden`&&i.push([`visibility`,`hidden`]),t.setAttribute(`style`,i.map(([e,t])=>`${e}:${t}`).join(`;`));let s=e.tagName.toLowerCase();if((s===`text`||s===`tspan`)&&![...e.children].length&&/\S/u.test(e.textContent??``)){let i=e.getScreenCTM?.(),s=i&&Math.abs(i.b)<.001&&Math.abs(i.c)<.001&&i.a>0,l=r.fill;if(s&&Ud(l)&&!l.includes(`url(`)&&!Ud(r.stroke)&&r.display!==`none`&&r.visibility!==`hidden`){let s=e.getBoundingClientRect(),u=(Number.parseFloat(r.fontSize)||16)*i.d,d=`${r.fontStyle.startsWith(`oblique`)?`italic`:r.fontStyle} ${r.fontWeight} ${u}px ${r.fontFamily}`,p=(Number.parseFloat(r.fillOpacity)||1)*(Number.parseFloat(r.opacity)||1);f.push({kind:`text`,text:e.textContent.replace(/\s+/gu,` `).trim(),x:s.left-n.left,y:s.top-n.top+c(d).ascent,font:d,color:l,alpha:a*p,clip:o}),t.setAttribute(`style`,`${t.getAttribute(`style`)};visibility:hidden`)}}let l=[...e.children],u=[...t.children];l.forEach((e,t)=>{u[t]&&m(e,u[t])})};m(e,p),p.setAttribute(`x`,String(l.left-n.left-u.x)),p.setAttribute(`y`,String(l.top-n.top-u.y)),p.setAttribute(`width`,String(l.width)),p.setAttribute(`height`,String(l.height)),d&&p.setAttribute(`overflow`,`visible`);let h=new XMLSerializer().serializeToString(p),g=`<svg xmlns="${Ld}" width="${Math.ceil(u.w*t)}" height="${Math.ceil(u.h*t)}" viewBox="0 0 ${u.w} ${u.h}" preserveAspectRatio="none">${h}</svg>`;r.push({kind:`image`,markup:g,box:u,alpha:a,clip:null}),r.push(...f)},m=(e,t)=>{if(Rd.has(e.tagName)||e.classList.contains(`katex-mathml`))return;let n=getComputedStyle(e);if(n.display===`none`||n.visibility===`hidden`||n.visibility===`collapse`)return;let r=t.alpha*(Number.parseFloat(n.opacity)||0);if(r<=.01)return;if(e.namespaceURI===Ld){e.tagName.toLowerCase()===`svg`&&p(e,n,r,t.clip);return}d(e,n,[...e.getClientRects()].filter(e=>e.width>0&&e.height>0),r,t.clip),e.tagName===`LI`&&f(e,n,r,t.clip);let i=n.overflowX!==`visible`||n.overflowY!==`visible`;h(e,{alpha:r,clip:i?Jd(t.clip,s(e.getBoundingClientRect())):t.clip})},h=(e,t)=>{for(let n of e.childNodes)n.nodeType===Node.TEXT_NODE?u(n,t):n.nodeType===Node.ELEMENT_NODE&&m(n,t)};return h(e,{alpha:1,clip:null}),o.detach?.(),{width:Math.ceil(n.width),height:Math.ceil(n.height),ops:r}}async function ef(e){return await Promise.all(e.ops.map(async e=>{if(e.kind!==`image`)return;let t=new Image;t.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e.markup)}`;try{await t.decode(),e.image=t}catch{e.image=null}})),e}function tf(e,t,n){e.beginPath(),n&&e.roundRect?e.roundRect(t.x,t.y,t.w,t.h,n):e.rect(t.x,t.y,t.w,t.h)}let nf={paper(e,t){if(e.fillStyle=t.paper||`#fdfcf8`,e.fillRect(0,0,t.w,t.h),t.dot){e.fillStyle=t.dot,e.beginPath();for(let n=22/2;n<t.w;n+=22)for(let r=22/2;r<t.h;r+=22)e.moveTo(n+1.1,r),e.arc(n,r,1.1,0,Math.PI*2);e.fill()}},fill(e,t){e.fillStyle=t.color,tf(e,t.box,t.radius),e.fill()},stroke(e,t){e.strokeStyle=t.color,e.lineWidth=t.width,t.dash&&(e.setLineDash(t.dash),e.lineCap=t.dash[0]<.1?`round`:`butt`),tf(e,t.box,t.radius),e.stroke()},line(e,t){e.strokeStyle=t.color,e.lineWidth=t.width,t.dash&&(e.setLineDash(t.dash),e.lineCap=t.dash[0]<.1?`round`:`butt`),e.beginPath(),e.moveTo(t.points[0],t.points[1]),e.lineTo(t.points[2],t.points[3]),e.stroke()},text(e,t){e.font=t.font,e.fillStyle=t.color,e.textBaseline=`alphabetic`,e.textAlign=t.align??`left`,e.fillText(t.text,t.x,t.y)},image(e,t){t.image&&e.drawImage(t.image,t.box.x,t.box.y,t.box.w,t.box.h)}};function rf(e,t=2){let n=document.createElement(`canvas`);n.width=Math.max(1,Math.round(e.width*t)),n.height=Math.max(1,Math.round(e.height*t));let r=n.getContext(`2d`);r.scale(t,t);for(let t of e.ops)r.save(),r.globalAlpha=Math.min(1,t.alpha??1),t.clip&&(r.beginPath(),r.rect(t.clip.x,t.clip.y,t.clip.w,t.clip.h),r.clip()),nf[t.kind]?.(r,t),r.restore();return n}function af(e){let t=`FEFF`;for(let n of String(e??``)){let e=n.codePointAt(0),r=e>65535?[55296+(e-65536>>10),56320+(e-65536&1023)]:[e];for(let e of r)t+=e.toString(16).toUpperCase().padStart(4,`0`)}return`<${t}>`}function of(e){let t=e=>String(e).padStart(2,`0`);return`(D:${e.getUTCFullYear()}${t(e.getUTCMonth()+1)}${t(e.getUTCDate())}${t(e.getUTCHours())}${t(e.getUTCMinutes())}${t(e.getUTCSeconds())}Z)`}let sf=e=>String(Math.round(e*.75*100)/100);function cf(e,{title:t=``,creator:n=``,date:r=new Date}={}){let i=new TextEncoder,a=[],o=[],s=0,c=e=>{let t=typeof e==`string`?i.encode(e):e;a.push(t),s+=t.length},l=(e,...t)=>{o[e]=s,c(`${e} 0 obj\n`);for(let e of t)c(e);c(`
|
|
272
272
|
endobj
|
|
273
273
|
`)};c(`%PDF-1.4
|
|
274
|
-
`),c(new Uint8Array([37,226,227,207,211,10]));let u=e=>4+e*3;l(1,`<< /Type /Catalog /Pages 2 0 R >>`),l(2,`<< /Type /Pages /Kids [${e.map((e,t)=>`${u(t)} 0 R`).join(` `)}] /Count ${e.length} >>`),l(3,`<< /Title ${
|
|
274
|
+
`),c(new Uint8Array([37,226,227,207,211,10]));let u=e=>4+e*3;l(1,`<< /Type /Catalog /Pages 2 0 R >>`),l(2,`<< /Type /Pages /Kids [${e.map((e,t)=>`${u(t)} 0 R`).join(` `)}] /Count ${e.length} >>`),l(3,`<< /Title ${af(t)} /Creator ${af(n)} /Producer ${af(n)} /CreationDate ${of(r)} >>`),e.forEach((e,t)=>{let n=u(t),r=sf(e.width),i=sf(e.height);l(n,`<< /Type /Page /Parent 2 0 R /MediaBox [0 0 ${r} ${i}] /Resources << /XObject << /P${t} ${n+2} 0 R >> >> /Contents ${n+1} 0 R >>`);let a=`q ${r} 0 0 ${i} 0 0 cm /P${t} Do Q`;l(n+1,`<< /Length ${a.length} >>\nstream\n`,a,`
|
|
275
275
|
endstream`);let{image:o}=e;l(n+2,`<< /Type /XObject /Subtype /Image /Width ${o.width} /Height ${o.height} /ColorSpace /DeviceRGB /BitsPerComponent 8 /Filter /${o.filter} /Length ${o.data.length} >>\nstream\n`,o.data,`
|
|
276
|
-
endstream`)});let d=4+e.length*3,f=s;c(`xref\n0 ${d}\n0000000000 65535 f \n`);for(let e=1;e<d;e+=1)c(`${String(o[e]).padStart(10,`0`)} 00000 n \n`);c(`trailer\n<< /Size ${d} /Root 1 0 R /Info 3 0 R >>\nstartxref\n${f}\n%%EOF\n`);let p=new Uint8Array(s),m=0;for(let e of a)p.set(e,m),m+=e.length;return p}async function Hd(e){let t=new Blob([e]).stream().pipeThrough(new CompressionStream(`deflate`));return new Uint8Array(await new Response(t).arrayBuffer())}async function Ud(e){let{width:t,height:n}=e;if(typeof CompressionStream==`function`){let{data:r}=e.getContext(`2d`).getImageData(0,0,t,n),i=new Uint8Array(t*n*3);for(let e=0,t=0;e<r.length;e+=4,t+=3)i[t]=r[e],i[t+1]=r[e+1],i[t+2]=r[e+2];return{width:t,height:n,filter:`FlateDecode`,data:await Hd(i)}}let r=await new Promise(t=>{e.toBlob(t,`image/jpeg`,.92)});if(!r)throw Error(`image encoding failed`);return{width:t,height:n,filter:`DCTDecode`,data:new Uint8Array(await r.arrayBuffer())}}let Wd=null;function Gd(e){if(!Wd){Wd=new Uint32Array(256);for(let e=0;e<256;e+=1){let t=e;for(let e=0;e<8;e+=1)t=t&1?3988292384^t>>>1:t>>>1;Wd[e]=t>>>0}}let t=4294967295;for(let n of e)t=Wd[(t^n)&255]^t>>>8;return(t^4294967295)>>>0}function Kd(e){return{time:e.getHours()<<11|e.getMinutes()<<5|Math.floor(e.getSeconds()/2),day:Math.max(0,e.getFullYear()-1980)<<9|e.getMonth()+1<<5|e.getDate()}}function qd(e,t=new Date){let n=new TextEncoder,{time:r,day:i}=Kd(t),a=[],o=[],s=0;for(let t of e){let e=n.encode(t.name),c=Gd(t.data),l=t.data.length,u=new DataView(new ArrayBuffer(30));u.setUint32(0,67324752,!0),u.setUint16(4,20,!0),u.setUint16(6,2048,!0),u.setUint16(8,0,!0),u.setUint16(10,r,!0),u.setUint16(12,i,!0),u.setUint32(14,c,!0),u.setUint32(18,l,!0),u.setUint32(22,l,!0),u.setUint16(26,e.length,!0),u.setUint16(28,0,!0),a.push(new Uint8Array(u.buffer),e,t.data);let d=new DataView(new ArrayBuffer(46));d.setUint32(0,33639248,!0),d.setUint16(4,20,!0),d.setUint16(6,20,!0),d.setUint16(8,2048,!0),d.setUint16(10,0,!0),d.setUint16(12,r,!0),d.setUint16(14,i,!0),d.setUint32(16,c,!0),d.setUint32(20,l,!0),d.setUint32(24,l,!0),d.setUint16(28,e.length,!0),d.setUint32(42,s,!0),o.push(new Uint8Array(d.buffer),e),s+=30+e.length+l}let c=o.reduce((e,t)=>e+t.length,0),l=new DataView(new ArrayBuffer(22));l.setUint32(0,101010256,!0),l.setUint16(8,e.length,!0),l.setUint16(10,e.length,!0),l.setUint32(12,c,!0),l.setUint32(16,s,!0);let u=[...a,...o,new Uint8Array(l.buffer)],d=new Uint8Array(u.reduce((e,t)=>e+t.length,0)),f=0;for(let e of u)d.set(e,f),f+=e.length;return d}function Jd(e){return new Promise((t,n)=>{e.toBlob(e=>e?t(e):n(Error(`image encoding failed`)),`image/png`)})}function Yd({steps:e,title:t,kind:n=`ghost`}){let{t:a,settings:s,toast:c}=v(),l=w(),[u,d]=(0,r.useState)(!1),[f,p]=(0,r.useState)(null),_=(0,r.useRef)(null),y=(0,r.useRef)(null),b=s.boardTheme===`dark`||s.boardTheme!==`light`&&l?`dark`:`light`,x=s.boardFont===`standard`?`standard`:`hand`,S=m(t);function C(n){if(d(!1),!(!e?.length||f)){if(n===`md`){h(`${S}.md`,ft({title:t,steps:e}),`text/markdown`);return}p({id:Date.now(),format:n,done:0,total:0})}}function T(){y.current&&(y.current.cancelled=!0),y.current=null,p(null)}async function E(e,n){let r=_.current;if(!r)throw Error(`pages missing`);await jd(r),Md(r);let i=[...r.querySelectorAll(`[data-sheet]`)];p(e=>e&&{...e,total:i.length});let o=[];for(let[t,r]of i.entries()){if(n.cancelled)return;let i=await Pd(Nd(r,{scale:2})),a=Ld(i,2);o.push(e===`pdf`?{width:i.width,height:i.height,image:await Ud(a)}:await Jd(a)),p(e=>e&&{...e,done:t+1})}if(!(n.cancelled||!o.length))if(e===`pdf`)g(`${S}.pdf`,new Blob([Vd(o,{title:t,creator:`${a(`appName`)} · ${a(`appTagline`)}`})],{type:`application/pdf`}));else if(o.length===1)g(`${S}.png`,o[0]);else{let e=await Promise.all(o.map(async(e,t)=>({name:`${S}-${String(t+1).padStart(2,`0`)}.png`,data:new Uint8Array(await e.arrayBuffer())})));g(`${S}.zip`,new Blob([qd(e)],{type:`application/zip`}))}}return(0,r.useEffect)(()=>{if(!f)return;let e={cancelled:!1};return y.current=e,E(f.format,e).catch(()=>{e.cancelled||c(a(`exportFailed`))}).finally(()=>{y.current===e&&(y.current=null,p(null))}),()=>{e.cancelled=!0}},[f?.id]),(0,i.jsxs)(`span`,{className:`aha-menuAnchor`,children:[f?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Dl,{label:a(`exportingBoard`,{done:f.done,total:f.total||`…`})}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":n??void 0,"data-size":`sm`,onClick:T,children:a(`cancel`)})]}):(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":n??void 0,"data-size":`sm`,disabled:!e?.length,"aria-haspopup":`menu`,"aria-expanded":u,onClick:()=>d(e=>!e),children:[a(`exportBoard`),` ▾`]}),u?(0,i.jsxs)(`div`,{className:`aha-card aha-menu`,role:`menu`,onMouseLeave:()=>d(!1),children:[(0,i.jsx)(`button`,{type:`button`,role:`menuitem`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>C(`pdf`),children:a(`exportPdf`)}),(0,i.jsx)(`button`,{type:`button`,role:`menuitem`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>C(`png`),children:a(`exportPng`)}),(0,i.jsx)(`button`,{type:`button`,role:`menuitem`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>C(`md`),children:a(`exportMarkdown`)})]}):null,f?(0,o.createPortal)((0,i.jsx)(`div`,{ref:_,className:`aha-exportPages`,"aria-hidden":`true`,children:(0,i.jsx)(xl,{steps:e,title:t,theme:b,font:x,footer:{left:t,right:`${a(`appName`)} · ${a(`appTagline`)}`},animationLabel:a(`animationStill`),fixedLabel:a(`fixed`)})}),document.body):null]})}let Xd=Object.freeze([Object.freeze({family:`Aha Hand Latin`,file:`caveat-latin-d0b7b931.woff2`,bytes:48836,unicodeRange:`U+0,U+D,U+20-7E,U+A0-FF,U+131,U+152-153,U+20AC,U+2122`}),Object.freeze({family:`Aha Hand`,file:`wenkai-gb-0-88f1a875.woff2`,bytes:93632,unicodeRange:`U+20-7E,U+A0-AC,U+AE-FF,U+101,U+113,U+11B,U+12B,U+14D,U+16B,U+1CE,U+1D0,U+1D2,U+1D4,U+1D6,U+1D8,U+1DA,U+1DC,U+2C7,U+2C9,U+391-3A1,U+3A3-3A9,U+3B1-3C1,U+3C3-3C9,U+401,U+410-44F,U+451,U+2010-2016,U+2018-2022,U+2025-2027,U+2030-2037,U+2039-203F,U+2042,U+2044,U+2047-2049,U+2051-2052,U+205A,U+205D,U+2100-2101,U+2103,U+2105-2106,U+2109-210A,U+210E-210F,U+2113,U+2116-2117,U+211E,U+2120-2122,U+2126-2127,U+2129-212B,U+212E,U+2132,U+2135,U+213B,U+2141-2144,U+214B,U+214D-214E,U+2150-218B,U+2190-2199,U+21B6-21B9,U+21C4-21C6,U+21CB-21D0,U+21D2,U+21D4,U+21E6-21EA,U+21F5,U+2200-220D,U+220F,U+2211-2213,U+2215-2216,U+2219-2220,U+2223-2230,U+2234-2237,U+223C-223E,U+2242-2243,U+2245,U+2248,U+224B-224C,U+2251-2253,U+225C,U+2260-2262,U+2264-226B,U+226E-226F,U+2272-2273,U+2276-2277,U+2282-228B,U+2295-2299,U+229C-229E,U+22A0,U+22A2-22A5,U+22BF-22C5,U+22DA-22DB,U+22EE-22F1,U+2312,U+2460-249F,U+2500-25AB,U+25B1-25B3,U+25B6-25B7,U+25BC-25BD,U+25C0-25C1,U+25C6-25C7,U+25C9-25CC,U+25CE-25D3,U+25E2-25E6,U+25EF,U+25FB-25FC,U+2605-2606,U+2640,U+2642,U+3000-302D,U+3030,U+3033-303F,U+3041-3093,U+30A1-30F6,U+30FB,U+3105-3129,U+3220-3229,U+FF01-FF5E,U+FFE0-FFE1,U+FFE3,U+FFE5`}),Object.freeze({family:`Aha Hand`,file:`wenkai-gb-1-78a38e72.woff2`,bytes:315108,unicodeRange:`U+4E01,U+4E0D,U+4E11,U+4E19,U+4E1B-4E1C,U+4E22,U+4E2A,U+4E30,U+4E32,U+4E39,U+4E4E-4E4F,U+4E56,U+4E58,U+4E8C,U+4E92,U+4EA4-4EA5,U+4EA7-4EA8,U+4EC7,U+4ECE,U+4ED3,U+4ED8,U+4EE3,U+4EF6-4EF7,U+4EFD,U+4EFF,U+4F0E-4F10,U+4F19-4F1A,U+4F20,U+4F2F-4F30,U+4F34,U+4F43,U+4F46,U+4F4E,U+4F55,U+4F5B,U+4F70,U+4F73,U+4F88,U+4F97,U+4F9B,U+4FA7,U+4FAF,U+4FBF,U+4FC3-4FC4,U+4FD8,U+4FDD,U+4FED,U+4FEF,U+4FFA,U+500D,U+5012,U+5019,U+5021,U+5047,U+5065,U+507F,U+5085,U+508D,U+50A3,U+50A8,U+50AC,U+50B2,U+50F5,U+513F,U+5145,U+5149,U+5151,U+515A,U+515C,U+516B-516C,U+5171,U+5173,U+5175,U+5178,U+517C,U+5180,U+5188,U+518C,U+51A0,U+51AC,U+51AF-51B0,U+51B2,U+51BB,U+51CB,U+51CF,U+51D1,U+51E0-51E1,U+51E4,U+51F0,U+51F3,U+51F9-51FB,U+51FD,U+5200-5201,U+5206,U+5212,U+521A-521B,U+521D,U+522B,U+522E,U+5230,U+523A,U+523D,U+5241-5242,U+5250-5251,U+5265,U+526A,U+526F,U+5272,U+529E-52A0,U+52A8,U+52C3,U+52FE,U+5305-5306,U+5316-5317,U+5319,U+5320,U+532A,U+5349-534A,U+534E,U+5351,U+5355,U+535A,U+535C,U+535E,U+5373,U+5382,U+5384,U+5395,U+539A,U+53A8,U+53C2,U+53C9-53CA,U+53CD,U+53D1,U+53D8,U+53E0,U+53E4,U+53ED-53EE,U+53F7,U+53FC,U+5403-5404,U+5408-540A,U+540E,U+5420,U+5426-5429,U+542B,U+5435,U+5439,U+543C,U+5446,U+5448,U+544A,U+5475,U+547C,U+548C,U+5490,U+5495,U+54C0,U+54C4,U+54C6,U+54C8,U+54CE,U+54D7,U+54E5,U+54FA,U+54FC,U+5507,U+5509,U+5524,U+552C,U+5531,U+554A,U+5561,U+5589-558A,U+5598,U+559D,U+5609,U+560E,U+5632,U+563F,U+5676,U+568E,U+56DE,U+56E4,U+56F1,U+56FA,U+56FD,U+572D,U+5730,U+573A,U+573E,U+574A,U+574F,U+575A,U+575D,U+575F,U+5782,U+579B,U+57A2,U+57AB,U+57C2-57C3,U+57CE,U+57E0,U+57FA,U+5806,U+5815,U+5821,U+5824,U+5835,U+58A9,U+58C1,U+58D5,U+58F6,U+5904,U+5907,U+590D,U+591A,U+591F,U+5927,U+592B,U+592F,U+5939-593A,U+5949,U+594B,U+5954,U+5956,U+5960,U+5965,U+5978,U+597D,U+5987,U+5992-5993,U+59A8,U+59D1,U+59DC,U+59EC,U+5A25,U+5A5A,U+5AC1,U+5AC9,U+5AE1,U+5B58,U+5B63-5B64,U+5B69,U+5B75,U+5B89,U+5B8F,U+5B98,U+5B9A,U+5B9D,U+5BA0,U+5BA6,U+5BAB,U+5BB3,U+5BB6,U+5BBE,U+5BC2,U+5BC4,U+5BCC,U+5BD2,U+5BDF,U+5BE1,U+5BF8-5BF9,U+5BFC,U+5C01,U+5C06,U+5C14,U+5C16,U+5C18,U+5C1D,U+5C3A,U+5C42,U+5C94,U+5C97,U+5C9B,U+5CB8,U+5CE8,U+5CF0,U+5D07,U+5D14,U+5D29,U+5DDD,U+5DE2,U+5DE5,U+5DE9,U+5DEE,U+5DF1,U+5DF4,U+5E01,U+5E03,U+5E06,U+5E1B,U+5E1D,U+5E26,U+5E2E,U+5E38,U+5E45,U+5E4C,U+5E62,U+5E72,U+5E76,U+5E7B,U+5E7F,U+5E87,U+5E8A,U+5E95,U+5E97,U+5E9A,U+5E9C,U+5E9F,U+5EA6,U+5EFA,U+5F0A,U+5F13,U+5F17-5F18,U+5F1B,U+5F1F,U+5F27,U+5F39,U+5F52-5F53,U+5F69-5F6A,U+5F6C,U+5F7B-5F7C,U+5F85,U+5F88,U+5F8A,U+5F97,U+5FB7,U+5FBD,U+5FC5,U+5FCC,U+5FF1,U+5FFD,U+5FFF-6000,U+6016,U+6020,U+6025,U+602A,U+604D,U+6052,U+6062,U+6068-6069,U+606B,U+606D,U+6076,U+608D,U+6094,U+60A3,U+60B2,U+60B8,U+60BC,U+60D1,U+60E0,U+60E6,U+60E8-60E9,U+60EB,U+60ED-60F0,U+60F6,U+6101,U+611F,U+6124,U+6148,U+614C,U+6167,U+618B,U+61A8,U+61BE,U+61C2,U+61CA,U+6208,U+6210,U+6216,U+6233-6234,U+6237,U+623F,U+6241,U+624D,U+6252-6253,U+626E-626F,U+6273,U+6276,U+627C,U+627F-6280,U+6284,U+628A,U+6296,U+629A,U+62A4-62A5,U+62B1,U+62B5,U+62BD,U+62C2,U+62C5-62C6,U+62CC,U+62D0,U+62D4,U+62DC,U+62E3,U+62E8,U+62F1,U+6301-6302,U+6309,U+6321,U+6324-6325,U+6328,U+632B,U+634C-634D,U+6355,U+6361-6363,U+6376,U+6382,U+6387,U+6389,U+63A3,U+63AA,U+63B8,U+63BA,U+63D2,U+63E3,U+6400-6401,U+640F-6410,U+6413,U+641E,U+642C-642D,U+643D,U+6446,U+6448,U+6467,U+6491,U+64A4,U+64AD-64AE,U+64BC,U+64CD,U+64E6,U+6539,U+653B,U+653E,U+6545,U+654C,U+6556,U+655D-655E,U+6562,U+6566,U+6577,U+658C,U+6591,U+6597,U+65A5,U+65A7,U+65AD,U+65B9,U+65E2,U+65E6,U+65F1,U+6602,U+660C,U+660F,U+6625,U+6643,U+6666,U+6668,U+6697,U+66B4,U+66F4,U+66F9,U+670D,U+671D,U+672C,U+6735,U+673A,U+6746,U+6750-6751,U+675C,U+6760,U+676D,U+676F,U+677F,U+6781,U+6784,U+679C,U+67AB,U+67B6-67B7,U+67C4,U+67CF,U+67D1,U+67DC,U+67E5,U+67EC,U+67F4,U+6807,U+680B,U+6838-6839,U+683C,U+6842,U+6848,U+6853,U+6863,U+6868,U+6886,U+6897,U+68C0,U+68CD,U+68D2,U+68D8,U+68FA,U+6912,U+693D,U+693F,U+695A,U+6982,U+699C,U+69D0,U+69DB,U+69FD,U+6A0A,U+6A2A,U+6A59,U+6A71,U+6B21-6B22,U+6B4C,U+6B64-6B65,U+6B79,U+6B7C,U+6B86,U+6B8B,U+6BB5,U+6BBF,U+6BC1,U+6BD2,U+6BD4-6BD6,U+6BD9,U+6BEB,U+6C1B,U+6C1F,U+6C26,U+6C28,U+6C2E,U+6C47,U+6C49,U+6C57,U+6C5E-6C60,U+6C72,U+6C7E,U+6C89,U+6C9F,U+6CA7,U+6CAA,U+6CB3,U+6CB8,U+6CBD,U+6CCA,U+6CD5,U+6CDB,U+6CE2,U+6CF5,U+6D1E,U+6D2A,U+6D31,U+6D3B,U+6D46-6D47,U+6D4B,U+6D4E,U+6D51,U+6D69,U+6D6E,U+6D77,U+6DA3-6DA4,U+6DA7,U+6DAA,U+6DB5,U+6DB8,U+6DC0,U+6DE1,U+6DEC,U+6DEE,U+6DF3,U+6DF7,U+6E10,U+6E21,U+6E24,U+6E2F,U+6E56,U+6E85,U+6E89,U+6EC1,U+6EC7,U+6ED1,U+6EDA,U+6EE8,U+6EF4,U+6F6E,U+6F84,U+6F88,U+6FB3,U+6FC0,U+6FD2,U+704C,U+706B,U+706F-7070,U+707F,U+708A,U+7092,U+70B3,U+70B9,U+70BD,U+70D8,U+70E6,U+70E9,U+70FD,U+710A,U+7115,U+7119-711A,U+7126,U+714C,U+714E,U+71AC,U+7206,U+7231,U+7236,U+7238-7239,U+7248,U+728A,U+72AF,U+72C4,U+72C8,U+72D0,U+72D7,U+72E0,U+72EC,U+7316,U+731C,U+7334,U+733E,U+73AF,U+73BB,U+73D0,U+73ED,U+745A,U+7470,U+74DC,U+74E3,U+74F7,U+7518,U+752B,U+752D,U+7532,U+7535,U+7538,U+753B,U+7545,U+756A,U+7574,U+7578,U+7586,U+7599,U+75A4,U+75AE-75AF,U+75B5,U+75BE,U+75C5,U+75D5,U+75D8,U+75EA,U+75F4,U+75F9,U+7601,U+7629-762A,U+764C,U+7678,U+767B,U+767D-767E,U+7684,U+7687,U+768B,U+7691,U+76CE,U+76D1-76D2,U+76D6-76D7,U+76EF,U+76FE,U+7763,U+776C,U+7779,U+7785,U+77AA,U+77D7,U+77ED-77EE,U+77FE,U+7840,U+7845,U+7877,U+7889,U+788D,U+7891,U+7898,U+789F,U+78A7,U+78B1,U+78B4,U+78C1,U+78C5,U+78CB,U+78FA,U+7901,U+796D,U+7977-7978,U+798F,U+79BE,U+79C6,U+79C9,U+79E4,U+79EF-79F0,U+79FD,U+7A0B,U+7A17,U+7A20,U+7A3B-7A3D,U+7A3F,U+7A7F,U+7A97,U+7A9C,U+7AEF,U+7AFF,U+7B06,U+7B14,U+7B1B,U+7B26,U+7B28,U+7B2C,U+7B3A,U+7B49,U+7B4F,U+7B54,U+7B56,U+7B79,U+7B80,U+7B8D,U+7B94-7B95,U+7BA1,U+7BAD,U+7BD9,U+7BE1,U+7C07,U+7C27,U+7C3F,U+7C4D,U+7C89,U+7C97,U+7CAA,U+7CB9,U+7CCA,U+7CD5,U+7CD9,U+7E41,U+7EA2,U+7EA7,U+7EAA,U+7EAF,U+7EB2,U+7EB7,U+7EBA,U+7ECA,U+7ED1,U+7ED8-7ED9,U+7EE7,U+7EE9,U+7EF0,U+7EF7-7EF8,U+7F04,U+7F09,U+7F0E,U+7F13-7F14,U+7F16,U+7F1A,U+7F1D,U+7F20,U+7F38,U+7F50,U+7F55,U+7F5A,U+7F62,U+7F94,U+7FB9,U+7FC5,U+7FDF-7FE0,U+7FF0-7FF1,U+7FFB,U+800C,U+8015,U+8017,U+8019,U+8033,U+803B,U+803D,U+803F,U+806A,U+808C,U+809A-809B,U+809D,U+80A0-80A1,U+80A4-80A5,U+80A9-80AA,U+80AE,U+80BA,U+80C6,U+80CC,U+80DE,U+80E1,U+80F3,U+80F6,U+80FA,U+8106,U+810A,U+8116,U+812F,U+8150-8151,U+8179,U+8180,U+818A,U+818F,U+8198,U+81C2,U+81E3,U+81ED,U+822A,U+822C,U+8230-8231,U+8235-8236,U+8239,U+8270,U+827E,U+82AC-82AD,U+82B1,U+82B3,U+82CD,U+82DE-82DF,U+82EF,U+8303,U+8327-8328,U+832C,U+8336,U+8349,U+8350,U+8352,U+835A,U+8361,U+8364,U+8377,U+83B7,U+83C7,U+83CF,U+83DC,U+83E0,U+83F2,U+845B,U+8463,U+846B,U+8471,U+8482,U+848B,U+84D6,U+84DF,U+8521,U+853C-853D,U+8549,U+8584,U+85CF,U+85E9,U+864E,U+866B,U+8679,U+868C,U+8695,U+86CA-86CB,U+86D4,U+86E4,U+86FE,U+8702,U+8749,U+8757,U+8774,U+8776,U+8822,U+8861,U+8865,U+8868,U+886C,U+8884,U+888B,U+88AB,U+88B1,U+88C1,U+88F9,U+8902,U+8910,U+8912,U+8986,U+89C1-89C2,U+89C4,U+89E6,U+8BA1-8BA3,U+8BA5,U+8BB0,U+8BB2-8BB3,U+8BB9,U+8BBD,U+8BBF,U+8BCD,U+8BDA,U+8BDD-8BDE,U+8BE1,U+8BE5,U+8BE7,U+8BF2,U+8BFB,U+8BFD,U+8C03,U+8C0D-8C0E,U+8C17,U+8C24,U+8C37,U+8C41,U+8C46,U+8C62,U+8C6A,U+8C79-8C7A,U+8C89,U+8D1D,U+8D1F,U+8D21-8D22,U+8D25,U+8D27,U+8D29,U+8D2C-8D2D,U+8D2F-8D31,U+8D35,U+8D37,U+8D39-8D3A,U+8D3E-8D3F,U+8D4B-8D4C,U+8D50,U+8D63-8D64,U+8D6B,U+8D74,U+8D76,U+8D81,U+8D85,U+8DCB-8DCC,U+8DDF,U+8DEA,U+8DF5,U+8DFA,U+8E0C,U+8E29,U+8E48,U+8E66,U+8E6C-8E6D,U+8E72,U+8E7F,U+8E87,U+8EAC,U+8EB2,U+8F66,U+8F68,U+8F70,U+8F85,U+8F88-8F8A,U+8F90-8F91,U+8F9C,U+8F9E-8F9F,U+8FA8-8FA9,U+8FAB,U+8FB0,U+8FB9,U+8FBE,U+8FC7,U+8FD4,U+8FD8,U+8FDF,U+8FEA,U+8FED,U+8FF8-8FF9,U+9012,U+9017,U+901B,U+901E,U+9022,U+902E,U+903C,U+9041,U+904D,U+904F,U+9053,U+907F,U+9093,U+90A6,U+90AF,U+90CA,U+90DD,U+90E8,U+90ED,U+90F4,U+90F8,U+90FD,U+9102,U+9119,U+915A,U+9163,U+916C,U+9171,U+9187,U+918B,U+91C7,U+91DC,U+9274,U+9489,U+9492-9493,U+9499,U+949D-949E,U+94A1-94A2,U+94A9,U+94B5,U+94BE,U+94C2,U+94EC,U+94F2,U+9504-9505,U+950B,U+9519,U+9524,U+952D-952E,U+953B,U+9540,U+9550-9551,U+957F,U+95ED,U+95EF,U+95F4,U+95FA,U+9600-9602,U+9610,U+961C,U+961F,U+9632,U+963F,U+9644-9645,U+9648,U+964D,U+965B,U+9661,U+9664,U+9694,U+9698,U+96C6-96C7,U+96CC,U+96CF,U+96D5,U+96F9,U+970D,U+9738,U+975B,U+975E,U+9769,U+9776,U+978D,U+97AD,U+97E9,U+9876,U+987E-987F,U+9881,U+988A,U+989D,U+98A0,U+98A4,U+98CE,U+98DE,U+9910,U+9965,U+996D,U+996F,U+9971,U+9975,U+997C,U+997F,U+9986,U+998B,U+9A70,U+9A73,U+9A7E,U+9A84,U+9A87,U+9A8B,U+9AA8,U+9AB8,U+9AD8,U+9B3C,U+9B42,U+9C8D,U+9CD6,U+9E21,U+9E3D,U+9E3F,U+9E45,U+9E64,U+9EC4,U+9ED1,U+9F0E,U+9F13,U+9F3B,U+9F7F,U+9F9A,U+9F9F`}),Object.freeze({family:`Aha Hand`,file:`wenkai-gb-2-2a649892.woff2`,bytes:317648,unicodeRange:`U+4E03,U+4E09-4E0A,U+4E14,U+4E16,U+4E18,U+4E24,U+4E27,U+4E34,U+4E3D-4E3E,U+4E43,U+4E45,U+4E48,U+4E50,U+4E52-4E54,U+4E5D-4E5E,U+4E70-4E71,U+4E73,U+4E7E,U+4E86,U+4E8B,U+4E8F,U+4E95,U+4EA2,U+4EA9,U+4EAC,U+4EAE,U+4EB2,U+4EBA,U+4EC0-4EC1,U+4EC5-4EC6,U+4ECA-4ECB,U+4ECD,U+4ED1,U+4ED5,U+4EDF,U+4EE4,U+4EEC,U+4EFB,U+4F01,U+4F1E,U+4F24,U+4F26,U+4F36,U+4F38,U+4F60,U+4F69,U+4F6C,U+4F7F,U+4F8B,U+4F8D,U+4FA3,U+4FA5,U+4FA8-4FA9,U+4FB5,U+4FCA,U+4FCF-4FD0,U+4FE9,U+4FF1,U+5014,U+501F,U+5026,U+502A,U+503E,U+504F,U+5076,U+5080,U+5088,U+50BB,U+50DA,U+50E7,U+50FB,U+5112,U+5121,U+514B,U+514D,U+5162,U+5165,U+5168,U+516D,U+5170,U+5176-5177,U+5185,U+5189,U+5192,U+5195,U+5197,U+519B-519C,U+51B3,U+51B5,U+51B7,U+51C0,U+51C4,U+51C9,U+51CC,U+51DB,U+51DD,U+51ED,U+51EF,U+5203,U+5207,U+520A,U+5217-5218,U+5220,U+5224,U+5228-5229,U+5238-5239,U+523B,U+524D,U+5256,U+5267,U+5269,U+527F,U+5288,U+529B,U+529D,U+52A3,U+52AA-52AB,U+52B1-52B3,U+52BF,U+52C9,U+52D2,U+52D8,U+52DF,U+52E4,U+52FA,U+5321,U+5339-533A,U+533F,U+5341,U+5343,U+5347,U+5356-5357,U+5361-5362,U+5364,U+536F,U+5374-5375,U+5377,U+537F,U+5386,U+5389,U+5398,U+53A9,U+53BB,U+53C1,U+53D6-53D7,U+53DB,U+53E3,U+53E5-53E6,U+53EB,U+53EF,U+53F2,U+540D,U+540F,U+5415,U+5417,U+541B,U+541D,U+542D,U+542F,U+5450,U+5455,U+545B,U+5462,U+5478,U+547B,U+547D,U+5480,U+5486,U+548E,U+5496,U+5499,U+54AF,U+54B3,U+54C1,U+54E6,U+54E8-54EA,U+54ED,U+552E,U+5543,U+5546,U+5564-5566,U+556A,U+556E,U+5580,U+5584,U+5587,U+55B7,U+55D3,U+55DC,U+561B,U+5668,U+566C,U+56B7,U+56BC,U+56CA,U+56DA,U+56F0,U+5703,U+5708,U+5723,U+5747,U+574E,U+5751,U+5757,U+5761,U+5764,U+576A,U+576F,U+5777,U+5783-5784,U+5792,U+57A6,U+57AE,U+57CB,U+57D4,U+57F9,U+5811,U+582A,U+585E,U+5883,U+5892-5893,U+5899,U+58A8,U+58E4,U+58EB-58EC,U+58F0,U+58F3,U+5931,U+5938,U+5947-5948,U+594E,U+5951,U+5962,U+5973-5974,U+5976,U+5982,U+5988,U+598A,U+5999,U+59AE,U+59B9,U+59BB,U+59C6,U+59CB,U+59D0,U+59E5,U+5A04,U+5A07,U+5A18,U+5A1C,U+5A1F-5A20,U+5A29,U+5A36,U+5A46,U+5A6A,U+5A76,U+5A92,U+5A9A,U+5AC2,U+5AE9,U+5B54,U+5B5F,U+5B6A,U+5B7A,U+5B7D,U+5B81,U+5B88,U+5B9E,U+5BA1-5BA2,U+5BA4,U+5BB9,U+5BBD,U+5BC6-5BC7,U+5BD0,U+5BDD-5BDE,U+5BE5,U+5BFF,U+5C04,U+5C11,U+5C1A,U+5C31,U+5C38,U+5C3C-5C3D,U+5C3F-5C41,U+5C45,U+5C48,U+5C4A,U+5C4E-5C4F,U+5C61,U+5C65,U+5C71,U+5C82,U+5CAD,U+5CBF,U+5CE6,U+5CED,U+5CFB,U+5D0E,U+5D4C,U+5DE7-5DE8,U+5DFE,U+5E02,U+5E08,U+5E15,U+5E18,U+5E3D,U+5E42,U+5E55,U+5E73-5E74,U+5E86,U+5E90,U+5E93,U+5E99,U+5E9E,U+5EB7,U+5EC9-5ECA,U+5ED3,U+5ED6,U+5F00,U+5F03-5F04,U+5F0F,U+5F25,U+5F31,U+5F3A,U+5F55,U+5F6D,U+5F84,U+5F8B,U+5F98,U+5FCD,U+5FD9,U+5FEB,U+5FF5,U+6012,U+6015,U+601C,U+602F,U+6043,U+604B,U+6050,U+6070,U+6073,U+607C,U+6084,U+60A8,U+60AF,U+60C5,U+60CA,U+60E7,U+60F9,U+6127,U+614E,U+6151,U+6155,U+6162,U+6168,U+6177,U+61D2,U+61E6,U+620E,U+6212,U+621A,U+622A,U+622E,U+6247,U+624B,U+6251,U+6254,U+625B,U+6263,U+6266,U+6269,U+626B,U+626D,U+6270,U+6279,U+6289,U+6297,U+629B,U+62A0-62A2,U+62A8,U+62AB,U+62B9,U+62BF,U+62C7-62C9,U+62CD-62CE,U+62D2,U+62D8,U+62DF,U+62E2,U+62E6-62E7,U+62EC-62ED,U+62F3,U+62F7,U+62FC,U+62FE-62FF,U+630E,U+631B,U+6320,U+632A,U+6346,U+634E-6350,U+635E,U+6367,U+636E,U+6377,U+637B,U+6388,U+6390,U+6392,U+6398,U+63A0,U+63A5,U+63A7,U+63B3,U+63C9,U+63CF,U+63E9-63EA,U+63ED,U+63FD,U+6402,U+6405,U+6414,U+6444,U+6469,U+6478-6479,U+6482,U+6485,U+6487,U+6492,U+64A9,U+64AC,U+64B5,U+64C2,U+64C5,U+64CE,U+64D2,U+6500,U+6518,U+652B,U+6536,U+654F,U+6551,U+6559,U+655B,U+6563,U+656C,U+6572,U+6599,U+65A4,U+65BD,U+65C1,U+65C5,U+65D7,U+65E5,U+65E7,U+65F6-65F7,U+6606,U+660E,U+6627,U+662F,U+664B-664C,U+6652,U+666E-666F,U+6674,U+6676,U+667E,U+6696,U+66AE,U+66DD,U+66F2,U+66FC,U+670B,U+6717,U+671F,U+6728,U+672B,U+6734,U+6740,U+6743,U+6749,U+674E,U+6765,U+6770,U+6797,U+679A,U+67AA,U+67AF,U+67D0,U+67D2-67D4,U+67E0,U+67EF,U+67F3,U+67FF,U+680F,U+6816-6817,U+6846,U+6851,U+6854,U+6865,U+6881,U+6885,U+68A2,U+68A6,U+68A8,U+68C9,U+68CB,U+68DA,U+68EE,U+68F1,U+68F5,U+695E,U+6977,U+697C,U+6994,U+69B4,U+69B7,U+6A21,U+6A47,U+6AAC,U+6B20,U+6B27,U+6B3A,U+6B3E,U+6B49,U+6B67,U+6BB4,U+6BCD,U+6BCF,U+6BD7,U+6BDB,U+6C0F,U+6C11,U+6C13-6C14,U+6C16,U+6C22,U+6C2F-6C30,U+6C42,U+6C55,U+6C5D,U+6C7D,U+6C81,U+6C88,U+6C8F,U+6C99,U+6C9B,U+6CA1,U+6CA4-6CA6,U+6CAB,U+6CAE,U+6CC5,U+6CC9,U+6CCC,U+6CDE,U+6CE1,U+6CE3,U+6CE5,U+6CEA,U+6CFC,U+6D01,U+6D12,U+6D1B,U+6D25,U+6D3D-6D3E,U+6D41,U+6D45,U+6D53,U+6D5A,U+6D66,U+6D6A,U+6D78,U+6D85,U+6D89,U+6D9D,U+6D9F,U+6DA6,U+6DA9,U+6DCB,U+6DD6,U+6DF1,U+6E05,U+6E17,U+6E20,U+6E34,U+6E3A,U+6E43,U+6E7F,U+6E83,U+6E9C,U+6EB6,U+6EBA,U+6EE1,U+6EE4-6EE6,U+6F02,U+6F06,U+6F0F,U+6F13,U+6F20,U+6F2B,U+6F58,U+6F5C,U+6F5E,U+6F66,U+6F8E,U+6F9C,U+7011,U+706D,U+7075,U+7078,U+7089,U+7094-7095,U+70AC,U+70AE-70AF,U+70BC,U+70C2,U+70C8,U+70D9,U+70E4,U+70E7,U+70EC-70ED,U+70F9,U+7136,U+715E,U+7164,U+717D,U+7194,U+71C3,U+71CE,U+722C,U+7235,U+7247,U+724C,U+725B,U+725F,U+7261-7262,U+7267,U+7272,U+7275,U+7281,U+72AC,U+72C2,U+72D9,U+72DE,U+72E1,U+72EE,U+72F8,U+72FC,U+730E,U+731B,U+732B,U+7387,U+7396,U+739B,U+73AB,U+73B2,U+73CA,U+7403,U+7405-7406,U+7409,U+7433-7436,U+743C,U+745E-745F,U+7483,U+74E2,U+74E4,U+74F6,U+751A,U+751F,U+7525,U+7533,U+7537,U+754C,U+7554,U+7559,U+7565-7566,U+7597,U+759A,U+759F,U+75A5,U+75B2,U+75BD,U+75C9-75CA,U+75DE,U+75E2,U+7624,U+7638,U+7686,U+76AE,U+76BF,U+76C6,U+76D4,U+76D8,U+76DB,U+76DF,U+76EE,U+76F2,U+76FC,U+7701,U+7709,U+770B,U+7720,U+772F,U+7736-7737,U+775B,U+7766,U+776B,U+7784,U+7792,U+77A5,U+77A7,U+77DB,U+77E2,U+77E9,U+77EB,U+77F3,U+77FF,U+7801-7802,U+780C-780D,U+7812,U+7830,U+7834,U+7837,U+783E,U+786B,U+786E,U+787C,U+788C,U+78B0,U+78BE,U+78CA,U+78D0,U+78D5,U+78E8,U+78F7,U+793A,U+793C,U+793E,U+7941,U+7948,U+795E,U+7968,U+7981,U+7984,U+79BB,U+79BD,U+79CB,U+79D1-79D2,U+79D8,U+79E6,U+79F8,U+7A0D,U+7A46,U+7A76-7A77,U+7A7A,U+7A83,U+7A8D,U+7A96,U+7A98,U+7A9F,U+7AA5,U+7ABF,U+7ACB,U+7ADE-7ADF,U+7AE3,U+7AED,U+7B3C,U+7B4B,U+7B50,U+7B5B,U+7B77,U+7B7E,U+7BA9,U+7BC7,U+7BD3,U+7BEE,U+7BF1,U+7BF7,U+7C73,U+7C7B,U+7C92,U+7C95,U+7CAE,U+7CB1,U+7CB3,U+7CBE,U+7CDC,U+7CE0,U+7CEF,U+7D27,U+7D2F,U+7EA0,U+7EAB,U+7EB1,U+7EB3,U+7EB6,U+7EBD,U+7EC3,U+7EC5,U+7ECD,U+7ECF,U+7ED2-7ED3,U+7ED5,U+7EDC-7EDE,U+7EE2,U+7EF3,U+7EF5,U+7EFF,U+7F05-7F06,U+7F15,U+7F2E,U+7F34,U+7F3A,U+7F57,U+7F8C,U+7F8E,U+7F9A,U+7FA4,U+7FD8,U+8001,U+8003,U+8010,U+802A,U+8042,U+804A-804B,U+8054,U+8058,U+805A,U+8089,U+808B,U+80AF,U+80BE,U+80D6,U+80DA,U+80DC,U+80EF,U+80FD,U+8109,U+8110-8111,U+8113,U+811A,U+8138,U+813E,U+814A,U+8154,U+816E,U+817B,U+819C,U+81A8,U+81B3,U+81FC,U+8205,U+820C-820D,U+826F,U+8272,U+8282,U+828D,U+8292,U+82A5-82A6,U+82B9,U+82D7,U+82DB,U+82E5-82E6,U+82EB,U+82F9,U+8302,U+8304-8305,U+830E,U+832B,U+8338-8339,U+8346,U+8354,U+8363,U+8386,U+8389,U+838E,U+83AB,U+83B1-83B2,U+83BD,U+83CA,U+83CC,U+83E9,U+83F1,U+840C-840D,U+841D,U+8428,U+843D,U+8461,U+8475,U+8499,U+84B2,U+84C9,U+84DD,U+84EC,U+8511,U+8513,U+852B,U+8537,U+854A,U+857E,U+85C9,U+85D0,U+85D5,U+8611,U+864F-8651,U+8671,U+8680,U+8682,U+86C6-86C7,U+86EE,U+871C,U+8721,U+878D,U+879F,U+87BA,U+8815,U+8857,U+886B,U+888D,U+88C2,U+88D9,U+88E4,U+88F3-88F4,U+88F8,U+8925,U+895F,U+89C5-89C6,U+89C8-89C9,U+89D2,U+89E3,U+8A93,U+8B66,U+8B6C,U+8BA4,U+8BA9,U+8BAB,U+8BBA,U+8BBE,U+8BC0,U+8BC4,U+8BC6,U+8BD5,U+8BD7,U+8BEB,U+8BF7,U+8BFA,U+8BFE,U+8C05,U+8C0B,U+8C1C,U+8C26,U+8C28-8C29,U+8C2C,U+8C30-8C31,U+8C34,U+8C8C,U+8D2B,U+8D38,U+8D41-8D42,U+8D4A,U+8D4F,U+8D54,U+8D56,U+8D5B,U+8D61,U+8D66,U+8D77,U+8D8B,U+8DA3,U+8DB4,U+8DD1,U+8DDD,U+8DE8,U+8DEF,U+8E1E,U+8EAB,U+8EAF,U+8F6E-8F6F,U+8F7B,U+8F7F,U+8F83,U+8F86,U+8FA3,U+8FB1,U+8FBD,U+8FC1,U+8FC4,U+8FC8,U+8FD1,U+8FDB,U+8FDE,U+8FEB,U+8FF7,U+9002,U+9006,U+901D,U+903B,U+9063,U+90A3,U+90B1,U+90B5,U+90BB,U+90CE,U+90E1,U+914B,U+914D,U+9152,U+916A,U+9175-9177,U+917F,U+919A-919B,U+91CA,U+91CC,U+91CF,U+91D1,U+948E,U+94A0,U+94A6-94A7,U+94AE,U+94B1,U+94B3,U+94C3,U+94C5-94C6,U+94DD,U+94ED,U+94F0,U+94FA,U+94FE,U+9510,U+951A,U+9523,U+9526,U+952F-9530,U+9539,U+9541,U+954A,U+954D,U+955C,U+9563,U+956D,U+9570,U+95E8,U+95EA,U+95F0,U+95F7,U+95F9,U+95FD,U+9611,U+9614,U+962E,U+9636,U+9646-9647,U+964B-964C,U+9655,U+966A,U+9675,U+9686,U+96B6,U+96BE,U+96C0,U+96F6-96F7,U+9709,U+9713,U+9716,U+9732,U+9739,U+9752,U+9756,U+9759,U+9760-9762,U+9773,U+9798,U+97A0,U+97E7,U+97ED,U+97F6,U+9877,U+9885-9888,U+9891,U+9897,U+98A7,U+98D8,U+98DF,U+9970,U+9976,U+997A,U+9981,U+9988,U+998F,U+9992,U+9996,U+9A6C,U+9A71,U+9A74,U+9A76,U+9A79,U+9A82,U+9A86,U+9A8F,U+9A91,U+9A97,U+9A9A,U+9AA1,U+9B41,U+9B44,U+9B54,U+9C81,U+9CA4,U+9CB8,U+9CC3,U+9CDE,U+9E1F,U+9E23,U+9E25,U+9E43,U+9E4A,U+9E4F,U+9E7F,U+9E93,U+9EA6,U+9EBB,U+9ECE,U+9ED4,U+9ED8,U+9F50,U+9F84,U+9F8B,U+9F99`}),Object.freeze({family:`Aha Hand`,file:`wenkai-gb-3-6949c050.woff2`,bytes:311704,unicodeRange:`U+4E00,U+4E07-4E08,U+4E0B,U+4E0E,U+4E13,U+4E1A,U+4E1D,U+4E25,U+4E2B,U+4E2D,U+4E38,U+4E3A-4E3B,U+4E49,U+4E4B-4E4D,U+4E59,U+4E5F-4E61,U+4E66,U+4E88-4E89,U+4E8E,U+4E91,U+4E94,U+4E9A-4E9B,U+4EA1,U+4EA6,U+4EAB,U+4EAD,U+4EBF,U+4ED4,U+4ED6-4ED7,U+4ED9,U+4EE5,U+4EEA,U+4EF0,U+4EF2,U+4F0A,U+4F0D,U+4F11,U+4F17-4F18,U+4F1F,U+4F2A,U+4F3A,U+4F3C,U+4F4D,U+4F4F-4F51,U+4F53,U+4F59,U+4F5C,U+4F63,U+4F6F,U+4F84,U+4F9D,U+4FA0,U+4FA6,U+4FAE,U+4FD7,U+4FDE,U+4FE1,U+4FEE,U+5018,U+501A,U+503A,U+503C,U+505A,U+505C,U+5077,U+50CF,U+50F3,U+5141,U+5143-5144,U+5146,U+5148,U+5154,U+5174,U+5179,U+517B,U+517D,U+518D,U+5199,U+51A4,U+51B6,U+51C6,U+51F6,U+51F8,U+51FF,U+5211,U+5219,U+5236-5237,U+5243,U+524A,U+5254,U+52A1,U+52A9,U+52C7,U+52CB,U+52FF-5300,U+5308,U+531D,U+5323,U+533B,U+5348,U+534F,U+5352-5353,U+5360,U+5367,U+536B,U+5370-5371,U+5378,U+5385,U+538B-538C,U+539F,U+53A2,U+53A6,U+53BF,U+53C8,U+53CB-53CC,U+53D4,U+53D9,U+53EA,U+53EC,U+53F0,U+53F3,U+53F6,U+53F8-53F9,U+5401,U+540C,U+5410-5411,U+5413,U+541E-541F,U+542C,U+542E,U+5431,U+5434,U+5438,U+543B,U+543E,U+5440,U+5458,U+545C,U+5468,U+5473,U+548B,U+548F,U+5492,U+54A8,U+54AC,U+54B1,U+54B8,U+54BD,U+54C7,U+54C9,U+54CD,U+54D1,U+54DF,U+54EE,U+54F2,U+5501,U+5506,U+5510,U+552F,U+553E,U+5544,U+5578,U+557C,U+5582,U+559C,U+55A7,U+55B3,U+55BB,U+55C5,U+55E1,U+55E3,U+55FD,U+5618,U+5631,U+5634,U+5636,U+563B,U+564E,U+566A,U+568F,U+56A3,U+56DB,U+56E0,U+56E2,U+56ED,U+56F4,U+56FE,U+5706,U+571F,U+5728,U+5740,U+574D,U+5750,U+575B,U+575E,U+5760,U+5766,U+578B,U+57A3,U+57DF,U+5802,U+5830,U+584C,U+5851,U+5854,U+5858,U+586B,U+5885,U+589E-589F,U+58EE,U+58F9,U+590F,U+5915-5916,U+591C,U+5929-592A,U+592E,U+5934,U+5937,U+5944,U+594F,U+5957,U+5979,U+5984,U+5986,U+5996,U+59A5,U+59D3-59D4,U+59DA,U+59E8,U+59FB,U+59FF,U+5A01,U+5A03,U+5A31,U+5A49,U+5A74,U+5A7F,U+5AB3,U+5ACC,U+5B50,U+5B55,U+5B57,U+5B59,U+5B5C-5B5D,U+5B66,U+5B70,U+5B83,U+5B85,U+5B87,U+5B8B-5B8C,U+5B97,U+5B99,U+5B9B-5B9C,U+5BA3,U+5BAA,U+5BB0,U+5BB4-5BB5,U+5BBF,U+5BC5,U+5BD3,U+5BE8,U+5BFA-5BFB,U+5C09-5C0A,U+5C0F,U+5C24,U+5C27,U+5C39,U+5C3E,U+5C49,U+5C4B,U+5C51,U+5C55,U+5C5E,U+5C60,U+5C6F,U+5C79,U+5C7F,U+5C81,U+5CA9,U+5CB3,U+5CD9,U+5CE1,U+5CEA,U+5D16,U+5D2D,U+5DCD,U+5DDE,U+5DE1,U+5DE6,U+5DEB,U+5DF2-5DF3,U+5DF7,U+5E05,U+5E0C,U+5E10,U+5E16,U+5E1A,U+5E1C,U+5E27,U+5E2D,U+5E78,U+5E7C-5E7D,U+5E84,U+5E8F,U+5E94,U+5EA7,U+5EAD,U+5EB6,U+5EB8,U+5EF6-5EF7,U+5F02,U+5F15,U+5F20,U+5F26,U+5F2F,U+5F5D,U+5F62,U+5F64,U+5F66,U+5F70-5F71,U+5F79,U+5F80-5F81,U+5F90,U+5F92,U+5FA1,U+5FAA,U+5FAE,U+5FC3,U+5FC6,U+5FD7-5FD8,U+5FE0,U+5FE7,U+5FFB,U+6001-6002,U+600E,U+6014,U+601D,U+6027-6028,U+603B,U+6055,U+6064,U+606C,U+606F,U+607F,U+6089,U+609F-60A0,U+60A6,U+60AC,U+60CB,U+60D5,U+60DC,U+60DF,U+60F3,U+60FA,U+6108-6109,U+610F,U+611A,U+613F,U+6170,U+618E,U+61C8,U+620A,U+620C-620D,U+620F,U+6211,U+6218,U+6240,U+624E,U+6258,U+6267,U+626C,U+627E,U+6291-6293,U+6295,U+6298,U+62AC,U+62BC,U+62C4,U+62D3,U+62D6,U+62D9,U+62DB,U+62E5,U+62E9,U+62EF,U+62F4,U+62FD,U+6307,U+6311,U+6316,U+631A,U+631D-631F,U+6323,U+632F,U+633A,U+633D,U+6342,U+6345,U+6349,U+635F,U+6380,U+638C,U+638F,U+6396,U+63A2,U+63A8-63A9,U+63B7,U+63CD,U+63D0,U+63D6,U+63E1,U+63F4,U+641C,U+642A,U+643A,U+6447,U+644A,U+6454,U+6458,U+6495,U+649E,U+64B0,U+64DE,U+6512,U+652F,U+653F,U+6548,U+6570,U+6574,U+6587,U+658B,U+659C,U+659F,U+65A1,U+65A9,U+65AF-65B0,U+65CB,U+65CF,U+65E0,U+65E8-65E9,U+65EC-65ED,U+65FA,U+6613-6614,U+661F-6620,U+6628,U+662D,U+663C,U+663E,U+6653,U+6655,U+665A,U+6664,U+6670,U+667A,U+6682,U+6687,U+6691,U+66D9,U+66F0,U+66F3,U+66FE-6700,U+6708-6709,U+6714,U+671B,U+672A,U+672D,U+672F,U+6731,U+673D,U+6742,U+674F,U+6756,U+675F,U+6761,U+6768,U+677E,U+6789,U+6790,U+6795,U+679D,U+67A2-67A3,U+67DE,U+67F1,U+6805,U+6808,U+6811,U+6813,U+6821,U+682A,U+6837,U+683D,U+6843,U+6845,U+684C,U+6850,U+6869,U+6876,U+68A7,U+68AD,U+68AF-68B0,U+68B3,U+68D5,U+68E0,U+6905,U+690D-690E,U+692D,U+6930,U+6954,U+6986,U+69A8,U+6A1F,U+6A31,U+6A61,U+6A80,U+6A84,U+6B23,U+6B32,U+6B47,U+6B62-6B63,U+6B66,U+6B6A,U+6B7B,U+6B83,U+6B89-6B8A,U+6B96,U+6BB7,U+6BC5,U+6BCB,U+6BE1,U+6BEF,U+6C27,U+6C34,U+6C38,U+6C40-6C41,U+6C50,U+6C5B,U+6C61,U+6C64,U+6C6A,U+6C70,U+6C79,U+6C82-6C83,U+6CB9,U+6CBB-6CBC,U+6CBE-6CBF,U+6CC4,U+6CE8,U+6CF0,U+6CF3,U+6CFB,U+6CFD,U+6D0B,U+6D17,U+6D32,U+6D3C,U+6D4A,U+6D59,U+6D74,U+6D82,U+6D88,U+6D8C,U+6D8E,U+6D95,U+6D9B,U+6DA1,U+6DA8,U+6DAF,U+6DB2,U+6DC4,U+6DC6,U+6DCC,U+6DD1,U+6DD8,U+6DE4,U+6DEB,U+6DF9,U+6DFB,U+6E0A,U+6E0D,U+6E14,U+6E1D,U+6E23,U+6E29,U+6E2D,U+6E38,U+6E4D,U+6E58,U+6E5B,U+6E7E,U+6E90,U+6EA2,U+6EAA,U+6EAF,U+6ECB,U+6ED3-6ED4,U+6EDE,U+6EE9,U+6F14,U+6F31,U+6F33,U+6F3E,U+6F4D,U+6F6D,U+6FA1,U+7076,U+707C,U+707E,U+708E,U+7099,U+70AD,U+70B8,U+70C1,U+70C3,U+70DB,U+70DF,U+70EB,U+70EF,U+70F7,U+7109,U+7130,U+7167,U+716E,U+7184,U+718A,U+718F,U+7199,U+719F,U+71D5,U+71E5,U+722A,U+7237,U+723D,U+7259,U+7269,U+7279-727A,U+7280,U+72B6,U+72B9,U+72ED,U+72F0-72F1,U+7329-732A,U+732E,U+733F,U+736D,U+7384,U+7389,U+738B,U+73A9,U+73B0,U+73CD,U+73E0,U+7410,U+7422,U+7476,U+74E6,U+74EE,U+7504,U+751C,U+7528-7529,U+7530-7531,U+754F,U+755C,U+758F,U+7591,U+75A1,U+75AB,U+75B9,U+75BC,U+75C7-75C8,U+75D2,U+75D4,U+75DB,U+75F0,U+761F,U+7626,U+762B,U+7634,U+7663,U+7682,U+7696,U+76B1,U+76C2,U+76C5,U+76C8,U+76CA,U+76CF-76D0,U+76F4,U+76F8,U+771F,U+7728-7729,U+773A,U+773C,U+7740-7741,U+7761,U+778E,U+77A9,U+77AC,U+77B3,U+77BB,U+77E3,U+77E5,U+77FD,U+7814,U+7816,U+781A,U+7827,U+7838,U+7852,U+7855,U+785D,U+786C,U+788E,U+7897,U+78B3,U+7956,U+795D,U+795F,U+7965,U+79B9,U+79C0-79C1,U+79C3,U+79CD,U+79DF,U+79E7,U+79E9,U+79FB,U+7A00,U+7A0E,U+7A1A,U+7A33,U+7A57,U+7A74,U+7A81,U+7A84,U+7A91-7A92,U+7A9D,U+7AD6,U+7AD9,U+7AE0,U+7AE5,U+7AF9,U+7B0B,U+7B11,U+7B51-7B52,U+7B97,U+7BB1,U+7BC6,U+7C7D,U+7C98,U+7C9F,U+7CA4-7CA5,U+7CD6,U+7CDF,U+7CFB,U+7D0A,U+7D20,U+7D22,U+7D2B,U+7D6E,U+7E82,U+7EA4,U+7EA6,U+7EAC,U+7EB5,U+7EB8-7EB9,U+7EBF,U+7EC4,U+7EC6-7EC8,U+7ECE,U+7EDA,U+7EDF,U+7EE3,U+7EE5-7EE6,U+7EEA,U+7EED,U+7EF4,U+7EFC-7EFD,U+7F00,U+7F18,U+7F28-7F29,U+7F51,U+7F69-7F6A,U+7F6E,U+7F72,U+7F8A,U+7F9E,U+7FA1,U+7FBD,U+7FC1,U+7FCC,U+7FD4,U+7FFC,U+8000,U+8005,U+800D,U+8018,U+8036,U+8038,U+804C,U+8083-8084,U+8086-8087,U+8096,U+8098,U+80A2,U+80B2,U+80BF-80C1,U+80C3,U+80CE,U+80F0,U+80F8,U+8102,U+810F,U+8131,U+8146,U+814B,U+8155,U+8165,U+8170,U+817A,U+817E-817F,U+819B,U+819D,U+81C0,U+81C3,U+81C6,U+81EA,U+81F3-81F4,U+81FB,U+8200,U+8206,U+8212,U+8214,U+821C,U+821E-821F,U+8237,U+8247,U+8258,U+8273,U+827A,U+828B,U+829C-829D,U+82AF,U+82BD,U+82C7,U+82CF,U+82D1,U+82D4,U+82F1,U+8301,U+8335,U+8367,U+836B,U+836F,U+83B9,U+8404,U+840E,U+8424-8425,U+8427,U+8457,U+846C,U+849C,U+84B8,U+84C4,U+84D1,U+8517,U+851A,U+852C,U+8574,U+859B,U+85AA,U+85AF,U+85E4,U+85FB,U+8638,U+865A,U+865E,U+867D-867E,U+8681,U+868A,U+869C,U+86A4,U+86C0,U+86D9,U+86DB,U+86F0,U+86F9,U+8700,U+8712,U+8715,U+8717-8718,U+8747,U+874E,U+87F9,U+8840,U+8845,U+884C-884D,U+8854,U+8859,U+8863,U+8870,U+8877,U+8881,U+8892,U+8896,U+889C,U+88AD,U+88C5,U+88D4-88D5,U+892A,U+8944,U+897F,U+8981,U+8A00,U+8A79,U+8A89-8A8A,U+8BA8,U+8BAD-8BAF,U+8BB6,U+8BB8,U+8BBC,U+8BC1,U+8BC5,U+8BC8-8BCA,U+8BCC,U+8BD1,U+8BDB,U+8BE2-8BE3,U+8BE6,U+8BEC-8BED,U+8BEF,U+8BF1,U+8BF4-8BF5,U+8BF8,U+8C01,U+8C06,U+8C08,U+8C0A,U+8C10,U+8C13,U+8C1A,U+8C22-8C23,U+8C2D,U+8C4C,U+8C61,U+8C6B,U+8D1E,U+8D23-8D24,U+8D26,U+8D28,U+8D2A,U+8D2E,U+8D34,U+8D3C,U+8D43-8D44,U+8D4E,U+8D58,U+8D5A,U+8D5E,U+8D60,U+8D62,U+8D70,U+8D75,U+8D8A,U+8D9F,U+8DB3,U+8DBE,U+8DC3,U+8DF3,U+8E0A,U+8E0F,U+8E22,U+8E2A,U+8E44,U+8E4B,U+8E81,U+8EBA,U+8F67,U+8F69,U+8F6C,U+8F74,U+8F7D,U+8F93,U+8F95-8F97,U+8F99,U+8F9B,U+8FC2,U+8FC5,U+8FCE,U+8FD0,U+8FD9,U+8FDC-8FDD,U+8FE2,U+8FF0,U+8FFD,U+9000-9001,U+9003,U+9009-900A,U+900F-9010,U+9014,U+901A,U+901F-9020,U+9038,U+903E,U+9042,U+9047,U+9057,U+9065,U+906D-906E,U+9075,U+9080,U+9091,U+90A2,U+90AA,U+90AE,U+90B9,U+90C1,U+90D1,U+90E7,U+9149,U+914C,U+9157,U+915D-915E,U+9165,U+916E,U+9178,U+9189,U+9192,U+91C9,U+91CD-91CE,U+9488,U+949F,U+94A5,U+94A8,U+94BB,U+94C0-94C1,U+94DC,U+94E1,U+94E3,U+94F1,U+94F6,U+94F8,U+9500-9501,U+9508,U+950C,U+9511,U+9517,U+9521,U+9525,U+9528,U+9547,U+9576,U+95EE,U+95F2,U+95F8,U+95FB,U+9605,U+9609,U+960E,U+9633-9635,U+963B,U+9640,U+9650,U+9662,U+9668-9669,U+9676-9677,U+9685,U+968B,U+968F-9690,U+9699,U+969C,U+96A7,U+96C1,U+96C4-96C5,U+96CD,U+96E8,U+96EA,U+96FE,U+9700,U+9704,U+9707,U+971C,U+971E,U+9774,U+978B,U+97E6,U+97F3,U+97F5,U+9875,U+9879-987B,U+987D,U+9882,U+9884,U+9890,U+9893,U+9896,U+9898,U+989C,U+996E,U+9972,U+9985,U+9999,U+9A6D-9A6F,U+9A7B-9A7C,U+9A8C,U+9AA4,U+9AD3,U+9B03,U+9B4F,U+9C7C,U+9C9C,U+9E26,U+9E2D,U+9E2F,U+9E33,U+9E35,U+9E70,U+9ECD,U+9F20`}),Object.freeze({family:`Aha Hand`,file:`wenkai-gb-4-375dc3b3.woff2`,bytes:257596,unicodeRange:`U+4E0C,U+4E10,U+4E15,U+4E1E,U+4E28,U+4E36,U+4E3F,U+4E47,U+4E5C,U+4E69,U+4E8D,U+4E93,U+4E98,U+4E9F-4EA0,U+4EB3,U+4EB5,U+4EBB,U+4EC2-4EC4,U+4EC9,U+4EDD-4EDE,U+4EE1,U+4EE8,U+4EEB,U+4EF3,U+4EF5,U+4F09,U+4F1B,U+4F22,U+4F25,U+4F27,U+4F2B,U+4F32,U+4F3D,U+4F57-4F58,U+4F5A,U+4F5D-4F5F,U+4F64-4F65,U+4F67,U+4F74,U+4F76,U+4F7B-4F7C,U+4F7E,U+4F83,U+4F89,U+4F8F,U+4F91,U+4F94,U+4FAA,U+4FAC,U+4FC5,U+4FCE,U+4FD1,U+4FDA,U+4FDC,U+4FDF,U+4FE3,U+4FE6,U+4FE8,U+4FEA,U+4FF3,U+4FF8,U+4FFE,U+500C,U+500F,U+501C,U+5025,U+5028-5029,U+502C-502E,U+5043,U+5048,U+504C,U+504E,U+5055,U+506C,U+507B,U+507E,U+50A5,U+50A7,U+50A9,U+50BA,U+50D6,U+50E6,U+50EC-50EE,U+5106-5107,U+510B,U+5140,U+5155-5156,U+516E,U+5181-5182,U+5196,U+51A2,U+51A5,U+51AB,U+51B1,U+51BC-51BD,U+51C7,U+51EB,U+51F5,U+51FC,U+5202,U+5208,U+520D-520E,U+522D,U+5233,U+523F-5240,U+524C,U+525C,U+525E,U+5261,U+527D,U+5281-5282,U+5290,U+5293,U+52A2,U+52AC-52AD,U+52BE,U+52D0,U+52D6,U+52F0,U+52F9,U+530D,U+530F-5310,U+5315,U+531A,U+5326,U+532E,U+533E,U+5345,U+535F,U+5363,U+5366,U+5369,U+536E,U+537A,U+538D,U+539D,U+53A3,U+53A5,U+53AE,U+53B6,U+53DF,U+53E8-53E9,U+53F1,U+53F5,U+53FB,U+53FD,U+5406,U+5412,U+5416,U+5421,U+5423,U+5432,U+5443,U+544B,U+5452-5454,U+5456-5457,U+5459,U+5464,U+5466,U+5471-5472,U+5476-5477,U+5482,U+5484,U+5494,U+549A-549B,U+549D,U+54A3-54A4,U+54A6-54A7,U+54A9-54AA,U+54AD,U+54B4,U+54BB,U+54BF,U+54C2,U+54CC,U+54CF-54D0,U+54D2-54D5,U+54D9-54DA,U+54DC-54DE,U+54E7,U+54F3,U+54FD,U+54FF,U+550F,U+5511,U+5514,U+551B,U+5520,U+5522-5523,U+5527,U+552A,U+5530,U+5533,U+5537,U+553C,U+553F,U+5541,U+5549,U+5550,U+5555-5556,U+555C,U+5567,U+556C-556D,U+5575-5577,U+557B,U+557E,U+5581,U+5583,U+5588,U+558B,U+558F,U+5591,U+5594,U+5599,U+559F,U+55B1,U+55B5,U+55B9,U+55BD-55BE,U+55C4,U+55C9,U+55CC-55CD,U+55D1-55D2,U+55D4,U+55D6,U+55DD,U+55DF,U+55E4-55E6,U+55E8,U+55EA-55EC,U+55EF,U+55F2-55F3,U+55F5,U+55F7,U+55FE,U+5600-5601,U+5608,U+560C,U+560F,U+561E-561F,U+5623-5624,U+5627,U+562C-562D,U+5639,U+564C-564D,U+5654,U+5657-5659,U+565C,U+5662,U+5664,U+5669,U+566B,U+5671,U+567B-567C,U+5685-5686,U+5693,U+56AF,U+56D4,U+56D7,U+56DD,U+56DF,U+56E1,U+56EB,U+56F5,U+56F9,U+56FF,U+5704,U+5709-570A,U+571C,U+5729-572A,U+572C,U+572E-572F,U+5733,U+5739,U+573B,U+5742,U+574C,U+575C,U+5768-5769,U+576B,U+576D,U+5773,U+5776,U+577B-577C,U+5785-5786,U+578C,U+5793,U+57A0-57A1,U+57A4,U+57A7,U+57A9,U+57AD,U+57B2,U+57B4,U+57B8,U+57CF,U+57D2,U+57D5,U+57D8-57DA,U+57DD,U+57E4,U+57ED,U+57EF,U+57F4,U+57F8,U+57FD,U+5800,U+5807,U+580B,U+580D,U+5819,U+581E,U+5820,U+5844,U+5865,U+586C,U+587E,U+5880-5881,U+5889,U+589A,U+58BC,U+58C5,U+58D1,U+5902,U+5914,U+5919,U+5924-5925,U+592D,U+593C,U+5941-5942,U+5955,U+5958,U+595A,U+5B34,U+5B5B,U+5B6C,U+5C22,U+5C25,U+5C2C,U+5C34,U+5C7A,U+5C88,U+5C8C-5C8D,U+5C90-5C91,U+5C96,U+5C98-5C9A,U+5C9C,U+5CA2-5CA3,U+5CAB-5CAC,U+5CB1,U+5CB5,U+5CB7,U+5CBD,U+5CC1,U+5CC4,U+5CCB,U+5CD2,U+5CE4-5CE5,U+5D02-5D03,U+5D06,U+5D1B,U+5D1E,U+5D24,U+5D26-5D27,U+5D2E,U+5D34,U+5D3D-5D3E,U+5D4A-5D4B,U+5D58,U+5D5B,U+5D5D,U+5D69,U+5D6B-5D6C,U+5D6F,U+5D74,U+5D82,U+5D99,U+5D9D,U+5DB7,U+5DC5,U+5DEF,U+5DFD,U+5E0F,U+5E11,U+5E14,U+5E19,U+5E31,U+5E37,U+5E3B-5E3C,U+5E44,U+5E54,U+5E5B,U+5E5E,U+5E61,U+5E80,U+5E8B,U+5E91,U+5E96,U+5EA0,U+5EA5,U+5EB3,U+5EB5,U+5EB9,U+5EBE,U+5ED1-5ED2,U+5EDB,U+5EE8,U+5EEA,U+5EF4,U+5EFE-5EFF,U+5F01,U+5F08,U+5F0B,U+5F11,U+5F61,U+5F73,U+5F77,U+5F82,U+5F87,U+5F89,U+5F8C,U+5F95,U+5F99,U+5F9C,U+5FA8,U+5FAD,U+5FB5,U+5FBC,U+5FD2,U+61FF,U+624C,U+626A,U+629F,U+62BB,U+62CA,U+62D7,U+62DA,U+62EE,U+62F6,U+6322,U+6339,U+6343,U+634B,U+6369,U+636D,U+6371,U+637A,U+638A,U+638E,U+63AC-63AE,U+63B4,U+63BC,U+63BE,U+63C4,U+63C6,U+63CE,U+63DE,U+63E0,U+63F2,U+63F6,U+63F8,U+63FF,U+640B-640C,U+641B,U+6420-6421,U+6426,U+6441,U+6445,U+6452,U+645E,U+646D,U+647A,U+6484,U+6496,U+6499,U+64B7-64B8,U+64BA,U+64C0,U+64D0,U+64D7,U+64E2,U+64E4,U+6509,U+6525,U+652E,U+6538,U+6BD3,U+6C10,U+6C3D,U+6C46,U+71EE,U+723B,U+72AD,U+72B0,U+72B4,U+72B7-72B8,U+72C1,U+72C3,U+72CD-72CE,U+72D2,U+72E8-72E9,U+72EF,U+72F2-72F4,U+72F7,U+72FA-72FB,U+7301,U+7303,U+730A,U+7313,U+7315,U+7317,U+731D-731E,U+7321-7322,U+7325,U+732C,U+7331,U+7338-7339,U+734D,U+7350,U+7357,U+7360,U+736C,U+736F,U+737E,U+750D,U+7519,U+755A,U+777E,U+77A2,U+77CD,U+7980,U+79BA,U+7C74,U+7F54,U+7FB8,U+8037,U+80E4,U+8114,U+81BA,U+821B,U+8279,U+827D,U+827F,U+8284,U+8288,U+828A,U+828E-828F,U+8291,U+8297-8299,U+829F,U+82A1,U+82A4,U+82A8-82AB,U+82AE,U+82B0,U+82B4,U+82B7-82B8,U+82BE,U+82C1,U+82C4,U+82C8,U+82CA-82CC,U+82CE,U+82D2-82D3,U+82D5,U+82D8,U+82DC,U+82E0-82E1,U+82E3-82E4,U+82F4,U+82F7,U+82FB,U+8306-8309,U+830C,U+830F,U+8311,U+8314-8315,U+8317,U+831A-831C,U+832D,U+832F,U+8331,U+8333-8334,U+833A,U+833C,U+8340,U+8343,U+8347,U+834F,U+8351,U+835B-835C,U+835E-8360,U+8365-8366,U+8368-836A,U+836C-836E,U+8378,U+837B-837D,U+8385,U+8392-8393,U+8398,U+839B-839C,U+839E,U+83A0,U+83A8-83AA,U+83B0,U+83B3-83B4,U+83B6,U+83B8,U+83BA,U+83BC,U+83C0-83C1,U+83C5,U+83D4,U+83D6,U+83D8,U+83DD,U+83DF,U+83E1,U+83E5,U+83EA,U+83F0,U+83F8-83F9,U+83FD,U+8401,U+8403,U+8406,U+840B,U+840F,U+8411,U+8418,U+841C,U+8426,U+8431,U+8438,U+843C,U+8446,U+8451,U+8459-845A,U+845C,U+8469,U+846D,U+8473,U+8476,U+8478,U+847A,U+8487-8489,U+848C,U+848E,U+8497,U+84A1,U+84AF,U+84B4,U+84B9-84BA,U+84BD,U+84BF,U+84C1,U+84CA,U+84CD,U+84D0,U+84D3,U+84E0,U+84E3,U+84E5-84E6,U+84F0,U+84FC,U+84FF,U+850C,U+851F,U+8538-853B,U+8543,U+8548,U+8556,U+8559,U+855E,U+8564,U+8568,U+8572,U+8579-857B,U+8585,U+8587,U+858F,U+859C,U+85A4,U+85A8,U+85AE,U+85B0,U+85B7,U+85B9,U+85C1,U+85D3,U+85DC,U+85FF,U+8605,U+8616,U+8627,U+8629,U+863C,U+8803,U+8862,U+886E,U+88A4,U+88D2,U+8A07,U+8BA0,U+8BA6-8BA7,U+8BAA,U+8BB4-8BB5,U+8BB7,U+8BC2-8BC3,U+8BCB,U+8BCE-8BCF,U+8BD2-8BD4,U+8BD6,U+8BD8-8BD9,U+8BDC,U+8BDF-8BE0,U+8BE4,U+8BE8-8BE9,U+8BEE,U+8BF0,U+8BF3,U+8BF6,U+8BF9,U+8BFC,U+8BFF-8C00,U+8C02,U+8C04,U+8C07,U+8C0C,U+8C0F,U+8C11-8C12,U+8C14-8C16,U+8C18-8C19,U+8C1B,U+8C1D,U+8C1F-8C21,U+8C25,U+8C27,U+8C2A-8C2B,U+8C2E-8C2F,U+8C32-8C33,U+8C35-8C36,U+8C73,U+8D53,U+8D5C-8D5D,U+8F94,U+9097,U+9099,U+909B,U+909D,U+90A1,U+90AC,U+90B0,U+90B3-90B4,U+90B6,U+90B8,U+90BA,U+90BE,U+90C4-90C5,U+90C7,U+90CF-90D0,U+90D3,U+90D7,U+90DB-90DC,U+90E2,U+90E6,U+90EB,U+90EF,U+90FE,U+9104,U+911E,U+9122-9123,U+912F,U+9131,U+9139,U+9143,U+9146,U+961D,U+9621-9622,U+962A,U+9631,U+963C-963D,U+9642,U+9649,U+9654,U+965F,U+9667,U+966C,U+9672,U+9674,U+9688,U+968D,U+9697,U+96B0,U+9765,U+98E7,U+9963,U+9967-996C,U+9974,U+9977,U+997D,U+9980,U+9984,U+9987,U+998A,U+998D,U+9990-9991,U+9993-9995,U+9997-9998,U+99A8,U+9B2F,U+9B32,U+9EC9,U+9F10,U+9F17,U+9F19,U+9FA0`}),Object.freeze({family:`Aha Hand`,file:`wenkai-gb-5-d0359bbc.woff2`,bytes:278908,unicodeRange:`U+4E2C,U+5216,U+54AB,U+584D,U+5981,U+5983,U+598D,U+5997,U+599E,U+59A3-59A4,U+59A9-59AB,U+59AF,U+59B2,U+59BE,U+59CA,U+59D2,U+59D7-59D8,U+59DD,U+59E3,U+59F9,U+5A05-5A06,U+5A08-5A09,U+5A0C,U+5A11,U+5A13,U+5A23,U+5A32,U+5A34,U+5A3C,U+5A40,U+5A4A,U+5A55,U+5A62,U+5A67,U+5A75,U+5A77,U+5A7A,U+5A9B,U+5AAA,U+5AB2,U+5AB5,U+5AB8,U+5ABE,U+5AD2,U+5AD4,U+5AD6,U+5AD8,U+5ADC,U+5AE0,U+5AE3,U+5AE6,U+5AEB,U+5AF1,U+5B09,U+5B16-5B17,U+5B32,U+5B37,U+5B40,U+5B51,U+5B53,U+5B5A,U+5B62,U+5B65,U+5B71,U+5B73,U+5B80,U+5B84,U+5B93,U+5B95,U+5BA5,U+5BB8,U+5BE4,U+5BEE,U+5BF0,U+5C15,U+5C1C,U+5C3B,U+5C50,U+5C59,U+5C63,U+5C66,U+5C6E,U+5DDB,U+5E7A,U+5F29-5F2A,U+5F2D,U+5F3C,U+5F40,U+5F50,U+5F56-5F58,U+5FC4,U+5FC9,U+5FCF-5FD1,U+5FD6,U+5FDD,U+5FE1,U+5FE4,U+5FEA,U+5FED-5FEE,U+5FF8,U+5FFE,U+6003-6006,U+600A,U+600D,U+600F,U+6019,U+601B,U+6021,U+6026,U+6029,U+602B,U+6035,U+603C,U+603F,U+6041-6042,U+6059-605A,U+605D,U+6063,U+6067,U+606A,U+6078-607B,U+607D,U+6083,U+608C,U+6092,U+6096,U+609A-609B,U+609D,U+60AB,U+60AD,U+60B1,U+60B4,U+60BB,U+60C6,U+60D8,U+60DA,U+60DD,U+60EC,U+60F4,U+6100,U+6106,U+610D-610E,U+6115,U+6120,U+6123,U+6126,U+612B,U+614A,U+615D,U+6175,U+6194,U+619D,U+61A7,U+61A9,U+61AC,U+61B7,U+61CB,U+61D1,U+61D4,U+61F5,U+6206,U+620B,U+6215,U+6217,U+621B,U+621F,U+6221-6222,U+6224-6225,U+622C,U+623D-623E,U+6243,U+6248-6249,U+6308,U+6332,U+63B0,U+6434,U+643F,U+64D8,U+6534-6535,U+6555,U+656B,U+6590,U+6593,U+65AB,U+65BC,U+65C3-65C4,U+65C6,U+65CC,U+65CE,U+65D2,U+65D6,U+65EE-65F0,U+6600,U+6603,U+660A,U+6615,U+6619,U+661D,U+6631,U+6634-6636,U+6641,U+664F,U+6654,U+6656-6657,U+665F,U+6661,U+6677,U+6684,U+668C,U+669D,U+66A7,U+66B9,U+66BE,U+66DB-66DC,U+66E6,U+66E9,U+66F7,U+670A,U+6710,U+6715,U+6726,U+6748,U+674C,U+6753,U+675E,U+6769-676A,U+6772-6773,U+6775,U+6777,U+677C,U+6787,U+678B,U+6798,U+679E,U+67A5,U+67A7-67A8,U+67AD,U+67B0,U+67B3,U+67B5,U+67B8,U+67C1,U+67C3,U+67D8-67DA,U+67DD,U+67E2,U+67E9,U+67F0,U+67FD,U+6800,U+6809-680A,U+680C,U+680E,U+681D,U+6829,U+6832-6833,U+683E,U+6840-6841,U+6844,U+6849-684A,U+684E,U+6855,U+6860-6862,U+6864,U+6866-6867,U+686B,U+6874,U+6877,U+6883,U+688F,U+6893,U+68B5,U+68C2,U+68E3,U+68F0,U+68F9,U+68FC,U+6901,U+690B,U+6910,U+691F-6920,U+6924,U+6934,U+6939,U+6942,U+6957,U+695D,U+6960,U+6963,U+6966,U+696B,U+696E,U+6971,U+6978-6979,U+6980,U+6984,U+6987-6989,U+698D,U+6995,U+6998,U+699B,U+69A7,U+69AB,U+69AD,U+69B1,U+69BB,U+69C1,U+69CA,U+69CC,U+69CE,U+69D4,U+69DF-69E0,U+69ED,U+69F2,U+69FF,U+6A17-6A18,U+6A28,U+6A2F,U+6A35,U+6A3D-6A3E,U+6A44,U+6A50,U+6A58,U+6A5B,U+6A65,U+6A79,U+6A7C,U+6A8E,U+6A90-6A91,U+6A97,U+6AA0,U+6AA9,U+6AAB,U+6B24,U+6B37,U+6B39,U+6B43,U+6B46,U+6B59,U+6B81-6B82,U+6B84,U+6B87,U+6B8D,U+6B92-6B93,U+6B9A-6B9B,U+6BA1,U+6BAA,U+6BB3,U+6BC2,U+6BEA,U+6BF3,U+6BF5,U+6BF9,U+6BFD,U+6C05-6C07,U+6C0D,U+6C15,U+6C18-6C1A,U+6C21,U+6C24,U+6C29-6C2A,U+6C32,U+6C35,U+6C4A,U+6C54,U+6C5C,U+6C68-6C69,U+6C74,U+6C76,U+6C85-6C86,U+6C8C,U+6C90,U+6C93-6C94,U+6CA3,U+6CA9,U+6CAD,U+6CB1-6CB2,U+6CD0,U+6CD3-6CD4,U+6CD6-6CD7,U+6CE0,U+6CEB,U+6CEE-6CEF,U+6CF1,U+6CF6-6CF8,U+6CFA,U+6CFE,U+6D04,U+6D07,U+6D0C,U+6D0E,U+6D19-6D1A,U+6D27,U+6D2B,U+6D2E,U+6D33,U+6D35,U+6D39,U+6D43,U+6D48,U+6D4D,U+6D4F,U+6D52,U+6D54,U+6D5C,U+6D5E,U+6D60,U+6D63,U+6D6F,U+6D7C,U+6D91,U+6D93-6D94,U+6D9E,U+6DA0,U+6DAB,U+6DAE,U+6DBF,U+6DC5,U+6DC7,U+6DD9,U+6DDD-6DDE,U+6DE0,U+6DE6,U+6DFC,U+6E0C,U+6E0E,U+6E11,U+6E16,U+6E1A,U+6E25,U+6E2B,U+6E32,U+6E44,U+6E4E,U+6E53-6E54,U+6E5F,U+6E6B,U+6E6E,U+6E86,U+6E8F,U+6E98,U+6E9F,U+6EA5,U+6EA7,U+6EB1-6EB2,U+6EB4,U+6EB7,U+6EBB,U+6EBD,U+6EC2,U+6ECF,U+6ED5,U+6ED7,U+6EDF-6EE0,U+6EE2,U+6EF9,U+6F09,U+6F15,U+6F24,U+6F29-6F2A,U+6F2D,U+6F2F,U+6F36,U+6F46-6F47,U+6F4B,U+6F62,U+6F72,U+6F74,U+6F78,U+6F7A,U+6F7C,U+6F89,U+6F8C-6F8D,U+6FA7,U+6FB6,U+6FB9,U+6FC2,U+6FC9,U+6FD1,U+6FDE,U+6FE0-6FE1,U+6FEE-6FEF,U+701A-701B,U+7023,U+7035,U+7039,U+704F,U+705E,U+706C,U+7080,U+7085,U+7096,U+709C-709D,U+70AB,U+70B1,U+70B7,U+70BB,U+70C0,U+70CA,U+70E8,U+7110,U+7113,U+7116,U+7118,U+712F,U+7131,U+7145,U+714A,U+715C,U+7166,U+7168,U+7172-7173,U+7178,U+717A,U+7198,U+71A0,U+71A8,U+71B3,U+71B5,U+71B9,U+71D4,U+71E0,U+71E7,U+71F9,U+721D,U+7228,U+7230,U+723F,U+724D,U+7252,U+7256,U+725D,U+7266,U+726E-726F,U+727E-727F,U+7284,U+728B,U+728D,U+728F,U+7292,U+729F,U+7337,U+7352,U+738E,U+7391,U+739F,U+73A2,U+73AE,U+73B3,U+73B7,U+73BA,U+73C0,U+73C2,U+73C8-73C9,U+73CF,U+73D1,U+73D9,U+73DE,U+73E5,U+73E7,U+73E9,U+73F2,U+740A,U+740F,U+741A-741B,U+7425-7426,U+7428,U+742A,U+742C,U+742E,U+7430,U+7441,U+7455,U+7457,U+7459,U+745B-745C,U+746D,U+7477,U+747E,U+7480-7481,U+7487,U+748B,U+748E,U+7490,U+749C,U+749E,U+74A7-74A9,U+74BA,U+74D2,U+74EF,U+74F4,U+74FF,U+750F,U+7511,U+7513,U+752F,U+753E,U+757F,U+77F6,U+77F8,U+7800,U+7809,U+7811,U+7817-7818,U+781C-781D,U+782D,U+793B,U+7940,U+7946,U+7949,U+7953,U+7957,U+795A-795C,U+7960,U+7962,U+7967,U+796F,U+797A,U+7985,U+798A,U+799A,U+79A7,U+79B3,U+7E9F,U+7EA1,U+7EA3,U+7EA5,U+7EA8-7EA9,U+7EAD,U+7EB0,U+7EBE,U+7EC0-7EC2,U+7EC9,U+7ECB-7ECC,U+7ED0,U+7ED4,U+7ED7,U+7EDB,U+7EE0-7EE1,U+7EE8,U+7EEB,U+7EEE-7EEF,U+7EF1-7EF2,U+7EF6,U+7EFA-7EFB,U+7EFE,U+7F01-7F03,U+7F07-7F08,U+7F0B-7F0D,U+7F0F,U+7F11-7F12,U+7F17,U+7F19,U+7F1B-7F1C,U+7F1F,U+7F21-7F27,U+7F2A-7F2D,U+7F2F-7F33,U+7F35,U+7FBC,U+8004,U+8006,U+807F-8080,U+8093,U+809C,U+809F,U+80AB,U+80AD,U+80B1,U+80B4,U+80B7,U+80BC-80BD,U+80C2,U+80C4,U+80CD,U+80D7,U+80D9,U+80DB,U+80DD,U+80E7-80ED,U+80F1-80F2,U+80F4,U+80FC,U+810D-810E,U+8112,U+8118,U+811E,U+812C,U+8132,U+8136,U+8148,U+814C,U+8153,U+8159-815A,U+8160,U+8167,U+8169,U+816D,U+8171,U+8174,U+817C-817D,U+8182,U+8188,U+8191,U+81A3,U+81A6,U+81AA,U+81BB,U+81C1,U+81CA,U+81CC,U+81E7,U+8274,U+8662,U+8930,U+89C7,U+89CA-89CC,U+89CE-89D1,U+89F3,U+8B07,U+8C5A,U+8D32-8D33,U+8D36,U+8D3B,U+8D3D,U+8D40,U+8D45-8D49,U+8D4D,U+8D55,U+8D59,U+8E47,U+8ECE,U+8F6B,U+8F6D,U+8F71-8F73,U+8F75-8F7A,U+8F7C,U+8F7E,U+8F81-8F82,U+8F84,U+8F87,U+8F8B,U+8F8D-8F8F,U+8F98,U+8F9A,U+8FB6,U+8FD3,U+8FD5,U+8FE4-8FE6,U+8FE8-8FE9,U+8FEE,U+8FF3,U+9004-9005,U+900B,U+900D,U+9011,U+9016,U+9021,U+9026,U+902D,U+902F,U+9035-9036,U+9044,U+9050-9052,U+9058,U+905B,U+9062,U+9068,U+9074,U+907D,U+9082-9083,U+9088,U+908B,U+9095,U+95E9,U+95EB,U+95F1,U+95F3,U+95F5-95F6,U+95FC,U+95FE,U+9603-9604,U+9606,U+9608,U+960A-960D,U+960F,U+9612,U+9615-9617,U+9619-961A,U+96B3,U+97EA-97EC,U+987C,U+98D1-98D3,U+98D5,U+98D9-98DA,U+9A75,U+9A77-9A78,U+9A7A,U+9A7D,U+9A7F-9A81,U+9A85,U+9A88,U+9A8A,U+9A90,U+9A92-9A93,U+9A96,U+9A98,U+9A9B-9AA0,U+9AA2-9AA3,U+9AA5,U+9AA7,U+9B3B,U+9F51`}),Object.freeze({family:`Aha Hand`,file:`wenkai-gb-6-a238b41c.woff2`,bytes:307604,unicodeRange:`U+5D47,U+6549,U+659B,U+66A8,U+74DE,U+74E0,U+752C,U+753A,U+7540,U+7548,U+754B,U+754E,U+755B,U+7572,U+7579,U+7583,U+758B,U+7592,U+7594,U+7596,U+759D,U+75A0,U+75A3,U+75AC,U+75B0-75B1,U+75B3-75B4,U+75B8,U+75C2-75C4,U+75CD,U+75D6,U+75E3-75E4,U+75E6-75E8,U+75EB,U+75F1,U+75FC,U+75FF-7600,U+7603,U+7605,U+760A,U+760C,U+7610,U+7615,U+7617-7619,U+761B,U+7620,U+7622,U+7625,U+762D,U+7630,U+7633,U+7635,U+763C,U+763E-7640,U+7643,U+764D,U+7654,U+7656,U+765C,U+765E,U+766B,U+766F,U+7688,U+768E,U+7693,U+7699,U+76A4,U+76B2,U+76B4,U+76CD,U+76E5,U+76F1,U+76F9,U+7704,U+7707-7708,U+770D,U+7719-771A,U+7722,U+7726,U+772D,U+7735,U+7738,U+7743,U+7747,U+7750-7751,U+775A,U+7762,U+7765,U+7768,U+777D,U+777F-7780,U+778C-778D,U+7791,U+779F-77A0,U+77B0,U+77B5,U+77BD,U+77BF,U+77DC,U+77E7,U+77EC,U+781F,U+7823,U+7825-7826,U+7829,U+782C,U+7839-783C,U+7847,U+784C,U+784E,U+7850,U+7856-7857,U+786A,U+786D,U+7887,U+7893,U+789A-789C,U+78A1,U+78A3,U+78A5,U+78B2,U+78B9,U+78C9,U+78D4,U+78D9,U+78EC,U+78F2,U+78F4,U+7905,U+7913,U+791E,U+7924,U+7934,U+79D5,U+79E3,U+79EB,U+79ED,U+7A02-7A03,U+7A06,U+7A14,U+7A1E,U+7A23,U+7A37,U+7A39,U+7A51,U+7A70,U+7A78-7A79,U+7A80,U+7A86,U+7A88,U+7A95,U+7AA0,U+7AA6,U+7AA8,U+7AAC-7AAD,U+7AB3,U+7AE6,U+7AFA,U+7AFD,U+7B03-7B04,U+7B08,U+7B0A,U+7B0F,U+7B15,U+7B19,U+7B1E,U+7B20,U+7B24-7B25,U+7B2A-7B2B,U+7B2E,U+7B31,U+7B33,U+7B38,U+7B3E,U+7B45,U+7B47,U+7B4C,U+7B58,U+7B5A,U+7B5D,U+7B60,U+7B62,U+7B6E,U+7B71-7B72,U+7B75,U+7B7B,U+7B85,U+7B90,U+7B9C-7B9D,U+7BA2,U+7BA6-7BA8,U+7BAA-7BAC,U+7BB4,U+7BB8,U+7BC1,U+7BCC,U+7BD1,U+7BDA,U+7BDD,U+7BE5-7BE6,U+7BEA,U+7BFC,U+7BFE,U+7C0B-7C0C,U+7C0F,U+7C16,U+7C1F,U+7C26,U+7C2A,U+7C38,U+7C40-7C41,U+7C7C,U+7C91,U+7C9C-7C9E,U+7CA2,U+7CB2,U+7CBC-7CBD,U+7CC1,U+7CC5,U+7CC7-7CC8,U+7CCC-7CCD,U+7CD7,U+7CE8,U+7CF8,U+7D77,U+7DA6,U+7DAE,U+7E3B,U+7E47,U+7E9B,U+7F36,U+7F42,U+7F44-7F45,U+7F58,U+7F5F,U+7F61,U+7F68,U+7F71,U+7F74,U+7F79,U+7F7E,U+7F81,U+7F9D,U+7F9F,U+7FA7,U+7FAF-7FB0,U+7FB2,U+7FBF,U+7FCA,U+7FCE,U+7FD5,U+7FE1,U+7FE5-7FE6,U+7FE9,U+7FEE,U+7FF3,U+800B,U+8012,U+8014,U+8016,U+801C,U+8020,U+8022,U+8025-8029,U+8031,U+8035,U+8043,U+8046,U+804D,U+8052,U+8069,U+8071,U+80E5,U+81EC,U+81FE,U+8201-8202,U+8204,U+8210,U+8221-8223,U+8228,U+822B,U+822D,U+822F,U+8233-8234,U+8238,U+823B,U+823E,U+8244,U+8249,U+824B,U+824F,U+825A,U+825F,U+8268,U+826E,U+864D,U+8654,U+866C,U+866E,U+867A-867C,U+867F,U+868B,U+868D,U+8693,U+869D,U+86A3,U+86A7-86AA,U+86AC,U+86AF-86B1,U+86B4-86B6,U+86BA,U+86C4,U+86C9,U+86CE-86D1,U+86D8,U+86DE-86DF,U+86E9,U+86ED,U+86F1-86F4,U+86F8,U+8703,U+8707-870A,U+870D,U+8713,U+871A,U+871E,U+8722-8723,U+8725,U+8729,U+872E,U+8731,U+8734,U+8737,U+873B,U+873E-873F,U+8748,U+874C,U+8753,U+8759,U+8760,U+8763-8765,U+876E,U+8770,U+877B-877E,U+8782-8783,U+8785,U+8788,U+878B,U+8793,U+8797,U+87A8,U+87AB-87AD,U+87AF,U+87B3,U+87B5,U+87BD,U+87C0,U+87C6,U+87CA-87CB,U+87D1-87D3,U+87DB,U+87E0,U+87E5,U+87EA,U+87EE,U+87FE,U+880A,U+8813,U+8816,U+881B,U+8821,U+8832,U+8839,U+883C,U+8844,U+8864,U+8869,U+8872,U+887D-887F,U+8882,U+8885,U+8888,U+88A2,U+88B7,U+88BC,U+88C6,U+88C9,U+88CE,U+88D8,U+88DF,U+88E2-88E3,U+88E5,U+88E8,U+88F0-88F1,U+88FC,U+88FE,U+890A,U+8913,U+8919-891B,U+8921,U+892B,U+8934,U+8936,U+8941,U+895E,U+8966,U+897B,U+8983,U+89D6,U+89DA,U+89DC,U+89DE,U+89E5,U+89EB,U+89EF,U+8A3E,U+8A48,U+8B26,U+8C47,U+8C49,U+8C55,U+8C78,U+8C82,U+8C85,U+8C8A,U+8C94,U+8C98,U+8D67,U+8D6D,U+8D73,U+8D84,U+8D91,U+8D94,U+8DB1,U+8DB5,U+8DB8,U+8DBA,U+8DBC,U+8DBF,U+8DC4,U+8DC6,U+8DCE-8DCF,U+8DD6-8DD7,U+8DDA-8DDB,U+8DDE,U+8DE3-8DE4,U+8DEB-8DEC,U+8DF7-8DF9,U+8DFB,U+8DFD,U+8E05,U+8E09,U+8E14,U+8E1D,U+8E1F,U+8E23,U+8E2C,U+8E2E-8E2F,U+8E31,U+8E35,U+8E39-8E3A,U+8E3D,U+8E40-8E42,U+8E49-8E4A,U+8E51-8E52,U+8E59,U+8E69,U+8E6F-8E70,U+8E74,U+8E76,U+8E7C,U+8E85,U+8E8F-8E90,U+8E94,U+8E9C,U+8E9E,U+914A,U+914E-9150,U+9161-9162,U+9164,U+9169,U+916F-9170,U+9172,U+9174,U+9179,U+917D-917E,U+9185,U+918C-918D,U+9190-9191,U+91A2-91A3,U+91AA,U+91AD-91AF,U+91B4-91B5,U+91BA,U+928E,U+92AE,U+92C8,U+933E,U+936A,U+938F,U+93CA,U+93D6,U+943E,U+946B,U+9485-9487,U+948A-948D,U+948F-9490,U+9494-9495,U+9497,U+949A-949C,U+94A3-94A4,U+94AA-94AD,U+94AF-94B0,U+94B2,U+94B4,U+94B6-94BA,U+94BC-94BD,U+94BF,U+94C4,U+94C8-94CE,U+94D0-94D2,U+94D5-94D9,U+94DB,U+94DE-94E0,U+94E2,U+94E4-94E5,U+94E7-94EB,U+94EE-94EF,U+94F3-94F5,U+94F7,U+94F9,U+94FC-94FD,U+94FF,U+9502-9503,U+9506-9507,U+9509-950A,U+950D-950F,U+9512-9516,U+9518,U+951B,U+951D-951F,U+9522,U+9529-952C,U+9531-9532,U+9534-9538,U+953A,U+953C,U+953E-953F,U+9542,U+9544-9546,U+9549,U+954C,U+954E-954F,U+9552-9554,U+9556-9559,U+955B,U+955D-955F,U+9561-9562,U+9564-956C,U+956F,U+9571-9573,U+96B9,U+96BC-96BD,U+96C9,U+96CE,U+96D2,U+96E0,U+96E9,U+96EF,U+96F3,U+9701,U+9706,U+9708,U+970E-970F,U+972A,U+972D,U+9730,U+973E,U+9753,U+977C,U+9785,U+9791-9792,U+9794,U+97A3,U+97AB,U+97AF,U+97B2,U+97B4,U+9878,U+9880,U+9883,U+9889,U+988C-988D,U+988F,U+9894,U+989A-989B,U+989E-989F,U+98A1-98A2,U+98A5-98A6,U+98E8,U+990D,U+992E,U+9954-9955,U+99A5,U+9AB0-9AB1,U+9AB6-9AB7,U+9ABA,U+9ABC,U+9AC0-9AC2,U+9AC5,U+9ACB-9ACC,U+9AD1,U+9ADF,U+9AE1,U+9AE6,U+9AEB,U+9AED,U+9AEF,U+9AF9,U+9AFB,U+9B08,U+9B0F,U+9B13,U+9B1F,U+9B23,U+9B43,U+9B45,U+9B47-9B49,U+9B4D,U+9B51,U+9C7F,U+9C82,U+9C85-9C88,U+9C8B,U+9C8E,U+9C90-9C92,U+9C94-9C95,U+9C9A-9C9B,U+9C9E-9CA3,U+9CA5-9CA9,U+9CAB,U+9CAD-9CAE,U+9CB0-9CB7,U+9CBA-9CBD,U+9CC4-9CC7,U+9CCA-9CD0,U+9CD3-9CD5,U+9CD7-9CD9,U+9CDC-9CDD,U+9CDF,U+9CE2,U+9E20,U+9E22,U+9E28-9E2C,U+9E31-9E32,U+9E36-9E3A,U+9E3E,U+9E41-9E42,U+9E44,U+9E46-9E49,U+9E4B-9E4C,U+9E4E,U+9E51,U+9E55,U+9E57-9E58,U+9E5A-9E5C,U+9E5E,U+9E63,U+9E66-9E6D,U+9E71,U+9E73,U+9E7E,U+9E82,U+9E87-9E88,U+9E8B,U+9E92,U+9E9D,U+9E9F,U+9EB4,U+9EB8,U+9EBD-9EBE,U+9ECF,U+9EDB-9EDD,U+9EDF-9EE0,U+9EE2,U+9EE5,U+9EE7,U+9EE9-9EEA,U+9EEF,U+9EF9,U+9EFB-9EFC,U+9EFE,U+9F0B,U+9F0D,U+9F22,U+9F2C,U+9F2F,U+9F37,U+9F39,U+9F3D-9F3E,U+9F44,U+9F80,U+9F83,U+9F85-9F8A,U+9F8C,U+9F9B`})]),Zd=`'Aha Hand Latin','Aha Hand','Segoe Print','Ink Free','Bradley Hand','Chalkboard SE','Noteworthy','Comic Sans MS','LXGW WenKai','Kaiti SC','STKaiti','KaiTi','楷体',cursive`,Qd=`${Xd.map(e=>`@font-face{font-family:'${e.family}';font-style:normal;font-weight:400;font-display:swap;src:url('api/aha-tutor/font?f=${e.file}') format('woff2');unicode-range:${e.unicodeRange}}`).join(`
|
|
276
|
+
endstream`)});let d=4+e.length*3,f=s;c(`xref\n0 ${d}\n0000000000 65535 f \n`);for(let e=1;e<d;e+=1)c(`${String(o[e]).padStart(10,`0`)} 00000 n \n`);c(`trailer\n<< /Size ${d} /Root 1 0 R /Info 3 0 R >>\nstartxref\n${f}\n%%EOF\n`);let p=new Uint8Array(s),m=0;for(let e of a)p.set(e,m),m+=e.length;return p}async function lf(e){let t=new Blob([e]).stream().pipeThrough(new CompressionStream(`deflate`));return new Uint8Array(await new Response(t).arrayBuffer())}async function uf(e){let{width:t,height:n}=e;if(typeof CompressionStream==`function`){let{data:r}=e.getContext(`2d`).getImageData(0,0,t,n),i=new Uint8Array(t*n*3);for(let e=0,t=0;e<r.length;e+=4,t+=3)i[t]=r[e],i[t+1]=r[e+1],i[t+2]=r[e+2];return{width:t,height:n,filter:`FlateDecode`,data:await lf(i)}}let r=await new Promise(t=>{e.toBlob(t,`image/jpeg`,.92)});if(!r)throw Error(`image encoding failed`);return{width:t,height:n,filter:`DCTDecode`,data:new Uint8Array(await r.arrayBuffer())}}let df=null;function ff(e){if(!df){df=new Uint32Array(256);for(let e=0;e<256;e+=1){let t=e;for(let e=0;e<8;e+=1)t=t&1?3988292384^t>>>1:t>>>1;df[e]=t>>>0}}let t=4294967295;for(let n of e)t=df[(t^n)&255]^t>>>8;return(t^4294967295)>>>0}function pf(e){return{time:e.getHours()<<11|e.getMinutes()<<5|Math.floor(e.getSeconds()/2),day:Math.max(0,e.getFullYear()-1980)<<9|e.getMonth()+1<<5|e.getDate()}}function mf(e,t=new Date){let n=new TextEncoder,{time:r,day:i}=pf(t),a=[],o=[],s=0;for(let t of e){let e=n.encode(t.name),c=ff(t.data),l=t.data.length,u=new DataView(new ArrayBuffer(30));u.setUint32(0,67324752,!0),u.setUint16(4,20,!0),u.setUint16(6,2048,!0),u.setUint16(8,0,!0),u.setUint16(10,r,!0),u.setUint16(12,i,!0),u.setUint32(14,c,!0),u.setUint32(18,l,!0),u.setUint32(22,l,!0),u.setUint16(26,e.length,!0),u.setUint16(28,0,!0),a.push(new Uint8Array(u.buffer),e,t.data);let d=new DataView(new ArrayBuffer(46));d.setUint32(0,33639248,!0),d.setUint16(4,20,!0),d.setUint16(6,20,!0),d.setUint16(8,2048,!0),d.setUint16(10,0,!0),d.setUint16(12,r,!0),d.setUint16(14,i,!0),d.setUint32(16,c,!0),d.setUint32(20,l,!0),d.setUint32(24,l,!0),d.setUint16(28,e.length,!0),d.setUint32(42,s,!0),o.push(new Uint8Array(d.buffer),e),s+=30+e.length+l}let c=o.reduce((e,t)=>e+t.length,0),l=new DataView(new ArrayBuffer(22));l.setUint32(0,101010256,!0),l.setUint16(8,e.length,!0),l.setUint16(10,e.length,!0),l.setUint32(12,c,!0),l.setUint32(16,s,!0);let u=[...a,...o,new Uint8Array(l.buffer)],d=new Uint8Array(u.reduce((e,t)=>e+t.length,0)),f=0;for(let e of u)d.set(e,f),f+=e.length;return d}function hf(e){return new Promise((t,n)=>{e.toBlob(e=>e?t(e):n(Error(`image encoding failed`)),`image/png`)})}function gf({steps:e,title:t,kind:n=`ghost`}){let{t:a,settings:s,toast:c}=v(),l=w(),[u,d]=(0,r.useState)(!1),[f,p]=(0,r.useState)(null),_=(0,r.useRef)(null),y=(0,r.useRef)(null),b=s.boardTheme===`dark`||s.boardTheme!==`light`&&l?`dark`:`light`,x=s.boardFont===`standard`?`standard`:`hand`,S=m(t);function C(n){if(d(!1),!(!e?.length||f)){if(n===`md`){h(`${S}.md`,ft({title:t,steps:e}),`text/markdown`);return}p({id:Date.now(),format:n,done:0,total:0})}}function T(){y.current&&(y.current.cancelled=!0),y.current=null,p(null)}async function E(e,n){let r=_.current;if(!r)throw Error(`pages missing`);await Zd(r),Qd(r);let i=[...r.querySelectorAll(`[data-sheet]`)];p(e=>e&&{...e,total:i.length});let o=[];for(let[t,r]of i.entries()){if(n.cancelled)return;let i=await ef($d(r,{scale:2})),a=rf(i,2);o.push(e===`pdf`?{width:i.width,height:i.height,image:await uf(a)}:await hf(a)),p(e=>e&&{...e,done:t+1})}if(!(n.cancelled||!o.length))if(e===`pdf`)g(`${S}.pdf`,new Blob([cf(o,{title:t,creator:`${a(`appName`)} · ${a(`appTagline`)}`})],{type:`application/pdf`}));else if(o.length===1)g(`${S}.png`,o[0]);else{let e=await Promise.all(o.map(async(e,t)=>({name:`${S}-${String(t+1).padStart(2,`0`)}.png`,data:new Uint8Array(await e.arrayBuffer())})));g(`${S}.zip`,new Blob([mf(e)],{type:`application/zip`}))}}return(0,r.useEffect)(()=>{if(!f)return;let e={cancelled:!1};return y.current=e,E(f.format,e).catch(()=>{e.cancelled||c(a(`exportFailed`))}).finally(()=>{y.current===e&&(y.current=null,p(null))}),()=>{e.cancelled=!0}},[f?.id]),(0,i.jsxs)(`span`,{className:`aha-menuAnchor`,children:[f?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Ml,{label:a(`exportingBoard`,{done:f.done,total:f.total||`…`})}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":n??void 0,"data-size":`sm`,onClick:T,children:a(`cancel`)})]}):(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":n??void 0,"data-size":`sm`,disabled:!e?.length,"aria-haspopup":`menu`,"aria-expanded":u,onClick:()=>d(e=>!e),children:[a(`exportBoard`),` ▾`]}),u?(0,i.jsxs)(`div`,{className:`aha-card aha-menu`,role:`menu`,onMouseLeave:()=>d(!1),children:[(0,i.jsx)(`button`,{type:`button`,role:`menuitem`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>C(`pdf`),children:a(`exportPdf`)}),(0,i.jsx)(`button`,{type:`button`,role:`menuitem`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>C(`png`),children:a(`exportPng`)}),(0,i.jsx)(`button`,{type:`button`,role:`menuitem`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>C(`md`),children:a(`exportMarkdown`)})]}):null,f?(0,o.createPortal)((0,i.jsx)(`div`,{ref:_,className:`aha-exportPages`,"aria-hidden":`true`,children:(0,i.jsx)(Sl,{steps:e,title:t,theme:b,font:x,footer:{left:t,right:`${a(`appName`)} · ${a(`appTagline`)}`},animationLabel:a(`animationStill`),fixedLabel:a(`fixed`)})}),document.body):null]})}let _f=Object.freeze([Object.freeze({family:`Aha Hand Latin`,file:`caveat-latin-d0b7b931.woff2`,bytes:48836,unicodeRange:`U+0,U+D,U+20-7E,U+A0-FF,U+131,U+152-153,U+20AC,U+2122`}),Object.freeze({family:`Aha Hand`,file:`wenkai-gb-0-88f1a875.woff2`,bytes:93632,unicodeRange:`U+20-7E,U+A0-AC,U+AE-FF,U+101,U+113,U+11B,U+12B,U+14D,U+16B,U+1CE,U+1D0,U+1D2,U+1D4,U+1D6,U+1D8,U+1DA,U+1DC,U+2C7,U+2C9,U+391-3A1,U+3A3-3A9,U+3B1-3C1,U+3C3-3C9,U+401,U+410-44F,U+451,U+2010-2016,U+2018-2022,U+2025-2027,U+2030-2037,U+2039-203F,U+2042,U+2044,U+2047-2049,U+2051-2052,U+205A,U+205D,U+2100-2101,U+2103,U+2105-2106,U+2109-210A,U+210E-210F,U+2113,U+2116-2117,U+211E,U+2120-2122,U+2126-2127,U+2129-212B,U+212E,U+2132,U+2135,U+213B,U+2141-2144,U+214B,U+214D-214E,U+2150-218B,U+2190-2199,U+21B6-21B9,U+21C4-21C6,U+21CB-21D0,U+21D2,U+21D4,U+21E6-21EA,U+21F5,U+2200-220D,U+220F,U+2211-2213,U+2215-2216,U+2219-2220,U+2223-2230,U+2234-2237,U+223C-223E,U+2242-2243,U+2245,U+2248,U+224B-224C,U+2251-2253,U+225C,U+2260-2262,U+2264-226B,U+226E-226F,U+2272-2273,U+2276-2277,U+2282-228B,U+2295-2299,U+229C-229E,U+22A0,U+22A2-22A5,U+22BF-22C5,U+22DA-22DB,U+22EE-22F1,U+2312,U+2460-249F,U+2500-25AB,U+25B1-25B3,U+25B6-25B7,U+25BC-25BD,U+25C0-25C1,U+25C6-25C7,U+25C9-25CC,U+25CE-25D3,U+25E2-25E6,U+25EF,U+25FB-25FC,U+2605-2606,U+2640,U+2642,U+3000-302D,U+3030,U+3033-303F,U+3041-3093,U+30A1-30F6,U+30FB,U+3105-3129,U+3220-3229,U+FF01-FF5E,U+FFE0-FFE1,U+FFE3,U+FFE5`}),Object.freeze({family:`Aha Hand`,file:`wenkai-gb-1-78a38e72.woff2`,bytes:315108,unicodeRange:`U+4E01,U+4E0D,U+4E11,U+4E19,U+4E1B-4E1C,U+4E22,U+4E2A,U+4E30,U+4E32,U+4E39,U+4E4E-4E4F,U+4E56,U+4E58,U+4E8C,U+4E92,U+4EA4-4EA5,U+4EA7-4EA8,U+4EC7,U+4ECE,U+4ED3,U+4ED8,U+4EE3,U+4EF6-4EF7,U+4EFD,U+4EFF,U+4F0E-4F10,U+4F19-4F1A,U+4F20,U+4F2F-4F30,U+4F34,U+4F43,U+4F46,U+4F4E,U+4F55,U+4F5B,U+4F70,U+4F73,U+4F88,U+4F97,U+4F9B,U+4FA7,U+4FAF,U+4FBF,U+4FC3-4FC4,U+4FD8,U+4FDD,U+4FED,U+4FEF,U+4FFA,U+500D,U+5012,U+5019,U+5021,U+5047,U+5065,U+507F,U+5085,U+508D,U+50A3,U+50A8,U+50AC,U+50B2,U+50F5,U+513F,U+5145,U+5149,U+5151,U+515A,U+515C,U+516B-516C,U+5171,U+5173,U+5175,U+5178,U+517C,U+5180,U+5188,U+518C,U+51A0,U+51AC,U+51AF-51B0,U+51B2,U+51BB,U+51CB,U+51CF,U+51D1,U+51E0-51E1,U+51E4,U+51F0,U+51F3,U+51F9-51FB,U+51FD,U+5200-5201,U+5206,U+5212,U+521A-521B,U+521D,U+522B,U+522E,U+5230,U+523A,U+523D,U+5241-5242,U+5250-5251,U+5265,U+526A,U+526F,U+5272,U+529E-52A0,U+52A8,U+52C3,U+52FE,U+5305-5306,U+5316-5317,U+5319,U+5320,U+532A,U+5349-534A,U+534E,U+5351,U+5355,U+535A,U+535C,U+535E,U+5373,U+5382,U+5384,U+5395,U+539A,U+53A8,U+53C2,U+53C9-53CA,U+53CD,U+53D1,U+53D8,U+53E0,U+53E4,U+53ED-53EE,U+53F7,U+53FC,U+5403-5404,U+5408-540A,U+540E,U+5420,U+5426-5429,U+542B,U+5435,U+5439,U+543C,U+5446,U+5448,U+544A,U+5475,U+547C,U+548C,U+5490,U+5495,U+54C0,U+54C4,U+54C6,U+54C8,U+54CE,U+54D7,U+54E5,U+54FA,U+54FC,U+5507,U+5509,U+5524,U+552C,U+5531,U+554A,U+5561,U+5589-558A,U+5598,U+559D,U+5609,U+560E,U+5632,U+563F,U+5676,U+568E,U+56DE,U+56E4,U+56F1,U+56FA,U+56FD,U+572D,U+5730,U+573A,U+573E,U+574A,U+574F,U+575A,U+575D,U+575F,U+5782,U+579B,U+57A2,U+57AB,U+57C2-57C3,U+57CE,U+57E0,U+57FA,U+5806,U+5815,U+5821,U+5824,U+5835,U+58A9,U+58C1,U+58D5,U+58F6,U+5904,U+5907,U+590D,U+591A,U+591F,U+5927,U+592B,U+592F,U+5939-593A,U+5949,U+594B,U+5954,U+5956,U+5960,U+5965,U+5978,U+597D,U+5987,U+5992-5993,U+59A8,U+59D1,U+59DC,U+59EC,U+5A25,U+5A5A,U+5AC1,U+5AC9,U+5AE1,U+5B58,U+5B63-5B64,U+5B69,U+5B75,U+5B89,U+5B8F,U+5B98,U+5B9A,U+5B9D,U+5BA0,U+5BA6,U+5BAB,U+5BB3,U+5BB6,U+5BBE,U+5BC2,U+5BC4,U+5BCC,U+5BD2,U+5BDF,U+5BE1,U+5BF8-5BF9,U+5BFC,U+5C01,U+5C06,U+5C14,U+5C16,U+5C18,U+5C1D,U+5C3A,U+5C42,U+5C94,U+5C97,U+5C9B,U+5CB8,U+5CE8,U+5CF0,U+5D07,U+5D14,U+5D29,U+5DDD,U+5DE2,U+5DE5,U+5DE9,U+5DEE,U+5DF1,U+5DF4,U+5E01,U+5E03,U+5E06,U+5E1B,U+5E1D,U+5E26,U+5E2E,U+5E38,U+5E45,U+5E4C,U+5E62,U+5E72,U+5E76,U+5E7B,U+5E7F,U+5E87,U+5E8A,U+5E95,U+5E97,U+5E9A,U+5E9C,U+5E9F,U+5EA6,U+5EFA,U+5F0A,U+5F13,U+5F17-5F18,U+5F1B,U+5F1F,U+5F27,U+5F39,U+5F52-5F53,U+5F69-5F6A,U+5F6C,U+5F7B-5F7C,U+5F85,U+5F88,U+5F8A,U+5F97,U+5FB7,U+5FBD,U+5FC5,U+5FCC,U+5FF1,U+5FFD,U+5FFF-6000,U+6016,U+6020,U+6025,U+602A,U+604D,U+6052,U+6062,U+6068-6069,U+606B,U+606D,U+6076,U+608D,U+6094,U+60A3,U+60B2,U+60B8,U+60BC,U+60D1,U+60E0,U+60E6,U+60E8-60E9,U+60EB,U+60ED-60F0,U+60F6,U+6101,U+611F,U+6124,U+6148,U+614C,U+6167,U+618B,U+61A8,U+61BE,U+61C2,U+61CA,U+6208,U+6210,U+6216,U+6233-6234,U+6237,U+623F,U+6241,U+624D,U+6252-6253,U+626E-626F,U+6273,U+6276,U+627C,U+627F-6280,U+6284,U+628A,U+6296,U+629A,U+62A4-62A5,U+62B1,U+62B5,U+62BD,U+62C2,U+62C5-62C6,U+62CC,U+62D0,U+62D4,U+62DC,U+62E3,U+62E8,U+62F1,U+6301-6302,U+6309,U+6321,U+6324-6325,U+6328,U+632B,U+634C-634D,U+6355,U+6361-6363,U+6376,U+6382,U+6387,U+6389,U+63A3,U+63AA,U+63B8,U+63BA,U+63D2,U+63E3,U+6400-6401,U+640F-6410,U+6413,U+641E,U+642C-642D,U+643D,U+6446,U+6448,U+6467,U+6491,U+64A4,U+64AD-64AE,U+64BC,U+64CD,U+64E6,U+6539,U+653B,U+653E,U+6545,U+654C,U+6556,U+655D-655E,U+6562,U+6566,U+6577,U+658C,U+6591,U+6597,U+65A5,U+65A7,U+65AD,U+65B9,U+65E2,U+65E6,U+65F1,U+6602,U+660C,U+660F,U+6625,U+6643,U+6666,U+6668,U+6697,U+66B4,U+66F4,U+66F9,U+670D,U+671D,U+672C,U+6735,U+673A,U+6746,U+6750-6751,U+675C,U+6760,U+676D,U+676F,U+677F,U+6781,U+6784,U+679C,U+67AB,U+67B6-67B7,U+67C4,U+67CF,U+67D1,U+67DC,U+67E5,U+67EC,U+67F4,U+6807,U+680B,U+6838-6839,U+683C,U+6842,U+6848,U+6853,U+6863,U+6868,U+6886,U+6897,U+68C0,U+68CD,U+68D2,U+68D8,U+68FA,U+6912,U+693D,U+693F,U+695A,U+6982,U+699C,U+69D0,U+69DB,U+69FD,U+6A0A,U+6A2A,U+6A59,U+6A71,U+6B21-6B22,U+6B4C,U+6B64-6B65,U+6B79,U+6B7C,U+6B86,U+6B8B,U+6BB5,U+6BBF,U+6BC1,U+6BD2,U+6BD4-6BD6,U+6BD9,U+6BEB,U+6C1B,U+6C1F,U+6C26,U+6C28,U+6C2E,U+6C47,U+6C49,U+6C57,U+6C5E-6C60,U+6C72,U+6C7E,U+6C89,U+6C9F,U+6CA7,U+6CAA,U+6CB3,U+6CB8,U+6CBD,U+6CCA,U+6CD5,U+6CDB,U+6CE2,U+6CF5,U+6D1E,U+6D2A,U+6D31,U+6D3B,U+6D46-6D47,U+6D4B,U+6D4E,U+6D51,U+6D69,U+6D6E,U+6D77,U+6DA3-6DA4,U+6DA7,U+6DAA,U+6DB5,U+6DB8,U+6DC0,U+6DE1,U+6DEC,U+6DEE,U+6DF3,U+6DF7,U+6E10,U+6E21,U+6E24,U+6E2F,U+6E56,U+6E85,U+6E89,U+6EC1,U+6EC7,U+6ED1,U+6EDA,U+6EE8,U+6EF4,U+6F6E,U+6F84,U+6F88,U+6FB3,U+6FC0,U+6FD2,U+704C,U+706B,U+706F-7070,U+707F,U+708A,U+7092,U+70B3,U+70B9,U+70BD,U+70D8,U+70E6,U+70E9,U+70FD,U+710A,U+7115,U+7119-711A,U+7126,U+714C,U+714E,U+71AC,U+7206,U+7231,U+7236,U+7238-7239,U+7248,U+728A,U+72AF,U+72C4,U+72C8,U+72D0,U+72D7,U+72E0,U+72EC,U+7316,U+731C,U+7334,U+733E,U+73AF,U+73BB,U+73D0,U+73ED,U+745A,U+7470,U+74DC,U+74E3,U+74F7,U+7518,U+752B,U+752D,U+7532,U+7535,U+7538,U+753B,U+7545,U+756A,U+7574,U+7578,U+7586,U+7599,U+75A4,U+75AE-75AF,U+75B5,U+75BE,U+75C5,U+75D5,U+75D8,U+75EA,U+75F4,U+75F9,U+7601,U+7629-762A,U+764C,U+7678,U+767B,U+767D-767E,U+7684,U+7687,U+768B,U+7691,U+76CE,U+76D1-76D2,U+76D6-76D7,U+76EF,U+76FE,U+7763,U+776C,U+7779,U+7785,U+77AA,U+77D7,U+77ED-77EE,U+77FE,U+7840,U+7845,U+7877,U+7889,U+788D,U+7891,U+7898,U+789F,U+78A7,U+78B1,U+78B4,U+78C1,U+78C5,U+78CB,U+78FA,U+7901,U+796D,U+7977-7978,U+798F,U+79BE,U+79C6,U+79C9,U+79E4,U+79EF-79F0,U+79FD,U+7A0B,U+7A17,U+7A20,U+7A3B-7A3D,U+7A3F,U+7A7F,U+7A97,U+7A9C,U+7AEF,U+7AFF,U+7B06,U+7B14,U+7B1B,U+7B26,U+7B28,U+7B2C,U+7B3A,U+7B49,U+7B4F,U+7B54,U+7B56,U+7B79,U+7B80,U+7B8D,U+7B94-7B95,U+7BA1,U+7BAD,U+7BD9,U+7BE1,U+7C07,U+7C27,U+7C3F,U+7C4D,U+7C89,U+7C97,U+7CAA,U+7CB9,U+7CCA,U+7CD5,U+7CD9,U+7E41,U+7EA2,U+7EA7,U+7EAA,U+7EAF,U+7EB2,U+7EB7,U+7EBA,U+7ECA,U+7ED1,U+7ED8-7ED9,U+7EE7,U+7EE9,U+7EF0,U+7EF7-7EF8,U+7F04,U+7F09,U+7F0E,U+7F13-7F14,U+7F16,U+7F1A,U+7F1D,U+7F20,U+7F38,U+7F50,U+7F55,U+7F5A,U+7F62,U+7F94,U+7FB9,U+7FC5,U+7FDF-7FE0,U+7FF0-7FF1,U+7FFB,U+800C,U+8015,U+8017,U+8019,U+8033,U+803B,U+803D,U+803F,U+806A,U+808C,U+809A-809B,U+809D,U+80A0-80A1,U+80A4-80A5,U+80A9-80AA,U+80AE,U+80BA,U+80C6,U+80CC,U+80DE,U+80E1,U+80F3,U+80F6,U+80FA,U+8106,U+810A,U+8116,U+812F,U+8150-8151,U+8179,U+8180,U+818A,U+818F,U+8198,U+81C2,U+81E3,U+81ED,U+822A,U+822C,U+8230-8231,U+8235-8236,U+8239,U+8270,U+827E,U+82AC-82AD,U+82B1,U+82B3,U+82CD,U+82DE-82DF,U+82EF,U+8303,U+8327-8328,U+832C,U+8336,U+8349,U+8350,U+8352,U+835A,U+8361,U+8364,U+8377,U+83B7,U+83C7,U+83CF,U+83DC,U+83E0,U+83F2,U+845B,U+8463,U+846B,U+8471,U+8482,U+848B,U+84D6,U+84DF,U+8521,U+853C-853D,U+8549,U+8584,U+85CF,U+85E9,U+864E,U+866B,U+8679,U+868C,U+8695,U+86CA-86CB,U+86D4,U+86E4,U+86FE,U+8702,U+8749,U+8757,U+8774,U+8776,U+8822,U+8861,U+8865,U+8868,U+886C,U+8884,U+888B,U+88AB,U+88B1,U+88C1,U+88F9,U+8902,U+8910,U+8912,U+8986,U+89C1-89C2,U+89C4,U+89E6,U+8BA1-8BA3,U+8BA5,U+8BB0,U+8BB2-8BB3,U+8BB9,U+8BBD,U+8BBF,U+8BCD,U+8BDA,U+8BDD-8BDE,U+8BE1,U+8BE5,U+8BE7,U+8BF2,U+8BFB,U+8BFD,U+8C03,U+8C0D-8C0E,U+8C17,U+8C24,U+8C37,U+8C41,U+8C46,U+8C62,U+8C6A,U+8C79-8C7A,U+8C89,U+8D1D,U+8D1F,U+8D21-8D22,U+8D25,U+8D27,U+8D29,U+8D2C-8D2D,U+8D2F-8D31,U+8D35,U+8D37,U+8D39-8D3A,U+8D3E-8D3F,U+8D4B-8D4C,U+8D50,U+8D63-8D64,U+8D6B,U+8D74,U+8D76,U+8D81,U+8D85,U+8DCB-8DCC,U+8DDF,U+8DEA,U+8DF5,U+8DFA,U+8E0C,U+8E29,U+8E48,U+8E66,U+8E6C-8E6D,U+8E72,U+8E7F,U+8E87,U+8EAC,U+8EB2,U+8F66,U+8F68,U+8F70,U+8F85,U+8F88-8F8A,U+8F90-8F91,U+8F9C,U+8F9E-8F9F,U+8FA8-8FA9,U+8FAB,U+8FB0,U+8FB9,U+8FBE,U+8FC7,U+8FD4,U+8FD8,U+8FDF,U+8FEA,U+8FED,U+8FF8-8FF9,U+9012,U+9017,U+901B,U+901E,U+9022,U+902E,U+903C,U+9041,U+904D,U+904F,U+9053,U+907F,U+9093,U+90A6,U+90AF,U+90CA,U+90DD,U+90E8,U+90ED,U+90F4,U+90F8,U+90FD,U+9102,U+9119,U+915A,U+9163,U+916C,U+9171,U+9187,U+918B,U+91C7,U+91DC,U+9274,U+9489,U+9492-9493,U+9499,U+949D-949E,U+94A1-94A2,U+94A9,U+94B5,U+94BE,U+94C2,U+94EC,U+94F2,U+9504-9505,U+950B,U+9519,U+9524,U+952D-952E,U+953B,U+9540,U+9550-9551,U+957F,U+95ED,U+95EF,U+95F4,U+95FA,U+9600-9602,U+9610,U+961C,U+961F,U+9632,U+963F,U+9644-9645,U+9648,U+964D,U+965B,U+9661,U+9664,U+9694,U+9698,U+96C6-96C7,U+96CC,U+96CF,U+96D5,U+96F9,U+970D,U+9738,U+975B,U+975E,U+9769,U+9776,U+978D,U+97AD,U+97E9,U+9876,U+987E-987F,U+9881,U+988A,U+989D,U+98A0,U+98A4,U+98CE,U+98DE,U+9910,U+9965,U+996D,U+996F,U+9971,U+9975,U+997C,U+997F,U+9986,U+998B,U+9A70,U+9A73,U+9A7E,U+9A84,U+9A87,U+9A8B,U+9AA8,U+9AB8,U+9AD8,U+9B3C,U+9B42,U+9C8D,U+9CD6,U+9E21,U+9E3D,U+9E3F,U+9E45,U+9E64,U+9EC4,U+9ED1,U+9F0E,U+9F13,U+9F3B,U+9F7F,U+9F9A,U+9F9F`}),Object.freeze({family:`Aha Hand`,file:`wenkai-gb-2-2a649892.woff2`,bytes:317648,unicodeRange:`U+4E03,U+4E09-4E0A,U+4E14,U+4E16,U+4E18,U+4E24,U+4E27,U+4E34,U+4E3D-4E3E,U+4E43,U+4E45,U+4E48,U+4E50,U+4E52-4E54,U+4E5D-4E5E,U+4E70-4E71,U+4E73,U+4E7E,U+4E86,U+4E8B,U+4E8F,U+4E95,U+4EA2,U+4EA9,U+4EAC,U+4EAE,U+4EB2,U+4EBA,U+4EC0-4EC1,U+4EC5-4EC6,U+4ECA-4ECB,U+4ECD,U+4ED1,U+4ED5,U+4EDF,U+4EE4,U+4EEC,U+4EFB,U+4F01,U+4F1E,U+4F24,U+4F26,U+4F36,U+4F38,U+4F60,U+4F69,U+4F6C,U+4F7F,U+4F8B,U+4F8D,U+4FA3,U+4FA5,U+4FA8-4FA9,U+4FB5,U+4FCA,U+4FCF-4FD0,U+4FE9,U+4FF1,U+5014,U+501F,U+5026,U+502A,U+503E,U+504F,U+5076,U+5080,U+5088,U+50BB,U+50DA,U+50E7,U+50FB,U+5112,U+5121,U+514B,U+514D,U+5162,U+5165,U+5168,U+516D,U+5170,U+5176-5177,U+5185,U+5189,U+5192,U+5195,U+5197,U+519B-519C,U+51B3,U+51B5,U+51B7,U+51C0,U+51C4,U+51C9,U+51CC,U+51DB,U+51DD,U+51ED,U+51EF,U+5203,U+5207,U+520A,U+5217-5218,U+5220,U+5224,U+5228-5229,U+5238-5239,U+523B,U+524D,U+5256,U+5267,U+5269,U+527F,U+5288,U+529B,U+529D,U+52A3,U+52AA-52AB,U+52B1-52B3,U+52BF,U+52C9,U+52D2,U+52D8,U+52DF,U+52E4,U+52FA,U+5321,U+5339-533A,U+533F,U+5341,U+5343,U+5347,U+5356-5357,U+5361-5362,U+5364,U+536F,U+5374-5375,U+5377,U+537F,U+5386,U+5389,U+5398,U+53A9,U+53BB,U+53C1,U+53D6-53D7,U+53DB,U+53E3,U+53E5-53E6,U+53EB,U+53EF,U+53F2,U+540D,U+540F,U+5415,U+5417,U+541B,U+541D,U+542D,U+542F,U+5450,U+5455,U+545B,U+5462,U+5478,U+547B,U+547D,U+5480,U+5486,U+548E,U+5496,U+5499,U+54AF,U+54B3,U+54C1,U+54E6,U+54E8-54EA,U+54ED,U+552E,U+5543,U+5546,U+5564-5566,U+556A,U+556E,U+5580,U+5584,U+5587,U+55B7,U+55D3,U+55DC,U+561B,U+5668,U+566C,U+56B7,U+56BC,U+56CA,U+56DA,U+56F0,U+5703,U+5708,U+5723,U+5747,U+574E,U+5751,U+5757,U+5761,U+5764,U+576A,U+576F,U+5777,U+5783-5784,U+5792,U+57A6,U+57AE,U+57CB,U+57D4,U+57F9,U+5811,U+582A,U+585E,U+5883,U+5892-5893,U+5899,U+58A8,U+58E4,U+58EB-58EC,U+58F0,U+58F3,U+5931,U+5938,U+5947-5948,U+594E,U+5951,U+5962,U+5973-5974,U+5976,U+5982,U+5988,U+598A,U+5999,U+59AE,U+59B9,U+59BB,U+59C6,U+59CB,U+59D0,U+59E5,U+5A04,U+5A07,U+5A18,U+5A1C,U+5A1F-5A20,U+5A29,U+5A36,U+5A46,U+5A6A,U+5A76,U+5A92,U+5A9A,U+5AC2,U+5AE9,U+5B54,U+5B5F,U+5B6A,U+5B7A,U+5B7D,U+5B81,U+5B88,U+5B9E,U+5BA1-5BA2,U+5BA4,U+5BB9,U+5BBD,U+5BC6-5BC7,U+5BD0,U+5BDD-5BDE,U+5BE5,U+5BFF,U+5C04,U+5C11,U+5C1A,U+5C31,U+5C38,U+5C3C-5C3D,U+5C3F-5C41,U+5C45,U+5C48,U+5C4A,U+5C4E-5C4F,U+5C61,U+5C65,U+5C71,U+5C82,U+5CAD,U+5CBF,U+5CE6,U+5CED,U+5CFB,U+5D0E,U+5D4C,U+5DE7-5DE8,U+5DFE,U+5E02,U+5E08,U+5E15,U+5E18,U+5E3D,U+5E42,U+5E55,U+5E73-5E74,U+5E86,U+5E90,U+5E93,U+5E99,U+5E9E,U+5EB7,U+5EC9-5ECA,U+5ED3,U+5ED6,U+5F00,U+5F03-5F04,U+5F0F,U+5F25,U+5F31,U+5F3A,U+5F55,U+5F6D,U+5F84,U+5F8B,U+5F98,U+5FCD,U+5FD9,U+5FEB,U+5FF5,U+6012,U+6015,U+601C,U+602F,U+6043,U+604B,U+6050,U+6070,U+6073,U+607C,U+6084,U+60A8,U+60AF,U+60C5,U+60CA,U+60E7,U+60F9,U+6127,U+614E,U+6151,U+6155,U+6162,U+6168,U+6177,U+61D2,U+61E6,U+620E,U+6212,U+621A,U+622A,U+622E,U+6247,U+624B,U+6251,U+6254,U+625B,U+6263,U+6266,U+6269,U+626B,U+626D,U+6270,U+6279,U+6289,U+6297,U+629B,U+62A0-62A2,U+62A8,U+62AB,U+62B9,U+62BF,U+62C7-62C9,U+62CD-62CE,U+62D2,U+62D8,U+62DF,U+62E2,U+62E6-62E7,U+62EC-62ED,U+62F3,U+62F7,U+62FC,U+62FE-62FF,U+630E,U+631B,U+6320,U+632A,U+6346,U+634E-6350,U+635E,U+6367,U+636E,U+6377,U+637B,U+6388,U+6390,U+6392,U+6398,U+63A0,U+63A5,U+63A7,U+63B3,U+63C9,U+63CF,U+63E9-63EA,U+63ED,U+63FD,U+6402,U+6405,U+6414,U+6444,U+6469,U+6478-6479,U+6482,U+6485,U+6487,U+6492,U+64A9,U+64AC,U+64B5,U+64C2,U+64C5,U+64CE,U+64D2,U+6500,U+6518,U+652B,U+6536,U+654F,U+6551,U+6559,U+655B,U+6563,U+656C,U+6572,U+6599,U+65A4,U+65BD,U+65C1,U+65C5,U+65D7,U+65E5,U+65E7,U+65F6-65F7,U+6606,U+660E,U+6627,U+662F,U+664B-664C,U+6652,U+666E-666F,U+6674,U+6676,U+667E,U+6696,U+66AE,U+66DD,U+66F2,U+66FC,U+670B,U+6717,U+671F,U+6728,U+672B,U+6734,U+6740,U+6743,U+6749,U+674E,U+6765,U+6770,U+6797,U+679A,U+67AA,U+67AF,U+67D0,U+67D2-67D4,U+67E0,U+67EF,U+67F3,U+67FF,U+680F,U+6816-6817,U+6846,U+6851,U+6854,U+6865,U+6881,U+6885,U+68A2,U+68A6,U+68A8,U+68C9,U+68CB,U+68DA,U+68EE,U+68F1,U+68F5,U+695E,U+6977,U+697C,U+6994,U+69B4,U+69B7,U+6A21,U+6A47,U+6AAC,U+6B20,U+6B27,U+6B3A,U+6B3E,U+6B49,U+6B67,U+6BB4,U+6BCD,U+6BCF,U+6BD7,U+6BDB,U+6C0F,U+6C11,U+6C13-6C14,U+6C16,U+6C22,U+6C2F-6C30,U+6C42,U+6C55,U+6C5D,U+6C7D,U+6C81,U+6C88,U+6C8F,U+6C99,U+6C9B,U+6CA1,U+6CA4-6CA6,U+6CAB,U+6CAE,U+6CC5,U+6CC9,U+6CCC,U+6CDE,U+6CE1,U+6CE3,U+6CE5,U+6CEA,U+6CFC,U+6D01,U+6D12,U+6D1B,U+6D25,U+6D3D-6D3E,U+6D41,U+6D45,U+6D53,U+6D5A,U+6D66,U+6D6A,U+6D78,U+6D85,U+6D89,U+6D9D,U+6D9F,U+6DA6,U+6DA9,U+6DCB,U+6DD6,U+6DF1,U+6E05,U+6E17,U+6E20,U+6E34,U+6E3A,U+6E43,U+6E7F,U+6E83,U+6E9C,U+6EB6,U+6EBA,U+6EE1,U+6EE4-6EE6,U+6F02,U+6F06,U+6F0F,U+6F13,U+6F20,U+6F2B,U+6F58,U+6F5C,U+6F5E,U+6F66,U+6F8E,U+6F9C,U+7011,U+706D,U+7075,U+7078,U+7089,U+7094-7095,U+70AC,U+70AE-70AF,U+70BC,U+70C2,U+70C8,U+70D9,U+70E4,U+70E7,U+70EC-70ED,U+70F9,U+7136,U+715E,U+7164,U+717D,U+7194,U+71C3,U+71CE,U+722C,U+7235,U+7247,U+724C,U+725B,U+725F,U+7261-7262,U+7267,U+7272,U+7275,U+7281,U+72AC,U+72C2,U+72D9,U+72DE,U+72E1,U+72EE,U+72F8,U+72FC,U+730E,U+731B,U+732B,U+7387,U+7396,U+739B,U+73AB,U+73B2,U+73CA,U+7403,U+7405-7406,U+7409,U+7433-7436,U+743C,U+745E-745F,U+7483,U+74E2,U+74E4,U+74F6,U+751A,U+751F,U+7525,U+7533,U+7537,U+754C,U+7554,U+7559,U+7565-7566,U+7597,U+759A,U+759F,U+75A5,U+75B2,U+75BD,U+75C9-75CA,U+75DE,U+75E2,U+7624,U+7638,U+7686,U+76AE,U+76BF,U+76C6,U+76D4,U+76D8,U+76DB,U+76DF,U+76EE,U+76F2,U+76FC,U+7701,U+7709,U+770B,U+7720,U+772F,U+7736-7737,U+775B,U+7766,U+776B,U+7784,U+7792,U+77A5,U+77A7,U+77DB,U+77E2,U+77E9,U+77EB,U+77F3,U+77FF,U+7801-7802,U+780C-780D,U+7812,U+7830,U+7834,U+7837,U+783E,U+786B,U+786E,U+787C,U+788C,U+78B0,U+78BE,U+78CA,U+78D0,U+78D5,U+78E8,U+78F7,U+793A,U+793C,U+793E,U+7941,U+7948,U+795E,U+7968,U+7981,U+7984,U+79BB,U+79BD,U+79CB,U+79D1-79D2,U+79D8,U+79E6,U+79F8,U+7A0D,U+7A46,U+7A76-7A77,U+7A7A,U+7A83,U+7A8D,U+7A96,U+7A98,U+7A9F,U+7AA5,U+7ABF,U+7ACB,U+7ADE-7ADF,U+7AE3,U+7AED,U+7B3C,U+7B4B,U+7B50,U+7B5B,U+7B77,U+7B7E,U+7BA9,U+7BC7,U+7BD3,U+7BEE,U+7BF1,U+7BF7,U+7C73,U+7C7B,U+7C92,U+7C95,U+7CAE,U+7CB1,U+7CB3,U+7CBE,U+7CDC,U+7CE0,U+7CEF,U+7D27,U+7D2F,U+7EA0,U+7EAB,U+7EB1,U+7EB3,U+7EB6,U+7EBD,U+7EC3,U+7EC5,U+7ECD,U+7ECF,U+7ED2-7ED3,U+7ED5,U+7EDC-7EDE,U+7EE2,U+7EF3,U+7EF5,U+7EFF,U+7F05-7F06,U+7F15,U+7F2E,U+7F34,U+7F3A,U+7F57,U+7F8C,U+7F8E,U+7F9A,U+7FA4,U+7FD8,U+8001,U+8003,U+8010,U+802A,U+8042,U+804A-804B,U+8054,U+8058,U+805A,U+8089,U+808B,U+80AF,U+80BE,U+80D6,U+80DA,U+80DC,U+80EF,U+80FD,U+8109,U+8110-8111,U+8113,U+811A,U+8138,U+813E,U+814A,U+8154,U+816E,U+817B,U+819C,U+81A8,U+81B3,U+81FC,U+8205,U+820C-820D,U+826F,U+8272,U+8282,U+828D,U+8292,U+82A5-82A6,U+82B9,U+82D7,U+82DB,U+82E5-82E6,U+82EB,U+82F9,U+8302,U+8304-8305,U+830E,U+832B,U+8338-8339,U+8346,U+8354,U+8363,U+8386,U+8389,U+838E,U+83AB,U+83B1-83B2,U+83BD,U+83CA,U+83CC,U+83E9,U+83F1,U+840C-840D,U+841D,U+8428,U+843D,U+8461,U+8475,U+8499,U+84B2,U+84C9,U+84DD,U+84EC,U+8511,U+8513,U+852B,U+8537,U+854A,U+857E,U+85C9,U+85D0,U+85D5,U+8611,U+864F-8651,U+8671,U+8680,U+8682,U+86C6-86C7,U+86EE,U+871C,U+8721,U+878D,U+879F,U+87BA,U+8815,U+8857,U+886B,U+888D,U+88C2,U+88D9,U+88E4,U+88F3-88F4,U+88F8,U+8925,U+895F,U+89C5-89C6,U+89C8-89C9,U+89D2,U+89E3,U+8A93,U+8B66,U+8B6C,U+8BA4,U+8BA9,U+8BAB,U+8BBA,U+8BBE,U+8BC0,U+8BC4,U+8BC6,U+8BD5,U+8BD7,U+8BEB,U+8BF7,U+8BFA,U+8BFE,U+8C05,U+8C0B,U+8C1C,U+8C26,U+8C28-8C29,U+8C2C,U+8C30-8C31,U+8C34,U+8C8C,U+8D2B,U+8D38,U+8D41-8D42,U+8D4A,U+8D4F,U+8D54,U+8D56,U+8D5B,U+8D61,U+8D66,U+8D77,U+8D8B,U+8DA3,U+8DB4,U+8DD1,U+8DDD,U+8DE8,U+8DEF,U+8E1E,U+8EAB,U+8EAF,U+8F6E-8F6F,U+8F7B,U+8F7F,U+8F83,U+8F86,U+8FA3,U+8FB1,U+8FBD,U+8FC1,U+8FC4,U+8FC8,U+8FD1,U+8FDB,U+8FDE,U+8FEB,U+8FF7,U+9002,U+9006,U+901D,U+903B,U+9063,U+90A3,U+90B1,U+90B5,U+90BB,U+90CE,U+90E1,U+914B,U+914D,U+9152,U+916A,U+9175-9177,U+917F,U+919A-919B,U+91CA,U+91CC,U+91CF,U+91D1,U+948E,U+94A0,U+94A6-94A7,U+94AE,U+94B1,U+94B3,U+94C3,U+94C5-94C6,U+94DD,U+94ED,U+94F0,U+94FA,U+94FE,U+9510,U+951A,U+9523,U+9526,U+952F-9530,U+9539,U+9541,U+954A,U+954D,U+955C,U+9563,U+956D,U+9570,U+95E8,U+95EA,U+95F0,U+95F7,U+95F9,U+95FD,U+9611,U+9614,U+962E,U+9636,U+9646-9647,U+964B-964C,U+9655,U+966A,U+9675,U+9686,U+96B6,U+96BE,U+96C0,U+96F6-96F7,U+9709,U+9713,U+9716,U+9732,U+9739,U+9752,U+9756,U+9759,U+9760-9762,U+9773,U+9798,U+97A0,U+97E7,U+97ED,U+97F6,U+9877,U+9885-9888,U+9891,U+9897,U+98A7,U+98D8,U+98DF,U+9970,U+9976,U+997A,U+9981,U+9988,U+998F,U+9992,U+9996,U+9A6C,U+9A71,U+9A74,U+9A76,U+9A79,U+9A82,U+9A86,U+9A8F,U+9A91,U+9A97,U+9A9A,U+9AA1,U+9B41,U+9B44,U+9B54,U+9C81,U+9CA4,U+9CB8,U+9CC3,U+9CDE,U+9E1F,U+9E23,U+9E25,U+9E43,U+9E4A,U+9E4F,U+9E7F,U+9E93,U+9EA6,U+9EBB,U+9ECE,U+9ED4,U+9ED8,U+9F50,U+9F84,U+9F8B,U+9F99`}),Object.freeze({family:`Aha Hand`,file:`wenkai-gb-3-6949c050.woff2`,bytes:311704,unicodeRange:`U+4E00,U+4E07-4E08,U+4E0B,U+4E0E,U+4E13,U+4E1A,U+4E1D,U+4E25,U+4E2B,U+4E2D,U+4E38,U+4E3A-4E3B,U+4E49,U+4E4B-4E4D,U+4E59,U+4E5F-4E61,U+4E66,U+4E88-4E89,U+4E8E,U+4E91,U+4E94,U+4E9A-4E9B,U+4EA1,U+4EA6,U+4EAB,U+4EAD,U+4EBF,U+4ED4,U+4ED6-4ED7,U+4ED9,U+4EE5,U+4EEA,U+4EF0,U+4EF2,U+4F0A,U+4F0D,U+4F11,U+4F17-4F18,U+4F1F,U+4F2A,U+4F3A,U+4F3C,U+4F4D,U+4F4F-4F51,U+4F53,U+4F59,U+4F5C,U+4F63,U+4F6F,U+4F84,U+4F9D,U+4FA0,U+4FA6,U+4FAE,U+4FD7,U+4FDE,U+4FE1,U+4FEE,U+5018,U+501A,U+503A,U+503C,U+505A,U+505C,U+5077,U+50CF,U+50F3,U+5141,U+5143-5144,U+5146,U+5148,U+5154,U+5174,U+5179,U+517B,U+517D,U+518D,U+5199,U+51A4,U+51B6,U+51C6,U+51F6,U+51F8,U+51FF,U+5211,U+5219,U+5236-5237,U+5243,U+524A,U+5254,U+52A1,U+52A9,U+52C7,U+52CB,U+52FF-5300,U+5308,U+531D,U+5323,U+533B,U+5348,U+534F,U+5352-5353,U+5360,U+5367,U+536B,U+5370-5371,U+5378,U+5385,U+538B-538C,U+539F,U+53A2,U+53A6,U+53BF,U+53C8,U+53CB-53CC,U+53D4,U+53D9,U+53EA,U+53EC,U+53F0,U+53F3,U+53F6,U+53F8-53F9,U+5401,U+540C,U+5410-5411,U+5413,U+541E-541F,U+542C,U+542E,U+5431,U+5434,U+5438,U+543B,U+543E,U+5440,U+5458,U+545C,U+5468,U+5473,U+548B,U+548F,U+5492,U+54A8,U+54AC,U+54B1,U+54B8,U+54BD,U+54C7,U+54C9,U+54CD,U+54D1,U+54DF,U+54EE,U+54F2,U+5501,U+5506,U+5510,U+552F,U+553E,U+5544,U+5578,U+557C,U+5582,U+559C,U+55A7,U+55B3,U+55BB,U+55C5,U+55E1,U+55E3,U+55FD,U+5618,U+5631,U+5634,U+5636,U+563B,U+564E,U+566A,U+568F,U+56A3,U+56DB,U+56E0,U+56E2,U+56ED,U+56F4,U+56FE,U+5706,U+571F,U+5728,U+5740,U+574D,U+5750,U+575B,U+575E,U+5760,U+5766,U+578B,U+57A3,U+57DF,U+5802,U+5830,U+584C,U+5851,U+5854,U+5858,U+586B,U+5885,U+589E-589F,U+58EE,U+58F9,U+590F,U+5915-5916,U+591C,U+5929-592A,U+592E,U+5934,U+5937,U+5944,U+594F,U+5957,U+5979,U+5984,U+5986,U+5996,U+59A5,U+59D3-59D4,U+59DA,U+59E8,U+59FB,U+59FF,U+5A01,U+5A03,U+5A31,U+5A49,U+5A74,U+5A7F,U+5AB3,U+5ACC,U+5B50,U+5B55,U+5B57,U+5B59,U+5B5C-5B5D,U+5B66,U+5B70,U+5B83,U+5B85,U+5B87,U+5B8B-5B8C,U+5B97,U+5B99,U+5B9B-5B9C,U+5BA3,U+5BAA,U+5BB0,U+5BB4-5BB5,U+5BBF,U+5BC5,U+5BD3,U+5BE8,U+5BFA-5BFB,U+5C09-5C0A,U+5C0F,U+5C24,U+5C27,U+5C39,U+5C3E,U+5C49,U+5C4B,U+5C51,U+5C55,U+5C5E,U+5C60,U+5C6F,U+5C79,U+5C7F,U+5C81,U+5CA9,U+5CB3,U+5CD9,U+5CE1,U+5CEA,U+5D16,U+5D2D,U+5DCD,U+5DDE,U+5DE1,U+5DE6,U+5DEB,U+5DF2-5DF3,U+5DF7,U+5E05,U+5E0C,U+5E10,U+5E16,U+5E1A,U+5E1C,U+5E27,U+5E2D,U+5E78,U+5E7C-5E7D,U+5E84,U+5E8F,U+5E94,U+5EA7,U+5EAD,U+5EB6,U+5EB8,U+5EF6-5EF7,U+5F02,U+5F15,U+5F20,U+5F26,U+5F2F,U+5F5D,U+5F62,U+5F64,U+5F66,U+5F70-5F71,U+5F79,U+5F80-5F81,U+5F90,U+5F92,U+5FA1,U+5FAA,U+5FAE,U+5FC3,U+5FC6,U+5FD7-5FD8,U+5FE0,U+5FE7,U+5FFB,U+6001-6002,U+600E,U+6014,U+601D,U+6027-6028,U+603B,U+6055,U+6064,U+606C,U+606F,U+607F,U+6089,U+609F-60A0,U+60A6,U+60AC,U+60CB,U+60D5,U+60DC,U+60DF,U+60F3,U+60FA,U+6108-6109,U+610F,U+611A,U+613F,U+6170,U+618E,U+61C8,U+620A,U+620C-620D,U+620F,U+6211,U+6218,U+6240,U+624E,U+6258,U+6267,U+626C,U+627E,U+6291-6293,U+6295,U+6298,U+62AC,U+62BC,U+62C4,U+62D3,U+62D6,U+62D9,U+62DB,U+62E5,U+62E9,U+62EF,U+62F4,U+62FD,U+6307,U+6311,U+6316,U+631A,U+631D-631F,U+6323,U+632F,U+633A,U+633D,U+6342,U+6345,U+6349,U+635F,U+6380,U+638C,U+638F,U+6396,U+63A2,U+63A8-63A9,U+63B7,U+63CD,U+63D0,U+63D6,U+63E1,U+63F4,U+641C,U+642A,U+643A,U+6447,U+644A,U+6454,U+6458,U+6495,U+649E,U+64B0,U+64DE,U+6512,U+652F,U+653F,U+6548,U+6570,U+6574,U+6587,U+658B,U+659C,U+659F,U+65A1,U+65A9,U+65AF-65B0,U+65CB,U+65CF,U+65E0,U+65E8-65E9,U+65EC-65ED,U+65FA,U+6613-6614,U+661F-6620,U+6628,U+662D,U+663C,U+663E,U+6653,U+6655,U+665A,U+6664,U+6670,U+667A,U+6682,U+6687,U+6691,U+66D9,U+66F0,U+66F3,U+66FE-6700,U+6708-6709,U+6714,U+671B,U+672A,U+672D,U+672F,U+6731,U+673D,U+6742,U+674F,U+6756,U+675F,U+6761,U+6768,U+677E,U+6789,U+6790,U+6795,U+679D,U+67A2-67A3,U+67DE,U+67F1,U+6805,U+6808,U+6811,U+6813,U+6821,U+682A,U+6837,U+683D,U+6843,U+6845,U+684C,U+6850,U+6869,U+6876,U+68A7,U+68AD,U+68AF-68B0,U+68B3,U+68D5,U+68E0,U+6905,U+690D-690E,U+692D,U+6930,U+6954,U+6986,U+69A8,U+6A1F,U+6A31,U+6A61,U+6A80,U+6A84,U+6B23,U+6B32,U+6B47,U+6B62-6B63,U+6B66,U+6B6A,U+6B7B,U+6B83,U+6B89-6B8A,U+6B96,U+6BB7,U+6BC5,U+6BCB,U+6BE1,U+6BEF,U+6C27,U+6C34,U+6C38,U+6C40-6C41,U+6C50,U+6C5B,U+6C61,U+6C64,U+6C6A,U+6C70,U+6C79,U+6C82-6C83,U+6CB9,U+6CBB-6CBC,U+6CBE-6CBF,U+6CC4,U+6CE8,U+6CF0,U+6CF3,U+6CFB,U+6CFD,U+6D0B,U+6D17,U+6D32,U+6D3C,U+6D4A,U+6D59,U+6D74,U+6D82,U+6D88,U+6D8C,U+6D8E,U+6D95,U+6D9B,U+6DA1,U+6DA8,U+6DAF,U+6DB2,U+6DC4,U+6DC6,U+6DCC,U+6DD1,U+6DD8,U+6DE4,U+6DEB,U+6DF9,U+6DFB,U+6E0A,U+6E0D,U+6E14,U+6E1D,U+6E23,U+6E29,U+6E2D,U+6E38,U+6E4D,U+6E58,U+6E5B,U+6E7E,U+6E90,U+6EA2,U+6EAA,U+6EAF,U+6ECB,U+6ED3-6ED4,U+6EDE,U+6EE9,U+6F14,U+6F31,U+6F33,U+6F3E,U+6F4D,U+6F6D,U+6FA1,U+7076,U+707C,U+707E,U+708E,U+7099,U+70AD,U+70B8,U+70C1,U+70C3,U+70DB,U+70DF,U+70EB,U+70EF,U+70F7,U+7109,U+7130,U+7167,U+716E,U+7184,U+718A,U+718F,U+7199,U+719F,U+71D5,U+71E5,U+722A,U+7237,U+723D,U+7259,U+7269,U+7279-727A,U+7280,U+72B6,U+72B9,U+72ED,U+72F0-72F1,U+7329-732A,U+732E,U+733F,U+736D,U+7384,U+7389,U+738B,U+73A9,U+73B0,U+73CD,U+73E0,U+7410,U+7422,U+7476,U+74E6,U+74EE,U+7504,U+751C,U+7528-7529,U+7530-7531,U+754F,U+755C,U+758F,U+7591,U+75A1,U+75AB,U+75B9,U+75BC,U+75C7-75C8,U+75D2,U+75D4,U+75DB,U+75F0,U+761F,U+7626,U+762B,U+7634,U+7663,U+7682,U+7696,U+76B1,U+76C2,U+76C5,U+76C8,U+76CA,U+76CF-76D0,U+76F4,U+76F8,U+771F,U+7728-7729,U+773A,U+773C,U+7740-7741,U+7761,U+778E,U+77A9,U+77AC,U+77B3,U+77BB,U+77E3,U+77E5,U+77FD,U+7814,U+7816,U+781A,U+7827,U+7838,U+7852,U+7855,U+785D,U+786C,U+788E,U+7897,U+78B3,U+7956,U+795D,U+795F,U+7965,U+79B9,U+79C0-79C1,U+79C3,U+79CD,U+79DF,U+79E7,U+79E9,U+79FB,U+7A00,U+7A0E,U+7A1A,U+7A33,U+7A57,U+7A74,U+7A81,U+7A84,U+7A91-7A92,U+7A9D,U+7AD6,U+7AD9,U+7AE0,U+7AE5,U+7AF9,U+7B0B,U+7B11,U+7B51-7B52,U+7B97,U+7BB1,U+7BC6,U+7C7D,U+7C98,U+7C9F,U+7CA4-7CA5,U+7CD6,U+7CDF,U+7CFB,U+7D0A,U+7D20,U+7D22,U+7D2B,U+7D6E,U+7E82,U+7EA4,U+7EA6,U+7EAC,U+7EB5,U+7EB8-7EB9,U+7EBF,U+7EC4,U+7EC6-7EC8,U+7ECE,U+7EDA,U+7EDF,U+7EE3,U+7EE5-7EE6,U+7EEA,U+7EED,U+7EF4,U+7EFC-7EFD,U+7F00,U+7F18,U+7F28-7F29,U+7F51,U+7F69-7F6A,U+7F6E,U+7F72,U+7F8A,U+7F9E,U+7FA1,U+7FBD,U+7FC1,U+7FCC,U+7FD4,U+7FFC,U+8000,U+8005,U+800D,U+8018,U+8036,U+8038,U+804C,U+8083-8084,U+8086-8087,U+8096,U+8098,U+80A2,U+80B2,U+80BF-80C1,U+80C3,U+80CE,U+80F0,U+80F8,U+8102,U+810F,U+8131,U+8146,U+814B,U+8155,U+8165,U+8170,U+817A,U+817E-817F,U+819B,U+819D,U+81C0,U+81C3,U+81C6,U+81EA,U+81F3-81F4,U+81FB,U+8200,U+8206,U+8212,U+8214,U+821C,U+821E-821F,U+8237,U+8247,U+8258,U+8273,U+827A,U+828B,U+829C-829D,U+82AF,U+82BD,U+82C7,U+82CF,U+82D1,U+82D4,U+82F1,U+8301,U+8335,U+8367,U+836B,U+836F,U+83B9,U+8404,U+840E,U+8424-8425,U+8427,U+8457,U+846C,U+849C,U+84B8,U+84C4,U+84D1,U+8517,U+851A,U+852C,U+8574,U+859B,U+85AA,U+85AF,U+85E4,U+85FB,U+8638,U+865A,U+865E,U+867D-867E,U+8681,U+868A,U+869C,U+86A4,U+86C0,U+86D9,U+86DB,U+86F0,U+86F9,U+8700,U+8712,U+8715,U+8717-8718,U+8747,U+874E,U+87F9,U+8840,U+8845,U+884C-884D,U+8854,U+8859,U+8863,U+8870,U+8877,U+8881,U+8892,U+8896,U+889C,U+88AD,U+88C5,U+88D4-88D5,U+892A,U+8944,U+897F,U+8981,U+8A00,U+8A79,U+8A89-8A8A,U+8BA8,U+8BAD-8BAF,U+8BB6,U+8BB8,U+8BBC,U+8BC1,U+8BC5,U+8BC8-8BCA,U+8BCC,U+8BD1,U+8BDB,U+8BE2-8BE3,U+8BE6,U+8BEC-8BED,U+8BEF,U+8BF1,U+8BF4-8BF5,U+8BF8,U+8C01,U+8C06,U+8C08,U+8C0A,U+8C10,U+8C13,U+8C1A,U+8C22-8C23,U+8C2D,U+8C4C,U+8C61,U+8C6B,U+8D1E,U+8D23-8D24,U+8D26,U+8D28,U+8D2A,U+8D2E,U+8D34,U+8D3C,U+8D43-8D44,U+8D4E,U+8D58,U+8D5A,U+8D5E,U+8D60,U+8D62,U+8D70,U+8D75,U+8D8A,U+8D9F,U+8DB3,U+8DBE,U+8DC3,U+8DF3,U+8E0A,U+8E0F,U+8E22,U+8E2A,U+8E44,U+8E4B,U+8E81,U+8EBA,U+8F67,U+8F69,U+8F6C,U+8F74,U+8F7D,U+8F93,U+8F95-8F97,U+8F99,U+8F9B,U+8FC2,U+8FC5,U+8FCE,U+8FD0,U+8FD9,U+8FDC-8FDD,U+8FE2,U+8FF0,U+8FFD,U+9000-9001,U+9003,U+9009-900A,U+900F-9010,U+9014,U+901A,U+901F-9020,U+9038,U+903E,U+9042,U+9047,U+9057,U+9065,U+906D-906E,U+9075,U+9080,U+9091,U+90A2,U+90AA,U+90AE,U+90B9,U+90C1,U+90D1,U+90E7,U+9149,U+914C,U+9157,U+915D-915E,U+9165,U+916E,U+9178,U+9189,U+9192,U+91C9,U+91CD-91CE,U+9488,U+949F,U+94A5,U+94A8,U+94BB,U+94C0-94C1,U+94DC,U+94E1,U+94E3,U+94F1,U+94F6,U+94F8,U+9500-9501,U+9508,U+950C,U+9511,U+9517,U+9521,U+9525,U+9528,U+9547,U+9576,U+95EE,U+95F2,U+95F8,U+95FB,U+9605,U+9609,U+960E,U+9633-9635,U+963B,U+9640,U+9650,U+9662,U+9668-9669,U+9676-9677,U+9685,U+968B,U+968F-9690,U+9699,U+969C,U+96A7,U+96C1,U+96C4-96C5,U+96CD,U+96E8,U+96EA,U+96FE,U+9700,U+9704,U+9707,U+971C,U+971E,U+9774,U+978B,U+97E6,U+97F3,U+97F5,U+9875,U+9879-987B,U+987D,U+9882,U+9884,U+9890,U+9893,U+9896,U+9898,U+989C,U+996E,U+9972,U+9985,U+9999,U+9A6D-9A6F,U+9A7B-9A7C,U+9A8C,U+9AA4,U+9AD3,U+9B03,U+9B4F,U+9C7C,U+9C9C,U+9E26,U+9E2D,U+9E2F,U+9E33,U+9E35,U+9E70,U+9ECD,U+9F20`}),Object.freeze({family:`Aha Hand`,file:`wenkai-gb-4-375dc3b3.woff2`,bytes:257596,unicodeRange:`U+4E0C,U+4E10,U+4E15,U+4E1E,U+4E28,U+4E36,U+4E3F,U+4E47,U+4E5C,U+4E69,U+4E8D,U+4E93,U+4E98,U+4E9F-4EA0,U+4EB3,U+4EB5,U+4EBB,U+4EC2-4EC4,U+4EC9,U+4EDD-4EDE,U+4EE1,U+4EE8,U+4EEB,U+4EF3,U+4EF5,U+4F09,U+4F1B,U+4F22,U+4F25,U+4F27,U+4F2B,U+4F32,U+4F3D,U+4F57-4F58,U+4F5A,U+4F5D-4F5F,U+4F64-4F65,U+4F67,U+4F74,U+4F76,U+4F7B-4F7C,U+4F7E,U+4F83,U+4F89,U+4F8F,U+4F91,U+4F94,U+4FAA,U+4FAC,U+4FC5,U+4FCE,U+4FD1,U+4FDA,U+4FDC,U+4FDF,U+4FE3,U+4FE6,U+4FE8,U+4FEA,U+4FF3,U+4FF8,U+4FFE,U+500C,U+500F,U+501C,U+5025,U+5028-5029,U+502C-502E,U+5043,U+5048,U+504C,U+504E,U+5055,U+506C,U+507B,U+507E,U+50A5,U+50A7,U+50A9,U+50BA,U+50D6,U+50E6,U+50EC-50EE,U+5106-5107,U+510B,U+5140,U+5155-5156,U+516E,U+5181-5182,U+5196,U+51A2,U+51A5,U+51AB,U+51B1,U+51BC-51BD,U+51C7,U+51EB,U+51F5,U+51FC,U+5202,U+5208,U+520D-520E,U+522D,U+5233,U+523F-5240,U+524C,U+525C,U+525E,U+5261,U+527D,U+5281-5282,U+5290,U+5293,U+52A2,U+52AC-52AD,U+52BE,U+52D0,U+52D6,U+52F0,U+52F9,U+530D,U+530F-5310,U+5315,U+531A,U+5326,U+532E,U+533E,U+5345,U+535F,U+5363,U+5366,U+5369,U+536E,U+537A,U+538D,U+539D,U+53A3,U+53A5,U+53AE,U+53B6,U+53DF,U+53E8-53E9,U+53F1,U+53F5,U+53FB,U+53FD,U+5406,U+5412,U+5416,U+5421,U+5423,U+5432,U+5443,U+544B,U+5452-5454,U+5456-5457,U+5459,U+5464,U+5466,U+5471-5472,U+5476-5477,U+5482,U+5484,U+5494,U+549A-549B,U+549D,U+54A3-54A4,U+54A6-54A7,U+54A9-54AA,U+54AD,U+54B4,U+54BB,U+54BF,U+54C2,U+54CC,U+54CF-54D0,U+54D2-54D5,U+54D9-54DA,U+54DC-54DE,U+54E7,U+54F3,U+54FD,U+54FF,U+550F,U+5511,U+5514,U+551B,U+5520,U+5522-5523,U+5527,U+552A,U+5530,U+5533,U+5537,U+553C,U+553F,U+5541,U+5549,U+5550,U+5555-5556,U+555C,U+5567,U+556C-556D,U+5575-5577,U+557B,U+557E,U+5581,U+5583,U+5588,U+558B,U+558F,U+5591,U+5594,U+5599,U+559F,U+55B1,U+55B5,U+55B9,U+55BD-55BE,U+55C4,U+55C9,U+55CC-55CD,U+55D1-55D2,U+55D4,U+55D6,U+55DD,U+55DF,U+55E4-55E6,U+55E8,U+55EA-55EC,U+55EF,U+55F2-55F3,U+55F5,U+55F7,U+55FE,U+5600-5601,U+5608,U+560C,U+560F,U+561E-561F,U+5623-5624,U+5627,U+562C-562D,U+5639,U+564C-564D,U+5654,U+5657-5659,U+565C,U+5662,U+5664,U+5669,U+566B,U+5671,U+567B-567C,U+5685-5686,U+5693,U+56AF,U+56D4,U+56D7,U+56DD,U+56DF,U+56E1,U+56EB,U+56F5,U+56F9,U+56FF,U+5704,U+5709-570A,U+571C,U+5729-572A,U+572C,U+572E-572F,U+5733,U+5739,U+573B,U+5742,U+574C,U+575C,U+5768-5769,U+576B,U+576D,U+5773,U+5776,U+577B-577C,U+5785-5786,U+578C,U+5793,U+57A0-57A1,U+57A4,U+57A7,U+57A9,U+57AD,U+57B2,U+57B4,U+57B8,U+57CF,U+57D2,U+57D5,U+57D8-57DA,U+57DD,U+57E4,U+57ED,U+57EF,U+57F4,U+57F8,U+57FD,U+5800,U+5807,U+580B,U+580D,U+5819,U+581E,U+5820,U+5844,U+5865,U+586C,U+587E,U+5880-5881,U+5889,U+589A,U+58BC,U+58C5,U+58D1,U+5902,U+5914,U+5919,U+5924-5925,U+592D,U+593C,U+5941-5942,U+5955,U+5958,U+595A,U+5B34,U+5B5B,U+5B6C,U+5C22,U+5C25,U+5C2C,U+5C34,U+5C7A,U+5C88,U+5C8C-5C8D,U+5C90-5C91,U+5C96,U+5C98-5C9A,U+5C9C,U+5CA2-5CA3,U+5CAB-5CAC,U+5CB1,U+5CB5,U+5CB7,U+5CBD,U+5CC1,U+5CC4,U+5CCB,U+5CD2,U+5CE4-5CE5,U+5D02-5D03,U+5D06,U+5D1B,U+5D1E,U+5D24,U+5D26-5D27,U+5D2E,U+5D34,U+5D3D-5D3E,U+5D4A-5D4B,U+5D58,U+5D5B,U+5D5D,U+5D69,U+5D6B-5D6C,U+5D6F,U+5D74,U+5D82,U+5D99,U+5D9D,U+5DB7,U+5DC5,U+5DEF,U+5DFD,U+5E0F,U+5E11,U+5E14,U+5E19,U+5E31,U+5E37,U+5E3B-5E3C,U+5E44,U+5E54,U+5E5B,U+5E5E,U+5E61,U+5E80,U+5E8B,U+5E91,U+5E96,U+5EA0,U+5EA5,U+5EB3,U+5EB5,U+5EB9,U+5EBE,U+5ED1-5ED2,U+5EDB,U+5EE8,U+5EEA,U+5EF4,U+5EFE-5EFF,U+5F01,U+5F08,U+5F0B,U+5F11,U+5F61,U+5F73,U+5F77,U+5F82,U+5F87,U+5F89,U+5F8C,U+5F95,U+5F99,U+5F9C,U+5FA8,U+5FAD,U+5FB5,U+5FBC,U+5FD2,U+61FF,U+624C,U+626A,U+629F,U+62BB,U+62CA,U+62D7,U+62DA,U+62EE,U+62F6,U+6322,U+6339,U+6343,U+634B,U+6369,U+636D,U+6371,U+637A,U+638A,U+638E,U+63AC-63AE,U+63B4,U+63BC,U+63BE,U+63C4,U+63C6,U+63CE,U+63DE,U+63E0,U+63F2,U+63F6,U+63F8,U+63FF,U+640B-640C,U+641B,U+6420-6421,U+6426,U+6441,U+6445,U+6452,U+645E,U+646D,U+647A,U+6484,U+6496,U+6499,U+64B7-64B8,U+64BA,U+64C0,U+64D0,U+64D7,U+64E2,U+64E4,U+6509,U+6525,U+652E,U+6538,U+6BD3,U+6C10,U+6C3D,U+6C46,U+71EE,U+723B,U+72AD,U+72B0,U+72B4,U+72B7-72B8,U+72C1,U+72C3,U+72CD-72CE,U+72D2,U+72E8-72E9,U+72EF,U+72F2-72F4,U+72F7,U+72FA-72FB,U+7301,U+7303,U+730A,U+7313,U+7315,U+7317,U+731D-731E,U+7321-7322,U+7325,U+732C,U+7331,U+7338-7339,U+734D,U+7350,U+7357,U+7360,U+736C,U+736F,U+737E,U+750D,U+7519,U+755A,U+777E,U+77A2,U+77CD,U+7980,U+79BA,U+7C74,U+7F54,U+7FB8,U+8037,U+80E4,U+8114,U+81BA,U+821B,U+8279,U+827D,U+827F,U+8284,U+8288,U+828A,U+828E-828F,U+8291,U+8297-8299,U+829F,U+82A1,U+82A4,U+82A8-82AB,U+82AE,U+82B0,U+82B4,U+82B7-82B8,U+82BE,U+82C1,U+82C4,U+82C8,U+82CA-82CC,U+82CE,U+82D2-82D3,U+82D5,U+82D8,U+82DC,U+82E0-82E1,U+82E3-82E4,U+82F4,U+82F7,U+82FB,U+8306-8309,U+830C,U+830F,U+8311,U+8314-8315,U+8317,U+831A-831C,U+832D,U+832F,U+8331,U+8333-8334,U+833A,U+833C,U+8340,U+8343,U+8347,U+834F,U+8351,U+835B-835C,U+835E-8360,U+8365-8366,U+8368-836A,U+836C-836E,U+8378,U+837B-837D,U+8385,U+8392-8393,U+8398,U+839B-839C,U+839E,U+83A0,U+83A8-83AA,U+83B0,U+83B3-83B4,U+83B6,U+83B8,U+83BA,U+83BC,U+83C0-83C1,U+83C5,U+83D4,U+83D6,U+83D8,U+83DD,U+83DF,U+83E1,U+83E5,U+83EA,U+83F0,U+83F8-83F9,U+83FD,U+8401,U+8403,U+8406,U+840B,U+840F,U+8411,U+8418,U+841C,U+8426,U+8431,U+8438,U+843C,U+8446,U+8451,U+8459-845A,U+845C,U+8469,U+846D,U+8473,U+8476,U+8478,U+847A,U+8487-8489,U+848C,U+848E,U+8497,U+84A1,U+84AF,U+84B4,U+84B9-84BA,U+84BD,U+84BF,U+84C1,U+84CA,U+84CD,U+84D0,U+84D3,U+84E0,U+84E3,U+84E5-84E6,U+84F0,U+84FC,U+84FF,U+850C,U+851F,U+8538-853B,U+8543,U+8548,U+8556,U+8559,U+855E,U+8564,U+8568,U+8572,U+8579-857B,U+8585,U+8587,U+858F,U+859C,U+85A4,U+85A8,U+85AE,U+85B0,U+85B7,U+85B9,U+85C1,U+85D3,U+85DC,U+85FF,U+8605,U+8616,U+8627,U+8629,U+863C,U+8803,U+8862,U+886E,U+88A4,U+88D2,U+8A07,U+8BA0,U+8BA6-8BA7,U+8BAA,U+8BB4-8BB5,U+8BB7,U+8BC2-8BC3,U+8BCB,U+8BCE-8BCF,U+8BD2-8BD4,U+8BD6,U+8BD8-8BD9,U+8BDC,U+8BDF-8BE0,U+8BE4,U+8BE8-8BE9,U+8BEE,U+8BF0,U+8BF3,U+8BF6,U+8BF9,U+8BFC,U+8BFF-8C00,U+8C02,U+8C04,U+8C07,U+8C0C,U+8C0F,U+8C11-8C12,U+8C14-8C16,U+8C18-8C19,U+8C1B,U+8C1D,U+8C1F-8C21,U+8C25,U+8C27,U+8C2A-8C2B,U+8C2E-8C2F,U+8C32-8C33,U+8C35-8C36,U+8C73,U+8D53,U+8D5C-8D5D,U+8F94,U+9097,U+9099,U+909B,U+909D,U+90A1,U+90AC,U+90B0,U+90B3-90B4,U+90B6,U+90B8,U+90BA,U+90BE,U+90C4-90C5,U+90C7,U+90CF-90D0,U+90D3,U+90D7,U+90DB-90DC,U+90E2,U+90E6,U+90EB,U+90EF,U+90FE,U+9104,U+911E,U+9122-9123,U+912F,U+9131,U+9139,U+9143,U+9146,U+961D,U+9621-9622,U+962A,U+9631,U+963C-963D,U+9642,U+9649,U+9654,U+965F,U+9667,U+966C,U+9672,U+9674,U+9688,U+968D,U+9697,U+96B0,U+9765,U+98E7,U+9963,U+9967-996C,U+9974,U+9977,U+997D,U+9980,U+9984,U+9987,U+998A,U+998D,U+9990-9991,U+9993-9995,U+9997-9998,U+99A8,U+9B2F,U+9B32,U+9EC9,U+9F10,U+9F17,U+9F19,U+9FA0`}),Object.freeze({family:`Aha Hand`,file:`wenkai-gb-5-d0359bbc.woff2`,bytes:278908,unicodeRange:`U+4E2C,U+5216,U+54AB,U+584D,U+5981,U+5983,U+598D,U+5997,U+599E,U+59A3-59A4,U+59A9-59AB,U+59AF,U+59B2,U+59BE,U+59CA,U+59D2,U+59D7-59D8,U+59DD,U+59E3,U+59F9,U+5A05-5A06,U+5A08-5A09,U+5A0C,U+5A11,U+5A13,U+5A23,U+5A32,U+5A34,U+5A3C,U+5A40,U+5A4A,U+5A55,U+5A62,U+5A67,U+5A75,U+5A77,U+5A7A,U+5A9B,U+5AAA,U+5AB2,U+5AB5,U+5AB8,U+5ABE,U+5AD2,U+5AD4,U+5AD6,U+5AD8,U+5ADC,U+5AE0,U+5AE3,U+5AE6,U+5AEB,U+5AF1,U+5B09,U+5B16-5B17,U+5B32,U+5B37,U+5B40,U+5B51,U+5B53,U+5B5A,U+5B62,U+5B65,U+5B71,U+5B73,U+5B80,U+5B84,U+5B93,U+5B95,U+5BA5,U+5BB8,U+5BE4,U+5BEE,U+5BF0,U+5C15,U+5C1C,U+5C3B,U+5C50,U+5C59,U+5C63,U+5C66,U+5C6E,U+5DDB,U+5E7A,U+5F29-5F2A,U+5F2D,U+5F3C,U+5F40,U+5F50,U+5F56-5F58,U+5FC4,U+5FC9,U+5FCF-5FD1,U+5FD6,U+5FDD,U+5FE1,U+5FE4,U+5FEA,U+5FED-5FEE,U+5FF8,U+5FFE,U+6003-6006,U+600A,U+600D,U+600F,U+6019,U+601B,U+6021,U+6026,U+6029,U+602B,U+6035,U+603C,U+603F,U+6041-6042,U+6059-605A,U+605D,U+6063,U+6067,U+606A,U+6078-607B,U+607D,U+6083,U+608C,U+6092,U+6096,U+609A-609B,U+609D,U+60AB,U+60AD,U+60B1,U+60B4,U+60BB,U+60C6,U+60D8,U+60DA,U+60DD,U+60EC,U+60F4,U+6100,U+6106,U+610D-610E,U+6115,U+6120,U+6123,U+6126,U+612B,U+614A,U+615D,U+6175,U+6194,U+619D,U+61A7,U+61A9,U+61AC,U+61B7,U+61CB,U+61D1,U+61D4,U+61F5,U+6206,U+620B,U+6215,U+6217,U+621B,U+621F,U+6221-6222,U+6224-6225,U+622C,U+623D-623E,U+6243,U+6248-6249,U+6308,U+6332,U+63B0,U+6434,U+643F,U+64D8,U+6534-6535,U+6555,U+656B,U+6590,U+6593,U+65AB,U+65BC,U+65C3-65C4,U+65C6,U+65CC,U+65CE,U+65D2,U+65D6,U+65EE-65F0,U+6600,U+6603,U+660A,U+6615,U+6619,U+661D,U+6631,U+6634-6636,U+6641,U+664F,U+6654,U+6656-6657,U+665F,U+6661,U+6677,U+6684,U+668C,U+669D,U+66A7,U+66B9,U+66BE,U+66DB-66DC,U+66E6,U+66E9,U+66F7,U+670A,U+6710,U+6715,U+6726,U+6748,U+674C,U+6753,U+675E,U+6769-676A,U+6772-6773,U+6775,U+6777,U+677C,U+6787,U+678B,U+6798,U+679E,U+67A5,U+67A7-67A8,U+67AD,U+67B0,U+67B3,U+67B5,U+67B8,U+67C1,U+67C3,U+67D8-67DA,U+67DD,U+67E2,U+67E9,U+67F0,U+67FD,U+6800,U+6809-680A,U+680C,U+680E,U+681D,U+6829,U+6832-6833,U+683E,U+6840-6841,U+6844,U+6849-684A,U+684E,U+6855,U+6860-6862,U+6864,U+6866-6867,U+686B,U+6874,U+6877,U+6883,U+688F,U+6893,U+68B5,U+68C2,U+68E3,U+68F0,U+68F9,U+68FC,U+6901,U+690B,U+6910,U+691F-6920,U+6924,U+6934,U+6939,U+6942,U+6957,U+695D,U+6960,U+6963,U+6966,U+696B,U+696E,U+6971,U+6978-6979,U+6980,U+6984,U+6987-6989,U+698D,U+6995,U+6998,U+699B,U+69A7,U+69AB,U+69AD,U+69B1,U+69BB,U+69C1,U+69CA,U+69CC,U+69CE,U+69D4,U+69DF-69E0,U+69ED,U+69F2,U+69FF,U+6A17-6A18,U+6A28,U+6A2F,U+6A35,U+6A3D-6A3E,U+6A44,U+6A50,U+6A58,U+6A5B,U+6A65,U+6A79,U+6A7C,U+6A8E,U+6A90-6A91,U+6A97,U+6AA0,U+6AA9,U+6AAB,U+6B24,U+6B37,U+6B39,U+6B43,U+6B46,U+6B59,U+6B81-6B82,U+6B84,U+6B87,U+6B8D,U+6B92-6B93,U+6B9A-6B9B,U+6BA1,U+6BAA,U+6BB3,U+6BC2,U+6BEA,U+6BF3,U+6BF5,U+6BF9,U+6BFD,U+6C05-6C07,U+6C0D,U+6C15,U+6C18-6C1A,U+6C21,U+6C24,U+6C29-6C2A,U+6C32,U+6C35,U+6C4A,U+6C54,U+6C5C,U+6C68-6C69,U+6C74,U+6C76,U+6C85-6C86,U+6C8C,U+6C90,U+6C93-6C94,U+6CA3,U+6CA9,U+6CAD,U+6CB1-6CB2,U+6CD0,U+6CD3-6CD4,U+6CD6-6CD7,U+6CE0,U+6CEB,U+6CEE-6CEF,U+6CF1,U+6CF6-6CF8,U+6CFA,U+6CFE,U+6D04,U+6D07,U+6D0C,U+6D0E,U+6D19-6D1A,U+6D27,U+6D2B,U+6D2E,U+6D33,U+6D35,U+6D39,U+6D43,U+6D48,U+6D4D,U+6D4F,U+6D52,U+6D54,U+6D5C,U+6D5E,U+6D60,U+6D63,U+6D6F,U+6D7C,U+6D91,U+6D93-6D94,U+6D9E,U+6DA0,U+6DAB,U+6DAE,U+6DBF,U+6DC5,U+6DC7,U+6DD9,U+6DDD-6DDE,U+6DE0,U+6DE6,U+6DFC,U+6E0C,U+6E0E,U+6E11,U+6E16,U+6E1A,U+6E25,U+6E2B,U+6E32,U+6E44,U+6E4E,U+6E53-6E54,U+6E5F,U+6E6B,U+6E6E,U+6E86,U+6E8F,U+6E98,U+6E9F,U+6EA5,U+6EA7,U+6EB1-6EB2,U+6EB4,U+6EB7,U+6EBB,U+6EBD,U+6EC2,U+6ECF,U+6ED5,U+6ED7,U+6EDF-6EE0,U+6EE2,U+6EF9,U+6F09,U+6F15,U+6F24,U+6F29-6F2A,U+6F2D,U+6F2F,U+6F36,U+6F46-6F47,U+6F4B,U+6F62,U+6F72,U+6F74,U+6F78,U+6F7A,U+6F7C,U+6F89,U+6F8C-6F8D,U+6FA7,U+6FB6,U+6FB9,U+6FC2,U+6FC9,U+6FD1,U+6FDE,U+6FE0-6FE1,U+6FEE-6FEF,U+701A-701B,U+7023,U+7035,U+7039,U+704F,U+705E,U+706C,U+7080,U+7085,U+7096,U+709C-709D,U+70AB,U+70B1,U+70B7,U+70BB,U+70C0,U+70CA,U+70E8,U+7110,U+7113,U+7116,U+7118,U+712F,U+7131,U+7145,U+714A,U+715C,U+7166,U+7168,U+7172-7173,U+7178,U+717A,U+7198,U+71A0,U+71A8,U+71B3,U+71B5,U+71B9,U+71D4,U+71E0,U+71E7,U+71F9,U+721D,U+7228,U+7230,U+723F,U+724D,U+7252,U+7256,U+725D,U+7266,U+726E-726F,U+727E-727F,U+7284,U+728B,U+728D,U+728F,U+7292,U+729F,U+7337,U+7352,U+738E,U+7391,U+739F,U+73A2,U+73AE,U+73B3,U+73B7,U+73BA,U+73C0,U+73C2,U+73C8-73C9,U+73CF,U+73D1,U+73D9,U+73DE,U+73E5,U+73E7,U+73E9,U+73F2,U+740A,U+740F,U+741A-741B,U+7425-7426,U+7428,U+742A,U+742C,U+742E,U+7430,U+7441,U+7455,U+7457,U+7459,U+745B-745C,U+746D,U+7477,U+747E,U+7480-7481,U+7487,U+748B,U+748E,U+7490,U+749C,U+749E,U+74A7-74A9,U+74BA,U+74D2,U+74EF,U+74F4,U+74FF,U+750F,U+7511,U+7513,U+752F,U+753E,U+757F,U+77F6,U+77F8,U+7800,U+7809,U+7811,U+7817-7818,U+781C-781D,U+782D,U+793B,U+7940,U+7946,U+7949,U+7953,U+7957,U+795A-795C,U+7960,U+7962,U+7967,U+796F,U+797A,U+7985,U+798A,U+799A,U+79A7,U+79B3,U+7E9F,U+7EA1,U+7EA3,U+7EA5,U+7EA8-7EA9,U+7EAD,U+7EB0,U+7EBE,U+7EC0-7EC2,U+7EC9,U+7ECB-7ECC,U+7ED0,U+7ED4,U+7ED7,U+7EDB,U+7EE0-7EE1,U+7EE8,U+7EEB,U+7EEE-7EEF,U+7EF1-7EF2,U+7EF6,U+7EFA-7EFB,U+7EFE,U+7F01-7F03,U+7F07-7F08,U+7F0B-7F0D,U+7F0F,U+7F11-7F12,U+7F17,U+7F19,U+7F1B-7F1C,U+7F1F,U+7F21-7F27,U+7F2A-7F2D,U+7F2F-7F33,U+7F35,U+7FBC,U+8004,U+8006,U+807F-8080,U+8093,U+809C,U+809F,U+80AB,U+80AD,U+80B1,U+80B4,U+80B7,U+80BC-80BD,U+80C2,U+80C4,U+80CD,U+80D7,U+80D9,U+80DB,U+80DD,U+80E7-80ED,U+80F1-80F2,U+80F4,U+80FC,U+810D-810E,U+8112,U+8118,U+811E,U+812C,U+8132,U+8136,U+8148,U+814C,U+8153,U+8159-815A,U+8160,U+8167,U+8169,U+816D,U+8171,U+8174,U+817C-817D,U+8182,U+8188,U+8191,U+81A3,U+81A6,U+81AA,U+81BB,U+81C1,U+81CA,U+81CC,U+81E7,U+8274,U+8662,U+8930,U+89C7,U+89CA-89CC,U+89CE-89D1,U+89F3,U+8B07,U+8C5A,U+8D32-8D33,U+8D36,U+8D3B,U+8D3D,U+8D40,U+8D45-8D49,U+8D4D,U+8D55,U+8D59,U+8E47,U+8ECE,U+8F6B,U+8F6D,U+8F71-8F73,U+8F75-8F7A,U+8F7C,U+8F7E,U+8F81-8F82,U+8F84,U+8F87,U+8F8B,U+8F8D-8F8F,U+8F98,U+8F9A,U+8FB6,U+8FD3,U+8FD5,U+8FE4-8FE6,U+8FE8-8FE9,U+8FEE,U+8FF3,U+9004-9005,U+900B,U+900D,U+9011,U+9016,U+9021,U+9026,U+902D,U+902F,U+9035-9036,U+9044,U+9050-9052,U+9058,U+905B,U+9062,U+9068,U+9074,U+907D,U+9082-9083,U+9088,U+908B,U+9095,U+95E9,U+95EB,U+95F1,U+95F3,U+95F5-95F6,U+95FC,U+95FE,U+9603-9604,U+9606,U+9608,U+960A-960D,U+960F,U+9612,U+9615-9617,U+9619-961A,U+96B3,U+97EA-97EC,U+987C,U+98D1-98D3,U+98D5,U+98D9-98DA,U+9A75,U+9A77-9A78,U+9A7A,U+9A7D,U+9A7F-9A81,U+9A85,U+9A88,U+9A8A,U+9A90,U+9A92-9A93,U+9A96,U+9A98,U+9A9B-9AA0,U+9AA2-9AA3,U+9AA5,U+9AA7,U+9B3B,U+9F51`}),Object.freeze({family:`Aha Hand`,file:`wenkai-gb-6-a238b41c.woff2`,bytes:307604,unicodeRange:`U+5D47,U+6549,U+659B,U+66A8,U+74DE,U+74E0,U+752C,U+753A,U+7540,U+7548,U+754B,U+754E,U+755B,U+7572,U+7579,U+7583,U+758B,U+7592,U+7594,U+7596,U+759D,U+75A0,U+75A3,U+75AC,U+75B0-75B1,U+75B3-75B4,U+75B8,U+75C2-75C4,U+75CD,U+75D6,U+75E3-75E4,U+75E6-75E8,U+75EB,U+75F1,U+75FC,U+75FF-7600,U+7603,U+7605,U+760A,U+760C,U+7610,U+7615,U+7617-7619,U+761B,U+7620,U+7622,U+7625,U+762D,U+7630,U+7633,U+7635,U+763C,U+763E-7640,U+7643,U+764D,U+7654,U+7656,U+765C,U+765E,U+766B,U+766F,U+7688,U+768E,U+7693,U+7699,U+76A4,U+76B2,U+76B4,U+76CD,U+76E5,U+76F1,U+76F9,U+7704,U+7707-7708,U+770D,U+7719-771A,U+7722,U+7726,U+772D,U+7735,U+7738,U+7743,U+7747,U+7750-7751,U+775A,U+7762,U+7765,U+7768,U+777D,U+777F-7780,U+778C-778D,U+7791,U+779F-77A0,U+77B0,U+77B5,U+77BD,U+77BF,U+77DC,U+77E7,U+77EC,U+781F,U+7823,U+7825-7826,U+7829,U+782C,U+7839-783C,U+7847,U+784C,U+784E,U+7850,U+7856-7857,U+786A,U+786D,U+7887,U+7893,U+789A-789C,U+78A1,U+78A3,U+78A5,U+78B2,U+78B9,U+78C9,U+78D4,U+78D9,U+78EC,U+78F2,U+78F4,U+7905,U+7913,U+791E,U+7924,U+7934,U+79D5,U+79E3,U+79EB,U+79ED,U+7A02-7A03,U+7A06,U+7A14,U+7A1E,U+7A23,U+7A37,U+7A39,U+7A51,U+7A70,U+7A78-7A79,U+7A80,U+7A86,U+7A88,U+7A95,U+7AA0,U+7AA6,U+7AA8,U+7AAC-7AAD,U+7AB3,U+7AE6,U+7AFA,U+7AFD,U+7B03-7B04,U+7B08,U+7B0A,U+7B0F,U+7B15,U+7B19,U+7B1E,U+7B20,U+7B24-7B25,U+7B2A-7B2B,U+7B2E,U+7B31,U+7B33,U+7B38,U+7B3E,U+7B45,U+7B47,U+7B4C,U+7B58,U+7B5A,U+7B5D,U+7B60,U+7B62,U+7B6E,U+7B71-7B72,U+7B75,U+7B7B,U+7B85,U+7B90,U+7B9C-7B9D,U+7BA2,U+7BA6-7BA8,U+7BAA-7BAC,U+7BB4,U+7BB8,U+7BC1,U+7BCC,U+7BD1,U+7BDA,U+7BDD,U+7BE5-7BE6,U+7BEA,U+7BFC,U+7BFE,U+7C0B-7C0C,U+7C0F,U+7C16,U+7C1F,U+7C26,U+7C2A,U+7C38,U+7C40-7C41,U+7C7C,U+7C91,U+7C9C-7C9E,U+7CA2,U+7CB2,U+7CBC-7CBD,U+7CC1,U+7CC5,U+7CC7-7CC8,U+7CCC-7CCD,U+7CD7,U+7CE8,U+7CF8,U+7D77,U+7DA6,U+7DAE,U+7E3B,U+7E47,U+7E9B,U+7F36,U+7F42,U+7F44-7F45,U+7F58,U+7F5F,U+7F61,U+7F68,U+7F71,U+7F74,U+7F79,U+7F7E,U+7F81,U+7F9D,U+7F9F,U+7FA7,U+7FAF-7FB0,U+7FB2,U+7FBF,U+7FCA,U+7FCE,U+7FD5,U+7FE1,U+7FE5-7FE6,U+7FE9,U+7FEE,U+7FF3,U+800B,U+8012,U+8014,U+8016,U+801C,U+8020,U+8022,U+8025-8029,U+8031,U+8035,U+8043,U+8046,U+804D,U+8052,U+8069,U+8071,U+80E5,U+81EC,U+81FE,U+8201-8202,U+8204,U+8210,U+8221-8223,U+8228,U+822B,U+822D,U+822F,U+8233-8234,U+8238,U+823B,U+823E,U+8244,U+8249,U+824B,U+824F,U+825A,U+825F,U+8268,U+826E,U+864D,U+8654,U+866C,U+866E,U+867A-867C,U+867F,U+868B,U+868D,U+8693,U+869D,U+86A3,U+86A7-86AA,U+86AC,U+86AF-86B1,U+86B4-86B6,U+86BA,U+86C4,U+86C9,U+86CE-86D1,U+86D8,U+86DE-86DF,U+86E9,U+86ED,U+86F1-86F4,U+86F8,U+8703,U+8707-870A,U+870D,U+8713,U+871A,U+871E,U+8722-8723,U+8725,U+8729,U+872E,U+8731,U+8734,U+8737,U+873B,U+873E-873F,U+8748,U+874C,U+8753,U+8759,U+8760,U+8763-8765,U+876E,U+8770,U+877B-877E,U+8782-8783,U+8785,U+8788,U+878B,U+8793,U+8797,U+87A8,U+87AB-87AD,U+87AF,U+87B3,U+87B5,U+87BD,U+87C0,U+87C6,U+87CA-87CB,U+87D1-87D3,U+87DB,U+87E0,U+87E5,U+87EA,U+87EE,U+87FE,U+880A,U+8813,U+8816,U+881B,U+8821,U+8832,U+8839,U+883C,U+8844,U+8864,U+8869,U+8872,U+887D-887F,U+8882,U+8885,U+8888,U+88A2,U+88B7,U+88BC,U+88C6,U+88C9,U+88CE,U+88D8,U+88DF,U+88E2-88E3,U+88E5,U+88E8,U+88F0-88F1,U+88FC,U+88FE,U+890A,U+8913,U+8919-891B,U+8921,U+892B,U+8934,U+8936,U+8941,U+895E,U+8966,U+897B,U+8983,U+89D6,U+89DA,U+89DC,U+89DE,U+89E5,U+89EB,U+89EF,U+8A3E,U+8A48,U+8B26,U+8C47,U+8C49,U+8C55,U+8C78,U+8C82,U+8C85,U+8C8A,U+8C94,U+8C98,U+8D67,U+8D6D,U+8D73,U+8D84,U+8D91,U+8D94,U+8DB1,U+8DB5,U+8DB8,U+8DBA,U+8DBC,U+8DBF,U+8DC4,U+8DC6,U+8DCE-8DCF,U+8DD6-8DD7,U+8DDA-8DDB,U+8DDE,U+8DE3-8DE4,U+8DEB-8DEC,U+8DF7-8DF9,U+8DFB,U+8DFD,U+8E05,U+8E09,U+8E14,U+8E1D,U+8E1F,U+8E23,U+8E2C,U+8E2E-8E2F,U+8E31,U+8E35,U+8E39-8E3A,U+8E3D,U+8E40-8E42,U+8E49-8E4A,U+8E51-8E52,U+8E59,U+8E69,U+8E6F-8E70,U+8E74,U+8E76,U+8E7C,U+8E85,U+8E8F-8E90,U+8E94,U+8E9C,U+8E9E,U+914A,U+914E-9150,U+9161-9162,U+9164,U+9169,U+916F-9170,U+9172,U+9174,U+9179,U+917D-917E,U+9185,U+918C-918D,U+9190-9191,U+91A2-91A3,U+91AA,U+91AD-91AF,U+91B4-91B5,U+91BA,U+928E,U+92AE,U+92C8,U+933E,U+936A,U+938F,U+93CA,U+93D6,U+943E,U+946B,U+9485-9487,U+948A-948D,U+948F-9490,U+9494-9495,U+9497,U+949A-949C,U+94A3-94A4,U+94AA-94AD,U+94AF-94B0,U+94B2,U+94B4,U+94B6-94BA,U+94BC-94BD,U+94BF,U+94C4,U+94C8-94CE,U+94D0-94D2,U+94D5-94D9,U+94DB,U+94DE-94E0,U+94E2,U+94E4-94E5,U+94E7-94EB,U+94EE-94EF,U+94F3-94F5,U+94F7,U+94F9,U+94FC-94FD,U+94FF,U+9502-9503,U+9506-9507,U+9509-950A,U+950D-950F,U+9512-9516,U+9518,U+951B,U+951D-951F,U+9522,U+9529-952C,U+9531-9532,U+9534-9538,U+953A,U+953C,U+953E-953F,U+9542,U+9544-9546,U+9549,U+954C,U+954E-954F,U+9552-9554,U+9556-9559,U+955B,U+955D-955F,U+9561-9562,U+9564-956C,U+956F,U+9571-9573,U+96B9,U+96BC-96BD,U+96C9,U+96CE,U+96D2,U+96E0,U+96E9,U+96EF,U+96F3,U+9701,U+9706,U+9708,U+970E-970F,U+972A,U+972D,U+9730,U+973E,U+9753,U+977C,U+9785,U+9791-9792,U+9794,U+97A3,U+97AB,U+97AF,U+97B2,U+97B4,U+9878,U+9880,U+9883,U+9889,U+988C-988D,U+988F,U+9894,U+989A-989B,U+989E-989F,U+98A1-98A2,U+98A5-98A6,U+98E8,U+990D,U+992E,U+9954-9955,U+99A5,U+9AB0-9AB1,U+9AB6-9AB7,U+9ABA,U+9ABC,U+9AC0-9AC2,U+9AC5,U+9ACB-9ACC,U+9AD1,U+9ADF,U+9AE1,U+9AE6,U+9AEB,U+9AED,U+9AEF,U+9AF9,U+9AFB,U+9B08,U+9B0F,U+9B13,U+9B1F,U+9B23,U+9B43,U+9B45,U+9B47-9B49,U+9B4D,U+9B51,U+9C7F,U+9C82,U+9C85-9C88,U+9C8B,U+9C8E,U+9C90-9C92,U+9C94-9C95,U+9C9A-9C9B,U+9C9E-9CA3,U+9CA5-9CA9,U+9CAB,U+9CAD-9CAE,U+9CB0-9CB7,U+9CBA-9CBD,U+9CC4-9CC7,U+9CCA-9CD0,U+9CD3-9CD5,U+9CD7-9CD9,U+9CDC-9CDD,U+9CDF,U+9CE2,U+9E20,U+9E22,U+9E28-9E2C,U+9E31-9E32,U+9E36-9E3A,U+9E3E,U+9E41-9E42,U+9E44,U+9E46-9E49,U+9E4B-9E4C,U+9E4E,U+9E51,U+9E55,U+9E57-9E58,U+9E5A-9E5C,U+9E5E,U+9E63,U+9E66-9E6D,U+9E71,U+9E73,U+9E7E,U+9E82,U+9E87-9E88,U+9E8B,U+9E92,U+9E9D,U+9E9F,U+9EB4,U+9EB8,U+9EBD-9EBE,U+9ECF,U+9EDB-9EDD,U+9EDF-9EE0,U+9EE2,U+9EE5,U+9EE7,U+9EE9-9EEA,U+9EEF,U+9EF9,U+9EFB-9EFC,U+9EFE,U+9F0B,U+9F0D,U+9F22,U+9F2C,U+9F2F,U+9F37,U+9F39,U+9F3D-9F3E,U+9F44,U+9F80,U+9F83,U+9F85-9F8A,U+9F8C,U+9F9B`})]),vf=`'Aha Hand Latin','Aha Hand','Segoe Print','Ink Free','Bradley Hand','Chalkboard SE','Noteworthy','Comic Sans MS','LXGW WenKai','Kaiti SC','STKaiti','KaiTi','楷体',cursive`,yf=`${_f.map(e=>`@font-face{font-family:'${e.family}';font-style:normal;font-weight:400;font-display:swap;src:url('api/aha-tutor/font?f=${e.file}') format('woff2');unicode-range:${e.unicodeRange}}`).join(`
|
|
277
277
|
`)}
|
|
278
278
|
.aha{container-type:inline-size;container-name:aha;--aha-gap:12px;--aha-radius:var(--dsw-radius-md,12px);--aha-text:var(--dsw-alias-label-primary,#1f2328);--aha-muted:var(--dsw-alias-label-tertiary,#6b7280);--aha-dim:var(--dsw-alias-label-caption,#9ca3af);--aha-border:var(--dsw-alias-border-l2,#e5e7eb);--aha-bg:var(--dsw-alias-bg-base,#fafafa);--aha-surface:var(--dsw-alias-bg-layer-1,#fff);--aha-soft:var(--dsw-alias-bg-module-platform,#f4f5f7);--aha-hover:var(--dsw-alias-interactive-bg-hover,rgba(0,0,0,.05));--aha-brand:var(--dsw-alias-state-business-primary,#3b6cf6);--aha-primary-bg:var(--dsw-alias-brand-primary,#111);--aha-primary-fg:var(--dsw-alias-label-primary-inverted,#fff);--aha-ok:var(--dsw-alias-state-success-primary,#1f9d55);--aha-bad:var(--dsw-alias-state-error-primary,#d64545);
|
|
279
279
|
display:flex;flex:1 1 auto;height:100%;min-height:0;overflow:hidden;background:var(--aha-bg);color:var(--aha-text);font-size:var(--dsh-content-font-size,14px);line-height:1.6;box-sizing:border-box}
|
|
@@ -367,7 +367,15 @@ a.aha-btn{text-decoration:none}
|
|
|
367
367
|
@container aha (max-width:1060px){.aha-split{grid-template-columns:1fr;height:auto}.aha-page[data-wide=true]:has(>.aha-split){height:auto}.aha-split .aha-class{height:auto}.aha-split .aha-classMain{min-height:0}.aha-split .aha-stage{flex:0 0 auto;min-height:0;height:clamp(300px,60vh,640px)}.aha-split .aha-transcript{max-height:260px}}
|
|
368
368
|
|
|
369
369
|
/* ── classroom ─────────────────────────────────────────────────────────── */
|
|
370
|
-
.aha-class{display:flex;flex-direction:column;gap:10px;height:100%;min-height:0;container-type:inline-size;container-name:classroom}
|
|
370
|
+
.aha-class{position:relative;display:flex;flex-direction:column;gap:10px;height:100%;min-height:0;container-type:inline-size;container-name:classroom}
|
|
371
|
+
/* The first-run tour (ClassroomTour.jsx): one part lit, the rest dimmed. */
|
|
372
|
+
.aha-tour{position:absolute;inset:0;z-index:40}
|
|
373
|
+
.aha-tourHole{position:absolute;border-radius:14px;box-shadow:0 0 0 9999px rgba(12,14,18,.55);transition:left .3s ease,top .3s ease,width .3s ease,height .3s ease;pointer-events:none}
|
|
374
|
+
.aha-tourCard{position:absolute;box-sizing:border-box;width:min(330px,calc(100% - 16px));display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:14px;background:var(--aha-surface);color:var(--aha-text);border:1px solid var(--aha-border);box-shadow:0 12px 32px rgba(0,0,0,.25);transition:left .3s ease,top .3s ease}
|
|
375
|
+
.aha-tourCard p{margin:0;font-size:13.5px;line-height:21px;color:var(--aha-muted)}
|
|
376
|
+
.aha-tourActions{display:flex;align-items:center;gap:6px;justify-content:flex-end;flex-wrap:wrap}
|
|
377
|
+
.aha-tourActions .aha-hint{margin-right:auto}
|
|
378
|
+
@media (prefers-reduced-motion:reduce){.aha-tourHole,.aha-tourCard{transition:none}}
|
|
371
379
|
.aha-classBody{flex:1 1 auto;min-height:0;display:flex;gap:12px}
|
|
372
380
|
.aha-classMain{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;gap:10px}
|
|
373
381
|
.aha-panel{flex:0 0 clamp(220px,26cqi,300px);width:clamp(220px,26cqi,300px);min-height:0;display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--aha-border);border-radius:16px;background:var(--aha-surface)}
|
|
@@ -380,6 +388,15 @@ a.aha-btn{text-decoration:none}
|
|
|
380
388
|
.aha-goals li[data-state=current] .aha-goalMark{border-color:var(--aha-brand);color:var(--aha-brand)}
|
|
381
389
|
.aha-goals li[data-state=done] .aha-goalMark{background:var(--aha-ok);border-color:var(--aha-ok);color:#fff}
|
|
382
390
|
.aha-transcript{flex:1 1 auto;min-height:80px;overflow:auto;display:flex;flex-direction:column;gap:2px}
|
|
391
|
+
/* A lesson's depth: how it treats its idea. */
|
|
392
|
+
/* Mixed with the text colour, so the hue stays readable in DSH's dark theme. */
|
|
393
|
+
.aha-depth{flex:none;padding:0 7px;border:1px solid color-mix(in srgb,var(--depth,var(--aha-muted)) 45%,transparent);border-radius:999px;color:color-mix(in srgb,var(--depth,var(--aha-muted)) 78%,var(--aha-text));font-size:11.5px;line-height:18px;white-space:nowrap}
|
|
394
|
+
.aha-depthSelect{flex:none;max-width:7.5em;padding:1px 4px;border:1px solid var(--aha-border);border-radius:8px;background:var(--aha-surface);color:color-mix(in srgb,var(--depth,var(--aha-muted)) 78%,var(--aha-text));font:inherit;font-size:12px}
|
|
395
|
+
:is(.aha-depth,.aha-depthSelect)[data-depth=intuition]{--depth:#2f9e6e}
|
|
396
|
+
:is(.aha-depth,.aha-depthSelect)[data-depth=definition]{--depth:#2f6fde}
|
|
397
|
+
:is(.aha-depth,.aha-depthSelect)[data-depth=derivation]{--depth:#7a4fd6}
|
|
398
|
+
:is(.aha-depth,.aha-depthSelect)[data-depth=application]{--depth:#d9822b}
|
|
399
|
+
:is(.aha-depth,.aha-depthSelect)[data-depth=extension]{--depth:#d64545}
|
|
383
400
|
.aha-lineRow{position:relative;display:flex;align-items:flex-start;min-width:0}
|
|
384
401
|
.aha-lineRow[data-aside=true]{margin-left:10px;border-left:2px dashed var(--aha-ok)}
|
|
385
402
|
.aha-line{display:flex;gap:6px;align-items:flex-start;flex:1;min-width:0;padding:6px 8px;border:0;border-radius:8px;background:transparent;color:var(--aha-muted);font:inherit;font-size:13px;line-height:19px;text-align:left;cursor:pointer}
|
|
@@ -429,6 +446,62 @@ a.aha-btn{text-decoration:none}
|
|
|
429
446
|
.aha-micNote[data-error=true]{border-color:color-mix(in srgb,var(--aha-bad) 60%,var(--aha-border))}
|
|
430
447
|
.aha-micClose{position:absolute;top:4px;right:6px;border:0;background:transparent;color:var(--aha-muted);cursor:pointer;font-size:15px;line-height:1;padding:2px}
|
|
431
448
|
.aha-buildLog{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
|
|
449
|
+
/* The blueprint as a mind map (BlueprintMap.jsx). Paddings, fonts and line
|
|
450
|
+
heights match MAP_LEVELS in mindmap.js, which sizes the boxes. */
|
|
451
|
+
.aha-map{position:relative;min-width:0}
|
|
452
|
+
.aha-mapView{position:relative;overflow:hidden;height:clamp(320px,58vh,680px);border:1px solid var(--aha-border);border-radius:var(--aha-radius);background:var(--aha-soft);background-image:radial-gradient(color-mix(in srgb,var(--aha-muted) 30%,transparent) 1px,transparent 1.2px);background-size:22px 22px;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
|
|
453
|
+
.aha-mapView:active{cursor:grabbing}
|
|
454
|
+
.aha-mapWorld{position:absolute;left:0;top:0;transform-origin:0 0}
|
|
455
|
+
.aha-mapLinks{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
|
|
456
|
+
.aha-mapLinks path{fill:none;stroke:color-mix(in srgb,var(--aha-muted) 60%,transparent);stroke-width:1.6;animation:aha-mapIn .5s ease both}
|
|
457
|
+
.aha-mapNode{position:absolute;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:7px 12px;border:1px solid var(--aha-border);border-radius:12px;background:var(--aha-surface);color:var(--aha-text);font-size:13.5px;line-height:19px;overflow-wrap:anywhere;box-shadow:0 1px 2px rgba(0,0,0,.06);animation:aha-mapIn .45s ease both}
|
|
458
|
+
.aha-mapNode[data-level="0"]{padding:11px 16px;border:0;background:var(--aha-primary-bg);color:var(--aha-primary-fg);font-size:16px;line-height:22px;font-weight:700}
|
|
459
|
+
.aha-mapNode[data-level="1"]{padding:9px 14px;border:1.5px solid var(--aha-brand);font-size:14.5px;line-height:20px;font-weight:650}
|
|
460
|
+
.aha-mapNode[data-level="2"]{padding:8px 12px;background:var(--aha-soft);font-weight:600}
|
|
461
|
+
.aha-mapNode[data-pick]{cursor:pointer}
|
|
462
|
+
.aha-mapNode[data-pick]:hover{border-color:var(--aha-brand)}
|
|
463
|
+
.aha-mapMeta{display:flex;gap:6px;align-items:center;height:18px;font-size:11.5px;line-height:16px;color:var(--aha-muted)}
|
|
464
|
+
.aha-mapMeta .aha-depth{font-size:11px;line-height:15px;padding:0 6px}
|
|
465
|
+
@keyframes aha-mapIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
|
|
466
|
+
@media (prefers-reduced-motion:reduce){.aha-mapNode,.aha-mapLinks path{animation:none}}
|
|
467
|
+
.aha-mapBar{position:absolute;right:10px;top:10px;display:flex;gap:4px;align-items:center;z-index:2}
|
|
468
|
+
.aha-mapBar button{min-width:28px;height:28px;padding:0 8px;border-radius:7px;border:1px solid var(--aha-border);background:var(--aha-surface);color:var(--aha-text);cursor:pointer;font:inherit;font-size:12.5px;line-height:1}
|
|
469
|
+
.aha-mapBar button:hover{border-color:var(--aha-muted)}
|
|
470
|
+
.aha-mapZoom{font-variant-numeric:tabular-nums;min-width:52px}
|
|
471
|
+
.aha-mapBar .aha-mapFollow{background:var(--aha-brand);border-color:var(--aha-brand);color:#fff;font-weight:600;padding:0 12px}
|
|
472
|
+
.aha-viewToggle{display:inline-flex;gap:2px;padding:2px;border-radius:9px;background:var(--aha-soft);align-self:flex-start}
|
|
473
|
+
.aha-viewToggle button{padding:3px 12px;border:0;border-radius:7px;background:transparent;color:var(--aha-muted);font:inherit;font-size:13px;cursor:pointer}
|
|
474
|
+
.aha-viewToggle button[aria-pressed=true]{background:var(--aha-surface);color:var(--aha-text);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08)}
|
|
475
|
+
.aha-lesson[data-flash=true],.aha-card[data-flash=true]{animation:aha-flash 1.6s ease}
|
|
476
|
+
.aha-librarySearch .aha-input{flex:1;min-width:0}
|
|
477
|
+
.aha-addMaterials{gap:8px;border-style:dashed}
|
|
478
|
+
/* A lesson's handout (Handout.jsx), on screen and on paper. */
|
|
479
|
+
.aha-handout{display:flex;flex-direction:column;gap:18px;padding:22px 26px;border:1px solid var(--aha-border);border-radius:var(--aha-radius);background:var(--aha-surface);color:var(--aha-text);font-size:14.5px;line-height:23px}
|
|
480
|
+
.aha-handout h2{margin:2px 0 6px;font-size:22px;line-height:30px}
|
|
481
|
+
.aha-handout h3{margin:0 0 6px;padding-bottom:4px;border-bottom:2px solid var(--aha-brand);font-size:15.5px;display:inline-block}
|
|
482
|
+
.aha-handout p{margin:0}
|
|
483
|
+
.aha-handoutSummary{color:var(--aha-muted)}
|
|
484
|
+
.aha-handoutPoints>li>b{font-weight:650}
|
|
485
|
+
.aha-handout section{display:flex;flex-direction:column;gap:4px;break-inside:avoid}
|
|
486
|
+
.aha-handoutPoints,.aha-handoutSteps,.aha-handoutQuestions{margin:0;padding-left:1.4em;display:flex;flex-direction:column;gap:6px}
|
|
487
|
+
.aha-handoutOneLine{padding:2px 8px;border-left:3px solid #f2c94c;background:color-mix(in srgb,#f2c94c 14%,transparent);border-radius:0 6px 6px 0}
|
|
488
|
+
.aha-handoutAnswer{padding:6px 10px;border-radius:8px;background:var(--aha-soft)}
|
|
489
|
+
.aha-handoutMistakes{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:4px}
|
|
490
|
+
.aha-handoutMistakes li{display:flex;flex-wrap:wrap;gap:4px 8px}
|
|
491
|
+
.aha-handoutMistakes [data-wrong=true]{text-decoration:line-through;text-decoration-color:var(--aha-bad);color:var(--aha-muted)}
|
|
492
|
+
.aha-handoutGlossary{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px 18px}
|
|
493
|
+
.aha-handoutGlossary dt{font-weight:650}
|
|
494
|
+
.aha-handoutGlossary dd{margin:0;color:var(--aha-muted)}
|
|
495
|
+
.aha-handoutQuestions details summary{cursor:pointer;color:var(--aha-muted);font-size:13px}
|
|
496
|
+
@media print{.aha-handout{border:0;padding:0;font-size:12.5px;line-height:19px;color:#111;background:#fff}.aha-handout h3{border-color:#555}}
|
|
497
|
+
.aha-libraryHits{gap:4px}
|
|
498
|
+
.aha-libraryHit{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:var(--aha-text);font:inherit;text-align:left;cursor:pointer}
|
|
499
|
+
.aha-libraryHit:hover{background:var(--aha-hover)}
|
|
500
|
+
.aha-libraryHitWhere{font-size:13px;color:var(--aha-muted)}
|
|
501
|
+
.aha-libraryHitWhere b{color:var(--aha-text);font-weight:600}
|
|
502
|
+
.aha-libraryHitText{font-size:13.5px;line-height:20px;overflow-wrap:anywhere}
|
|
503
|
+
.aha-libraryHitText mark{background:color-mix(in srgb,#f2c94c 55%,transparent);color:inherit;border-radius:3px;padding:0 1px}
|
|
504
|
+
@keyframes aha-flash{0%,40%{background:color-mix(in srgb,var(--aha-brand) 16%,transparent)}100%{background:transparent}}
|
|
432
505
|
.aha-buildLog li{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--aha-muted)}
|
|
433
506
|
.aha-buildLog li[data-state=done],.aha-buildLog li[data-state=current]{color:var(--aha-text)}
|
|
434
507
|
.aha-buildLog li[data-state=current]{font-weight:600}
|
|
@@ -436,9 +509,6 @@ a.aha-btn{text-decoration:none}
|
|
|
436
509
|
.aha-buildLog li[data-state=done] .aha-buildMark{background:var(--aha-ok);border-color:var(--aha-ok);color:#fff}
|
|
437
510
|
.aha-buildLog li[data-state=current] .aha-buildMark{border-color:var(--aha-brand)}
|
|
438
511
|
.aha-buildMark .aha-spinner{width:12px;height:12px}
|
|
439
|
-
.aha-outlinePreview{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;align-items:start}
|
|
440
|
-
.aha-outlinePreview .aha-card[data-writing=true]{border-style:dashed;border-color:var(--aha-brand)}
|
|
441
|
-
.aha-outlineLessons{margin:0;padding-left:18px;font-size:13px;line-height:20px}
|
|
442
512
|
.aha-itemFigure{align-self:flex-start;width:min(100%,420px);box-sizing:border-box;padding:8px;border-radius:10px;background:#fffdf8;border:1px solid var(--aha-border)}
|
|
443
513
|
.aha-itemFigure svg{display:block;width:100%;height:auto;max-height:320px}
|
|
444
514
|
.aha-confidence[data-nudge=true]{animation:aha-nudge .5s ease 2;border-radius:10px;outline:2px solid var(--aha-brand);outline-offset:3px}
|
|
@@ -502,7 +572,7 @@ a.aha-btn{text-decoration:none}
|
|
|
502
572
|
|
|
503
573
|
/* ── the board ─────────────────────────────────────────────────────────── */
|
|
504
574
|
.aha-board{--desk:#ecebe4;--ink:#23262f;--ink-soft:#4a4f5c;--head:#1f4fb8;--marker:rgba(255,214,79,.62);--accent:#d64545;--accent2:#2f9e6e;--paper:#fdfcf8;--grid:rgba(40,50,80,.05);--note:#fff7da;--note-line:#e9c45a;--pencil:#c98a2c;
|
|
505
|
-
position:relative;flex:1 1 auto;min-height:0;container-type:inline-size;container-name:board;background:var(--paper);background-image:radial-gradient(var(--grid) 1px,transparent 1.2px);background-size:22px 22px;color:var(--ink);font-family:${
|
|
575
|
+
position:relative;flex:1 1 auto;min-height:0;container-type:inline-size;container-name:board;background:var(--paper);background-image:radial-gradient(var(--grid) 1px,transparent 1.2px);background-size:22px 22px;color:var(--ink);font-family:${vf};overflow:hidden}
|
|
506
576
|
.aha-board[data-font=standard]{font-family:inherit}
|
|
507
577
|
.aha-board[data-theme=dark]{--desk:#141a17;--ink:#ecebe4;--ink-soft:#c9c8bf;--head:#9cc2ff;--marker:rgba(214,178,58,.45);--accent:#ff8a80;--accent2:#7fd6a8;--paper:#1d2622;--grid:rgba(255,255,255,.05);--note:#2a3530;--note-line:#8f7a2f;--pencil:#e7c27a}
|
|
508
578
|
.aha-boardScroll{position:absolute;inset:0;overflow:auto;padding:22px 30px 40px}
|
|
@@ -570,7 +640,7 @@ a.aha-btn{text-decoration:none}
|
|
|
570
640
|
.aha-prepStages li[data-state=done]::before{content:'✓';background:var(--aha-ok)}
|
|
571
641
|
.aha-prepNow{font-size:14px;line-height:22px}
|
|
572
642
|
.aha-prepHint{font-size:15px}
|
|
573
|
-
.aha-prepHint[data-hand=true]{font-family:${
|
|
643
|
+
.aha-prepHint[data-hand=true]{font-family:${vf};font-size:16px}
|
|
574
644
|
.aha-buffering{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max-content;max-width:calc(100% - 28px);display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:12px;background:var(--aha-surface);border:1px solid var(--aha-border);color:var(--aha-text);font-family:inherit;z-index:4}
|
|
575
645
|
@container board (max-width:640px){.aha-cols{grid-template-columns:1fr}.aha-boardScroll{padding:16px}.aha-frame{padding:16px}}
|
|
576
646
|
/* The canvas view: every page as a frame on a desk that pans and zooms. */
|
|
@@ -603,7 +673,9 @@ a.aha-btn{text-decoration:none}
|
|
|
603
673
|
.aha-sheet[data-highlight=true] .aha-sheetItem[data-kind=formula],.aha-sheet[data-highlight=true] .aha-sheetItem[data-kind=definition]{background:color-mix(in srgb,#ffd64f 26%,transparent);border-radius:4px;padding:0 3px}
|
|
604
674
|
.aha-sheet[data-highlight=true] .aha-sheetItem[data-kind=pitfall]{color:var(--aha-bad)}
|
|
605
675
|
.aha-cite{color:var(--aha-muted);font-size:.85em;margin-left:4px}
|
|
606
|
-
|
|
676
|
+
/* Printing shows only the printable part: everything else is taken out, and
|
|
677
|
+
the boxes around it stop scrolling and clipping, so it flows across pages. */
|
|
678
|
+
@media print{body *:not(:has(.aha-printable)):not(.aha-printable):not(.aha-printable *){display:none!important}*:has(.aha-printable){display:block!important;position:static!important;overflow:visible!important;height:auto!important;min-height:0!important;max-height:none!important;width:auto!important;max-width:none!important;transform:none!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:#fff!important}.aha-printable{position:static!important;width:auto!important;padding:0 6mm}.aha-noprint{display:none!important}.aha-sheetSection{border-color:#999;background:#fff}}
|
|
607
679
|
|
|
608
680
|
/* ── flashcards ────────────────────────────────────────────────────────── */
|
|
609
681
|
.aha-flash{perspective:1200px;cursor:pointer;min-height:240px}
|
|
@@ -611,13 +683,13 @@ a.aha-btn{text-decoration:none}
|
|
|
611
683
|
.aha-flash[data-flipped=true] .aha-flashInner{transform:rotateY(180deg)}
|
|
612
684
|
.aha-flashFace{position:absolute;inset:0;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;text-align:center;padding:26px;border:1px solid var(--aha-border);border-radius:16px;background:var(--aha-surface);font-size:18px;line-height:28px}
|
|
613
685
|
.aha-flashBack{transform:rotateY(180deg)}
|
|
614
|
-
|
|
615
|
-
`)){let t=``,a=i.match(/[ -鿿가--]|[^\s -鿿가--]+|\s+/gu)??[];for(let i of a){let a=t+i;if(e.measureText(a).width>n&&t.trim()&&!
|
|
616
|
-
`):
|
|
617
|
-
`).slice(0,14);u(e.length*24+20,{...d,kind:`code`,lines:e});continue}f.t===`anim`&&u(90,{...d,kind:`text`,size:22,weight:400,lines:[`▶ ${f.caption||`animation`}`],lineHeight:32,color:n.soft,note:!0})}}return{items:i,pages:a}}function ff(e,t){e.fillStyle=t.paper,e.fillRect(0,0,$d,720),e.fillStyle=t.dot;for(let t=12;t<$d;t+=24)for(let n=12;n<720;n+=24)e.fillRect(t,n,1.6,1.6)}function pf(e,t,n,r){e.save(),e.translate(t,n),e.rotate(-.6),e.fillStyle=r.pencil,e.fillRect(0,-5,34,10),e.fillStyle=r.accent,e.fillRect(34,-5,7,10),e.beginPath(),e.moveTo(0,-5),e.lineTo(-10,0),e.lineTo(0,5),e.closePath(),e.fillStyle=r.ink,e.fill(),e.restore()}function mf(e,t,n,r){if(t.kind!==`title`){if(t.kind===`text`){e.font=af(t.size,t.weight),e.textBaseline=`top`,t.note&&(e.fillStyle=r.note,e.strokeStyle=r.noteLine,e.lineWidth=2,e.beginPath(),e.roundRect?.(t.x,t.y,552,t.h,12),e.fill(),e.stroke());let i=t.lines.reduce((e,t)=>e+[...t].length,0),a=Math.floor(i*n),o=null;t.lines.forEach((n,i)=>{if(a<=0)return;let s=[...n],c=s.slice(0,a).join(``);a-=s.length;let l=e.measureText(c).width,u=t.center?t.x+(552-e.measureText(n).width)/2:t.x+(t.note?14:0),d=t.y+(t.note?11:0)+i*t.lineHeight;t.marker&&(e.fillStyle=r.marker,e.fillRect(u-2,d+t.size*.62,l+4,t.size*.38)),e.fillStyle=t.color,e.fillText(c,u,d),o={x:u+l,y:d+t.size}}),o&&n<1&&pf(e,o.x,o.y,r);return}if(t.kind===`image`){e.save(),e.beginPath(),e.rect(t.x,t.y,t.w*n,t.imageH),e.clip(),e.drawImage(t.image,t.x,t.y,t.w,t.imageH),e.restore(),t.caption&&n>=1&&(e.font=af(18),e.fillStyle=r.soft,e.textBaseline=`top`,e.fillText(t.caption,t.x,t.y+t.imageH+6)),n<1&&pf(e,t.x+t.w*n,t.y+t.imageH/2,r);return}if(t.kind===`table`){let i=t.rows.slice(0,Math.max(1,Math.ceil(t.rows.length*n))),a=Math.max(...t.rows.map(e=>e.length)),o=552/Math.max(1,a);e.font=af(19),e.textBaseline=`middle`,e.strokeStyle=r.soft,e.lineWidth=1.4,i.forEach((n,i)=>{n.forEach((n,a)=>{let s=t.x+a*o,c=t.y+i*34;e.strokeRect(s,c,o,34),e.fillStyle=i===0?r.head:r.ink;let l=Xc(n);for(;l.length>1&&e.measureText(l).width>o-12;)l=`${l.slice(0,-2)}…`;e.fillText(l,s+6,c+17)})});return}t.kind===`code`&&(e.fillStyle=`rgba(0,0,0,0.06)`,e.fillRect(t.x,t.y,552,t.h),e.font=`17px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace`,e.fillStyle=r.ink,e.textBaseline=`top`,t.lines.slice(0,Math.ceil(t.lines.length*n)).forEach((n,r)=>e.fillText(n.slice(0,60),t.x+10,t.y+10+r*24)))}}function hf(e,t){if(!t)return;e.font=`500 25px ${rf}`;let n=cf(e,t,$d-200).slice(-2),r=n.length*34+24;e.fillStyle=`rgba(15,18,24,0.72)`,e.beginPath(),e.roundRect?.(80,720-r-18,$d-160,r,14),e.fill(),e.fillStyle=`#ffffff`,e.textBaseline=`top`,n.forEach((t,n)=>e.fillText(t,($d-e.measureText(t).width)/2,720-r-6+n*34))}function gf(e,t,n){e.font=`600 17px ${rf}`,e.fillStyle=n.soft,e.globalAlpha=.65,e.textBaseline=`top`,e.fillText(t,$d-e.measureText(t).width-26,22),e.globalAlpha=1}function _f(e,t,n){if(!e.say||!e.ops.length||!e.ops.some(e=>Number.isInteger(e.at)))return null;let r=$c(e.say).map(e=>[...Xc(e)].length),i=r.reduce((e,t)=>e+t,0)||1,a=0,o=r.map(e=>{let t=a/i*n;return a+=e,t}),s=Math.max(0,r.length-1),c=0;return e.ops.map((e,n)=>{let r=Math.max(c,o[Math.min(e.at??0,s)]??0);return c=r+t[n],r})}async function vf({steps:e,title:t,fetchAudio:n,watermark:r,theme:i=`light`,font:a=`hand`,onProgress:o,signal:s}){if(!tf())throw Error(`unsupported`);if(rf=a===`standard`?getComputedStyle(document.body).fontFamily||`system-ui,sans-serif`:Zd,a!==`standard`&&document.fonts?.load){let t=`${il(e)}${e.map(e=>Xc(e.say)).join(``)}`,n=Promise.all([`Aha Hand Latin`,`Aha Hand`].map(e=>document.fonts.load(`25px '${e}'`,t))).catch(()=>void 0);await Promise.race([n,new Promise(e=>{setTimeout(e,8e3)})])}let c=ef[i]??ef.light,l=document.createElement(`canvas`);l.width=$d,l.height=720;let u=l.getContext(`2d`),{items:d,pages:f}=await df(u,e,c,i),p=null,m=[];if(n){p=new AudioContext;for(let[t,r]of e.entries()){if(s?.throwIfAborted(),o?.({phase:`audio`,done:t,total:e.length}),!r.say){m.push(null);continue}try{let e=await n(Xc(r.say)),t=e.blob?await e.blob.arrayBuffer():Uint8Array.from(atob(e.base64),e=>e.charCodeAt(0)).buffer;m.push(await p.decodeAudioData(t))}catch{m.push(null)}}}let h=[],g=700;for(let[t,n]of e.entries()){let e=m[t]?m[t].duration*1e3:ct(n.say),r=dt(n,{speechMs:e}),i=_f(n,r.writeMs,e),a=i?Math.max(r.durationMs,i.at(-1)+r.writeMs.at(-1)+350):r.durationMs;h.push({start:g,end:g+a,writes:r.writeMs,starts:i}),g+=a}let _=g+1500,v=t=>{let n=h.findIndex(e=>t<e.end);if(n<0)return{index:e.length,op:0,progress:1};let r=h[n],i=Math.max(0,t-r.start);if(r.starts){for(let e=0;e<r.writes.length;e+=1){let t=r.starts[e];if(i<t)return{index:n,op:e,progress:0};if(i<t+r.writes[e])return{index:n,op:e,progress:(i-t)/Math.max(1,r.writes[e])}}return{index:n,op:r.writes.length,progress:1}}let a=0;for(let e=0;e<r.writes.length;e+=1){if(i<a+r.writes[e])return{index:n,op:e,progress:(i-a)/Math.max(1,r.writes[e])};a+=r.writes[e]}return{index:n,op:r.writes.length,progress:1}},y=n=>{let i=v(n),a=e=>e.stepIndex<i.index?1:e.stepIndex>i.index?0:e.opIndex<i.op?1:e.opIndex>i.op?0:i.progress,o=d.filter(e=>a(e)>0),s=o.length?Math.max(...o.map(e=>e.page)):0;ff(u,c);let l=f[s]?.title||(s===0||f[s]?.inherits?t:``);if(l){u.font=af(40,700),u.textBaseline=`top`;let e=u.measureText(l).width;u.fillStyle=c.marker,u.fillRect(60,74,e+8,18),u.fillStyle=c.head,u.fillText(l,64,52)}for(let e of o)e.page===s&&mf(u,e,a(e),c);hf(u,i.index<e.length?Xc(e[i.index].say):``),r&&gf(u,r,c)};y(0);let b=l.captureStream(30),x=0;if(p){await p.resume();let e=p.createMediaStreamDestination();x=p.currentTime+.4,m.forEach((t,n)=>{if(!t)return;let r=p.createBufferSource();r.buffer=t,r.connect(e),r.start(x+h[n].start/1e3)});for(let t of e.stream.getAudioTracks())b.addTrack(t)}let S=nf(),C=new MediaRecorder(b,{...S?{mimeType:S}:{},videoBitsPerSecond:4e6}),w=[];C.ondataavailable=e=>{e.data?.size&&w.push(e.data)};let T=new Promise(e=>{C.onstop=e});C.start(1e3);let E=performance.now(),D=()=>p?(p.currentTime-x)*1e3:performance.now()-E;await new Promise((e,t)=>{let n=()=>{if(s?.aborted){t(s.reason??Error(`cancelled`));return}let r=D();y(Math.max(0,r)),o?.({phase:`record`,done:Math.min(_,Math.max(0,r)),total:_}),r>=_?e():requestAnimationFrame(n)};requestAnimationFrame(n)}).finally(()=>{C.state!==`inactive`&&C.stop()}),await T;for(let e of b.getTracks())e.stop();return await p?.close().catch(()=>void 0),new Blob(w,{type:S||`video/webm`})}function yf(){let{api:e,t,settings:n,toast:i}=v(),a=w(),[o,s]=(0,r.useState)(null),c=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>c.current?.abort(),[]);async function l({steps:r,title:l}){if(!r?.length||o)return;if(!tf()){i(t(`exportUnsupported`));return}let u=new AbortController;c.current=u,s({percent:0});try{let i=await vf({steps:r,title:l,theme:n.boardTheme===`dark`||n.boardTheme!==`light`&&a?`dark`:`light`,font:n.boardFont===`standard`?`standard`:`hand`,watermark:`${t(`appName`)} · ${t(`appTagline`)}`,fetchAudio:n.voiceEngine===`cloud`?t=>le(e,t):null,signal:u.signal,onProgress:e=>s({percent:Math.round(e.done/Math.max(1,e.total)*100),phase:e.phase})});g(`${m(l)}.webm`,i)}catch(e){u.signal.aborted||i(e.message===`unsupported`?t(`exportUnsupported`):e?.code?Ml(t,e):t(`exportFailed`))}finally{s(null)}}return{exporting:o,start:l,cancel:()=>c.current?.abort(),cloud:n.voiceEngine===`cloud`}}function bf({courseId:e,lessonId:t}){let{api:n,t:a,navigate:o}=v(),s=y(()=>n.call(`lesson/get`,{courseId:e,lessonId:t}),[e,t]),[c,l]=(0,r.useState)(null),[u,d]=(0,r.useState)(null),[f,p]=(0,r.useState)(!1),[m,h]=(0,r.useState)(0),g=(0,r.useRef)(null),_=yf();if((0,r.useEffect)(()=>{if(!s.value)return;if(s.value.board&&m===0){l({steps:s.value.board.steps,stream:null});return}let r=!0;return n.call(`lesson/prepare`,{courseId:e,lessonId:t,force:m>0}).then(e=>{r&&l(e.board?{steps:e.board.steps,stream:null}:{steps:[],stream:e.job})}).catch(e=>{r&&d(e)}),()=>{r=!1}},[s.value,m]),(0,r.useEffect)(()=>()=>clearTimeout(g.current),[]),s.loading&&!s.value)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Dl,{label:a(`loading`)})});if(!s.value)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)($,{error:s.error})});let{lesson:b,unit:x,lecture:S,language:C,state:w}=s.value,T=w?.status===`learning`?Math.max(0,w.stepIndex??0):0;return(0,i.jsxs)(`div`,{className:`aha-page`,"data-wide":`true`,children:[u?(0,i.jsx)($,{error:u}):null,c?(0,i.jsx)(Fu,{scope:{kind:`lesson`,courseId:e,lessonId:t},title:b.title,crumb:`${x.title} · ${S.title}`,steps:c.steps,stream:c.stream,asides:m===0?s.value.asides??[]:[],objectives:b.objectives??[],language:C,startIndex:c.stream?0:T,onPosition:r=>{clearTimeout(g.current),g.current=setTimeout(()=>{n.call(`lesson/position`,{courseId:e,lessonId:t,stepIndex:r}).catch(()=>void 0)},800)},onEnded:()=>p(!0),onStreamDone:e=>{e?.board?.steps?.length&&l(t=>({...t,steps:e.board.steps}))},header:({steps:n})=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>o(`course`,{courseId:e}),children:[`← `,a(`backToCourse`)]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>o(`practice`,{courseId:e,lessonId:t}),children:a(`practice`)}),(0,i.jsx)(Yd,{steps:n,title:b.title}),_.exporting?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Dl,{label:a(`exporting`,{percent:_.exporting.percent})}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:_.cancel,children:a(`cancel`)})]}):(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,disabled:!c.steps.length,title:_.cloud?``:a(`exportNeedsCloud`),onClick:()=>_.start({steps:c.steps,title:b.title}),children:a(`exportVideo`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>{l(null),p(!1),h(e=>e+1)},children:a(`regenerateLesson`)})]})},`${m}`):(0,i.jsx)(Dl,{label:a(`preparingLesson`)}),f?(0,i.jsx)(xf,{courseId:e,lessonId:t,onClose:()=>p(!1)}):null]})}function xf({courseId:e,lessonId:t,onClose:n}){let{api:a,t:o,navigate:s}=v(),[c,l]=(0,r.useState)(null),[u,d]=(0,r.useState)(null),[f,p]=(0,r.useState)(!1),[m,h]=(0,r.useState)(null);async function g(n){l(n),p(!0);try{d(await a.call(`lesson/complete`,{courseId:e,lessonId:t,selfRating:n}))}catch(e){h(e)}finally{p(!1)}}return(0,i.jsxs)(Al,{title:o(`lessonDone`),onClose:n,children:[u?(0,i.jsxs)(`div`,{className:`aha-col`,children:[u.inserted?(0,i.jsx)(`div`,{className:`aha-feedback`,children:o(`remedialAdded`,{title:u.inserted.title})}):null,u.recommendation?.action===`challenge`?(0,i.jsx)(`div`,{className:`aha-feedback`,"data-ok":`true`,children:o(`challengeNote`)}):null,(0,i.jsxs)(`div`,{className:`aha-row`,children:[u.next?(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>s(`lesson`,{courseId:e,lessonId:u.next.id},{replace:!0}),children:[o(`nextLesson`),`: `,u.next.title]}):null,(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>s(`practice`,{courseId:e,lessonId:t}),children:o(`doPractice`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>s(`course`,{courseId:e},{replace:!0}),children:o(`backToCourse`)})]})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`p`,{children:o(`selfRate`)}),(0,i.jsx)(`div`,{className:`aha-row`,children:[[1,`rate1`],[2,``],[3,`rate3`],[4,``],[5,`rate5`]].map(([e,t])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"data-active":c===e,disabled:f,onClick:()=>g(e),children:[e,t?` · ${o(t)}`:``]},e))}),f?(0,i.jsx)(Dl,{}):null]}),(0,i.jsx)($,{error:m})]})}function Sf(){let{api:e,t,navigate:n,toast:a}=v(),o=y(()=>e.call(`material/list`),[]),[s,c]=(0,r.useState)(null),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(null);async function p(r,i){c(`${r}:${i.id}`),u(null);try{if(r===`course`){let{job:t}=await e.call(`course/start`,{goal:i.brief?.suggestedGoal??``,materialIds:[i.id]});n(`craft`,{jobId:t.id});return}let o={sheet:`studio/sheet`,cards:`studio/cards`,notes:`studio/notes`,quiz:`studio/quiz`}[r],s=await e.run(o,{materialIds:[i.id]});a(t(`saved`)),r===`sheet`?n(`sheet`,{sheetId:s.item.id}):r===`cards`?n(`cards`,{deckId:s.item.id}):r===`notes`?n(`item`,{kind:`notes`,id:s.item.id}):n(`item`,{kind:`quiz`,id:s.item.id})}catch(e){u(e)}finally{c(null)}}return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:t(`materialsTitle`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`materialsHint`)})]}),(0,i.jsx)(Fl,{onAdded:()=>o.reload()}),(0,i.jsx)($,{error:l??o.error}),o.loading&&!o.value?(0,i.jsx)(Dl,{label:t(`loading`)}):(o.value??[]).length?(0,i.jsx)(`div`,{className:`aha-col`,children:o.value.map(e=>(0,i.jsxs)(`div`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:2},children:[(0,i.jsx)(`b`,{children:e.title}),(0,i.jsx)(`span`,{className:`aha-hint`,children:Ll(e,t)})]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>f(e),children:t(`delete`)})]}),e.brief?.summary?(0,i.jsx)(`p`,{className:`aha-hint`,children:e.brief.summary}):null,e.brief?.topics?.length?(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:4},children:e.brief.topics.slice(0,10).map(e=>(0,i.jsx)(`span`,{className:`aha-tag`,children:e},e))}):null,e.kind===`image`?(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`imageNeedsVision`)}):(0,i.jsxs)(`div`,{className:`aha-row`,style:{gap:6},children:[[[`course`,`makeCourse`],[`sheet`,`makeSheet`],[`cards`,`makeCards`],[`notes`,`makeNotes`],[`quiz`,`makeQuiz`]].map(([n,r])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":n===`course`?`primary`:void 0,disabled:!!s,onClick:()=>p(n,e),children:[s===`${n}:${e.id}`?(0,i.jsx)(`span`,{className:`aha-spinner`}):null,t(r)]},n)),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>n(`item`,{kind:`digest`,materialId:e.id}),children:t(`digest`)})]})]},e.id))}):(0,i.jsx)(Nl,{children:t(`noMaterials`)}),d?(0,i.jsx)(jl,{danger:!0,text:`${t(`delete`)}「${d.title}」?`,onCancel:()=>f(null),onConfirm:async()=>{await e.call(`material/remove`,{id:d.id}),f(null),o.reload()}}):null]})}let Cf=[60,120,180,240,300,420,600,900];function wf(){let{api:e,t,navigate:n}=v(),a=y(()=>e.call(`plan/get`,{today:pd(new Date)}),[]),o=y(()=>e.call(`review/session`),[]),s=y(()=>e.call(`course/list`),[]),[c,l]=(0,r.useState)(300),[u,d]=(0,r.useState)([1,2,3,4,5,6,0]),[f,p]=(0,r.useState)({title:``,day:``,courseId:``}),[m,h]=(0,r.useState)(null),g=t(`weekdays`).split(`,`),_=pd(new Date),[b,x]=(0,r.useState)(_);(0,r.useEffect)(()=>{a.value&&(l(a.value.settings.weeklyMinutes),d(a.value.settings.studyDays))},[a.value?.settings]);async function S(){h(null);try{a.setValue(await e.call(`plan/settings`,{weeklyMinutes:c,studyDays:u}))}catch(e){h(e)}}async function C(t){if(t.preventDefault(),!(!f.title.trim()||!f.day))try{a.setValue(await e.call(`plan/add-exam`,{...f,courseId:f.courseId||void 0})),p({title:``,day:``,courseId:``})}catch(e){h(e)}}async function w(t,n){h(null);try{a.setValue(await fd(e,t,n,_))}catch(e){h(e)}}let T=e=>s.value?.find(t=>t.id===e)?.title??``,E=a.value?.calendar??[],D=E.find(e=>e.day===b)?.items??[];return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:t(`planTitle`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`planHint`)})]}),(0,i.jsx)(`section`,{className:`aha-card`,children:(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`b`,{children:o.value?.items?.length?t(`reviewDue`,{count:o.value.items.length}):t(`nothingToReview`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:!o.value?.items?.length,onClick:()=>n(`practice`,{review:!0}),children:t(`startReview`)})]})}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsxs)(`label`,{className:`aha-label`,style:{minWidth:200},children:[t(`weeklyMinutes`),(0,i.jsx)(`select`,{className:`aha-select`,value:c,onChange:e=>l(Number(e.currentTarget.value)),children:Cf.map(e=>(0,i.jsx)(`option`,{value:e,children:t(`minutesUnit`,{minutes:e})},e))})]}),(0,i.jsxs)(`div`,{className:`aha-label`,children:[t(`studyDays`),(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:4},children:[1,2,3,4,5,6,0].map(e=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":u.includes(e),onClick:()=>d(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),children:g[e]},e))})]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:S,children:t(`savePlan`)})]}),(a.value?.plan.warnings??[]).filter(e=>e.kind===`deadline-at-risk`).map(e=>(0,i.jsx)(`div`,{className:`aha-feedback`,"data-ok":`false`,children:t(`deadlineRisk`,{course:T(e.courseId),finish:e.finishDay,deadline:e.deadline,minutes:e.neededWeeklyMinutes})},e.courseId))]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:t(`exams`)}),(a.value?.exams??[]).map(n=>(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`span`,{children:[n.title,` · `,n.day,n.courseId?` · ${T(n.courseId)}`:``]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:async()=>a.setValue(await e.call(`plan/remove-exam`,{id:n.id})),children:t(`delete`)})]},n.id)),(0,i.jsxs)(`form`,{className:`aha-row`,onSubmit:C,children:[(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:2,minWidth:160},placeholder:t(`examTitle`),value:f.title,onChange:e=>p({...f,title:e.currentTarget.value})}),(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:1,minWidth:140},type:`date`,value:f.day,onChange:e=>p({...f,day:e.currentTarget.value})}),(0,i.jsxs)(`select`,{className:`aha-select`,style:{flex:1,minWidth:140},value:f.courseId,onChange:e=>p({...f,courseId:e.currentTarget.value}),children:[(0,i.jsx)(`option`,{value:``,children:`—`}),(s.value??[]).filter(e=>e.status===`ready`).map(e=>(0,i.jsx)(`option`,{value:e.id,children:e.title},e.id))]}),(0,i.jsx)(`button`,{type:`submit`,className:`aha-btn`,children:t(`addExam`)})]})]}),(0,i.jsx)($,{error:m??a.error}),a.loading&&!a.value?(0,i.jsx)(Dl,{label:t(`loading`)}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Df,{days:E,today:_,selected:b,onSelect:x,weekdayNames:g}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`b`,{children:[b===_?`${t(`today`)} · `:``,t(`dayLabel`,{month:md(b).getMonth()+1,day:md(b).getDate(),weekday:g[md(b).getDay()]})]}),D.length?D.map(e=>(0,i.jsx)(dd,{item:e,day:b,today:_,onToggle:w},`${e.kind}:${e.refId}`)):(0,i.jsx)(`p`,{className:`aha-hint`,children:t(b===_?`noPlanToday`:`dayEmpty`)})]})]})]})}let Tf=e=>String(e).padStart(2,`0`),Ef=(e,t)=>{let n=md(`${e}-01`);return n.setMonth(n.getMonth()+t),`${n.getFullYear()}-${Tf(n.getMonth()+1)}`};function Df({days:e,today:t,selected:n,onSelect:a,weekdayNames:o}){let{t:s}=v(),[c,l]=(0,r.useState)(t.slice(0,7)),u=(0,r.useMemo)(()=>new Map(e.map(e=>[e.day,e.items])),[e]),d=md(`${c}-01`),f=new Date(d.getFullYear(),d.getMonth()+1,0).getDate(),p=[...Array((d.getDay()+6)%7).fill(null),...Array.from({length:f},(e,t)=>`${c}-${Tf(t+1)}`)];return(0,i.jsxs)(`section`,{className:`aha-card aha-calendar`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>l(e=>Ef(e,-1)),"aria-label":s(`prevMonth`),children:`‹`}),(0,i.jsx)(`b`,{children:s(`monthLabel`,{year:d.getFullYear(),month:d.getMonth()+1})}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>l(e=>Ef(e,1)),"aria-label":s(`nextMonth`),children:`›`})]}),(0,i.jsxs)(`div`,{className:`aha-calGrid`,children:[[1,2,3,4,5,6,0].map(e=>(0,i.jsx)(`span`,{className:`aha-calHead`,children:o[e]},e)),p.map((e,r)=>{if(!e)return(0,i.jsx)(`span`,{},`gap${r}`);let o=u.get(e)??[],s=o.length>0&&o.every(e=>e.kind===`exam`||e.checked);return(0,i.jsxs)(`button`,{type:`button`,className:`aha-calDay`,"data-today":e===t?`true`:void 0,"data-selected":e===n?`true`:void 0,"data-past":e<t?`true`:void 0,onClick:()=>a(e),children:[(0,i.jsxs)(`span`,{className:`aha-calNum`,children:[Number(e.slice(8)),s?` ✓`:``]}),o.slice(0,3).map(e=>(0,i.jsx)(`span`,{className:`aha-calItem`,"data-kind":e.kind,"data-checked":e.checked?`true`:void 0,children:e.title},`${e.kind}:${e.refId}`)),o.length>3?(0,i.jsxs)(`span`,{className:`aha-calMore`,children:[`+`,o.length-3]}):null]},e)})]})]})}let Of=[[`goals`,`goals`],[`strengths`,`strengthsLabel`],[`weaknesses`,`weaknesses`]];function kf(){let{api:e,t,toast:n}=v(),a=y(()=>e.call(`profile/get`),[]),[o,s]=(0,r.useState)(null),[c,l]=(0,r.useState)(!1),[u,d]=(0,r.useState)(null);(0,r.useEffect)(()=>{a.value&&s({background:a.value.background,goals:a.value.goals.join(`
|
|
686
|
+
`,bf=1280,xf={light:{paper:`#fdfcf8`,dot:`rgba(40,50,80,0.07)`,ink:`#23262f`,soft:`#4a4f5c`,head:`#1f4fb8`,marker:`rgba(255,214,79,0.62)`,accent:`#d64545`,note:`#fff7da`,noteLine:`#e9c45a`,pencil:`#c98a2c`},dark:{paper:`#1d2622`,dot:`rgba(255,255,255,0.06)`,ink:`#ecebe4`,soft:`#c9c8bf`,head:`#9cc2ff`,marker:`rgba(214,178,58,0.45)`,accent:`#ff8a80`,note:`#2a3530`,noteLine:`#8f7a2f`,pencil:`#e7c27a`}};function Sf(){return typeof MediaRecorder==`function`&&typeof document.createElement(`canvas`).captureStream==`function`}function Cf(){for(let e of[`video/webm;codecs=vp9,opus`,`video/webm;codecs=vp8,opus`,`video/webm`])if(MediaRecorder.isTypeSupported?.(e))return e;return``}let wf=vf;function Tf(e,t=400){return`${t} ${e}px ${wf}`}let Ef=/^[,。、;:!?)」』”’》〉】〕…‥·,.;:!?)\]}%]/u,Df=/[(「『“‘《〈【〔(\[{]$/u;function Of(e,t,n){let r=[];for(let i of String(t).split(`
|
|
687
|
+
`)){let t=``,a=i.match(/[ -鿿가--]|[^\s -鿿가--]+|\s+/gu)??[];for(let i of a){let a=t+i;if(e.measureText(a).width>n&&t.trim()&&!Ef.test(i)){let e=``;Df.test(t)&&t.length>1&&(e=t.slice(-1),t=t.slice(0,-1)),r.push(t.trimEnd()),t=(e+i).trimStart()}else t=a}r.push(t.trimEnd())}return r}function kf(e,t,n){if(!e)return e;let r=n===`dark`?`[stroke="#2b2b2b"],[stroke="#23262f"]{stroke:${t.ink}}[fill="#2b2b2b"],[fill="#23262f"]{fill:${t.ink}}`:``,i=`<style>svg{color:${t.ink}}text:not([fill]){fill:${t.ink}}${r}</style>`;return e.replace(/<svg\b[^>]*>/iu,e=>e.endsWith(`/>`)?e:`${e}${i}`)}function Af(e){return new Promise(t=>{if(!e){t(null);return}let n=new Image;n.onload=()=>t(n),n.onerror=()=>t(null),n.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`})}async function jf(e,t,n,r){let i=[],a=[{title:``}],o=0,s=132,c=()=>64+o*600,l=()=>{if(o===0)o=1;else{let e=a[a.length-1];a.push({title:e.title,inherits:e.inherits??a.length===1}),o=0}s=132},u=(e,t)=>{s>132&&s+e>602&&l(),i.push({...t,page:a.length-1,x:c(),y:s,h:e}),s+=e+14};for(let[c,d]of t.entries())for(let[t,f]of d.ops.entries()){let d={op:f,stepIndex:c,opIndex:t};if(f.t===`page`){i.some(e=>e.page===a.length-1)?(a.push({title:f.title??``}),o=0,s=132):a[a.length-1].title=f.title??``;continue}if(f.t===`col`){l();continue}if(f.t===`mark`)continue;if(f.t===`title`){i.some(e=>e.page===a.length-1)?(a.push({title:f.text}),o=0,s=132):a[a.length-1].title=f.text,i.push({...d,page:a.length-1,kind:`title`,text:Zc(f.text)});continue}if(f.t===`h`||f.t===`p`||f.t===`note`||f.t===`math`||f.t===`list`){let t=f.t===`h`?31:f.t===`math`?28:25;e.font=Tf(t,f.t===`h`?700:400);let r=Of(e,f.t===`math`?f.text||Xc(f.tex):f.t===`list`?f.items.map((e,t)=>`${f.ordered?`${t+1}.`:`•`} ${Zc(e)}`).join(`
|
|
688
|
+
`):Zc(f.text),552-(f.t===`note`?28:0)),i=Math.round(t*1.42);u(r.length*i+(f.t===`note`?22:0),{...d,kind:`text`,size:t,weight:f.t===`h`?700:400,lines:r,lineHeight:i,color:f.t===`h`?n.head:n.ink,center:f.t===`math`,note:f.t===`note`,marker:f.t===`h`});continue}let p=f.t===`chart`?Ot(f):f.t===`plot`?Xs(f):f.t===`svg`?rc(f.svg):f.t===`anim`&&f.poster?rc(f.poster):``,m=p?await Af(kf(p,n,r)):null;if(m){let e=m.naturalHeight/Math.max(1,m.naturalWidth)||.62,t=Math.min(552,m.naturalWidth||552),n=Math.min(300,t*e);u(n+(f.caption?30:0),{...d,kind:`image`,image:m,w:n/e,imageH:n,caption:f.caption??``});continue}if(!(f.t===`svg`||f.t===`chart`||f.t===`plot`)){if(f.t===`table`){let e=[f.head,...f.rows].filter(e=>e.length).slice(0,10);u(e.length*34+6,{...d,kind:`table`,rows:e});continue}if(f.t===`code`){let e=f.code.split(`
|
|
689
|
+
`).slice(0,14);u(e.length*24+20,{...d,kind:`code`,lines:e});continue}f.t===`anim`&&u(90,{...d,kind:`text`,size:22,weight:400,lines:[`▶ ${f.caption||`animation`}`],lineHeight:32,color:n.soft,note:!0})}}return{items:i,pages:a}}function Mf(e,t){e.fillStyle=t.paper,e.fillRect(0,0,bf,720),e.fillStyle=t.dot;for(let t=12;t<bf;t+=24)for(let n=12;n<720;n+=24)e.fillRect(t,n,1.6,1.6)}function Nf(e,t,n,r){e.save(),e.translate(t,n),e.rotate(-.6),e.fillStyle=r.pencil,e.fillRect(0,-5,34,10),e.fillStyle=r.accent,e.fillRect(34,-5,7,10),e.beginPath(),e.moveTo(0,-5),e.lineTo(-10,0),e.lineTo(0,5),e.closePath(),e.fillStyle=r.ink,e.fill(),e.restore()}function Pf(e,t,n,r){if(t.kind!==`title`){if(t.kind===`text`){e.font=Tf(t.size,t.weight),e.textBaseline=`top`,t.note&&(e.fillStyle=r.note,e.strokeStyle=r.noteLine,e.lineWidth=2,e.beginPath(),e.roundRect?.(t.x,t.y,552,t.h,12),e.fill(),e.stroke());let i=t.lines.reduce((e,t)=>e+[...t].length,0),a=Math.floor(i*n),o=null;t.lines.forEach((n,i)=>{if(a<=0)return;let s=[...n],c=s.slice(0,a).join(``);a-=s.length;let l=e.measureText(c).width,u=t.center?t.x+(552-e.measureText(n).width)/2:t.x+(t.note?14:0),d=t.y+(t.note?11:0)+i*t.lineHeight;t.marker&&(e.fillStyle=r.marker,e.fillRect(u-2,d+t.size*.62,l+4,t.size*.38)),e.fillStyle=t.color,e.fillText(c,u,d),o={x:u+l,y:d+t.size}}),o&&n<1&&Nf(e,o.x,o.y,r);return}if(t.kind===`image`){e.save(),e.beginPath(),e.rect(t.x,t.y,t.w*n,t.imageH),e.clip(),e.drawImage(t.image,t.x,t.y,t.w,t.imageH),e.restore(),t.caption&&n>=1&&(e.font=Tf(18),e.fillStyle=r.soft,e.textBaseline=`top`,e.fillText(t.caption,t.x,t.y+t.imageH+6)),n<1&&Nf(e,t.x+t.w*n,t.y+t.imageH/2,r);return}if(t.kind===`table`){let i=t.rows.slice(0,Math.max(1,Math.ceil(t.rows.length*n))),a=Math.max(...t.rows.map(e=>e.length)),o=552/Math.max(1,a);e.font=Tf(19),e.textBaseline=`middle`,e.strokeStyle=r.soft,e.lineWidth=1.4,i.forEach((n,i)=>{n.forEach((n,a)=>{let s=t.x+a*o,c=t.y+i*34;e.strokeRect(s,c,o,34),e.fillStyle=i===0?r.head:r.ink;let l=Zc(n);for(;l.length>1&&e.measureText(l).width>o-12;)l=`${l.slice(0,-2)}…`;e.fillText(l,s+6,c+17)})});return}t.kind===`code`&&(e.fillStyle=`rgba(0,0,0,0.06)`,e.fillRect(t.x,t.y,552,t.h),e.font=`17px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace`,e.fillStyle=r.ink,e.textBaseline=`top`,t.lines.slice(0,Math.ceil(t.lines.length*n)).forEach((n,r)=>e.fillText(n.slice(0,60),t.x+10,t.y+10+r*24)))}}function Ff(e,t){if(!t)return;e.font=`500 25px ${wf}`;let n=Of(e,t,bf-200).slice(-2),r=n.length*34+24;e.fillStyle=`rgba(15,18,24,0.72)`,e.beginPath(),e.roundRect?.(80,720-r-18,bf-160,r,14),e.fill(),e.fillStyle=`#ffffff`,e.textBaseline=`top`,n.forEach((t,n)=>e.fillText(t,(bf-e.measureText(t).width)/2,720-r-6+n*34))}function If(e,t,n){e.font=`600 17px ${wf}`,e.fillStyle=n.soft,e.globalAlpha=.65,e.textBaseline=`top`,e.fillText(t,bf-e.measureText(t).width-26,22),e.globalAlpha=1}function Lf(e,t,n){if(!e.say||!e.ops.length||!e.ops.some(e=>Number.isInteger(e.at)))return null;let r=el(e.say).map(e=>[...Zc(e)].length),i=r.reduce((e,t)=>e+t,0)||1,a=0,o=r.map(e=>{let t=a/i*n;return a+=e,t}),s=Math.max(0,r.length-1),c=0;return e.ops.map((e,n)=>{let r=Math.max(c,o[Math.min(e.at??0,s)]??0);return c=r+t[n],r})}async function Rf({steps:e,title:t,fetchAudio:n,watermark:r,theme:i=`light`,font:a=`hand`,onProgress:o,signal:s}){if(!Sf())throw Error(`unsupported`);if(wf=a===`standard`?getComputedStyle(document.body).fontFamily||`system-ui,sans-serif`:vf,a!==`standard`&&document.fonts?.load){let t=`${al(e)}${e.map(e=>Zc(e.say)).join(``)}`,n=Promise.all([`Aha Hand Latin`,`Aha Hand`].map(e=>document.fonts.load(`25px '${e}'`,t))).catch(()=>void 0);await Promise.race([n,new Promise(e=>{setTimeout(e,8e3)})])}let c=xf[i]??xf.light,l=document.createElement(`canvas`);l.width=bf,l.height=720;let u=l.getContext(`2d`),{items:d,pages:f}=await jf(u,e,c,i),p=null,m=[];if(n){p=new AudioContext;for(let[t,r]of e.entries()){if(s?.throwIfAborted(),o?.({phase:`audio`,done:t,total:e.length}),!r.say){m.push(null);continue}try{let e=await n(Zc(r.say)),t=e.blob?await e.blob.arrayBuffer():Uint8Array.from(atob(e.base64),e=>e.charCodeAt(0)).buffer;m.push(await p.decodeAudioData(t))}catch{m.push(null)}}}let h=[],g=700;for(let[t,n]of e.entries()){let e=m[t]?m[t].duration*1e3:ct(n.say),r=dt(n,{speechMs:e}),i=Lf(n,r.writeMs,e),a=i?Math.max(r.durationMs,i.at(-1)+r.writeMs.at(-1)+350):r.durationMs;h.push({start:g,end:g+a,writes:r.writeMs,starts:i}),g+=a}let _=g+1500,v=t=>{let n=h.findIndex(e=>t<e.end);if(n<0)return{index:e.length,op:0,progress:1};let r=h[n],i=Math.max(0,t-r.start);if(r.starts){for(let e=0;e<r.writes.length;e+=1){let t=r.starts[e];if(i<t)return{index:n,op:e,progress:0};if(i<t+r.writes[e])return{index:n,op:e,progress:(i-t)/Math.max(1,r.writes[e])}}return{index:n,op:r.writes.length,progress:1}}let a=0;for(let e=0;e<r.writes.length;e+=1){if(i<a+r.writes[e])return{index:n,op:e,progress:(i-a)/Math.max(1,r.writes[e])};a+=r.writes[e]}return{index:n,op:r.writes.length,progress:1}},y=n=>{let i=v(n),a=e=>e.stepIndex<i.index?1:e.stepIndex>i.index?0:e.opIndex<i.op?1:e.opIndex>i.op?0:i.progress,o=d.filter(e=>a(e)>0),s=o.length?Math.max(...o.map(e=>e.page)):0;Mf(u,c);let l=f[s]?.title||(s===0||f[s]?.inherits?t:``);if(l){u.font=Tf(40,700),u.textBaseline=`top`;let e=u.measureText(l).width;u.fillStyle=c.marker,u.fillRect(60,74,e+8,18),u.fillStyle=c.head,u.fillText(l,64,52)}for(let e of o)e.page===s&&Pf(u,e,a(e),c);Ff(u,i.index<e.length?Zc(e[i.index].say):``),r&&If(u,r,c)};y(0);let b=l.captureStream(30),x=0;if(p){await p.resume();let e=p.createMediaStreamDestination();x=p.currentTime+.4,m.forEach((t,n)=>{if(!t)return;let r=p.createBufferSource();r.buffer=t,r.connect(e),r.start(x+h[n].start/1e3)});for(let t of e.stream.getAudioTracks())b.addTrack(t)}let S=Cf(),C=new MediaRecorder(b,{...S?{mimeType:S}:{},videoBitsPerSecond:4e6}),w=[];C.ondataavailable=e=>{e.data?.size&&w.push(e.data)};let T=new Promise(e=>{C.onstop=e});C.start(1e3);let E=performance.now(),D=()=>p?(p.currentTime-x)*1e3:performance.now()-E;await new Promise((e,t)=>{let n=()=>{if(s?.aborted){t(s.reason??Error(`cancelled`));return}let r=D();y(Math.max(0,r)),o?.({phase:`record`,done:Math.min(_,Math.max(0,r)),total:_}),r>=_?e():requestAnimationFrame(n)};requestAnimationFrame(n)}).finally(()=>{C.state!==`inactive`&&C.stop()}),await T;for(let e of b.getTracks())e.stop();return await p?.close().catch(()=>void 0),new Blob(w,{type:S||`video/webm`})}function zf(){let{api:e,t,settings:n,toast:i}=v(),a=w(),[o,s]=(0,r.useState)(null),c=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>c.current?.abort(),[]);async function l({steps:r,title:l}){if(!r?.length||o)return;if(!Sf()){i(t(`exportUnsupported`));return}let u=new AbortController;c.current=u,s({percent:0});try{let i=await Rf({steps:r,title:l,theme:n.boardTheme===`dark`||n.boardTheme!==`light`&&a?`dark`:`light`,font:n.boardFont===`standard`?`standard`:`hand`,watermark:`${t(`appName`)} · ${t(`appTagline`)}`,fetchAudio:n.voiceEngine===`cloud`?t=>le(e,t):null,signal:u.signal,onProgress:e=>s({percent:Math.round(e.done/Math.max(1,e.total)*100),phase:e.phase})});g(`${m(l)}.webm`,i)}catch(e){u.signal.aborted||i(e.message===`unsupported`?t(`exportUnsupported`):e?.code?Ll(t,e):t(`exportFailed`))}finally{s(null)}}return{exporting:o,start:l,cancel:()=>c.current?.abort(),cloud:n.voiceEngine===`cloud`}}function Bf({courseId:e,lessonId:t}){let{api:n,t:a,navigate:o}=v(),s=y(()=>n.call(`lesson/get`,{courseId:e,lessonId:t}),[e,t]),[c,l]=(0,r.useState)(null),[u,d]=(0,r.useState)(null),[f,p]=(0,r.useState)(!1),[m,h]=(0,r.useState)(0),g=(0,r.useRef)(null),_=zf();if((0,r.useEffect)(()=>{if(!s.value)return;if(s.value.board&&m===0){l({steps:s.value.board.steps,stream:null});return}let r=!0;return n.call(`lesson/prepare`,{courseId:e,lessonId:t,force:m>0}).then(e=>{r&&l(e.board?{steps:e.board.steps,stream:null}:{steps:[],stream:e.job})}).catch(e=>{r&&d(e)}),()=>{r=!1}},[s.value,m]),(0,r.useEffect)(()=>()=>clearTimeout(g.current),[]),s.loading&&!s.value)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Ml,{label:a(`loading`)})});if(!s.value)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)($,{error:s.error})});let{lesson:b,unit:x,lecture:S,language:C,state:w}=s.value,T=w?.status===`learning`?Math.max(0,w.stepIndex??0):0;return(0,i.jsxs)(`div`,{className:`aha-page`,"data-wide":`true`,children:[u?(0,i.jsx)($,{error:u}):null,c?(0,i.jsx)(Uu,{scope:{kind:`lesson`,courseId:e,lessonId:t},title:b.title,crumb:`${x.title} · ${S.title}`,steps:c.steps,stream:c.stream,asides:m===0?s.value.asides??[]:[],objectives:b.objectives??[],language:C,startIndex:c.stream?0:T,onPosition:r=>{clearTimeout(g.current),g.current=setTimeout(()=>{n.call(`lesson/position`,{courseId:e,lessonId:t,stepIndex:r}).catch(()=>void 0)},800)},onEnded:()=>p(!0),onStreamDone:e=>{e?.board?.steps?.length&&l(t=>({...t,steps:e.board.steps}))},header:({steps:n})=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>o(`course`,{courseId:e}),children:[`← `,a(`backToCourse`)]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>o(`practice`,{courseId:e,lessonId:t}),children:a(`practice`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,disabled:!n.length,title:a(`handoutHint`),onClick:()=>o(`handout`,{courseId:e,lessonId:t}),children:a(`handout`)}),(0,i.jsx)(gf,{steps:n,title:b.title}),_.exporting?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Ml,{label:a(`exporting`,{percent:_.exporting.percent})}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:_.cancel,children:a(`cancel`)})]}):(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,disabled:!c.steps.length,title:_.cloud?``:a(`exportNeedsCloud`),onClick:()=>_.start({steps:c.steps,title:b.title}),children:a(`exportVideo`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>{l(null),p(!1),h(e=>e+1)},children:a(`regenerateLesson`)})]})},`${m}`):(0,i.jsx)(Ml,{label:a(`preparingLesson`)}),f?(0,i.jsx)(Vf,{courseId:e,lessonId:t,onClose:()=>p(!1)}):null]})}function Vf({courseId:e,lessonId:t,onClose:n}){let{api:a,t:o,navigate:s}=v(),[c,l]=(0,r.useState)(null),[u,d]=(0,r.useState)(null),[f,p]=(0,r.useState)(!1),[m,h]=(0,r.useState)(null);async function g(n){l(n),p(!0);try{d(await a.call(`lesson/complete`,{courseId:e,lessonId:t,selfRating:n}))}catch(e){h(e)}finally{p(!1)}}return(0,i.jsxs)(Fl,{title:o(`lessonDone`),onClose:n,children:[u?(0,i.jsxs)(`div`,{className:`aha-col`,children:[u.inserted?(0,i.jsx)(`div`,{className:`aha-feedback`,children:o(`remedialAdded`,{title:u.inserted.title})}):null,u.recommendation?.action===`challenge`?(0,i.jsx)(`div`,{className:`aha-feedback`,"data-ok":`true`,children:o(`challengeNote`)}):null,(0,i.jsxs)(`div`,{className:`aha-row`,children:[u.next?(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:()=>s(`lesson`,{courseId:e,lessonId:u.next.id},{replace:!0}),children:[o(`nextLesson`),`: `,u.next.title]}):null,(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>s(`practice`,{courseId:e,lessonId:t}),children:o(`doPractice`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>s(`handout`,{courseId:e,lessonId:t}),children:o(`handoutOfLesson`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>s(`course`,{courseId:e},{replace:!0}),children:o(`backToCourse`)})]})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`p`,{children:o(`selfRate`)}),(0,i.jsx)(`div`,{className:`aha-row`,children:[[1,`rate1`],[2,``],[3,`rate3`],[4,``],[5,`rate5`]].map(([e,t])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-chip`,"data-active":c===e,disabled:f,onClick:()=>g(e),children:[e,t?` · ${o(t)}`:``]},e))}),f?(0,i.jsx)(Ml,{}):null]}),(0,i.jsx)($,{error:m})]})}let Hf=e=>e.replace(/[.*+?^${}()|[\]\\]/gu,`\\$&`);function Uf({text:e,query:t}){let n=[...new Set(t.split(/\s+/u).filter(Boolean))].sort((e,t)=>t.length-e.length);if(!n.length)return e;let a=RegExp(`(${n.map(Hf).join(`|`)})`,`giu`);return e.split(a).map((e,t)=>t%2?(0,i.jsx)(`mark`,{children:e},t):(0,i.jsx)(r.Fragment,{children:e},t))}function Wf(){let{api:e,t,navigate:n,toast:a}=v(),o=y(()=>e.call(`material/list`),[]),[s,c]=(0,r.useState)(null),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(null),[p,m]=(0,r.useState)(``),[h,g]=(0,r.useState)(null),[_,b]=(0,r.useState)(!1),[x,S]=(0,r.useState)(null);async function C(t){t?.preventDefault();let n=p.trim();if(n){b(!0),u(null);try{let{results:t}=await e.call(`material/search`,{query:n});g({query:n,results:t})}catch(e){u(e)}finally{b(!1)}}}(0,r.useEffect)(()=>{if(!x)return;document.querySelector(`[data-material="${x}"]`)?.scrollIntoView({block:`center`,behavior:`smooth`});let e=setTimeout(()=>S(null),1700);return()=>clearTimeout(e)},[x]);let w=p.trim().toLowerCase(),T=(o.value??[]).filter(e=>h||!w||e.title.toLowerCase().includes(w)||(e.brief?.topics??[]).some(e=>e.toLowerCase().includes(w))||(e.brief?.summary??``).toLowerCase().includes(w));async function E(r,i){c(`${r}:${i.id}`),u(null);try{if(r===`course`){let{job:t}=await e.call(`course/start`,{goal:i.brief?.suggestedGoal??``,materialIds:[i.id]});n(`craft`,{jobId:t.id});return}let o={sheet:`studio/sheet`,cards:`studio/cards`,notes:`studio/notes`,quiz:`studio/quiz`}[r],s=await e.run(o,{materialIds:[i.id]});a(t(`saved`)),r===`sheet`?n(`sheet`,{sheetId:s.item.id}):r===`cards`?n(`cards`,{deckId:s.item.id}):r===`notes`?n(`item`,{kind:`notes`,id:s.item.id}):n(`item`,{kind:`quiz`,id:s.item.id})}catch(e){u(e)}finally{c(null)}}return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:t(`materialsTitle`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`materialsHint`)})]}),(0,i.jsx)(Bl,{onAdded:()=>o.reload()}),(o.value??[]).length?(0,i.jsxs)(`form`,{className:`aha-row aha-librarySearch`,onSubmit:C,role:`search`,children:[(0,i.jsx)(`input`,{className:`aha-input`,type:`search`,value:p,placeholder:t(`librarySearch`),"aria-label":t(`librarySearch`),onChange:e=>{m(e.currentTarget.value),g(null)}}),(0,i.jsxs)(`button`,{type:`submit`,className:`aha-btn`,disabled:!p.trim()||_,children:[_?(0,i.jsx)(`span`,{className:`aha-spinner`}):null,t(`librarySearchText`)]})]}):null,h?(0,i.jsxs)(`section`,{className:`aha-card aha-libraryHits`,"aria-live":`polite`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`b`,{children:h.results.length?t(`libraryFound`,{count:h.results.length}):t(`libraryNotFound`,{query:h.query})}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>{g(null),m(``)},children:t(`close`)})]}),h.results.map((e,n)=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-libraryHit`,onClick:()=>S(e.materialId),children:[(0,i.jsxs)(`span`,{className:`aha-libraryHitWhere`,children:[(0,i.jsx)(`b`,{children:e.title}),e.page?` · ${t(`pageN`,{page:e.page})}`:e.slide?` · ${t(`slideN`,{slide:e.slide})}`:``]}),(0,i.jsx)(`span`,{className:`aha-libraryHitText`,children:(0,i.jsx)(Uf,{text:e.snippet,query:h.query})})]},n))]}):null,(0,i.jsx)($,{error:l??o.error}),o.loading&&!o.value?(0,i.jsx)(Ml,{label:t(`loading`)}):T.length?(0,i.jsx)(`div`,{className:`aha-col`,children:T.map(e=>(0,i.jsxs)(`div`,{className:`aha-card`,"data-material":e.id,"data-flash":x===e.id?`true`:void 0,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:2},children:[(0,i.jsx)(`b`,{children:e.title}),(0,i.jsx)(`span`,{className:`aha-hint`,children:Hl(e,t)})]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>f(e),children:t(`delete`)})]}),e.brief?.summary?(0,i.jsx)(`p`,{className:`aha-hint`,children:e.brief.summary}):null,e.brief?.topics?.length?(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:4},children:e.brief.topics.slice(0,10).map(e=>(0,i.jsx)(`span`,{className:`aha-tag`,children:e},e))}):null,e.kind===`image`?(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`imageNeedsVision`)}):(0,i.jsxs)(`div`,{className:`aha-row`,style:{gap:6},children:[[[`course`,`makeCourse`],[`sheet`,`makeSheet`],[`cards`,`makeCards`],[`notes`,`makeNotes`],[`quiz`,`makeQuiz`]].map(([n,r])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":n===`course`?`primary`:void 0,disabled:!!s,onClick:()=>E(n,e),children:[s===`${n}:${e.id}`?(0,i.jsx)(`span`,{className:`aha-spinner`}):null,t(r)]},n)),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>n(`item`,{kind:`digest`,materialId:e.id}),children:t(`digest`)})]})]},e.id))}):(0,i.jsx)(Rl,{children:(o.value??[]).length?t(`libraryNoTitleMatch`):t(`noMaterials`)}),d?(0,i.jsx)(Il,{danger:!0,text:`${t(`delete`)}「${d.title}」?`,onCancel:()=>f(null),onConfirm:async()=>{await e.call(`material/remove`,{id:d.id}),f(null),o.reload()}}):null]})}let Gf=[60,120,180,240,300,420,600,900];function Kf(){let{api:e,t,navigate:n}=v(),a=y(()=>e.call(`plan/get`,{today:Nd(new Date)}),[]),o=y(()=>e.call(`review/session`),[]),s=y(()=>e.call(`course/list`),[]),[c,l]=(0,r.useState)(300),[u,d]=(0,r.useState)([1,2,3,4,5,6,0]),[f,p]=(0,r.useState)({title:``,day:``,courseId:``}),[m,h]=(0,r.useState)(null),g=t(`weekdays`).split(`,`),_=Nd(new Date),[b,x]=(0,r.useState)(_);(0,r.useEffect)(()=>{a.value&&(l(a.value.settings.weeklyMinutes),d(a.value.settings.studyDays))},[a.value?.settings]);async function S(){h(null);try{a.setValue(await e.call(`plan/settings`,{weeklyMinutes:c,studyDays:u}))}catch(e){h(e)}}async function C(t){if(t.preventDefault(),!(!f.title.trim()||!f.day))try{a.setValue(await e.call(`plan/add-exam`,{...f,courseId:f.courseId||void 0})),p({title:``,day:``,courseId:``})}catch(e){h(e)}}async function w(t,n){h(null);try{a.setValue(await Md(e,t,n,_))}catch(e){h(e)}}let T=e=>s.value?.find(t=>t.id===e)?.title??``,E=a.value?.calendar??[],D=E.find(e=>e.day===b)?.items??[];return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:t(`planTitle`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`planHint`)})]}),(0,i.jsx)(`section`,{className:`aha-card`,children:(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`b`,{children:o.value?.items?.length?t(`reviewDue`,{count:o.value.items.length}):t(`nothingToReview`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:!o.value?.items?.length,onClick:()=>n(`practice`,{review:!0}),children:t(`startReview`)})]})}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsxs)(`label`,{className:`aha-label`,style:{minWidth:200},children:[t(`weeklyMinutes`),(0,i.jsx)(`select`,{className:`aha-select`,value:c,onChange:e=>l(Number(e.currentTarget.value)),children:Gf.map(e=>(0,i.jsx)(`option`,{value:e,children:t(`minutesUnit`,{minutes:e})},e))})]}),(0,i.jsxs)(`div`,{className:`aha-label`,children:[t(`studyDays`),(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:4},children:[1,2,3,4,5,6,0].map(e=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":u.includes(e),onClick:()=>d(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),children:g[e]},e))})]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:S,children:t(`savePlan`)})]}),(a.value?.plan.warnings??[]).filter(e=>e.kind===`deadline-at-risk`).map(e=>(0,i.jsx)(`div`,{className:`aha-feedback`,"data-ok":`false`,children:t(`deadlineRisk`,{course:T(e.courseId),finish:e.finishDay,deadline:e.deadline,minutes:e.neededWeeklyMinutes})},e.courseId))]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:t(`exams`)}),(a.value?.exams??[]).map(n=>(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`span`,{children:[n.title,` · `,n.day,n.courseId?` · ${T(n.courseId)}`:``]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:async()=>a.setValue(await e.call(`plan/remove-exam`,{id:n.id})),children:t(`delete`)})]},n.id)),(0,i.jsxs)(`form`,{className:`aha-row`,onSubmit:C,children:[(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:2,minWidth:160},placeholder:t(`examTitle`),value:f.title,onChange:e=>p({...f,title:e.currentTarget.value})}),(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:1,minWidth:140},type:`date`,value:f.day,onChange:e=>p({...f,day:e.currentTarget.value})}),(0,i.jsxs)(`select`,{className:`aha-select`,style:{flex:1,minWidth:140},value:f.courseId,onChange:e=>p({...f,courseId:e.currentTarget.value}),children:[(0,i.jsx)(`option`,{value:``,children:`—`}),(s.value??[]).filter(e=>e.status===`ready`).map(e=>(0,i.jsx)(`option`,{value:e.id,children:e.title},e.id))]}),(0,i.jsx)(`button`,{type:`submit`,className:`aha-btn`,children:t(`addExam`)})]})]}),(0,i.jsx)($,{error:m??a.error}),a.loading&&!a.value?(0,i.jsx)(Ml,{label:t(`loading`)}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Yf,{days:E,today:_,selected:b,onSelect:x,weekdayNames:g}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`b`,{children:[b===_?`${t(`today`)} · `:``,t(`dayLabel`,{month:Pd(b).getMonth()+1,day:Pd(b).getDate(),weekday:g[Pd(b).getDay()]})]}),D.length?D.map(e=>(0,i.jsx)(jd,{item:e,day:b,today:_,onToggle:w},`${e.kind}:${e.refId}`)):(0,i.jsx)(`p`,{className:`aha-hint`,children:t(b===_?`noPlanToday`:`dayEmpty`)})]})]})]})}let qf=e=>String(e).padStart(2,`0`),Jf=(e,t)=>{let n=Pd(`${e}-01`);return n.setMonth(n.getMonth()+t),`${n.getFullYear()}-${qf(n.getMonth()+1)}`};function Yf({days:e,today:t,selected:n,onSelect:a,weekdayNames:o}){let{t:s}=v(),[c,l]=(0,r.useState)(t.slice(0,7)),u=(0,r.useMemo)(()=>new Map(e.map(e=>[e.day,e.items])),[e]),d=Pd(`${c}-01`),f=new Date(d.getFullYear(),d.getMonth()+1,0).getDate(),p=[...Array((d.getDay()+6)%7).fill(null),...Array.from({length:f},(e,t)=>`${c}-${qf(t+1)}`)];return(0,i.jsxs)(`section`,{className:`aha-card aha-calendar`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>l(e=>Jf(e,-1)),"aria-label":s(`prevMonth`),children:`‹`}),(0,i.jsx)(`b`,{children:s(`monthLabel`,{year:d.getFullYear(),month:d.getMonth()+1})}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>l(e=>Jf(e,1)),"aria-label":s(`nextMonth`),children:`›`})]}),(0,i.jsxs)(`div`,{className:`aha-calGrid`,children:[[1,2,3,4,5,6,0].map(e=>(0,i.jsx)(`span`,{className:`aha-calHead`,children:o[e]},e)),p.map((e,r)=>{if(!e)return(0,i.jsx)(`span`,{},`gap${r}`);let o=u.get(e)??[],s=o.length>0&&o.every(e=>e.kind===`exam`||e.checked);return(0,i.jsxs)(`button`,{type:`button`,className:`aha-calDay`,"data-today":e===t?`true`:void 0,"data-selected":e===n?`true`:void 0,"data-past":e<t?`true`:void 0,onClick:()=>a(e),children:[(0,i.jsxs)(`span`,{className:`aha-calNum`,children:[Number(e.slice(8)),s?` ✓`:``]}),o.slice(0,3).map(e=>(0,i.jsx)(`span`,{className:`aha-calItem`,"data-kind":e.kind,"data-checked":e.checked?`true`:void 0,children:e.title},`${e.kind}:${e.refId}`)),o.length>3?(0,i.jsxs)(`span`,{className:`aha-calMore`,children:[`+`,o.length-3]}):null]},e)})]})]})}let Xf=[[`goals`,`goals`],[`strengths`,`strengthsLabel`],[`weaknesses`,`weaknesses`]];function Zf(){let{api:e,t,toast:n}=v(),a=y(()=>e.call(`profile/get`),[]),[o,s]=(0,r.useState)(null),[c,l]=(0,r.useState)(!1),[u,d]=(0,r.useState)(null);(0,r.useEffect)(()=>{a.value&&s({name:a.value.name??``,background:a.value.background,goals:a.value.goals.join(`
|
|
618
690
|
`),strengths:a.value.strengths.join(`
|
|
619
691
|
`),weaknesses:a.value.weaknesses.join(`
|
|
620
692
|
`),style:a.value.preferences?.style??``})},[a.value]);async function f(){d(null);try{let r=e=>e.split(`
|
|
621
|
-
`).map(e=>e.trim()).filter(Boolean);a.setValue(await e.call(`profile/save`,{background:o.background,goals:r(o.goals),strengths:r(o.strengths),weaknesses:r(o.weaknesses),preferences:{...a.value.preferences,style:o.style}})),n(t(`saved`))}catch(e){d(e)}}return o?(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:820},children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:t(`profileTitle`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`profileHint`)})]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`background`),(0,i.jsx)(`textarea`,{className:`aha-textarea`,value:o.background,onChange:e=>s({...o,background:e.currentTarget.value})})]}),Of.map(([e,n])=>(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(n),` `,(0,i.jsxs)(`span`,{className:`aha-hint`,children:[`(`,t(`onePerLine`),`)`]}),(0,i.jsx)(`textarea`,{className:`aha-textarea`,value:o[e],onChange:t=>s({...o,[e]:t.currentTarget.value})})]},e)),(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`learningStyle`),(0,i.jsx)(`input`,{className:`aha-input`,value:o.style,onChange:e=>s({...o,style:e.currentTarget.value})})]}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:f,children:t(`save`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`danger`,onClick:()=>l(!0),children:t(`clearProfile`)})]}),(0,i.jsx)($,{error:u})]}),a.value.notes?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:t(`memoryNotes`)}),a.value.notes.map(n=>(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`span`,{children:n.text}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:async()=>a.setValue(await e.call(`profile/remove-note`,{id:n.id})),children:t(`delete`)})]},n.id))]}):null,(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`privacyNote`)}),c?(0,i.jsx)(jl,{danger:!0,text:t(`clearProfileConfirm`),onCancel:()=>l(!1),onConfirm:async()=>{a.setValue(await e.call(`profile/clear`)),l(!1)}}):null]}):(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Dl,{label:t(`loading`)})})}function Af({courseId:e,projectId:t}){let{api:n,t:a,dsh:o,toast:s}=v(),c=y(()=>n.call(`project/get`,{courseId:e,projectId:t}),[e,t]),l=b(),[u,d]=(0,r.useState)(``),[f,p]=(0,r.useState)(!0),[m,h]=(0,r.useState)(null),[g,_]=(0,r.useState)(!1),[x,S]=(0,r.useState)(null);if(c.loading&&!c.value)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Dl,{label:a(`loading`)})});if(!c.value)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)($,{error:c.error})});let{project:C,submissions:w}=c.value,T=m?.path??c.value.workspace;async function E(){_(!0),S(null);try{let r=await n.call(`project/open`,{courseId:e,projectId:t});h(r);let i=await o.openWorkspace(r.path,r.prompt).catch(()=>!1);s(i?a(`workspaceSession`):a(`workspaceReady`,{path:r.path}))}catch(e){S(e)}finally{_(!1)}}async function D(){try{await l.run(`project/submit`,{courseId:e,projectId:t,notes:u,includeWorkspace:f}),d(``),c.reload()}catch{}}return(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:900},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:C.title}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:a(`projectBrief`)}),(0,i.jsx)(ru,{text:C.brief})]}),C.milestones?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:a(`milestones`)}),(0,i.jsx)(`ol`,{style:{margin:0,paddingLeft:20},children:C.milestones.map(e=>(0,i.jsxs)(`li`,{children:[(0,i.jsx)(`b`,{children:e.title}),e.detail?(0,i.jsx)(`div`,{className:`aha-hint`,children:e.detail}):null]},e.id))})]}):null,C.rubric?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:a(`rubric`)}),C.rubric.map(e=>(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`span`,{children:[e.criterion,e.detail?(0,i.jsxs)(`span`,{className:`aha-hint`,children:[` · `,e.detail]}):null]}),(0,i.jsx)(`span`,{className:`aha-tag`,children:e.points})]},e.id))]}):null,(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:g,onClick:E,children:[(0,i.jsx)(me,{name:`folder`,size:15}),a(g?`openingWorkspace`:`openWorkspace`)]}),T?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`code`,{className:`aha-hint`,style:{overflowWrap:`anywhere`},children:T}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>{Vl(T),s(a(`copied`))},children:a(`copyPath`)})]}):null]}),(0,i.jsx)(`p`,{className:`aha-hint`,children:a(`workspaceManual`)}),(0,i.jsx)($,{error:x})]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:a(`submitProject`)}),(0,i.jsx)(`textarea`,{className:`aha-textarea`,value:u,placeholder:a(`submitNotes`),onChange:e=>d(e.currentTarget.value)}),(0,i.jsxs)(`label`,{className:`aha-row`,style:{gap:6},children:[(0,i.jsx)(`input`,{type:`checkbox`,checked:f,onChange:e=>p(e.currentTarget.checked)}),a(`includeFiles`)]}),l.running?(0,i.jsx)(kl,{progress:l.progress,label:a(`reviewing`),onCancel:l.cancel}):(0,i.jsx)(`div`,{children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:!u.trim()&&!f,onClick:D,children:a(`submitProject`)})}),(0,i.jsx)($,{error:l.error})]}),w.length?(0,i.jsxs)(`section`,{className:`aha-col`,children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:a(`submissions`)}),[...w].reverse().map((e,t)=>(0,i.jsxs)(`div`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`b`,{children:a(`reviewTotal`,{total:e.review.total,max:e.review.max})}),(0,i.jsx)(`span`,{className:`aha-hint`,children:new Date(e.at).toLocaleString()})]}),e.review.summary?(0,i.jsx)(ru,{text:e.review.summary,compact:!0}):null,e.review.scores.map(e=>(0,i.jsxs)(`div`,{className:`aha-spread`,style:{alignItems:`flex-start`},children:[(0,i.jsxs)(`span`,{children:[(0,i.jsx)(`b`,{children:e.criterion}),(0,i.jsx)(`div`,{className:`aha-hint`,children:e.comment})]}),(0,i.jsxs)(`span`,{className:`aha-tag`,children:[e.points,`/`,e.max]})]},e.criterionId)),e.review.strengths?.length?(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`b`,{children:a(`strengths`)}),(0,i.jsx)(`ul`,{style:{margin:0},children:e.review.strengths.map((e,t)=>(0,i.jsx)(`li`,{children:e},t))})]}):null,e.review.nextSteps?.length?(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`b`,{children:a(`nextSteps`)}),(0,i.jsx)(`ul`,{style:{margin:0},children:e.review.nextSteps.map((e,t)=>(0,i.jsx)(`li`,{children:e},t))})]}):null]},t))]}):null]})}let jf=[[`openai`,`providerOpenai`],[`volcengine`,`providerVolcengine`],[`minimax`,`providerMinimax`],[`azure`,`providerAzure`]];function Mf(){let{api:e,t,settings:n,settingsSaved:a,setVoiceId:o,speech:s,language:c}=v(),l=y(()=>e.call(`models/list`),[]),[d,f]=(0,r.useState)(null),p=e=>d?.area===e?d.failure:null,[m,h]=(0,r.useState)(()=>ee()),[g,_]=(0,r.useState)(``),[b,x]=(0,r.useState)(!1);(0,r.useEffect)(()=>te(h),[]);async function S(e,t){f(null);try{await t()}catch(t){f({area:e,failure:t})}}let C=(0,r.useRef)(Promise.resolve()),w=(t,n)=>{let r=S(t,async()=>{await e.call(`settings/save`,{settings:n}),await a()});return C.current=C.current.then(()=>r),r},T=(e,t)=>e&&t?`${e}::${t}`:``,E=(e,t)=>{let[n=``,r=``]=t?t.split(`::`):[];w(`models`,{[`${e}Provider`]:n,[`${e}Model`]:r})},re=(0,r.useMemo)(()=>(l.value??[]).map(e=>({value:`${e.provider}::${e.model}`,label:`${e.providerName} · ${e.name}${e.images?` 🖼`:``}`})),[l.value]),ie=c===`zh`?`zh-CN`:`en`,O=m.filter(e=>e.lang.toLowerCase().startsWith(ie.split(`-`)[0])),k=n.ttsProvider??`openai`,ae=(n.fields?.[k]??[]).filter(e=>!e.secret),oe=n.tts?.[k]??{};async function A(){f(null),x(!0);try{await C.current,s.configure({engine:n.voiceEngine??`browser`,voiceId:n.voiceId||void 0,language:ie,rate:n.voiceRate??1});let e=await s.speak(t(`testSentence`),{rate:n.voiceRate??1}).done;e?.error&&f({area:`test`,failure:new u(e.code??`speech`,e.error)})}finally{x(!1)}}return n.voiceEngine?(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:820},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:t(`settingsTitle`)}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:t(`modelsTitle`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`modelsHint`)}),[[`teach`,`teachModel`],[`quick`,`quickModel`]].map(([e,r])=>(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(r),(0,i.jsxs)(`select`,{className:`aha-select`,value:T(n[`${e}Provider`],n[`${e}Model`]),onChange:t=>E(e,t.currentTarget.value),children:[(0,i.jsx)(`option`,{value:``,children:t(`followDefault`)}),re.map(e=>(0,i.jsx)(`option`,{value:e.value,children:e.label},e.value))]})]},e)),l.loading?(0,i.jsx)(Dl,{}):null,(0,i.jsx)($,{error:p(`models`),reveal:!0})]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:t(`voiceTitle`)}),(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:6},children:[[`browser`,`engineBrowser`],[`cloud`,`engineCloud`],[`off`,`engineOff`]].map(([e,r])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":n.voiceEngine===e,onClick:()=>w(`engine`,{voiceEngine:e}),children:t(r)},e))}),(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`voiceRate`),` · `,n.voiceRate??1,`×`,(0,i.jsx)(`input`,{type:`range`,min:`0.5`,max:`2`,step:`0.05`,value:n.voiceRate??1,onChange:e=>w(`engine`,{voiceRate:Number(e.currentTarget.value)})})]}),(0,i.jsx)($,{error:p(`engine`),reveal:!0}),n.voiceEngine===`browser`?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`browserVoice`),(0,i.jsxs)(`select`,{className:`aha-select`,value:n.voiceId??``,onChange:e=>o(e.currentTarget.value),children:[(0,i.jsxs)(`option`,{value:``,children:[t(`autoVoice`),ne(ie)?` (${ne(ie).name})`:``]}),(O.length?O:m).map(e=>(0,i.jsxs)(`option`,{value:e.id,children:[e.name,` · `,e.lang,e.local?``:` ☁`]},e.id))]})]}),D()&&!O.length?(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`noVoiceForLanguage`)}):null]}):null,n.voiceEngine===`cloud`?(0,i.jsxs)(`div`,{className:`aha-col`,children:[(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`cloudProvider`),(0,i.jsx)(`select`,{className:`aha-select`,value:k,onChange:e=>w(`cloud`,{ttsProvider:e.currentTarget.value}),children:jf.map(([e,n])=>(0,i.jsx)(`option`,{value:e,children:t(n)},e))})]}),ae.map(e=>(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`field_${e.key}`),(0,i.jsx)(`input`,{className:`aha-input`,defaultValue:oe[e.key]??``,onBlur:t=>{let n=t.currentTarget.value.trim();n!==(oe[e.key]??``)&&w(`cloud`,{tts:{[k]:{[e.key]:n}}})}},`${k}:${e.key}:${oe[e.key]??``}`)]},e.key)),(0,i.jsx)($,{error:p(`cloud`),reveal:!0}),(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`field_apiKey`),` · `,(0,i.jsx)(`span`,{className:n.keys?.[k]?`aha-ok`:`aha-hint`,children:n.keys?.[k]?t(`keySaved`):t(`keyMissing`)}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:1},type:`password`,autoComplete:`off`,spellCheck:!1,value:g,onChange:e=>_(e.currentTarget.value)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,disabled:!g.trim(),onClick:()=>S(`key`,async()=>{await e.call(`settings/set-key`,{provider:k,key:g.trim()}),_(``),await a()}),children:t(`saveKey`)}),n.keys?.[k]?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>S(`key`,async()=>{await e.call(`settings/clear-key`,{provider:k}),await a()}),children:t(`clearKey`)}):null]})]}),(0,i.jsx)($,{error:p(`key`),reveal:!0})]}):null,(0,i.jsx)(`div`,{children:(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,disabled:b||n.voiceEngine===`off`,onClick:A,children:[b?(0,i.jsx)(`span`,{className:`aha-spinner`}):`🔊`,` `,t(`testVoice`)]})}),(0,i.jsx)($,{error:p(`test`),reveal:!0})]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:t(`boardTheme`)}),(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:6},children:[[`auto`,`themeAuto`],[`light`,`themeLight`],[`dark`,`themeDark`]].map(([e,r])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":(n.boardTheme??`auto`)===e,onClick:()=>w(`board`,{boardTheme:e}),children:t(r)},e))}),(0,i.jsx)(`b`,{children:t(`boardFont`)}),(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:6},children:[[`hand`,`fontHand`],[`standard`,`fontStandard`]].map(([e,r])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":(n.boardFont??`hand`)===e,onClick:()=>w(`board`,{boardFont:e}),style:e===`hand`?{fontFamily:Zd}:void 0,children:t(r)},e))}),(0,i.jsx)(`b`,{children:t(`boardView`)}),(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:6},children:[[`canvas`,`viewCanvas`],[`pages`,`viewPages`]].map(([e,r])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":(n.boardView??`canvas`)===e,onClick:()=>w(`board`,{boardView:e}),children:t(r)},e))}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`boardViewHint`)}),(0,i.jsx)($,{error:p(`board`),reveal:!0})]}),(0,i.jsx)(Nf,{}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`privacyNote`)})]}):(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Dl,{label:t(`loading`)})})}function Nf(){let{api:e,t}=v(),[n,a]=(0,r.useState)(null),[o,s]=(0,r.useState)(!0),[c,l]=(0,r.useState)(!1),[u,d]=(0,r.useState)(!1),[f,p]=(0,r.useState)(null),[m,h]=(0,r.useState)(!1),g=t=>{s(!0),l(!1),e.call(`plugin/version`,{force:t}).then(a).catch(()=>l(!0)).finally(()=>s(!1))};(0,r.useEffect)(()=>{g(!1)},[]);async function _(){d(!0),h(!1);try{p(await e.call(`plugin/update`))}catch{h(!0)}finally{d(!1)}}let y=n?.install?.kind;return(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`b`,{children:t(`versionTitle`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,disabled:o||u,onClick:()=>g(!0),children:t(o?`versionChecking`:`versionCheck`)})]}),c?(0,i.jsx)(`p`,{className:`aha-error`,children:t(`versionFailed`)}):null,n?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`span`,{children:t(`versionCurrent`)}),(0,i.jsxs)(`span`,{className:`aha-hint`,children:[`v`,n.current]})]}),(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`span`,{children:t(`versionLatest`)}),(0,i.jsx)(`span`,{className:`aha-hint`,children:n.latest?`v${n.latest}`:`—`})]}),f?null:(0,i.jsx)(`p`,{className:n.latestUnknown?`aha-error`:`aha-hint`,children:n.latestUnknown?t(`versionFailed`):n.updateAvailable?t(`versionAvailable`,{version:n.latest}):t(`versionUpToDate`)}),!f&&n.updateAvailable&&y===`npm`?(0,i.jsx)(`div`,{children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:u,onClick:_,children:t(u?`versionUpdating`:`versionUpdate`)})}):null,y===`link`?(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`versionLinked`)}):null,n.updateAvailable&&y===`unknown`?(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`versionManual`,{version:n.latest})}):null]}):null,m?(0,i.jsx)(`p`,{className:`aha-error`,children:t(`versionUpdateFailed`)}):null,f?.pending?(0,i.jsx)(`p`,{className:`aha-hint`,children:typeof f.availableAt==`number`?t(`versionPendingUntil`,{version:f.version,time:new Date(f.availableAt).toLocaleString()}):t(`versionPending`,{version:f.version})}):null,f&&!f.pending?(0,i.jsx)(`div`,{className:`aha-feedback`,"data-ok":`true`,children:t(`versionUpdated`,{version:f.version})}):null]})}function Pf({draftTopic:e,draftUrl:t,token:n}){let{api:a,t:o}=v(),s=y(()=>a.call(`items/list`,{kind:`shorts`}),[]),[c,l]=(0,r.useState)(e??``),[u,d]=(0,r.useState)(t??``),[f,p]=(0,r.useState)(null),[m,h]=(0,r.useState)(null),g=yf(),_=x(n);async function b(){if(!c.trim()&&!u.trim())return;h(null);let e=be(`sht`);try{let{job:t}=await a.call(`short/make`,{topic:c,url:u,newId:e});p({id:e,title:c||u,steps:[],stream:t,key:`${e}:new`})}catch(e){h(e)}}(0,r.useEffect)(()=>{_&&(e||t)&&b()},[]);async function S(e){try{let{item:t}=await a.call(`items/get`,{kind:`shorts`,id:e});p({id:t.id,title:t.title,steps:t.board.steps,stream:null,language:t.language,key:`${t.id}:open`,opened:Date.now()})}catch(e){h(e)}}return(0,i.jsx)(`div`,{className:`aha-page`,"data-wide":`true`,children:(0,i.jsxs)(`div`,{className:`aha-split`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{minHeight:0},children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:o(`shortsTitle`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:o(`shortsHint`)})]}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:2,minWidth:220},value:c,placeholder:o(`topicPlaceholder`),onChange:e=>l(e.currentTarget.value)}),(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:1,minWidth:180},value:u,placeholder:o(`urlPlaceholder`),onChange:e=>d(e.currentTarget.value)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:!c.trim()&&!u.trim(),onClick:b,children:o(`makeShort`)})]}),(0,i.jsx)($,{error:m}),f?(0,i.jsx)(Fu,{scope:{kind:`short`,id:f.id},title:f.title,steps:f.steps,stream:f.stream,language:f.language,recordChecks:!1,reveal:f.opened,onStreamDone:e=>{p(t=>({...t,steps:e?.item?.board?.steps??t.steps,title:e?.item?.title??t.title,stream:null})),s.reload()},header:({steps:e})=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Yd,{steps:e,title:f.title,kind:null}),g.exporting?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Dl,{label:o(`exporting`,{percent:g.exporting.percent})}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:g.cancel,children:o(`cancel`)})]}):(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,disabled:!f.steps.length,onClick:()=>g.start({steps:f.steps,title:f.title}),children:o(`exportVideo`)})]})},f.key):null,f&&!g.cloud?(0,i.jsx)(`p`,{className:`aha-hint`,children:o(`exportNeedsCloud`)}):null]}),(0,i.jsxs)(`aside`,{className:`aha-col`,style:{minHeight:0,overflow:`auto`},children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:o(`history`)}),s.loading&&!s.value?(0,i.jsx)(Dl,{}):(s.value??[]).length?s.value.map(e=>(0,i.jsxs)(`div`,{className:`aha-option`,style:{cursor:`pointer`},onClick:()=>S(e.id),children:[(0,i.jsx)(`b`,{children:e.title}),(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`small`,{children:new Date(e.createdAt).toLocaleString()}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:async t=>{t.stopPropagation(),await a.call(`items/remove`,{kind:`shorts`,id:e.id}),s.reload()},children:o(`delete`)})]})]},e.id)):(0,i.jsx)(Nl,{children:o(`empty`)})]})]})})}let Ff=[[`sheet`,`makeSheet`,`studio/sheet`],[`cards`,`makeCards`,`studio/cards`],[`notes`,`makeNotes`,`studio/notes`],[`quiz`,`makeQuiz`,`studio/quiz`]];function If(){let{api:e,t,navigate:n}=v(),a=y(()=>e.call(`items/list`,{kind:`sheets`}),[]),o=y(()=>e.call(`items/list`,{kind:`decks`}),[]),[s,c]=(0,r.useState)([]),[l,u]=(0,r.useState)(!1),[d,f]=(0,r.useState)(``),[p,m]=(0,r.useState)(null),[h,g]=(0,r.useState)(null);async function _(t,n){if(!s.length){u(!0);return}m(t),g(null);try{b((await e.run(n,{materialIds:s,focus:d})).item)}catch(e){g(e)}finally{m(null)}}function b(e){e.kind===`cheatsheet`?n(`sheet`,{sheetId:e.id}):e.kind===`notes`?n(`item`,{kind:`notes`,id:e.id}):e.kind===`cards`?n(`cards`,{deckId:e.id}):n(`item`,{kind:`quiz`,id:e.id})}async function x(t,n){await e.call(`items/remove`,{kind:t,id:n}),t===`sheets`?a.reload():o.reload()}let S=(e,n,r)=>(0,i.jsxs)(`section`,{className:`aha-col`,children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:e}),n.loading&&!n.value?(0,i.jsx)(Dl,{}):(n.value??[]).length?(0,i.jsx)(`div`,{className:`aha-grid`,children:n.value.map(e=>(0,i.jsxs)(`div`,{className:`aha-card`,"data-click":`true`,onClick:()=>b(e),children:[(0,i.jsx)(`span`,{className:`aha-tag`,children:e.kind===`cheatsheet`?t(`sheets`):e.kind===`notes`?t(`notes`):e.kind===`cards`?t(`decks`):t(`quizzes`)}),(0,i.jsx)(`b`,{children:e.title}),(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:new Date(e.updatedAt).toLocaleDateString()}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:t=>{t.stopPropagation(),x(r,e.id)},children:t(`delete`)})]})]},e.id))}):(0,i.jsx)(Nl,{children:t(`empty`)})]});return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:t(`studioTitle`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`studioHint`)})]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>u(!0),children:s.length?t(`attached`,{count:s.length}):t(`pickMaterials`)}),(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:1,minWidth:220},value:d,placeholder:t(`focusPlaceholder`),onChange:e=>f(e.currentTarget.value)})]}),(0,i.jsx)(`div`,{className:`aha-row`,children:Ff.map(([e,n,r])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:!!p,onClick:()=>_(e,r),children:[p===e?(0,i.jsx)(`span`,{className:`aha-spinner`}):null,t(n)]},e))}),p?(0,i.jsx)(Dl,{label:t(`generating`)}):null,(0,i.jsx)($,{error:h})]}),S(`${t(`sheets`)} · ${t(`notes`)}`,a,`sheets`),S(`${t(`decks`)} · ${t(`quizzes`)}`,o,`decks`),l?(0,i.jsx)(Il,{selected:s,onChange:c,onClose:()=>u(!1)}):null]})}Object.freeze([`again`,`hard`,`good`,`easy`]),Object.freeze({again:1,hard:3,good:4,easy:5});function Lf(e,t=Date.now()){return Date.parse(e?.dueAt??0)<=t}function Rf(e,t=Date.now()){return(e||[]).filter(e=>Lf(e,t)).sort((e,t)=>Date.parse(e.dueAt)-Date.parse(t.dueAt))}function zf({courseId:e,lessonId:t,unitId:n,review:a,deckId:o}){let{api:s,t:c,navigate:l}=v(),d=b(),[f,p]=(0,r.useState)(null),[m,h]=(0,r.useState)(null),[g,_]=(0,r.useState)(0),[y,x]=(0,r.useState)([]),[S,C]=(0,r.useState)(0),[w,T]=(0,r.useState)(null),[E,D]=(0,r.useState)({}),[ee,te]=(0,r.useState)(null),[ne,re]=(0,r.useState)({}),[ie,O]=(0,r.useState)([]),k=(0,r.useRef)(new Map),ae=(0,r.useRef)(0),oe=(0,r.useRef)(0),A=(0,r.useRef)({index:0,results:[]});A.current={index:g,results:y},(0,r.useEffect)(()=>{let r=!0;return(async()=>{try{if(e&&!o&&s.call(`course/get`,{courseId:e}).then(e=>{r&&T(e)}).catch(()=>void 0),a){let t=await s.call(`review/session`,e?{courseId:e}:{});r&&p({title:c(`review`),items:t.items.map(e=>({...e.item,context:e})),language:void 0});return}if(o){let{item:e}=await s.call(`items/get`,{kind:`decks`,id:o});r&&p({title:e.title,items:e.items??[],language:e.language});return}let i=n?`unit/quiz`:`lesson/practice`,l=n?{courseId:e,unitId:n}:{courseId:e,lessonId:t},f=await s.call(i,l),m=f.job?await d.run(null,null,{existing:f.job}):f,h=(m.quiz??m.sets?.[t]??m.practice)?.items??[];if(!h.length&&!n)throw new u(`bad-output`,`No practice items came back`);let g=t?await s.call(`lesson/get`,{courseId:e,lessonId:t}):null;r&&p({title:g?.lesson.title??c(`unitQuiz`),items:h,language:g?.language})}catch(e){r&&h(e)}})(),()=>{r=!1}},[e,t,n,a,o,S]);let se=f?.items[g],ce=r=>{let i=g;x(e=>[...e,{...r,index:i}]);let a=se?.context?.courseId??e;!a||o||k.current.set(i,s.call(`lesson/record`,{courseId:a,lessonId:se?.context?.lessonId??t,conceptIds:se?.conceptIds??[],evidence:{kind:n?`quiz`:`practice`,score:r.score,confidence:r.confidence,hintsUsed:r.hintsUsed,timeMs:r.timeMs,expectedMs:6e4,errorTag:r.errorTag}}).then(e=>(e?.mastery&&D(t=>({...t,...e.mastery})),e?.recommendation&&te(e.recommendation),e?.evidenceId??null)).catch(()=>null))},le=(0,r.useMemo)(()=>Uu(y),[y]);function ue(e,t){oe.current+=1;let n=oe.current;O(r=>[...r.slice(-2),{key:n,text:e,retry:t}])}let de=e=>O(t=>t.filter(t=>t.key!==e));async function fe(r,i){let a=f?.items[r],l=A.current.results.find(e=>e.index===r),u=Yl({courseId:e,lessonId:t,unitId:n,deckId:o},a);if(!l||!u)return;let d=ae.current;re(e=>({...e,[r]:{...e[r],status:`checking`,note:i,error:null}}));try{let e=await(k.current.get(r)??null),t=await s.run(`item/challenge`,{source:u,response:l.given??l.response??``,shown:$l(l),...e?{evidenceId:e}:{},note:i});if(ae.current!==d){t?.item&&p(e=>e&&{...e,items:e.items.map((e,n)=>n===r?t.item:e)});return}re(e=>({...e,[r]:eu(e[r],t,A.current.results.find(e=>e.index===r))})),t?.result&&x(e=>tu(e,r,t.result)),t?.mastery&&D(e=>({...e,...t.mastery})),t?.recommendation&&te(t.recommendation),A.current.index!==r&&ue(nu(c,{index:r,verdict:t?.verdict,regraded:!!t?.result}))}catch(e){if(ae.current!==d)return;re(t=>({...t,[r]:{...t[r],status:`failed`,note:i,error:e}})),A.current.index!==r&&ue(nu(c,{index:r,message:Ml(c,e)}),()=>fe(r,i))}}function pe(){ae.current+=1,p(e=>({...e,items:e.items.map((e,t)=>ne[t]?.item??e)})),re({}),O([]),k.current=new Map,_(0),x([]),te(null)}if(m)return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsx)($,{error:m}),(0,i.jsx)(`div`,{children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>{h(null),C(e=>e+1)},children:c(`retry`)})})]});if(!f)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(kl,{progress:d.progress,label:c(`makingPractice`),onCancel:d.running?d.cancel:void 0})});if(!f.items.length)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Nl,{children:c(a?`nothingToReview`:`empty`)})});let me=g>=f.items.length;return(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:760},children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:f.title}),(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:6},children:[!me&&le.streak>=2?(0,i.jsx)(`span`,{className:`aha-tag aha-streak`,children:c(`streakCount`,{count:le.streak})}):null,(0,i.jsxs)(`span`,{className:`aha-tag`,children:[Math.min(g+1,f.items.length),`/`,f.items.length]})]})]}),ie.map(e=>(0,i.jsxs)(`div`,{className:`aha-itemNotice`,role:`status`,children:[(0,i.jsxs)(`span`,{className:`aha-itemNoticeText`,children:[`🧐 `,e.text]}),e.retry?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>{de(e.key),e.retry()},children:c(`retry`)}):null,(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,"aria-label":c(`close`),onClick:()=>de(e.key),children:`×`})]},e.key)),se?.context?(0,i.jsxs)(`p`,{className:`aha-hint`,children:[se.context.courseTitle,` · `,se.context.conceptName]}):null,me?(0,i.jsx)(Bf,{set:f,stats:le,context:w,after:E,recommendation:ee,courseId:e,lessonId:t,unitId:n,onRetry:pe}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{className:`aha-card`,children:(0,i.jsx)(wu,{item:se,language:f.language,onResult:ce,onContinue:()=>_(e=>e+1),continueLabel:g+1<f.items.length?c(`continue`):c(`confirm`),keyboard:!0,onChallenge:Yl({courseId:e,lessonId:t,unitId:n,deckId:o},se)?e=>fe(g,e):void 0,check:ne[g]??null},`${g}`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:c(`keysHint`)})]})]})}function Bf({set:e,stats:t,context:n,after:a,recommendation:o,courseId:s,lessonId:c,unitId:l,onRetry:u}){let{t:d,navigate:f}=v(),p=n?.course,m=n?.progress,h=(0,r.useMemo)(()=>{let t=p?nt(p):new Map;return[...new Set(e.items.flatMap(e=>e.conceptIds??[]))].filter(e=>a[e]!==void 0).map(n=>({id:n,name:t.get(n)?.name??e.items.find(e=>e.context?.conceptId===n)?.context?.conceptName??n,before:m?Bu(m.concepts?.[n]):null,after:Vu(a[n]),percent:a[n]}))},[e,p,m,a]),g=(0,r.useMemo)(()=>{if(!p)return null;let e=$e(p),t=c?e.find(e=>e.lesson.id===c):null,n=t?ot(p,c)?.lesson.id:l?e.find((t,n)=>n>e.findLastIndex(e=>e.unit.id===l))?.lesson.id:null;return Wu(o,{lessonId:c,unitId:t?.unit.id??null,nextLessonId:n??at(p,m)?.lesson.id})},[p,m,o,c,l]),_={relearn:()=>f(`lesson`,{courseId:s,lessonId:g.lessonId}),review:()=>f(`practice`,{courseId:s,review:!0}),quiz:()=>f(`practice`,{courseId:s,unitId:g.unitId}),next:()=>f(`lesson`,{courseId:s,lessonId:g.lessonId}),course:()=>f(`course`,{courseId:s})},y=g?d({relearn:`nextRelearn`,review:`nextReview`,quiz:`nextQuiz`,next:`nextLessonStep`,course:`nextCourse`}[g.kind]):``,b=g?d({relearn:`relearnLesson`,review:`reviewCourse`,quiz:`unitQuiz`,next:`nextLesson`,course:`backToCourse`}[g.kind]):``;return(0,i.jsxs)(`div`,{className:`aha-card aha-summary`,children:[(0,i.jsxs)(`div`,{className:`aha-stars`,role:`img`,"aria-label":d(`starsLabel`,{count:t.stars}),children:[`★`.repeat(t.stars),(0,i.jsx)(`span`,{children:`★`.repeat(3-t.stars)})]}),(0,i.jsx)(`b`,{children:d(`practiceDone`,{correct:t.correct,total:e.items.length})}),(0,i.jsxs)(`div`,{className:`aha-row aha-summaryStats`,children:[(0,i.jsxs)(`span`,{children:[(0,i.jsxs)(`b`,{children:[Math.round(t.accuracy*100),`%`]}),d(`accuracy`)]}),(0,i.jsxs)(`span`,{children:[(0,i.jsx)(`b`,{children:t.bestStreak}),d(`bestStreak`)]})]}),h.length?(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:d(`masteryChange`)}),h.map(e=>(0,i.jsxs)(`div`,{className:`aha-row aha-conceptMove`,children:[(0,i.jsx)(`span`,{style:{flex:1,minWidth:120},children:e.name}),e.before?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`span`,{className:`aha-level`,"data-level":e.before,children:d(Hu[e.before])}),(0,i.jsx)(`span`,{"aria-hidden":`true`,children:`→`})]}):null,(0,i.jsx)(`span`,{className:`aha-level`,"data-level":e.after,children:d(Hu[e.after])}),(0,i.jsxs)(`span`,{className:`aha-hint`,children:[e.percent,`%`]})]},e.id))]}):null,g&&s?(0,i.jsx)(`p`,{children:y}):null,(0,i.jsxs)(`div`,{className:`aha-row`,children:[g&&s?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:_[g.kind],children:b}):null,(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:u,children:d(`retry`)}),s&&g?.kind!==`course`?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:_.course,children:d(`backToCourse`)}):null]})]})}function Vf({courseId:e,deckId:t}){let{api:n,t:a}=v(),o=b(),[s,c]=(0,r.useState)(null),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(!1),[p,m]=(0,r.useState)(null);(0,r.useEffect)(()=>{let r=!0;return(async()=>{try{let i;if(t)i=(await n.call(`items/get`,{kind:`decks`,id:t})).item;else{let t=await n.call(`course/cards`,{courseId:e});i=t.job?(await o.run(null,null,{existing:t.job})).deck:t.deck}if(!r)return;c(i);let a=Date.now(),s=Rf(Object.values(i.srs??{}),a).map(e=>e.id),l=i.cards.filter(e=>!i.srs?.[e.id]).map(e=>e.id);m([...s,...l].slice(0,40))}catch(e){r&&u(e)}})(),()=>{r=!1}},[e,t]);let h=(0,r.useMemo)(()=>s?.cards.find(e=>e.id===p?.[0]),[s,p]);async function g(r){if(h){f(!1),m(e=>{let t=e.slice(1);return r===`again`?[...t,h.id]:t});try{t?await n.call(`items/card-review`,{id:t,cardId:h.id,grade:r}):await n.call(`course/card-review`,{courseId:e,cardId:h.id,grade:r})}catch{}}}return l?(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)($,{error:l})}):!s||!p?(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(kl,{progress:o.progress,label:a(`makingCards`),onCancel:o.running?o.cancel:void 0})}):(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:720},children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:a(`cardsTitle`)}),(0,i.jsx)(`span`,{className:`aha-tag`,children:a(`cardsDue`,{count:p.length})})]}),h?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{className:`aha-flash`,"data-flipped":d,onClick:()=>f(e=>!e),role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&f(e=>!e)},children:(0,i.jsxs)(`div`,{className:`aha-flashInner`,children:[(0,i.jsx)(`div`,{className:`aha-flashFace`,children:(0,i.jsx)(ru,{text:h.front})}),(0,i.jsx)(`div`,{className:`aha-flashFace aha-flashBack`,children:(0,i.jsx)(ru,{text:h.back})})]})}),(0,i.jsxs)(`p`,{className:`aha-hint`,style:{textAlign:`center`},children:[h.tag?`${h.tag} · `:``,a(`flip`)]}),d?(0,i.jsx)(`div`,{className:`aha-row`,style:{justifyContent:`center`},children:[[`again`,`again`],[`hard`,`hard`],[`good`,`good`],[`easy`,`easy`]].map(([e,t])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":e===`good`?`primary`:void 0,onClick:()=>g(e),children:a(t)},e))}):null]}):(0,i.jsx)(Nl,{children:a(`cardsDone`)})]})}function Hf({courseId:e,unitId:t,sheetId:n}){let{api:a,t:o,toast:s}=v(),c=b(),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(null),[p,m]=(0,r.useState)(null),h=async r=>{f(null);try{let i;if(n)i=(await a.call(`items/get`,{kind:`sheets`,id:n})).item.sheet;else{let n=await a.call(`unit/sheet`,{courseId:e,unitId:t,force:r});i=n.job?(await c.run(null,null,{existing:n.job})).sheet:n.sheet}u(i),m(i.layout)}catch(e){f(e)}};(0,r.useEffect)(()=>{h(!1)},[e,t,n]);let g=r=>{let i={...p,...r};m(i),(n?a.call(`items/sheet-layout`,{id:n,layout:i}):a.call(`unit/sheet-layout`,{courseId:e,unitId:t,layout:i})).catch(e=>s(Ml(o,e)))};if(d)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)($,{error:d})});if(!l||!p)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(kl,{progress:c.progress,label:o(`makingSheet`),onCancel:c.running?c.cancel:void 0})});let _=p.order.map(e=>l.sections.find(t=>t.id===e)).filter(Boolean),y=new Set(p.hidden??[]);return(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:1200},children:[(0,i.jsxs)(`div`,{className:`aha-spread aha-noprint`,children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:l.title||o(`sheetTitle`)}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsxs)(`label`,{className:`aha-row`,style:{gap:6},children:[o(`columns`),(0,i.jsx)(`select`,{className:`aha-select`,style:{width:`auto`},value:p.columns,onChange:e=>g({columns:Number(e.currentTarget.value)}),children:[1,2,3,4].map(e=>(0,i.jsx)(`option`,{value:e,children:e},e))})]}),(0,i.jsxs)(`label`,{className:`aha-row`,style:{gap:6},children:[o(`fontSize`),(0,i.jsx)(`select`,{className:`aha-select`,style:{width:`auto`},value:p.fontSize,onChange:e=>g({fontSize:Number(e.currentTarget.value)}),children:[9,10,11,12,13,14,16].map(e=>(0,i.jsx)(`option`,{value:e,children:e},e))})]}),(0,i.jsxs)(`label`,{className:`aha-row`,style:{gap:6},children:[(0,i.jsx)(`input`,{type:`checkbox`,checked:p.highlight,onChange:e=>g({highlight:e.currentTarget.checked})}),o(`highlight`)]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>window.print(),children:o(`print`)}),n?null:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>{u(null),h(!0)},children:o(`regenerate`)})]})]}),(0,i.jsx)(`div`,{className:`aha-row aha-noprint`,style:{gap:6},children:_.map((e,t)=>(0,i.jsxs)(`span`,{className:`aha-chip`,"data-active":!y.has(e.id),children:[(0,i.jsx)(`span`,{onClick:()=>g({hidden:y.has(e.id)?[...y].filter(t=>t!==e.id):[...y,e.id]}),children:e.title}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>{let t=[...p.order],n=t.indexOf(e.id);n>0&&([t[n-1],t[n]]=[t[n],t[n-1]]),g({order:t})},disabled:t===0,children:`↑`})]},e.id))}),(0,i.jsx)(`div`,{className:`aha-printable`,children:(0,i.jsx)(`div`,{className:`aha-sheet`,"data-highlight":p.highlight,style:{columnCount:p.columns,"--sheet-size":`${p.fontSize}px`},children:_.filter(e=>!y.has(e.id)).map(e=>(0,i.jsxs)(`div`,{className:`aha-sheetSection`,children:[(0,i.jsx)(`h4`,{children:e.title}),e.items.map((e,t)=>(0,i.jsxs)(`div`,{className:`aha-sheetItem`,"data-kind":e.kind,children:[e.title?(0,i.jsxs)(`b`,{children:[e.title,`:`]}):null,e.text?(0,i.jsx)(ru,{text:e.text,compact:!0}):null,e.tex?(0,i.jsx)(zs,{tex:e.tex}):null,e.cite?(0,i.jsxs)(`span`,{className:`aha-cite`,children:[`(p.`,e.cite.page,e.cite.source?` · ${e.cite.source}`:``,`)`]}):null]},t)),e.related?.length?(0,i.jsxs)(`div`,{className:`aha-cite`,children:[`↔ `,e.related.join(` · `)]}):null]},e.id))})})]})}function Uf({kind:e,id:t,materialId:n}){let{api:a,t:o}=v(),s=b(),[c,l]=(0,r.useState)(null),[u,d]=(0,r.useState)(null),[f,p]=(0,r.useState)(0);if((0,r.useEffect)(()=>{let r=!0;return(async()=>{try{if(e===`digest`){let{material:e}=await a.call(`material/get`,{id:n}),t=f===0?e.digest:null;if(!t){let e=await a.call(`material/digest`,{id:n});t=(await s.run(null,null,{existing:e.job})).material.digest}r&&l({title:e.title,digest:t});return}let{item:i}=await a.call(`items/get`,{kind:`sheets`,id:t});r&&l({title:i.title,markdown:i.markdown})}catch(e){r&&d(e)}})(),()=>{r=!1}},[e,t,n,f]),e===`quiz`)return(0,i.jsx)(zf,{deckId:t});if(u)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)($,{error:u})});if(!c){let e=s.progress;return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(kl,{progress:e,label:e?.label===`reading`?o(`digestReading`,{done:e.done,total:Math.max(1,e.total-1)}):e?.label===`writing`?o(`digestWriting`):o(`generating`),onCancel:s.running?s.cancel:void 0})})}if(c.markdown!==void 0)return(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:860},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:c.title}),(0,i.jsx)(`div`,{className:`aha-card`,children:(0,i.jsx)(ru,{text:c.markdown})})]});let m=c.digest;return(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:900},children:[(0,i.jsxs)(`h2`,{className:`aha-title`,children:[o(`digestTitle`),` · `,c.title]}),m.missing?.length?(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`span`,{className:`aha-error`,children:o(`digestMissing`,{count:m.missing.length,parts:m.missing.join(`, `)})}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>{l(null),p(e=>e+1)},children:o(`redigest`)})]}):null,(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:o(`overview`)}),(0,i.jsx)(ru,{text:m.overview})]}),m.structure?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:o(`structure`)}),m.structure.map((e,t)=>(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:2},children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`b`,{children:e.heading}),/\d/u.test(e.pages??``)?(0,i.jsxs)(`span`,{className:`aha-cite`,children:[`(p.`,e.pages,`)`]}):null]}),(0,i.jsx)(`ul`,{style:{margin:0},children:e.points.map((e,t)=>(0,i.jsx)(`li`,{children:(0,i.jsx)(ru,{text:e,compact:!0})},t))})]},t))]}):null,m.keyIdeas?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:o(`keyIdeas`)}),(0,i.jsx)(`ul`,{style:{margin:0},children:m.keyIdeas.map((e,t)=>(0,i.jsx)(`li`,{children:(0,i.jsx)(ru,{text:e,compact:!0})},t))})]}):null,m.arguments?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:o(`arguments`)}),m.arguments.map((e,t)=>(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`b`,{children:e.claim}),/\d/u.test(e.page??``)?(0,i.jsxs)(`span`,{className:`aha-cite`,children:[`(p.`,e.page,`)`]}):null,(0,i.jsx)(`p`,{className:`aha-hint`,children:e.support})]},t))]}):null,m.glossary?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:o(`glossary`)}),m.glossary.map((e,t)=>(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`b`,{children:e.term}),`:`,e.meaning]},t))]}):null,m.questions?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:o(`discussion`)}),(0,i.jsx)(`ol`,{style:{margin:0},children:m.questions.map((e,t)=>(0,i.jsx)(`li`,{children:e},t))})]}):null]})}let Wf=[[`home`,`navHome`,`home`],[`courses`,`navCourses`,`courses`],[`assist`,`navAssist`,`assist`],[`materials`,`navMaterials`,`library`],[`studio`,`navStudio`,`studio`],[`shorts`,`navShorts`,`shorts`],[`plan`,`navPlan`,`plan`],[`profile`,`navProfile`,`profile`],[`settings`,`navSettings`,`settings`],[`about`,`navAbout`,`heart`]],Gf={home:gd,courses:Qu,craft:nd,course:Ju,lesson:bf,practice:zf,cards:Vf,sheet:Hf,item:Uf,project:Af,materials:Sf,studio:If,assist:Lu,shorts:Pf,plan:wf,profile:kf,settings:Mf,about:ve},Kf={craft:`courses`,course:`courses`,lesson:`courses`,practice:`courses`,project:`courses`,cards:`studio`,sheet:`studio`,item:`studio`};function qf(e){let[t,n]=(0,r.useState)(0);return(0,i.jsx)(s,{onError:de,fallback:({error:t})=>(0,i.jsx)(`div`,{className:`aha`,children:(0,i.jsx)(`main`,{className:`aha-main`,children:(0,i.jsx)(l,{t:e.t,error:t,onHome:()=>n(e=>e+1)})})}),children:(0,i.jsx)(Jf,{...e})},t)}function Jf({rpc:e,t,language:n,dsh:a}){let{route:o,setRoute:c,crashed:u}=ue(),d=(0,r.useRef)([]),f=(0,r.useCallback)((e,t={},{replace:n=!1}={})=>{c(r=>(n||(d.current.push(r),d.current.length>40&&d.current.shift()),{screen:e,params:t}))},[c]),p=(0,r.useCallback)(()=>{let e=d.current.pop();c(e??{screen:`home`,params:{}})},[c]);(0,r.useEffect)(()=>{let e=e=>{let t=e.detail;t?.screen&&Gf[t.screen]&&f(t.screen,t.params??{})};return window.addEventListener(A,e),()=>window.removeEventListener(A,e)},[f]);let{value:m,toastText:h}=ce({rpc:e,t,language:n,dsh:a,navigate:f,back:p}),g=Gf[o.screen]??gd,v=Kf[o.screen]??o.screen,y=e=>{d.current=[],c({screen:e,params:{}})};return(0,i.jsx)(_.Provider,{value:m,children:(0,i.jsxs)(`div`,{className:`aha`,children:[(0,i.jsxs)(`nav`,{className:`aha-nav`,children:[(0,i.jsxs)(`div`,{className:`aha-brand`,children:[(0,i.jsx)(me,{name:`logo`,size:24}),(0,i.jsxs)(`span`,{children:[t(`appName`),(0,i.jsx)(`small`,{children:t(`appTagline`)})]})]}),Wf.map(([e,n,r])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-navItem`,"data-active":v===e,onClick:()=>y(e),title:t(n),children:[(0,i.jsx)(me,{name:r,size:17}),(0,i.jsx)(`span`,{children:t(n)})]},e))]}),(0,i.jsx)(`main`,{className:`aha-main`,children:(0,i.jsx)(s,{resetKey:o,onError:u,fallback:({error:e})=>(0,i.jsx)(l,{t,error:e,onRetry:()=>c(e=>({...e})),onHome:()=>y(`home`)}),children:(0,i.jsx)(g,{...o.params},`${o.screen}:${JSON.stringify(o.params)}`)})}),h?(0,i.jsx)(`div`,{className:`aha-toast`,role:`status`,children:h}):null]})})}function Yf({useTabInfo:e,rpc:t,t:n,language:r,dsh:a}){let{tab:o}=e(),c=o?.navigation?.params??null,{value:u}=ce({rpc:t,t:n,language:r,dsh:a});return(0,i.jsx)(_.Provider,{value:u,children:(0,i.jsx)(`div`,{className:`aha aha-tab`,style:{height:`100%`,overflow:`auto`,padding:`10px 12px`},children:c?.threadId?(0,i.jsx)(s,{fallback:({error:e,retry:t})=>(0,i.jsx)(l,{t:n,error:e,place:`tab`,onRetry:t}),children:(0,i.jsx)(Xf,{threadId:c.threadId,jobId:c.jobId})},`${c.threadId}:${o.navigation.revision??0}`):(0,i.jsx)(`p`,{className:`aha-hint`,children:n(`openBoard`)})})})}function Xf({threadId:e,jobId:t}){let{api:n,t:a}=v(),[o,s]=(0,r.useState)(null);return(0,r.useEffect)(()=>{let r=!0;return(async()=>{let i=t?await n.call(`job/get`,{id:t}).catch(()=>null):null;if(i&&i.status===`running`){r&&s({stream:i,steps:[],title:``});return}try{let{item:t}=await n.call(`items/get`,{kind:`assist`,id:e}),i=t.turns.at(-1);r&&s({stream:null,steps:i?.board?.steps??[],title:t.title,language:t.language,turn:t.turns.length-1})}catch(e){r&&s({error:e})}})(),()=>{r=!1}},[e,t]),o?o.error?(0,i.jsx)(`p`,{className:`aha-error`,children:Ml(a,o.error)}):(0,i.jsx)(Fu,{scope:{kind:`thread`,id:e,turn:o.turn??0},title:o.title||a(`boardSession`),steps:o.steps,stream:o.stream,language:o.language,recordChecks:!1}):(0,i.jsx)(Dl,{label:a(`loading`)})}function Zf({rpc:e,t,language:n,dsh:r}){return ce({rpc:e,t,language:n,dsh:r}).value}function Qf(e){return e?.meta&&typeof e.meta==`object`?e.meta:null}function $f(e){let t=Zf(e);return(0,i.jsx)(_.Provider,{value:t,children:(0,i.jsx)(`div`,{className:`aha aha-card`,style:{height:`auto`,display:`flex`,flexDirection:`column`,gap:8,margin:`6px 0`,padding:`10px 12px`},children:(0,i.jsx)(s,{fallback:({error:t,retry:n})=>(0,i.jsx)(l,{t:e.t,error:t,place:`card`,onRetry:n}),children:(0,i.jsx)(ep,{...e})})})})}function ep({toolName:e,phase:t,block:n,dsh:a,inputActions:o,t:s,callId:c}){let l=Qf(n),u=n?.args?.text?.(`topic`)??n?.args?.text?.(`goal`)??``,d=t!==`result`,f=t===`result`&&n?.isError;return(0,r.useEffect)(()=>{if(e!==`aha_whiteboard`||t!==`result`||!l?.threadId)return;let r=typeof n?.time!=`number`||Date.now()-n.time<12e4,i=`aha-tutor:opened:${c}`;try{if(!r||window.sessionStorage.getItem(i))return;window.sessionStorage.setItem(i,`1`)}catch{if(!r)return}a.openBoardTab({threadId:l.threadId,jobId:l.jobId})},[e,t,l?.threadId]),f?(0,i.jsx)(`span`,{className:`aha-error`,children:s(`errorGeneric`,{message:(n.content??[]).map(e=>e.text??``).join(` `).slice(0,200)})}):e===`aha_whiteboard`?(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:8},children:[d?(0,i.jsx)(`span`,{className:`aha-spinner`}):`🧑🏫`,(0,i.jsx)(`b`,{children:s(`toolBoardTitle`)}),(0,i.jsx)(`span`,{className:`aha-hint`,children:l?.title??u})]}),l?.threadId?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>a.openBoardTab({threadId:l.threadId,jobId:l.jobId}),children:s(`openBoard`)}):null]}):e===`aha_quiz`?d||!l?.items?(0,i.jsxs)(`span`,{className:`aha-row`,children:[(0,i.jsx)(`span`,{className:`aha-spinner`}),s(`makingPractice`)]}):(0,i.jsx)(tp,{items:l.items,topic:l.topic,inputActions:o}):e===`aha_course`?(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:8},children:[d?(0,i.jsx)(`span`,{className:`aha-spinner`}):`🎓`,(0,i.jsx)(`b`,{children:s(`modeCourse`)}),(0,i.jsx)(`span`,{className:`aha-hint`,children:l?.goal??u})]}),l?.courseId?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>fe(a,`craft`,{courseId:l.courseId}),children:s(`open`)}):null]}):e===`aha_cheatsheet`?(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:8},children:[d?(0,i.jsx)(`span`,{className:`aha-spinner`}):`📄`,(0,i.jsx)(`b`,{children:s(`sheetTitle`)}),(0,i.jsx)(`span`,{className:`aha-hint`,children:l?.title??u})]}),l?.sheetId?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>fe(a,`sheet`,{sheetId:l.sheetId}),children:s(`open`)}):null]}):(0,i.jsxs)(`span`,{className:`aha-hint`,children:[d?(0,i.jsx)(`span`,{className:`aha-spinner`}):`🧠`,` `,s(`navProfile`)]})}function tp({items:e,topic:t,inputActions:n}){let{t:a,language:o}=v(),[s,c]=(0,r.useState)(0),[l,u]=(0,r.useState)([]),d=e[s],f=(0,r.useMemo)(()=>l.map((e,t)=>`${t+1}. ${e.correct?`✔`:e.partial?`◐`:`✘`} ${e.answer}`).join(`
|
|
622
|
-
`),[l]);if(!d){let r=l.filter(e=>e.correct).length;return(0,i.jsxs)(`div`,{className:`aha-col`,children:[(0,i.jsx)(`b`,{children:a(`practiceDone`,{correct:r,total:e.length})}),n?.setDraft?(0,i.jsx)(`div`,{children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,"data-size":`sm`,onClick:()=>n.setDraft(`${t??``} ${a(`practiceDone`,{correct:r,total:e.length})}\n${f}`),children:a(`submit`)})}):null]})}return(0,i.jsxs)(`div`,{className:`aha-col`,children:[(0,i.jsxs)(`span`,{className:`aha-hint`,children:[a(`checkTitle`),` · `,s+1,`/`,e.length]}),(0,i.jsx)(wu,{item:d,language:o===`zh`?`zh-CN`:`en`,compact:!0,onResult:e=>u(t=>[...t,{...e,answer:d.prompt.slice(0,60)}]),onContinue:()=>c(e=>e+1)},s)]})}let np=`ahaTutor`,rp={appName:`开窍`,appTagline:`AI 私人老师`,navHome:`首页`,navCourses:`我的课程`,navMaterials:`资料库`,navStudio:`学习工具`,navAssist:`即时答疑`,navShorts:`讲解短片`,navPlan:`学习计划`,navProfile:`我的画像`,navSettings:`设置`,navAbout:`关于作者`,heroTitle:`今天想把什么弄懂?`,heroHint:`说出你想学的东西,或者丢一本教材进来。我会先了解你,再为你量身做一门课,在白板上一步步讲给你听。`,heroPlaceholder:`比如:三周内搞懂线性代数里的特征值|把这份讲义变成一门课|量子隧穿到底是怎么回事`,modeCourse:`定制一门课`,modeExplain:`讲个概念`,modeSolve:`陪我解题`,modeVisualize:`画出来看看`,modeDigest:`消化长文档`,modeShort:`两分钟短片`,attach:`添加资料`,attached:`已附 {count} 份资料`,start:`开始`,quickStart:`跳过提问,直接出课`,continueLearning:`继续学习`,todayPlan:`今天的安排`,noPlanToday:`今天没有安排,去建一门课或者休息一下吧。`,recentWork:`最近做的`,sampleCourses:`示例课程`,sampleHint:`不花 token 也能先体验白板课堂。`,importSample:`加入我的课程`,coursesTitle:`我的课程`,filterAll:`全部`,filterActive:`学习中`,filterDone:`已学完`,filterArchived:`已归档`,searchCourses:`搜索课程`,noCourses:`还没有课程。回到首页,告诉我你想学什么。`,importPack:`导入课程包`,lessonsCount:`{done}/{total} 讲`,minutesLeft:`还剩约 {minutes} 分钟`,statusIntake:`待回答问题`,statusBlueprint:`待确认蓝图`,statusReady:`可以学习`,nextUp:`下一讲:{title}`,craftQuestionsTitle:`先认识一下你`,craftQuestionsHint:`回答几个问题,课程会按你的情况来设计。拿不准的可以跳过。`,craftOther:`其他(自己写)`,craftPace:`学习节奏`,paceIntensive:`冲刺`,paceIntensiveHint:`约 6 周,抓重点`,paceBalanced:`稳步`,paceBalancedHint:`约 3 个月,基础 + 练习 + 项目`,paceRelaxed:`不设期限`,paceRelaxedHint:`慢慢来,挖得更深`,weeklyMinutes:`每周大约能学多久`,minutesUnit:`{minutes} 分钟`,deadline:`截止日期(可选)`,makeBlueprint:`生成课程蓝图`,thinkingQuestions:`正在想该问你什么…`,designingBlueprint:`正在设计课程蓝图…`,blueprintTitle:`课程蓝图`,blueprintHint:`这是为你设计的课程结构。可以直接改标题、删减或调整顺序,也可以用一句话让我改。`,reviseLabel:`用一句话修改`,revisePlaceholder:`比如:多加一些编程实战;第二单元讲浅一点;去掉第 3 讲`,revise:`修改`,revising:`正在修改…`,addLesson:`加一讲`,addLecture:`加一章`,addUnit:`加一个单元`,moveUp:`上移`,moveDown:`下移`,remove:`删除`,projects:`实战项目`,confirmCourse:`确认,生成整门课`,confirming:`正在准备练习和项目… {done}/{total}`,courseReady:`课程已就绪`,unitN:`第 {n} 单元`,lectureN:`第 {n} 章`,estMinutes:`{minutes} 分钟`,saveEdits:`保存修改`,saved:`已保存`,tabOutline:`大纲`,tabPractice:`练习与测验`,tabSheets:`速查表`,tabCards:`闪卡`,tabProjects:`项目`,tabProgress:`进度`,learn:`学习`,practice:`练习`,review:`复习`,remedial:`巩固`,exportPack:`导出课程包`,exportWithProgress:`连同我的学习进度`,rename:`重命名`,archive:`归档`,unarchive:`取消归档`,deleteCourse:`删除课程`,deleteConfirm:`删除后无法恢复。确定删除「{title}」吗?`,cancel:`取消`,confirm:`确定`,close:`关闭`,back:`返回`,retry:`重试`,generate:`生成`,regenerate:`重新生成`,generating:`正在生成…`,open:`打开`,unitQuiz:`单元测验`,unitSheet:`单元速查表`,mastery:`掌握度`,conceptMastery:`知识点掌握情况`,preparingLesson:`老师正在备课…`,bufferingLesson:`下一部分马上写好…`,play:`播放`,pause:`暂停`,prevStep:`上一步`,nextStep:`下一步`,speed:`语速`,voiceOn:`声音开`,voiceOff:`静音`,voiceDownCloud:`云端语音用不了:{reason}这节课先静音往下讲。`,voiceDownSystem:`朗读用不了:{reason}这节课先静音往下讲。`,openSettings:`去设置`,captions:`字幕`,raiseHand:`举手提问`,askPlaceholder:`哪里没听懂?直接问`,ask:`提问`,answering:`老师在想怎么回答…`,reexplain:`换个讲法`,styleAnalogy:`打个比方`,styleVisual:`画图讲`,styleExample:`举个例子`,styleSimpler:`讲简单点`,styleDeeper:`讲深一点`,stepOf:`第 {current}/{total} 步`,checkTitle:`小测一下`,confidence:`你有多确定?`,confSure:`很确定`,confUnsure:`有点犹豫`,confGuess:`猜的`,submit:`提交`,correct:`答对了`,incorrect:`不太对`,partial:`部分正确`,continue:`继续`,skip:`跳过`,hint:`提示`,yourAnswer:`你的答案`,grading:`老师在批改…`,lessonDone:`这一讲讲完了`,selfRate:`你觉得自己掌握得怎么样?`,rate1:`没懂`,rate3:`一般`,rate5:`很清楚`,nextLesson:`下一讲`,doPractice:`去做练习`,backToCourse:`回到课程`,remedialAdded:`我给你加了一节巩固课:{title}`,challengeNote:`这部分你掌握得很好,接下来会讲得更深一些。`,replay:`重新讲一遍`,regenerateLesson:`重新备课`,exportBoard:`导出板书`,practiceTitle:`练习`,check:`检查答案`,checked:`已检查`,score:`得分 {score}`,practiceDone:`本组练习完成:答对 {correct}/{total}`,showExplanation:`看解析`,makingPractice:`正在出题…`,cardsTitle:`闪卡`,cardsDue:`待复习 {count} 张`,flip:`点击翻面`,again:`忘了`,hard:`困难`,good:`记得`,easy:`简单`,cardsDone:`这一轮复习完成了!`,makingCards:`正在制作闪卡…`,sheetTitle:`速查表`,columns:`列数`,fontSize:`字号`,highlight:`高亮重点`,print:`打印`,hideSection:`隐藏`,showSection:`显示`,makingSheet:`正在整理速查表…`,projectBrief:`项目说明`,milestones:`里程碑`,rubric:`评分标准`,openWorkspace:`打开项目工作区`,openingWorkspace:`正在准备项目文件夹…`,workspaceReady:`项目文件夹在:{path}`,workspaceSession:`已在 DSH 中打开项目会话`,workspaceManual:`在 DSH 里把这个文件夹添加为工作区,就能让编程 Agent 陪你完成项目。`,copyPath:`复制路径`,submitProject:`提交作品`,submitNotes:`写点说明(做了什么、遇到的问题)`,includeFiles:`同时提交项目文件夹里的文件`,reviewing:`老师在看你的作品…`,reviewTotal:`总分 {total}/{max}`,strengths:`做得好的地方`,nextSteps:`可以改进的地方`,submissions:`历次提交`,materialsTitle:`资料库`,materialsHint:`上传教材、讲义、论文或网页,用来建课、做速查表和闪卡,讲课时也会引用原文页码。`,uploadFiles:`上传文件`,dropHere:`把文件拖到这里(PDF、Word、PPT、Markdown、文本、图片)`,addUrl:`添加网页`,urlPlaceholder:`https://…`,reading:`正在读取…`,pages:`{count} 页`,slides:`{count} 张幻灯片`,makeCourse:`用它建课`,makeSheet:`速查表`,makeCards:`闪卡`,makeNotes:`笔记`,makeQuiz:`测验`,digest:`消化`,digestTitle:`文档消化`,overview:`概要`,structure:`结构`,keyIdeas:`核心观点`,arguments:`论点与论据`,glossary:`术语表`,discussion:`值得思考的问题`,imageNeedsVision:`图片需要支持识图的模型才能读取。`,noMaterials:`资料库是空的。`,studioTitle:`学习工具`,studioHint:`用资料库里的资料一键生成学习材料。`,pickMaterials:`选择资料`,sheets:`速查表`,notes:`笔记`,decks:`闪卡组`,quizzes:`测验`,focusPlaceholder:`重点(可选),比如:期中考试范围第 3–6 章`,assistTitle:`即时答疑`,assistHint:`不用建课,有问题直接问。老师会在白板上讲给你听。`,assistPlaceholder:`想问什么?可以贴题目、概念或附上资料`,followUp:`继续追问`,history:`历史记录`,newThread:`新的问题`,shortsTitle:`讲解短片`,shortsHint:`输入一个主题或贴一个网址,生成一段约两分钟、能分享的白板讲解。`,topicPlaceholder:`比如:为什么天空是蓝色的`,makeShort:`生成短片`,exportVideo:`导出视频`,exporting:`正在录制视频…{percent}%`,exportNeedsCloud:`浏览器语音无法录进视频,导出的视频会带字幕但没有声音。在设置里配置云端语音即可导出有声版。`,exportUnsupported:`当前环境不支持导出视频。`,planTitle:`学习计划`,planHint:`根据你所有在学的课程、每周时间和截止日期自动排课,并留出复习时间。`,studyDays:`学习日`,weekdays:`日,一,二,三,四,五,六`,exams:`考试与截止日期`,addExam:`添加`,examTitle:`名称`,examDay:`日期`,deadlineRisk:`「{course}」按现在的节奏会在 {finish} 学完,晚于截止日期 {deadline}。建议每周提高到约 {minutes} 分钟。`,startReview:`开始复习`,reviewDue:`有 {count} 个知识点该复习了`,nothingToReview:`暂时没有要复习的内容。`,savePlan:`保存`,lessonItem:`学习`,reviewItem:`复习`,examItem:`考试`,today:`今天`,profileTitle:`我的画像`,profileHint:`老师会记住这些信息,让每门课都更贴合你。你可以随时修改或清空。`,background:`背景`,goals:`目标`,strengthsLabel:`擅长`,weaknesses:`薄弱点`,learningStyle:`喜欢的讲解方式`,memoryNotes:`老师的备忘`,clearProfile:`清空画像`,clearProfileConfirm:`清空后老师会忘记你的背景和偏好。确定吗?`,onePerLine:`每行一条`,settingsTitle:`设置`,modelsTitle:`模型`,teachModel:`出课与讲课`,quickModel:`批改与问答`,followDefault:`跟随 DSH 默认模型`,modelsHint:`讲课质量主要取决于「出课与讲课」模型;批改和课堂提问可以用更快的模型。`,voiceTitle:`语音讲解`,engine:`语音来源`,engineBrowser:`系统语音(免费)`,engineCloud:`云端语音`,engineOff:`不朗读`,browserVoice:`系统音色`,autoVoice:`自动选择`,noVoiceForLanguage:`没有找到适合当前语言的系统音色。可以在系统设置里安装中文语音,或改用云端语音。`,cloudProvider:`云端服务`,providerOpenai:`OpenAI 兼容接口`,providerVolcengine:`火山引擎(豆包语音)`,providerMinimax:`MiniMax`,providerAzure:`Azure 语音`,field_baseUrl:`接口地址`,field_model:`模型`,field_voice:`音色`,field_appId:`App ID`,field_cluster:`Cluster`,field_groupId:`Group ID`,field_region:`区域`,field_apiKey:`密钥`,keySaved:`已保存密钥`,keyMissing:`未保存密钥`,saveKey:`保存密钥`,clearKey:`清除密钥`,testVoice:`试听`,testSentence:`你好,我是你的私人老师。我们一起把难的东西弄懂。`,voiceRate:`默认语速`,boardTheme:`白板外观`,themeAuto:`跟随系统`,themeLight:`白板`,themeDark:`黑板`,versionTitle:`插件版本`,versionCurrent:`当前版本`,versionLatest:`最新版本`,versionCheck:`检查更新`,versionChecking:`正在检查…`,versionFailed:`无法检查最新版本。`,versionUpToDate:`已是最新版本。`,versionAvailable:`发现新版本 v{version}。`,versionLinked:`当前是本地开发安装,请在插件仓库拉取最新代码并重新构建。`,versionManual:`没找到这个插件所在的 profile,请到 DSH 插件页按精确版本安装:dsh-aha-tutor@{version}。`,versionUpdate:`更新插件`,versionUpdating:`正在更新…`,versionUpdateFailed:`更新失败,请稍后重试,或到 DSH 插件页按精确版本手动安装。`,versionPending:`v{version} 刚发布不久,DSH 的 pnpm 要等过了发布冷却期才会安装,请稍后再试。`,versionPendingUntil:`v{version} 刚发布不久,DSH 的 pnpm 要等过了发布冷却期才会安装,{time} 之后可以更新。`,versionUpdated:`已更新到 v{version}。请完全退出并重新打开 DSH 桌面版,新版本才会生效(只刷新页面不够)。`,privacyNote:`课程、进度和资料都只保存在这台电脑的 DSH 数据目录里。`,aboutTitle:`关于作者`,aboutRole:`「开窍 · AI 私人老师」的作者`,aboutIntro:`开窍免费开源,赞赏全凭心意。如果它帮你弄懂了某个卡了很久的知识点,欢迎扫码支持,让小窍继续长大。`,aboutRepo:`GitHub 仓库`,aboutIssues:`问题反馈`,aboutSupport:`支持作者`,aboutWechat:`微信赞赏`,aboutAlipay:`支付宝`,aboutScan:`用手机扫一扫上面的码`,errorGeneric:`出了点问题:{message}`,crashPage:`这一页出了点问题,没能显示出来。`,crashPageHint:`可以重试一次,或者先回到首页。`,crashPart:`这部分内容出了点问题,没能显示出来。`,backHome:`回到首页`,loading:`加载中…`,empty:`这里还什么都没有。`,copied:`已复制`,minutes:`分钟`,untitled:`未命名`,delete:`删除`,edit:`编辑`,save:`保存`,all:`全部`,mode:`模式`,boardSession:`白板讲解`,toolBoardTitle:`老师在白板上讲解`,openBoard:`打开白板`,panelLabel:`开窍 · AI 私人老师`,copyCode:`复制`,footnotes:`脚注`,"err_llm-auth":`模型未登录或密钥无效,请在 DSH 设置里检查模型服务。`,"err_llm-quota":`模型额度不足或请求太频繁,稍后再试。`,"err_llm-context":`资料太长,超出了模型的上下文。少选一些资料,或换一个上下文更大的模型。`,"err_llm-unavailable":`所选模型不可用,请在开窍设置里换一个模型。`,"err_llm-timeout":`模型响应超时,请重试。`,"err_bad-output":`模型这次没给出可用的结果,请重试,或在设置里换一个更强的模型。`,boardView:`板书视图`,viewCanvas:`画布`,viewPages:`分页`,boardViewHint:`画布:整讲的板书从上到下排在一张画布上,可以拖动、缩放,讲课时自动跟着老师写的地方。分页:一次看一页,用右上角的页码翻页。`,canvasTools:`画布缩放`,canvasHelp:`拖动或滚动来移动,按住 Ctrl/⌘ 滚动或双指捏合来缩放,双击某一页放大到这一页`,canvasZoomIn:`放大`,canvasZoomOut:`缩小`,canvasZoomReset:`回到 100%(铺满宽度)`,canvasFit:`看全貌:缩小到能看到所有页`,canvasFitShort:`全貌`,canvasFollow:`回到老师这里`,canvasPage:`第 {n} 页`,voiceAsk:`说出问题`,voiceAskWith:`说出问题(麦克风:{name})`,voiceStop:`停止录音`,voiceSetup:`语音提问需要先在 DSH 里启用「语音输入」`,voiceWorking:`识别中…`,voice_off:`语音提问用的是 DSH 的实验功能「语音输入」:在 DSH 的插件管理里启用「语音输入」,在它的详情里点「下载并准备」,准备好后再点这里。`,voice_unprepared:`语音识别模型还没准备好:在 DSH 插件管理的「语音输入」详情里点「下载并准备」(约 240 MB),准备好后再点这里。`,voice_preparing:`语音识别模型正在准备,好了以后再点这里。进度在 DSH 插件管理的「语音输入」详情里。`,voice_failed:`语音识别模型没有准备成功:到 DSH 插件管理的「语音输入」详情里重试。`,"err_speech-off":`DSH 的「语音输入」没有启用:在 DSH 的插件管理里启用它并下载准备模型。`,"err_speech-unprepared":`语音识别模型还没准备好:在 DSH 插件管理的「语音输入」详情里点「下载并准备」。`,"err_speech-audio":`这段录音没法读取,请再录一次。`,"err_speech-too-long":`录音太长了,一次最多 2 分钟。`,"err_speech-failed":`语音识别出错了,请再试一次。`,"err_speech-empty":`没听到说话,请离麦克风近一点再说一次。`,"err_mic-denied":`没有麦克风权限:请在浏览器或系统设置里允许 DSH 使用麦克风。`,"err_mic-missing":`没有找到麦克风。`,"err_mic-chosen-missing":`DSH「语音输入」里选的麦克风现在用不了:插上它,或到 DSH 插件管理的「语音输入」详情里换一个。`,micChosenMissing:`DSH「语音输入」里选的麦克风「{name}」现在用不了:插上它,或到 DSH 插件管理的「语音输入」详情里换一个。`,"err_mic-busy":`麦克风正被别的程序占用。`,"err_mic-unsupported":`这里没法录音。`,prepThinking:`构思`,prepWriting:`写板书`,prepStarting:`正在联系模型…`,prepThinkingDetail:`老师在想这一讲怎么讲,已构思 {chars} 字`,prepStep:`正在写第 {n} 步`,prepCounts:`已写好 {steps} 步 · 共 {chars} 字`,prepSeconds:`已用 {seconds} 秒`,dayLabel:`{month} 月 {day} 日 · 周{weekday}`,exportPdf:`PDF 文档(一页一张板书)`,exportPng:`PNG 图片(每页一张)`,exportMarkdown:`Markdown 文本`,exportingBoard:`正在导出板书…{done}/{total}`,animationStill:`动画(在课堂里播放)`,monthLabel:`{year} 年 {month} 月`,prevMonth:`上个月`,nextMonth:`下个月`,markDone:`标记为已完成`,unmarkDone:`取消完成`,checkedAuto:`已在课程里完成`,dayEmpty:`这天没有安排。`,webResearch:`联网查资料`,webResearchHint:`建课前先用 DSH 的网页搜索查一查这个主题,出题和设计课程时参考`,researching:`正在联网查资料…`,researchFound:`参考了 {count} 个网上来源`,researchSkipped:`未联网检索:{reason}`,"researchSkipped_no-credential":`DSH 还没有配置 DeepSeek 密钥,网页搜索要用它`,researchSkipped_unavailable:`这个 DSH 没有可用的网页搜索`,researchSkipped_failed:`搜索出错了`,researchSkipped_empty:`没有搜到合适的资料`,courseSources:`参考来源`,buildResearch:`参考 {count} 个网上来源`,"err_llm-empty":`模型这次没有返回内容,请重试。如果一直这样,可以在开窍设置里换一个模型。`,"err_llm-failed":`调用模型出错了,请稍后重试。`,nextStepTitle:`下一步`,nextStepReview:`有 {count} 个知识点到了复习的时候`,nextStepWeak:`「{concept}」还比较薄弱,先练一练`,nextStepLesson:`接着学「{title}」`,nextStepDone:`这门课都学完了,做一次单元测验检验一下吧`,practiceThis:`练习这一讲`,streakCount:`连对 {count}`,keysHint:`键盘:1–4 选择 · Enter 提交或继续 · H 看提示`,starsLabel:`{count} 颗星`,accuracy:`正确率`,bestStreak:`最长连对`,masteryChange:`这一轮之后的掌握程度`,stageNone:`未开始`,stageWeak:`薄弱`,stageLearning:`学习中`,stageProficient:`熟练`,stageMastered:`掌握`,nextRelearn:`有几个点还没吃透,回到这一讲再听一遍会更稳。`,nextReview:`基本会了,但还不够牢,复习一轮会记得更久。`,nextQuiz:`掌握得很扎实,可以挑战单元测验了。`,nextLessonStep:`可以继续往下学了。`,nextCourse:`这一部分练完了。`,relearnLesson:`回到这一讲`,reviewCourse:`复习这门课`,editOutline:`编辑课程大纲`,saveAndBack:`保存并返回`,extendCourse:`让老师续写一个单元`,extendInstruction:`在课程最后再加一个单元:承接已有内容,往前推进一步,保持同样的难度梯度;已有的单元保持不变。`,proposalTitle:`老师的修改建议`,proposalNoChange:`这次修改没有改动任何一讲。`,applyProposal:`应用修改`,discardProposal:`放弃`,proposalApplied:`已应用修改`,diffAdded:`新增`,diffRemoved:`删除`,diffRenamed:`改名`,diffChanged:`调整`,diffUnit:`单元「{title}」`,reworkLesson:`让老师改这一讲`,splitLesson:`拆成两讲`,deepenLesson:`讲深一些`,splitDone:`已拆成两讲,记得保存`,deepenDone:`已改得更深,记得保存`,confirmRemoveUnit:`删除单元「{title}」和其中所有的课?`,confirmRemoveLecture:`删除「{title}」和其中所有的课?`,confirmRemoveStarted:`「{title}」已经开始学了,删除后这一讲的板书和进度都不再显示。确定删除?`,craftSize:`课程规模`,sizeAuto:`让老师决定`,sizeAutoHint:`按你的目标定,一个小问题可能只要一两讲`,sizeShort:`精简`,sizeShortHint:`3–8 讲,抓住最关键的部分`,sizeStandard:`标准`,sizeStandardHint:`10–20 讲,基础、练习加一个应用项目`,sizeFull:`完整`,sizeFullHint:`25–45 讲,系统深入,留出拓展的空间`,buildAnswers:`整理你的回答`,buildMaterials:`阅读你的资料`,buildUnits:`规划单元`,buildLessons:`写每一讲`,buildLessonsSoFar:`写每一讲:已写好 {count} 讲`,workPlaceholder:`一步一行写出你的过程,公式写在 $…$ 里,例如 $x^2+6x+9=(x+3)^2$`,workPreview:`公式预览`,wrongStep:`出错的一步`,fixedStep:`应该写成`,correction:`订正`,correctionOf:`订正:{tag}`,correcting:`老师在板上订正…`,seeCorrection:`看老师订正`,challenge:`这一步不对?`,challengeLabel:`这一步不对?`,challengeTitle:`这一步哪里不对?(可以不填)`,challengeTitleStep:`第 {n} 步哪里不对?(可以不填)「{text}」`,challengePlaceholder:`比如:5 cm 是不是应该换成 0.05 m?`,challengeHint:`老师会先仔细算一遍,要等十几秒到半分钟。`,challengeSend:`请老师核对`,challengeLine:`不对?`,challengeStep:`第 {n} 步不对?`,checkingStep:`老师在仔细核对这一步…`,challenge_wrong:`确实有错,已更正`,challenge_right:`核对过,没有错`,challenge_unclear:`要看约定`,fixed:`已更正`,fixedWas:`原来写的是:{was}`,itemChallenge:`这题有问题?`,itemChallengeTitle:`这题哪里不对?(可以不填)`,itemChallengePlaceholder:`比如:我觉得 B 也对;或者:答案的单位是不是错了?`,itemChallengeHint:`老师会先仔细算一遍,要等几秒到半分钟,你可以先做下一题。`,itemChecking:`老师在仔细核对这道题…`,itemCheckTitle:`老师核对`,itemCheck_wrong:`确实有错,已更正`,itemCheck_unclear:`题目没说清楚,已补充`,itemCheck_misgraded:`判分有误,已重新判`,itemCheck_right:`核对过,没有错`,regraded:`(重新判过)`,itemCheckDone:`第 {n} 题核对完了:{verdict}。`,itemCheckRegraded:`已按核对结果重新判分。`,itemCheckFailedNotice:`第 {n} 题没核对成功:{message}`,fixedWasItem:`原来写的:`,fixedPart_prompt:`题目:{text}`,fixedPart_option:`选项 {id}:{text}`,fixedPart_answer:`答案:{text}`,fixedPart_unit:`单位:{text}`,fixedPart_tolerance:`允许误差:{text}`,fixedPart_explanation:`解析:{text}`,fixedPart_hints:`提示:{text}`,fixedPart_rubric:`评分要点:{text}`,fixedPart_figure:`图也重画了`,lessonGoals:`课堂要点`,transcript:`讲解记录`,showPanel:`讲解记录`,hidePanel:`收起侧栏`,panelTitle:`课堂侧栏`,boardFont:`板书字体`,fontHand:`手写体`,fontStandard:`标准体`,digestMissing:`有 {count} 部分没读成功({parts}),下面的结果不含这些内容。`,redigest:`重新消化`,revisingSoFar:`正在修改…已写好 {count} 节课`,"err_bad-url":`这个网址不能导入:只支持公开网站的 http 或 https 地址,不支持本机、局域网和带账号密码的地址。`,err_network:`网页打不开或加载超时,请检查网址后重试。`,err_http:`网页返回了错误,没能导入。`,blueprintSoFar:`正在设计课程蓝图…已写好 {count} 节课`,reexplainedAs:`换个讲法:{style}`,digestReading:`正在通读全文:已读 {done}/{total} 部分`,digestWriting:`正在汇总全文要点`,keepsRunning:`可以先离开这一页,生成会在后台继续。`,err_cancelled:`已取消。`,courseCreatedInChat:`课程「{title}」已创建,可以在「开窍」里继续。`,err_failed:`出了点问题,请稍后再试。`,err_invalid:`这个请求没法处理。请刷新页面后再试;如果还是这样,请退出并重新打开 DSH。`,"err_not-found":`找不到这项内容,它可能已经被删除了。`,err_forbidden:`没有权限做这件事。`,"err_unknown-endpoint":`插件刚更新过,请退出并重新打开 DSH 后再试。`,err_aborted:`上传中断了,请重试。`,err_connection:`连不上 DSH,请确认它还开着,然后重试。`,err_missing:`这项任务找不到了,可能是 DSH 重启过,请重试。`,"err_llm-missing":`还没有可用的模型,请先在 DSH 设置里配置一个模型服务。`,"err_no-board":`板书还没写好,等第一步出来再试。`,"err_empty-question":`先写下你的问题。`,"err_empty-goal":`先说说你想学什么,或者添加一份资料。`,"err_empty-change":`先写下你想怎么改。`,"err_no-blueprint":`还没有课程蓝图,请先生成蓝图。`,"err_no-proposal":`没有待确认的修改,它可能已经应用或放弃了。`,"err_bad-pack":`这个文件不是能导入的课程包。`,"err_pack-too-large":`这个课程包太大了,导入不了。`,"err_pack-too-new":`这个课程包是新版开窍导出的,请先更新插件再导入。`,"err_nothing-to-review":`还没有可以评阅的内容:先写几句说明,或在项目文件夹里做些修改。`,"err_cannot-tick":`只能勾选今天或之前的学习项。`,"err_exam-incomplete":`考试需要填写名称和日期。`,"err_no-material":`先选至少一份资料。`,"err_material-no-text":`所选资料里没有可读的文字,图片和扫描版 PDF 读不出文字。`,"err_empty-topic":`先写下一个主题,或者填一个网址。`,"err_no-credentials":`这个 DSH 配置里用不了凭据存储,没法保存密钥。`,"err_bad-key":`密钥格式不对:应为 8–1024 个英文字母、数字或符号,不能有空格。`,err_unsupported:`不支持这种文件。可以上传 PDF、Word、PowerPoint、图片,或 .md、.txt、.csv 这类文本文件。`,"err_old-office":`不支持旧版 .doc/.ppt 文件,请另存为 .docx/.pptx 后再上传。`,err_encrypted:`这个 PDF 有密码保护,请先去掉密码再上传。`,err_unreadable:`这个文件读不出来,可能已经损坏,可以重新导出一份再试。`,"err_no-text":`这个文件里没有读到文字。如果是扫描版 PDF,需要先转成能选中文字的版本。`,err_empty:`这个文件是空的。`,"err_too-large":`文件超过 60 MB,太大了,可以拆成几份再上传。`,"err_image-too-large":`图片要小于 10 MB。`,"err_page-too-large":`这个网页太大了,导入不了。`,"err_page-no-text":`这个网页上没有读到正文。`,"err_tts-address":`语音服务地址不对:要填完整的 https 网址(只有本机地址可以用 http),不能带账号密码。`,"err_tts-app-id":`火山引擎语音需要填写 App ID。`,"err_tts-azure":`Azure 的区域或音色名称不对,请照 Azure 门户里的写法填写。`,"err_tts-config":`语音服务的设置不完整,请在设置里检查。`,"err_tts-network":`连不上语音服务,请检查网络和服务地址。`,"err_tts-stalled":`语音服务一直没有回应,请检查服务是否在运行、地址是否正确。`,"err_tts-timeout":`语音服务响应超时,请稍后再试。`,"err_tts-too-large":`语音服务返回的音频太大了。`,"err_tts-auth":`语音服务拒绝了密钥,请检查密钥是否正确。`,"err_tts-no-key":`还没有保存这个语音服务的密钥,请先在设置里填写。`,"err_tts-rate-limit":`语音服务请求太频繁,请稍后再试。`,"err_tts-server":`语音服务出错了,请稍后再试。`,"err_tts-request":`语音服务拒绝了这次请求,请检查音色等设置。`,"err_tts-empty":`没有要朗读的文字。`,"err_tts-response":`语音服务没有返回可用的音频,请稍后再试,或换一个音色。`,"err_tts-failed":`语音合成失败了,请稍后再试。`,err_speech:`朗读没有成功,可以换一个系统音色,或者改用云端语音。`,err_playback:`音频没能播放,请再试一次。`,exportFailed:`导出没有成功,请再试一次。`},ip={appName:`Aha`,appTagline:`your AI tutor`,navHome:`Home`,navCourses:`My courses`,navMaterials:`Library`,navStudio:`Study tools`,navAssist:`Ask anything`,navShorts:`Explainer shorts`,navPlan:`Study plan`,navProfile:`My profile`,navSettings:`Settings`,navAbout:`About the author`,heroTitle:`What do you want to finally understand today?`,heroHint:`Tell me what you want to learn, or drop in a textbook. I will get to know you, build a course around you, and teach it step by step on the whiteboard.`,heroPlaceholder:`e.g. Get eigenvalues in three weeks | Turn these lecture notes into a course | How does quantum tunneling actually work?`,modeCourse:`Build a course`,modeExplain:`Explain a concept`,modeSolve:`Solve with me`,modeVisualize:`Show me visually`,modeDigest:`Digest a long read`,modeShort:`Two-minute short`,attach:`Add material`,attached:`{count} material(s) attached`,start:`Start`,quickStart:`Skip questions, build now`,continueLearning:`Continue learning`,todayPlan:`Today`,noPlanToday:`Nothing planned today. Start a course or take a break.`,recentWork:`Recent`,sampleCourses:`Sample courses`,sampleHint:`Try the whiteboard classroom without spending tokens.`,importSample:`Add to my courses`,coursesTitle:`My courses`,filterAll:`All`,filterActive:`In progress`,filterDone:`Completed`,filterArchived:`Archived`,searchCourses:`Search courses`,noCourses:`No courses yet. Go to Home and tell me what you want to learn.`,importPack:`Import course pack`,lessonsCount:`{done}/{total} lessons`,minutesLeft:`about {minutes} min left`,statusIntake:`Questions pending`,statusBlueprint:`Blueprint to confirm`,statusReady:`Ready`,nextUp:`Next: {title}`,craftQuestionsTitle:`Let me get to know you`,craftQuestionsHint:`A few answers let me shape the course around you. Skip anything you are unsure about.`,craftOther:`Other (write your own)`,craftPace:`Pace`,paceIntensive:`Sprint`,paceIntensiveHint:`~6 weeks, essentials first`,paceBalanced:`Steady`,paceBalancedHint:`~3 months, foundations + practice + project`,paceRelaxed:`No deadline`,paceRelaxedHint:`Take your time, go deeper`,weeklyMinutes:`Time per week`,minutesUnit:`{minutes} min`,deadline:`Deadline (optional)`,makeBlueprint:`Design my course`,thinkingQuestions:`Thinking about what to ask you…`,designingBlueprint:`Designing your course blueprint…`,blueprintTitle:`Course blueprint`,blueprintHint:`Here is the course I designed for you. Edit titles, remove or reorder anything, or tell me what to change.`,reviseLabel:`Change it in one sentence`,revisePlaceholder:`e.g. More hands-on coding; make unit 2 lighter; drop lesson 3`,revise:`Revise`,revising:`Revising…`,addLesson:`Add lesson`,addLecture:`Add chapter`,addUnit:`Add unit`,moveUp:`Move up`,moveDown:`Move down`,remove:`Remove`,projects:`Projects`,confirmCourse:`Confirm and build the course`,confirming:`Preparing practice and projects… {done}/{total}`,courseReady:`Your course is ready`,unitN:`Unit {n}`,lectureN:`Chapter {n}`,estMinutes:`{minutes} min`,saveEdits:`Save changes`,saved:`Saved`,tabOutline:`Outline`,tabPractice:`Practice & quizzes`,tabSheets:`Cheat sheets`,tabCards:`Flashcards`,tabProjects:`Projects`,tabProgress:`Progress`,learn:`Learn`,practice:`Practice`,review:`Review`,remedial:`Revisit`,exportPack:`Export course pack`,exportWithProgress:`Include my progress`,rename:`Rename`,archive:`Archive`,unarchive:`Unarchive`,deleteCourse:`Delete course`,deleteConfirm:`This cannot be undone. Delete "{title}"?`,cancel:`Cancel`,confirm:`Confirm`,close:`Close`,back:`Back`,retry:`Retry`,generate:`Generate`,regenerate:`Regenerate`,generating:`Generating…`,open:`Open`,unitQuiz:`Unit quiz`,unitSheet:`Unit cheat sheet`,mastery:`Mastery`,conceptMastery:`Concept mastery`,preparingLesson:`Your tutor is preparing the lesson…`,bufferingLesson:`Writing the next part…`,play:`Play`,pause:`Pause`,prevStep:`Previous step`,nextStep:`Next step`,speed:`Speed`,voiceOn:`Sound on`,voiceOff:`Muted`,voiceDownCloud:`The cloud voice is not working: {reason} This lesson goes on without sound.`,voiceDownSystem:`The system voice is not working: {reason} This lesson goes on without sound.`,openSettings:`Settings`,captions:`Captions`,raiseHand:`Raise hand`,askPlaceholder:`What was unclear? Just ask`,ask:`Ask`,answering:`Thinking about your question…`,reexplain:`Explain differently`,styleAnalogy:`With an analogy`,styleVisual:`With a drawing`,styleExample:`With an example`,styleSimpler:`More simply`,styleDeeper:`In more depth`,stepOf:`Step {current}/{total}`,checkTitle:`Quick check`,confidence:`How sure are you?`,confSure:`Sure`,confUnsure:`Not quite`,confGuess:`Guessing`,submit:`Submit`,correct:`Correct`,incorrect:`Not quite`,partial:`Partly right`,continue:`Continue`,skip:`Skip`,hint:`Hint`,yourAnswer:`Your answer`,grading:`Grading…`,lessonDone:`Lesson complete`,selfRate:`How well do you feel you got it?`,rate1:`Lost`,rate3:`Okay`,rate5:`Crystal clear`,nextLesson:`Next lesson`,doPractice:`Practice`,backToCourse:`Back to course`,remedialAdded:`I added a revisit lesson for you: {title}`,challengeNote:`You have this down; the next lessons will go deeper.`,replay:`Replay lesson`,regenerateLesson:`Re-prepare lesson`,exportBoard:`Export board`,practiceTitle:`Practice`,check:`Check`,checked:`Checked`,score:`Score {score}`,practiceDone:`Set complete: {correct}/{total} correct`,showExplanation:`Explanation`,makingPractice:`Writing practice…`,cardsTitle:`Flashcards`,cardsDue:`{count} due`,flip:`Click to flip`,again:`Again`,hard:`Hard`,good:`Good`,easy:`Easy`,cardsDone:`Review round complete!`,makingCards:`Making flashcards…`,sheetTitle:`Cheat sheet`,columns:`Columns`,fontSize:`Font size`,highlight:`Highlight key items`,print:`Print`,hideSection:`Hide`,showSection:`Show`,makingSheet:`Compiling the cheat sheet…`,projectBrief:`Brief`,milestones:`Milestones`,rubric:`Rubric`,openWorkspace:`Open project workspace`,openingWorkspace:`Preparing the project folder…`,workspaceReady:`Project folder: {path}`,workspaceSession:`Opened a project session in DSH`,workspaceManual:`Add this folder as a workspace in DSH and a coding agent can help you build it.`,copyPath:`Copy path`,submitProject:`Submit work`,submitNotes:`Notes (what you built, what was hard)`,includeFiles:`Include the files in the project folder`,reviewing:`Reviewing your work…`,reviewTotal:`Total {total}/{max}`,strengths:`What went well`,nextSteps:`What to improve`,submissions:`Submissions`,materialsTitle:`Library`,materialsHint:`Upload textbooks, notes, papers or web pages to build courses, cheat sheets and flashcards. Lessons cite their pages.`,uploadFiles:`Upload files`,dropHere:`Drop files here (PDF, Word, PowerPoint, Markdown, text, images)`,addUrl:`Add web page`,urlPlaceholder:`https://…`,reading:`Reading…`,pages:`{count} pages`,slides:`{count} slides`,makeCourse:`Build a course`,makeSheet:`Cheat sheet`,makeCards:`Flashcards`,makeNotes:`Notes`,makeQuiz:`Quiz`,digest:`Digest`,digestTitle:`Digest`,overview:`Overview`,structure:`Structure`,keyIdeas:`Key ideas`,arguments:`Claims and evidence`,glossary:`Glossary`,discussion:`Questions worth asking`,imageNeedsVision:`Images need a vision-capable model.`,noMaterials:`Your library is empty.`,studioTitle:`Study tools`,studioHint:`Turn library materials into study aids in one click.`,pickMaterials:`Pick materials`,sheets:`Cheat sheets`,notes:`Notes`,decks:`Flashcard decks`,quizzes:`Quizzes`,focusPlaceholder:`Focus (optional), e.g. midterm scope chapters 3–6`,assistTitle:`Ask anything`,assistHint:`No course needed. Ask, and your tutor explains it on the whiteboard.`,assistPlaceholder:`What do you want to know? Paste a problem, a concept, or attach material`,followUp:`Follow up`,history:`History`,newThread:`New question`,shortsTitle:`Explainer shorts`,shortsHint:`Give a topic or a link and get a shareable two-minute whiteboard explainer.`,topicPlaceholder:`e.g. Why is the sky blue?`,makeShort:`Make short`,exportVideo:`Export video`,exporting:`Recording video… {percent}%`,exportNeedsCloud:`System voices cannot be recorded, so the video will have captions but no sound. Set up a cloud voice in Settings to export with narration.`,exportUnsupported:`Video export is not supported here.`,planTitle:`Study plan`,planHint:`Built from all your active courses, your weekly time and deadlines, with room for reviews.`,studyDays:`Study days`,weekdays:`Sun,Mon,Tue,Wed,Thu,Fri,Sat`,exams:`Exams and deadlines`,addExam:`Add`,examTitle:`Title`,examDay:`Date`,deadlineRisk:`At this pace "{course}" ends on {finish}, after its deadline {deadline}. Try about {minutes} minutes a week.`,startReview:`Start review`,reviewDue:`{count} concept(s) due for review`,nothingToReview:`Nothing to review right now.`,savePlan:`Save`,lessonItem:`Lesson`,reviewItem:`Review`,examItem:`Exam`,today:`Today`,profileTitle:`My profile`,profileHint:`Your tutor remembers this to fit every course to you. Edit or clear it anytime.`,background:`Background`,goals:`Goals`,strengthsLabel:`Strengths`,weaknesses:`Weak spots`,learningStyle:`How I like things explained`,memoryNotes:`Tutor notes`,clearProfile:`Clear profile`,clearProfileConfirm:`Your tutor will forget your background and preferences. Continue?`,onePerLine:`One per line`,settingsTitle:`Settings`,modelsTitle:`Models`,teachModel:`Course design & teaching`,quickModel:`Grading & questions`,followDefault:`Follow the DSH default model`,modelsHint:`Lesson quality depends mostly on the teaching model; grading and in-class questions can use a faster one.`,voiceTitle:`Narration`,engine:`Voice source`,engineBrowser:`System voice (free)`,engineCloud:`Cloud voice`,engineOff:`Silent`,browserVoice:`System voice`,autoVoice:`Automatic`,noVoiceForLanguage:`No system voice found for this language. Install one in your OS settings or use a cloud voice.`,cloudProvider:`Cloud service`,providerOpenai:`OpenAI-compatible API`,providerVolcengine:`Volcengine (Doubao)`,providerMinimax:`MiniMax`,providerAzure:`Azure Speech`,field_baseUrl:`API address`,field_model:`Model`,field_voice:`Voice`,field_appId:`App ID`,field_cluster:`Cluster`,field_groupId:`Group ID`,field_region:`Region`,field_apiKey:`Key`,keySaved:`Key saved`,keyMissing:`No key saved`,saveKey:`Save key`,clearKey:`Remove key`,testVoice:`Test`,testSentence:`Hi, I am your tutor. Let us make the hard things make sense.`,voiceRate:`Default speed`,boardTheme:`Board look`,themeAuto:`Follow system`,themeLight:`Whiteboard`,themeDark:`Chalkboard`,versionTitle:`Plugin version`,versionCurrent:`Current`,versionLatest:`Latest`,versionCheck:`Check for updates`,versionChecking:`Checking…`,versionFailed:`Could not check the latest version.`,versionUpToDate:`You are on the latest version.`,versionAvailable:`Version v{version} is available.`,versionLinked:`Installed from a local checkout; pull and rebuild the plugin repository to update.`,versionManual:`Could not find the profile that owns this plugin. Install the exact version from the DSH Plugins page: dsh-aha-tutor@{version}.`,versionUpdate:`Update plugin`,versionUpdating:`Updating…`,versionUpdateFailed:`The update failed. Try again later, or install the exact version from the DSH Plugins page.`,versionPending:`v{version} was published recently; DSH’s pnpm installs it once its release cooldown passes. Try again later.`,versionPendingUntil:`v{version} was published recently; DSH’s pnpm installs it once its release cooldown passes, after {time}.`,versionUpdated:`Updated to v{version}. Quit and reopen the DSH desktop app for it to take effect (refreshing the page is not enough).`,privacyNote:`Courses, progress and materials are stored only in DSH’s data folder on this computer.`,aboutTitle:`About the author`,aboutRole:`Author of Aha Tutor (开窍)`,aboutIntro:`Aha Tutor is free and open source, and tips are entirely optional. If it helped something finally click for you, a tip keeps Qiao growing.`,aboutRepo:`GitHub repository`,aboutIssues:`Report a problem`,aboutSupport:`Support the author`,aboutWechat:`WeChat`,aboutAlipay:`Alipay`,aboutScan:`Scan a code with your phone`,errorGeneric:`Something went wrong: {message}`,crashPage:`This page ran into a problem and could not be shown.`,crashPageHint:`Try again, or go back to the home page.`,crashPart:`This part ran into a problem and could not be shown.`,backHome:`Back to home`,loading:`Loading…`,empty:`Nothing here yet.`,copied:`Copied`,minutes:`min`,untitled:`Untitled`,delete:`Delete`,edit:`Edit`,save:`Save`,all:`All`,mode:`Mode`,boardSession:`Whiteboard`,toolBoardTitle:`Explaining on the whiteboard`,openBoard:`Open whiteboard`,panelLabel:`Aha · AI tutor`,copyCode:`Copy`,footnotes:`Footnotes`,"err_llm-auth":`The model is not signed in or its key is invalid. Check the model provider in DSH settings.`,"err_llm-quota":`The model quota is used up or requests are too frequent. Try again later.`,"err_llm-context":`The material is too long for this model. Pick fewer materials or a model with a larger context.`,"err_llm-unavailable":`The selected model is not available. Pick another one in Aha settings.`,"err_llm-timeout":`The model took too long. Try again.`,"err_bad-output":`The model did not return a usable result this time. Try again or pick a stronger model in settings.`,boardView:`Board view`,viewCanvas:`Canvas`,viewPages:`Pages`,boardViewHint:`Canvas: the whole lesson’s pages, top to bottom on one canvas you can drag and zoom, following the teacher’s writing during the lesson. Pages: one page at a time, turned with the page numbers at the top right.`,canvasTools:`Canvas zoom`,canvasHelp:`Drag or scroll to move, hold Ctrl/⌘ and scroll or pinch to zoom, double-click a page to fit it`,canvasZoomIn:`Zoom in`,canvasZoomOut:`Zoom out`,canvasZoomReset:`Back to 100% (full width)`,canvasFit:`Show everything: zoom out to see every page`,canvasFitShort:`All`,canvasFollow:`Back to the teacher`,canvasPage:`Page {n}`,voiceAsk:`Ask by voice`,voiceAskWith:`Ask by voice (microphone: {name})`,voiceStop:`Stop recording`,voiceSetup:`Voice questions need Voice input enabled in DSH`,voiceWorking:`Recognizing…`,voice_off:`Voice questions use DSH’s experimental Voice input: enable Voice input in DSH’s Plugins page, choose Download and prepare in its details, then click here again.`,voice_unprepared:`The speech recognizer is not set up yet: choose Download and prepare in Voice input’s details on DSH’s Plugins page (about 240 MB), then click here again.`,voice_preparing:`The speech recognizer is being set up; click here again when it is ready. Voice input’s details on DSH’s Plugins page show the progress.`,voice_failed:`Setting up the speech recognizer failed: retry it in Voice input’s details on DSH’s Plugins page.`,"err_speech-off":`Voice input is not enabled in DSH: enable it in DSH’s Plugins page and set up its model.`,"err_speech-unprepared":`The speech recognizer is not ready: choose Download and prepare in Voice input’s details on DSH’s Plugins page.`,"err_speech-audio":`The recording could not be read. Record it again.`,"err_speech-too-long":`The recording is too long; it can be at most 2 minutes.`,"err_speech-failed":`Speech recognition failed. Try again.`,"err_speech-empty":`No speech was heard. Move closer to the microphone and try again.`,"err_mic-denied":`Microphone access was refused: allow DSH to use the microphone in your browser or system settings.`,"err_mic-missing":`No microphone was found.`,"err_mic-chosen-missing":`The microphone chosen in DSH’s Voice input is not available: plug it in, or choose another in Voice input’s details on DSH’s Plugins page.`,micChosenMissing:`The microphone chosen in DSH’s Voice input, “{name}”, is not available: plug it in, or choose another in Voice input’s details on DSH’s Plugins page.`,"err_mic-busy":`The microphone is in use by another program.`,"err_mic-unsupported":`Recording is not possible here.`,prepThinking:`Planning`,prepWriting:`Writing the board`,prepStarting:`Reaching the model…`,prepThinkingDetail:`Thinking the lesson through ({chars} characters so far)`,prepStep:`Writing step {n}`,prepCounts:`{steps} steps ready · {chars} characters`,prepSeconds:`{seconds}s so far`,dayLabel:`{weekday}, {month}/{day}`,exportPdf:`PDF (one board page per page)`,exportPng:`PNG images (one per page)`,exportMarkdown:`Markdown text`,exportingBoard:`Exporting the board… {done}/{total}`,animationStill:`Animation (plays in the lesson)`,monthLabel:`{month}/{year}`,prevMonth:`Previous month`,nextMonth:`Next month`,markDone:`Mark as done`,unmarkDone:`Mark as not done`,checkedAuto:`Done in the course`,dayEmpty:`Nothing planned for this day.`,webResearch:`Search the web first`,webResearchHint:`Before designing the course, look the subject up with DSH web search and use what it finds`,researching:`Searching the web…`,researchFound:`Drew on {count} web sources`,researchSkipped:`No web search: {reason}`,"researchSkipped_no-credential":`DSH has no DeepSeek key, which its web search needs`,researchSkipped_unavailable:`web search is not available in this DSH`,researchSkipped_failed:`the search failed`,researchSkipped_empty:`nothing useful came up`,courseSources:`Sources`,buildResearch:`Using {count} web sources`,"err_llm-empty":`The model returned nothing this time. Try again, or pick another model in Aha settings if it keeps happening.`,"err_llm-failed":`The model call failed. Try again in a moment.`,nextStepTitle:`Next step`,nextStepReview:`{count} concepts are due for review`,nextStepWeak:`“{concept}” is still weak; practise it first`,nextStepLesson:`Continue with “{title}”`,nextStepDone:`You have finished the course; check yourself with a unit quiz`,practiceThis:`Practise this lesson`,streakCount:`{count} in a row`,keysHint:`Keyboard: 1–4 to choose · Enter to submit or continue · H for a hint`,starsLabel:`{count} stars`,accuracy:`accuracy`,bestStreak:`best streak`,masteryChange:`Mastery after this round`,stageNone:`Not started`,stageWeak:`Weak`,stageLearning:`Learning`,stageProficient:`Proficient`,stageMastered:`Mastered`,nextRelearn:`A few points have not landed yet; going through the lesson again will help.`,nextReview:`You mostly have it, but it is not solid yet; a review round will make it stick.`,nextQuiz:`This is solid; you are ready for the unit quiz.`,nextLessonStep:`You are ready to move on.`,nextCourse:`This part is done.`,relearnLesson:`Back to the lesson`,reviewCourse:`Review this course`,editOutline:`Edit outline`,saveAndBack:`Save and go back`,extendCourse:`Ask for one more unit`,extendInstruction:`Add one more unit at the end that builds on what the course covers and takes the next step at the same gradient; leave the existing units unchanged.`,proposalTitle:`Proposed changes`,proposalNoChange:`This revision changes no lessons.`,applyProposal:`Apply changes`,discardProposal:`Discard`,proposalApplied:`Changes applied`,diffAdded:`Added`,diffRemoved:`Removed`,diffRenamed:`Renamed`,diffChanged:`Changed`,diffUnit:`Unit “{title}”`,reworkLesson:`Rework this lesson`,splitLesson:`Split in two`,deepenLesson:`Go deeper`,splitDone:`Split in two; remember to save`,deepenDone:`Made deeper; remember to save`,confirmRemoveUnit:`Remove the unit “{title}” and all its lessons?`,confirmRemoveLecture:`Remove “{title}” and all its lessons?`,confirmRemoveStarted:`“{title}” has been started; its board and progress will no longer show. Remove it?`,craftSize:`Course size`,sizeAuto:`Let the teacher decide`,sizeAutoHint:`Sized to your goal; a small question may need only a lesson or two`,sizeShort:`Short`,sizeShortHint:`3–8 lessons on what matters most`,sizeStandard:`Standard`,sizeStandardHint:`10–20 lessons: foundations, practice and an applied project`,sizeFull:`Full`,sizeFullHint:`25–45 lessons, thorough, with room to go deeper`,buildAnswers:`Going through your answers`,buildMaterials:`Reading your materials`,buildUnits:`Planning the units`,buildLessons:`Writing the lessons`,buildLessonsSoFar:`Writing the lessons: {count} so far`,workPlaceholder:`Write one step per line and put math inside $…$, e.g. $x^2+6x+9=(x+3)^2$`,workPreview:`Preview`,wrongStep:`Where it went wrong`,fixedStep:`It should read`,correction:`Correction`,correctionOf:`Correction: {tag}`,correcting:`Correcting it on the board…`,seeCorrection:`See the correction`,challenge:`Is this step wrong?`,challengeLabel:`Is this step wrong?`,challengeTitle:`What looks wrong in this step? (optional)`,challengeTitleStep:`What looks wrong in step {n}? (optional) “{text}”`,challengePlaceholder:`For example: shouldn’t 5 cm be 0.05 m?`,challengeHint:`The teacher works it through again first, which takes a few seconds to half a minute.`,challengeSend:`Ask the teacher to check`,challengeLine:`Wrong?`,challengeStep:`Is step {n} wrong?`,checkingStep:`Checking this step carefully…`,challenge_wrong:`It was wrong, now corrected`,challenge_right:`Checked: it is right`,challenge_unclear:`Depends on the convention`,fixed:`Corrected`,fixedWas:`It said: {was}`,itemChallenge:`Something wrong with this question?`,itemChallengeTitle:`What looks wrong? (optional)`,itemChallengePlaceholder:`For example: I think B is right too, or: is the unit in the answer wrong?`,itemChallengeHint:`The teacher works it through first, which takes a few seconds to half a minute. You can go on meanwhile.`,itemChecking:`Checking this question carefully…`,itemCheckTitle:`Teacher’s check`,itemCheck_wrong:`It was wrong, now corrected`,itemCheck_unclear:`It was unclear, now spelled out`,itemCheck_misgraded:`It was graded wrongly, now regraded`,itemCheck_right:`Checked: it is right`,regraded:` (regraded)`,itemCheckDone:`Question {n} checked: {verdict}.`,itemCheckRegraded:` Your answer was graded again.`,itemCheckFailedNotice:`Question {n} could not be checked: {message}`,fixedWasItem:`Before the fix:`,fixedPart_prompt:`Question: {text}`,fixedPart_option:`Option {id}: {text}`,fixedPart_answer:`Answer: {text}`,fixedPart_unit:`Unit: {text}`,fixedPart_tolerance:`Tolerance: {text}`,fixedPart_explanation:`Explanation: {text}`,fixedPart_hints:`Hints: {text}`,fixedPart_rubric:`Rubric: {text}`,fixedPart_figure:`The figure was redrawn`,lessonGoals:`Lesson goals`,transcript:`Transcript`,showPanel:`Transcript`,hidePanel:`Hide the side panel`,panelTitle:`Lesson side panel`,boardFont:`Board font`,fontHand:`Handwriting`,fontStandard:`Standard`,digestMissing:`{count} part(s) could not be read ({parts}); the digest below leaves them out.`,redigest:`Digest again`,revisingSoFar:`Revising… {count} lessons so far`,"err_bad-url":`This address cannot be imported: only public http or https sites are supported, not this computer, the local network or addresses with credentials.`,err_network:`The page could not be loaded or took too long. Check the address and try again.`,err_http:`The page returned an error and could not be imported.`,blueprintSoFar:`Designing your course blueprint… {count} lessons so far`,reexplainedAs:`Re-explained: {style}`,digestReading:`Reading the whole document: {done} of {total} parts read`,digestWriting:`Combining the notes into one digest`,keepsRunning:`You can leave this page; it keeps going in the background.`,err_cancelled:`Cancelled.`,courseCreatedInChat:`Created the course "{title}". Continue it in Aha.`,err_failed:`Something went wrong. Try again in a moment.`,err_invalid:`This request could not be handled. Reload the page and try again; if it keeps happening, quit and reopen DSH.`,"err_not-found":`This item could not be found. It may have been deleted.`,err_forbidden:`You are not allowed to do this.`,"err_unknown-endpoint":`The plugin was just updated. Quit and reopen DSH, then try again.`,err_aborted:`The upload was interrupted. Try again.`,err_connection:`Could not reach DSH. Make sure it is still open, then try again.`,err_missing:`The task was lost, perhaps because DSH restarted. Try again.`,"err_llm-missing":`No model is available yet. Set up a model provider in DSH settings first.`,"err_no-board":`The board is not written yet. Try again once its first step is up.`,"err_empty-question":`Type your question first.`,"err_empty-goal":`Tell me what you want to learn, or add some material.`,"err_empty-change":`Describe the change you want first.`,"err_no-blueprint":`There is no course blueprint yet. Generate one first.`,"err_no-proposal":`There is no proposed change. It may have been applied or discarded already.`,"err_bad-pack":`This file is not a course pack that can be imported.`,"err_pack-too-large":`This course pack is too large to import.`,"err_pack-too-new":`This course pack comes from a newer version of Aha. Update the plugin, then import it.`,"err_nothing-to-review":`Nothing to review yet: write a note or work in the project folder first.`,"err_cannot-tick":`Only study items on today or an earlier day can be ticked.`,"err_exam-incomplete":`An exam needs a title and a date.`,"err_no-material":`Pick at least one material first.`,"err_material-no-text":`The selected material has no readable text. Images and scanned PDFs cannot be read as text.`,"err_empty-topic":`Give a topic or a web address first.`,"err_no-credentials":`DSH credentials are not available in this profile, so the key cannot be saved.`,"err_bad-key":`The key looks wrong: use 8–1024 letters, digits or symbols with no spaces.`,err_unsupported:`This file type is not supported. Upload a PDF, Word or PowerPoint file, an image, or a text file such as .md, .txt or .csv.`,"err_old-office":`Old .doc/.ppt files are not supported. Save them as .docx/.pptx and upload again.`,err_encrypted:`This PDF is password protected. Remove the password and upload it again.`,err_unreadable:`This file could not be read. It may be damaged; export it again and retry.`,"err_no-text":`No text was found in this file. A scanned PDF needs to be converted to selectable text first.`,err_empty:`This file is empty.`,"err_too-large":`The file is larger than 60 MB. Split it into smaller parts and upload them.`,"err_image-too-large":`Images must be smaller than 10 MB.`,"err_page-too-large":`This page is too large to import.`,"err_page-no-text":`No readable text was found on this page.`,"err_tts-address":`The speech service address is wrong: use a full https address (http only for this computer) without a user name or password.`,"err_tts-app-id":`Volcengine speech needs an App ID.`,"err_tts-azure":`The Azure region or voice name is not valid. Enter it as the Azure portal shows it.`,"err_tts-config":`The speech service settings are incomplete. Check them in settings.`,"err_tts-network":`Could not reach the speech service. Check the network and the service address.`,"err_tts-stalled":`The speech service is not responding. Check that it is running and that its address is right.`,"err_tts-timeout":`The speech service took too long. Try again later.`,"err_tts-too-large":`The speech service returned too much audio.`,"err_tts-auth":`The speech service rejected the key. Check that it is correct.`,"err_tts-no-key":`No key is saved for this speech service. Add it in settings first.`,"err_tts-rate-limit":`The speech service is limiting requests. Try again later.`,"err_tts-server":`The speech service had an error. Try again later.`,"err_tts-request":`The speech service refused the request. Check the voice and other settings.`,"err_tts-empty":`There is nothing to read aloud.`,"err_tts-response":`The speech service returned no usable audio. Try again later or pick another voice.`,"err_tts-failed":`Speech synthesis failed. Try again later.`,err_speech:`Reading aloud did not work. Try another system voice, or switch to a cloud voice.`,err_playback:`The audio could not be played. Try again.`,exportFailed:`The export did not finish. Try again.`},ap=[`slots`,`locale`,`connection`],op=`aha-tutor`,sp=`dsh-aha-tutor/board`,cp=`ahaTutorBoard`,lp=[`aha_whiteboard`,`aha_quiz`,`aha_course`,`aha_cheatsheet`,`aha_learner`];function up({size:e}){return(0,i.jsx)(me,{name:`logo`,size:e})}function dp({rpc:e,t,language:n,dsh:r}){return(0,i.jsx)(qf,{rpc:e,t,language:n(),dsh:r})}function fp(e){e.effect(()=>e.locale.register(np,{zh:rp,en:ip}),`aha-tutor: copy`),e.effect(()=>{let e=document.createElement(`style`);return e.dataset.plugin=`dsh-aha-tutor`,e.textContent=Qd,document.head.append(e),()=>e.remove()},`aha-tutor: style`);let t=e.locale.bind(np),n=e.get(`connection`).rpc,r=()=>String(e.locale.getLocale?.()?.active??`zh`).startsWith(`zh`)?`zh`:`en`,i=Object.freeze({selectPanel:()=>e.get(`layout`)?.selectPanel?.(op),async openWorkspace(t,n){let r=e.get(`workspaces`),i=e.get(`uiWorkspace`);if(typeof r?.create!=`function`||typeof i?.startSession!=`function`)return!1;let a=await r.create({path:t});return i.startSession(a.workspaceId,{prompt:n,clearPreviousDraft:!0}),!0},openBoardTab(t){let n=e.get(`sidebarRight`);if(typeof n?.openTab!=`function`)return!1;try{return n.openTab(cp,{params:t}),!0}catch{return!1}}});e.slots.inject(`main`,()=>e.slots.register({name:`main`,key:op,locale:np,inject:()=>({rpc:n,language:r,dsh:i})},dp)),e.slots.inject(`sidebar.panellist`,()=>e.slots.register({name:`sidebar.panellist`,id:op,order:20,locale:np,label:()=>t(`panelLabel`)},up)),e.inject([`sidebarRightTabs`],e=>{e.effect(()=>e.sidebarRightTabs.register({id:sp,kind:cp,title:()=>t(`boardSession`),keepMounted:!0}),`aha-tutor: board tab`)}),e.slots.inject(`sidebar.right.pane.tab`,()=>e.slots.register({name:`sidebar.right.pane.tab`,key:sp,locale:np,inject:()=>({rpc:n,language:r(),dsh:i})},Yf));for(let t of lp)e.slots.inject(`tool.call.toolview`,()=>e.slots.register({name:`tool.call.toolview`,key:t,locale:np,inject:()=>({rpc:n,language:r(),dsh:i})},$f))}return n.apply=fp,n.inject=ap,t.exports}});
|
|
693
|
+
`).map(e=>e.trim()).filter(Boolean);a.setValue(await e.call(`profile/save`,{name:o.name.trim(),background:o.background,goals:r(o.goals),strengths:r(o.strengths),weaknesses:r(o.weaknesses),preferences:{...a.value.preferences,style:o.style}})),n(t(`saved`))}catch(e){d(e)}}return o?(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:820},children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:t(`profileTitle`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`profileHint`)})]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`profileName`),` `,(0,i.jsxs)(`span`,{className:`aha-hint`,children:[`(`,t(`profileNameHint`),`)`]}),(0,i.jsx)(`input`,{className:`aha-input`,maxLength:20,value:o.name,placeholder:t(`profileNamePlaceholder`),onChange:e=>s({...o,name:e.currentTarget.value})})]}),(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`background`),(0,i.jsx)(`textarea`,{className:`aha-textarea`,value:o.background,onChange:e=>s({...o,background:e.currentTarget.value})})]}),Xf.map(([e,n])=>(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(n),` `,(0,i.jsxs)(`span`,{className:`aha-hint`,children:[`(`,t(`onePerLine`),`)`]}),(0,i.jsx)(`textarea`,{className:`aha-textarea`,value:o[e],onChange:t=>s({...o,[e]:t.currentTarget.value})})]},e)),(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`learningStyle`),(0,i.jsx)(`input`,{className:`aha-input`,value:o.style,onChange:e=>s({...o,style:e.currentTarget.value})})]}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:f,children:t(`save`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`danger`,onClick:()=>l(!0),children:t(`clearProfile`)})]}),(0,i.jsx)($,{error:u})]}),a.value.notes?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:t(`memoryNotes`)}),a.value.notes.map(n=>(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`span`,{children:n.text}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:async()=>a.setValue(await e.call(`profile/remove-note`,{id:n.id})),children:t(`delete`)})]},n.id))]}):null,(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`privacyNote`)}),c?(0,i.jsx)(Il,{danger:!0,text:t(`clearProfileConfirm`),onCancel:()=>l(!1),onConfirm:async()=>{a.setValue(await e.call(`profile/clear`)),l(!1)}}):null]}):(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Ml,{label:t(`loading`)})})}function Qf({courseId:e,projectId:t}){let{api:n,t:a,dsh:o,toast:s}=v(),c=y(()=>n.call(`project/get`,{courseId:e,projectId:t}),[e,t]),l=b(),[u,d]=(0,r.useState)(``),[f,p]=(0,r.useState)(!0),[m,h]=(0,r.useState)(null),[g,_]=(0,r.useState)(!1),[x,S]=(0,r.useState)(null);if(c.loading&&!c.value)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Ml,{label:a(`loading`)})});if(!c.value)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)($,{error:c.error})});let{project:C,submissions:w}=c.value,T=m?.path??c.value.workspace;async function E(){_(!0),S(null);try{let r=await n.call(`project/open`,{courseId:e,projectId:t});h(r);let i=await o.openWorkspace(r.path,r.prompt).catch(()=>!1);s(i?a(`workspaceSession`):a(`workspaceReady`,{path:r.path}))}catch(e){S(e)}finally{_(!1)}}async function D(){try{await l.run(`project/submit`,{courseId:e,projectId:t,notes:u,includeWorkspace:f}),d(``),c.reload()}catch{}}return(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:900},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:C.title}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:a(`projectBrief`)}),(0,i.jsx)(lu,{text:C.brief})]}),C.milestones?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:a(`milestones`)}),(0,i.jsx)(`ol`,{style:{margin:0,paddingLeft:20},children:C.milestones.map(e=>(0,i.jsxs)(`li`,{children:[(0,i.jsx)(`b`,{children:e.title}),e.detail?(0,i.jsx)(`div`,{className:`aha-hint`,children:e.detail}):null]},e.id))})]}):null,C.rubric?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:a(`rubric`)}),C.rubric.map(e=>(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`span`,{children:[e.criterion,e.detail?(0,i.jsxs)(`span`,{className:`aha-hint`,children:[` · `,e.detail]}):null]}),(0,i.jsx)(`span`,{className:`aha-tag`,children:e.points})]},e.id))]}):null,(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:g,onClick:E,children:[(0,i.jsx)(pe,{name:`folder`,size:15}),a(g?`openingWorkspace`:`openWorkspace`)]}),T?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`code`,{className:`aha-hint`,style:{overflowWrap:`anywhere`},children:T}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,"data-kind":`ghost`,onClick:()=>{Kl(T),s(a(`copied`))},children:a(`copyPath`)})]}):null]}),(0,i.jsx)(`p`,{className:`aha-hint`,children:a(`workspaceManual`)}),(0,i.jsx)($,{error:x})]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:a(`submitProject`)}),(0,i.jsx)(`textarea`,{className:`aha-textarea`,value:u,placeholder:a(`submitNotes`),onChange:e=>d(e.currentTarget.value)}),(0,i.jsxs)(`label`,{className:`aha-row`,style:{gap:6},children:[(0,i.jsx)(`input`,{type:`checkbox`,checked:f,onChange:e=>p(e.currentTarget.checked)}),a(`includeFiles`)]}),l.running?(0,i.jsx)(Pl,{progress:l.progress,label:a(`reviewing`),onCancel:l.cancel}):(0,i.jsx)(`div`,{children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:!u.trim()&&!f,onClick:D,children:a(`submitProject`)})}),(0,i.jsx)($,{error:l.error})]}),w.length?(0,i.jsxs)(`section`,{className:`aha-col`,children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:a(`submissions`)}),[...w].reverse().map((e,t)=>(0,i.jsxs)(`div`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`b`,{children:a(`reviewTotal`,{total:e.review.total,max:e.review.max})}),(0,i.jsx)(`span`,{className:`aha-hint`,children:new Date(e.at).toLocaleString()})]}),e.review.summary?(0,i.jsx)(lu,{text:e.review.summary,compact:!0}):null,e.review.scores.map(e=>(0,i.jsxs)(`div`,{className:`aha-spread`,style:{alignItems:`flex-start`},children:[(0,i.jsxs)(`span`,{children:[(0,i.jsx)(`b`,{children:e.criterion}),(0,i.jsx)(`div`,{className:`aha-hint`,children:e.comment})]}),(0,i.jsxs)(`span`,{className:`aha-tag`,children:[e.points,`/`,e.max]})]},e.criterionId)),e.review.strengths?.length?(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`b`,{children:a(`strengths`)}),(0,i.jsx)(`ul`,{style:{margin:0},children:e.review.strengths.map((e,t)=>(0,i.jsx)(`li`,{children:e},t))})]}):null,e.review.nextSteps?.length?(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`b`,{children:a(`nextSteps`)}),(0,i.jsx)(`ul`,{style:{margin:0},children:e.review.nextSteps.map((e,t)=>(0,i.jsx)(`li`,{children:e},t))})]}):null]},t))]}):null]})}let $f=[[`openai`,`providerOpenai`],[`volcengine`,`providerVolcengine`],[`minimax`,`providerMinimax`],[`azure`,`providerAzure`]];function ep(){let{api:e,t,settings:n,settingsSaved:a,setVoiceId:o,speech:s,language:c}=v(),l=y(()=>e.call(`models/list`),[]),[d,f]=(0,r.useState)(null),p=e=>d?.area===e?d.failure:null,[m,h]=(0,r.useState)(()=>O()),[g,_]=(0,r.useState)(``),[b,x]=(0,r.useState)(!1);(0,r.useEffect)(()=>k(h),[]);async function S(e,t){f(null);try{await t()}catch(t){f({area:e,failure:t})}}let C=(0,r.useRef)(Promise.resolve()),w=(t,n)=>{let r=S(t,async()=>{await e.call(`settings/save`,{settings:n}),await a()});return C.current=C.current.then(()=>r),r},T=(e,t)=>e&&t?`${e}::${t}`:``,E=(e,t)=>{let[n=``,r=``]=t?t.split(`::`):[];w(`models`,{[`${e}Provider`]:n,[`${e}Model`]:r})},te=(0,r.useMemo)(()=>(l.value??[]).map(e=>({value:`${e.provider}::${e.model}`,label:`${e.providerName} · ${e.name}${e.images?` 🖼`:``}`})),[l.value]),ne=c===`zh`?`zh-CN`:`en`,A=m.filter(e=>e.lang.toLowerCase().startsWith(ne.split(`-`)[0])),re=n.ttsProvider??`openai`,ie=(n.fields?.[re]??[]).filter(e=>!e.secret),ae=n.tts?.[re]??{};async function oe(){f(null),x(!0);try{await C.current,s.configure({engine:n.voiceEngine??`browser`,voiceId:n.voiceId||void 0,language:ne,rate:n.voiceRate??1});let e=await s.speak(t(`testSentence`),{rate:n.voiceRate??1}).done;e?.error&&f({area:`test`,failure:new u(e.code??`speech`,e.error)})}finally{x(!1)}}return n.voiceEngine?(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:820},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:t(`settingsTitle`)}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:t(`modelsTitle`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`modelsHint`)}),[[`teach`,`teachModel`],[`quick`,`quickModel`]].map(([e,r])=>(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(r),(0,i.jsxs)(`select`,{className:`aha-select`,value:T(n[`${e}Provider`],n[`${e}Model`]),onChange:t=>E(e,t.currentTarget.value),children:[(0,i.jsx)(`option`,{value:``,children:t(`followDefault`)}),te.map(e=>(0,i.jsx)(`option`,{value:e.value,children:e.label},e.value))]})]},e)),l.loading?(0,i.jsx)(Ml,{}):null,(0,i.jsx)($,{error:p(`models`),reveal:!0})]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:t(`voiceTitle`)}),(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:6},children:[[`browser`,`engineBrowser`],[`cloud`,`engineCloud`],[`off`,`engineOff`]].map(([e,r])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":n.voiceEngine===e,onClick:()=>w(`engine`,{voiceEngine:e}),children:t(r)},e))}),(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`voiceRate`),` · `,n.voiceRate??1,`×`,(0,i.jsx)(`input`,{type:`range`,min:`0.5`,max:`2`,step:`0.05`,value:n.voiceRate??1,onChange:e=>w(`engine`,{voiceRate:Number(e.currentTarget.value)})})]}),(0,i.jsx)($,{error:p(`engine`),reveal:!0}),n.voiceEngine===`browser`?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`browserVoice`),(0,i.jsxs)(`select`,{className:`aha-select`,value:n.voiceId??``,onChange:e=>o(e.currentTarget.value),children:[(0,i.jsxs)(`option`,{value:``,children:[t(`autoVoice`),ee(ne)?` (${ee(ne).name})`:``]}),(A.length?A:m).map(e=>(0,i.jsxs)(`option`,{value:e.id,children:[e.name,` · `,e.lang,e.local?``:` ☁`]},e.id))]})]}),D()&&!A.length?(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`noVoiceForLanguage`)}):null]}):null,n.voiceEngine===`cloud`?(0,i.jsxs)(`div`,{className:`aha-col`,children:[(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`cloudProvider`),(0,i.jsx)(`select`,{className:`aha-select`,value:re,onChange:e=>w(`cloud`,{ttsProvider:e.currentTarget.value}),children:$f.map(([e,n])=>(0,i.jsx)(`option`,{value:e,children:t(n)},e))})]}),ie.map(e=>(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`field_${e.key}`),(0,i.jsx)(`input`,{className:`aha-input`,defaultValue:ae[e.key]??``,onBlur:t=>{let n=t.currentTarget.value.trim();n!==(ae[e.key]??``)&&w(`cloud`,{tts:{[re]:{[e.key]:n}}})}},`${re}:${e.key}:${ae[e.key]??``}`)]},e.key)),(0,i.jsx)($,{error:p(`cloud`),reveal:!0}),(0,i.jsxs)(`label`,{className:`aha-label`,children:[t(`field_apiKey`),` · `,(0,i.jsx)(`span`,{className:n.keys?.[re]?`aha-ok`:`aha-hint`,children:n.keys?.[re]?t(`keySaved`):t(`keyMissing`)}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:1},type:`password`,autoComplete:`off`,spellCheck:!1,value:g,onChange:e=>_(e.currentTarget.value)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,disabled:!g.trim(),onClick:()=>S(`key`,async()=>{await e.call(`settings/set-key`,{provider:re,key:g.trim()}),_(``),await a()}),children:t(`saveKey`)}),n.keys?.[re]?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>S(`key`,async()=>{await e.call(`settings/clear-key`,{provider:re}),await a()}),children:t(`clearKey`)}):null]})]}),(0,i.jsx)($,{error:p(`key`),reveal:!0})]}):null,(0,i.jsx)(`div`,{children:(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,disabled:b||n.voiceEngine===`off`,onClick:oe,children:[b?(0,i.jsx)(`span`,{className:`aha-spinner`}):`🔊`,` `,t(`testVoice`)]})}),(0,i.jsx)($,{error:p(`test`),reveal:!0})]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:t(`boardTheme`)}),(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:6},children:[[`auto`,`themeAuto`],[`light`,`themeLight`],[`dark`,`themeDark`]].map(([e,r])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":(n.boardTheme??`auto`)===e,onClick:()=>w(`board`,{boardTheme:e}),children:t(r)},e))}),(0,i.jsx)(`b`,{children:t(`boardFont`)}),(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:6},children:[[`hand`,`fontHand`],[`standard`,`fontStandard`]].map(([e,r])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":(n.boardFont??`hand`)===e,onClick:()=>w(`board`,{boardFont:e}),style:e===`hand`?{fontFamily:vf}:void 0,children:t(r)},e))}),(0,i.jsx)(`b`,{children:t(`boardView`)}),(0,i.jsx)(`div`,{className:`aha-row`,style:{gap:6},children:[[`canvas`,`viewCanvas`],[`pages`,`viewPages`]].map(([e,r])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-chip`,"data-active":(n.boardView??`canvas`)===e,onClick:()=>w(`board`,{boardView:e}),children:t(r)},e))}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`boardViewHint`)}),(0,i.jsx)($,{error:p(`board`),reveal:!0})]}),(0,i.jsx)(tp,{}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`privacyNote`)})]}):(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Ml,{label:t(`loading`)})})}function tp(){let{api:e,t}=v(),[n,a]=(0,r.useState)(null),[o,s]=(0,r.useState)(!0),[c,l]=(0,r.useState)(!1),[u,d]=(0,r.useState)(!1),[f,p]=(0,r.useState)(null),[m,h]=(0,r.useState)(!1),g=t=>{s(!0),l(!1),e.call(`plugin/version`,{force:t}).then(a).catch(()=>l(!0)).finally(()=>s(!1))};(0,r.useEffect)(()=>{g(!1)},[]);async function _(){d(!0),h(!1);try{p(await e.call(`plugin/update`))}catch{h(!0)}finally{d(!1)}}let y=n?.install?.kind;return(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`b`,{children:t(`versionTitle`)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,disabled:o||u,onClick:()=>g(!0),children:t(o?`versionChecking`:`versionCheck`)})]}),c?(0,i.jsx)(`p`,{className:`aha-error`,children:t(`versionFailed`)}):null,n?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`span`,{children:t(`versionCurrent`)}),(0,i.jsxs)(`span`,{className:`aha-hint`,children:[`v`,n.current]})]}),(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`span`,{children:t(`versionLatest`)}),(0,i.jsx)(`span`,{className:`aha-hint`,children:n.latest?`v${n.latest}`:`—`})]}),f?null:(0,i.jsx)(`p`,{className:n.latestUnknown?`aha-error`:`aha-hint`,children:n.latestUnknown?t(`versionFailed`):n.updateAvailable?t(`versionAvailable`,{version:n.latest}):t(`versionUpToDate`)}),!f&&n.updateAvailable&&y===`npm`?(0,i.jsx)(`div`,{children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:u,onClick:_,children:t(u?`versionUpdating`:`versionUpdate`)})}):null,y===`link`?(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`versionLinked`)}):null,n.updateAvailable&&y===`unknown`?(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`versionManual`,{version:n.latest})}):null]}):null,m?(0,i.jsx)(`p`,{className:`aha-error`,children:t(`versionUpdateFailed`)}):null,f?.pending?(0,i.jsx)(`p`,{className:`aha-hint`,children:typeof f.availableAt==`number`?t(`versionPendingUntil`,{version:f.version,time:new Date(f.availableAt).toLocaleString()}):t(`versionPending`,{version:f.version})}):null,f&&!f.pending?(0,i.jsx)(`div`,{className:`aha-feedback`,"data-ok":`true`,children:t(`versionUpdated`,{version:f.version})}):null]})}function np({draftTopic:e,draftUrl:t,token:n}){let{api:a,t:o}=v(),s=y(()=>a.call(`items/list`,{kind:`shorts`}),[]),[c,l]=(0,r.useState)(e??``),[u,d]=(0,r.useState)(t??``),[f,p]=(0,r.useState)(null),[m,h]=(0,r.useState)(null),g=zf(),_=x(n);async function b(){if(!c.trim()&&!u.trim())return;h(null);let e=ye(`sht`);try{let{job:t}=await a.call(`short/make`,{topic:c,url:u,newId:e});p({id:e,title:c||u,steps:[],stream:t,key:`${e}:new`})}catch(e){h(e)}}(0,r.useEffect)(()=>{_&&(e||t)&&b()},[]);async function S(e){try{let{item:t}=await a.call(`items/get`,{kind:`shorts`,id:e});p({id:t.id,title:t.title,steps:t.board.steps,stream:null,language:t.language,key:`${t.id}:open`,opened:Date.now()})}catch(e){h(e)}}return(0,i.jsx)(`div`,{className:`aha-page`,"data-wide":`true`,children:(0,i.jsxs)(`div`,{className:`aha-split`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{minHeight:0},children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:o(`shortsTitle`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:o(`shortsHint`)})]}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:2,minWidth:220},value:c,placeholder:o(`topicPlaceholder`),onChange:e=>l(e.currentTarget.value)}),(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:1,minWidth:180},value:u,placeholder:o(`urlPlaceholder`),onChange:e=>d(e.currentTarget.value)}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:!c.trim()&&!u.trim(),onClick:b,children:o(`makeShort`)})]}),(0,i.jsx)($,{error:m}),f?(0,i.jsx)(Uu,{scope:{kind:`short`,id:f.id},title:f.title,steps:f.steps,stream:f.stream,language:f.language,recordChecks:!1,reveal:f.opened,onStreamDone:e=>{p(t=>({...t,steps:e?.item?.board?.steps??t.steps,title:e?.item?.title??t.title,stream:null})),s.reload()},header:({steps:e})=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(gf,{steps:e,title:f.title,kind:null}),g.exporting?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Ml,{label:o(`exporting`,{percent:g.exporting.percent})}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:g.cancel,children:o(`cancel`)})]}):(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,disabled:!f.steps.length,onClick:()=>g.start({steps:f.steps,title:f.title}),children:o(`exportVideo`)})]})},f.key):null,f&&!g.cloud?(0,i.jsx)(`p`,{className:`aha-hint`,children:o(`exportNeedsCloud`)}):null]}),(0,i.jsxs)(`aside`,{className:`aha-col`,style:{minHeight:0,overflow:`auto`},children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:o(`history`)}),s.loading&&!s.value?(0,i.jsx)(Ml,{}):(s.value??[]).length?s.value.map(e=>(0,i.jsxs)(`div`,{className:`aha-option`,style:{cursor:`pointer`},onClick:()=>S(e.id),children:[(0,i.jsx)(`b`,{children:e.title}),(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`small`,{children:new Date(e.createdAt).toLocaleString()}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:async t=>{t.stopPropagation(),await a.call(`items/remove`,{kind:`shorts`,id:e.id}),s.reload()},children:o(`delete`)})]})]},e.id)):(0,i.jsx)(Rl,{children:o(`empty`)})]})]})})}let rp=[[`sheet`,`makeSheet`,`studio/sheet`],[`cards`,`makeCards`,`studio/cards`],[`notes`,`makeNotes`,`studio/notes`],[`quiz`,`makeQuiz`,`studio/quiz`]];function ip(){let{api:e,t,navigate:n}=v(),a=y(()=>e.call(`items/list`,{kind:`sheets`}),[]),o=y(()=>e.call(`items/list`,{kind:`decks`}),[]),[s,c]=(0,r.useState)([]),[l,u]=(0,r.useState)(!1),[d,f]=(0,r.useState)(``),[p,m]=(0,r.useState)(null),[h,g]=(0,r.useState)(null);async function _(t,n){if(!s.length){u(!0);return}m(t),g(null);try{b((await e.run(n,{materialIds:s,focus:d})).item)}catch(e){g(e)}finally{m(null)}}function b(e){e.kind===`cheatsheet`?n(`sheet`,{sheetId:e.id}):e.kind===`notes`?n(`item`,{kind:`notes`,id:e.id}):e.kind===`cards`?n(`cards`,{deckId:e.id}):n(`item`,{kind:`quiz`,id:e.id})}async function x(t,n){await e.call(`items/remove`,{kind:t,id:n}),t===`sheets`?a.reload():o.reload()}let S=(e,n,r)=>(0,i.jsxs)(`section`,{className:`aha-col`,children:[(0,i.jsx)(`h3`,{className:`aha-cardTitle`,children:e}),n.loading&&!n.value?(0,i.jsx)(Ml,{}):(n.value??[]).length?(0,i.jsx)(`div`,{className:`aha-grid`,children:n.value.map(e=>(0,i.jsxs)(`div`,{className:`aha-card`,"data-click":`true`,onClick:()=>b(e),children:[(0,i.jsx)(`span`,{className:`aha-tag`,children:e.kind===`cheatsheet`?t(`sheets`):e.kind===`notes`?t(`notes`):e.kind===`cards`?t(`decks`):t(`quizzes`)}),(0,i.jsx)(`b`,{children:e.title}),(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:new Date(e.updatedAt).toLocaleDateString()}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:t=>{t.stopPropagation(),x(r,e.id)},children:t(`delete`)})]})]},e.id))}):(0,i.jsx)(Rl,{children:t(`empty`)})]});return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:t(`studioTitle`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:t(`studioHint`)})]}),(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>u(!0),children:s.length?t(`attached`,{count:s.length}):t(`pickMaterials`)}),(0,i.jsx)(`input`,{className:`aha-input`,style:{flex:1,minWidth:220},value:d,placeholder:t(`focusPlaceholder`),onChange:e=>f(e.currentTarget.value)})]}),(0,i.jsx)(`div`,{className:`aha-row`,children:rp.map(([e,n,r])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,disabled:!!p,onClick:()=>_(e,r),children:[p===e?(0,i.jsx)(`span`,{className:`aha-spinner`}):null,t(n)]},e))}),p?(0,i.jsx)(Ml,{label:t(`generating`)}):null,(0,i.jsx)($,{error:h})]}),S(`${t(`sheets`)} · ${t(`notes`)}`,a,`sheets`),S(`${t(`decks`)} · ${t(`quizzes`)}`,o,`decks`),l?(0,i.jsx)(Vl,{selected:s,onChange:c,onClose:()=>u(!1)}):null]})}Object.freeze([`again`,`hard`,`good`,`easy`]),Object.freeze({again:1,hard:3,good:4,easy:5});function ap(e,t=Date.now()){return Date.parse(e?.dueAt??0)<=t}function op(e,t=Date.now()){return(e||[]).filter(e=>ap(e,t)).sort((e,t)=>Date.parse(e.dueAt)-Date.parse(t.dueAt))}function sp({courseId:e,lessonId:t,unitId:n,review:a,deckId:o}){let{api:s,t:c,navigate:l}=v(),d=b(),[f,p]=(0,r.useState)(null),[m,h]=(0,r.useState)(null),[g,_]=(0,r.useState)(0),[y,x]=(0,r.useState)([]),[S,C]=(0,r.useState)(0),[w,T]=(0,r.useState)(null),[E,D]=(0,r.useState)({}),[O,k]=(0,r.useState)(null),[ee,te]=(0,r.useState)({}),[ne,A]=(0,r.useState)([]),re=(0,r.useRef)(new Map),ie=(0,r.useRef)(0),ae=(0,r.useRef)(0),oe=(0,r.useRef)({index:0,results:[]});oe.current={index:g,results:y},(0,r.useEffect)(()=>{let r=!0;return(async()=>{try{if(e&&!o&&s.call(`course/get`,{courseId:e}).then(e=>{r&&T(e)}).catch(()=>void 0),a){let t=await s.call(`review/session`,e?{courseId:e}:{});r&&p({title:c(`review`),items:t.items.map(e=>({...e.item,context:e})),language:void 0});return}if(o){let{item:e}=await s.call(`items/get`,{kind:`decks`,id:o});r&&p({title:e.title,items:e.items??[],language:e.language});return}let i=n?`unit/quiz`:`lesson/practice`,l=n?{courseId:e,unitId:n}:{courseId:e,lessonId:t},f=await s.call(i,l),m=f.job?await d.run(null,null,{existing:f.job}):f,h=(m.quiz??m.sets?.[t]??m.practice)?.items??[];if(!h.length&&!n)throw new u(`bad-output`,`No practice items came back`);let g=t?await s.call(`lesson/get`,{courseId:e,lessonId:t}):null;r&&p({title:g?.lesson.title??c(`unitQuiz`),items:h,language:g?.language})}catch(e){r&&h(e)}})(),()=>{r=!1}},[e,t,n,a,o,S]);let se=f?.items[g],ce=r=>{let i=g;x(e=>[...e,{...r,index:i}]);let a=se?.context?.courseId??e;!a||o||re.current.set(i,s.call(`lesson/record`,{courseId:a,lessonId:se?.context?.lessonId??t,conceptIds:se?.conceptIds??[],evidence:{kind:n?`quiz`:`practice`,score:r.score,confidence:r.confidence,hintsUsed:r.hintsUsed,timeMs:r.timeMs,expectedMs:6e4,errorTag:r.errorTag},source:tu({courseId:e,lessonId:t,unitId:n},se),response:r.given??r.response??``}).then(e=>(e?.mastery&&D(t=>({...t,...e.mastery})),e?.recommendation&&k(e.recommendation),e?.evidenceId??null)).catch(()=>null))},le=(0,r.useMemo)(()=>Zu(y),[y]);function ue(e,t){ae.current+=1;let n=ae.current;A(r=>[...r.slice(-2),{key:n,text:e,retry:t}])}let j=e=>A(t=>t.filter(t=>t.key!==e));async function de(r,i){let a=f?.items[r],l=oe.current.results.find(e=>e.index===r),u=tu({courseId:e,lessonId:t,unitId:n,deckId:o},a);if(!l||!u)return;let d=ie.current;te(e=>({...e,[r]:{...e[r],status:`checking`,note:i,error:null}}));try{let e=await(re.current.get(r)??null),t=await s.run(`item/challenge`,{source:u,response:l.given??l.response??``,shown:au(l),...e?{evidenceId:e}:{},note:i});if(ie.current!==d){t?.item&&p(e=>e&&{...e,items:e.items.map((e,n)=>n===r?t.item:e)});return}te(e=>({...e,[r]:ou(e[r],t,oe.current.results.find(e=>e.index===r))})),t?.result&&x(e=>su(e,r,t.result)),t?.mastery&&D(e=>({...e,...t.mastery})),t?.recommendation&&k(t.recommendation),oe.current.index!==r&&ue(cu(c,{index:r,verdict:t?.verdict,regraded:!!t?.result,earlier:t?.earlier??0}))}catch(e){if(ie.current!==d)return;te(t=>({...t,[r]:{...t[r],status:`failed`,note:i,error:e}})),oe.current.index!==r&&ue(cu(c,{index:r,message:Ll(c,e)}),()=>de(r,i))}}function fe(){ie.current+=1,p(e=>({...e,items:e.items.map((e,t)=>ee[t]?.item??e)})),te({}),A([]),re.current=new Map,_(0),x([]),k(null)}if(m)return(0,i.jsxs)(`div`,{className:`aha-page`,children:[(0,i.jsx)($,{error:m}),(0,i.jsx)(`div`,{children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>{h(null),C(e=>e+1)},children:c(`retry`)})})]});if(!f)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Pl,{progress:d.progress,label:c(`makingPractice`),onCancel:d.running?d.cancel:void 0})});if(!f.items.length)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Rl,{children:c(a?`nothingToReview`:`empty`)})});let pe=g>=f.items.length;return(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:760},children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:f.title}),(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:6},children:[!pe&&le.streak>=2?(0,i.jsx)(`span`,{className:`aha-tag aha-streak`,children:c(`streakCount`,{count:le.streak})}):null,(0,i.jsxs)(`span`,{className:`aha-tag`,children:[Math.min(g+1,f.items.length),`/`,f.items.length]})]})]}),ne.map(e=>(0,i.jsxs)(`div`,{className:`aha-itemNotice`,role:`status`,children:[(0,i.jsxs)(`span`,{className:`aha-itemNoticeText`,children:[`🧐 `,e.text]}),e.retry?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>{j(e.key),e.retry()},children:c(`retry`)}):null,(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,"aria-label":c(`close`),onClick:()=>j(e.key),children:`×`})]},e.key)),se?.context?(0,i.jsxs)(`p`,{className:`aha-hint`,children:[se.context.courseTitle,` · `,se.context.conceptName]}):null,pe?(0,i.jsx)(cp,{set:f,stats:le,context:w,after:E,recommendation:O,courseId:e,lessonId:t,unitId:n,onRetry:fe}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{className:`aha-card`,children:(0,i.jsx)(Nu,{item:se,language:f.language,onResult:ce,onContinue:()=>_(e=>e+1),continueLabel:g+1<f.items.length?c(`continue`):c(`confirm`),keyboard:!0,onChallenge:tu({courseId:e,lessonId:t,unitId:n,deckId:o},se)?e=>de(g,e):void 0,check:ee[g]??null},`${g}`)}),(0,i.jsx)(`p`,{className:`aha-hint`,children:c(`keysHint`)})]})]})}function cp({set:e,stats:t,context:n,after:a,recommendation:o,courseId:s,lessonId:c,unitId:l,onRetry:u}){let{t:d,navigate:f}=v(),p=n?.course,m=n?.progress,h=(0,r.useMemo)(()=>{let t=p?N(p):new Map;return[...new Set(e.items.flatMap(e=>e.conceptIds??[]))].filter(e=>a[e]!==void 0).map(n=>({id:n,name:t.get(n)?.name??e.items.find(e=>e.context?.conceptId===n)?.context?.conceptName??n,before:m?Ju(m.concepts?.[n]):null,after:Yu(a[n]),percent:a[n]}))},[e,p,m,a]),g=(0,r.useMemo)(()=>{if(!p)return null;let e=et(p),t=c?e.find(e=>e.lesson.id===c):null,n=t?ot(p,c)?.lesson.id:l?e.find((t,n)=>n>e.findLastIndex(e=>e.unit.id===l))?.lesson.id:null;return Qu(o,{lessonId:c,unitId:t?.unit.id??null,nextLessonId:n??at(p,m)?.lesson.id})},[p,m,o,c,l]),_={relearn:()=>f(`lesson`,{courseId:s,lessonId:g.lessonId}),review:()=>f(`practice`,{courseId:s,review:!0}),quiz:()=>f(`practice`,{courseId:s,unitId:g.unitId}),next:()=>f(`lesson`,{courseId:s,lessonId:g.lessonId}),course:()=>f(`course`,{courseId:s})},y=g?d({relearn:`nextRelearn`,review:`nextReview`,quiz:`nextQuiz`,next:`nextLessonStep`,course:`nextCourse`}[g.kind]):``,b=g?d({relearn:`relearnLesson`,review:`reviewCourse`,quiz:`unitQuiz`,next:`nextLesson`,course:`backToCourse`}[g.kind]):``;return(0,i.jsxs)(`div`,{className:`aha-card aha-summary`,children:[(0,i.jsxs)(`div`,{className:`aha-stars`,role:`img`,"aria-label":d(`starsLabel`,{count:t.stars}),children:[`★`.repeat(t.stars),(0,i.jsx)(`span`,{children:`★`.repeat(3-t.stars)})]}),(0,i.jsx)(`b`,{children:d(`practiceDone`,{correct:t.correct,total:e.items.length})}),(0,i.jsxs)(`div`,{className:`aha-row aha-summaryStats`,children:[(0,i.jsxs)(`span`,{children:[(0,i.jsxs)(`b`,{children:[Math.round(t.accuracy*100),`%`]}),d(`accuracy`)]}),(0,i.jsxs)(`span`,{children:[(0,i.jsx)(`b`,{children:t.bestStreak}),d(`bestStreak`)]})]}),h.length?(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:4},children:[(0,i.jsx)(`span`,{className:`aha-hint`,children:d(`masteryChange`)}),h.map(e=>(0,i.jsxs)(`div`,{className:`aha-row aha-conceptMove`,children:[(0,i.jsx)(`span`,{style:{flex:1,minWidth:120},children:e.name}),e.before?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`span`,{className:`aha-level`,"data-level":e.before,children:d(Xu[e.before])}),(0,i.jsx)(`span`,{"aria-hidden":`true`,children:`→`})]}):null,(0,i.jsx)(`span`,{className:`aha-level`,"data-level":e.after,children:d(Xu[e.after])}),(0,i.jsxs)(`span`,{className:`aha-hint`,children:[e.percent,`%`]})]},e.id))]}):null,g&&s?(0,i.jsx)(`p`,{children:y}):null,(0,i.jsxs)(`div`,{className:`aha-row`,children:[g&&s?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,onClick:_[g.kind],children:b}):null,(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:u,children:d(`retry`)}),s&&g?.kind!==`course`?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:_.course,children:d(`backToCourse`)}):null]})]})}function lp({courseId:e,deckId:t}){let{api:n,t:a}=v(),o=b(),[s,c]=(0,r.useState)(null),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(!1),[p,m]=(0,r.useState)(null);(0,r.useEffect)(()=>{let r=!0;return(async()=>{try{let i;if(t)i=(await n.call(`items/get`,{kind:`decks`,id:t})).item;else{let t=await n.call(`course/cards`,{courseId:e});i=t.job?(await o.run(null,null,{existing:t.job})).deck:t.deck}if(!r)return;c(i);let a=Date.now(),s=op(Object.values(i.srs??{}),a).map(e=>e.id),l=i.cards.filter(e=>!i.srs?.[e.id]).map(e=>e.id);m([...s,...l].slice(0,40))}catch(e){r&&u(e)}})(),()=>{r=!1}},[e,t]);let h=(0,r.useMemo)(()=>s?.cards.find(e=>e.id===p?.[0]),[s,p]);async function g(r){if(h){f(!1),m(e=>{let t=e.slice(1);return r===`again`?[...t,h.id]:t});try{t?await n.call(`items/card-review`,{id:t,cardId:h.id,grade:r}):await n.call(`course/card-review`,{courseId:e,cardId:h.id,grade:r})}catch{}}}return l?(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)($,{error:l})}):!s||!p?(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Pl,{progress:o.progress,label:a(`makingCards`),onCancel:o.running?o.cancel:void 0})}):(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:720},children:[(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:a(`cardsTitle`)}),(0,i.jsx)(`span`,{className:`aha-tag`,children:a(`cardsDue`,{count:p.length})})]}),h?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{className:`aha-flash`,"data-flipped":d,onClick:()=>f(e=>!e),role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&f(e=>!e)},children:(0,i.jsxs)(`div`,{className:`aha-flashInner`,children:[(0,i.jsx)(`div`,{className:`aha-flashFace`,children:(0,i.jsx)(lu,{text:h.front})}),(0,i.jsx)(`div`,{className:`aha-flashFace aha-flashBack`,children:(0,i.jsx)(lu,{text:h.back})})]})}),(0,i.jsxs)(`p`,{className:`aha-hint`,style:{textAlign:`center`},children:[h.tag?`${h.tag} · `:``,a(`flip`)]}),d?(0,i.jsx)(`div`,{className:`aha-row`,style:{justifyContent:`center`},children:[[`again`,`again`],[`hard`,`hard`],[`good`,`good`],[`easy`,`easy`]].map(([e,t])=>(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":e===`good`?`primary`:void 0,onClick:()=>g(e),children:a(t)},e))}):null]}):(0,i.jsx)(Rl,{children:a(`cardsDone`)})]})}function up({courseId:e,unitId:t,sheetId:n}){let{api:a,t:o,toast:s}=v(),c=b(),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(null),[p,m]=(0,r.useState)(null),h=async r=>{f(null);try{let i;if(n)i=(await a.call(`items/get`,{kind:`sheets`,id:n})).item.sheet;else{let n=await a.call(`unit/sheet`,{courseId:e,unitId:t,force:r});i=n.job?(await c.run(null,null,{existing:n.job})).sheet:n.sheet}u(i),m(i.layout)}catch(e){f(e)}};(0,r.useEffect)(()=>{h(!1)},[e,t,n]);let g=r=>{let i={...p,...r};m(i),(n?a.call(`items/sheet-layout`,{id:n,layout:i}):a.call(`unit/sheet-layout`,{courseId:e,unitId:t,layout:i})).catch(e=>s(Ll(o,e)))};if(d)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)($,{error:d})});if(!l||!p)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Pl,{progress:c.progress,label:o(`makingSheet`),onCancel:c.running?c.cancel:void 0})});let _=p.order.map(e=>l.sections.find(t=>t.id===e)).filter(Boolean),y=new Set(p.hidden??[]);return(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:1200},children:[(0,i.jsxs)(`div`,{className:`aha-spread aha-noprint`,children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:l.title||o(`sheetTitle`)}),(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsxs)(`label`,{className:`aha-row`,style:{gap:6},children:[o(`columns`),(0,i.jsx)(`select`,{className:`aha-select`,style:{width:`auto`},value:p.columns,onChange:e=>g({columns:Number(e.currentTarget.value)}),children:[1,2,3,4].map(e=>(0,i.jsx)(`option`,{value:e,children:e},e))})]}),(0,i.jsxs)(`label`,{className:`aha-row`,style:{gap:6},children:[o(`fontSize`),(0,i.jsx)(`select`,{className:`aha-select`,style:{width:`auto`},value:p.fontSize,onChange:e=>g({fontSize:Number(e.currentTarget.value)}),children:[9,10,11,12,13,14,16].map(e=>(0,i.jsx)(`option`,{value:e,children:e},e))})]}),(0,i.jsxs)(`label`,{className:`aha-row`,style:{gap:6},children:[(0,i.jsx)(`input`,{type:`checkbox`,checked:p.highlight,onChange:e=>g({highlight:e.currentTarget.checked})}),o(`highlight`)]}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,onClick:()=>window.print(),children:o(`print`)}),n?null:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,onClick:()=>{u(null),h(!0)},children:o(`regenerate`)})]})]}),(0,i.jsx)(`div`,{className:`aha-row aha-noprint`,style:{gap:6},children:_.map((e,t)=>(0,i.jsxs)(`span`,{className:`aha-chip`,"data-active":!y.has(e.id),children:[(0,i.jsx)(`span`,{onClick:()=>g({hidden:y.has(e.id)?[...y].filter(t=>t!==e.id):[...y,e.id]}),children:e.title}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`ghost`,"data-size":`sm`,onClick:()=>{let t=[...p.order],n=t.indexOf(e.id);n>0&&([t[n-1],t[n]]=[t[n],t[n-1]]),g({order:t})},disabled:t===0,children:`↑`})]},e.id))}),(0,i.jsx)(`div`,{className:`aha-printable`,children:(0,i.jsx)(`div`,{className:`aha-sheet`,"data-highlight":p.highlight,style:{columnCount:p.columns,"--sheet-size":`${p.fontSize}px`},children:_.filter(e=>!y.has(e.id)).map(e=>(0,i.jsxs)(`div`,{className:`aha-sheetSection`,children:[(0,i.jsx)(`h4`,{children:e.title}),e.items.map((e,t)=>(0,i.jsxs)(`div`,{className:`aha-sheetItem`,"data-kind":e.kind,children:[e.title?(0,i.jsxs)(`b`,{children:[e.title,`:`]}):null,e.text?(0,i.jsx)(lu,{text:e.text,compact:!0}):null,e.tex?(0,i.jsx)(Bs,{tex:e.tex}):null,e.cite?(0,i.jsxs)(`span`,{className:`aha-cite`,children:[`(p.`,e.cite.page,e.cite.source?` · ${e.cite.source}`:``,`)`]}):null]},t)),e.related?.length?(0,i.jsxs)(`div`,{className:`aha-cite`,children:[`↔ `,e.related.join(` · `)]}):null]},e.id))})})]})}function dp({kind:e,id:t,materialId:n}){let{api:a,t:o}=v(),s=b(),[c,l]=(0,r.useState)(null),[u,d]=(0,r.useState)(null),[f,p]=(0,r.useState)(0);if((0,r.useEffect)(()=>{let r=!0;return(async()=>{try{if(e===`digest`){let{material:e}=await a.call(`material/get`,{id:n}),t=f===0?e.digest:null;if(!t){let e=await a.call(`material/digest`,{id:n});t=(await s.run(null,null,{existing:e.job})).material.digest}r&&l({title:e.title,digest:t});return}let{item:i}=await a.call(`items/get`,{kind:`sheets`,id:t});r&&l({title:i.title,markdown:i.markdown})}catch(e){r&&d(e)}})(),()=>{r=!1}},[e,t,n,f]),e===`quiz`)return(0,i.jsx)(sp,{deckId:t});if(u)return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)($,{error:u})});if(!c){let e=s.progress;return(0,i.jsx)(`div`,{className:`aha-page`,children:(0,i.jsx)(Pl,{progress:e,label:e?.label===`reading`?o(`digestReading`,{done:e.done,total:Math.max(1,e.total-1)}):e?.label===`writing`?o(`digestWriting`):o(`generating`),onCancel:s.running?s.cancel:void 0})})}if(c.markdown!==void 0)return(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:860},children:[(0,i.jsx)(`h2`,{className:`aha-title`,children:c.title}),(0,i.jsx)(`div`,{className:`aha-card`,children:(0,i.jsx)(lu,{text:c.markdown})})]});let m=c.digest;return(0,i.jsxs)(`div`,{className:`aha-page`,style:{maxWidth:900},children:[(0,i.jsxs)(`h2`,{className:`aha-title`,children:[o(`digestTitle`),` · `,c.title]}),m.missing?.length?(0,i.jsxs)(`div`,{className:`aha-row`,children:[(0,i.jsx)(`span`,{className:`aha-error`,children:o(`digestMissing`,{count:m.missing.length,parts:m.missing.join(`, `)})}),(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>{l(null),p(e=>e+1)},children:o(`redigest`)})]}):null,(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:o(`overview`)}),(0,i.jsx)(lu,{text:m.overview})]}),m.structure?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:o(`structure`)}),m.structure.map((e,t)=>(0,i.jsxs)(`div`,{className:`aha-col`,style:{gap:2},children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`b`,{children:e.heading}),/\d/u.test(e.pages??``)?(0,i.jsxs)(`span`,{className:`aha-cite`,children:[`(p.`,e.pages,`)`]}):null]}),(0,i.jsx)(`ul`,{style:{margin:0},children:e.points.map((e,t)=>(0,i.jsx)(`li`,{children:(0,i.jsx)(lu,{text:e,compact:!0})},t))})]},t))]}):null,m.keyIdeas?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:o(`keyIdeas`)}),(0,i.jsx)(`ul`,{style:{margin:0},children:m.keyIdeas.map((e,t)=>(0,i.jsx)(`li`,{children:(0,i.jsx)(lu,{text:e,compact:!0})},t))})]}):null,m.arguments?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:o(`arguments`)}),m.arguments.map((e,t)=>(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`b`,{children:e.claim}),/\d/u.test(e.page??``)?(0,i.jsxs)(`span`,{className:`aha-cite`,children:[`(p.`,e.page,`)`]}):null,(0,i.jsx)(`p`,{className:`aha-hint`,children:e.support})]},t))]}):null,m.glossary?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:o(`glossary`)}),m.glossary.map((e,t)=>(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`b`,{children:e.term}),`:`,e.meaning]},t))]}):null,m.questions?.length?(0,i.jsxs)(`section`,{className:`aha-card`,children:[(0,i.jsx)(`b`,{children:o(`discussion`)}),(0,i.jsx)(`ol`,{style:{margin:0},children:m.questions.map((e,t)=>(0,i.jsx)(`li`,{children:e},t))})]}):null]})}let fp=[[`home`,`navHome`,`home`],[`courses`,`navCourses`,`courses`],[`assist`,`navAssist`,`assist`],[`materials`,`navMaterials`,`library`],[`studio`,`navStudio`,`studio`],[`shorts`,`navShorts`,`shorts`],[`plan`,`navPlan`,`plan`],[`profile`,`navProfile`,`profile`],[`settings`,`navSettings`,`settings`],[`about`,`navAbout`,`heart`]],pp={home:Id,courses:od,craft:bd,handout:Ad,course:nd,lesson:Bf,practice:sp,cards:lp,sheet:up,item:dp,project:Qf,materials:Wf,studio:ip,assist:Gu,shorts:np,plan:Kf,profile:Zf,settings:ep,about:_e},mp={craft:`courses`,course:`courses`,lesson:`courses`,handout:`courses`,practice:`courses`,project:`courses`,cards:`studio`,sheet:`studio`,item:`studio`};function hp(e){let[t,n]=(0,r.useState)(0);return(0,i.jsx)(s,{onError:j,fallback:({error:t})=>(0,i.jsx)(`div`,{className:`aha`,children:(0,i.jsx)(`main`,{className:`aha-main`,children:(0,i.jsx)(l,{t:e.t,error:t,onHome:()=>n(e=>e+1)})})}),children:(0,i.jsx)(gp,{...e})},t)}function gp({rpc:e,t,language:n,dsh:a}){let{route:o,setRoute:c,crashed:u}=ue(),d=(0,r.useRef)([]),f=(0,r.useCallback)((e,t={},{replace:n=!1}={})=>{c(r=>(n||(d.current.push(r),d.current.length>40&&d.current.shift()),{screen:e,params:t}))},[c]),p=(0,r.useCallback)(()=>{let e=d.current.pop();c(e??{screen:`home`,params:{}})},[c]);(0,r.useEffect)(()=>{let e=e=>{let t=e.detail;t?.screen&&pp[t.screen]&&f(t.screen,t.params??{})};return window.addEventListener(oe,e),()=>window.removeEventListener(oe,e)},[f]);let{value:m,toastText:h}=ce({rpc:e,t,language:n,dsh:a,navigate:f,back:p}),g=pp[o.screen]??Id,v=mp[o.screen]??o.screen,y=e=>{d.current=[],c({screen:e,params:{}})};return(0,i.jsx)(_.Provider,{value:m,children:(0,i.jsxs)(`div`,{className:`aha`,children:[(0,i.jsxs)(`nav`,{className:`aha-nav`,children:[(0,i.jsxs)(`div`,{className:`aha-brand`,children:[(0,i.jsx)(pe,{name:`logo`,size:24}),(0,i.jsxs)(`span`,{children:[t(`appName`),(0,i.jsx)(`small`,{children:t(`appTagline`)})]})]}),fp.map(([e,n,r])=>(0,i.jsxs)(`button`,{type:`button`,className:`aha-navItem`,"data-active":v===e,onClick:()=>y(e),title:t(n),children:[(0,i.jsx)(pe,{name:r,size:17}),(0,i.jsx)(`span`,{children:t(n)})]},e))]}),(0,i.jsx)(`main`,{className:`aha-main`,children:(0,i.jsx)(s,{resetKey:o,onError:u,fallback:({error:e})=>(0,i.jsx)(l,{t,error:e,onRetry:()=>c(e=>({...e})),onHome:()=>y(`home`)}),children:(0,i.jsx)(g,{...o.params},`${o.screen}:${JSON.stringify(o.params)}`)})}),h?(0,i.jsx)(`div`,{className:`aha-toast`,role:`status`,children:h}):null]})})}function _p({useTabInfo:e,rpc:t,t:n,language:r,dsh:a}){let{tab:o}=e(),c=o?.navigation?.params??null,{value:u}=ce({rpc:t,t:n,language:r,dsh:a});return(0,i.jsx)(_.Provider,{value:u,children:(0,i.jsx)(`div`,{className:`aha aha-tab`,style:{height:`100%`,overflow:`auto`,padding:`10px 12px`},children:c?.threadId?(0,i.jsx)(s,{fallback:({error:e,retry:t})=>(0,i.jsx)(l,{t:n,error:e,place:`tab`,onRetry:t}),children:(0,i.jsx)(vp,{threadId:c.threadId,jobId:c.jobId})},`${c.threadId}:${o.navigation.revision??0}`):(0,i.jsx)(`p`,{className:`aha-hint`,children:n(`openBoard`)})})})}function vp({threadId:e,jobId:t}){let{api:n,t:a}=v(),[o,s]=(0,r.useState)(null);return(0,r.useEffect)(()=>{let r=!0;return(async()=>{let i=t?await n.call(`job/get`,{id:t}).catch(()=>null):null;if(i&&i.status===`running`){r&&s({stream:i,steps:[],title:``});return}try{let{item:t}=await n.call(`items/get`,{kind:`assist`,id:e}),i=t.turns.at(-1);r&&s({stream:null,steps:i?.board?.steps??[],title:t.title,language:t.language,turn:t.turns.length-1})}catch(e){r&&s({error:e})}})(),()=>{r=!1}},[e,t]),o?o.error?(0,i.jsx)(`p`,{className:`aha-error`,children:Ll(a,o.error)}):(0,i.jsx)(Uu,{scope:{kind:`thread`,id:e,turn:o.turn??0},title:o.title||a(`boardSession`),steps:o.steps,stream:o.stream,language:o.language,recordChecks:!1,tour:!1,talkKey:!1}):(0,i.jsx)(Ml,{label:a(`loading`)})}function yp({rpc:e,t,language:n,dsh:r}){return ce({rpc:e,t,language:n,dsh:r}).value}function bp(e){return e?.meta&&typeof e.meta==`object`?e.meta:null}function xp(e){let t=yp(e);return(0,i.jsx)(_.Provider,{value:t,children:(0,i.jsx)(`div`,{className:`aha aha-card`,style:{height:`auto`,display:`flex`,flexDirection:`column`,gap:8,margin:`6px 0`,padding:`10px 12px`},children:(0,i.jsx)(s,{fallback:({error:t,retry:n})=>(0,i.jsx)(l,{t:e.t,error:t,place:`card`,onRetry:n}),children:(0,i.jsx)(Sp,{...e})})})})}function Sp({toolName:e,phase:t,block:n,dsh:a,inputActions:o,t:s,callId:c}){let l=bp(n),u=n?.args?.text?.(`topic`)??n?.args?.text?.(`goal`)??``,d=t!==`result`,f=t===`result`&&n?.isError;return(0,r.useEffect)(()=>{if(e!==`aha_whiteboard`||t!==`result`||!l?.threadId)return;let r=typeof n?.time!=`number`||Date.now()-n.time<12e4,i=`aha-tutor:opened:${c}`;try{if(!r||window.sessionStorage.getItem(i))return;window.sessionStorage.setItem(i,`1`)}catch{if(!r)return}a.openBoardTab({threadId:l.threadId,jobId:l.jobId})},[e,t,l?.threadId]),f?(0,i.jsx)(`span`,{className:`aha-error`,children:s(`errorGeneric`,{message:(n.content??[]).map(e=>e.text??``).join(` `).slice(0,200)})}):e===`aha_whiteboard`?(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:8},children:[d?(0,i.jsx)(`span`,{className:`aha-spinner`}):`🧑🏫`,(0,i.jsx)(`b`,{children:s(`toolBoardTitle`)}),(0,i.jsx)(`span`,{className:`aha-hint`,children:l?.title??u})]}),l?.threadId?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>a.openBoardTab({threadId:l.threadId,jobId:l.jobId}),children:s(`openBoard`)}):null]}):e===`aha_quiz`?d||!l?.items?(0,i.jsxs)(`span`,{className:`aha-row`,children:[(0,i.jsx)(`span`,{className:`aha-spinner`}),s(`makingPractice`)]}):(0,i.jsx)(Cp,{items:l.items,topic:l.topic,inputActions:o}):e===`aha_course`?(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:8},children:[d?(0,i.jsx)(`span`,{className:`aha-spinner`}):`🎓`,(0,i.jsx)(`b`,{children:s(`modeCourse`)}),(0,i.jsx)(`span`,{className:`aha-hint`,children:l?.goal??u})]}),l?.courseId?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>de(a,`craft`,{courseId:l.courseId}),children:s(`open`)}):null]}):e===`aha_cheatsheet`?(0,i.jsxs)(`div`,{className:`aha-spread`,children:[(0,i.jsxs)(`span`,{className:`aha-row`,style:{gap:8},children:[d?(0,i.jsx)(`span`,{className:`aha-spinner`}):`📄`,(0,i.jsx)(`b`,{children:s(`sheetTitle`)}),(0,i.jsx)(`span`,{className:`aha-hint`,children:l?.title??u})]}),l?.sheetId?(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-size":`sm`,onClick:()=>de(a,`sheet`,{sheetId:l.sheetId}),children:s(`open`)}):null]}):(0,i.jsxs)(`span`,{className:`aha-hint`,children:[d?(0,i.jsx)(`span`,{className:`aha-spinner`}):`🧠`,` `,s(`navProfile`)]})}function Cp({items:e,topic:t,inputActions:n}){let{t:a,language:o}=v(),[s,c]=(0,r.useState)(0),[l,u]=(0,r.useState)([]),d=e[s],f=(0,r.useMemo)(()=>l.map((e,t)=>`${t+1}. ${e.correct?`✔`:e.partial?`◐`:`✘`} ${e.answer}`).join(`
|
|
694
|
+
`),[l]);if(!d){let r=l.filter(e=>e.correct).length;return(0,i.jsxs)(`div`,{className:`aha-col`,children:[(0,i.jsx)(`b`,{children:a(`practiceDone`,{correct:r,total:e.length})}),n?.setDraft?(0,i.jsx)(`div`,{children:(0,i.jsx)(`button`,{type:`button`,className:`aha-btn`,"data-kind":`primary`,"data-size":`sm`,onClick:()=>n.setDraft(`${t??``} ${a(`practiceDone`,{correct:r,total:e.length})}\n${f}`),children:a(`submit`)})}):null]})}return(0,i.jsxs)(`div`,{className:`aha-col`,children:[(0,i.jsxs)(`span`,{className:`aha-hint`,children:[a(`checkTitle`),` · `,s+1,`/`,e.length]}),(0,i.jsx)(Nu,{item:d,language:o===`zh`?`zh-CN`:`en`,compact:!0,onResult:e=>u(t=>[...t,{...e,answer:d.prompt.slice(0,60)}]),onContinue:()=>c(e=>e+1)},s)]})}let wp=`ahaTutor`,Tp={appName:`开窍`,appTagline:`AI 私人老师`,navHome:`首页`,navCourses:`我的课程`,navMaterials:`资料库`,navStudio:`学习工具`,navAssist:`即时答疑`,navShorts:`讲解短片`,navPlan:`学习计划`,navProfile:`我的画像`,navSettings:`设置`,navAbout:`关于作者`,heroTitle:`今天想把什么弄懂?`,heroHint:`说出你想学的东西,或者丢一本教材进来。我会先了解你,再为你量身做一门课,在白板上一步步讲给你听。`,heroPlaceholder:`比如:三周内搞懂线性代数里的特征值|把这份讲义变成一门课|量子隧穿到底是怎么回事`,modeCourse:`定制一门课`,modeExplain:`讲个概念`,modeSolve:`陪我解题`,modeVisualize:`画出来看看`,modeDigest:`消化长文档`,modeShort:`两分钟短片`,attach:`添加资料`,attached:`已附 {count} 份资料`,start:`开始`,quickStart:`跳过提问,直接出课`,continueLearning:`继续学习`,todayPlan:`今天的安排`,noPlanToday:`今天没有安排,去建一门课或者休息一下吧。`,recentWork:`最近做的`,sampleCourses:`示例课程`,sampleHint:`不花 token 也能先体验白板课堂。`,importSample:`加入我的课程`,coursesTitle:`我的课程`,filterAll:`全部`,filterActive:`学习中`,filterDone:`已学完`,filterArchived:`已归档`,searchCourses:`搜索课程`,noCourses:`还没有课程。回到首页,告诉我你想学什么。`,importPack:`导入课程包`,lessonsCount:`{done}/{total} 讲`,minutesLeft:`还剩约 {minutes} 分钟`,statusIntake:`待回答问题`,statusBlueprint:`待确认蓝图`,statusReady:`可以学习`,nextUp:`下一讲:{title}`,craftQuestionsTitle:`先认识一下你`,craftQuestionsHint:`回答几个问题,课程会按你的情况来设计。拿不准的可以跳过。`,craftOther:`其他(自己写)`,craftPace:`学习节奏`,paceIntensive:`冲刺`,paceIntensiveHint:`约 6 周,抓重点`,paceBalanced:`稳步`,paceBalancedHint:`约 3 个月,基础 + 练习 + 项目`,paceRelaxed:`不设期限`,paceRelaxedHint:`慢慢来,挖得更深`,weeklyMinutes:`每周大约能学多久`,minutesUnit:`{minutes} 分钟`,deadline:`截止日期(可选)`,makeBlueprint:`生成课程蓝图`,thinkingQuestions:`正在想该问你什么…`,designingBlueprint:`正在设计课程蓝图…`,blueprintTitle:`课程蓝图`,blueprintHint:`这是为你设计的课程结构。可以直接改标题、删减或调整顺序,也可以用一句话让我改。`,reviseLabel:`用一句话修改`,revisePlaceholder:`比如:多加一些编程实战;第二单元讲浅一点;去掉第 3 讲`,revise:`修改`,revising:`正在修改…`,addLesson:`加一讲`,addLecture:`加一章`,addUnit:`加一个单元`,moveUp:`上移`,moveDown:`下移`,remove:`删除`,projects:`实战项目`,confirmCourse:`确认,生成整门课`,confirming:`正在准备练习和项目… {done}/{total}`,courseReady:`课程已就绪`,unitN:`第 {n} 单元`,lectureN:`第 {n} 章`,estMinutes:`{minutes} 分钟`,saveEdits:`保存修改`,saved:`已保存`,tabOutline:`大纲`,tabPractice:`练习与测验`,tabSheets:`速查表`,tabCards:`闪卡`,tabProjects:`项目`,tabProgress:`进度`,learn:`学习`,practice:`练习`,review:`复习`,remedial:`巩固`,exportPack:`导出课程包`,exportWithProgress:`连同我的学习进度`,rename:`重命名`,archive:`归档`,unarchive:`取消归档`,deleteCourse:`删除课程`,deleteConfirm:`删除后无法恢复。确定删除「{title}」吗?`,cancel:`取消`,confirm:`确定`,close:`关闭`,back:`返回`,retry:`重试`,generate:`生成`,regenerate:`重新生成`,generating:`正在生成…`,open:`打开`,unitQuiz:`单元测验`,unitSheet:`单元速查表`,mastery:`掌握度`,conceptMastery:`知识点掌握情况`,preparingLesson:`老师正在备课…`,bufferingLesson:`下一部分马上写好…`,play:`播放`,pause:`暂停`,prevStep:`上一步`,nextStep:`下一步`,speed:`语速`,voiceOn:`声音开`,voiceOff:`静音`,voiceDownCloud:`云端语音用不了:{reason}这节课先静音往下讲。`,voiceDownSystem:`朗读用不了:{reason}这节课先静音往下讲。`,openSettings:`去设置`,captions:`字幕`,raiseHand:`举手提问`,askPlaceholder:`哪里没听懂?直接问`,ask:`提问`,answering:`老师在想怎么回答…`,reexplain:`换个讲法`,styleAnalogy:`打个比方`,styleVisual:`画图讲`,styleExample:`举个例子`,styleSimpler:`讲简单点`,styleDeeper:`讲深一点`,stepOf:`第 {current}/{total} 步`,checkTitle:`小测一下`,confidence:`你有多确定?`,confSure:`很确定`,confUnsure:`有点犹豫`,confGuess:`猜的`,submit:`提交`,correct:`答对了`,incorrect:`不太对`,partial:`部分正确`,continue:`继续`,skip:`跳过`,hint:`提示`,yourAnswer:`你的答案`,grading:`老师在批改…`,lessonDone:`这一讲讲完了`,selfRate:`你觉得自己掌握得怎么样?`,rate1:`没懂`,rate3:`一般`,rate5:`很清楚`,nextLesson:`下一讲`,doPractice:`去做练习`,backToCourse:`回到课程`,remedialAdded:`我给你加了一节巩固课:{title}`,challengeNote:`这部分你掌握得很好,接下来会讲得更深一些。`,replay:`重新讲一遍`,regenerateLesson:`重新备课`,exportBoard:`导出板书`,practiceTitle:`练习`,check:`检查答案`,checked:`已检查`,score:`得分 {score}`,practiceDone:`本组练习完成:答对 {correct}/{total}`,showExplanation:`看解析`,makingPractice:`正在出题…`,cardsTitle:`闪卡`,cardsDue:`待复习 {count} 张`,flip:`点击翻面`,again:`忘了`,hard:`困难`,good:`记得`,easy:`简单`,cardsDone:`这一轮复习完成了!`,makingCards:`正在制作闪卡…`,sheetTitle:`速查表`,columns:`列数`,fontSize:`字号`,highlight:`高亮重点`,print:`打印`,hideSection:`隐藏`,showSection:`显示`,makingSheet:`正在整理速查表…`,projectBrief:`项目说明`,milestones:`里程碑`,rubric:`评分标准`,openWorkspace:`打开项目工作区`,openingWorkspace:`正在准备项目文件夹…`,workspaceReady:`项目文件夹在:{path}`,workspaceSession:`已在 DSH 中打开项目会话`,workspaceManual:`在 DSH 里把这个文件夹添加为工作区,就能让编程 Agent 陪你完成项目。`,copyPath:`复制路径`,submitProject:`提交作品`,submitNotes:`写点说明(做了什么、遇到的问题)`,includeFiles:`同时提交项目文件夹里的文件`,reviewing:`老师在看你的作品…`,reviewTotal:`总分 {total}/{max}`,strengths:`做得好的地方`,nextSteps:`可以改进的地方`,submissions:`历次提交`,materialsTitle:`资料库`,materialsHint:`上传教材、讲义、论文或网页,用来建课、做速查表和闪卡,讲课时也会引用原文页码。`,uploadFiles:`上传文件`,dropHere:`把文件拖到这里(PDF、Word、PPT、Markdown、文本、图片)`,addUrl:`添加网页`,urlPlaceholder:`https://…`,reading:`正在读取…`,pages:`{count} 页`,slides:`{count} 张幻灯片`,makeCourse:`用它建课`,makeSheet:`速查表`,makeCards:`闪卡`,makeNotes:`笔记`,makeQuiz:`测验`,digest:`消化`,digestTitle:`文档消化`,overview:`概要`,structure:`结构`,keyIdeas:`核心观点`,arguments:`论点与论据`,glossary:`术语表`,discussion:`值得思考的问题`,imageNeedsVision:`图片需要支持识图的模型才能读取。`,noMaterials:`资料库是空的。`,studioTitle:`学习工具`,studioHint:`用资料库里的资料一键生成学习材料。`,pickMaterials:`选择资料`,sheets:`速查表`,notes:`笔记`,decks:`闪卡组`,quizzes:`测验`,focusPlaceholder:`重点(可选),比如:期中考试范围第 3–6 章`,assistTitle:`即时答疑`,assistHint:`不用建课,有问题直接问。老师会在白板上讲给你听。`,assistPlaceholder:`想问什么?可以贴题目、概念或附上资料`,followUp:`继续追问`,history:`历史记录`,newThread:`新的问题`,shortsTitle:`讲解短片`,shortsHint:`输入一个主题或贴一个网址,生成一段约两分钟、能分享的白板讲解。`,topicPlaceholder:`比如:为什么天空是蓝色的`,makeShort:`生成短片`,exportVideo:`导出视频`,exporting:`正在录制视频…{percent}%`,exportNeedsCloud:`浏览器语音无法录进视频,导出的视频会带字幕但没有声音。在设置里配置云端语音即可导出有声版。`,exportUnsupported:`当前环境不支持导出视频。`,planTitle:`学习计划`,planHint:`根据你所有在学的课程、每周时间和截止日期自动排课,并留出复习时间。`,studyDays:`学习日`,weekdays:`日,一,二,三,四,五,六`,exams:`考试与截止日期`,addExam:`添加`,examTitle:`名称`,examDay:`日期`,deadlineRisk:`「{course}」按现在的节奏会在 {finish} 学完,晚于截止日期 {deadline}。建议每周提高到约 {minutes} 分钟。`,startReview:`开始复习`,reviewDue:`有 {count} 个知识点该复习了`,nothingToReview:`暂时没有要复习的内容。`,savePlan:`保存`,lessonItem:`学习`,reviewItem:`复习`,examItem:`考试`,today:`今天`,profileTitle:`我的画像`,profileHint:`老师会记住这些信息,让每门课都更贴合你。你可以随时修改或清空。`,background:`背景`,goals:`目标`,strengthsLabel:`擅长`,weaknesses:`薄弱点`,learningStyle:`喜欢的讲解方式`,memoryNotes:`老师的备忘`,clearProfile:`清空画像`,clearProfileConfirm:`清空后老师会忘记你的背景和偏好。确定吗?`,onePerLine:`每行一条`,settingsTitle:`设置`,modelsTitle:`模型`,teachModel:`出课与讲课`,quickModel:`批改与问答`,followDefault:`跟随 DSH 默认模型`,modelsHint:`讲课质量主要取决于「出课与讲课」模型;批改和课堂提问可以用更快的模型。`,voiceTitle:`语音讲解`,engine:`语音来源`,engineBrowser:`系统语音(免费)`,engineCloud:`云端语音`,engineOff:`不朗读`,browserVoice:`系统音色`,autoVoice:`自动选择`,noVoiceForLanguage:`没有找到适合当前语言的系统音色。可以在系统设置里安装中文语音,或改用云端语音。`,cloudProvider:`云端服务`,providerOpenai:`OpenAI 兼容接口`,providerVolcengine:`火山引擎(豆包语音)`,providerMinimax:`MiniMax`,providerAzure:`Azure 语音`,field_baseUrl:`接口地址`,field_model:`模型`,field_voice:`音色`,field_appId:`App ID`,field_cluster:`Cluster`,field_groupId:`Group ID`,field_region:`区域`,field_apiKey:`密钥`,keySaved:`已保存密钥`,keyMissing:`未保存密钥`,saveKey:`保存密钥`,clearKey:`清除密钥`,testVoice:`试听`,testSentence:`你好,我是你的私人老师。我们一起把难的东西弄懂。`,voiceRate:`默认语速`,boardTheme:`白板外观`,themeAuto:`跟随系统`,themeLight:`白板`,themeDark:`黑板`,versionTitle:`插件版本`,versionCurrent:`当前版本`,versionLatest:`最新版本`,versionCheck:`检查更新`,versionChecking:`正在检查…`,versionFailed:`无法检查最新版本。`,versionUpToDate:`已是最新版本。`,versionAvailable:`发现新版本 v{version}。`,versionLinked:`当前是本地开发安装,请在插件仓库拉取最新代码并重新构建。`,versionManual:`没找到这个插件所在的 profile,请到 DSH 插件页按精确版本安装:dsh-aha-tutor@{version}。`,versionUpdate:`更新插件`,versionUpdating:`正在更新…`,versionUpdateFailed:`更新失败,请稍后重试,或到 DSH 插件页按精确版本手动安装。`,versionPending:`v{version} 刚发布不久,DSH 的 pnpm 要等过了发布冷却期才会安装,请稍后再试。`,versionPendingUntil:`v{version} 刚发布不久,DSH 的 pnpm 要等过了发布冷却期才会安装,{time} 之后可以更新。`,versionUpdated:`已更新到 v{version}。请完全退出并重新打开 DSH 桌面版,新版本才会生效(只刷新页面不够)。`,privacyNote:`课程、进度和资料都只保存在这台电脑的 DSH 数据目录里。`,aboutTitle:`关于作者`,aboutRole:`「开窍 · AI 私人老师」的作者`,aboutIntro:`开窍免费开源,赞赏全凭心意。如果它帮你弄懂了某个卡了很久的知识点,欢迎扫码支持,让小窍继续长大。`,aboutRepo:`GitHub 仓库`,aboutIssues:`问题反馈`,aboutSupport:`支持作者`,aboutWechat:`微信赞赏`,aboutAlipay:`支付宝`,aboutScan:`用手机扫一扫上面的码`,errorGeneric:`出了点问题:{message}`,crashPage:`这一页出了点问题,没能显示出来。`,crashPageHint:`可以重试一次,或者先回到首页。`,crashPart:`这部分内容出了点问题,没能显示出来。`,backHome:`回到首页`,loading:`加载中…`,empty:`这里还什么都没有。`,copied:`已复制`,minutes:`分钟`,untitled:`未命名`,delete:`删除`,edit:`编辑`,save:`保存`,all:`全部`,mode:`模式`,boardSession:`白板讲解`,toolBoardTitle:`老师在白板上讲解`,openBoard:`打开白板`,panelLabel:`开窍 · AI 私人老师`,copyCode:`复制`,footnotes:`脚注`,"err_llm-auth":`模型未登录或密钥无效,请在 DSH 设置里检查模型服务。`,"err_llm-quota":`模型额度不足或请求太频繁,稍后再试。`,"err_llm-context":`资料太长,超出了模型的上下文。少选一些资料,或换一个上下文更大的模型。`,"err_llm-unavailable":`所选模型不可用,请在开窍设置里换一个模型。`,"err_llm-timeout":`模型响应超时,请重试。`,"err_bad-output":`模型这次没给出可用的结果,请重试,或在设置里换一个更强的模型。`,boardView:`板书视图`,viewCanvas:`画布`,viewPages:`分页`,boardViewHint:`画布:整讲的板书从上到下排在一张画布上,可以拖动、缩放,讲课时自动跟着老师写的地方。分页:一次看一页,用右上角的页码翻页。`,canvasTools:`画布缩放`,canvasHelp:`拖动或滚动来移动,按住 Ctrl/⌘ 滚动或双指捏合来缩放,双击某一页放大到这一页`,canvasZoomIn:`放大`,canvasZoomOut:`缩小`,canvasZoomReset:`回到 100%(铺满宽度)`,canvasFit:`看全貌:缩小到能看到所有页`,canvasFitShort:`全貌`,canvasFollow:`回到老师这里`,canvasPage:`第 {n} 页`,voiceAsk:`说出问题`,voiceAskWith:`说出问题(麦克风:{name})`,voiceStop:`停止录音`,talkKeyHint:`快捷键:按住 V 说话,松开结束;也可以按一下 V 开始,说完再按一下。`,raiseHandKey:`暂停讲课,在提问框里提问。也可以直接按住 V 说出问题。`,voiceSetup:`语音提问需要先在 DSH 里启用「语音输入」`,voiceWorking:`识别中…`,voice_off:`语音提问用的是 DSH 的实验功能「语音输入」:在 DSH 的插件管理里启用「语音输入」,在它的详情里点「下载并准备」,准备好后再点这里。`,voice_unprepared:`语音识别模型还没准备好:在 DSH 插件管理的「语音输入」详情里点「下载并准备」(约 240 MB),准备好后再点这里。`,voice_preparing:`语音识别模型正在准备,好了以后再点这里。进度在 DSH 插件管理的「语音输入」详情里。`,voice_failed:`语音识别模型没有准备成功:到 DSH 插件管理的「语音输入」详情里重试。`,"err_speech-off":`DSH 的「语音输入」没有启用:在 DSH 的插件管理里启用它并下载准备模型。`,"err_speech-unprepared":`语音识别模型还没准备好:在 DSH 插件管理的「语音输入」详情里点「下载并准备」。`,"err_speech-audio":`这段录音没法读取,请再录一次。`,"err_speech-too-long":`录音太长了,一次最多 2 分钟。`,"err_speech-failed":`语音识别出错了,请再试一次。`,"err_speech-empty":`没听到说话,请离麦克风近一点再说一次。`,"err_mic-denied":`没有麦克风权限:请在浏览器或系统设置里允许 DSH 使用麦克风。`,"err_mic-missing":`没有找到麦克风。`,"err_mic-chosen-missing":`DSH「语音输入」里选的麦克风现在用不了:插上它,或到 DSH 插件管理的「语音输入」详情里换一个。`,micChosenMissing:`DSH「语音输入」里选的麦克风「{name}」现在用不了:插上它,或到 DSH 插件管理的「语音输入」详情里换一个。`,"err_mic-busy":`麦克风正被别的程序占用。`,"err_mic-unsupported":`这里没法录音。`,prepThinking:`构思`,prepWriting:`写板书`,prepStarting:`正在联系模型…`,prepThinkingDetail:`老师在想这一讲怎么讲,已构思 {chars} 字`,prepStep:`正在写第 {n} 步`,prepCounts:`已写好 {steps} 步 · 共 {chars} 字`,prepSeconds:`已用 {seconds} 秒`,dayLabel:`{month} 月 {day} 日 · 周{weekday}`,exportPdf:`PDF 文档(一页一张板书)`,exportPng:`PNG 图片(每页一张)`,exportMarkdown:`Markdown 文本`,exportingBoard:`正在导出板书…{done}/{total}`,animationStill:`动画(在课堂里播放)`,monthLabel:`{year} 年 {month} 月`,prevMonth:`上个月`,nextMonth:`下个月`,markDone:`标记为已完成`,unmarkDone:`取消完成`,checkedAuto:`已在课程里完成`,dayEmpty:`这天没有安排。`,webResearch:`联网查资料`,webResearchHint:`建课前先用 DSH 的网页搜索查一查这个主题,出题和设计课程时参考`,researching:`正在联网查资料…`,researchFound:`参考了 {count} 个网上来源`,researchSkipped:`未联网检索:{reason}`,"researchSkipped_no-credential":`DSH 还没有配置 DeepSeek 密钥,网页搜索要用它`,researchSkipped_unavailable:`这个 DSH 没有可用的网页搜索`,researchSkipped_failed:`搜索出错了`,researchSkipped_empty:`没有搜到合适的资料`,courseSources:`参考来源`,buildResearch:`参考 {count} 个网上来源`,"err_llm-empty":`模型这次没有返回内容,请重试。如果一直这样,可以在开窍设置里换一个模型。`,"err_llm-failed":`调用模型出错了,请稍后重试。`,nextStepTitle:`下一步`,nextStepReview:`有 {count} 个知识点到了复习的时候`,nextStepWeak:`「{concept}」还比较薄弱,先练一练`,nextStepLesson:`接着学「{title}」`,nextStepDone:`这门课都学完了,做一次单元测验检验一下吧`,practiceThis:`练习这一讲`,streakCount:`连对 {count}`,keysHint:`键盘:1–4 选择 · Enter 提交或继续 · H 看提示`,starsLabel:`{count} 颗星`,accuracy:`正确率`,bestStreak:`最长连对`,masteryChange:`这一轮之后的掌握程度`,stageNone:`未开始`,stageWeak:`薄弱`,stageLearning:`学习中`,stageProficient:`熟练`,stageMastered:`掌握`,nextRelearn:`有几个点还没吃透,回到这一讲再听一遍会更稳。`,nextReview:`基本会了,但还不够牢,复习一轮会记得更久。`,nextQuiz:`掌握得很扎实,可以挑战单元测验了。`,nextLessonStep:`可以继续往下学了。`,nextCourse:`这一部分练完了。`,relearnLesson:`回到这一讲`,reviewCourse:`复习这门课`,editOutline:`编辑课程大纲`,saveAndBack:`保存并返回`,extendCourse:`让老师续写一个单元`,extendInstruction:`在课程最后再加一个单元:承接已有内容,往前推进一步,保持同样的难度梯度;已有的单元保持不变。`,proposalTitle:`老师的修改建议`,proposalNoChange:`这次修改没有改动任何一讲。`,applyProposal:`应用修改`,discardProposal:`放弃`,proposalApplied:`已应用修改`,diffAdded:`新增`,diffRemoved:`删除`,diffRenamed:`改名`,diffChanged:`调整`,diffUnit:`单元「{title}」`,reworkLesson:`让老师改这一讲`,splitLesson:`拆成两讲`,deepenLesson:`讲深一些`,splitDone:`已拆成两讲,记得保存`,deepenDone:`已改得更深,记得保存`,confirmRemoveUnit:`删除单元「{title}」和其中所有的课?`,confirmRemoveLecture:`删除「{title}」和其中所有的课?`,confirmRemoveStarted:`「{title}」已经开始学了,删除后这一讲的板书和进度都不再显示。确定删除?`,craftSize:`课程规模`,sizeAuto:`让老师决定`,sizeAutoHint:`按你的目标定,一个小问题可能只要一两讲`,sizeShort:`精简`,sizeShortHint:`3–8 讲,抓住最关键的部分`,sizeStandard:`标准`,sizeStandardHint:`10–20 讲,基础、练习加一个应用项目`,sizeFull:`完整`,sizeFullHint:`25–45 讲,系统深入,留出拓展的空间`,buildAnswers:`整理你的回答`,buildMaterials:`阅读你的资料`,buildUnits:`规划单元`,buildLessons:`写每一讲`,buildLessonsSoFar:`写每一讲:已写好 {count} 讲`,workPlaceholder:`一步一行写出你的过程,公式写在 $…$ 里,例如 $x^2+6x+9=(x+3)^2$`,workPreview:`公式预览`,wrongStep:`出错的一步`,fixedStep:`应该写成`,correction:`订正`,correctionOf:`订正:{tag}`,correcting:`老师在板上订正…`,seeCorrection:`看老师订正`,handout:`讲义`,handoutHint:`把这一讲整理成一页可打印的讲义`,handoutOfLesson:`本讲讲义`,handoutMaking:`老师在把这一讲整理成讲义…`,handoutPoints:`要点`,handoutExample:`例题`,handoutMistakes:`常见错误`,handoutGlossary:`术语表`,handoutQuestions:`自测`,handoutAnswer:`答案`,backToLesson:`回到这一讲`,addMaterials:`补充资料`,addMaterialsTitle:`给这门课补充资料`,addMaterialsHint:`选几份资料(也可以现在上传),老师会看看它们讲了什么,给出怎么改大纲的建议;你应用之后才生效,学过的讲保留进度,以后讲课也会引用这些资料。`,addMaterialsPlaceholder:`想让老师怎么用这些资料(可以不填),比如:重点补上第 5 章的例题`,addMaterialsSend:`请老师看看怎么加`,changeMaterials:`改选资料`,proposalMaterials:`补充资料:{titles}`,librarySearch:`找资料:输入标题或主题即时筛选,回车在正文里搜`,librarySearchText:`搜正文`,libraryFound:`正文里找到 {count} 处`,libraryNotFound:`正文里没找到「{query}」`,libraryNoTitleMatch:`没有标题或主题对得上的资料,按回车可以在正文里搜。`,pageN:`第 {page} 页`,slideN:`第 {slide} 张`,tourLabel:`课堂导览`,tourReplay:`课堂导览`,tourSkip:`跳过`,tourBack:`上一步`,tourNext:`下一步`,tourStart:`开始上课`,tourBoardTitle:`老师在这块黑板上讲`,tourBoard:`老师边讲边写。拖动或滚动可以移动板书,按住 Ctrl(Mac 上是 ⌘)滚动可以缩放,右上角的「全貌」能看到整讲。`,tourControlsTitle:`播放和节奏`,tourControls:`播放、暂停、上一步、下一步和语速都在这里,按空格也能暂停;字幕和声音可以随时开关。`,tourRaiseTitle:`有问题就举手`,tourRaise:`点「举手提问」,或者直接在提问框里写。也可以说出来:点麦克风,或者按住 V 键说话,松开后问题就进了提问框。老师答完会接着讲。`,tourReexplainTitle:`这一步没听懂`,tourReexplain:`点「换个讲法」,让老师打个比方、画图、举个例子,或者讲简单点、讲深一点。`,tourChallengeTitle:`觉得讲错了`,tourChallenge:`点「这一步不对?」,老师会先仔细核对;真错了会当场改正,并把这一讲一起改好。`,tourPanelTitle:`课堂要点和讲解记录`,tourPanel:`这里能看到这一讲的要点讲到了哪儿;老师说过的话都在讲解记录里,点一条就回到那里。`,outlineView:`大纲的显示方式`,viewList:`列表`,viewMap:`导图`,mapTools:`导图工具`,mapFollow:`回到最新`,mapPick:`到列表里编辑这一讲`,depthTitle:`这一讲的讲法`,depthNone:`不限`,depth_intuition:`直观理解`,depth_definition:`定义概念`,depth_derivation:`推导证明`,depth_application:`动手应用`,depth_extension:`深入拓展`,profileName:`怎么称呼你`,profileNameHint:`老师开课时会这样叫你一次,可以不填`,profileNamePlaceholder:`比如:小明`,challenge:`这一步不对?`,challengeLabel:`这一步不对?`,challengeTitle:`这一步哪里不对?(可以不填)`,challengeTitleStep:`第 {n} 步哪里不对?(可以不填)「{text}」`,challengePlaceholder:`比如:5 cm 是不是应该换成 0.05 m?`,challengeHint:`老师会先仔细算一遍,要等十几秒到半分钟。`,challengeSend:`请老师核对`,challengeLine:`不对?`,challengeStep:`第 {n} 步不对?`,checkingStep:`老师在仔细核对这一步…`,challenge_wrong:`确实有错,已更正`,challenge_right:`核对过,没有错`,challenge_unclear:`要看约定`,fixed:`已更正`,fixedWas:`原来写的是:{was}`,itemChallenge:`这题有问题?`,itemChallengeTitle:`这题哪里不对?(可以不填)`,itemChallengePlaceholder:`比如:我觉得 B 也对;或者:答案的单位是不是错了?`,itemChallengeHint:`老师会先仔细算一遍,要等几秒到半分钟,你可以先做下一题。`,itemChecking:`老师在仔细核对这道题…`,itemCheckTitle:`老师核对`,itemCheck_wrong:`确实有错,已更正`,itemCheck_unclear:`题目没说清楚,已补充`,itemCheck_misgraded:`判分有误,已重新判`,itemCheck_right:`核对过,没有错`,regraded:`(重新判过)`,itemCheckDone:`第 {n} 题核对完了:{verdict}。`,itemCheckRegraded:`已按核对结果重新判分。`,itemCheckEarlier:`这道题你之前还答过 {count} 次,也按改好的题重新判了。`,itemCheckFailedNotice:`第 {n} 题没核对成功:{message}`,fixedWasItem:`原来写的:`,fixedPart_prompt:`题目:{text}`,fixedPart_option:`选项 {id}:{text}`,fixedPart_answer:`答案:{text}`,fixedPart_unit:`单位:{text}`,fixedPart_tolerance:`允许误差:{text}`,fixedPart_explanation:`解析:{text}`,fixedPart_hints:`提示:{text}`,fixedPart_rubric:`评分要点:{text}`,fixedPart_figure:`图也重画了`,lessonGoals:`课堂要点`,transcript:`讲解记录`,showPanel:`讲解记录`,hidePanel:`收起侧栏`,panelTitle:`课堂侧栏`,boardFont:`板书字体`,fontHand:`手写体`,fontStandard:`标准体`,digestMissing:`有 {count} 部分没读成功({parts}),下面的结果不含这些内容。`,redigest:`重新消化`,revisingSoFar:`正在修改…已写好 {count} 节课`,"err_bad-url":`这个网址不能导入:只支持公开网站的 http 或 https 地址,不支持本机、局域网和带账号密码的地址。`,err_network:`网页打不开或加载超时,请检查网址后重试。`,err_http:`网页返回了错误,没能导入。`,blueprintSoFar:`正在设计课程蓝图…已写好 {count} 节课`,reexplainedAs:`换个讲法:{style}`,digestReading:`正在通读全文:已读 {done}/{total} 部分`,digestWriting:`正在汇总全文要点`,keepsRunning:`可以先离开这一页,生成会在后台继续。`,err_cancelled:`已取消。`,courseCreatedInChat:`课程「{title}」已创建,可以在「开窍」里继续。`,err_failed:`出了点问题,请稍后再试。`,err_invalid:`这个请求没法处理。请刷新页面后再试;如果还是这样,请退出并重新打开 DSH。`,"err_not-found":`找不到这项内容,它可能已经被删除了。`,err_forbidden:`没有权限做这件事。`,"err_unknown-endpoint":`插件刚更新过,请退出并重新打开 DSH 后再试。`,err_aborted:`上传中断了,请重试。`,err_connection:`连不上 DSH,请确认它还开着,然后重试。`,err_missing:`这项任务找不到了,可能是 DSH 重启过,请重试。`,"err_llm-missing":`还没有可用的模型,请先在 DSH 设置里配置一个模型服务。`,"err_no-board":`板书还没写好,等第一步出来再试。`,"err_empty-question":`先写下你的问题。`,"err_empty-goal":`先说说你想学什么,或者添加一份资料。`,"err_empty-change":`先写下你想怎么改。`,"err_no-blueprint":`还没有课程蓝图,请先生成蓝图。`,"err_no-proposal":`没有待确认的修改,它可能已经应用或放弃了。`,"err_bad-pack":`这个文件不是能导入的课程包。`,"err_pack-too-large":`这个课程包太大了,导入不了。`,"err_pack-too-new":`这个课程包是新版开窍导出的,请先更新插件再导入。`,"err_nothing-to-review":`还没有可以评阅的内容:先写几句说明,或在项目文件夹里做些修改。`,"err_cannot-tick":`只能勾选今天或之前的学习项。`,"err_exam-incomplete":`考试需要填写名称和日期。`,"err_no-material":`先选至少一份资料。`,"err_material-no-text":`所选资料里没有可读的文字,图片和扫描版 PDF 读不出文字。`,"err_empty-topic":`先写下一个主题,或者填一个网址。`,"err_no-credentials":`这个 DSH 配置里用不了凭据存储,没法保存密钥。`,"err_bad-key":`密钥格式不对:应为 8–1024 个英文字母、数字或符号,不能有空格。`,err_unsupported:`不支持这种文件。可以上传 PDF、Word、PowerPoint、图片,或 .md、.txt、.csv 这类文本文件。`,"err_old-office":`不支持旧版 .doc/.ppt 文件,请另存为 .docx/.pptx 后再上传。`,err_encrypted:`这个 PDF 有密码保护,请先去掉密码再上传。`,err_unreadable:`这个文件读不出来,可能已经损坏,可以重新导出一份再试。`,"err_no-text":`这个文件里没有读到文字。如果是扫描版 PDF,需要先转成能选中文字的版本。`,err_empty:`这个文件是空的。`,"err_too-large":`文件超过 60 MB,太大了,可以拆成几份再上传。`,"err_image-too-large":`图片要小于 10 MB。`,"err_page-too-large":`这个网页太大了,导入不了。`,"err_page-no-text":`这个网页上没有读到正文。`,"err_tts-address":`语音服务地址不对:要填完整的 https 网址(只有本机地址可以用 http),不能带账号密码。`,"err_tts-app-id":`火山引擎语音需要填写 App ID。`,"err_tts-azure":`Azure 的区域或音色名称不对,请照 Azure 门户里的写法填写。`,"err_tts-config":`语音服务的设置不完整,请在设置里检查。`,"err_tts-network":`连不上语音服务,请检查网络和服务地址。`,"err_tts-stalled":`语音服务一直没有回应,请检查服务是否在运行、地址是否正确。`,"err_tts-timeout":`语音服务响应超时,请稍后再试。`,"err_tts-too-large":`语音服务返回的音频太大了。`,"err_tts-auth":`语音服务拒绝了密钥,请检查密钥是否正确。`,"err_tts-no-key":`还没有保存这个语音服务的密钥,请先在设置里填写。`,"err_tts-rate-limit":`语音服务请求太频繁,请稍后再试。`,"err_tts-server":`语音服务出错了,请稍后再试。`,"err_tts-request":`语音服务拒绝了这次请求,请检查音色等设置。`,"err_tts-empty":`没有要朗读的文字。`,"err_tts-response":`语音服务没有返回可用的音频,请稍后再试,或换一个音色。`,"err_tts-failed":`语音合成失败了,请稍后再试。`,"err_no-materials":`先选至少一份资料。`,"err_materials-known":`这些资料已经是这门课的了。`,"err_materials-full":`一门课最多关联 12 份资料,这门课已经满了。`,err_speech:`朗读没有成功,可以换一个系统音色,或者改用云端语音。`,err_playback:`音频没能播放,请再试一次。`,exportFailed:`导出没有成功,请再试一次。`},Ep={appName:`Aha`,appTagline:`your AI tutor`,navHome:`Home`,navCourses:`My courses`,navMaterials:`Library`,navStudio:`Study tools`,navAssist:`Ask anything`,navShorts:`Explainer shorts`,navPlan:`Study plan`,navProfile:`My profile`,navSettings:`Settings`,navAbout:`About the author`,heroTitle:`What do you want to finally understand today?`,heroHint:`Tell me what you want to learn, or drop in a textbook. I will get to know you, build a course around you, and teach it step by step on the whiteboard.`,heroPlaceholder:`e.g. Get eigenvalues in three weeks | Turn these lecture notes into a course | How does quantum tunneling actually work?`,modeCourse:`Build a course`,modeExplain:`Explain a concept`,modeSolve:`Solve with me`,modeVisualize:`Show me visually`,modeDigest:`Digest a long read`,modeShort:`Two-minute short`,attach:`Add material`,attached:`{count} material(s) attached`,start:`Start`,quickStart:`Skip questions, build now`,continueLearning:`Continue learning`,todayPlan:`Today`,noPlanToday:`Nothing planned today. Start a course or take a break.`,recentWork:`Recent`,sampleCourses:`Sample courses`,sampleHint:`Try the whiteboard classroom without spending tokens.`,importSample:`Add to my courses`,coursesTitle:`My courses`,filterAll:`All`,filterActive:`In progress`,filterDone:`Completed`,filterArchived:`Archived`,searchCourses:`Search courses`,noCourses:`No courses yet. Go to Home and tell me what you want to learn.`,importPack:`Import course pack`,lessonsCount:`{done}/{total} lessons`,minutesLeft:`about {minutes} min left`,statusIntake:`Questions pending`,statusBlueprint:`Blueprint to confirm`,statusReady:`Ready`,nextUp:`Next: {title}`,craftQuestionsTitle:`Let me get to know you`,craftQuestionsHint:`A few answers let me shape the course around you. Skip anything you are unsure about.`,craftOther:`Other (write your own)`,craftPace:`Pace`,paceIntensive:`Sprint`,paceIntensiveHint:`~6 weeks, essentials first`,paceBalanced:`Steady`,paceBalancedHint:`~3 months, foundations + practice + project`,paceRelaxed:`No deadline`,paceRelaxedHint:`Take your time, go deeper`,weeklyMinutes:`Time per week`,minutesUnit:`{minutes} min`,deadline:`Deadline (optional)`,makeBlueprint:`Design my course`,thinkingQuestions:`Thinking about what to ask you…`,designingBlueprint:`Designing your course blueprint…`,blueprintTitle:`Course blueprint`,blueprintHint:`Here is the course I designed for you. Edit titles, remove or reorder anything, or tell me what to change.`,reviseLabel:`Change it in one sentence`,revisePlaceholder:`e.g. More hands-on coding; make unit 2 lighter; drop lesson 3`,revise:`Revise`,revising:`Revising…`,addLesson:`Add lesson`,addLecture:`Add chapter`,addUnit:`Add unit`,moveUp:`Move up`,moveDown:`Move down`,remove:`Remove`,projects:`Projects`,confirmCourse:`Confirm and build the course`,confirming:`Preparing practice and projects… {done}/{total}`,courseReady:`Your course is ready`,unitN:`Unit {n}`,lectureN:`Chapter {n}`,estMinutes:`{minutes} min`,saveEdits:`Save changes`,saved:`Saved`,tabOutline:`Outline`,tabPractice:`Practice & quizzes`,tabSheets:`Cheat sheets`,tabCards:`Flashcards`,tabProjects:`Projects`,tabProgress:`Progress`,learn:`Learn`,practice:`Practice`,review:`Review`,remedial:`Revisit`,exportPack:`Export course pack`,exportWithProgress:`Include my progress`,rename:`Rename`,archive:`Archive`,unarchive:`Unarchive`,deleteCourse:`Delete course`,deleteConfirm:`This cannot be undone. Delete "{title}"?`,cancel:`Cancel`,confirm:`Confirm`,close:`Close`,back:`Back`,retry:`Retry`,generate:`Generate`,regenerate:`Regenerate`,generating:`Generating…`,open:`Open`,unitQuiz:`Unit quiz`,unitSheet:`Unit cheat sheet`,mastery:`Mastery`,conceptMastery:`Concept mastery`,preparingLesson:`Your tutor is preparing the lesson…`,bufferingLesson:`Writing the next part…`,play:`Play`,pause:`Pause`,prevStep:`Previous step`,nextStep:`Next step`,speed:`Speed`,voiceOn:`Sound on`,voiceOff:`Muted`,voiceDownCloud:`The cloud voice is not working: {reason} This lesson goes on without sound.`,voiceDownSystem:`The system voice is not working: {reason} This lesson goes on without sound.`,openSettings:`Settings`,captions:`Captions`,raiseHand:`Raise hand`,askPlaceholder:`What was unclear? Just ask`,ask:`Ask`,answering:`Thinking about your question…`,reexplain:`Explain differently`,styleAnalogy:`With an analogy`,styleVisual:`With a drawing`,styleExample:`With an example`,styleSimpler:`More simply`,styleDeeper:`In more depth`,stepOf:`Step {current}/{total}`,checkTitle:`Quick check`,confidence:`How sure are you?`,confSure:`Sure`,confUnsure:`Not quite`,confGuess:`Guessing`,submit:`Submit`,correct:`Correct`,incorrect:`Not quite`,partial:`Partly right`,continue:`Continue`,skip:`Skip`,hint:`Hint`,yourAnswer:`Your answer`,grading:`Grading…`,lessonDone:`Lesson complete`,selfRate:`How well do you feel you got it?`,rate1:`Lost`,rate3:`Okay`,rate5:`Crystal clear`,nextLesson:`Next lesson`,doPractice:`Practice`,backToCourse:`Back to course`,remedialAdded:`I added a revisit lesson for you: {title}`,challengeNote:`You have this down; the next lessons will go deeper.`,replay:`Replay lesson`,regenerateLesson:`Re-prepare lesson`,exportBoard:`Export board`,practiceTitle:`Practice`,check:`Check`,checked:`Checked`,score:`Score {score}`,practiceDone:`Set complete: {correct}/{total} correct`,showExplanation:`Explanation`,makingPractice:`Writing practice…`,cardsTitle:`Flashcards`,cardsDue:`{count} due`,flip:`Click to flip`,again:`Again`,hard:`Hard`,good:`Good`,easy:`Easy`,cardsDone:`Review round complete!`,makingCards:`Making flashcards…`,sheetTitle:`Cheat sheet`,columns:`Columns`,fontSize:`Font size`,highlight:`Highlight key items`,print:`Print`,hideSection:`Hide`,showSection:`Show`,makingSheet:`Compiling the cheat sheet…`,projectBrief:`Brief`,milestones:`Milestones`,rubric:`Rubric`,openWorkspace:`Open project workspace`,openingWorkspace:`Preparing the project folder…`,workspaceReady:`Project folder: {path}`,workspaceSession:`Opened a project session in DSH`,workspaceManual:`Add this folder as a workspace in DSH and a coding agent can help you build it.`,copyPath:`Copy path`,submitProject:`Submit work`,submitNotes:`Notes (what you built, what was hard)`,includeFiles:`Include the files in the project folder`,reviewing:`Reviewing your work…`,reviewTotal:`Total {total}/{max}`,strengths:`What went well`,nextSteps:`What to improve`,submissions:`Submissions`,materialsTitle:`Library`,materialsHint:`Upload textbooks, notes, papers or web pages to build courses, cheat sheets and flashcards. Lessons cite their pages.`,uploadFiles:`Upload files`,dropHere:`Drop files here (PDF, Word, PowerPoint, Markdown, text, images)`,addUrl:`Add web page`,urlPlaceholder:`https://…`,reading:`Reading…`,pages:`{count} pages`,slides:`{count} slides`,makeCourse:`Build a course`,makeSheet:`Cheat sheet`,makeCards:`Flashcards`,makeNotes:`Notes`,makeQuiz:`Quiz`,digest:`Digest`,digestTitle:`Digest`,overview:`Overview`,structure:`Structure`,keyIdeas:`Key ideas`,arguments:`Claims and evidence`,glossary:`Glossary`,discussion:`Questions worth asking`,imageNeedsVision:`Images need a vision-capable model.`,noMaterials:`Your library is empty.`,studioTitle:`Study tools`,studioHint:`Turn library materials into study aids in one click.`,pickMaterials:`Pick materials`,sheets:`Cheat sheets`,notes:`Notes`,decks:`Flashcard decks`,quizzes:`Quizzes`,focusPlaceholder:`Focus (optional), e.g. midterm scope chapters 3–6`,assistTitle:`Ask anything`,assistHint:`No course needed. Ask, and your tutor explains it on the whiteboard.`,assistPlaceholder:`What do you want to know? Paste a problem, a concept, or attach material`,followUp:`Follow up`,history:`History`,newThread:`New question`,shortsTitle:`Explainer shorts`,shortsHint:`Give a topic or a link and get a shareable two-minute whiteboard explainer.`,topicPlaceholder:`e.g. Why is the sky blue?`,makeShort:`Make short`,exportVideo:`Export video`,exporting:`Recording video… {percent}%`,exportNeedsCloud:`System voices cannot be recorded, so the video will have captions but no sound. Set up a cloud voice in Settings to export with narration.`,exportUnsupported:`Video export is not supported here.`,planTitle:`Study plan`,planHint:`Built from all your active courses, your weekly time and deadlines, with room for reviews.`,studyDays:`Study days`,weekdays:`Sun,Mon,Tue,Wed,Thu,Fri,Sat`,exams:`Exams and deadlines`,addExam:`Add`,examTitle:`Title`,examDay:`Date`,deadlineRisk:`At this pace "{course}" ends on {finish}, after its deadline {deadline}. Try about {minutes} minutes a week.`,startReview:`Start review`,reviewDue:`{count} concept(s) due for review`,nothingToReview:`Nothing to review right now.`,savePlan:`Save`,lessonItem:`Lesson`,reviewItem:`Review`,examItem:`Exam`,today:`Today`,profileTitle:`My profile`,profileHint:`Your tutor remembers this to fit every course to you. Edit or clear it anytime.`,background:`Background`,goals:`Goals`,strengthsLabel:`Strengths`,weaknesses:`Weak spots`,learningStyle:`How I like things explained`,memoryNotes:`Tutor notes`,clearProfile:`Clear profile`,clearProfileConfirm:`Your tutor will forget your background and preferences. Continue?`,onePerLine:`One per line`,settingsTitle:`Settings`,modelsTitle:`Models`,teachModel:`Course design & teaching`,quickModel:`Grading & questions`,followDefault:`Follow the DSH default model`,modelsHint:`Lesson quality depends mostly on the teaching model; grading and in-class questions can use a faster one.`,voiceTitle:`Narration`,engine:`Voice source`,engineBrowser:`System voice (free)`,engineCloud:`Cloud voice`,engineOff:`Silent`,browserVoice:`System voice`,autoVoice:`Automatic`,noVoiceForLanguage:`No system voice found for this language. Install one in your OS settings or use a cloud voice.`,cloudProvider:`Cloud service`,providerOpenai:`OpenAI-compatible API`,providerVolcengine:`Volcengine (Doubao)`,providerMinimax:`MiniMax`,providerAzure:`Azure Speech`,field_baseUrl:`API address`,field_model:`Model`,field_voice:`Voice`,field_appId:`App ID`,field_cluster:`Cluster`,field_groupId:`Group ID`,field_region:`Region`,field_apiKey:`Key`,keySaved:`Key saved`,keyMissing:`No key saved`,saveKey:`Save key`,clearKey:`Remove key`,testVoice:`Test`,testSentence:`Hi, I am your tutor. Let us make the hard things make sense.`,voiceRate:`Default speed`,boardTheme:`Board look`,themeAuto:`Follow system`,themeLight:`Whiteboard`,themeDark:`Chalkboard`,versionTitle:`Plugin version`,versionCurrent:`Current`,versionLatest:`Latest`,versionCheck:`Check for updates`,versionChecking:`Checking…`,versionFailed:`Could not check the latest version.`,versionUpToDate:`You are on the latest version.`,versionAvailable:`Version v{version} is available.`,versionLinked:`Installed from a local checkout; pull and rebuild the plugin repository to update.`,versionManual:`Could not find the profile that owns this plugin. Install the exact version from the DSH Plugins page: dsh-aha-tutor@{version}.`,versionUpdate:`Update plugin`,versionUpdating:`Updating…`,versionUpdateFailed:`The update failed. Try again later, or install the exact version from the DSH Plugins page.`,versionPending:`v{version} was published recently; DSH’s pnpm installs it once its release cooldown passes. Try again later.`,versionPendingUntil:`v{version} was published recently; DSH’s pnpm installs it once its release cooldown passes, after {time}.`,versionUpdated:`Updated to v{version}. Quit and reopen the DSH desktop app for it to take effect (refreshing the page is not enough).`,privacyNote:`Courses, progress and materials are stored only in DSH’s data folder on this computer.`,aboutTitle:`About the author`,aboutRole:`Author of Aha Tutor (开窍)`,aboutIntro:`Aha Tutor is free and open source, and tips are entirely optional. If it helped something finally click for you, a tip keeps Qiao growing.`,aboutRepo:`GitHub repository`,aboutIssues:`Report a problem`,aboutSupport:`Support the author`,aboutWechat:`WeChat`,aboutAlipay:`Alipay`,aboutScan:`Scan a code with your phone`,errorGeneric:`Something went wrong: {message}`,crashPage:`This page ran into a problem and could not be shown.`,crashPageHint:`Try again, or go back to the home page.`,crashPart:`This part ran into a problem and could not be shown.`,backHome:`Back to home`,loading:`Loading…`,empty:`Nothing here yet.`,copied:`Copied`,minutes:`min`,untitled:`Untitled`,delete:`Delete`,edit:`Edit`,save:`Save`,all:`All`,mode:`Mode`,boardSession:`Whiteboard`,toolBoardTitle:`Explaining on the whiteboard`,openBoard:`Open whiteboard`,panelLabel:`Aha · AI tutor`,copyCode:`Copy`,footnotes:`Footnotes`,"err_llm-auth":`The model is not signed in or its key is invalid. Check the model provider in DSH settings.`,"err_llm-quota":`The model quota is used up or requests are too frequent. Try again later.`,"err_llm-context":`The material is too long for this model. Pick fewer materials or a model with a larger context.`,"err_llm-unavailable":`The selected model is not available. Pick another one in Aha settings.`,"err_llm-timeout":`The model took too long. Try again.`,"err_bad-output":`The model did not return a usable result this time. Try again or pick a stronger model in settings.`,boardView:`Board view`,viewCanvas:`Canvas`,viewPages:`Pages`,boardViewHint:`Canvas: the whole lesson’s pages, top to bottom on one canvas you can drag and zoom, following the teacher’s writing during the lesson. Pages: one page at a time, turned with the page numbers at the top right.`,canvasTools:`Canvas zoom`,canvasHelp:`Drag or scroll to move, hold Ctrl/⌘ and scroll or pinch to zoom, double-click a page to fit it`,canvasZoomIn:`Zoom in`,canvasZoomOut:`Zoom out`,canvasZoomReset:`Back to 100% (full width)`,canvasFit:`Show everything: zoom out to see every page`,canvasFitShort:`All`,canvasFollow:`Back to the teacher`,canvasPage:`Page {n}`,voiceAsk:`Ask by voice`,voiceAskWith:`Ask by voice (microphone: {name})`,voiceStop:`Stop recording`,talkKeyHint:`Shortcut: hold V while you speak and let go to finish, or tap V, speak, and tap it again.`,raiseHandKey:`Pause the lesson and ask in the question box. You can also hold V and say it.`,voiceSetup:`Voice questions need Voice input enabled in DSH`,voiceWorking:`Recognizing…`,voice_off:`Voice questions use DSH’s experimental Voice input: enable Voice input in DSH’s Plugins page, choose Download and prepare in its details, then click here again.`,voice_unprepared:`The speech recognizer is not set up yet: choose Download and prepare in Voice input’s details on DSH’s Plugins page (about 240 MB), then click here again.`,voice_preparing:`The speech recognizer is being set up; click here again when it is ready. Voice input’s details on DSH’s Plugins page show the progress.`,voice_failed:`Setting up the speech recognizer failed: retry it in Voice input’s details on DSH’s Plugins page.`,"err_speech-off":`Voice input is not enabled in DSH: enable it in DSH’s Plugins page and set up its model.`,"err_speech-unprepared":`The speech recognizer is not ready: choose Download and prepare in Voice input’s details on DSH’s Plugins page.`,"err_speech-audio":`The recording could not be read. Record it again.`,"err_speech-too-long":`The recording is too long; it can be at most 2 minutes.`,"err_speech-failed":`Speech recognition failed. Try again.`,"err_speech-empty":`No speech was heard. Move closer to the microphone and try again.`,"err_mic-denied":`Microphone access was refused: allow DSH to use the microphone in your browser or system settings.`,"err_mic-missing":`No microphone was found.`,"err_mic-chosen-missing":`The microphone chosen in DSH’s Voice input is not available: plug it in, or choose another in Voice input’s details on DSH’s Plugins page.`,micChosenMissing:`The microphone chosen in DSH’s Voice input, “{name}”, is not available: plug it in, or choose another in Voice input’s details on DSH’s Plugins page.`,"err_mic-busy":`The microphone is in use by another program.`,"err_mic-unsupported":`Recording is not possible here.`,prepThinking:`Planning`,prepWriting:`Writing the board`,prepStarting:`Reaching the model…`,prepThinkingDetail:`Thinking the lesson through ({chars} characters so far)`,prepStep:`Writing step {n}`,prepCounts:`{steps} steps ready · {chars} characters`,prepSeconds:`{seconds}s so far`,dayLabel:`{weekday}, {month}/{day}`,exportPdf:`PDF (one board page per page)`,exportPng:`PNG images (one per page)`,exportMarkdown:`Markdown text`,exportingBoard:`Exporting the board… {done}/{total}`,animationStill:`Animation (plays in the lesson)`,monthLabel:`{month}/{year}`,prevMonth:`Previous month`,nextMonth:`Next month`,markDone:`Mark as done`,unmarkDone:`Mark as not done`,checkedAuto:`Done in the course`,dayEmpty:`Nothing planned for this day.`,webResearch:`Search the web first`,webResearchHint:`Before designing the course, look the subject up with DSH web search and use what it finds`,researching:`Searching the web…`,researchFound:`Drew on {count} web sources`,researchSkipped:`No web search: {reason}`,"researchSkipped_no-credential":`DSH has no DeepSeek key, which its web search needs`,researchSkipped_unavailable:`web search is not available in this DSH`,researchSkipped_failed:`the search failed`,researchSkipped_empty:`nothing useful came up`,courseSources:`Sources`,buildResearch:`Using {count} web sources`,"err_llm-empty":`The model returned nothing this time. Try again, or pick another model in Aha settings if it keeps happening.`,"err_llm-failed":`The model call failed. Try again in a moment.`,nextStepTitle:`Next step`,nextStepReview:`{count} concepts are due for review`,nextStepWeak:`“{concept}” is still weak; practise it first`,nextStepLesson:`Continue with “{title}”`,nextStepDone:`You have finished the course; check yourself with a unit quiz`,practiceThis:`Practise this lesson`,streakCount:`{count} in a row`,keysHint:`Keyboard: 1–4 to choose · Enter to submit or continue · H for a hint`,starsLabel:`{count} stars`,accuracy:`accuracy`,bestStreak:`best streak`,masteryChange:`Mastery after this round`,stageNone:`Not started`,stageWeak:`Weak`,stageLearning:`Learning`,stageProficient:`Proficient`,stageMastered:`Mastered`,nextRelearn:`A few points have not landed yet; going through the lesson again will help.`,nextReview:`You mostly have it, but it is not solid yet; a review round will make it stick.`,nextQuiz:`This is solid; you are ready for the unit quiz.`,nextLessonStep:`You are ready to move on.`,nextCourse:`This part is done.`,relearnLesson:`Back to the lesson`,reviewCourse:`Review this course`,editOutline:`Edit outline`,saveAndBack:`Save and go back`,extendCourse:`Ask for one more unit`,extendInstruction:`Add one more unit at the end that builds on what the course covers and takes the next step at the same gradient; leave the existing units unchanged.`,proposalTitle:`Proposed changes`,proposalNoChange:`This revision changes no lessons.`,applyProposal:`Apply changes`,discardProposal:`Discard`,proposalApplied:`Changes applied`,diffAdded:`Added`,diffRemoved:`Removed`,diffRenamed:`Renamed`,diffChanged:`Changed`,diffUnit:`Unit “{title}”`,reworkLesson:`Rework this lesson`,splitLesson:`Split in two`,deepenLesson:`Go deeper`,splitDone:`Split in two; remember to save`,deepenDone:`Made deeper; remember to save`,confirmRemoveUnit:`Remove the unit “{title}” and all its lessons?`,confirmRemoveLecture:`Remove “{title}” and all its lessons?`,confirmRemoveStarted:`“{title}” has been started; its board and progress will no longer show. Remove it?`,craftSize:`Course size`,sizeAuto:`Let the teacher decide`,sizeAutoHint:`Sized to your goal; a small question may need only a lesson or two`,sizeShort:`Short`,sizeShortHint:`3–8 lessons on what matters most`,sizeStandard:`Standard`,sizeStandardHint:`10–20 lessons: foundations, practice and an applied project`,sizeFull:`Full`,sizeFullHint:`25–45 lessons, thorough, with room to go deeper`,buildAnswers:`Going through your answers`,buildMaterials:`Reading your materials`,buildUnits:`Planning the units`,buildLessons:`Writing the lessons`,buildLessonsSoFar:`Writing the lessons: {count} so far`,workPlaceholder:`Write one step per line and put math inside $…$, e.g. $x^2+6x+9=(x+3)^2$`,workPreview:`Preview`,wrongStep:`Where it went wrong`,fixedStep:`It should read`,correction:`Correction`,correctionOf:`Correction: {tag}`,correcting:`Correcting it on the board…`,seeCorrection:`See the correction`,handout:`Handout`,handoutHint:`A one-page printable handout of this lesson`,handoutOfLesson:`Handout of this lesson`,handoutMaking:`Writing the handout…`,handoutPoints:`Key points`,handoutExample:`Worked example`,handoutMistakes:`Common mistakes`,handoutGlossary:`Glossary`,handoutQuestions:`Check yourself`,handoutAnswer:`Answer`,backToLesson:`Back to the lesson`,addMaterials:`Add materials`,addMaterialsTitle:`Add materials to this course`,addMaterialsHint:`Choose some materials (or upload them now). The teacher reads what they cover and proposes changes to the outline; nothing changes until you apply them, lessons you have started keep their progress, and later lessons cite the materials.`,addMaterialsPlaceholder:`How should the teacher use them? (optional) For example: add the worked examples from chapter 5`,addMaterialsSend:`Ask the teacher how to add them`,changeMaterials:`Change materials`,proposalMaterials:`From the added materials: {titles}`,librarySearch:`Find: type to filter by title or topic, press Enter to search the text`,librarySearchText:`Search text`,libraryFound:`{count} passages in the text`,libraryNotFound:`Nothing in the text matches “{query}”`,libraryNoTitleMatch:`No title or topic matches. Press Enter to search the text.`,pageN:`p. {page}`,slideN:`slide {slide}`,tourLabel:`Classroom tour`,tourReplay:`Classroom tour`,tourSkip:`Skip`,tourBack:`Back`,tourNext:`Next`,tourStart:`Start the lesson`,tourBoardTitle:`The teacher writes here`,tourBoard:`The board fills up as the teacher talks. Drag or scroll to move around it, hold Ctrl (⌘ on a Mac) and scroll to zoom, and use All in the top right to see the whole lesson.`,tourControlsTitle:`Play and pace`,tourControls:`Play, pause, the previous and next step and the speed are here; Space pauses too. Captions and sound can be switched at any time.`,tourRaiseTitle:`Raise your hand`,tourRaise:`Choose Raise hand, or type in the question box. You can also say it: click the microphone, or hold V while you speak and let go to put the question in the box. The teacher answers, then carries on.`,tourReexplainTitle:`Lost at this step?`,tourReexplain:`Choose Explain differently for an analogy, a drawing, an example, a simpler or a deeper take.`,tourChallengeTitle:`Spotted a mistake?`,tourChallenge:`Choose Is this step wrong? The teacher checks it carefully first; a real mistake is corrected there and fixed in the lesson.`,tourPanelTitle:`Goals and transcript`,tourPanel:`See how far the lesson's goals have come; everything said is in the transcript, and choosing a line goes back to it.`,outlineView:`How the outline is shown`,viewList:`List`,viewMap:`Map`,mapTools:`Map tools`,mapFollow:`Back to the newest`,mapPick:`Edit this lesson in the list`,depthTitle:`How this lesson treats its idea`,depthNone:`Any`,depth_intuition:`Intuition`,depth_definition:`Definition`,depth_derivation:`Derivation`,depth_application:`Application`,depth_extension:`Extension`,profileName:`What should the tutor call you?`,profileNameHint:`said once when a lesson opens; optional`,profileNamePlaceholder:`For example: Sam`,challenge:`Is this step wrong?`,challengeLabel:`Is this step wrong?`,challengeTitle:`What looks wrong in this step? (optional)`,challengeTitleStep:`What looks wrong in step {n}? (optional) “{text}”`,challengePlaceholder:`For example: shouldn’t 5 cm be 0.05 m?`,challengeHint:`The teacher works it through again first, which takes a few seconds to half a minute.`,challengeSend:`Ask the teacher to check`,challengeLine:`Wrong?`,challengeStep:`Is step {n} wrong?`,checkingStep:`Checking this step carefully…`,challenge_wrong:`It was wrong, now corrected`,challenge_right:`Checked: it is right`,challenge_unclear:`Depends on the convention`,fixed:`Corrected`,fixedWas:`It said: {was}`,itemChallenge:`Something wrong with this question?`,itemChallengeTitle:`What looks wrong? (optional)`,itemChallengePlaceholder:`For example: I think B is right too, or: is the unit in the answer wrong?`,itemChallengeHint:`The teacher works it through first, which takes a few seconds to half a minute. You can go on meanwhile.`,itemChecking:`Checking this question carefully…`,itemCheckTitle:`Teacher’s check`,itemCheck_wrong:`It was wrong, now corrected`,itemCheck_unclear:`It was unclear, now spelled out`,itemCheck_misgraded:`It was graded wrongly, now regraded`,itemCheck_right:`Checked: it is right`,regraded:` (regraded)`,itemCheckDone:`Question {n} checked: {verdict}.`,itemCheckRegraded:` Your answer was graded again.`,itemCheckEarlier:` Earlier answers to this question graded again too: {count}.`,itemCheckFailedNotice:`Question {n} could not be checked: {message}`,fixedWasItem:`Before the fix:`,fixedPart_prompt:`Question: {text}`,fixedPart_option:`Option {id}: {text}`,fixedPart_answer:`Answer: {text}`,fixedPart_unit:`Unit: {text}`,fixedPart_tolerance:`Tolerance: {text}`,fixedPart_explanation:`Explanation: {text}`,fixedPart_hints:`Hints: {text}`,fixedPart_rubric:`Rubric: {text}`,fixedPart_figure:`The figure was redrawn`,lessonGoals:`Lesson goals`,transcript:`Transcript`,showPanel:`Transcript`,hidePanel:`Hide the side panel`,panelTitle:`Lesson side panel`,boardFont:`Board font`,fontHand:`Handwriting`,fontStandard:`Standard`,digestMissing:`{count} part(s) could not be read ({parts}); the digest below leaves them out.`,redigest:`Digest again`,revisingSoFar:`Revising… {count} lessons so far`,"err_bad-url":`This address cannot be imported: only public http or https sites are supported, not this computer, the local network or addresses with credentials.`,err_network:`The page could not be loaded or took too long. Check the address and try again.`,err_http:`The page returned an error and could not be imported.`,blueprintSoFar:`Designing your course blueprint… {count} lessons so far`,reexplainedAs:`Re-explained: {style}`,digestReading:`Reading the whole document: {done} of {total} parts read`,digestWriting:`Combining the notes into one digest`,keepsRunning:`You can leave this page; it keeps going in the background.`,err_cancelled:`Cancelled.`,courseCreatedInChat:`Created the course "{title}". Continue it in Aha.`,err_failed:`Something went wrong. Try again in a moment.`,err_invalid:`This request could not be handled. Reload the page and try again; if it keeps happening, quit and reopen DSH.`,"err_not-found":`This item could not be found. It may have been deleted.`,err_forbidden:`You are not allowed to do this.`,"err_unknown-endpoint":`The plugin was just updated. Quit and reopen DSH, then try again.`,err_aborted:`The upload was interrupted. Try again.`,err_connection:`Could not reach DSH. Make sure it is still open, then try again.`,err_missing:`The task was lost, perhaps because DSH restarted. Try again.`,"err_llm-missing":`No model is available yet. Set up a model provider in DSH settings first.`,"err_no-board":`The board is not written yet. Try again once its first step is up.`,"err_empty-question":`Type your question first.`,"err_empty-goal":`Tell me what you want to learn, or add some material.`,"err_empty-change":`Describe the change you want first.`,"err_no-blueprint":`There is no course blueprint yet. Generate one first.`,"err_no-proposal":`There is no proposed change. It may have been applied or discarded already.`,"err_bad-pack":`This file is not a course pack that can be imported.`,"err_pack-too-large":`This course pack is too large to import.`,"err_pack-too-new":`This course pack comes from a newer version of Aha. Update the plugin, then import it.`,"err_nothing-to-review":`Nothing to review yet: write a note or work in the project folder first.`,"err_cannot-tick":`Only study items on today or an earlier day can be ticked.`,"err_exam-incomplete":`An exam needs a title and a date.`,"err_no-material":`Pick at least one material first.`,"err_material-no-text":`The selected material has no readable text. Images and scanned PDFs cannot be read as text.`,"err_empty-topic":`Give a topic or a web address first.`,"err_no-credentials":`DSH credentials are not available in this profile, so the key cannot be saved.`,"err_bad-key":`The key looks wrong: use 8–1024 letters, digits or symbols with no spaces.`,err_unsupported:`This file type is not supported. Upload a PDF, Word or PowerPoint file, an image, or a text file such as .md, .txt or .csv.`,"err_old-office":`Old .doc/.ppt files are not supported. Save them as .docx/.pptx and upload again.`,err_encrypted:`This PDF is password protected. Remove the password and upload it again.`,err_unreadable:`This file could not be read. It may be damaged; export it again and retry.`,"err_no-text":`No text was found in this file. A scanned PDF needs to be converted to selectable text first.`,err_empty:`This file is empty.`,"err_too-large":`The file is larger than 60 MB. Split it into smaller parts and upload them.`,"err_image-too-large":`Images must be smaller than 10 MB.`,"err_page-too-large":`This page is too large to import.`,"err_page-no-text":`No readable text was found on this page.`,"err_tts-address":`The speech service address is wrong: use a full https address (http only for this computer) without a user name or password.`,"err_tts-app-id":`Volcengine speech needs an App ID.`,"err_tts-azure":`The Azure region or voice name is not valid. Enter it as the Azure portal shows it.`,"err_tts-config":`The speech service settings are incomplete. Check them in settings.`,"err_tts-network":`Could not reach the speech service. Check the network and the service address.`,"err_tts-stalled":`The speech service is not responding. Check that it is running and that its address is right.`,"err_tts-timeout":`The speech service took too long. Try again later.`,"err_tts-too-large":`The speech service returned too much audio.`,"err_tts-auth":`The speech service rejected the key. Check that it is correct.`,"err_tts-no-key":`No key is saved for this speech service. Add it in settings first.`,"err_tts-rate-limit":`The speech service is limiting requests. Try again later.`,"err_tts-server":`The speech service had an error. Try again later.`,"err_tts-request":`The speech service refused the request. Check the voice and other settings.`,"err_tts-empty":`There is nothing to read aloud.`,"err_tts-response":`The speech service returned no usable audio. Try again later or pick another voice.`,"err_tts-failed":`Speech synthesis failed. Try again later.`,"err_no-materials":`Choose at least one material first.`,"err_materials-known":`These materials are already part of this course.`,"err_materials-full":`A course can use at most 12 materials, and this one has them all.`,err_speech:`Reading aloud did not work. Try another system voice, or switch to a cloud voice.`,err_playback:`The audio could not be played. Try again.`,exportFailed:`The export did not finish. Try again.`},Dp=[`slots`,`locale`,`connection`],Op=`aha-tutor`,kp=`dsh-aha-tutor/board`,Ap=`ahaTutorBoard`,jp=[`aha_whiteboard`,`aha_quiz`,`aha_course`,`aha_cheatsheet`,`aha_learner`];function Mp({size:e}){return(0,i.jsx)(pe,{name:`logo`,size:e})}function Np({rpc:e,t,language:n,dsh:r}){return(0,i.jsx)(hp,{rpc:e,t,language:n(),dsh:r})}function Pp(e){e.effect(()=>e.locale.register(wp,{zh:Tp,en:Ep}),`aha-tutor: copy`),e.effect(()=>{let e=document.createElement(`style`);return e.dataset.plugin=`dsh-aha-tutor`,e.textContent=yf,document.head.append(e),()=>e.remove()},`aha-tutor: style`);let t=e.locale.bind(wp),n=e.get(`connection`).rpc,r=()=>String(e.locale.getLocale?.()?.active??`zh`).startsWith(`zh`)?`zh`:`en`,i=Object.freeze({selectPanel:()=>e.get(`layout`)?.selectPanel?.(Op),async openWorkspace(t,n){let r=e.get(`workspaces`),i=e.get(`uiWorkspace`);if(typeof r?.create!=`function`||typeof i?.startSession!=`function`)return!1;let a=await r.create({path:t});return i.startSession(a.workspaceId,{prompt:n,clearPreviousDraft:!0}),!0},openBoardTab(t){let n=e.get(`sidebarRight`);if(typeof n?.openTab!=`function`)return!1;try{return n.openTab(Ap,{params:t}),!0}catch{return!1}}});e.slots.inject(`main`,()=>e.slots.register({name:`main`,key:Op,locale:wp,inject:()=>({rpc:n,language:r,dsh:i})},Np)),e.slots.inject(`sidebar.panellist`,()=>e.slots.register({name:`sidebar.panellist`,id:Op,order:20,locale:wp,label:()=>t(`panelLabel`)},Mp)),e.inject([`sidebarRightTabs`],e=>{e.effect(()=>e.sidebarRightTabs.register({id:kp,kind:Ap,title:()=>t(`boardSession`),keepMounted:!0}),`aha-tutor: board tab`)}),e.slots.inject(`sidebar.right.pane.tab`,()=>e.slots.register({name:`sidebar.right.pane.tab`,key:kp,locale:wp,inject:()=>({rpc:n,language:r(),dsh:i})},_p));for(let t of jp)e.slots.inject(`tool.call.toolview`,()=>e.slots.register({name:`tool.call.toolview`,key:t,locale:wp,inject:()=>({rpc:n,language:r(),dsh:i})},xp))}return n.apply=Pp,n.inject=Dp,t.exports}});
|
|
623
695
|
//# sourceMappingURL=client.js.map
|