bavitutor 0.1.4 → 0.2.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.
@@ -1,2039 +0,0 @@
1
- (function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=e=>typeof e==`object`&&!!e&&`sel`in e&&typeof e.sel==`string`&&`data`in e&&`children`in e&&`text`in e&&`elm`in e&&`key`in e,t=(e,t)=>{e.identity===void 0&&(e.identity=t)},n=(n,r)=>{if(e(n))t(n,r);else if(Array.isArray(n))for(let i of n)e(i)&&t(i,r);return n},r=(e,t)=>{switch(t.length){case 0:return e;case 1:return t[0](e);case 2:return t[1](t[0](e));case 3:return t[2](t[1](t[0](e)));case 4:return t[3](t[2](t[1](t[0](e))));case 5:return t[4](t[3](t[2](t[1](t[0](e)))));case 6:return t[5](t[4](t[3](t[2](t[1](t[0](e))))));case 7:return t[6](t[5](t[4](t[3](t[2](t[1](t[0](e)))))));case 8:return t[7](t[6](t[5](t[4](t[3](t[2](t[1](t[0](e))))))));case 9:return t[8](t[7](t[6](t[5](t[4](t[3](t[2](t[1](t[0](e)))))))));default:{let n=e;for(let e=0,r=t.length;e<r;e++)n=t[e](n);return n}}},i={pipe(){return r(this,arguments)}},a=function(){function e(){}return e.prototype=i,e}(),o=function(e,t){if(typeof e==`function`)return function(){return e(arguments)?t.apply(this,arguments):e=>t(e,...arguments)};switch(e){case 0:case 1:throw RangeError(`Invalid arity ${e}`);case 2:return function(e,n){return arguments.length>=2?t(e,n):function(n){return t(n,e)}};case 3:return function(e,n,r){return arguments.length>=3?t(e,n,r):function(r){return t(r,e,n)}};default:return function(){if(arguments.length>=e)return t.apply(this,arguments);let n=arguments;return function(e){return t(e,...n)}}}},s=e=>e,c=e=>()=>e,l=c(!0),u=c(!1),d=c(null),f=c(void 0),p=f;function m(e,...t){return r(e,t)}function h(e,t,n,r,i,a,o,s,c){switch(arguments.length){case 1:return e;case 2:return function(){return t(e.apply(this,arguments))};case 3:return function(){return n(t(e.apply(this,arguments)))};case 4:return function(){return r(n(t(e.apply(this,arguments))))};case 5:return function(){return i(r(n(t(e.apply(this,arguments)))))};case 6:return function(){return a(i(r(n(t(e.apply(this,arguments))))))};case 7:return function(){return o(a(i(r(n(t(e.apply(this,arguments)))))))};case 8:return function(){return s(o(a(i(r(n(t(e.apply(this,arguments))))))))};case 9:return function(){return c(s(o(a(i(r(n(t(e.apply(this,arguments)))))))))}}}function g(e){let t=new WeakMap;return n=>{let r=t.get(n);if(r!==void 0)return r;let i=e(n);return t.set(n,i),i}}function _(e){let t=new WeakMap;return n=>{let r=t.get(n);if(r!==void 0)return r;let i=e(n);return t.set(n,i),i!==n&&t.set(i,i),i}}var v=e=>{let t=new Set(Reflect.ownKeys(e));if(e.constructor===Object)return t;e instanceof Error&&t.delete(`stack`);let n=Object.getPrototypeOf(e),r=n;for(;r!==null&&r!==Object.prototype;){let e=Reflect.ownKeys(r);for(let n=0;n<e.length;n++)t.add(e[n]);r=Object.getPrototypeOf(r)}return t.has(`constructor`)&&typeof e.constructor==`function`&&n===e.constructor.prototype&&t.delete(`constructor`),t},y=new WeakSet,ee=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),te=0,ne=()=>{te++};function b(e){return typeof e==`string`}function re(e){return typeof e==`number`}function ie(e){return typeof e==`boolean`}function ae(e){return typeof e==`symbol`}function oe(e){return b(e)||re(e)||ae(e)}function se(e){return typeof e==`function`}function ce(e){return e===void 0}function le(e){return e!==void 0}function ue(e){return e===null}function de(e){return e!==null}function fe(e){return e!=null}function pe(e){return!0}function me(e){return typeof e==`object`&&!!e}function he(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ge(e){return typeof e==`object`&&!!e||se(e)}var _e=o(2,(e,t)=>ge(e)&&t in e),ve=o(2,(e,t)=>_e(e,`_tag`)&&e._tag===t);function ye(e){return e instanceof Error}function be(e){return _e(e,Symbol.iterator)||b(e)}function xe(e){return t=>!e(t)}var Se=`~effect/Hash`,Ce=e=>{switch(typeof e){case`number`:return ke(e);case`bigint`:return Ae(e.toString(10));case`string`:return Ae(e);case`function`:case`object`:if(e===null)break;if(e instanceof Date)return Number.isNaN(e.getTime())?Ae(`Invalid Date`):Ae(e.toISOString());if(e instanceof RegExp)return Ae(e.toString());{if(y.has(e))return we(e);let t=ze.get(e);if(t!==void 0)return t;if(Be.has(e))return ne(),Ae(`[Circular]`);Be.add(e);let n=te,r;try{r=`~effect/Hash`in e?e[Se]():typeof e==`function`?we(e):e instanceof DataView?Pe(ee(e)):Array.isArray(e)||ArrayBuffer.isView(e)?Pe(e):e instanceof Map?Fe(e):e instanceof Set?Le(e):Me(e)}finally{Be.delete(e)}return n===te&&ze.set(e,r),r}}return De(Te(Ae(String(e))))},we=e=>(Re.has(e)||Re.set(e,De(Math.random()*4294967296|0)),Re.get(e)),Te=e=>(e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),e^e>>>16),Ee=o(2,(e,t)=>Te(Math.imul(e,2654435761)+Math.imul(t,2246822507))),De=e=>e&3221225471|e>>>1&1073741824,Oe=new DataView(new ArrayBuffer(8)),ke=e=>{let t=e|0;return t===e?De(t):(Oe.setFloat64(0,e===e?e:NaN),De(Ee(Oe.getInt32(0),Oe.getInt32(4))))},Ae=e=>{let t=5381,n=e.length;for(;n;)t=t*33^e.charCodeAt(--n);return De(t)},je=(e,t)=>{let n=12289;for(let r of t)n^=Ee(Ce(r),Ce(e[r]));return De(n)},Me=e=>je(e,v(e)),Ne=(e,t)=>n=>{let r=e;for(let e of n)r^=t(e);return De(r)},Pe=e=>{let t=6151;for(let n of e)t=Ee(t,Ce(n));return De(t)},Fe=Ne(Ae(`Map`),([e,t])=>Ee(Ce(e),Ce(t))),Ie=Ae(`Set`),Le=Ne(Ie,e=>Ee(Ie,Ce(e))),Re=new WeakMap,ze=new WeakMap,Be=new WeakSet,Ve=`~effect/Equal`;function He(){return arguments.length===1?e=>Ue(e,arguments[0]):Ue(arguments[0],arguments[1])}function Ue(e,t){if(e===t)return!0;if(e==null||t==null)return!1;let n=typeof e;return n===typeof t?n===`number`&&e!==e&&t!==t?!0:n!==`object`&&n!==`function`||y.has(e)||y.has(t)?!1:We(e,t):!1}function We(e,t){let n=Ke.length;for(let r=n;r-->0;)if(Ke[r]===e&&qe[r]===t)return!0;if(n)return Ge(e,t);let r=Je.get(e);r||Je.set(e,r=new WeakMap);let i=r.get(t);return i===void 0&&r.set(t,i=Ge(e,t)),i}function Ge(e,t){Ke.push(e),qe.push(t);try{return Ye(e,t)}finally{Ke.pop(),qe.pop()}}var Ke=[],qe=[],Je=new WeakMap;function Ye(e,t){if(Ce(e)!==Ce(t))return!1;if(e instanceof Date){if(!(t instanceof Date))return!1;let n=e.getTime(),r=t.getTime();return n===r||Number.isNaN(n)&&Number.isNaN(r)}if(e instanceof RegExp)return t instanceof RegExp&&e.toString()===t.toString();let n=at(e);if(n!==at(t)||typeof e==`function`&&!n)return!1;if(n)return e[Ve](t);if(Array.isArray(e))return!Array.isArray(t)||e.length!==t.length?!1:Xe(e,t);if(ArrayBuffer.isView(e)){let n=e instanceof DataView;return!ArrayBuffer.isView(t)||e.byteLength!==t.byteLength||n!==t instanceof DataView?!1:n?Ze(ee(e),ee(t)):Ze(e,t)}return e instanceof Map?!(t instanceof Map)||e.size!==t.size?!1:$e(e,t,et,tt):e instanceof Set?!(t instanceof Set)||e.size!==t.size?!1:$e(e,t,Ce,Ue):Qe(e,t)}function Xe(e,t){for(let n=0;n<e.length;n++)if(!Ue(e[n],t[n]))return!1;return!0}function Ze(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Qe(e,t){let n=v(e),r=v(t);if(n.size!==r.size)return!1;for(let i of n)if(!r.has(i)||!Ue(e[i],t[i]))return!1;return!0}function $e(e,t,n,r){let i=new Map;for(let e of t){let t=n(e),r=i.get(t);r?r.push(e):i.set(t,[e])}outer:for(let t of e){let e=i.get(n(t));if(e){for(let n=0;n<e.length;n++)if(r(t,e[n])){e[n]=e[e.length-1],e.pop();continue outer}}return!1}return!0}var et=e=>Ce(e[0]),tt=(e,t)=>Ue(e[0],t[0])&&Ue(e[1],t[1]),nt=()=>0;function rt(e,t){return it((n,r)=>e(n[0],r[0])&&t(n[1],r[1]))}function it(e){return function(t,n){return $e(t,n,nt,e)}}var at=e=>_e(e,Ve),ot=()=>He,st=Symbol.for(`~effect/Redactable`),ct=e=>_e(e,st);function lt(e){return ct(e)?ut(e):e}function ut(e){return e[st](globalThis[`~effect/Fiber/currentFiber`]?.context??pt)}var dt=`~effect/Fiber/currentFiber`,ft=new Map,pt={"~effect/Context":{},base:ft,depth:0,mapUnsafe:ft,pipe(){return r(this,arguments)}};function mt(e,t){let n=t?.space??0,r=new WeakSet,i=n?typeof n==`number`?` `.repeat(n):n:``,a=e=>i.repeat(e),o=(e,t)=>{let n=e?.constructor;return n&&n!==Object.prototype.constructor&&n.name?`${n.name}(${t})`:t},s=e=>{try{return Reflect.ownKeys(e)}catch{return[`[ownKeys threw]`]}};function c(e,t=0){try{return l(e,t)}catch{return(typeof e==`object`&&e||typeof e==`function`)&&r.delete(e),`[inspection threw]`}}function l(e,n=0){if(typeof e==`string`)return JSON.stringify(e);if(typeof e==`number`||e==null||typeof e==`boolean`||typeof e==`symbol`)return String(e);if(typeof e==`bigint`)return String(e)+`n`;if(typeof e==`object`||typeof e==`function`){if(r.has(e))return ht;r.add(e);let l;if(st in e)l=c(ut(e),n);else if(Array.isArray(e))l=!i||e.length<=1?`[${e.map(e=>c(e,n)).join(`,`)}]`:`[\n${a(n+1)}${e.map(e=>c(e,n+1)).join(`,
2
- `+a(n+1))}\n${a(n)}]`;else if(e instanceof Date)l=vt(e);else if(!t?.ignoreToString&&_e(e,`toString`)&&typeof e.toString==`function`&&e.toString!==Object.prototype.toString&&e.toString!==Array.prototype.toString){let t=yt(e);l=e instanceof Error&&e.cause!==void 0?`${t} (cause: ${c(e.cause,n)})`:t}else if(Symbol.iterator in e)l=`${e.constructor.name}(${c(Array.from(e),n)})`;else{let t=s(e);if(!i||t.length<=1){let r=`{${t.map(t=>`${gt(t)}:${c(bt(e,t),n)}`).join(`,`)}}`;l=o(e,r)}else{let r=`{\n${t.map(t=>`${a(n+1)}${gt(t)}: ${c(bt(e,t),n+1)}`).join(`,
3
- `)}\n${a(n)}}`;l=o(e,r)}}return r.delete(e),l}return String(e)}return c(e,0)}var ht=`[Circular]`;function gt(e){return typeof e==`string`?JSON.stringify(e):String(e)}function _t(e){return e.map(e=>`[${gt(e)}]`).join(``)}function vt(e){try{return e.toISOString()}catch{return`Invalid Date`}}function yt(e){try{let t=e.toString();return typeof t==`string`?t:String(t)}catch{return`[toString threw]`}}function bt(e,t){try{return e[t]}catch{return`[property access threw]`}}function xt(e,t){let n=[];return JSON.stringify(e,function(e,t){let r=Object.getOwnPropertyDescriptor(this,e)?.value,i=_e(r,st)?lt(r):lt(t);if(typeof i==`bigint`)return mt(i);if(typeof i!=`object`||!i)return i;let a=i instanceof Error&&!_e(i,`toJSON`)?{...i,name:i.name,message:i.message}:i;for(;n.length>0&&n[n.length-1]!==this;)n.pop();if(!n.includes(i))return n.push(i),a!==i&&n.push(a),a},t?.space)??`null`}var St=Symbol.for(`nodejs.util.inspect.custom`),Ct=e=>{try{return e=lt(e),_e(e,`toJSON`)&&se(e.toJSON)&&e.toJSON.length===0?e.toJSON():Array.isArray(e)?e.map(Ct):e}catch{return`[toJSON threw]`}},wt=(e,t=2)=>{if(typeof e==`string`)return e;try{return typeof e==`object`?xt(e,{space:t}):mt(e,{space:t})}catch{return String(e)}},Tt={toJSON(){return Ct(this)},[St](){return this.toJSON()},toString(){return mt(this.toJSON())}},Et=class{[St](){return this.toJSON()}toString(){return mt(this.toJSON())}},Dt=(()=>{let e=Object.getOwnPropertyDescriptor(Error,`stackTraceLimit`);return e===void 0?Object.isExtensible(Error):Object.hasOwn(e,`writable`)?e.writable===!0:e.set!==void 0})(),Ot=()=>Error.stackTraceLimit,kt=e=>{Dt&&(Error.stackTraceLimit=e)},At=class{constructor(e){this.value=e,this.done=!1}next(e){return this.done?(this.value=e,this):(this.done=!0,{value:this.value,done:!1})}},jt=(()=>{let e=`~effect/Utils/internal`,t={[e]:e=>e()},n={[e]:e=>{try{return e()}finally{}}};return Ot()!==0&&t[e](()=>Error().stack)?.includes(e)===!0?t[e]:n[e]})();function Mt(e,t,n){t===`__proto__`?Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}function Nt(e,t){for(let n of Reflect.ownKeys(t))Object.prototype.propertyIsEnumerable.call(t,n)&&Mt(e,n,t[n])}var Pt=`~effect/Effect`,Ft=`~effect/Exit`,It={_A:s,_E:s,_R:s},Lt=`${Pt}/identifier`,Rt=`${Pt}/args`,zt=`${Pt}/evaluate`,Bt=`${Pt}/successCont`,Vt=`${Pt}/failureCont`,Ht=`${Pt}/ensureCont`,Ut=Symbol.for(`effect/Effect/Yield`),Wt={pipe(){return r(this,arguments)},toJSON(){return{...this}},toString(){return mt(this.toJSON(),{ignoreToString:!0,space:2})},[St](){return this.toJSON()}},Gt={[Pt]:It,...Wt,[Symbol.iterator](){return new At(this)},toJSON(){return{_id:`Effect`,op:this[Lt],...Rt in this?{args:this[Rt]}:void 0}}},Kt=e=>_e(e,Pt),qt=e=>_e(e,Ft),Jt=`~effect/Cause`,Yt=`~effect/Cause/Reason`,Xt=e=>_e(e,Jt),Zt=e=>_e(e,Yt),Qt=class{constructor(e){this[Jt]=Jt,this.reasons=e}pipe(){return r(this,arguments)}toJSON(){return{_id:`Cause`,failures:this.reasons.map(e=>e.toJSON())}}toString(){return`Cause(${mt(this.reasons)})`}[St](){return this.toJSON()}[Ve](e){return Xt(e)&&this.reasons.length===e.reasons.length&&this.reasons.every((t,n)=>He(t,e.reasons[n]))}[Se](){return Pe(this.reasons)}},$t=new WeakMap,en=class{[Yt];annotations;_tag;constructor(e,t,n){if(this[Yt]=Yt,this._tag=e,t!==tn&&typeof n==`object`&&n&&t.size>0){let e=$t.get(n);e&&(t=new Map([...e,...t])),$t.set(n,t)}this.annotations=t}annotate(e,t){if(e.mapUnsafe.size===0)return this;let n=new Map(this.annotations);e.mapUnsafe.forEach((e,r)=>{t?.overwrite!==!0&&n.has(r)||n.set(r,e)});let r=Object.assign(Object.create(Object.getPrototypeOf(this)),this);return r.annotations=n,r}pipe(){return r(this,arguments)}toString(){return mt(this)}[St](){return this.toString()}},tn=new Map,nn=class extends en{constructor(e,t=tn){super(`Fail`,t,e),this.error=e}toString(){return`Fail(${mt(this.error)})`}toJSON(){return{_tag:`Fail`,error:this.error}}[Ve](e){return un(e)&&He(this.error,e.error)&&He(this.annotations,e.annotations)}[Se](){return Ee(Ae(this._tag))(Ee(Ce(this.error))(Ce(this.annotations)))}},rn=e=>new Qt(e),an=new Qt([]),on=e=>new Qt([new nn(e)]),sn=class extends en{constructor(e,t=tn){super(`Die`,t,e),this.defect=e}toString(){return`Die(${mt(this.defect)})`}toJSON(){return{_tag:`Die`,defect:this.defect}}[Ve](e){return dn(e)&&He(this.defect,e.defect)&&He(this.annotations,e.annotations)}[Se](){return Ee(Ae(this._tag))(Ee(Ce(this.defect))(Ce(this.annotations)))}},cn=e=>new Qt([new sn(e)]),ln=o(e=>Xt(e[0]),(e,t,n)=>t.mapUnsafe.size===0?e:new Qt(e.reasons.map(e=>e.annotate(t,n)))),un=e=>e._tag===`Fail`,dn=e=>e._tag===`Die`,fn=e=>e._tag===`Interrupt`;function pn(e){return Sn(`Effect.evaluate: Not implemented`)}var mn=e=>({...Gt,[Lt]:e.op,[zt]:e[zt]??pn,[Bt]:e[Bt],[Vt]:e[Vt],[Ht]:e[Ht]}),hn=e=>{let t=mn(e),n=function(e){this[Rt]=e};return n.prototype=t,function(e){return new n(e)}},gn=e=>{let t={[Ft]:Ft,_tag:e.op,get[e.prop](){return this[Rt]},...mn(e),toString(){return`${e.op}(${mt(this[Rt])})`},toJSON(){return{_id:`Exit`,_tag:e.op,[e.prop]:this[Rt]}},[Ve](e){return qt(e)&&e._tag===this._tag&&He(this[Rt],e[Rt])},[Se](){return Ee(Ae(e.op),Ce(this[Rt]))}},n=function(e){this[Rt]=e};return n.prototype=t,function(e){return new n(e)}},_n=gn({op:`Success`,prop:`value`,[zt](e){let t=e.getCont(Bt);return t?t[Bt](this[Rt],e,this):e.yieldWith(this)}}),vn={key:`effect/Cause/StackTrace`},yn={key:`effect/Cause/InterruptorStackTrace`},bn=gn({op:`Failure`,prop:`cause`,[zt](e){let t=this[Rt],n=!1;e.cache.stackFrame&&(t=ln(t,{mapUnsafe:new Map([[vn.key,e.cache.stackFrame]])}),n=!0);let r=e.getCont(Vt);for(;e.interruptible&&e._interruptedCause&&r;)r=e.getCont(Vt);return r?r[Vt](t,e,n?void 0:this):e.yieldWith(n?bn(t):this)}}),xn=e=>bn(on(e)),Sn=e=>bn(cn(e)),Cn=hn({op:`WithFiber`,[zt](e){return this[Rt](e)}}),wn=function(){class e extends globalThis.Error{}let t=mn({op:`YieldableError`,[zt](){return xn(this)}});return delete t.toString,Object.assign(e.prototype,t),e}(),Tn=function(){let e=Symbol.for(`effect/Data/Error/plainArgs`);return class extends wn{constructor(t){super(t?.message,t?.cause?{cause:t.cause}:void 0),t&&(Nt(this,t),Object.defineProperty(this,e,{value:t,enumerable:!1}))}toJSON(){return{...this[e],...this}}}}(),En=e=>{class t extends Tn{_tag=e}return t.prototype.name=e,t},Dn=`~effect/Cause/Done`,On=e=>_e(e,Dn),kn={[Dn]:Dn,_tag:`Done`,value:void 0},An=e=>e===void 0?kn:{[Dn]:Dn,_tag:`Done`,value:e},jn=xn(kn),eee=e=>e===void 0?jn:xn(An(e)),Mn=e=>mn({op:e.label,[zt]:e.evaluate}),Nn=e=>(t,n)=>t===n||e(t,n),Pn=(e,t)=>e===t,Fn=()=>Pn;function In(e){return Nn((t,n)=>{if(t.length!==n.length)return!1;for(let r=0;r<t.length;r++)if(!e[r](t[r],n[r]))return!1;return!0})}function Ln(e){return Nn((t,n)=>{if(t.length!==n.length)return!1;for(let r=0;r<t.length;r++)if(!e(t[r],n[r]))return!1;return!0})}var Rn=`~effect/Option`,zn={[Rn]:{_A:e=>e},...Wt,[Symbol.iterator](){return new At(this)}},Bn=Object.defineProperty(Object.assign(Object.create(zn),{_tag:`Some`,_op:`Some`,[Ve](e){return Un(e)&&Gn(e)&&He(this.value,e.value)},[Se](){return Ee(Ce(this._tag))(Ce(this.value))},toString(){return`some(${mt(this.value)})`},toJSON(){return{_id:`Option`,_tag:this._tag,value:Ct(this.value)}}}),"valueOrUndefined",{get(){return this.value}}),Vn=Ce(`None`),Hn=Object.assign(Object.create(zn),{_tag:`None`,_op:`None`,valueOrUndefined:void 0,[Ve](e){return Un(e)&&Wn(e)},[Se](){return Vn},toString(){return`none()`},toJSON(){return{_id:`Option`,_tag:this._tag}}}),Un=e=>_e(e,Rn),Wn=e=>e._tag===`None`,Gn=e=>e._tag===`Some`,Kn=Object.create(Hn),qn=function(e){this.value=e};qn.prototype=Bn;var Jn=e=>new qn(e),Yn=`~effect/Result`,Xn={[Yn]:{_A:e=>e,_E:e=>e},...Wt,[Symbol.iterator](){return new At(this)}},Zn=Object.assign(Object.create(Xn),{_tag:`Success`,_op:`Success`,[Ve](e){return $n(e)&&tr(e)&&He(this.success,e.success)},[Se](){return Ee(Ce(this._tag))(Ce(this.success))},toString(){return`success(${mt(this.success)})`},toJSON(){return{_id:`Result`,_tag:this._tag,value:Ct(this.success)}}}),Qn=Object.assign(Object.create(Xn),{_tag:`Failure`,_op:`Failure`,[Ve](e){return $n(e)&&er(e)&&He(this.failure,e.failure)},[Se](){return Ee(Ce(this._tag))(Ce(this.failure))},toString(){return`failure(${mt(this.failure)})`},toJSON(){return{_id:`Result`,_tag:this._tag,failure:Ct(this.failure)}}}),$n=e=>_e(e,Yn),er=e=>e._tag===`Failure`,tr=e=>e._tag===`Success`,nr=function(e){this.failure=e};nr.prototype=Qn;var rr=e=>new nr(e),ir=function(e){this.success=e};ir.prototype=Zn;var ar=e=>new ir(e);function or(e){return(t,n)=>t===n?0:e(t,n)}var tee=or((e,t)=>e<t?-1:1),sr=or((e,t)=>globalThis.Number.isNaN(e)&&globalThis.Number.isNaN(t)?0:globalThis.Number.isNaN(e)?-1:globalThis.Number.isNaN(t)?1:e<t?-1:1),nee=o(2,(e,t)=>or((n,r)=>e(t(n),t(r)))),ree=e=>o(2,(t,n)=>e(t,n)===1),cr=e=>o(2,(t,n)=>e(t,n)!==-1),lr=e=>o(2,(t,n)=>t===n||e(t,n)<1?t:n),ur=e=>o(2,(t,n)=>t===n||e(t,n)>-1?t:n),dr=e=>o(2,(t,n)=>lr(e)(n.maximum,ur(e)(n.minimum,t))),x=()=>Kn,S=Jn,fr=Un,pr=Wn,C=Gn,w=o(2,(e,{onNone:t,onSome:n})=>pr(e)?t():n(e.value)),mr=o(2,(e,t)=>pr(e)?t():e.value),hr=o(2,(e,t)=>pr(e)?t():e),gr=e=>e==null?x():S(e),_r=e=>e===null?x():S(e),vr=mr(d),yr=mr(f),br=o(2,(e,t)=>{if(C(e))return e.value;throw t()})(()=>Error(`getOrThrow called on a None`)),xr=o(2,(e,t)=>pr(e)?x():S(t(e.value))),Sr=o(2,(e,t)=>xr(e,()=>t)),Cr=o(2,(e,t)=>pr(e)?x():t(e.value)),wr=o(2,(e,t)=>pr(e)?x():gr(t(e.value))),Tr=e=>{if(Symbol.iterator in e){let t=[];for(let n of e){if(pr(n))return x();t.push(n.value)}return S(t)}let t={};for(let n of Object.keys(e)){let r=e[n];if(pr(r))return x();Mt(t,n,r.value)}return S(t)},Er=e=>pr(e)?[]:[e.value],Dr=o(2,(e,t)=>pr(e)?x():t(e.value)?S(e.value):x()),Or=e=>Nn((t,n)=>pr(t)?pr(n):!pr(n)&&e(t.value,n.value)),kr=o(2,(e,t)=>t(e)?S(e):x()),Ar=(e=>o(2,(t,n)=>!pr(t)&&e(t.value,n)))(ot()),jr=o(2,(e,t)=>!pr(e)&&t(e.value)),Mr=`~effect/Context/Service`,Nr=function(){function e(){}let t=e;Object.setPrototypeOf(t,Pr);let n=(e,n)=>(t.key=e,n?.defaultValue&&(t[Ir]=Ir,t.defaultValue=n.defaultValue),n?.make&&(t.make=n.make),n?.fiberCached&&Fr.add(e),t);return arguments.length>0?n(arguments[0],arguments[1]):n},Pr={[Mr]:Mr,...Mn({label:`Service`,evaluate(e){return _n(ai(e.context,this))}}),toJSON(){return{_id:`Service`,key:this.key}},of(e){return e},context(e){return $r(this,e)},use(e){return Cn(t=>e(ai(t.context,this)))},useSync(e){return Cn(t=>_n(e(ai(t.context,this))))}},Fr=new Set,Ir=`~effect/Context/Reference`,Lr=`~effect/Context`,Rr=8,zr=8,Br=(e,t,n,r)=>{let i=Object.create(qr);return i.cacheRoot=e??i,i.base=t,i.overlay=n,i.depth=r,i._flat=void 0,i.baseHits=0,i},Vr=(e,t)=>{t&&(Vr(e,t.parent),e.set(t.key,t.value))},Hr=e=>{if(e._flat)return e._flat;if(!e.overlay)return e._flat=e.base;let t=new Map(e.base);return Vr(t,e.overlay),e._flat=t},Ur=(e,t)=>{let n=new Map(e.mapUnsafe);return t(n),Kr(n)},Wr=Symbol(),Gr=(e,t)=>{let n=e;for(let e=n.overlay;e;e=e.parent)if(e.key===t)return e.value;let r=n.base.get(t);return r===void 0&&!n.base.has(t)?Wr:(n.overlay&&++n.baseHits>=n.base.size&&n.baseHits>=zr&&(n.base=Hr(n),n.overlay=void 0,n.depth=0),r)},Kr=e=>Br(void 0,e,void 0,0),qr={get mapUnsafe(){return Hr(this)},...Wt,[Lr]:{_Services:e=>e},toJSON(){return{_id:`Context`,services:Array.from(this.mapUnsafe).map(([e,t])=>({key:e,value:t}))}},[Ve](e){if(!Yr(e))return!1;let t=this.mapUnsafe,n=e.mapUnsafe;if(t.size!==n.size)return!1;for(let[e,r]of t)if(!n.has(e)||!He(r,n.get(e)))return!1;return!0},[Se](){return ke(this.mapUnsafe.size)}},Jr=(e,t)=>e.cacheRoot===t.cacheRoot,Yr=e=>_e(e,Lr),Xr=e=>!!e[Ir],Zr=()=>Qr,Qr=Kr(new Map),$r=(e,t)=>Kr(new Map([[e.key,t]])),ei=o(3,(e,t,n)=>ti(e,t.key,n)),ti=(e,t,n)=>{let r=e,i=Fr.has(t)?void 0:r.cacheRoot;if(r.depth>=Rr){let e=new Map(r.mapUnsafe);return e.set(t,n),Br(i,e,void 0,0)}return Br(i,r.base,{key:t,value:n,parent:r.overlay},r.depth+1)},ni=o(2,(e,t)=>ri(e,t.key)),ri=(e,t)=>{let n=Gr(e,t);return n===Wr?void 0:n},ii=o(2,(e,t)=>{let n=Gr(e,t.key);if(n===Wr){if(Xr(t))return si(t);throw ci(t)}return n}),ai=ii,oi=`~effect/Context/defaultValue`,si=e=>oi in e?e[oi]:e[oi]=e.defaultValue(),ci=e=>{let t=Error(`Service not found${e.key?`: ${String(e.key)}`:``}`);if(t.stack){let e=t.stack.split(`
4
- `);e.splice(1,3),t.stack=e.join(`
5
- `)}return t},li=o(2,(e,t)=>{let n=Gr(e,t.key);return n===Wr?Xr(t)?S(si(t)):x():S(n)}),ui=o(2,(e,t)=>e.mapUnsafe.size===0?t:t.mapUnsafe.size===0?e:Ur(e,e=>t.mapUnsafe.forEach((t,n)=>e.set(n,t)))),di=(...e)=>{let t=new Map;for(let n=0;n<e.length;n++)e[n].mapUnsafe.forEach((e,n)=>{t.set(n,e)});return Kr(t)},fi=Nr,pi=e=>e.length>0,mi=e=>e>0?Math.floor(e):0,hi=e=>Math.max(1,mi(e)),gi=ar,_i=rr,vi=_i(void 0),yi=e=>{if(se(e))try{return gi(e())}catch(e){return _i(e)}try{return gi(e.try())}catch(t){return _i(e.catch(t))}},bi=$n,xi=er,Si=tr,Ci=o(2,(e,{onFailure:t,onSuccess:n})=>xi(e)?t(e.failure):n(e.success)),wi=o(3,(e,t,n)=>t(e)?gi(e):_i(n(e))),Ti=In,Ei=e=>{let t=e[Symbol.iterator]().next();if(t.done)throw Error(`headUnsafe: empty iterable`);return t.value},Di=o(2,(e,t)=>{let n=0;for(let r of e){let e=t(r,n);if(ie(e)){if(e)return S(r)}else if(C(e))return e;n++}return x()}),Oi=o(2,(e,t)=>{let n=[];for(let r of Ni(e))n.push(t(r,e[r]));return n}),ki=Oi((e,t)=>[e,t]),Ai=o(2,(e,t)=>Object.hasOwn(e,t)),ji=o(2,(e,t)=>Object.hasOwn(e,t)?S(e[t]):x()),Mi=o(2,(e,t)=>{let n={...e};for(let r of Ni(e))Mt(n,r,t(e[r],r));return n}),Ni=e=>Object.keys(e),Pi=e=>Oi(e,(e,t)=>t),Fi=e=>o(2,(t,n)=>{for(let r of Ni(t))if(!Ai(n,r)||!e(t[r],n[r]))return!1;return!0}),Ii=e=>{let t=Fi(e);return(e,n)=>t(e,n)&&t(n,e)},Li=globalThis.Array,Ri=o(2,(e,t)=>{let n=hi(e),r=new Li(n);for(let e=0;e<n;e++)r[e]=t(e);return r}),zi=(e,t)=>e<=t?Ri(t-e+1,t=>e+t):[e],Bi=e=>Li.isArray(e)?e:Li.from(e),Vi=e=>Li.isArray(e)?e:[e],Hi=Er,Ui=o(2,(e,{onEmpty:t,onNonEmpty:n})=>Zi(e)?n(e):t()),Wi=o(2,(e,{onEmpty:t,onNonEmpty:n})=>Zi(e)?n(ra(e),oa(e)):t()),Gi=o(2,(e,t)=>[t,...e]),Ki=o(2,(e,t)=>[...e,t]),qi=o(2,(e,t)=>Bi(e).concat(Bi(t))),Ji=Li.isArray,Yi=e=>e.length===0,Xi=pi,Zi=pi,Qi=e=>e.length;function $i(e,t){return!Number.isFinite(e)||e<0||e>=t.length}var ea=o(2,(e,t)=>{let n=Math.floor(t);return $i(n,e)?x():S(e[n])}),ta=o(2,(e,t)=>{let n=Math.floor(t);if($i(n,e))throw Error(`Index out of bounds: ${n}`);return e[n]}),na=ea(0),ra=ta(0),ia=e=>Zi(e)?S(aa(e)):x(),aa=e=>e[e.length-1],oa=e=>e.slice(1),sa=e=>e.slice(0,-1),ca=(e,t)=>Math.min(mi(e),t),la=o(2,(e,t)=>{let n=Bi(e);return n.slice(0,ca(t,n.length))}),ua=o(2,(e,t)=>{let n=Bi(e),r=ca(t,n.length);return r===0?[]:n.slice(-r)}),da=(e,t)=>{let n=0;for(let r of e){if(!t(r,n))break;n++}return n},fa=o(2,(e,t)=>{let n=Bi(e);return Sa(n,da(n,t))}),pa=o(2,(e,t)=>{let n=Bi(e);return n.slice(ca(t,n.length),n.length)}),ma=o(2,(e,t)=>{let n=Bi(e),r=0;for(;r<n.length&&t(n[r],r);)r++;return n.slice(r)}),ha=o(2,(e,t)=>{let n=0;for(let r of e){if(t(r,n))return S(n);n++}return x()}),ga=o(2,(e,t)=>{let n=Bi(e);for(let e=n.length-1;e>=0;e--)if(t(n[e],e))return S(e);return x()}),_a=Di,iee=o(2,(e,t)=>{let n=Bi(e);for(let e=n.length-1;e>=0;e--){let r=n[e],i=t(r,e);if(typeof i==`boolean`){if(i)return S(r)}else if(C(i))return i}return x()}),va=o(3,(e,t,n)=>{let r=Li.from(e),i=Math.floor(t);return i!==r.length&&$i(i,r)?x():(r.splice(i,0,n),S(r))}),ya=o(3,(e,t,n)=>{let r=Li.from(e),i=Math.floor(t);if($i(i,r))return x();let a=r;return a[i]=n(r[i]),S(a)}),aee=e=>Li.from(e).reverse(),oee=o(2,(e,t)=>Ki(sa(e),t(aa(e)))),ba=(e=>o(2,(t,n)=>{for(let r of t)if(e(n,r))return!0;return!1}))(ot()),xa=o(2,(e,t)=>{let n=Bi(e);if(Zi(n)){let[e,r]=t(n),i=[e],a=r;for(;pi(a);){let[e,n]=t(a);i.push(e),a=n}return i}return[]}),Sa=o(2,(e,t)=>{let n=Li.from(e),r=mi(t);return Zi(n)?r>=1?Ca(n,r):[[],n]:[n,[]]}),Ca=o(2,(e,t)=>{let n=hi(t);return n>=e.length?[wa(e),[]]:[Gi(e.slice(1,n),ra(e)),e.slice(n)]}),wa=e=>e.slice(),Ta=o(2,(e,t)=>{let n=Bi(e);return Zi(n)?xa(n,Ca(t)):[]}),Ea=()=>[],Da=e=>[e],T=o(2,(e,t)=>e.map(t)),Oa=o(2,(e,t)=>{if(Yi(e))return[];let n=[];for(let r=0;r<e.length;r++){let i=t(e[r],r);for(let e=0;e<i.length;e++)n.push(i[e])}return n}),ka=e=>{let t=[];for(let n of e)C(n)&&t.push(n.value);return t},Aa=o(2,(e,t)=>{let n=Bi(e),r=[];for(let e=0;e<n.length;e++){let i=t(n[e],e);Si(i)&&r.push(i.success)}return r}),ja=o(2,(e,t)=>{let n=Bi(e),r=[];for(let e=0;e<n.length;e++)t(n[e],e)&&r.push(n[e]);return r}),Ma=o(3,(e,t,n)=>Bi(e).reduce((e,t,r)=>n(e,t,r),t)),Na=o(2,(e,t)=>e.every(t)),Pa=o(2,(e,t)=>e.some(t)),Fa=(e,t)=>{let n=[],r=e;for(;;){let e=t(r);if(pr(e))break;let[i,a]=e.value;n.push(i),r=a}return n},Ia=Ln,La=o(2,(e,t)=>Bi(e).forEach((e,n)=>t(e,n))),Ra=o(2,(e,t)=>Bi(e).join(t)),za=`~effect/Duration`,Ba=BigInt(0),Va=BigInt(1),Ha=BigInt(2),Ua=BigInt(10),Wa=BigInt(1e3),Ga=e=>BigInt(e<0?Math.ceil(e-.5):Math.floor(e+.5)),Ka=e=>Ga(e*1e6),qa=(e,t)=>{let n=e.indexOf(`.`);if(n===-1)return BigInt(e)*t;let r=e[0]===`-`,i=e.slice(n+1),a=Ua**BigInt(i.length),o=(BigInt(e.slice(+!!r,n))*a+BigInt(i))*t,s=o/a+(o%a*Ha>=a?Va:Ba);return r?-s:s},Ja=/^(-?\d+(?:\.\d+)?)\s+(nanos?|micros?|millis?|seconds?|minutes?|hours?|days?|weeks?)$/,Ya=e=>{switch(typeof e){case`number`:return so(e);case`bigint`:return oo(e);case`string`:{if(e===`Infinity`)return io;if(e===`-Infinity`)return ao;let t=Ja.exec(e);if(!t)break;let[n,r,i]=t;if(i===`nano`||i===`nanos`)return oo(qa(r,Va));if(i===`micro`||i===`micros`)return oo(qa(r,Wa));let a=Number(r);switch(i){case`milli`:case`millis`:return so(a);case`second`:case`seconds`:return co(a);case`minute`:case`minutes`:return lo(a);case`hour`:case`hours`:return uo(a);case`day`:case`days`:return fo(a);case`week`:case`weeks`:return po(a)}break}case`object`:{if(e===null)break;if(za in e)return e;if(Array.isArray(e))return e.length!==2||!e.every(re)?Xa(e):Number.isNaN(e[0])||Number.isNaN(e[1])?ro:e[0]===-1/0||e[1]===-1/0?ao:e[0]===1/0||e[1]===1/0?io:to(Ga(e[0]*1e9+e[1]));let t=e,n=0;return t.weeks&&(n+=t.weeks*6048e5),t.days&&(n+=t.days*864e5),t.hours&&(n+=t.hours*36e5),t.minutes&&(n+=t.minutes*6e4),t.seconds&&(n+=t.seconds*1e3),t.milliseconds&&(n+=t.milliseconds),!t.microseconds&&!t.nanoseconds?to(n):to(Ga(n*1e6+(t.microseconds??0)*1e3+(t.nanoseconds??0)))}}return Xa(e)},Xa=e=>{throw Error(`Invalid Input: ${e}`)},Za={_tag:`Millis`,millis:0},Qa={_tag:`Infinity`},$a={_tag:`NegativeInfinity`},eo={[za]:za,[Se](){switch(this.value._tag){case`Millis`:{let e=this.value.millis*1e6;return Number.isFinite(e)?Ce(Ga(e)):ke(this.value.millis)}case`Nanos`:return Ce(this.value.nanos);default:return Me(this.value)}},[Ve](e){return no(e)&&yo(this,e)},toString(){switch(this.value._tag){case`Infinity`:return`Infinity`;case`NegativeInfinity`:return`-Infinity`;case`Nanos`:return`${this.value.nanos} nanos`;case`Millis`:return`${this.value.millis} millis`}},toJSON(){switch(this.value._tag){case`Millis`:return{_id:`Duration`,_tag:`Millis`,millis:this.value.millis};case`Nanos`:return{_id:`Duration`,_tag:`Nanos`,nanos:String(this.value.nanos)};case`Infinity`:return{_id:`Duration`,_tag:`Infinity`};case`NegativeInfinity`:return{_id:`Duration`,_tag:`NegativeInfinity`}}},[St](){return this.toJSON()},pipe(){return r(this,arguments)}},to=e=>{let t=Object.create(eo);return t.value=typeof e==`number`?isNaN(e)||e===0||Object.is(e,-0)?Za:Number.isFinite(e)?Number.isInteger(e)?{_tag:`Millis`,millis:e}:{_tag:`Nanos`,nanos:Ka(e)}:e>0?Qa:$a:e===Ba?Za:{_tag:`Nanos`,nanos:e},t},no=e=>_e(e,za),ro=to(0),io=to(1/0),ao=to(-1/0),oo=e=>to(e),so=e=>to(e),co=e=>to(e*1e3),lo=e=>to(e*6e4),uo=e=>to(e*36e5),fo=e=>to(e*864e5),po=e=>to(e*6048e5),mo=e=>go(Ya(e),{onMillis:s,onNanos:e=>Number(e)/1e6,onInfinity:()=>1/0,onNegativeInfinity:()=>-1/0}),ho=e=>{let t=Ya(e);switch(t.value._tag){case`Infinity`:case`NegativeInfinity`:throw Error(`Cannot convert infinite duration to nanos`);case`Nanos`:return t.value.nanos;case`Millis`:return Ka(t.value.millis)}},go=o(2,(e,t)=>{switch(e.value._tag){case`Millis`:return t.onMillis(e.value.millis);case`Nanos`:return t.onNanos(e.value.nanos);case`Infinity`:return t.onInfinity();case`NegativeInfinity`:return(t.onNegativeInfinity??t.onInfinity)()}}),_o=o(3,(e,t,n)=>e.value._tag===`Infinity`||e.value._tag===`NegativeInfinity`||t.value._tag===`Infinity`||t.value._tag===`NegativeInfinity`?n.onInfinity(e,t):e.value._tag===`Millis`?t.value._tag===`Millis`?n.onMillis(e.value.millis,t.value.millis):n.onNanos(ho(e),t.value.nanos):n.onNanos(e.value.nanos,ho(t))),vo=(e,t)=>_o(e,t,{onMillis:(e,t)=>e===t,onNanos:(e,t)=>e===t,onInfinity:(e,t)=>e.value._tag===t.value._tag}),yo=o(2,(e,t)=>vo(e,t)),bo=fi(`effect/Scheduler`,{fiberCached:!0,defaultValue:()=>new To}),xo=e=>{let t=!1;return Promise.resolve().then(()=>{t||e()}),()=>{t=!0}},So=`setImmediate`in globalThis?e=>{let t=globalThis.setImmediate(e);return()=>globalThis.clearImmediate(t)}:e=>{let t=setTimeout(e,0);return()=>clearTimeout(t)},Co=e=>{try{return So(e)}catch{return xo(e)}},wo=class{buckets=[];scheduleTask(e,t){let n=this.buckets,r=n.length,i,a=0;for(;a<r&&!(n[a][0]>t);a++)i=n[a];i&&i[0]===t?i[1].push(e):a===r?n.push([t,[e]]):n.splice(a,0,[t,[e]])}drain(){let e=this.buckets;return this.buckets=[],e}},To=class{executionMode;setImmediate;constructor(e=`async`,t){this.executionMode=e,this.setImmediate=t??(e===`sync`?xo:Co)}shouldYield(e){return e.currentOpCount>=e.cache.maxOpsBeforeYield}makeDispatcher(){return new Eo(this.setImmediate)}},Eo=class{tasks=new wo;running=void 0;setImmediate;constructor(e=Co){this.setImmediate=e}scheduleTask(e,t){this.tasks.scheduleTask(e,t),this.running===void 0&&(this.running=this.setImmediate(this.afterScheduled))}afterScheduled=()=>{this.running=void 0,this.runTasks()};runTasks(){let e=this.tasks.drain();for(let t=0;t<e.length;t++){let n=e[t][1];for(let e=0;e<n.length;e++)n[e]()}}flush(){for(;this.tasks.buckets.length>0;)this.running!==void 0&&(this.running(),this.running=void 0),this.runTasks()}},Do=fi(`effect/Scheduler/MaxOpsBeforeYield`,{fiberCached:!0,defaultValue:()=>2048}),Oo=fi(`effect/Scheduler/PreventSchedulerYield`,{fiberCached:!0,defaultValue:()=>!1}),ko=class extends a{constructor(e){super(),e&&Nt(this,e)}},Ao=e=>class extends ko{_tag=e},jo=()=>new Proxy({},{get(e,t,n){return t===`$is`?ve:t===`$match`?Mo:e=>({...e,_tag:t})}});function Mo(){if(arguments.length===1){let e=arguments[0];return function(t){return e[t._tag](t)}}let e=arguments[0];return arguments[1][e._tag](e)}var No=En,Po=`~effect/encoding/EncodingError`,Fo=class extends No(`EncodingError`){[Po]=Po},Io=e=>{switch(e){case 16:return Bo();case 32:return Vo();default:{let t=``;for(let n=e>>>3;n>0;n--)t+=zo();return t}}},Lo=Uint8Array.from(`0123456789abcdef`,e=>e.charCodeAt(0)),Ro=()=>Math.random()*4294967296>>>0,zo=()=>{let e=Ro();return String.fromCharCode(Lo[e>>>28],Lo[e>>>24&15],Lo[e>>>20&15],Lo[e>>>16&15],Lo[e>>>12&15],Lo[e>>>8&15],Lo[e>>>4&15],Lo[e&15])},Bo=()=>{let e=Ro(),t=Ro();return String.fromCharCode(Lo[e>>>28],Lo[e>>>24&15],Lo[e>>>20&15],Lo[e>>>16&15],Lo[e>>>12&15],Lo[e>>>8&15],Lo[e>>>4&15],Lo[e&15],Lo[t>>>28],Lo[t>>>24&15],Lo[t>>>20&15],Lo[t>>>16&15],Lo[t>>>12&15],Lo[t>>>8&15],Lo[t>>>4&15],Lo[t&15])},Vo=()=>{let e=Ro(),t=Ro(),n=Ro(),r=Ro();return String.fromCharCode(Lo[e>>>28],Lo[e>>>24&15],Lo[e>>>20&15],Lo[e>>>16&15],Lo[e>>>12&15],Lo[e>>>8&15],Lo[e>>>4&15],Lo[e&15],Lo[t>>>28],Lo[t>>>24&15],Lo[t>>>20&15],Lo[t>>>16&15],Lo[t>>>12&15],Lo[t>>>8&15],Lo[t>>>4&15],Lo[t&15],Lo[n>>>28],Lo[n>>>24&15],Lo[n>>>20&15],Lo[n>>>16&15],Lo[n>>>12&15],Lo[n>>>8&15],Lo[n>>>4&15],Lo[n&15],Lo[r>>>28],Lo[r>>>24&15],Lo[r>>>20&15],Lo[r>>>16&15],Lo[r>>>12&15],Lo[r>>>8&15],Lo[r>>>4&15],Lo[r&15])},Ho=`effect/Tracer/ParentSpan`,Uo=class extends Nr()(Ho,{fiberCached:!0}){},Wo=e=>e,Go=fi(`effect/Tracer/DisablePropagation`,{defaultValue:u}),Ko=fi(`effect/Tracer/CurrentTraceLevel`,{defaultValue:()=>`Info`}),qo=fi(`effect/Tracer/MinimumTraceLevel`,{defaultValue:()=>`All`}),Jo=`effect/Tracer`,Yo=Wo({span:e=>new Xo(e)}),Xo=class{_tag=`Span`;sampled;name;parent;annotations;links;startTime;kind;status;_traceId=void 0;_spanId=void 0;_attributes=void 0;_events=void 0;constructor(e){this.name=e.name,this.parent=e.parent,this.annotations=e.annotations,this.links=e.links,this.startTime=e.startTime,this.kind=e.kind,this.sampled=e.sampled,this.status={_tag:`Started`,startTime:e.startTime}}get traceId(){return this._traceId??=yr(this.parent)?.traceId??Io(32)}get spanId(){return this._spanId??=Io(16)}get attributes(){return this._attributes??=new Map}get events(){return this._events??=[]}end(e,t){this.status={_tag:`Ended`,endTime:e,exit:t,startTime:this.status.startTime}}attribute(e,t){this.attributes.set(e,t)}event(e,t,n){this.events.push([e,t,n??{}])}addLinks(e){this.links.push(...e)}},Zo=`effect/Metric/FiberRuntimeMetrics`,Qo=fi(`effect/References/CurrentStackFrame`,{fiberCached:!0,defaultValue:f}),$o=fi(`effect/References/TracerEnabled`,{fiberCached:!0,defaultValue:l}),es=fi(`effect/References/TracerTimingEnabled`,{defaultValue:l}),ts=fi(`effect/References/TracerSpanAnnotations`,{defaultValue:()=>({})}),ns=fi(`effect/References/TracerSpanLinks`,{defaultValue:()=>[]}),rs=fi(`effect/References/CurrentLogAnnotations`,{defaultValue:()=>({})}),is=fi(`effect/References/CurrentLogLevel`,{fiberCached:!0,defaultValue:()=>`Info`}),as=fi(`effect/References/MinimumLogLevel`,{fiberCached:!0,defaultValue:()=>`Info`}),os=fi(`effect/References/CurrentLogSpans`,{defaultValue:()=>[]}),ss=e=>{if(e?.captureStackTrace===!1||e?.captureStackTrace!==void 0&&typeof e.captureStackTrace!=`boolean`)return e;let t=Ot();if(t===0&&e?.captureStackTrace!==!0)return{...e,captureStackTrace:!1};kt(3);let n=Error();return kt(t),{...e,captureStackTrace:cs(()=>n.stack)}},cs=(e=>t=>{let n;return()=>{if(n!==void 0)return n;let r=t();if(!r)return;let i=r.split(`
6
- `);if(i[e]!==void 0)return n=i[e].trim(),n}})(3),ls=class extends en{constructor(e,t=tn){super(`Interrupt`,t,`Interrupted`),this.fiberId=e}toString(){return`Interrupt(${this.fiberId})`}toJSON(){return{_tag:`Interrupt`,fiberId:this.fiberId}}[Ve](e){return fn(e)&&this.fiberId===e.fiberId&&this.annotations===e.annotations}[Se](){return Ee(Ae(`${this._tag}:${this.fiberId}`))(we(this.annotations))}},us=e=>new ls(e),ds=e=>new Qt([new ls(e)]),fs=e=>{let t=e.reasons.find(un);return t?gi(t):_i(e)},ps=e=>{for(let t=0;t<e.reasons.length;t++){let n=e.reasons[t];if(n._tag===`Fail`)return gi(n.error)}return _i(e)},ms=e=>e.reasons.some(fn),hs=e=>{let t;for(let n=0;n<e.reasons.length;n++){let r=e.reasons[n];r._tag===`Interrupt`&&(t??=new Set,r.fiberId!==void 0&&t.add(r.fiberId))}return t?gi(t):_i(e)},gs=e=>e.reasons.length>0&&e.reasons.every(fn),_s=(e,t)=>{let n=new Map,r=[];for(let i of e.concat(t)){let e=Ce(i),t=n.get(e);if(t===void 0)n.set(e,[i]);else if(t.some(e=>He(e,i)))continue;else t.push(i);r.push(i)}return r},vs=o(2,(e,t)=>{if(e.reasons.length===0)return t;if(t.reasons.length===0)return e;let n=new Qt(_s(e.reasons,t.reasons));return He(e,n)?e:n}),ys=o(2,(e,t)=>{let n=!1,r=e.reasons.map(e=>un(e)?(n=!0,new nn(t(e.error),e.annotations)):e);return n?rn(r):e}),bs=e=>{let t;for(let n of e.reasons){if(n._tag===`Fail`)return n.error;n._tag===`Die`&&(t??=n)}return t===void 0?e.reasons.length>0?new globalThis.Error(`All fibers interrupted without error`):new globalThis.Error(`Empty cause`):t.defect},xs=(e,t)=>{let n=[],r=[];if(e.reasons.length===0)return n;let i=Ot();i!==0&&kt(1);try{for(let i of e.reasons){if(i._tag===`Interrupt`){r.push(i);continue}n.push(Ss(i._tag===`Die`?i.defect:i.error,i.annotations,t))}if(n.length===0){let e=Error(`The fiber was interrupted by:`);e.name=`InterruptCause`,e.stack=Ds(e,r);let i=new globalThis.Error(`All fibers interrupted without error`,{cause:e});i.name=`InterruptError`,i.stack=`${i.name}: ${i.message}`,n.push(Ss(i,r[0].annotations,t))}}finally{i!==0&&kt(i)}return n},Ss=(e,t,n)=>{let r=typeof e,i;if(e&&r===`object`){if(i=new globalThis.Error(Cs(e),{cause:e.cause?Ss(e.cause):void 0}),typeof e.name==`string`&&(i.name=e.name),typeof e.stack==`string`)i.stack=Ts(e.stack,i,t);else{let e=`${i.name}: ${i.message}`;i.stack=t?Es(e,t):e}n?.includeCauseInStack&&(i.stack=As(i));for(let t of Object.keys(e))t in i||(i[t]=e[t])}else i=new globalThis.Error(e?r===`string`?e:xt(e):`Unknown error: ${e}`);return i},Cs=e=>{if(typeof e.message==`string`)return e.message;if(typeof e.toString==`function`&&e.toString!==Object.prototype.toString&&e.toString!==Array.prototype.toString)try{return e.toString()}catch{}return xt(e)},ws=/\((.*)\)/g,Ts=(e,t,n)=>{let r=`${t.name}: ${t.message}`,i=(e.startsWith(r)?e.slice(r.length):e).split(`
7
- `),a=[r];for(let e=1;e<i.length&&!/Generator\.next|~effect\/(?:Effect|Utils)/.test(i[e]);e++)a.push(i[e]);return n?Es(a.join(`
8
- `),n):a.join(`
9
- `)},Es=(e,t)=>{let n=t?.get(vn.key);return n&&(e=`${e}\n${Os(n)}`),e},Ds=(e,t)=>{let n=[`${e.name}: ${e.message}`];for(let e of t){let t=e.fiberId===void 0?`unknown`:`#${e.fiberId}`,r=e.annotations.get(yn.key);n.push(` at fiber (${t})`),r&&n.push(Os(r))}return n.join(`
10
- `)},Os=e=>{let t=[],n=e,r=0;for(;n&&r<10;){let e=n.stack();if(e){let r=e.matchAll(ws),i=!1;for(let[,e]of r)i=!0,t.push(` at ${n.name} (${e})`);i||t.push(` at ${n.name} (${e.replace(/^at /,``)})`)}else t.push(` at ${n.name}`);n=n.parent,r++}return t.join(`
11
- `)},ks=e=>xs(e).map(As).join(`
12
- `),As=e=>e.cause?`${e.stack} {\n${js(e.cause,` `)}\n}`:e.stack,js=(e,t)=>{let n=e.stack.split(`
13
- `),r=`${t}[cause]: ${n[0]}`;for(let e=1,i=n.length;e<i;e++)r+=`\n${t}${n[e]}`;return e.cause&&(r+=` {\n${js(e.cause,`${t} `)}\n${t}}`),r},Ms=`~effect/Fiber`,see={_A:s,_E:s},cee={id:0},Ns=()=>globalThis[dt],Ps=class{constructor(e,t=!0){this.setContext(e),this.id=++cee.id,this.currentOpCount=0,this.interruptible=t,this._stack=[],this._observers=void 0,this._exit=void 0,this._children=void 0,this._interruptedCause=void 0,this._yielded=void 0,this._running=!1,this._deferredInterrupt=!1,this._parent=void 0,this.cache.runtimeMetrics?.recordFiberStart(this.context)}get[Ms](){return see}get currentDispatcher(){return this._dispatcher??=this.cache.scheduler.makeDispatcher()}getRef(e){return ai(this.context,e)}addObserver(e){return this._exit?(e(this._exit),p):(this._observers===void 0?this._observers=[e]:this._observers.push(e),()=>this.removeObserver(e))}removeObserver(e){if(this._exit||this._observers===void 0)return;let t=this._observers.indexOf(e);t>=0&&this._observers.splice(t,1)}interruptUnsafe(e,t){if(this._exit)return;let n=ds(e);this.cache.stackFrame&&(n=ln(n,$r(vn,this.cache.stackFrame))),t&&(n=ln(n,t)),this._interruptedCause=this._interruptedCause?vs(this._interruptedCause,n):n,this.interruptible&&(this._running?this._deferredInterrupt=!0:this.evaluate(Js(this._interruptedCause)))}pollUnsafe(){return this._exit}evaluate(e){if(this._exit)return;if(this._yielded!==void 0){let e=this._yielded;this._yielded=void 0,e()}let t=this.runLoop(e);if(t===Ut)return;let n=Rs.interruptChildren&&Rs.interruptChildren(this);if(n!==void 0)return this.evaluate(Ic(n,()=>t));if(this._exit=t,this.cache.runtimeMetrics?.recordFiberEnd(this.context,this._exit),this._parent&&=(this._parent._children?.delete(this),void 0),this._observers!==void 0){let e=this._observers;this._observers=void 0;for(let n=0;n<e.length;n++)e[n](t)}this._stack.length=0,this._children=void 0,this.context=Zr()}runLoop(e){let t=globalThis[dt];globalThis[dt]=this;let n=this._running;this._running=!0;let r=!1,i=e;this.currentOpCount=0;try{for(;;){this._deferredInterrupt&&(this._deferredInterrupt=!1,i=Js(this._interruptedCause)),this.currentOpCount++;let e=this.cache;if(!r&&!e.preventYield&&e.scheduler.shouldYield(this)){r=!0;let e=i;i=Ic($s,()=>e)}if(i=e.tracerContext?e.tracerContext(i,this):i[zt](this),i===Ut){let e=this._yielded;if(Ft in e)return this._deferredInterrupt=!1,this._yielded=void 0,e;if(this._deferredInterrupt){this._yielded=void 0,e();continue}return Ut}}}catch(e){return _e(i,zt)?this.runLoop(Sn(e)):Sn(`Fiber.runLoop: Not a valid effect: ${String(i)}`)}finally{this._running=n,globalThis[dt]=t}}getCont(e){if(this._deferredInterrupt)return this._deferredInterrupt=!1,Is;for(;;){let t=this._stack.pop();if(!t)return;let n=t[Ht];if(n!==void 0){let r=n.call(t,this);if(r)return r[e]=r,r}if(t[e])return t}}succeedWith(e){if(!(++this.currentOpCount&Ls-1))return _n(e);let t=this.getCont(Bt);return t?t[Bt](e,this):this.yieldWith(_n(e))}yieldWith(e){return this._yielded=e,Ut}children(){return this._children??=new Set}pipe(){return r(this,arguments)}setContext(e){let t=this.context;if(this.context=e,t!==void 0&&Jr(t,e))return;let n=e.cacheRoot,r=n._fiberCache??=Fs(e);this.cache?.scheduler!==r.scheduler&&(this._dispatcher=void 0),this.cache=r}get currentSpanLocal(){let e=this.cache.span;return e?._tag===`Span`?e:void 0}},Fs=e=>{let t=ri(e,Jo);return{scheduler:ai(e,bo),tracer:t,tracerContext:t?t.context:void 0,tracerEnabled:ai(e,$o),span:ri(e,Ho),logLevel:ai(e,is),minimumLogLevel:ai(e,as),stackFrame:ai(e,Qo),runtimeMetrics:ri(e,Zo),maxOpsBeforeYield:ai(e,Do),preventYield:ai(e,Oo)}},Is={[Bt](e,t){return Js(t._interruptedCause)},[Vt](e,t){return Js(t._interruptedCause)}},Ls=32,Rs={interruptChildren:void 0},zs=e=>{if(!e.cache.stackFrame)return;let t=new Map;return t.set(yn.key,e.cache.stackFrame),Kr(t)},Bs=e=>{if(e._children!==void 0&&e._children.size!==0)return Ks(e._children)},Vs=e=>{let t=e;return t._exit?qs(t._exit):dc(n=>t._exit?n(qs(t._exit)):Xs(e.addObserver(e=>n(qs(e)))))},Hs=e=>dc(t=>{let n=e[Symbol.iterator](),r=[],i;function a(){let e=n.next();for(;!e.done;){if(e.value._exit){r.push(e.value._exit),e=n.next();continue}i=e.value.addObserver(e=>{r.push(e),a()});return}t(qs(r))}return a(),Xs(()=>i?.())}),Us=e=>{let t=e;return t._exit?t._exit:dc(n=>t._exit?n(t._exit):Xs(e.addObserver(n)))},Ws=e=>Cn(t=>Gs(e,t.id)),Gs=o(e=>_e(e[0],Ms),(e,t,n)=>Cn(r=>{let i=zs(r);return i=i&&n?ui(i,n):i??n,e.interruptUnsafe(t,i),Nc(Vs(e))})),Ks=e=>Cn(t=>{let n=zs(t),r=Ea();for(let i of e)i.interruptUnsafe(t.id,n),r.push(i);return Nc(Hs(r))}),qs=_n,Js=bn,Ys=xn,Xs=hn({op:`Sync`,[zt](e){let t=this[Rt](),n=e.getCont(Bt);return n?n[Bt](t,e):e.yieldWith(_n(t))}}),Zs=hn({op:`Suspend`,[zt](e){return this[Rt]()}}),Qs=Ci({onFailure:Ys,onSuccess:qs}),$s=hn({op:`Yield`,[zt](e){let t=!1;return e.currentDispatcher.scheduleTask(()=>{t||e.evaluate(Yc)},this[Rt]??0),e.yieldWith(()=>{t=!0})}})(0),ec=qs(x()),tc=e=>Zs(()=>Js(e())),nc=e=>Sn(e),rc=e=>Zs(()=>Ys(e())),ic=qs(void 0),ac=e=>{let t=typeof e==`function`?e:e.try,n=typeof e==`function`?e=>new vd(e,`An error occurred in Effect.try`):e.catch;return Zs(()=>{try{return qs(t())}catch(e){return Ys(n(e))}})},oc=e=>lc(function(t,n){e(n).then(e=>t(qs(e)),e=>t(nc(e)))},e.length!==0),sc=e=>{let t=typeof e==`function`?e:e.try,n=typeof e==`function`?e=>new vd(e,`An error occurred in Effect.tryPromise`):e.catch;return lc(function(e,r){let i=t=>{try{e(Ys(jt(()=>n(t))))}catch(t){e(nc(t))}};try{t(r).then(t=>e(qs(t)),i)}catch(e){i(e)}},t.length!==0)},cc=e=>Cn(t=>e(t.id)),lc=function(){let e=mn({op:`Async`,[zt](e){let t=!1,n=!1,r=this.withSignal?new AbortController:void 0,i=this.register.call(e.cache.scheduler,r=>{t||(t=!0,n?e.evaluate(r):n=r)},r?.signal);return n===!1?(n=!0,e._yielded=()=>{t=!0},r===void 0&&i===void 0||e._stack.push(uc(()=>(t=!0,r?.abort(),i??Yc))),Ut):n}}),t=function(e,t){this.register=e,this.withSignal=t};return t.prototype=e,function(e,n){return new t(e,n)}}(),uc=hn({op:`AsyncFinalizer`,[Ht](e){e.interruptible&&(e.interruptible=!1,e._stack.push(vu))},[Vt](e,t){return ms(e)?Ic(Ul(bn(e),this[Rt]()),()=>Js(e)):Js(e)}}),dc=e=>lc(e,e.length>=2),fc=dc(p),pc=(...e)=>{if(e.length===1){let t=e[0];return Zs(()=>vc(t()))}let[t,n]=e;return Zs(()=>vc(n.call(t.self)))},mc=(e,...t)=>{let n=t.length===0?function(){return Zs(()=>vc(e.apply(this,arguments)))}:function(){let n=Zs(()=>vc(e.apply(this,arguments)));for(let e=0;e<t.length;e++)n=t[e](n,...arguments);return n};return hc(e.length,n)},hc=(e,t)=>Object.defineProperty(t,"length",{value:e,configurable:!0}),gc=(e,...t)=>hc(e.length,t.length===0?function(){return _c(()=>e.apply(this,arguments))}:function(){let n=_c(()=>e.apply(this,arguments));for(let e of t)n=e(n,...arguments);return n}),_c=e=>{try{let t=e(),n;for(;;){let r=t.next(n);if(r.done)return qs(r.value);let i=r.value;if(i&&i._tag===`Success`){n=i.value;continue}if(i&&i._tag===`Failure`)return r.value;{let n=!0;return Zs(()=>n?(n=!1,Ic(r.value,e=>vc(t,e))):Zs(()=>vc(e())))}}}catch(e){return nc(e)}},vc=function(){let e=mn({op:`Iterator`,[Bt](e,t){let n=this.iterator;for(;;){let r=n.next(e);if(r.done)return qs(r.value);if(!Lc(r.value))return t._stack.push(this),r.value;if(r.value._tag===`Failure`)return r.value;e=r.value.value}},[zt](e){return this[Bt](this.initial,e)}}),t=function(e,t){this.iterator=e,this.initial=t};return t.prototype=e,function(e,n){return new t(e,n)}}(),yc=o(2,(e,t)=>new Sc(e,Cc,qs(t))),bc=function(e){return e._stack.push(this),this[Rt]},xc=mn({op:`OnSuccess`,[zt]:bc}),Sc=function(e,t,n){this[Rt]=e,this[Bt]=t,this.payload=n};Sc.prototype=xc;var Cc=function(){return this.payload},wc=function(e,t){return t.succeedWith(this.payload)},Tc=(()=>{let e=`~effect/Effect/stackProbe`;return{[e]:function(){return Error().stack}}[e]()?.includes(`[as `+e+`]`)===!0})(),Ec=function(e,t){let n=this.payload;return t.succeedWith(Tc?n(e):jt(()=>n(e)))},Dc=function(e){let t=this.payload;return t(e)},Oc=function(e){let t=this.payload;return new Sc(t(e),wc,e)},kc=function(e){return new Sc(this.payload,wc,e)},Ac=e=>Bc(e,S),jc=o(2,(e,t)=>new Sc(e,Kt(t)?Cc:Dc,t)),Mc=o(2,(e,t)=>new Sc(e,Kt(t)?kc:Oc,t)),Nc=e=>new Sc(e,Cc,Yc),Pc=(e,t)=>Cn(n=>{let r=new Set;return su(n,()=>r.size===0?void 0:Ks(r)),dc(i=>{let a=!1,o=0;for(let s of e){if(a)break;let e=o++,c=Pu(n,s,!0,!0,!1);r.add(c),c.addObserver(o=>{r.delete(c);let s=!a;a=!0,i(o),s&&t?.onWinner&&t.onWinner({fiber:c,index:e,parentFiber:n})})}})}),Fc=o(e=>Kt(e[1]),(e,t,n)=>Pc([e,t],n)),Ic=o(2,(e,t)=>new Sc(e,Dc,t)),Lc=e=>e[Ft]!==void 0,Rc=o(2,(e,t)=>Lc(e)?e._tag===`Success`?t(e.value):e:Ic(e,t)),zc=e=>Ic(e,s),Bc=o(2,(e,t)=>new Sc(e,Ec,t)),Vc=o(2,(e,t)=>Lc(e)?Xc(e,t):Bc(e,t)),Hc=o(2,(e,t)=>Lc(e)?Zc(e,t):xl(e,t)),Uc=o(2,(e,t)=>Lc(e)?Qc(e,t):Sl(e,t)),Wc=e=>bn(ds(e)),Gc=e=>e._tag===`Success`,Kc=e=>e._tag===`Failure`,qc=e=>e._tag===`Failure`?gi(e.cause):_i(e),Jc=e=>e._tag===`Failure`&&ms(e.cause),Yc=_n(void 0),Xc=o(2,(e,t)=>e._tag===`Success`?_n(t(e.value)):e),Zc=o(2,(e,t)=>{if(e._tag===`Success`)return e;let n=ps(e.cause);return xi(n)?e:xn(t(n.success))}),Qc=o(2,(e,t)=>{if(e._tag===`Success`)return _n(t.onSuccess(e.value));let n=ps(e.cause);return xi(n)?e:xn(t.onFailure(n.success))}),$c=o(2,(e,t)=>Gc(e)?t:e),el=o(2,(e,t)=>Gc(e)?t.onSuccess(e.value):t.onFailure(e.cause)),tl=e=>{let t=[];for(let n of e)n._tag===`Failure`&&t.push(...n.cause.reasons);return t.length===0?Yc:bn(rn(t))},nl=e=>Cn(t=>qs(li(t.context,e))),rl=o(2,(e,t)=>Cn(n=>{let r=n.context,i=t(r);return r===i?e:(n.setContext(i),su(n,()=>{n.setContext(r)}),e)})),il=o(3,(e,t,n)=>rl(e,e=>{let r=ii(e,t),i=n(r);return r===i?e:ei(e,t,i)})),al=()=>ol,ol=Cn(e=>qs(e.context)),sl=e=>Cn(t=>e(t.context)),cl=o(2,(e,t)=>Lc(e)?e:rl(e,ui(t))),ll=function(){return arguments.length===1?o(2,(e,t)=>ul(e,arguments[0],t)):o(3,(e,t,n)=>ul(e,t,n)).apply(this,arguments)},ul=(e,t,n)=>rl(e,ei(t,n)),dl=o(2,(e,t)=>Ic(t,t=>t?Ac(e):ec)),fl=o(e=>Kt(e[0]),(e,t)=>Tu({while:l,body:c(t?.disableYield?e:Ic(e,e=>$s)),step:p})),pl=o(2,(e,t)=>new hl(e,t.length===1?t:e=>t(e))),ml=mn({op:`OnFailure`,[zt]:bc}),hl=function(e,t){this[Rt]=e,this[Vt]=t};hl.prototype=ml;var gl=o(3,(e,t,n)=>pl(e,e=>{let r=t(e);return xi(r)?Js(r.failure):n(r.success,e)})),_l=o(2,(e,t)=>gl(e,ps,e=>t(e))),vl=o(2,(e,t)=>pl(e,e=>jc(t(e),Js(e)))),yl=o(e=>Kt(e[0]),(e,t,n,r)=>pl(e,e=>{let i=ps(e);return xi(i)?Js(i.failure):t(i.success)?n(i.success):r?r(i.success):Js(e)})),bl=o(e=>Kt(e[0]),(e,t,n,r)=>yl(e,Array.isArray(t)?e=>_e(e,`_tag`)&&t.includes(e._tag):ve(t),n,r)),xl=o(2,(e,t)=>_l(e,e=>rc(()=>t(e)))),Sl=o(2,(e,t)=>jl(e,{onFailure:e=>rc(()=>t.onFailure(e)),onSuccess:e=>Xs(()=>t.onSuccess(e))})),Cl=e=>Zs(()=>{let t=e[Symbol.iterator](),n=t.next();if(n.done)return nc(Error(`Received an empty collection of effects`));function r(e){let n=t.next();return n.done?e.value:_l(e.value,e=>r(n))}return r(n)}),wl=o(e=>Kt(e[0]),(e,t)=>{if(!t?.log)return jl(e,{onFailure:e=>ic,onSuccess:e=>ic});let n=Dd(t.log===!0?void 0:t.log);return El(e,{onFailure(e){let r=fs(e);return xi(r)?Js(r.failure):t.message===void 0?n(e):n(t.message,e)},onSuccess:e=>ic})}),Tl=e=>Nl(e,{onFailure:_i,onSuccess:gi}),El=o(2,(e,t)=>new Ol(e,t.onSuccess.length===1?t.onSuccess:e=>t.onSuccess(e),t.onFailure.length===1?t.onFailure:e=>t.onFailure(e))),Dl=mn({op:`OnSuccessAndFailure`,[zt]:bc}),Ol=function(e,t,n){this[Rt]=e,this[Bt]=t,this[Vt]=n};Ol.prototype=Dl;var kl=function(e,t){let n=this.payload;return t.succeedWith(Tc?n.onSuccess(e):jt(()=>n.onSuccess(e)))},Al=((e,t)=>{let n=mn({op:e,[zt]:bc,[Bt]:kl,[Vt]:t}),r=function(e,t){this[Rt]=e,this.payload=t};return r.prototype=n,r})(`Match`,function(e,t){let n=e.reasons.find(un);if(n===void 0)return Js(e);let r=this.payload;return t.succeedWith(Tc?r.onFailure(n.error):jt(()=>r.onFailure(n.error)))}),jl=o(2,(e,t)=>El(e,{onFailure:e=>{let n=e.reasons.find(un);return n?t.onFailure(n.error):Js(e)},onSuccess:t.onSuccess})),Ml=o(2,(e,t)=>new Al(e,t)),Nl=o(2,(e,t)=>{if(Lc(e)){if(e._tag===`Success`)return _n(t.onSuccess(e.value));let n=ps(e.cause);return xi(n)?e:_n(t.onFailure(n.success))}return Ml(e,t)}),Pl=e=>Lc(e)?_n(e):Fl(e),Fl=hn({op:`Exit`,[zt](e){return e._stack.push(this),this[Rt]},[Bt](e,t,n){return t.succeedWith(n??_n(e))},[Vt](e,t,n){return t.succeedWith(n??bn(e))}}),Il=o(2,(e,t)=>jc(pd(t),e)),Ll=`~effect/Scope`,Rl=`~effect/Scope/Closeable`,zl=Nr(`effect/Scope`),Bl=(e,t)=>Cn(n=>{let r=Vl(e,t);return r===void 0?ic:(xu(n),r)}),Vl=(e,t)=>{let n=e.state;if(n._tag===`Closed`||(e.state={_tag:`Closed`,exit:t},e.parent!==void 0&&Yl(e.parent,e),n._tag===`Empty`))return;if(n.finalizer!==void 0)return Hl(n.finalizer,t);let r=n.finalizers;return r.size===1?Hl(r.values().next().value,t):Wl(e,r,t)},Hl=(e,t)=>{try{return e(t)}catch(e){return Sn(e)}},Ul=(e,t)=>Gc(e)?t:pl(t,t=>Js(vs(e.cause,t))),Wl=mc(function*(e,t,n){let r=[],i=[],a=Array.from(t.values()),o=Ns();for(let t=a.length-1;t>=0;t--){let s=a[t];e.strategy===`sequential`?r.push(yield*Pl(Hl(s,n))):i.push(Pu(o,Hl(s,n),!0,!0,`inherit`))}return i.length>0&&(r=yield*Hs(i)),yield*tl(r)}),Gl=(e,t)=>{let n=Zl(t,e);return e.state._tag===`Closed`?(n.state=e.state,n):(Jl(e,n,e=>Bl(n,e)),n)},Kl=(e,t)=>Zs(()=>e.state._tag===`Closed`?t(e.state.exit):(Jl(e,{},t),ic)),ql=(e,t)=>Kl(e,c(t)),Jl=(e,t,n)=>{if(e.state._tag===`Empty`)e.state={_tag:`Open`,finalizerKey:t,finalizer:n,finalizers:void 0};else if(e.state._tag===`Open`){let r=e.state;r.finalizer===void 0?r.finalizers.set(t,n):(r.finalizers=new Map([[r.finalizerKey,r.finalizer]]),r.finalizerKey=void 0,r.finalizer=void 0,r.finalizers.set(t,n))}},Yl=(e,t)=>{if(e.state._tag!==`Open`)return;let n=e.state;n.finalizerKey===t?e.state=Ql:n.finalizers!==void 0&&(n.finalizers.delete(t),n.finalizers.size===0&&(e.state=Ql))},Xl=e=>Zl(e,void 0),Zl=(e=`sequential`,t)=>({[Rl]:Rl,[Ll]:Ll,strategy:e,parent:t,state:Ql}),Ql={_tag:`Empty`},$l=zl,eu=ll(zl),tu=e=>Cn(t=>{let n=t.context,r=Xl();return t.setContext(ei(t.context,zl,r)),su(t,e=>(t.setContext(n),Vl(r,e))),e}),nu=e=>Zs(()=>{let t=Xl();return cu(e(t),e=>Zs(()=>Vl(t,e)??ic))}),ru=(e,t,n)=>sl(r=>Cu(i=>Ic($l,a=>Mc(n?.interruptible?i(e):e,e=>Kl(a,n=>cl(t(e,n),r)))))),iu=e=>Ic($l,t=>sl(n=>Kl(t,t=>cl(e(t),n)))),au=function(){let e=mn({op:`OnExit`,[zt](e){return e._stack.push(this),this.effect},[Ht](e){e.interruptible&&this.interruptible!==!0&&(e._stack.push(vu),e.interruptible=!1)},[Bt](e,t,n){n??=_n(e);let r;try{r=this.onExit(n)}catch(e){r=Sn(e)}return r?Ic(r,e=>n):n},[Vt](e,t,n){n??=bn(e);let r;try{r=this.onExit(n)}catch(e){r=Sn(e)}return r?Ic(Ul(n,r),e=>n):n}}),t=function(e,t,n){this.effect=e,this.onExit=t,this.interruptible=n};return t.prototype=e,t}(),ou=(e,t,n)=>new au(e,t,n),su=(e,t)=>{e._stack.push(new au(void 0,t,void 0))},cu=o(2,ou),lu=o(2,(e,t)=>cu(e,e=>t)),uu=o(3,(e,t,n)=>cu(e,e=>{let r=t(e);return xi(r)?ic:n(r.success,e)})),du=o(2,(e,t)=>uu(e,qc,t)),fu=o(3,(e,t,n)=>cu(e,e=>{if(e._tag!==`Failure`)return ic;let r=t(e.cause);return xi(r)?ic:n(r.success,e.cause)})),pu=o(2,(e,t)=>fu(hs,t)(e)),mu=e=>Xs(()=>{let t=qu(!1),n=!1,r,i=Ic(t.await,()=>r);return Cn(a=>r===void 0?n?i:(n=!0,su(a,e=>Xs(()=>{r=e,t.openUnsafe()})),e):r)}),hu=Cn(e=>Js(ds(e.id))),gu=e=>Cn(t=>t.interruptible?(t.interruptible=!1,t._stack.push(vu),e):e),_u=hn({op:`SetInterruptible`,[Ht](e){if(e.interruptible=this[Rt],e._interruptedCause&&e.interruptible)return()=>Js(e._interruptedCause)}}),vu=_u(!0),yu=_u(!1),bu=e=>{if(e.interruptible=!0,e._stack.push(yu),e._interruptedCause)return Js(e._interruptedCause)},xu=e=>{let t=e;t.interruptible&&(t.interruptible=!1,t._stack.push(vu))},Su=e=>Cn(t=>t.interruptible?e:bu(t)??e),Cu=e=>Cn(t=>t.interruptible?(t.interruptible=!1,t._stack.push(vu),e(Su)):e(s)),wu=(e,t)=>be(e)?t?.mode===`result`?Eu(e,Tl,t):Eu(e,s,t):t?.discard?t.mode===`result`?Eu(Object.values(e),Tl,t):Eu(Object.values(e),s,t):Zs(()=>{let n={};return yc(Eu(Object.entries(e),([e,r])=>Bc(t?.mode===`result`?Tl(r):r,t=>{Mt(n,e,t)}),{discard:!0,concurrency:t?.concurrency}),n)}),Tu=hn({op:`While`,[Bt](e,t){return this[Rt].step(e),this[Rt].while()?(t._stack.push(this),this[Rt].body()):Yc},[zt](e){return this[Rt].while()?(e._stack.push(this),this[Rt].body()):Yc}}),Eu=o(e=>typeof e[1]==`function`,(e,t,n)=>Zs(()=>{let r=Ou(n?.concurrency);if(r===1)return Du(e,t,n);let i=Bi(e),a=i.length;if(a===0)return n?.discard?ic:qs([]);let o=n?.discard?void 0:Array(a),s=Mu({f:t,out:o},i,{concurrency:r});return s?yc(s,o):qs(o)})),Du=(e,t,n)=>Zs(()=>{let r=n?.discard?void 0:[],i=e[Symbol.iterator](),a=i.next(),o=0;return yc(Tu({while:()=>!a.done,body:()=>t(a.value,o++),step:e=>{r&&r.push(e),a=i.next()}}),r)}),Ou=e=>e===`unbounded`?1/0:Math.max(1,e??1),ku=()=>e=>{let t=e.onItem,n=e.step,r=(e,t,r,a,o)=>Ic(Pl(o),o=>n(e,t[r],o,r)??i(e,t,r+1,a)??ic),i=(e,i,a=0,o=i.length)=>{for(;a<o;a++){let s=i[a],c=t(e,s,a);if(!Lc(c))return r(e,i,a,o,c);let l=n(e,s,c,a);if(l)return l._tag===`Failure`?l:void 0}};return i},Au=e=>{let t=e.onItem,n=e.step;return(e,r,i)=>{let a=0,o=i.end??r.length,s=i.concurrency,c=!1,l,u,d,f,p,m=e=>{let t=Sn(e);return f=t,c=!0,u&&u.size>0?Ic(gu(Ks(Array.from(u))),()=>f??t):t},h=()=>{let i=!1;for(;!f&&a<o;a++){let o=r[a],g=p??t(e,o,a);if(Lc(g)){if(f=n(e,o,g,a),f)break}else if(l){p=void 0;let t=Pu(l,g,!0,!0,`inherit`);if(t._exit){if(f=n(e,o,t._exit,a),f)break;continue}u.add(t);let r=a;if(t.addObserver(a=>{u.delete(t);try{if(f){if(a._tag===`Failure`){let e=a.cause.reasons.filter(e=>e._tag!==`Interrupt`);if(e.length>0){let t=rn(e);f=bn(f._tag===`Failure`?vs(f.cause,t):t)}}}else{let t=n(e,o,a,r);t&&(f=t,h())}if(i){let e=h();e&&d(e)}else c&&u.size===0&&d(f??ic)}catch(e){d(m(e))}}),u.size<s)continue;i=!0,a++;return}else return dc(e=>{l=Ns(),u=new Set,p=g,d=e;let t;try{t=h()}catch(t){return e(m(t))}return t?e(t):Zs(()=>(f??=Yc,Ic(u?Ks(u):ic,()=>f?._tag===`Failure`?f:ic)))})}if(c=!0,f){if(u&&u.size>0){let e=zs(l);u.forEach(t=>t.interruptUnsafe(l.id,e));return}if(d||f._tag===`Failure`)return f}else if(d){if(u)u.size===0&&d(ic);else return Yc}};return h()}},ju=()=>e=>Au(e),Mu=Au({onItem(e,t,n){return e.f(t,n)},step(e,t,n,r){if(n._tag===`Failure`)return n;e.out&&(e.out[r]=n.value)}}),Nu=o(e=>Kt(e[0]),(e,t)=>Cn(n=>(Md(),qs(Pu(n,e,t?.startImmediately,!1,t?.uninterruptible??!1))))),Pu=(e,t,n=!1,r=!1,i=!1)=>{let a=e,o=i===`inherit`?a.interruptible:!i,s=new Ps(a.context,o);return n?s.evaluate(t):a.currentDispatcher.scheduleTask(()=>s.evaluate(t),0),!r&&!s._exit&&(a.children().add(s),s._parent=a),s},Fu=o(e=>Kt(e[0]),(e,t,n)=>Cn(r=>{let i=Pu(r,e,n?.startImmediately,!0,n?.uninterruptible);if(!i._exit){if(t.state._tag!==`Closed`){let e={};Jl(t,e,()=>cc(e=>e===i.id?ic:Ws(i))),i.addObserver(()=>Yl(t,e))}else i.interruptUnsafe(r.id,zs(r))}return qs(i)})),Iu=e=>(t,n)=>{let r=new Ps(n?.scheduler?ei(e,bo,n.scheduler):e,n?.uninterruptible!==!0);if(r.evaluate(t),r._exit)return r;if(n?.signal){if(n.signal.aborted)r.interruptUnsafe();else{let e=()=>r.interruptUnsafe();n.signal.addEventListener(`abort`,e,{once:!0}),r.addObserver(()=>n.signal.removeEventListener(`abort`,e))}}return n?.onFiberStart&&n.onFiberStart(r),r},Lu=o(2,(e,t)=>{if(e._exit)return e;if(t.state._tag===`Closed`)return e.interruptUnsafe(e.id),e;let n={};return Jl(t,n,()=>Ws(e)),e.addObserver(()=>Yl(t,n)),e}),Ru=Iu(Zr()),zu=e=>{let t=Iu(e);return(e,n)=>{let r=t(e,n);return new Promise(e=>{r.addObserver(t=>e(t))})}},Bu=(e=>{let t=zu(e);return(e,n)=>t(e,n).then(e=>{if(e._tag===`Failure`)throw bs(e.cause);return e.value})})(Zr()),Vu=e=>{let t=Iu(e);return e=>{if(Lc(e))return e;let n=new To(`sync`),r=t(e,{scheduler:n});return r._dispatcher?.flush(),r._exit??Sn(new gd(r))}},Hu=Vu(Zr()),Uu=(e=>{let t=Vu(e);return e=>{let n=t(e);if(n._tag===`Failure`)throw bs(n.cause);return n.value}})(Zr()),Wu=qs(!0),Gu=qs(!1),Ku=class{waiters=[];scheduled=void 0;_isOpen;constructor(e){this._isOpen=e}scheduleUnsafe(e){if(this.waiters.length===0)return Wu;if(this.scheduled===void 0)this.scheduled=this.waiters,e.currentDispatcher.scheduleTask(this.flushScheduled,0);else for(let e=0;e<this.waiters.length;e++)this.scheduled.push(this.waiters[e]);return this.waiters=[],Wu}flushScheduled=()=>{if(this.scheduled===void 0)return;let e=this.scheduled;this.scheduled=void 0;for(let t=0;t<e.length;t++)e[t](Yc)};flushWaiters(){let e=this.waiters;this.waiters=[],this.flushScheduled();for(let t=0;t<e.length;t++)e[t](Yc)}open=Cn(e=>this._isOpen?Gu:(this._isOpen=!0,this.scheduleUnsafe(e)));release=Cn(e=>this._isOpen?Gu:this.scheduleUnsafe(e));openUnsafe(){return!this._isOpen&&(this._isOpen=!0,this.flushWaiters(),!0)}await=dc(e=>this._isOpen?e(ic):(this.waiters.push(e),Xs(()=>{let t=this.waiters.indexOf(e);t===-1?this.scheduled!==void 0&&(t=this.scheduled.indexOf(e),t!==-1&&this.scheduled.splice(t,1)):this.waiters.splice(t,1)})));closeUnsafe(){return this._isOpen?(this._isOpen=!1,!0):!1}close=Xs(()=>this.closeUnsafe());whenOpen=e=>Ic(this.await,()=>e);isOpen(){return this._isOpen}},qu=e=>new Ku(e??!1),Ju=e=>Xs(()=>qu(e)),Yu=BigInt(0),Xu={_tag:`Span`,spanId:`noop`,traceId:`noop`,sampled:!1,status:{_tag:`Ended`,startTime:Yu,endTime:Yu,exit:Yc},attributes:new Map,links:[],kind:`internal`,attribute(){},event(){},end(){},addLinks(){}},Zu=e=>Object.assign(Object.create(Xu),e),Qu=e=>e?ai(e.annotations,Go)?e._tag===`Span`?Qu(yr(e.parent)):x():S(e):x(),$u=(e,t,n)=>{let r=!e.cache.tracerEnabled||n?.annotations&&ai(n.annotations,Go),i=n?.parent===void 0?n?.root?x():Qu(e.cache.span):S(n.parent),a;if(r)a=Zu({name:t,parent:i,annotations:ei(n?.annotations??Zr(),Go,!0)});else{let r=e.cache.tracer??Yo,o=e.getRef(od),s=e.getRef(es),c=e.getRef(ts),l=e.getRef(ns),u=n?.level??e.getRef(Ko),d=n?.links===void 0?l.length===0?[]:l.slice():[...l,...n.links];a=r.span({name:t,parent:i,annotations:n?.annotations??Zr(),links:d,startTime:s?o.currentTimeNanosUnsafe():Yu,kind:n?.kind??`internal`,root:n?.root??pr(i),sampled:n?.sampled??(C(i)&&i.value.sampled===!1?!1:!bd(e.getRef(qo),u))});for(let e in c)a.attribute(e,c[e]);if(n?.attributes!==void 0)for(let e in n.attributes)a.attribute(e,n.attributes[e])}return a},ed=(e,t)=>(t=typeof t==`function`?t:f,il(Qo,n=>({name:e,stack:t,parent:n}))),td=(e,t,n,r)=>Xs(()=>{e.status._tag!==`Ended`&&e.end(r?n.currentTimeNanosUnsafe():Yu,t)}),nd=(e,...t)=>{let n=t.length===1?void 0:t[0],r=t[t.length-1];return Cn(t=>{let i=$u(t,e,n),a=t.getRef(od),o=t.getRef(es);return su(t,e=>td(i,e,a,o)),r(i)})},rd=ll(Uo),id=function(){let e=Kt(arguments[0]),t=e?arguments[1]:arguments[0],n=e?arguments[2]:arguments[1],r=s;return t._tag===`Span`&&(n=ss(n),r=ed(t.name,n?.captureStackTrace)),e?rd(r(arguments[0]),t):e=>rd(r(e),t)},ad=function(){let e=typeof arguments[0]!=`string`,t=e?arguments[1]:arguments[0],n=ss(arguments[2]);if(e){let e=arguments[0];return nd(t,arguments[2],t=>id(e,t,n))}let r=typeof arguments[1]==`function`?arguments[1]:void 0,i=r?void 0:arguments[1];return(e,...a)=>nd(t,r?r(...a):i,t=>id(e,t,n))},od=fi(`effect/Clock`,{defaultValue:()=>new cd}),sd=2**31-1,cd=class{currentTimeMillisUnsafe(){return Date.now()}currentTimeMillis=Xs(()=>this.currentTimeMillisUnsafe());currentTimeNanosUnsafe(){return dd()}currentTimeNanos=Xs(()=>this.currentTimeNanosUnsafe());monotonicTimeNanosUnsafe(){return ud()}monotonicTimeNanos=Xs(()=>this.monotonicTimeNanosUnsafe());sleep(e){return this.sleepMillis(mo(e))}sleepMillis(e){return e<=0?$s:Number.isFinite(e)?dc(t=>{let n=e>sd?this.sleepMillis(e-sd):ic,r=setTimeout(()=>t(n),Math.min(e,sd));return Xs(()=>clearTimeout(r))}):fc}},ld=BigInt(1e6),ud=function(){let e=globalThis.process?.hrtime;if(typeof e?.bigint==`function`)return()=>e.bigint();if(typeof performance<`u`&&typeof performance.now==`function`)return()=>BigInt(Math.round(performance.now()*1e6));let t=BigInt(0);return()=>{let e=BigInt(Date.now())*ld;return e>t&&(t=e),t}}(),dd=function(){let e=BigInt(1e9),t;return()=>{let n=ud(),r=BigInt(Date.now())*ld;if(t===void 0)t=r-n;else{let i=t+n;(r>i?r-i:i-r)>e&&(t=r-n)}return t+n}}(),fd=e=>Cn(t=>e(t.getRef(od))),pd=e=>fd(t=>t.sleep(Ya(e))),md=fd(e=>e.currentTimeMillis),hd=`~effect/Cause/AsyncFiberError`,gd=class extends En(`AsyncFiberError`){[hd]=hd;constructor(e){super({message:`An asynchronous Effect was executed with Effect.runSync`,fiber:e})}},_d=`~effect/Cause/UnknownError`,vd=class extends En(`UnknownError`){[_d]=_d;constructor(e,t){super({message:t,cause:e})}},yd=fi(`effect/Console`,{defaultValue:()=>globalThis.console}),bd=ree(nee(sr,e=>{switch(e){case`All`:return-(2**53-1);case`Fatal`:return 5e4;case`Error`:return 4e4;case`Warn`:return 3e4;case`Info`:return 2e4;case`Debug`:return 1e4;case`Trace`:return 0;case`None`:return 2**53-1}})),xd=fi(`effect/Logger/CurrentLoggers`,{defaultValue:()=>new Set([Ad,jd])}),Sd=fi(`effect/Logger/LogToStderr`,{defaultValue:u}),Cd={"~effect/Logger":{_Message:s,_Output:s},pipe(){return r(this,arguments)}},wd=e=>{let t=Object.create(Cd);return t.log=e,t},Td=e=>e.replace(/[\s="]/g,`_`),Ed=(e,t)=>`${Td(e[0])}=${t-e[1]}ms`,Dd=e=>(...t)=>{let n;for(let e=0,r=t.length;e<r;e++){let r=t[e];Xt(r)&&(n?t.splice(e,1):t=t.slice(0,e).concat(t.slice(e+1)),n=n?rn(n.reasons.concat(r.reasons)):r,e--)}return n===void 0&&(n=an),Cn(r=>{let i=e??r.cache.logLevel;if(bd(r.cache.minimumLogLevel,i))return ic;let a=r.getRef(od),o=r.getRef(xd);if(o.size>0){let e=new Date(a.currentTimeMillisUnsafe());for(let a of o)a.log({cause:n,fiber:r,date:e,logLevel:i,message:t})}return ic})},Od={bold:`1`,red:`31`,green:`32`,yellow:`33`,blue:`34`,cyan:`36`,white:`37`,gray:`90`,black:`30`,bgBrightRed:`101`};Od.gray,Od.blue,Od.green,Od.yellow,Od.red,Od.bgBrightRed,Od.black;var kd=e=>`${e.getHours().toString().padStart(2,`0`)}:${e.getMinutes().toString().padStart(2,`0`)}:${e.getSeconds().toString().padStart(2,`0`)}.${e.getMilliseconds().toString().padStart(3,`0`)}`,Ad=wd(({cause:e,date:t,fiber:n,logLevel:r,message:i})=>{let a=Array.isArray(i)?i.slice():[i];e.reasons.length>0&&a.push(ks(e));let o=t.getTime(),s=n.getRef(os),c=``;for(let e of s)c+=` ${Ed(e,o)}`;let l=n.getRef(rs);Object.keys(l).length>0&&a.push(l);let u=n.getRef(yd);(n.getRef(Sd)?u.error:u.log)(`[${kd(t)}] ${r.toUpperCase()} (#${n.id})${c}:`,...a)}),jd=wd(({cause:e,fiber:t,logLevel:n,message:r})=>{let i=t.getRef(od),a=t.getRef(rs),o=t.cache.span;if(o===void 0||o._tag===`ExternalSpan`)return;let s={};for(let[e,t]of Object.entries(a))Mt(s,e,t);s[`effect.fiberId`]=t.id,s[`effect.logLevel`]=n.toUpperCase(),e.reasons.length>0&&(s[`effect.cause`]=ks(e)),o.event(wt(Array.isArray(r)&&r.length===1?r[0]:r),i.currentTimeNanosUnsafe(),s)});function Md(){Rs.interruptChildren??=Bs}var Nd=Xt,Pd=Zt,Fd=un,Id=rn,Ld=on,Rd=cn,zd=e=>new nn(e),Bd=e=>new sn(e),Vd=us,Hd=gs,Ud=ys,Wd=vs,Gd=bs,lee=ps,Kd=ms,uee=On,qd=eee,Jd=_n,Yd=bn,Xd=xn,Zd=Yc,Qd=Gc,$d=Kc,ef=Jc,tf=el,nf={"~effect/Deferred":{_A:s,_E:s},pipe(){return r(this,arguments)}},rf=function(){this.resumes=void 0,this.effect=void 0};rf.prototype=nf;var af=()=>new rf,of=e=>dc(t=>e.effect?t(e.effect):(e.resumes??=[],e.resumes.push(t),Xs(()=>{let n=e.resumes;if(n===void 0)return;let r=n.indexOf(t);r>=0&&n.splice(r,1)}))),sf=o(2,(e,t)=>Xs(()=>uf(e,t))),cf=o(2,(e,t)=>sf(e,bn(t))),lf=o(2,(e,t)=>cf(e,ds(t))),uf=(e,t)=>{if(e.effect)return!1;if(e.effect=t,e.resumes){let n=e.resumes;e.resumes=void 0;for(let e=0;e<n.length;e++)n[e](t)}return!0},df=zl,ff=Xl,pf=eu,mf=Kl,hf=ql,gf=Gl,_f=Bl,vf=`~effect/Layer`,yf=`~effect/Layer/MemoMap`,bf=(e,t)=>{let n={observers:0,deferred:af(),scope:ff(),finalizer:r=>Zs(()=>--n.observers>0?ic:(e.map.delete(t),_f(n.scope,r)))};return n},xf=(e,t)=>t.state._tag!==`Closed`&&(e.observers++,Jl(t,{},e.finalizer),!0),Sf={[vf]:{_ROut:s,_E:s,_RIn:s},pipe(){return r(this,arguments)}},Cf=e=>{let t=Object.create(Sf);return t.build=e,t},wf=e=>Cf((t,n)=>{let r=gf(n);return cu(e(t,r),e=>e._tag===`Failure`?_f(r,e):ic)}),Tf=e=>{let t=wf((n,r)=>n.getOrElseMemoize(t,r,e));return t},Ef=class{get[yf](){return yf}parent;constructor(e){this.parent=e}map=new Map;get(e,t){let n=this.map.get(e);return n?(xf(n,t),n.deferred.effect??of(n.deferred)):this.parent?.get(e,t)}getOrElseMemoize(e,t,n){return Zs(()=>{let r;return ou(Zs(()=>{let i=this.get(e,t);if(i)return i;let a=bf(this,e);return xf(a,t)?(r=a.deferred,this.map.set(e,a),n(this,a.scope)):n(this,t)}),e=>{r&&uf(r,e)})})}},Df=()=>new Ef,Of=e=>new Ef(e),kf=class e extends Nr()(`effect/Layer/CurrentMemoMap`){static forkOrCreate(t){let n=ni(t,e);return n?Of(n):Df()}},Af=o(3,(e,t,n)=>ll(Bc(e.build(t,n),ei(kf,t)),kf,t)),jf=o(2,(e,t)=>Cn(n=>Af(e,kf.forkOrCreate(n.context),t))),Mf=function(){return arguments.length===1?e=>Nf($r(arguments[0],e)):Nf($r(arguments[0],arguments[1]))},Nf=e=>Cf(c(qs(e))),Pf=Nf(Zr()),Ff=function(){return arguments.length===1?e=>If(arguments[0],e):If(arguments[0],arguments[1])},If=(e,t)=>Lf(Bc(t,t=>$r(e,t))),Lf=e=>Tf((t,n)=>pf(e,n)),Rf=e=>Lf(yc(e,Zr())),zf=(e,t,n)=>{let r=gf(n,`parallel`);return Eu(e,e=>e.build(t,gf(r,`sequential`)),{concurrency:e.length}).pipe(Bc(e=>di(...e)))},Bf=(...e)=>wf((t,n)=>zf(e,t,n)),Vf=o(2,(e,t)=>Bf(e,...Array.isArray(t)?t:[t])),Hf=(e,t,n)=>wf((r,i)=>Ic(Array.isArray(t)?zf(t,r,i):t.build(r,i),t=>e.build(r,i).pipe(cl(t),Bc(e=>n(e,t))))),Uf=o(2,(e,t)=>Hf(e,t,s)),Wf=o(2,(e,t)=>Hf(e,t,(e,t)=>ui(t,e))),Gf=md,Kf=`~effect/DateTime`,qf=`~effect/DateTime/TimeZone`,Jf={[Kf]:Kf,pipe(){return r(this,arguments)},[St](){return this.toString()},toJSON(){return Xf(this).toJSON()}};({...Jf}),{...Jf};var Yf={[qf]:qf,[St](){return this.toString()}};({...Yf}),{...Yf};var Xf=e=>new Date(e.epochMilliseconds);globalThis.Number;var Zf=e=>e+1,Qf=e=>e-1,$f=sr,ep=cr($f),tp=dr($f);globalThis.String;var np=e=>e.toLowerCase(),rp=e=>e.trim(),ip=(e,t)=>n=>n.slice(e,t),ap=e=>e.length===0,op=e=>e.length>0,sp=o(2,(e,t)=>{let n=e.split(t);return pi(n)?n:[e]}),cp=(e,t)=>n=>n.startsWith(e,t),lp=e=>t=>Dr(S(t.lastIndexOf(e)),ep(0)),up=o(2,(e,t)=>gl(e,mp,e=>t(e))),dp=e=>e.reasons.some(fp),fp=e=>e._tag===`Fail`&&uee(e.error),pp=e=>{let t,n=!1;for(let r of e.reasons)fp(r)?t??=r.error:r._tag!==`Interrupt`&&(n=!0);return t===void 0?_i(e):n?_i(Id(e.reasons.filter(e=>!fp(e)))):gi(t)},mp=e=>{let t=pp(e);return xi(t)?t:gi(t.success.value)},hp=e=>{let t=pp(e);return xi(t)?Yd(t.failure):Jd(t.success.value)},gp=(e,t,n)=>nu(r=>Ic(n?.local?Af(t,Df(),r):jf(t,r),t=>cl(e,t))),_p=o(e=>Kt(e[0]),(e,t,n)=>Yr(t)?cl(e,t):gp(e,Array.isArray(t)?Bf(...t):t,n)),vp=Kt,yp=wu,bp=Eu,xp=Tu,Sp=oc,Cp=sc,E=qs,wp=ec,Tp=Zs,D=Xs,Ep=ic,Dp=dc,Op=fc,O=pc,kp=Ys,Ap=Js,jp=tc,Mp=nc,Np=ac,Pp=$s,Fp=Cn,Ip=Qs,k=Ic,Lp=zc,Rp=jc,zp=Mc,Bp=Pl,Vp=Bc,Hp=yc,Up=Nc,Wp=_l,Gp=bl,Kp=pl,qp=xl,Jp=vl,Yp=wl,Xp=Cl,Zp=Il,Qp=pd,$p=Fc,em=dl,tm=El,nm=al,rm=sl,im=_p,am=cl,om=nl,sm=rl,cm=ll,lm=$l,um=tu,dm=ru,fm=iu,pm=lu,mm=du,hm=cu,gm=mu,_m=hu,vm=pu,ym=gu,bm=Cu,xm=fl,Sm=nd,Cm=ad,wm=id,Tm=Nu,Em=Fu,Dm=Ru,Om=Iu,km=Bu,Am=Uu,jm=Hu,Mm=mc,Nm=Dd(`Error`),Pm=Vc,Fm=Hc,Im=Uc,Lm=Rc,Rm=gc,zm=`~effect/BigDecimal`,Bm={[zm]:zm,[Se](){let e=Jm(this);return Ee(Ae(String(e.value)),ke(e.scale))},[Ve](e){return Vm(e)&&$m(this,e)===0},toString(){return`BigDecimal(${th(this)})`},toJSON(){return{_id:`BigDecimal`,value:String(this.value),scale:this.scale}},[St](){return this.toJSON()},pipe(){return r(this,arguments)}},Vm=e=>_e(e,zm),Hm=(e,t)=>{if(!Number.isSafeInteger(t))throw RangeError(`Scale must be a safe integer, got ${t}`);let n=Object.create(Bm);return n.value=e,n.scale=t,n},Um=(e,t)=>{let n=Hm(e,t);return n.normalized=n,n},Wm=BigInt(0),Gm=BigInt(1),Km=BigInt(10),qm=Um(Wm,0),Jm=e=>{if(e.normalized===void 0){if(e.value===Wm)e.normalized=qm;else{let t=`${e.value}`,n=t.length;for(;t[n-1]===`0`;)n--;e.normalized=Um(BigInt(t.slice(0,n)),e.scale-(t.length-n))}}return e.normalized},Ym=100,Xm=[Gm],Zm=(e,t)=>e===t?0:e<t?-1:1,Qm=(e,t)=>{let n=`${e.value<Wm?-e.value:e.value}`,r=`${t.value<Wm?-t.value:t.value}`,i=BigInt(n.length-r.length)-BigInt(e.scale)+BigInt(t.scale);if(i!==Wm)return i<Wm?-1:1;let a=Math.max(n.length,r.length);return tee(n.padEnd(a,`0`),r.padEnd(a,`0`))},$m=(e,t)=>{if(e.scale===t.scale)return Zm(e.value,t.value);let n=eh(e),r=eh(t);if(n!==r)return n<r?-1:1;if(n===0)return 0;let i=e.scale-t.scale,a=Math.abs(i);if(a>Ym)return n===-1?Qm(t,e):Qm(e,t);let o=Xm[a]??=Km**BigInt(a);return i>0?Zm(e.value,t.value*o):Zm(e.value*o,t.value)},eh=e=>e.value===Wm?0:e.value<Wm?-1:1,th=e=>{let t=Jm(e);if(Math.abs(t.scale)>=16)return nh(t);let n=t.value<Wm,r=`${n?-t.value:t.value}`,i=t.scale>0?r.padStart(t.scale+1,`0`):r.padEnd(r.length-t.scale,`0`),a=i.length-t.scale,o=t.scale>0?`${i.slice(0,a)}.${i.slice(a)}`:i;return n?`-${o}`:o},nh=e=>{if(rh(e))return`0e+0`;let t=Jm(e),n=`${t.value}`,r=t.value<Wm?2:1,i=n.slice(0,r),a=n.slice(r),o=a.length-t.scale;return`${i}${a===``?``:`.${a}`}e${o>=0?`+`:``}${o}`},rh=e=>e.value===Wm,ih=BigInt(1),ah=BigInt(1e3),oh=BigInt(1024),sh=[{symbol:`B`,factor:ih,names:[`B`,`byte`,`bytes`]},{symbol:`kB`,factor:ah,names:[`kB`,`kilobyte`,`kilobytes`]},{symbol:`MB`,factor:ah**BigInt(2),names:[`MB`,`megabyte`,`megabytes`]},{symbol:`GB`,factor:ah**BigInt(3),names:[`GB`,`gigabyte`,`gigabytes`]},{symbol:`TB`,factor:ah**BigInt(4),names:[`TB`,`terabyte`,`terabytes`]},{symbol:`PB`,factor:ah**BigInt(5),names:[`PB`,`petabyte`,`petabytes`]},{symbol:`EB`,factor:ah**BigInt(6),names:[`EB`,`exabyte`,`exabytes`]},{symbol:`ZB`,factor:ah**BigInt(7),names:[`ZB`,`zettabyte`,`zettabytes`]},{symbol:`YB`,factor:ah**BigInt(8),names:[`YB`,`yottabyte`,`yottabytes`]},{symbol:`RB`,factor:ah**BigInt(9),names:[`RB`,`ronnabyte`,`ronnabytes`]},{symbol:`QB`,factor:ah**BigInt(10),names:[`QB`,`quettabyte`,`quettabytes`]}],ch=[sh[0],{symbol:`KiB`,factor:oh,names:[`KiB`,`kibibyte`,`kibibytes`]},{symbol:`MiB`,factor:oh**BigInt(2),names:[`MiB`,`mebibyte`,`mebibytes`]},{symbol:`GiB`,factor:oh**BigInt(3),names:[`GiB`,`gibibyte`,`gibibytes`]},{symbol:`TiB`,factor:oh**BigInt(4),names:[`TiB`,`tebibyte`,`tebibytes`]},{symbol:`PiB`,factor:oh**BigInt(5),names:[`PiB`,`pebibyte`,`pebibytes`]},{symbol:`EiB`,factor:oh**BigInt(6),names:[`EiB`,`exbibyte`,`exbibytes`]},{symbol:`ZiB`,factor:oh**BigInt(7),names:[`ZiB`,`zebibyte`,`zebibytes`]},{symbol:`YiB`,factor:oh**BigInt(8),names:[`YiB`,`yobibyte`,`yobibytes`]}];[...sh,...ch.slice(1)];var lh=e=>dh(typeof e==`string`?fh.encode(e):e),uh=e=>{let t=ph(e),n=t.length;if(n%4!=0)return _i(new Fo({kind:`Decode`,module:`Base64`,input:t,message:`Length must be a multiple of 4, but is ${n}`}));let r=t.indexOf(`=`);if(r!==-1&&(r<n-2||r===n-2&&t[n-1]!==`=`))return _i(new Fo({kind:`Decode`,module:`Base64`,input:t,message:`Found a '=' character, but it is not at the end`}));try{let e=t.endsWith(`==`)?2:+!!t.endsWith(`=`),r=new Uint8Array(n/4*3-e);for(let e=0,i=0;e<n;e+=4,i+=3){let n=gh(t.charCodeAt(e))<<18|gh(t.charCodeAt(e+1))<<12|gh(t.charCodeAt(e+2))<<6|gh(t.charCodeAt(e+3));r[i]=n>>16,r[i+1]=n>>8&255,r[i+2]=n&255}return gi(r)}catch(e){return _i(new Fo({kind:`Decode`,module:`Base64`,input:t,message:e instanceof Error?e.message:`Invalid input`}))}},dh=e=>{let t=e.length,n=``,r=2;for(;r<t;r+=3)n+=mh[e[r-2]>>2],n+=mh[(e[r-2]&3)<<4|e[r-1]>>4],n+=mh[(e[r-1]&15)<<2|e[r]>>6],n+=mh[e[r]&63];return r===t+1&&(n+=mh[e[r-2]>>2],n+=mh[(e[r-2]&3)<<4],n+=`==`),r===t&&(n+=mh[e[r-2]>>2],n+=mh[(e[r-2]&3)<<4|e[r-1]>>4],n+=mh[(e[r-1]&15)<<2],n+=`=`),n},fh=new TextEncoder,ph=e=>e.replace(/[\n\r]/g,``),mh=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,hh=new Uint8Array(123).fill(255);for(let e=0;e<64;e++)hh[mh.charCodeAt(e)]=e;hh[61]=0;var gh=e=>{if(e>=hh.length||hh[e]===255)throw TypeError(`Invalid character ${String.fromCharCode(e)}`);return hh[e]},_h=`~effect/HashMap`,vh=5,yh=32,bh=yh/4,xh=yh/2,Sh=31,Ch=e=>(e-=e>>>1&1431655765,e=(e&858993459)+(e>>>2&858993459),(e+(e>>>4)&252645135)*16843009>>>24),wh=(e,t)=>e>>>t&Sh,Th=(e,t)=>1<<wh(e,t),Eh=(e,t)=>Ch(e&t-1);function Dh(e,t,n,r,i,a){if(t>32)throw Error(`HashMap: max depth exceeded`);let o=Th(n,t),s=Th(i,t);return o===s?new Fh(e,o,[Dh(e,t+vh,n,r,i,a)]):new Fh(e,o|s,o>>>0<s>>>0?[r,a]:[a,r])}var Oh=Ae(`HashMap`),kh=(e,t)=>Ee(Ce(e),Ce(t)),Ah=e=>{let t=0;for(let n=0;n<e.length;n++){let r=e[n];r&&(t^=r.subtreeHash())}return t},jh=class{canEdit(e){return this.edit===e}subtreeHash(){let e=this._hash;if(e===void 0){let t=te;e=this.computeHash(),t===te&&(this._hash=e)}return e}},Mh=class extends jh{_tag=`EmptyNode`;edit=0;get size(){return 0}get(e,t,n){return x()}has(e,t,n){return!1}set(e,t,n,r,i,a){return a.value=!0,new Nh(e,n,r,i)}remove(e,t,n,r,i){return this}canEdit(e){return!1}computeHash(){return 0}},Nh=class e extends jh{_tag=`LeafNode`;edit;hash;key;value;constructor(e,t,n,r){super(),this.edit=e,this.hash=t,this.key=n,this.value=r}get size(){return 1}get(e,t,n){return this.hash===t&&He(this.key,n)?S(this.value):x()}has(e,t,n){return this.hash===t&&He(this.key,n)}set(t,n,r,i,a,o){if(this.canEdit(t)&&(this._hash=void 0),this.hash===r&&He(this.key,i))return He(this.value,a)?this:this.canEdit(t)?(this.value=a,this):new e(t,r,i,a);if(o.value=!0,this.hash===r)return new Ph(t,r,[[this.key,this.value],[i,a]]);let s=Th(r,n),c=Th(this.hash,n);return s===c?new Fh(t,s,[this.set(t,n+vh,r,i,a,o)]):new Fh(t,s|c,s>>>0<c>>>0?[new e(t,r,i,a),this]:[this,new e(t,r,i,a)])}remove(e,t,n,r,i){if(this.hash===n&&He(this.key,r)){i.value=!0;return}return this}computeHash(){return kh(this.key,this.value)}},Ph=class e extends jh{_tag=`CollisionNode`;edit;hash;entries;constructor(e,t,n){super(),this.edit=e,this.hash=t,this.entries=n}get size(){return this.entries.length}get(e,t,n){if(this.hash!==t)return x();for(let[e,t]of this.entries)if(He(e,n))return S(t);return x()}has(e,t,n){if(this.hash!==t)return!1;for(let[e]of this.entries)if(He(e,n))return!0;return!1}set(t,n,r,i,a,o){if(this.canEdit(t)&&(this._hash=void 0),this.hash!==r)return o.value=!0,Dh(t,n,this.hash,this,r,new Nh(t,r,i,a));for(let n=0;n<this.entries.length;n++)if(He(this.entries[n][0],i)){if(He(this.entries[n][1],a))return this;if(this.canEdit(t))return this.entries[n]=[i,a],this;let r=[...this.entries];return r[n]=[i,a],new e(t,this.hash,r)}return o.value=!0,this.canEdit(t)?(this.entries.push([i,a]),this):new e(t,this.hash,[...this.entries,[i,a]])}remove(t,n,r,i,a){if(this.canEdit(t)&&(this._hash=void 0),this.hash!==r)return this;let o=this.entries.findIndex(([e])=>He(e,i));if(o===-1)return this;if(a.value=!0,this.entries.length===1)return;if(this.entries.length===2){let e=this.entries[+(o===0)];return new Nh(t,this.hash,e[0],e[1])}if(this.canEdit(t))return this.entries.splice(o,1),this;let s=[...this.entries];return s.splice(o,1),new e(t,this.hash,s)}computeHash(){let e=0,t=this.entries;for(let n=0;n<t.length;n++)e^=kh(t[n][0],t[n][1]);return e}},Fh=class e extends jh{_tag=`IndexedNode`;edit;_size;bitmap;children;constructor(e,t,n){super(),this.edit=e,this.bitmap=t,this.children=n}get size(){return this._size===void 0&&(this._size=this.children.reduce((e,t)=>e+t.size,0)),this._size}get(e,t,n){let r=Th(t,e);if((this.bitmap&r)===0)return x();let i=Eh(this.bitmap,r);return this.children[i].get(e+vh,t,n)}has(e,t,n){let r=Th(t,e);if((this.bitmap&r)===0)return!1;let i=Eh(this.bitmap,r);return this.children[i].has(e+vh,t,n)}set(t,n,r,i,a,o){this.canEdit(t)&&(this._hash=void 0);let s=Th(r,n),c=Eh(this.bitmap,s);if((this.bitmap&s)!==0){let s=this.children[c],l=s.set(t,n+vh,r,i,a,o);if(s===l)return this;if(this.canEdit(t))return this.children[c]=l,this;let u=[...this.children];return u[c]=l,new e(t,this.bitmap,u)}{o.value=!0;let n=new Nh(t,r,i,a),l=this.bitmap|s;if(this.canEdit(t))return this.children.splice(c,0,n),this.bitmap=l,this._size=void 0,this.children.length>xh?this.expand(t,l,this.children):this;let u=[...this.children];return u.splice(c,0,n),u.length>xh?this.expand(t,l,u):new e(t,l,u)}}remove(t,n,r,i,a){this.canEdit(t)&&(this._hash=void 0);let o=Th(r,n);if((this.bitmap&o)===0)return this;let s=Eh(this.bitmap,o),c=this.children[s],l=c.remove(t,n+vh,r,i,a);if(!a.value)return this;if(l===void 0){let n=this.bitmap^o;if(n===0)return;if(this.children.length===2){let e=this.children[+(s===0)];if(e._tag===`LeafNode`)return e}if(this.canEdit(t))return this.children.splice(s,1),this.bitmap=n,this._size=void 0,this;let r=[...this.children];return r.splice(s,1),new e(t,n,r)}if(c===l)return this;if(this.canEdit(t))return this.children[s]=l,this;let u=[...this.children];return u[s]=l,new e(t,this.bitmap,u)}expand(e,t,n){let r=new globalThis.Array(yh),i=0;for(let e=0;e<yh;e++)t&1<<e&&(r[e]=n[i++]);return new Ih(e,n.length,r)}computeHash(){return Ah(this.children)}},Ih=class e extends jh{_tag=`ArrayNode`;edit;_size;count;children;constructor(e,t,n){super(),this.edit=e,this.count=t,this.children=n}get size(){return this._size===void 0&&(this._size=this.children.reduce((e,t)=>e+(t?.size??0),0)),this._size}get(e,t,n){let r=wh(t,e),i=this.children[r];return i?i.get(e+vh,t,n):x()}has(e,t,n){let r=wh(t,e),i=this.children[r];return i?i.has(e+vh,t,n):!1}set(t,n,r,i,a,o){this.canEdit(t)&&(this._hash=void 0);let s=wh(r,n),c=this.children[s];if(c){let l=c.set(t,n+vh,r,i,a,o);if(c===l)return this;if(this.canEdit(t))return this.children[s]=l,this;let u=[...this.children];return u[s]=l,new e(t,this.count,u)}{o.value=!0;let n=new Nh(t,r,i,a);if(this.canEdit(t))return this.children[s]=n,this.count++,this._size=void 0,this;let c=[...this.children];return c[s]=n,new e(t,this.count+1,c)}}remove(t,n,r,i,a){this.canEdit(t)&&(this._hash=void 0);let o=wh(r,n),s=this.children[o];if(!s)return this;let c=s.remove(t,n+vh,r,i,a);if(!a.value)return this;let l=this.count-+!c;if(l<bh)return this.pack(t,o,c);if(s===c)return this;if(this.canEdit(t))return this.children[o]=c,c||(this.count=l),this._size=void 0,this;let u=[...this.children];return u[o]=c,new e(t,l,u)}pack(e,t,n){let r=[],i=0,a=1;for(let e=0;e<this.children.length;e++){let o=e===t?n:this.children[e];o&&(r.push(o),i|=a),a<<=1}return new Fh(e,i,r)}computeHash(){return Ah(this.children)}},Lh=class{stack;project;entries=[];index=0;constructor(e,t){this.stack=[e],this.project=t}next(){for(;;){if(this.index<this.entries.length){let e=this.entries[this.index++];return{done:!1,value:this.project(e[0],e[1])}}if(this.stack.length===0)return{done:!0,value:void 0};let e=this.stack.pop();switch(e._tag){case`LeafNode`:{let t=e;return{done:!1,value:this.project(t.key,t.value)}}case`CollisionNode`:this.entries=e.entries,this.index=0;break;case`IndexedNode`:case`ArrayNode`:{let t=e.children;for(let e=t.length-1;e>=0;e--){let n=t[e];n&&this.stack.push(n)}}}}}[Symbol.iterator](){return this}},Rh=(e,t)=>[e,t],zh=class{[_h]=_h;_editable;_edit;_root;_size;constructor(e,t,n,r){this._editable=e,this._edit=t,this._root=n,this._size=r}get size(){return this._size}[Symbol.iterator](){return new Lh(this._root,Rh)}[Ve](e){if(Vh(e)){let t=e;if(this.size!==t.size)return!1;for(let[t,n]of this){let r=m(e,Gh(t));if(pr(r)||!He(n,r.value))return!1}return!0}return!1}[Se](){return De(Oh^this._root.subtreeHash())}[St](){return Ct(this)}toString(){return`HashMap(${mt(Array.from(this))})`}toJSON(){return{_id:`HashMap`,values:Array.from(this).map(([e,t])=>[Ct(e),Ct(t)])}}pipe(){return r(this,arguments)}},Bh=new Mh,Vh=e=>_e(e,_h),Hh=()=>new zh(!1,0,Bh,0),Uh=(...e)=>Wh(e),Wh=e=>{let t=Bh,n=0,r={value:!1};for(let[i,a]of e){let e=Ce(i);r.value=!1,t=t.set(NaN,0,e,i,a,r),r.value&&n++}return new zh(!1,0,t,n)},Gh=o(2,(e,t)=>e._root.get(0,Ce(t),t)),Kh=o(2,(e,t)=>e._root.has(0,Ce(t),t)),qh=(e,t,n,r)=>{let i=e,a={value:!1},o=i._editable?i._edit:NaN,s=i._root.set(o,0,n,t,r,a);return i._editable?(i._root=s,a.value&&i._size++,e):i._root===s?e:new zh(!1,i._edit,s,i._size+ +!!a.value)},Jh=o(3,(e,t,n)=>qh(e,t,Ce(t),n)),Yh=e=>new Lh(e._root,s),Xh=e=>e.size,Zh=(e,t,n)=>{let r=e,i={value:!1},a=r._editable?r._edit:NaN,o=r._root.remove(a,0,n,t,i);return i.value?r._editable?(r._root=o??Bh,r._size--,e):o===void 0?Hh():new zh(!1,r._edit,o,r._size-1):e},Qh=o(2,(e,t)=>Zh(e,t,Ce(t))),$h=Hh,eg=Uh,tg=Gh,ng=Kh,rg=Jh,ig=Qh,ag=`~effect/HashSet`,og=Ae(ag),sg={[Se](){return De(Ee(og,Ce(ug(this))))},[Ve](e){return lg(e)&&mg(this)===mg(e)&&hg(this,t=>pg(e,t))},[Symbol.iterator](){return Yh(ug(this))},toString(){return`HashSet(${mt(Array.from(this))})`},toJSON(){return{_id:`HashSet`,values:Ct(Array.from(this))}},[St](){return this.toJSON()},pipe(){return r(this,arguments)}},cg=e=>{let t=Object.create(sg);return t[ag]=ag,t.keyMap=e,t},lg=e=>_e(e,ag),ug=e=>e.keyMap,dg=()=>cg(Hh()),fg=e=>{let t=Hh();for(let n of e)t=Jh(t,n,!0);return cg(t)},pg=(e,t)=>Kh(ug(e),t),mg=e=>Xh(ug(e)),hg=(e,t)=>{for(let n of e)if(!t(n))return!1;return!0},gg=dg,_g=fg,vg=mg,yg=`~effect/http/Cookies`,bg=`~effect/http/Cookies/Cookie`,xg={[yg]:yg,...Tt,toJSON(){return{_id:`effect/Cookies`,cookies:Mi(this.cookies,e=>e.toJSON())}},pipe(){return r(this,arguments)}},Sg=e=>{let t=Object.create(xg);return t.cookies=e,t},Cg=e=>{let t={};for(let n of e)Mt(t,n.name,n);return Sg(t)},wg=e=>{let t=typeof e==`string`?[e]:e,n=[];for(let e of t){let t=Tg(e.trim());t&&n.push(t)}return Cg(n)};function Tg(e){let t=e.split(`;`).map(e=>e.trim()).filter(e=>e!==``);if(t.length===0)return;let n=t[0].indexOf(`=`);if(n===-1)return;let r=t[0].slice(0,n);if(!Eg.test(r))return;let i=t[0].slice(n+1),a=Og(i);if(t.length===1)return Object.assign(Object.create(Dg),{name:r,value:a,valueEncoded:i});let o={};for(let e=1;e<t.length;e++){let n=t[e],r=n.indexOf(`=`),i=r===-1?n:n.slice(0,r).trim(),a=r===-1?void 0:n.slice(r+1).trim();switch(i.toLowerCase()){case`domain`:{if(a===void 0)break;let e=a.trim().replace(/^\./,``);e&&(o.domain=e);break}case`expires`:{if(a===void 0)break;let e=new Date(a);isNaN(e.getTime())||(o.expires=e);break}case`max-age`:{if(a===void 0)break;let e=parseInt(a,10);isNaN(e)||(o.maxAge=co(e));break}case`path`:if(a===void 0)break;a[0]===`/`&&(o.path=a);break;case`priority`:if(a===void 0)break;switch(a.toLowerCase()){case`low`:o.priority=`low`;break;case`medium`:o.priority=`medium`;break;case`high`:o.priority=`high`}break;case`httponly`:o.httpOnly=!0;break;case`secure`:o.secure=!0;break;case`partitioned`:o.partitioned=!0;break;case`samesite`:if(a===void 0)break;switch(a.toLowerCase()){case`lax`:o.sameSite=`lax`;break;case`strict`:o.sameSite=`strict`;break;case`none`:o.sameSite=`none`}}}return Object.assign(Object.create(Dg),{name:r,value:a,valueEncoded:i,options:Object.keys(o).length>0?o:void 0})}var Eg=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,Dg={[bg]:bg,...Tt,toJSON(){return{_id:`effect/Cookies/Cookie`,name:this.name,value:this.value,options:this.options}}},Og=e=>{try{return decodeURIComponent(e)}catch{return e}},kg=new WeakMap,Ag=`~effect/Redacted`,jg=e=>_e(e,Ag),Mg=(e,t)=>{let n=Object.create(Ng);return t?.label&&(n.label=t.label),kg.set(n,e),n},Ng={[Ag]:{_A:e=>e},label:void 0,...Wt,toJSON(){return this.toString()},toString(){return`<redacted${b(this.label)?`:`+this.label:``}>`},[Se](){return Ce(kg.get(this))},[Ve](e){return jg(e)&&He(kg.get(this),kg.get(e))}},Pg=Symbol.for(`~effect/http/Headers`),Fg=Object.defineProperties(Object.create(null),{[Pg]:{value:Pg},[st]:{value(e){return Gg(this,ai(e,qg))}},toJSON:{value(){return lt(this)}},[Ve]:{value(e){return Lg(this,e)}},[Se]:{value(){return Me(this)}},toString:{value:Tt.toString},[St]:{value:Tt[St]}}),Ig=e=>Object.assign(Object.create(Fg),e),Lg=Ii(Fn()),Rg=Object.create(Fg),zg=e=>{if(e===void 0)return Rg;if(Symbol.iterator in e){let t=Object.create(Fg);for(let[n,r]of e)t[n.toLowerCase()]=r;return t}let t=Object.create(Fg);for(let[n,r]of Object.entries(e))Array.isArray(r)?t[n.toLowerCase()]=r.join(`, `):r!==void 0&&(t[n.toLowerCase()]=r);return t},Bg=e=>Object.setPrototypeOf(e,Fg),Vg=o(3,(e,t,n)=>{let r=Ig(e);return r[t.toLowerCase()]=n,r}),Hg=o(2,(e,t)=>Ig({...e,...zg(t)})),Ug=o(2,(e,t)=>{let n=Ig(e);return Object.assign(n,t),n}),Wg=o(2,(e,t)=>{let n=Ig(e);return delete n[t.toLowerCase()],n}),Gg=o(2,(e,t)=>{let n={...e},r=t=>{if(typeof t==`string`){let r=t.toLowerCase();r in e&&(n[r]=Mg(e[r]))}else for(let r in e)r.search(t)!==-1&&(n[r]=Mg(e[r]))};if(Array.isArray(t))for(let e=0;e<t.length;e++)r(t[e]);else r(t);return n}),Kg=(e,t)=>{for(let n=0;n<t.length;n++){let r=t[n];if(typeof r==`string`){if(r.toLowerCase()===e.toLowerCase())return!0}else if(e.search(r)!==-1)return!0}return!1},qg=fi(`effect/Headers/CurrentRedactedNames`,{defaultValue:()=>[`authorization`,`cookie`,`set-cookie`,`x-api-key`]}),Jg=`~effect/http/UrlParams`,Yg=e=>_e(e,Jg),Xg={...Wt,[Jg]:Jg,[Symbol.iterator](){return this.params[Symbol.iterator]()},toJSON(){return{_id:`UrlParams`,params:Object.fromEntries(this.params)}},[Ve](e){return e_(this,e)},[Se](){return Pe(this.params.flat())}},Zg=e=>{let t=Object.create(Xg);return t.params=e,t},Qg=e=>{if(Yg(e))return e;let t=$g(e),n=[];for(let e=0;e<t.length;e++)if(Array.isArray(t[e][0])){let[r,i]=t[e];n.push([`${r[0]}[${r.slice(1).join(`][`)}]`,i])}else n.push(t[e]);return Zg(n)},$g=e=>{let t=typeof e[Symbol.iterator]==`function`?Bi(e):Object.entries(e),n=[];for(let[e,r]of t)if(Array.isArray(r))for(let t=0;t<r.length;t++)r[t]!==void 0&&n.push([e,String(r[t])]);else if(typeof r==`object`&&r){let t=$g(r);for(let[r,i]of t)n.push([[e,...typeof r==`string`?[r]:r],i])}else r!==void 0&&n.push([e,String(r)]);return n},e_=Nn((e,t)=>t_(e.params,t.params)),t_=Ia(Ti([Fn(),Fn()])),n_=Zg([]),r_=o(2,(e,t)=>Zg(t(e.params))),i_=o(2,(e,t)=>{let n=Qg(t).params.slice(),r=new Set;for(let e=0;e<n.length;e++)r.add(n[e][0]);for(let t=0;t<e.params.length;t++)r.has(e.params[t][0])||n.push(e.params[t]);return Zg(n)}),a_=o(2,(e,t)=>r_(e,qi(Qg(t).params))),o_=e=>new URLSearchParams(Qg(e).params).toString(),s_=e=>{let t={};for(let[n,r]of e.params)if(!Object.hasOwn(t,n))Mt(t,n,r);else{let e=t[n];typeof e==`string`?Mt(t,n,[e,r]):e.push(r)}return t};function c_(e){return e.checks?e.checks[e.checks.length-1].annotations:e.annotations}function l_(e){return t=>c_(t)?.[e]}var u_=`~structural`,d_=`~sentinels`,f_=`~constructor`,p_=g(e=>{let t=c_(e)?.identifier;return typeof t==`string`?t:e.getExpected(p_)}),m_=Symbol(),h_=Jd,g_=h_(m_),__=h_(m_),v_=e=>e===m_?x():S(e),y_=e=>e._tag===`None`?g_:h_(e.value),b_=`~effect/SchemaIssue/Issue`;function x_(e){return _e(e,b_)&&e[b_]===b_}function S_(e){return Object.hasOwn(e,`input`)}var C_=class{[b_]=b_;constructor(e,t){t?.reportInput===!0&&e!==m_&&(this.input=e)}},w_=class extends C_{_tag=`Filter`;filter;issue;constructor(e,t,n,r){super(n,r),this.filter=e,this.issue=t}},T_=class extends C_{_tag=`Encoding`;ast;issue;constructor(e,t,n,r){super(n,r),this.ast=e,this.issue=t}},E_=class extends C_{_tag=`Pointer`;path;issue;constructor(e,t){super(),this.path=e,this.issue=t}},D_=class extends C_{_tag=`MissingKey`;annotations;constructor(e){super(),this.annotations=e}},O_=class extends C_{_tag=`UnexpectedKey`;ast;constructor(e,t,n){super(t,n),this.ast=e}},k_=class extends C_{_tag=`Composite`;ast;issues;constructor(e,t,n,r){super(n,r),this.ast=e,this.issues=t}},A_=class extends C_{_tag=`InvalidType`;ast;constructor(e,t,n){super(t,n),this.ast=e}},j_=class extends C_{_tag=`InvalidValue`;annotations;constructor(e,t,n){super(t,n),this.annotations=e}};function M_(e,t,n,r,i){return new k_(e,[new E_([t],n)],r,i)}var N_=class extends C_{_tag=`Forbidden`;annotations;constructor(e,t,n){super(t,n),this.annotations=e}},P_=class extends C_{_tag=`AnyOf`;ast;issues;constructor(e,t,n,r){super(n,r),this.ast=e,this.issues=t}},F_=class extends C_{_tag=`OneOf`;ast;successes;constructor(e,t,n,r){super(n,r),this.ast=e,this.successes=t}};function I_(e,t,n){if(x_(e))return e;if(typeof e==`string`)return new j_({message:e},t,n);let r=typeof e.issue==`string`?new j_({message:e.issue},t,n):e.issue;return new E_(e.path,r)}function L_(e,t,n){if(e!==void 0)return typeof e==`boolean`?e?void 0:new j_(void 0,t,n):I_(e,t,n)}function R_(e,t,n,r){return Array.isArray(t)?Zi(t)?t.length===1?I_(t[0],n,r):new k_(e,T(t,e=>I_(e,n,r)),n,r):void 0:L_(t,n,r)}var z_=e=>{let t=J_(e);if(t!==void 0)return t;switch(e._tag){case`InvalidType`:return U_(p_(e.ast),e);case`InvalidValue`:{let t=H_(e);if(t!==void 0)return U_(t,e);let n=V_(e);return n===void 0?`Expected a valid value`:`Invalid data ${n}`}case`MissingKey`:return`Missing key`;case`UnexpectedKey`:{let t=V_(e);return t===void 0?`Expected no excess property`:`Unexpected key with value ${t}`}case`Forbidden`:return`Forbidden operation`;case`OneOf`:{let t=V_(e);return t===void 0?`Expected exactly one member to match`:`Expected exactly one member to match the input ${t}`}}},B_=e=>J_(e.issue)??J_(e);function V_(e){return S_(e)?mt(e.input):void 0}function H_(e){let t=e.annotations?.expected;return typeof t==`string`?t:void 0}function U_(e,t){let n=V_(t);return n===void 0?`Expected ${e}`:`Expected ${e}, got ${n}`}function W_(e){let t=e.annotations?.expected;if(typeof t==`string`)return t;switch(e._tag){case`Filter`:return`<filter>`;case`FilterGroup`:return e.checks.map(e=>W_(e)).join(` & `)}}function G_(){return e=>q_(e,``)}var K_=G_();function q_(e,t){let n;switch(e._tag){case`Filter`:{let r=B_(e);if(r!==void 0)n=r;else{if(e.issue._tag!==`InvalidValue`)return q_(e.issue,t);let r=H_(e.issue);n=r===void 0?U_(W_(e.filter),e):U_(r,e.issue)}break}case`Encoding`:return q_(e.issue,t);case`Pointer`:return q_(e.issue,t+_t(e.path));case`Composite`:case`AnyOf`:if(e._tag===`Composite`||e.issues.length>0)return e.issues.map(e=>q_(e,t)).join(`
14
- `);n=J_(e)??U_(p_(e.ast),e);break;default:n=z_(e)}return t?`${n}\n at ${t}`:n}function J_(e){if(e._tag===`Pointer`)return;if(e._tag===`Encoding`)return J_(e.issue);let t=(e._tag===`Filter`?e.filter.annotations:`annotations`in e?e.annotations:e.ast.annotations)?.[e._tag===`MissingKey`?`messageMissingKey`:e._tag===`UnexpectedKey`?`messageUnexpectedKey`:`message`];if(typeof t==`string`)return t}function Y_(e){let t;for(let n of e.reasons){if(!Fd(n)||!x_(n.error))return;t??=n.error}return t}function X_(e,t){let n=Y_(e);if(n===void 0)throw Error(t,{cause:e});return n}var Z_=e=>Object.assign(Object.create(i),e),Q_=Z_({_tag:`Passthrough`});function $_(){return Q_}function ev(e){return Z_({_tag:`Transform`,transform:e})}function tv(e){return Z_({_tag:`TransformEffect`,transform:e})}function nv(e){return Z_({_tag:`TransformOptional`,transform:e})}function rv(e){return Z_({_tag:`TransformOptionalEffect`,transform:e})}function iv(){return nv(()=>x())}function av(e){return rv(t=>{let n=Dr(t,le);return C(n)?E(n):Pm(e,S)})}function ov(){return ev(globalThis.String)}function sv(){return ev(globalThis.Number)}function cv(e){return tv((t,n)=>Np({try:()=>JSON.parse(t,e?.reviver),catch:()=>new j_({expected:`a valid JSON string`},t,n)}))}function lv(e){return tv((t,n)=>Np({try:()=>{let n=JSON.stringify(t,e?.replacer,e?.space);if(n===void 0)throw TypeError(`Value cannot be represented as JSON`);return n},catch:()=>new j_({expected:`a JSON-serializable value`},t,n)}))}function uv(){return ev(lh)}function dv(){return tv((e,t)=>Fm(Ip(uh(e)),()=>new j_({expected:`a valid Base64 string`},e,t)))}var fv=class extends a{_tag=`Middleware`;decode;encode;constructor(e,t){super(),this.decode=e,this.encode=t}flip(){return new fv(this.encode,this.decode)}},pv=`~effect/SchemaTransformation/Transformation`,mv=class extends a{[pv]=pv;_tag=`Transformation`;decode;encode;constructor(e,t){super(),this.decode=e,this.encode=t}flip(){return new mv(this.encode,this.decode)}};function hv(e){return _e(e,pv)&&e[pv]===pv}var gv=e=>hv(e)?e:new mv(e.decode,e.encode);function _v(e){return new mv(tv(e.decode),tv(e.encode))}function vv(e){return new mv(ev(e.decode),ev(e.encode))}var yv=new mv($_(),$_());function bv(){return yv}var xv=new mv(sv(),ov()),Sv=e=>he(e)&&typeof e.message==`string`,Cv=e=>{let t=Object.hasOwn(e,`cause`)?Error(e.message,{cause:Dv(e.cause)}):Error(e.message);return typeof e.name==`string`&&e.name!==`Error`&&(t.name=e.name),typeof e.stack==`string`&&(t.stack=e.stack),t},wv=e=>{try{let t=xt(e);return t===void 0?mt(e):JSON.parse(t)}catch{return mt(e)}},Tv=(e,t,n)=>{let r={name:e.name,message:typeof e.message==`string`?e.message:``};return t?.includeStack&&typeof e.stack==`string`&&(r.stack=e.stack),!t?.excludeCause&&e.cause!==void 0&&(r.cause=n(e.cause)),r},Ev=e=>{let t=new WeakSet,n=r=>{if(ye(r)){if(t.has(r))return`[Circular]`;t.add(r);let i=Tv(r,e,n);return t.delete(r),i}return wv(r)};return n},Dv=e=>Sv(e)?Cv(e):e,Ov=e=>vv({decode:Dv,encode:Ev(e)});function kv(){return vv({decode:_r,encode:vr})}var Av=new mv(dv(),uv());function jv(e){return new mv(cv(e??{}),lv(e))}function Mv(e){return t=>t._tag===e}var Nv=Mv(`Declaration`),Pv=Mv(`Null`),Fv=Mv(`Void`),Iv=Mv(`Never`),Lv=Mv(`Literal`),Rv=Mv(`UniqueSymbol`),zv=Mv(`Arrays`),Bv=Mv(`Objects`),Vv=Mv(`Union`),Hv=Mv(`Suspend`),Uv=class{to;transformation;constructor(e,t){this.to=e,this.transformation=t}},Wv={},Gv=class{isOptional;isMutable;constructorDefault;annotations;constructor(e,t,n=void 0,r=void 0){this.isOptional=e,this.isMutable=t,this.constructorDefault=n,this.annotations=r}},Kv=`~effect/Schema`,qv=class{[Kv]=Kv;annotations;checks;encoding;context;constructor(e=void 0,t=void 0,n=void 0,r=void 0){this.annotations=e,this.checks=t,this.encoding=n,this.context=r}toString(){return`<${this._tag}>`}},Jv=class extends qv{_tag=`Declaration`;typeParameters;run;encodingChecks;encodingRun;constructor(e,t,n,r,i,a,o,s){super(n,r,i,a),this.typeParameters=e,this.run=t,this.encodingChecks=o,this.encodingRun=s}getParser(){let e;return(t,n)=>t===m_?g_:(e??=this.run(this.typeParameters))(t,this,n)}_rebuild(e,t,n,r,i){let a=db(this.typeParameters,e);return a===this.typeParameters&&t===this.checks&&n===this.encodingChecks&&r===this.run&&i===this.encodingRun?this:new Jv(a,r,this.annotations,t,void 0,this.context,n,i)}recur(e){return this._rebuild(e,this.checks,this.encodingChecks,this.run,this.encodingRun)}flip(e){return this._rebuild(e,this.encodingChecks,this.checks,this.encodingRun??this.run,this.run)}getExpected(){let e=this.annotations?.expected;return typeof e==`string`?e:`<Declaration>`}},Yv=new class extends qv{_tag=`Null`;getParser(){return kb(this,null)}getExpected(){return`null`}},dee=class extends qv{_tag=`Undefined`;getParser(){return kb(this,void 0)}toCodecJson(){return $y(this,[Xv])}getExpected(){return`undefined`}},Xv=new Uv(Yv,new mv(ev(()=>void 0),ev(()=>null))),Zv=new dee,fee=new class extends qv{_tag=`Void`;getParser(){let e=h_(void 0);return t=>t===m_?g_:e}toCodecJson(){return $y(this,[Xv])}getExpected(){return`void`}},Qv=new class extends qv{_tag=`Unknown`;getParser(){return Ab(this,pe)}getExpected(){return`unknown`}},$v=class extends qv{_tag=`Literal`;literal;constructor(e,t,n,r,i){if(super(t,n,r,i),typeof e==`number`&&!globalThis.Number.isFinite(e))throw Error(`A numeric literal must be finite, got ${mt(e)}`);this.literal=e}getParser(){return kb(this,this.literal)}matchPart(e,t){return e===globalThis.String(this.literal)?this.literal:void 0}toCodecJson(){return typeof this.literal==`bigint`?ey(this):this}toCodecStringTree(){return typeof this.literal==`string`?this:ey(this)}getExpected(){return typeof this.literal==`string`?JSON.stringify(this.literal):globalThis.String(this.literal)}};function ey(e){let t=globalThis.String(e.literal);return $y(e,[new Uv(new $v(t),new mv(ev(()=>e.literal),ev(()=>t)))])}var ty=new class extends qv{_tag=`String`;getParser(){return Ab(this,b)}matchPart(e,t){let n=this.checks;return n&&!t.disableChecks&&zb(n,e,void 0,this,t)?void 0:e}getExpected(){return`string`}},pee=class extends qv{_tag=`Number`;getParser(){return Ab(this,re)}matchKey(e,t){return this._match(Pb,e,t)}matchPart(e,t){return this._match(Nb,e,t)}_match(e,t,n){if(!e.test(t))return;let r=globalThis.Number(t);return n.disableChecks||!this.checks?r:zb(this.checks,r,void 0,this,n)?void 0:r}toCodecJson(){return this.checks&&(ny(this.checks,`effect/schema/isFinite`)||ny(this.checks,`effect/schema/isInt`))?this:$y(this,[Jy])}toCodecStringTree(){return this.toCodecJson()===this?$y(this,[Lb]):$y(this,[Rb])}getExpected(){return`number`}};function ny(e,t){return e.some(e=>e.annotations?.representation?.id===t||e._tag===`FilterGroup`&&ny(e.checks,t))}var ry=new pee,mee=new class extends qv{_tag=`Boolean`;getParser(){return Ab(this,ie)}getExpected(){return`boolean`}},iy=class extends qv{_tag=`Arrays`;isMutable;elements;rest;encodingChecks;constructor(e,t,n,r,i,a,o,s){super(r,i,a,o),this.isMutable=e,this.elements=t,this.rest=n,this.encodingChecks=s;let c=!1;for(let e=0;e<t.length;e++)if(bb(t[e]))c=!0;else if(c)throw Error(`A required element cannot follow an optional element. ts(1257)`);if(c&&n.length>1)throw Error(`A required element cannot follow an optional element. ts(1257)`);for(let e=1;e<n.length;e++)if(bb(n[e]))throw Error(`An optional element cannot follow a rest element. ts(1266)`)}getParser(e,t=e){let n=this,r,i,a=n.elements.length,o=Math.max(0,n.rest.length-1);function s(e,t){return t<a?r[t]:t>=e?i[t-e+1]:i[0]}let c=e=>{let{input:t,len:r,options:i}=e;if(n.rest.length===0&&r>a)for(let o=a;o<r;o++){let r=new O_(n,t[o],i),a=new E_([o],r);if(i.errors===`all`)e.issues?e.issues.push(a):e.issues=[a];else return kp(new k_(n,[a],t,i))}return e.issues?kp(new k_(n,e.issues,t,i)):h_(e.output)},l=(e,t)=>{let r=e.length,i={ast:n,getParser:s,input:e,len:r,tailThreshold:Math.max(a,r-o),output:new globalThis.Array(r),issues:void 0,options:t},u=n.rest.length===0?a:Math.max(r,a+o),d=t.concurrency===void 0?1:Ou(t.concurrency),f=d===1?oy(i,e,0,u):sy(i,e,{concurrency:d,end:u});if(!f)return c(i);if(Lc(f))return Lm(f,()=>c(i));let p=!0;return Tp(()=>p?(p=!1,k(f,()=>c(i))):l(e,t))};return(e,a)=>{if(e===m_)return g_;try{return Array.isArray(e)?(r||(r=n.elements.map(e=>({ast:e,parser:t(e)})),i=n.rest.map(e=>({ast:e,parser:t(e)}))),l(e,a)):kp(new A_(n,e,a))}catch(e){return Mp(e)}}}_rebuild(e,t,n){let r=db(this.elements,e),i=db(this.rest,e);return r===this.elements&&i===this.rest&&t===this.checks&&n===this.encodingChecks?this:new iy(this.isMutable,r,i,this.annotations,t,void 0,this.context,n)}recur(e){return this._rebuild(e,this.checks,this.encodingChecks)}flip(e){return this._rebuild(e,this.encodingChecks,this.checks)}getExpected(){return`array`}};function hee(e,t,n,r){if(n._tag===`Failure`)return cy(e,e.ast,r,n);let i=n===__?t:n[Rt];if(i!==m_)e.output[r]=i;else{let t=e.getParser(e.tailThreshold,r);if(bb(t.ast))return;let n=new E_([r],new D_(t.ast.context?.annotations));if(e.options.errors===`all`)e.issues?e.issues.push(n):e.issues=[n];else return Xd(new k_(e.ast,[n],e.input,e.options))}}var ay={onItem(e,t,n){let r=n<e.len?t:m_;return e.getParser(e.tailThreshold,n).parser(r,e.options)},step:hee},oy=ku()(ay),sy=ju()(ay),cy=(e,t,n,r)=>{if(r.cause.reasons.length===0)return r;let i=Y_(r.cause);if(i===void 0)return Yd(Ud(r.cause,r=>new k_(t,[new E_([n],r)],e.input,e.options)));let a=new E_([n],i);if(e.options.errors===`all`)e.issues?e.issues.push(a):e.issues=[a];else return Xd(new k_(t,[a],e.input,e.options))},ly=`[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?`;function uy(e,t,n=Wv){let r,i;function a(t){switch(t._tag){case`String`:case`TemplateLiteral`:return(r??=Object.keys(e)).filter(e=>t.matchPart(e,n)!==void 0);case`Number`:return(r??=Object.keys(e)).filter(e=>t.matchKey(e,n)!==void 0);case`Symbol`:return(i??=Object.getOwnPropertySymbols(e)).filter(r=>Object.prototype.propertyIsEnumerable.call(e,r)&&t.matchKey(r,n)!==void 0);case`Union`:return[...new Set(t.types.flatMap(a))];default:return[]}}return a(jb(Tb(t)))}var dy=class{name;type;constructor(e,t){this.name=e,this.type=t}};function fy(e){switch(e._tag){case`String`:case`Number`:case`Symbol`:case`TemplateLiteral`:return!0;case`Union`:return e.types.every(fy);default:return!1}}function py(e){let t=tb(e);switch(t._tag){case`String`:case`Number`:case`Symbol`:case`TemplateLiteral`:return!0;case`Union`:return t.types.every(py);default:return!1}}function my(e){return fy(e)&&py(e)}var hy=class{parameter;type;constructor(e,t){if(!my(e))throw Error(`Invalid index signature parameter ${e._tag}`);if(this.parameter=e,this.type=t,bb(t)&&!Ob(t))throw Error("Cannot use `Schema.optionalKey` with index signatures, use `Schema.optional` instead.")}},gy=class extends qv{_tag=`Objects`;propertySignatures;indexSignatures;encodingChecks;constructor(e,t,n,r,i,a,o){super(n,r,i,a),this.propertySignatures=e,this.indexSignatures=t,this.encodingChecks=o}getParser(e,t=e){let n=this,r=n.propertySignatures.length,i=n.indexSignatures.length;if(!r&&!i)return Ab(n,fe);let a,o,s=()=>(a||(a=n.propertySignatures.map(e=>({parser:t(e.type),name:e.name,type:e.type})),o=i?n.indexSignatures.map(n=>({is:n,parserKey:e(jb(n.parameter)),parserValue:t(n.type)})):void 0),a),c=()=>{let e=new Set(n.propertySignatures.map(e=>typeof e.name==`number`?globalThis.String(e.name):e.name)),t=(t,i,a,o,s)=>{if(s._tag===`Failure`)return cy(t,n,i,s)??Zd;let c=s===__?o:s[Rt];if(a!==m_&&c!==m_){if(r&&(e.has(i)||e.has(typeof a==`number`?globalThis.String(a):a)))return Zd;Mt(t.out,a,c)}return Zd},c=(e,r,i,a)=>{if(!a){let t=i.parserKey(r,e.options);if(!Lc(t))return k(Bp(t),t=>c(e,r,i,t));a=t}if(a._tag===`Failure`)return cy(e,n,r,a)??Zd;let o=a===__?r:a[Rt],s=e.input[r],l=i.parserValue(s,e.options);return Lc(l)?t(e,r,o,s,l):k(Bp(l),n=>t(e,r,o,s,n))},l=(e,n,r)=>{let i=e.input[n],a=r.parserValue(i,e.options);return Lc(a)?t(e,n,n,i,a):k(Bp(a),r=>t(e,n,n,i,r))},u=i?ju()({onItem:(e,[t,n])=>n.is.parameter===ty?l(e,t,n):c(e,t,n),step:(e,t,n)=>n._tag===`Failure`?n:void 0}):void 0;return Rm(function*(t,d){if(t===m_)return m_;if(typeof t!=`object`||!t||Array.isArray(t))return yield*kp(new A_(n,t,d));s();let f=t,p={},m={ast:n,input:f,out:p,issues:void 0,options:d},h=d.errors===`all`,g=d.onExcessProperty===`error`,_=d.concurrency===void 0?1:Ou(d.concurrency),v=i&&g?n.indexSignatures.map(e=>uy(f,e.parameter,d)):void 0;if(g){let r=v?new Set(e):e;if(v)for(let e of v)for(let t of e)r.add(t);let i=Reflect.ownKeys(f);for(let e=0;e<i.length;e++){let a=i[e];if(!r.has(a)&&Object.prototype.propertyIsEnumerable.call(f,a)){let e=new O_(n,f[a],d),r=new E_([a],e);if(h){m.issues?m.issues.push(r):m.issues=[r];continue}return yield*kp(new k_(n,[r],t,d))}}}if(r){let e=_===1?yy(m,a):by(m,a,{concurrency:_});e&&(yield*e)}if(i&&_===1)for(let e=0;e<i;e++){let t=o[e],n=t.is.parameter===ty?l:c,r=v?.[e]??(t.is.parameter===ty?Object.keys(f):uy(f,t.is.parameter,d));for(let e=0;e<r.length;e++){let i=n(m,r[e],t);if(!Lc(i))yield*i;else if(i._tag===`Failure`)return yield*i}}else if(u){let e=Ea();for(let t=0;t<i;t++){let n=o[t],r=v?.[t]??(n.is.parameter===ty?Object.keys(f):uy(f,n.is.parameter,d));for(let t=0;t<r.length;t++)e.push([r[t],n])}let t=u(m,e,{concurrency:_});t&&(yield*t)}return m.issues?yield*kp(new k_(n,m.issues,t,d)):p})};if(i)return c();let l,u=(e,t,n)=>{let r=a[t];return k(Bp(n),n=>{let i=_y(e,r,n);if(i)return i;let o=()=>h_(e.out),s=yy(e,a.slice(t+1));return s?Lm(s,o):o()})};return(e,t)=>{if(e===m_)return g_;if(t.errors===`all`||t.onExcessProperty!==void 0||t.concurrency!==void 0&&Ou(t.concurrency)!==1)return(l??=c())(e,t);if(typeof e!=`object`||!e||Array.isArray(e))return kp(new A_(n,e,t));let r=s(),i=e,a={},o={ast:n,input:i,out:a,issues:void 0,options:t};try{for(let e=0;e<r.length;e++){let n=r[e],s=n.name,c=My(i,s),l=c?i[s]:m_,d=n.parser(l,t);if(!Lc(d))return u(o,e,d);if(d===__){c&&Mt(a,s,l);continue}let f=_y(o,n,d);if(f)return f}}catch(e){return Mp(e)}return h_(a)}}_rebuild(e,t,n,r){let i=db(this.propertySignatures,t=>{let n=e(t.type);return n===t.type?t:new dy(t.name,n)}),a=db(this.indexSignatures,n=>{let r=t(n.parameter),i=e(n.type);return r===n.parameter&&i===n.type?n:new hy(r,i)});return i===this.propertySignatures&&a===this.indexSignatures&&n===this.checks&&r===this.encodingChecks?this:new gy(i,a,this.annotations,n,void 0,this.context,r)}flip(e){return this._rebuild(e,e,this.encodingChecks,this.checks)}recur(e,t=e){return this._rebuild(e,t,this.checks,this.encodingChecks)}getExpected(){return this.propertySignatures.length===0&&this.indexSignatures.length===0?`object | array`:`object`}};function _y(e,t,n){if(n._tag===`Failure`)return cy(e,e.ast,t.name,n);if(n===__)return;let r=n[Rt];if(r!==m_){Mt(e.out,t.name,r);return}if(delete e.out[t.name],!bb(t.type)){let n=new E_([t.name],new D_(t.type.context?.annotations));if(e.options.errors===`all`){e.issues?e.issues.push(n):e.issues=[n];return}return Xd(new k_(e.ast,[n],e.input,e.options))}}var vy={onItem(e,t){if(!My(e.input,t.name))return t.parser(m_,e.options);let n=e.input[t.name];return Mt(e.out,t.name,n),t.parser(n,e.options)},step:_y},yy=ku()(vy),by=ju()(vy);function xy(e,t){return e?t?[...e,...t]:e:t}function Sy(e,t,n){return new gy(Reflect.ownKeys(e).map(t=>new dy(t,e[t].ast)),[],n,t)}function Cy(e){return e.ast}function wy(e,t=void 0){return new iy(!1,e.map(e=>e.ast),[],void 0,t)}function Ty(e,t,n){return new Py(e.map(Cy),t,void 0,n)}var Ey=_(e=>{for(;;){if(Hv(e))return Qv;let t=e.encoding;if(!t)return e.recur?.(Ey,s)??e;if(t.some(e=>e.transformation._tag===`Middleware`&&e.transformation.decode!==s))return Qv;e=t[t.length-1].to}});function Dy(e){switch(e._tag){case`Null`:return[`null`];case`Undefined`:return[`undefined`];case`String`:case`TemplateLiteral`:return[`string`];case`Number`:return[`number`];case`Boolean`:return[`boolean`];case`Symbol`:case`UniqueSymbol`:return[`symbol`];case`BigInt`:return[`bigint`];case`Arrays`:return[`array`];case`ObjectKeyword`:return[`object`,`array`,`function`];case`Objects`:return e.propertySignatures.length||e.indexSignatures.length?[`object`]:[`string`,`number`,`boolean`,`symbol`,`bigint`,`object`,`array`,`function`];case`Enum`:return Array.from(new Set(e.enums.map(([,e])=>typeof e)));case`Literal`:return[typeof e.literal];case`Union`:return Array.from(new Set(e.types.flatMap(Dy)));default:return[`null`,`undefined`,`string`,`number`,`boolean`,`symbol`,`bigint`,`object`,`array`,`function`]}}function Oy(e){switch(e._tag){default:return[];case`Declaration`:{let t=e.annotations?.[d_];return Array.isArray(t)?t:[]}case`Objects`:return e.propertySignatures.flatMap(e=>{let t=e.type;if(!bb(t)){if(Lv(t))return[{key:e.name,literal:t.literal}];if(Rv(t))return[{key:e.name,literal:t.symbol}]}return[]});case`Arrays`:return e.elements.flatMap((e,t)=>{if(!bb(e)){if(Lv(e))return[{key:t,literal:e.literal}];if(Rv(e))return[{key:t,literal:e.symbol}]}return[]});case`Union`:{if(e.types.length===0)return[];let t=e.types.map(e=>Oy(Ey(e)));return t[0].filter(e=>t.every(t=>t.some(t=>t.key===e.key&&t.literal===e.literal)))}case`Suspend`:return Oy(e.thunk())}}var ky=new WeakMap,Ay=Object.freeze([]),jy=e=>e===null?`null`:Array.isArray(e)?`array`:typeof e,My=(e,t)=>t===`__proto__`?Object.hasOwn(e,t):t in e;function Ny(e){let t=ky.get(e);if(t)return t;let n,r=0,i,a,o=!0,s=[];for(let t=0;t<e.length;t++){let c=e[t],l=Ey(c);if(Iv(l))continue;if(Lv(l)||Rv(l)){a??=new Map;let e=Lv(l)?l.literal:l.symbol;s[t]=e;let n=a.get(e);n||a.set(e,n=[]),n.push(t)}else o=!1;let u=Oy(l);if(u.length){n??=new Map,r++;for(let{key:e,literal:r}of u){let i=n.get(e);i||n.set(e,i=[new Map,new Set]),i[1].add(t);let a=i[0].get(r);a||i[0].set(r,a=new Set),a.add(t)}}else{i??={};let e=Dy(l);for(let n of e)(i[n]??=[]).push(t)}}let c={},l=e=>c[e]??=Object.freeze(i?.[e]??Ay);if(o&&a)a.forEach(Object.freeze),t=e=>a.get(e)??Ay;else if(n?.size===1&&!i){let[r,[i]]=n.entries().next().value,a=new Map;for(let[e,t]of i)a.set(e,Object.freeze(Array.from(t)));let o=Object.freeze(e.map((e,t)=>t));t=(e,t)=>{if(ge(e)){let n=My(e,r)?e[r]:void 0;if(n!==void 0)return a.get(n)??Ay;if(t)return o}return Ay}}else if(n){let e;for(let t of n)(!e||t[1][0].size>e[1][0].size)&&t[1][1].size===r&&(e=t);t=(t,r)=>{let a=jy(t);if(!ge(t))return l(a);let o=new Set(i?.[a]),s;if(e){let[n,[i]]=e,c=My(t,n),u=c?t[n]:void 0;if(c&&(!r||u!==void 0)){let e=i.get(u);if(!e)return l(a);for(let t of e)o.add(t);s=n}}if(s===void 0)for(let[e,[i,a]]of n){let n=My(t,e),s=n?t[e]:void 0;if(n&&(!r||s!==void 0)){let e=i.get(s);if(e)for(let t of e)o.add(t)}else if(r)for(let e of a)o.add(e)}for(let[e,[i,a]]of n){if(e===s)continue;let n=My(t,e),c=n?t[e]:void 0;if(n&&(!r||c!==void 0)){let e=i.get(c);for(let t of o)a.has(t)&&!e?.has(t)&&o.delete(t)}}return Array.from(o).sort((e,t)=>e-t)}}else t=e=>{let t=l(jy(e));return a?t.filter(t=>s[t]===void 0||s[t]===e):t};return ky.set(e,t),t}var Py=class extends qv{_tag=`Union`;types;options;encodingChecks;constructor(e,t,n,r,i,a,o){super(n,r,i,a),this.types=e,this.options=t,this.encodingChecks=o}getParser(e,t){let n=this,r=t!==void 0,i=[],a=t=>i[t]??=e(n.types[t]),o;return(e,t)=>{if(e===m_)return g_;let i=(o??=Ny(n.types))(e,r);if(i.length===0)return kp(new P_(n,[],e,t));if(i.length===1){let r=a(i[0])(e,t);return r._tag===`Success`?r:Lc(r)?Fy(n,r.cause,e,t):Iy(n,r,e,t)}return Ly(n,a,i,e,t)}}_rebuild(e,t,n){let r=db(this.types,e);return r===this.types&&t===this.checks&&n===this.encodingChecks?this:new Py(r,this.options,this.annotations,t,void 0,this.context,n)}recur(e){return this._rebuild(e,this.checks,this.encodingChecks)}flip(e){return this._rebuild(e,this.encodingChecks,this.checks)}matchPart(e,t){for(let n of this.types){let r=n.matchPart(e,t);if(r!==void 0)return r}}getExpected(e){let t=this.annotations?.expected;if(typeof t==`string`)return t;if(this.types.length===0)return`never`;let n=this.types.map(t=>{let n=Tb(t);switch(n._tag){case`Arrays`:{let t=n.elements.filter(Lv);if(t.length>0)return`${Vy(n.isMutable)}[ ${t.map(t=>e(t)+Hy(t.context?.isOptional)).join(`, `)}, ... ]`;break}case`Objects`:{let t=n.propertySignatures.filter(e=>Lv(e.type));if(t.length>0)return`{ ${t.map(t=>`${Vy(t.type.context?.isMutable)}${gt(t.name)}${Hy(t.type.context?.isOptional)}: ${e(t.type)}`).join(`, `)}, ... }`;break}}return e(n)});return Array.from(new Set(n)).join(` | `)}};function Fy(e,t,n,r){let i=Y_(t);return i?Xd(new P_(e,[i],n,r)):Yd(t)}function Iy(e,t,n,r){return Kp(t,t=>Fy(e,t,n,r))}function Ly(e,t,n,r,i){let a={ast:e,parser:t,input:r,out:void 0,successes:e.options?.mode===`oneOf`?[]:void 0,issues:void 0,options:i},o=zy(a,n);return o?Ry(o,a):a.out?a.out:kp(new P_(e,a.issues??[],r,i))}function Ry(e,t){return Lm(e,e=>t.out===__?E(t.input):t.out?t.out:kp(new P_(t.ast,t.issues??[],t.input,t.options)))}var zy=ku()({onItem(e,t){return e.parser(t)(e.input,e.options)},step(e,t,n){if(n._tag===`Failure`){let t=Y_(n.cause);if(t===void 0)return n;e.issues?e.issues.push(t):e.issues=[t]}else{if(e.out&&e.successes)return e.successes.push(e.ast.types[t]),Xd(new F_(e.ast,e.successes,e.input,e.options));if(e.out=n,e.successes)e.successes.push(e.ast.types[t]);else return Zd}}}),By=new Py([new $v(`Infinity`),new $v(`-Infinity`),new $v(`NaN`)]);function Vy(e){return e?``:`readonly `}function Hy(e){return e?`?`:``}var Uy=class extends a{_tag=`Filter`;run;annotations;aborted;constructor(e,t=void 0,n=!1){super(),this.run=e,this.annotations=t,this.aborted=n}annotate(e){return new Uy(this.run,{...this.annotations,...e},this.aborted)}abort(){return new Uy(this.run,this.annotations,!0)}and(e,t){return new Wy([this,e],t)}},Wy=class extends a{_tag=`FilterGroup`;checks;annotations;constructor(e,t=void 0){super(),this.checks=e,this.annotations=t}annotate(e){return new Wy(this.checks,{...this.annotations,...e})}and(e,t){return new Wy([this,e],t)}};function Gy(e,t,n=!1){return new Uy((t,n,r)=>R_(n,e(t,n,r),t,r),t,n)}function Ky(e){return Gy(e=>globalThis.Number.isFinite(e),{expected:`a finite number`,representation:{id:`effect/schema/isFinite`,payload:null},toJsonSchema:()=>({type:`number`}),toCode:()=>({runtime:`Schema.isFinite()`}),arbitraryConstraint:{number:`finite`},...e})}var qy=ib(ry,[Ky()]),Jy=new Uv(new Py([qy,By]),new mv(sv(),ev(e=>globalThis.Number.isFinite(e)?e:globalThis.String(e))));function Yy(e,t){let n=new globalThis.RegExp(e),r={source:n.source,flags:n.flags};return Gy(e=>(n.lastIndex=0,n.test(e)),{expected:`a string matching the RegExp ${r.source}`,representation:{id:`effect/schema/isPattern`,payload:r},toJsonSchema:()=>[{},!0],arbitraryConstraint:{patterns:[r]},...t})}var Xy=new WeakMap;function Zy(e,t){let n=Object.assign(Object.create(Object.getPrototypeOf(e)),e,t);return Reflect.ownKeys(t).every(e=>e===`context`||e===`encoding`)&&Xy.set(n,Qy(e)),n}function Qy(e){let t=Xy.get(e);if(t!==void 0)return t;if(e.encoding===void 0)return e;let n=Object.assign(Object.create(Object.getPrototypeOf(e)),e,{encoding:void 0});return Xy.set(e,n),n}function $y(e,t){return e.encoding===t?e:Zy(e,{encoding:t})}function eb(e,t){if(e.context===t)return e;let n=Qy(e);return n.context===t&&n.encoding===e.encoding?n:Zy(e,{context:t})}function tb(e){return e.encoding?tb(e.encoding[e.encoding.length-1].to):e}function nb(e,t){if(e.checks){let n=e.checks[e.checks.length-1];return rb(e,Ki(e.checks.slice(0,-1),n.annotate(t)))}return Zy(e,{annotations:{...e.annotations,...t}})}function rb(e,t){if(e._tag===`Suspend`&&t)throw Error(`Cannot add checks to Suspend`);return e.checks===t?e:Zy(e,{checks:t})}function ib(e,t){return rb(e,xy(e.checks,t))}function ab(e,t){let n=t(e.to);return n===e.to?e:new Uv(n,e.transformation)}function ob(e,t){let n=e,r=n[n.length-1],i=ab(r,t);return i===r?e:Ki(e.slice(0,e.length-1),i)}function sb(e){return t=>t.encoding?$y(t,ob(t.encoding,e)):t}function cb(e,t){return sb(e=>eb(e,t))(e)}function lb(e,t){function n(r){if(r.encoding){let e=r.encoding[r.encoding.length-1];return t?.stopAt?.(e)?r:$y(r,ob(r.encoding,n))}return e(r)}return _(n)}function ub(e,t,n){let r=new Uv(e,t);return $y(n,n.encoding?[...n.encoding,r]:[r])}function db(e,t){let n;for(let r=0;r<e.length;r++){let i=e[r],a=t(i);if(n)n[r]=a;else if(a!==i){n=Array(e.length);for(let t=0;t<r;t++)n[t]=e[t];n[r]=a}}return n??e}function fb(e,t){return eb(e,e.context?new Gv(e.context.isOptional,e.context.isMutable,e.context.constructorDefault,{...e.context.annotations,...t}):new Gv(!1,!1,void 0,t))}var pb=_(e=>mb(eb(e,e.context?e.context.isOptional===!1?new Gv(!0,e.context.isMutable,e.context.constructorDefault,e.context.annotations):e.context:new Gv(!0,!1)))),mb=sb(pb),hb=g(e=>pb(new Py([e,Zv])));function gb(e,t){return eb(e,e.context?new Gv(e.context.isOptional,e.context.isMutable,t,e.context.annotations):new Gv(!1,!1,t))}function _b(e,t,n){return ub(e,n,t)}function vb(e){let t=[],n=[];function r(e){switch(e._tag){case`Literal`:oe(e.literal)&&!t.includes(e.literal)&&t.push(e.literal);return;case`UniqueSymbol`:t.includes(e.symbol)||t.push(e.symbol);return;case`Never`:return;case`Union`:for(let t=0;t<e.types.length;t++)r(e.types[t]);return;default:n.push(e)}}return r(e),{literals:t,parameters:n}}function yb(e,t){let{literals:n,parameters:r}=vb(e);return new gy(n.map(e=>new dy(e,t)),r.map(e=>new hy(e,t)))}function bb(e){return e.context?.isOptional??!1}function xb(e){return e.annotations?.[`~structural`]===!0||e._tag===`FilterGroup`&&e.checks.every(xb)}function Sb(e){function t(e){return xb(e)?[e]:e._tag===`FilterGroup`?e.checks.flatMap(t):[]}let n=e.flatMap(t);return Xi(n)?n:void 0}function Cb(e){let t=!0;function n(e){return t=t&&!e.encoding&&!Hv(e),t&&`recur`in e&&e.recur(n),e}return`recur`in e&&e.recur(n),t}var wb=_(e=>{let t=Qy(e);if(t!==e){let n=wb(t);return n===t&&e.encoding===void 0?e:eb(n,e.context)}let n=`recur`in e?e.recur(wb):e;if(`encodingChecks`in n&&n.encodingChecks){let t=Cb(e)?n.encodingChecks:zv(n)||Bv(n)||Nv(n)&&n.typeParameters.length>0?Sb(n.encodingChecks):void 0;return Zy(n,{encodingChecks:void 0,checks:xy(n.checks,t)})}return n}),Tb=_(e=>wb(Db(e)));function Eb(e,t){let n=t,r=n.length,i=n[r-1],a=[new Uv(Db($y(e,void 0)),n[0].transformation.flip())];for(let e=1;e<r;e++)a.unshift(new Uv(Db(n[e-1].to),n[e].transformation.flip()));let o=Db(i.to);return o.encoding?$y(o,[...o.encoding,...a]):$y(o,a)}var Db=g(e=>{if(e.encoding)return Eb(e,e.encoding);let t=Qy(e);if(t!==e){let n=Db(t);return n===t?e:eb(n,e.context)}return`flip`in e?e.flip(Db):`recur`in e?e.recur(Db):e});function Ob(e){switch(e._tag){case`Undefined`:return!0;case`Union`:return e.types.some(Ob);default:return!1}}function kb(e,t){let n=t===0?__:h_(t);return(r,i)=>r===m_?g_:r===t?n:kp(new A_(e,r,i))}function Ab(e,t){return(n,r)=>n===m_?g_:t(n)?__:kp(new A_(e,n,r))}var jb=lb(e=>{switch(e._tag){default:return e;case`Number`:return e.toCodecStringTree();case`Union`:return e.recur(jb)}}),Mb=lb(e=>{switch(e._tag){default:return e;case`Symbol`:case`UniqueSymbol`:return e.toCodecStringTree();case`Union`:return e.recur(Mb)}}),Nb=new globalThis.RegExp(`^${ly}$`),Pb=new globalThis.RegExp(`^(?:${ly}|Infinity|-Infinity|NaN)$`);function Fb(e){return Yy(Nb,{expected:`a string representing a finite number`,representation:{id:`effect/schema/isStringFinite`,payload:null},toJsonSchema:()=>({pattern:Nb.source}),...e})}var Ib=ib(ty,[Fb()]),Lb=new Uv(Ib,xv),Rb=new Uv(new Py([Ib,By]),xv);function zb(e,t,n,r,i){for(let a=0;a<e.length;a++){let o=e[a];if(o._tag===`FilterGroup`){if(n=zb(o.checks,t,n,r,i),n&&(i.errors!==`all`||n[n.length-1].filter.aborted))return n}else{let e=o.run(t,r,i);if(e){let r=new w_(o,e,t,i);if(n?n.push(r):n=[r],i.errors!==`all`||o.aborted)return n}}}return n}function Bb(e){if(!Nv(e))return;let t=e.annotations?.[f_];return se(t)?t(e.typeParameters):void 0}var Vb=l_;function Hb(e){return e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`&&globalThis.Number.isFinite(e)}function Ub(e){return e===void 0||typeof e==`string`}function Wb(e,t){let n=new WeakMap,r=[];outer:for(;;){if(typeof e!=`object`||!e){if(!t(e))return!1}else{let t=e,i=n.get(t);if(i===!1)return!1;if(i===void 0){let e=Array.isArray(t);if(!e){let e=Object.getPrototypeOf(t);if(e!==null&&e!==Object.prototype&&Object.getPrototypeOf(e)!==null)return!1}n.set(t,!1),r.push({value:t,keys:e?t.length:Object.keys(t),index:0})}}for(;r.length>0;){let t=r[r.length-1],i=t.keys;if(typeof i==`number`){if(t.index<i){e=t.value[t.index++];continue outer}}else if(t.index<i.length){e=t.value[i[t.index++]];continue outer}n.set(t.value,!0),r.pop()}return!0}}function Gb(e){return Wb(e,Hb)}var Kb=new Jv([],()=>(e,t,n)=>Gb(e)?__:kp(new A_(t,e,n)),{representation:{id:`effect/schema/Json`,payload:null},expected:`JSON value`,toCodecJson:()=>void 0,toCodecStringTree:()=>Xb}),qb=new Uv(Kb,bv()),Jb=new Uv(new Py([new iy(!1,[],[Kb]),new gy([],[new hy(ty,Kb)])]),bv());function Yb(e){return Wb(e,Ub)}var Xb=new Uv(new Jv([],()=>(e,t,n)=>Yb(e)?__:kp(new A_(t,e,n)),{expected:`StringTree`,toCodecStringTree:()=>void 0}),bv()),Zb=(e,t,n)=>e===__?n(t):Lm(e,n);function Qb(e){if(e._tag===`Middleware`)return(t,n,r)=>$b(t===__?e.decode(h_(v_(n)),r):e.decode(Pm(t,v_),r));let t=e.decode;switch(t._tag){case`Passthrough`:return(e,t)=>e===__?h_(t):e;case`Transform`:{let e=e=>e===m_?g_:h_(t.transform(e));return(t,n)=>Zb(t,n,e)}case`TransformOptional`:{let e=e=>y_(t.transform(v_(e)));return(t,n)=>Zb(t,n,e)}case`TransformEffect`:return(e,n,r)=>Zb(e,n,e=>e===m_?g_:t.transform(e,r));case`TransformOptionalEffect`:return(e,n,r)=>Zb(e,n,e=>$b(t.transform(v_(e),r)))}}var $b=e=>Lm(e,y_),ex=(e,t,n,r)=>Kp(r,r=>jp(()=>Ud(r,r=>new T_(e,r,t,n))));function tx(e,t){let n=Qb(e.link.transformation),r;return(i,a)=>{if(i===m_)return g_;if(e.isConstructed(i))return __;let o=(r??=t(e.link.to))(i,a);return n(o,i,a)}}function nx(e,t){let n=e.context.constructorDefault;return(r,i)=>{if(r!==m_&&r!==void 0)return t(r,i);let a=n;if(Lc(a)&&a._tag===`Success`){let e=t(a[Rt],i);return e===__?a:e}return Lm(ex(e,r,i,a),e=>{let n=t(e,i);return n===__?h_(e):n})}}function rx(e,t){let n=t(e);return e.context?.constructorDefault===void 0?n:nx(e,n)}function ix(e,t,n,r,i){if(e._tag===`Declaration`)for(let n of e.typeParameters)t(n);let a=n?Bb(e):void 0,o=a?tx(a,t):r??e.getParser(t,n),s=e.checks,c=e.encoding,l=c?.map(e=>Qb(e.transformation)),u=e.encodingChecks;if(!c&&!s&&!u)return o;let d,f=(t,n)=>{let r=o(t,n);if(u&&!n.disableChecks){if(Lc(r)){if(r._tag===`Success`){let i=r===__?t:r[Rt];if(t!==m_&&i!==m_){let i=zb(u,t,void 0,e,n);i&&(r=kp(new k_(e,i,t,n)))}}}else r=k(r,r=>{if(t!==m_&&r!==m_){let r=zb(u,t,void 0,e,n);if(r)return kp(new k_(e,r,t,n))}return E(r)})}if(s&&!n.disableChecks){if(Lc(r)){if(r._tag===`Success`){let i=r===__?t:r[Rt];if(i===m_)return r;let a=zb(s,i,void 0,e,n);a&&(r=kp(new k_(e,a,i,n)))}}else r=k(r,t=>{if(t!==m_){let r=zb(s,t,void 0,e,n);if(r)return kp(new k_(e,r,t,n))}return E(t)})}return r},p=i===void 0?f:i(f);return c?(n,r)=>{let i=d??=c.map(e=>t(e.to)),a=n,o=i[i.length-1](n,r);for(let e=c.length-1;e>=0;e--)if(o=l[e](o,a,r),e!==0){let t=i[e-1];o._tag===`Success`?(a=o[Rt],o=t(a,r)):o=Lm(o,e=>{let n=t(e,r);return n===__?h_(e):n})}if(o._tag===`Success`){let e=o[Rt],t=p(e,r);return t===__?o:t}return o=ex(e,n,r,o),Lm(o,e=>{let t=p(e,r);return t===__?h_(e):t})}:p}var ax=Symbol(),ox=new WeakMap,sx=e=>dx(e).parser,cx=e=>dx(e).makeEffect,lx=e=>rx(e,cx),ux=class{ast;constructor(e){this.ast=e}get decodeEffect(){return this.cachedDecodeEffect??=ix(this.ast,sx)}get parser(){return this.decodeEffect}get makeEffect(){return this.cachedMakeEffect??=ix(this.ast,cx,lx)}};function dx(e){let t=ox.get(e);if(t!==void 0)return t;let n=new ux(e);return ox.set(e,n),n}function fx(e){let t=e.ast,n;return(e,r)=>(n??=Dx(Nx,wb(t)))(e,r?.disableChecks?r?.parseOptions?{...r.parseOptions,disableChecks:!0}:{disableChecks:!0}:r?.parseOptions)}function px(e){let t=fx(e);return(e,n)=>{let r=jm(t(e,n));return Qd(r)?S(r.value):(X_(r.cause,`Option adapter can only return none for schema issues`),x())}}function mx(e){return jx(wb(e.ast))}function hx(e){return _x(e.ast)}function gx(e){{let t=Ox(Tx(e));return e=>{let n=t(e,Wv);return Qd(n)?!0:(X_(n.cause,`Type guard adapter can only return false for schema issues`),!1)}}}function _x(e){let t=wb(e),n=e=>(n=gx(t),n(e));return e=>n(e)}function vx(e,t){let n=Tx(e.ast);return t===void 0?n:(e,r)=>n(e,Cx(t,r))}function yx(e,t){return Ox(vx(e,t))}function bx(e,t){return kx(vx(e,t))}var xx=bx;function Sx(e,t){let n=Tx(Db(e.ast));return t===void 0?n:(e,r)=>n(e,Cx(t,r))}var Cx=(e,t)=>t?{...e,...t}:e,wx=e=>e===m_?kp(new j_):E(e);function Tx(e){return Dx(Mx,e)}function Ex(e,t){return e===__?E(t):Lc(e)?e[Rt]===m_?wx(m_):e:Lm(e,wx)}function Dx(e,t){let n;return(r,i)=>{let a=(n??=e(t))(r,i??Wv);return a===__?E(r):Lc(a)?a[Rt]===m_?wx(m_):a:Lm(a,wx)}}function Ox(e){return(t,n)=>jm(e(t,n))}function kx(e){let t=Ox(e);return(e,n)=>{let r=t(e,n);return Qd(r)?S(r.value):(X_(r.cause,`Option adapter can only return none for schema issues`),x())}}function Ax(e,t){let n=jm(e);if(Qd(n))return n.value;let r=X_(n.cause,t);throw Error(`Schema validation failed`,{cause:r})}function jx(e){let t,n;return(r,i)=>{t??=dx(e);let a=i?.disableChecks?i.parseOptions?{...i.parseOptions,disableChecks:!0}:{disableChecks:!0}:i?.parseOptions??Wv,o=t.make;if(o!==void 0&&r!==m_){let e;try{e=o(r,a)}catch(e){throw X_(Rd(e),`Constructor adapter can only throw schema issues`),e}if(e!==ax&&e!==m_)return e}return Ax(Ex((n??=t.makeEffect)(r,a),r),`Constructor adapter can only throw schema issues`)}}var Mx=e=>dx(e).parser,Nx=e=>dx(e).makeEffect,Px=`~effect/Schema/Schema`,Fx=Symbol(),Ix={[Px]:Px,get make(){let e=mx(this);return Object.defineProperty(this,"make",{value:e,enumerable:!0}),e},get makeEffect(){let e=fx(this);return Object.defineProperty(this,"makeEffect",{value:e,enumerable:!0}),e},get makeOption(){let e=px(this);return Object.defineProperty(this,"makeOption",{value:e,enumerable:!0}),e},pipe(){return r(this,arguments)},annotate(e){return this.rebuild(nb(this.ast,e))},annotateKey(e){return this.rebuild(fb(this.ast,e))},check(...e){return this.rebuild(ib(this.ast,e))},rebuild(e){return Lx(e,this[Fx])}};function Lx(e,t){function n(){}let r=Object.setPrototypeOf(n,Ix);return t&&(Object.hasOwn(t,`name`)||Object.hasOwn(t,`length`)||Object.hasOwn(t,`__proto__`))?Object.defineProperties(r,Object.getOwnPropertyDescriptors({...t})):Object.assign(r,t),r[Fx]=t,r.ast=e,r}function Rx(e){return Lx(zx(e.ast),{schema:e})}var zx=lb(e=>{let t=Wx(e,zx),n=e.context;return t===e||n===void 0?t:cb(t,Bx(n))});function Bx(e){return e.constructorDefault===void 0?e:new Gv(e.isOptional,e.isMutable,void 0,e.annotations)}function Vx(e){if(e.propertySignatures.some(e=>typeof e.name!=`string`))throw new globalThis.Error(`Objects property names must be strings`,{cause:e})}function Hx(e){return t=>{let n=[...t].sort((t,n)=>e(Tb(t))-e(Tb(n)));return n.some((e,n)=>e!==t[n])?n:t}}var Ux=Hx(e=>{switch(e._tag){case`BigInt`:case`Symbol`:case`UniqueSymbol`:return 0;default:return 1}});function Wx(e,t){switch(e._tag){case`Declaration`:{let n=e.annotations?.toCodecJson??e.annotations?.toCodec;if(!se(n))return $y(e,[qb]);let r=n(e.typeParameters.map(e=>Lx(Tb(e))));return r===void 0?e:$y(e,[ab(r,t)])}case`Unknown`:return $y(e,[qb]);case`ObjectKeyword`:return $y(e,[Jb]);case`Undefined`:case`Void`:case`Literal`:case`Number`:return e.toCodecJson();case`UniqueSymbol`:case`Symbol`:case`BigInt`:return e.toCodecStringTree();case`Objects`:return Vx(e),e.recur(t,Mb);case`Union`:{let n=Ux(e.types);return n===e.types?e.recur(t):new Py(n,e.options,e.annotations,e.checks,e.encoding,e.context,e.encodingChecks).recur(t)}case`Arrays`:case`Suspend`:return e.recur(t)}return e}function Gx(e){return Lx(Zx(e.ast),{schema:e})}var Kx=Hx(e=>{switch(e._tag){case`Null`:case`Boolean`:case`Number`:case`BigInt`:case`Symbol`:case`UniqueSymbol`:return 0;default:return 1}});function qx(e,t,n){switch(e._tag){case`Declaration`:{let r=e.typeParameters.map(e=>Lx(t(Tb(e)))),i=e.annotations?.toCodecStringTree;if(se(i)){let n=i(r);return n===void 0?e:$y(e,[ab(n,t)])}let a=e.annotations?.toCodecJson,o=se(a)?a(r):void 0,s=o===void 0?e.annotations?.toCodec:void 0,c=o??(se(s)?s(r):void 0);return c===void 0?n(e):$y(e,[ab(c,t)])}case`Null`:return $y(e,[Jx]);case`Boolean`:return $y(e,[Yx]);case`Unknown`:case`ObjectKeyword`:return $y(e,[Xb]);case`Enum`:case`Number`:case`Literal`:case`UniqueSymbol`:case`Symbol`:case`BigInt`:return e.toCodecStringTree();case`Objects`:return Vx(e),e.recur(t,Mb);case`Union`:{let n=Kx(e.types);return n===e.types?e.recur(t):new Py(n,e.options,e.annotations,e.checks,e.encoding,e.context,e.encodingChecks).recur(t)}case`Arrays`:case`Suspend`:return e.recur(t)}return e}var Jx=new Uv(new $v(`null`),new mv(ev(()=>null),ev(()=>`null`))),Yx=new Uv(new Py([new $v(`true`),new $v(`false`)]),new mv(ev(e=>e===`true`),ov())),Xx=new mv(ev(e=>typeof e==`string`?[e]:e),$_()),Zx=lb(e=>{let t=qx(e,Zx,e=>{throw new globalThis.Error(`Missing structural codec for StringTree`,{cause:e})});return t!==e&&e.context!==void 0?cb(t,Bx(e.context)):t},{stopAt:e=>e.transformation===Xx}),Qx=g(e=>$x(e));function $x(e){let t=c_(e)?.toEquivalence;if(t)return t(Nv(e)?e.typeParameters.map($x):[]);switch(e._tag){case`Never`:return Fn();case`Declaration`:return eS(e);case`Null`:case`Undefined`:case`Void`:case`Unknown`:case`Any`:case`String`:case`Number`:case`Boolean`:case`BigInt`:case`Symbol`:case`Literal`:case`UniqueSymbol`:case`ObjectKeyword`:case`Enum`:case`TemplateLiteral`:return He;case`Arrays`:{let t=e.elements.map($x),n=e.rest.map($x),[r,...i]=n,a=i.length;return Nn((o,s)=>{if(!Array.isArray(o)||!Array.isArray(s))return!1;let c=o.length;if(c!==s.length)return!1;let l=0;for(;l<Math.min(c,e.elements.length);l++)if(!t[l](o[l],s[l]))return!1;if(n.length>0){for(;l<c-a;l++)if(!r(o[l],s[l]))return!1;for(let e=0;e<a;e++)if(!i[e](o[l+e],s[l+e]))return!1}return!0})}case`Objects`:{if(e.propertySignatures.length===0&&e.indexSignatures.length===0)return He;let t=e.propertySignatures.map(e=>$x(e.type)),n=e.indexSignatures.map(e=>$x(e.type));return Nn((r,i)=>{if(!he(r)||!he(i))return!1;for(let n=0;n<t.length;n++){let a=e.propertySignatures[n],o=a.name,s=Object.hasOwn(r,o),c=Object.hasOwn(i,o);if(bb(a.type)&&s!==c||s&&c&&!t[n](r[o],i[o]))return!1}for(let t=0;t<n.length;t++){let a=e.indexSignatures[t],o=uy(r,a.parameter),s=uy(i,a.parameter);if(o.length!==s.length)return!1;for(let e=0;e<o.length;e++){let a=o[e];if(!Object.hasOwn(i,a)||!n[t](r[a],i[a]))return!1}}return!0})}case`Union`:{let t=wb(e).types,n=Ny(t),r=t.map((t,n)=>[_x(t),$x(e.types[n])]);return Nn((e,t)=>{let i=n(e,!1);for(let n=0;n<i.length;n++){let[a,o]=r[i[n]];if(a(e)&&a(t))return o(e,t)}return!1})}case`Suspend`:{let t;return Nn((n,r)=>(t??=Qx(e.thunk()))(n,r))}}}function eS(e){let t=e.annotations?.representation;if(t===void 0)return He;switch(t.id){case`effect/schema/Option`:{let[t]=tS(e);return(e,n)=>e._tag===n._tag&&(e._tag===`None`||t(e.value,n.value))}case`effect/schema/Result`:{let[t,n]=tS(e);return(e,r)=>e._tag===r._tag&&(e._tag===`Success`?t(e.success,r.success):n(e.failure,r.failure))}case`effect/schema/CauseReason`:{let[t,n]=tS(e);return nS(t,n)}case`effect/schema/Cause`:{let[t,n]=tS(e);return rS(t,n)}case`effect/schema/Exit`:{let[t,n,r]=tS(e),i=rS(n,r);return(e,n)=>e._tag===n._tag&&(e._tag===`Success`?t(e.value,n.value):i(e.cause,n.cause))}case`effect/schema/ReadonlyMap`:{let[t,n]=tS(e);return rt(t,n)}case`effect/schema/ReadonlySet`:return it(tS(e)[0]);case`effect/schema/RegExp`:return(e,t)=>e.source===t.source&&e.flags===t.flags;case`effect/schema/URL`:return(e,t)=>e.toString()===t.toString();default:return He}}function tS(e){return e.typeParameters.map($x)}function nS(e,t){return(n,r)=>{if(n._tag!==r._tag)return!1;switch(n._tag){case`Fail`:return e(n.error,r.error);case`Die`:return t(n.defect,r.defect);case`Interrupt`:return n.fiberId===r.fiberId}}}function rS(e,t){let n=Ln(nS(e,t));return(e,t)=>n(e.reasons,t.reasons)}var iS=o(2,(e,t)=>oS(e,(e,n)=>[e,Object.hasOwn(t,e)?t[e](n):n])),aS=e=>e;function oS(e,t){let n={};for(let r of Reflect.ownKeys(e)){if(!Object.prototype.propertyIsEnumerable.call(e,r))continue;let i=t(r,e[r]);if(i){let[e,t]=i;Mt(n,e,t)}}return n}var sS=`~effect/Schema/SchemaError`;function cS(e){return _e(e,`~effect/Schema/SchemaError`)&&e[`~effect/Schema/SchemaError`]===`~effect/Schema/SchemaError`}var lS=Px;function uS(){return(e,t,n)=>OS(new Jv(e.map(Cy),e=>t(e.map(e=>OS(e))),n))}function dS(e,t){return uS()([],()=>(t,n,r)=>e(t)?E(t):kp(new A_(n,t,r)),t)}var fS=class extends No(`SchemaError`){[sS]=sS;constructor(e){let t=Ot();kt(0);try{super({issue:e})}finally{kt(t)}}get message(){return K_(this.issue)}toString(){return`SchemaError(${this.message})`}};function pS(e){return cS(e)}function mS(e){return Lc(e)?hS(e):Kp(e,e=>jp(()=>Ud(e,e=>new fS(e))))}function hS(e){return Qd(e)?e:Yd(Ud(e.cause,e=>new fS(e)))}function gS(e,t){let n;for(let r of e.reasons){if(!Fd(r)||!pS(r.error))throw new globalThis.Error(t,{cause:e});n??=r.error}if(n===void 0)throw new globalThis.Error(t,{cause:e});return n}function _S(e){let t=jm(e);if(Qd(t))return t.value;throw gS(t.cause,`Sync adapter can only throw schema errors`)}var vS=hx;function yS(e,t){let n=vx(e,t);return(e,t)=>mS(n(e,t))}var bS=yS;function xS(e,t){let n=yx(e,t);return(e,t)=>hS(n(e,t))}var SS=bx,CS=xx;function wS(e,t){let n=yS(e,t);return(e,t)=>_S(n(e,t))}function TS(e,t){let n=Sx(e,t);return(e,t)=>mS(n(e,t))}function ES(e,t){let n=TS(e,t);return(e,t)=>_S(n(e,t))}var DS=ES,OS=Lx;function kS(e){return _e(e,lS)&&e[lS]===lS}var AS=aS(e=>OS(pb(e.ast),{schema:e})),jS=aS(e=>{let t=YS(e);return OS(hb(e.ast),{schema:t})}),MS=aS(e=>OS(wb(e.ast),{schema:e})),NS=aS(e=>OS(Tb(e.ast),{schema:e}));function PS(e){let t=OS(new $v(e),{literal:e,transform(n){return t.pipe(ZS(PS(n),{decode:ev(()=>n),encode:ev(()=>e)}))}});return t}var FS=OS(Qv),IS=OS(Yv),LS=OS(Zv),A=OS(ty),j=OS(ry),RS=OS(mee),zS=OS(fee);function BS(e,t){return OS(e,{fields:t,mapFields(e,t){let n=e(this.fields);return BS(Sy(n,t?.unsafePreserveChecks?this.ast.checks:void 0),n)}})}function M(e){return BS(Sy(e,void 0),e)}function VS(e,t){return OS(yb(e.ast,t.ast),{key:e,value:t})}function HS(e,t){return OS(e,{elements:t,mapElements(e,t){let n=e(this.elements);return HS(wy(n,t?.unsafePreserveChecks?this.ast.checks:void 0),n)}})}function US(e){return HS(wy(e),e)}var N=aS(e=>OS(new iy(!1,[],[e.ast]),{value:e})),WS=aS(e=>OS(new iy(!1,[e.ast],[e.ast]),{value:e}));function GS(e,t){return OS(e,{members:t,mapMembers(e,t){let n=e(this.members);return GS(Ty(n,this.ast.options,t?.unsafePreserveChecks?this.ast.checks:void 0),n)}})}function KS(e,t){return GS(Ty(e,t,void 0),e)}function qS(e){let t=e.map(PS);return OS(Ty(t,void 0,void 0),{literals:e,members:t,mapMembers(e){return KS(e(this.members))},pick(e){return qS(e)},transform(e){return KS(t.map((t,n)=>t.transform(e[n])))}})}var JS=aS(e=>KS([e,IS])),YS=aS(e=>KS([e,LS]));function XS(e){return t=>OS(t.ast,{schema:t,identifier:e})}function ZS(e,t){return n=>OS(_b(n.ast,e.ast,t?gv(t):bv()),{from:n,to:e})}function QS(e){return t=>OS(gb(t.ast,e),{schema:t})}function $S(e){return Kp(e,e=>jp(()=>Ud(e,e=>e.issue)))}function eC(e,t){let n=t?.encodingStrategy===`omit`?iv():$_();return t=>AS(NS(t)).pipe(ZS(t,{decode:av($S(e)),encode:n}))}function tC(e){return PS(e).pipe(QS(E(e)))}function nC(e,t){return M({_tag:tC(e),...t})}function rC(e){return t=>{let n={},r=[],i=new Set,a={};return o(t),Object.assign(t,{cases:n,discriminants:r,isAnyOf:t=>n=>t.includes(n[e]),guards:a,match:s,matchOrElse:c});function o(t){let s=t.ast;if(Vv(s)&&`members`in t&&globalThis.Array.isArray(t.members)&&t.members.every(kS))return t.members.forEach(o);let c=Oy(s);if(c.length>0){let o=c.find(t=>t.key===e)?.literal;if(oe(o)){let e=typeof o==`number`?globalThis.String(o):o;if(i.has(e))throw new globalThis.Error(`Duplicate discriminant: ${globalThis.String(o)}`);i.add(e),r.push(o),Mt(n,o,t),Mt(a,o,hx(MS(t)));return}}throw new globalThis.Error(`No literal or unique symbol found`)}function s(){if(arguments.length===1){let t=arguments[0];return function(n){let r=n[e];return(Object.hasOwn(t,r)?t[r]:void 0)(n)}}let t=arguments[0],n=arguments[1],r=t[e];return(Object.hasOwn(n,r)?n[r]:void 0)(t)}function c(){if(arguments.length===2){let t=arguments[0],n=arguments[1];return function(r){let i=r[e];return(Object.hasOwn(t,i)?t[i]??n:n)(r)}}let t=arguments[0],n=arguments[1],r=arguments[2],i=t[e];return(Object.hasOwn(n,i)?n[i]??r:r)(t)}}}function iC(e){let t={},n=[];for(let r of Object.keys(e)){let i=nC(r,e[r]);Mt(t,r,i),n.push(i)}let r=KS(n),{guards:i,isAnyOf:a,match:o,matchOrElse:s}=rC(`_tag`)(r);return OS(r.ast,{cases:t,isAnyOf:a,guards:i,match:o,matchOrElse:s})}function aC(e,t){return dS(t=>t instanceof e,t)}function oC(){return(e,t)=>new Uv(e.ast,gv(t))}var sC=Gy,cC=OS(qy);function lC(e,t){return e=dC(e),uC(e,Math.ceil(e/2),t)}function uC(e,t,n){return sC(t=>t.length>=e,{expected:`a value with a length of at least ${e}`,representation:{id:`effect/schema/isMinLength`,payload:{minLength:e}},toJsonSchema:({type:n})=>n===`string`?e<=1?{minLength:t}:[{minLength:t},!0]:n===`array`?{minItems:e}:n===void 0?[{minLength:t,minItems:e},!0]:[{},!0],toCode:()=>({runtime:`Schema.isMinLength(${e})`}),[u_]:!0,arbitraryConstraint:{minLength:e},...n})}function dC(e){if(!globalThis.Number.isFinite(e))throw new globalThis.RangeError(`Expected a finite number, got ${e}`);return Math.max(0,Math.floor(e))}var fC=e=>+(e?.includeStack===!0)|(e?.excludeCause===!0?2:0),pC=e=>{switch(e){case 0:return;case 1:return{includeStack:!0};case 2:return{excludeCause:!0};case 3:return{includeStack:!0,excludeCause:!0}}},mC=[];function hC(e){let t=fC(e),n=mC[t];if(n!==void 0)return n;let r=RC.pipe(ZS(FS,Ov(pC(t))));return mC[t]=r,r}globalThis.RegExp,globalThis.URL;var gC=A.annotate({expected:`a string that will be decoded as JSON`,contentMediaType:`application/json`});function _C(e,t){return gC.pipe(ZS(e,jv(t)))}var vC=_C(FS);globalThis.File,globalThis.FormData,globalThis.URLSearchParams;var yC=A.annotate({expected:`a base64 encoded string that will be decoded as Uint8Array`,format:`byte`,contentEncoding:`base64`}),bC=aC(globalThis.Uint8Array,{representation:{id:`effect/schema/Uint8Array`,payload:null},toCode:()=>({runtime:`Schema.Uint8Array`,Type:`globalThis.Uint8Array`}),expected:`Uint8Array`,toCodecJson:()=>oC()(yC,Av)});function xC(e,t){return OS(uS()([e,t],([e,t])=>(n,r,i)=>{if(!Pd(n))return kp(new A_(r,n,i));switch(n._tag){case`Fail`:return Im(vx(e)(n.error,i),{onSuccess:zd,onFailure:e=>M_(r,`error`,e,n,i)});case`Die`:return Im(vx(t)(n.defect,i),{onSuccess:Bd,onFailure:e=>M_(r,`defect`,e,n,i)});case`Interrupt`:return E(n)}},{representation:{id:`effect/schema/CauseReason`,payload:null},toCode:({typeParameters:e})=>({runtime:`Schema.CauseReason(${e[0].runtime}, ${e[1].runtime})`,Type:`Cause.Failure<${e[0].Type}, ${e[1].Type}>`,importDeclarations:[`import * as Cause from "effect/Cause"`]}),expected:`Cause.Failure`,toCodec:([e,t])=>oC()(KS([M({_tag:PS(`Fail`),error:e}),M({_tag:PS(`Die`),defect:t}),M({_tag:PS(`Interrupt`),fiberId:YS(cC)})]),vv({decode:e=>{switch(e._tag){case`Fail`:return zd(e.error);case`Die`:return Bd(e.defect);case`Interrupt`:return Vd(e.fiberId)}},encode:e=>{switch(e._tag){case`Fail`:return{_tag:`Fail`,error:e.error};case`Die`:return{_tag:`Die`,defect:e.defect};case`Interrupt`:return{_tag:`Interrupt`,fiberId:e.fiberId}}}}))}).ast,{error:e,defect:t})}function SC(e,t){return OS(uS()([e,t],([e,t])=>{let n=N(xC(e,t));return(e,t,r)=>Nd(e)?Im(vx(n)(e.reasons,r),{onSuccess:Id,onFailure:n=>M_(t,`failures`,n,e,r)}):kp(new A_(t,e,r))},{representation:{id:`effect/schema/Cause`,payload:null},toCode:({typeParameters:e})=>({runtime:`Schema.Cause(${e[0].runtime}, ${e[1].runtime})`,Type:`Cause.Cause<${e[0].Type}, ${e[1].Type}>`,importDeclarations:[`import * as Cause from "effect/Cause"`]}),expected:`Cause`,toCodec:([e,t])=>oC()(N(xC(e,t)),vv({decode:Id,encode:({reasons:e})=>e}))}).ast,{error:e,defect:t})}function CC(e){return OS(uS()([e],([e])=>(t,n,r)=>fr(t)?pr(t)?wp:Im(vx(e)(t.value,r),{onSuccess:S,onFailure:e=>M_(n,`value`,e,t,r)}):kp(new A_(n,t,r)),{representation:{id:`effect/schema/Option`,payload:null},toCode:({typeParameters:e})=>({runtime:`Schema.Option(${e[0].runtime})`,Type:`Option.Option<${e[0].Type}>`,importDeclarations:[`import * as Option from "effect/Option"`]}),expected:`Option`,toCodec:([e])=>oC()(KS([M({_tag:PS(`Some`),value:e}),M({_tag:PS(`None`)})]),vv({decode:e=>e._tag===`None`?x():S(e.value),encode:e=>C(e)?{_tag:`Some`,value:e.value}:{_tag:`None`}}))}).ast,{value:e})}function wC(e){return JS(e).pipe(ZS(CC(MS(e)),kv()))}var TC=dS(Yg,{representation:{id:`effect/http/UrlParams`,payload:null},toCode:()=>({runtime:`Schema.UrlParams`,Type:`UrlParams.UrlParams`,importDeclarations:[`import * as UrlParams from "effect/http/UrlParams"`]}),expected:`UrlParams`,toEquivalence:()=>e_,toCodec:()=>oC()(N(US([A,A])),vv({decode:Zg,encode:e=>e.params}))}).pipe(ZS(VS(A,KS([A,WS(A)])),vv({decode:s_,encode:Qg}))),EC=globalThis.Symbol.for(`immer-draftable`),DC={};function OC(e,t,n,i,a){let o=jC(n,t,i),s=AC(t),c=class extends e{constructor(...[e,t]){let r=t?.[`~payload`],i=r?.token===DC?r.value:n.make(e??{},t);super(i,{...t,disableChecks:!0,"~payload":{token:DC,value:i}})}static[lS]=lS;get[s](){return s}static[EC]=!0;static identifier=t;static fields=n.fields;static get ast(){return o(this).ast}static pipe(){return r(this,arguments)}static rebuild(e){return o(this).rebuild(e)}static make(e,t){return mx(o(this))(e??{},t)}static makeOption(e,t){return px(o(this))(e??{},t)}static makeEffect(e,t){return o(this).makeEffect(e??{},t)}static annotate(e){return this.rebuild(nb(this.ast,e))}static annotateKey(e){return this.rebuild(fb(this.ast,e))}static check(...e){return this.rebuild(ib(this.ast,e))}static extend(e){return(t,r)=>{let i=MC(t)?t:M(t),o={...n.fields,...i.fields},s=Sy(o,n.ast.checks,{identifier:e});return OC(this,e,BS(ib(s,i.ast.checks),o),r,a)}}static mapFields(e,t){return n.mapFields(e,t)}};return a!==void 0&&Object.assign(c.prototype,a(t)),c}function kC(e){return new mv(ev(t=>new e(t,{"~payload":{token:DC,value:t}})),$_())}function AC(e){return`~effect/Schema/Class/${e}`}function jC(e,t,n){let r;return i=>{if(r!==void 0)return r;let a=AC(t),o=e=>e instanceof i||_e(e,a),s=kC(i);return r=ZS(OS(new Jv([e.ast],()=>(e,t,n)=>o(e)?E(e):kp(new A_(t,e,n)),{identifier:t,[f_]:([e])=>({isConstructed:o,link:new Uv(e,s)}),toCodec:([e])=>new Uv(e.ast,s),toEquivalence:([e])=>e,toFormatter:([e])=>t=>`${i.identifier}(${e(t)})`,[d_]:Oy(e.ast),...n})),s)(e)}}function MC(e){return kS(e)}var NC=e=>(t,n)=>OC(Tn,e,MC(t)?t:M(t),n,e=>({name:e})),PC=e=>(t,n,r)=>{let i=MC(n)?n.mapFields(e=>({_tag:tC(t),...e}),{unsafePreserveChecks:!0}):nC(t,n);return NC(e??t)(i,r)};function FC(e){return Qx(e.ast)}var IC=Rx,LC=Gx,RC=OS(nb(Kb,{toCode:()=>({runtime:`Schema.Json`,Type:`Schema.Json`})})),zC=Us,BC=Ws,VC=Ks,HC=Lu,UC=qu,WC=Ju,GC=`~effect/MutableRef`,KC={[GC]:GC,...Wt,toJSON(){return{_id:`MutableRef`,current:Ct(this.current)}}},qC=e=>{let t=Object.create(KC);return t.current=e,t},JC=o(2,(e,t)=>(e.current=t,e)),YC=Symbol.for(`effect/MutableList/Empty`),XC=()=>({head:void 0,tail:void 0,length:0}),ZC=e=>{let t=e.head;t.offset>=1024&&t===e.tail&&t.mutable&&(t.array.length-t.offset)*8<=t.offset&&(e.head=e.tail={array:t.array.slice(t.offset),mutable:!0,offset:0,next:void 0})},QC=()=>({array:[],mutable:!0,offset:0,next:void 0}),$C=(e,t)=>{e.tail?e.tail.mutable||(e.tail.next=QC(),e.tail=e.tail.next):e.head=e.tail=QC(),e.tail.array.push(t),e.length++},ew=(e,t)=>{e.head={array:[t],mutable:!0,offset:0,next:e.head},e.tail||=e.head,e.length++},tw=e=>{e.head=e.tail=void 0,e.length=0},nw=(e,t)=>{if(t=mi(t),t<=0||!e.head)return[];if(t=Math.min(t,e.length),t===e.length&&e.head?.offset===0&&!e.head.next){let t=e.head.array;return tw(e),t}let n=Array(t),r=0,i=e.head;for(;i;){for(;i.offset<i.array.length;)if(n[r++]=i.array[i.offset],i.mutable&&(i.array[i.offset]=void 0),i.offset++,r===t)return e.head=i.offset===i.array.length&&i.next?i.next:i,e.length-=t,e.length===0?tw(e):ZC(e),n;i=i.next}return tw(e),n},rw=e=>nw(e,e.length),iw=e=>{if(!e.head)return YC;let t=e.head.array[e.head.offset];return e.head.mutable&&(e.head.array[e.head.offset]=void 0),e.head.offset++,e.length--,e.head.offset===e.head.array.length?e.head.next?e.head=e.head.next:tw(e):ZC(e),t},aw=(e,t)=>{let n=[],r=e.head,i=0;for(;r;){for(let e=r.offset;e<r.array.length;e++)t(r.array[e],i++)&&n.push(r.array[e]);r=r.next}if(n.length===0){tw(e);return}e.head=e.tail={array:n,mutable:!0,offset:0,next:void 0},e.length=n.length},ow=(e,t)=>aw(e,e=>e!==t),sw=`~effect/PubSub`,cw=`~effect/PubSub/Subscription`,lw=e=>D(()=>Tw(e.atomicPubSub(),new Map,ff(),UC(!1),qC(!1),e.strategy(),qC(x()))),uw=e=>lw({atomicPubSub:()=>dw(e),strategy:()=>new Ew}),dw=e=>{let t=e?.replay;return new xw(t&&t>0?new kw(Math.ceil(t)):void 0)},fw=o(2,(e,t)=>e.shutdownFlag.current||C(e.ended.current)?!1:e.pubsub.publish(t)?(e.strategy.completeSubscribersUnsafe(e.pubsub,e.subscribers),!0):!1),pw=e=>ym(rm(t=>{let n=ai(t,df),r=gf(e.scope),i=bw(e.pubsub,e.subscribers,e.strategy,e.ended);return hf(r,mw(i)).pipe(Rp(mf(n,e=>_f(r,e))),Hp(i))})),mw=e=>ym(Fp(t=>(JC(e.shutdownFlag,!0),bp(rw(e.pollers),e=>lf(e,t.id),{discard:!0,concurrency:`unbounded`}).pipe(zp(()=>D(()=>{e.subscribers.delete(e.subscription),e.subscription.unsubscribe(),e.replayWindow.close(),e.strategy.onPubSubEmptySpaceUnsafe(e.pubsub,e.subscribers)})),em(e.shutdownHook.open),Up)))),hw=e=>Tp(function t(n){if(e.shutdownFlag.current)return _m;let r=e.pollers.length===0?e.subscription.pollUpTo(1/0):[];return n&&(r=n.concat(r)),e.strategy.onPubSubEmptySpaceUnsafe(e.pubsub,e.subscribers),e.replayWindow.remaining>0?E(e.replayWindow.takeAll().concat(r)):Xi(r)?E(r):k(gw(e),e=>t([e]))}),gw=e=>Dp(t=>{if(e.shutdownFlag.current)return t(_m);if(C(e.ended.current))return t(E(e.ended.current.value));let n=af(),r=e.subscribers.get(e.subscription);return r||(r=new Set,e.subscribers.set(e.subscription,r)),r.add(e.pollers),$C(e.pollers,n),e.strategy.completePollersUnsafe(e.pubsub,e.subscribers,e.subscription,e.pollers),n.effect?t(n.effect):(n.resumes=[t],D(()=>ow(e.pollers,n)))}),_w=Symbol.for(`effect/PubSub/AbsentValue`),vw=(e,t,n)=>{e.has(t)||e.set(t,new Set),e.get(t).add(n)},yw=(e,t,n)=>{if(!e.has(t))return;let r=e.get(t);r.delete(n),r.size===0&&e.delete(t)},bw=(e,t,n,r)=>new Cw(e,t,e.subscribe(),XC(),UC(!1),qC(!1),n,e.replayWindow(),r),xw=class{publisherHead={value:_w,replayIndex:void 0,subscribers:0,next:null};publisherTail=this.publisherHead;publisherIndex=0;subscribersIndex=0;capacity=2**53-1;replayBuffer;constructor(e){this.replayBuffer=e}replayWindow(){return this.replayBuffer?new Aw(this.replayBuffer):jw}isEmpty(){return this.publisherHead===this.publisherTail}isFull(){return!1}size(){return this.publisherIndex-this.subscribersIndex}publish(e){let t=this.replayBuffer?.offer(e),n=this.publisherTail.subscribers;if(n!==0){let r={value:e,replayIndex:t,subscribers:n,next:null};this.publisherTail.next=r,this.publisherTail=this.publisherTail.next,this.publisherIndex+=1}return!0}publishAll(e){if(this.publisherTail.subscribers!==0)for(let t of e)this.publish(t);else this.replayBuffer&&this.replayBuffer.offerAll(e);return[]}slide(){if(this.publisherHead!==this.publisherTail){let e=this.publisherHead.next,t=e.value;this.publisherHead=this.publisherHead.next,this.publisherHead.value=_w,this.subscribersIndex+=1,this.replayBuffer?.slide(t,e.replayIndex)}}subscribe(){return this.publisherTail.subscribers+=1,new Sw(this,this.publisherTail,this.publisherIndex,!1)}},Sw=class{self;subscriberHead;subscriberIndex;unsubscribed;constructor(e,t,n,r){this.self=e,this.subscriberHead=t,this.subscriberIndex=n,this.unsubscribed=r}isEmpty(){if(this.unsubscribed)return!0;let e=!0,t=!0;for(;t;)this.subscriberHead===this.self.publisherTail?t=!1:this.subscriberHead.next.value===_w?(this.subscriberHead=this.subscriberHead.next,this.subscriberIndex+=1):(e=!1,t=!1);return e}size(){return this.unsubscribed?0:this.self.publisherIndex-Math.max(this.subscriberIndex,this.self.subscribersIndex)}poll(){if(this.unsubscribed)return YC;let e=!0,t=YC;for(;e;)if(this.subscriberHead===this.self.publisherTail)e=!1;else{let n=this.subscriberHead.next.value;n!==_w&&(t=n,--this.subscriberHead.subscribers,this.subscriberHead.subscribers===0&&(this.self.publisherHead=this.self.publisherHead.next,this.self.publisherHead.value=_w,this.self.subscribersIndex+=1),e=!1),this.subscriberHead=this.subscriberHead.next,this.subscriberIndex+=1}return t}pollUpTo(e){e=mi(e);let t=[],n=0;for(;n!==e;){let r=this.poll();r===YC?n=e:(t.push(r),n+=1)}return t}unsubscribe(){if(!this.unsubscribed)for(this.unsubscribed=!0,--this.self.publisherTail.subscribers;this.subscriberHead!==this.self.publisherTail;)this.subscriberHead.next.value!==_w&&(--this.subscriberHead.subscribers,this.subscriberHead.subscribers===0&&(this.self.publisherHead=this.self.publisherHead.next,this.self.publisherHead.value=_w,this.self.subscribersIndex+=1)),this.subscriberHead=this.subscriberHead.next}},Cw=class{[cw]={_A:s};pubsub;subscribers;subscription;pollers;shutdownHook;shutdownFlag;strategy;replayWindow;ended;constructor(e,t,n,r,i,a,o,s,c){this.pubsub=e,this.subscribers=t,this.subscription=n,this.pollers=r,this.shutdownHook=i,this.shutdownFlag=a,this.strategy=o,this.replayWindow=s,this.ended=c}pipe(){return r(this,arguments)}},ww=class{[sw]={_A:s};pubsub;subscribers;scope;shutdownHook;shutdownFlag;strategy;ended;constructor(e,t,n,r,i,a,o){this.pubsub=e,this.subscribers=t,this.scope=n,this.shutdownHook=r,this.shutdownFlag=i,this.strategy=a,this.ended=o}pipe(){return r(this,arguments)}},Tw=(e,t,n,r,i,a,o)=>new ww(e,t,n,r,i,a,o),Ew=class{get shutdown(){return Ep}handleSurplus(e,t,n,r){return E(!1)}onPubSubEmptySpaceUnsafe(e,t){}completePollersUnsafe(e,t,n,r){return Dw(this,e,t,n,r)}completeSubscribersUnsafe(e,t){return Ow(this,e,t)}},Dw=(e,t,n,r,i)=>{let a=!0;for(;a&&!r.isEmpty();){let o=iw(i);if(o===YC)yw(n,r,i),i.length===0?a=!1:vw(n,r,i);else{let a=r.poll();a===YC?ew(i,o):(uf(o,Jd(a)),e.onPubSubEmptySpaceUnsafe(t,n))}}},Ow=(e,t,n)=>{for(let[r,i]of n)for(let a of i)e.completePollersUnsafe(t,n,r,a)},kw=class{capacity;head={value:_w,index:0,next:null};tail=this.head;slideValues=[];size=0;index=0;publisherIndex=0;constructor(e){this.capacity=e}slide(e,t){this.slideValues[this.index%this.capacity]={value:e,index:t},this.index++}offer(e){let t=this.publisherIndex++;return this.tail.value=e,this.tail.index=t,this.tail.next={value:_w,index:0,next:null},this.tail=this.tail.next,this.size===this.capacity?this.head=this.head.next:this.size+=1,t}offerAll(e){for(let t of e)this.offer(t)}},Aw=class{buffer;values;index=0;remaining;slideIndex;newestIndex=-1;constructor(e){this.buffer=e,this.remaining=e.size,this.slideIndex=e.index,this.values=Array(this.remaining);let t=e.head;for(let e=0;e<this.remaining;e++)this.values[e]=t.value,this.newestIndex=t.index,t=t.next}close(){this.values.length=0,this.remaining=0}sync(){let e=this.buffer.index-this.slideIndex;if(e===0||this.remaining===0)return;let t=Math.min(e,this.buffer.capacity),n=this.buffer.index-t;for(let e=0;e<t;e++){let t=this.buffer.slideValues[(n+e)%this.buffer.capacity];t.index>this.newestIndex&&(this.index=(this.index+1)%this.values.length,this.values[(this.index+this.remaining-1)%this.values.length]=t.value,this.newestIndex=t.index)}this.slideIndex=this.buffer.index}take(){if(this.remaining===0)return;this.sync();let e=this.values[this.index];return this.values[this.index]=_w,this.index=(this.index+1)%this.values.length,this.remaining--,this.remaining===0&&this.close(),e}takeN(e){e=mi(e);let t=Math.min(e,this.remaining),n=Array(t);for(let e=0;e<t;e++)n[e]=this.take();return n}takeAll(){return this.takeN(this.remaining)}},jw={remaining:0,take:()=>void 0,takeN:()=>[],takeAll:()=>[],close:()=>void 0},Mw=`~effect/Queue`,Nw=`~effect/Queue/Enqueue`,Pw=`~effect/Queue/Dequeue`,Fw={_A:s,_E:s},Iw={[Mw]:Fw,[Nw]:Fw,[Pw]:Fw,...Wt,toJSON(){return{_id:`effect/Queue`,state:this.state._tag,size:Yw(this)}}},Lw=e=>Cn(t=>{let n=Object.create(Iw);return n.dispatcher=t.currentDispatcher,n.capacity=e?.capacity??1/0,n.strategy=e?.strategy??`suspend`,n.messages=XC(),n.scheduleRunning=!1,n.state={_tag:`Open`,takers:new Set,offers:new Set,awaiters:new Set},qs(n)}),Rw=e=>Lw({capacity:e}),zw=o(2,(e,t)=>Zs(()=>Bw(e,t)?Zw:e.state._tag===`Open`&&e.strategy===`suspend`?aT(e,t):Xw)),Bw=(e,t)=>e.state._tag===`Open`?e.messages.length>=e.capacity?e.strategy===`sliding`?(iw(e.messages),$C(e.messages,t),!0):e.capacity<=0&&e.state.takers.size>0&&($C(e.messages,t),eT(e),!0):($C(e.messages,t),tT(e),!0):!1,Vw=o(2,(e,t)=>Xs(()=>Hw(e,t))),Hw=(e,t)=>{if(e.state._tag!==`Open`)return!1;let n=$c(bn(t),Qw);return e.state.offers.size===0&&e.messages.length===0?(uT(e,n),!0):(e.state={...e.state,_tag:`Closing`,exit:n},tT(e),!0)},Uw=e=>Xs(()=>Ww(e)),Ww=e=>{if(e.state._tag===`Done`)return!1;tw(e.messages);let t=e.state.offers;uT(e,e.state._tag===`Open`?$w:e.state.exit);for(let e of t)sT(e);return!0},Gw=e=>Kw(e,1,1/0),Kw=o(3,(e,t,n)=>(t=mi(t),n=mi(n),Zs(()=>nT(e,t,n)??jc(iT(e,()=>rT(e,t)),Kw(e,t,n))))),qw=e=>Zs(()=>Jw(e)??jc(iT(e,()=>rT(e,1)),qw(e))),Jw=e=>{if(e.state._tag===`Done`)return e.state.exit;if(e.messages.length>0){let t=iw(e.messages);return lT(e),_n(t)}if(e.capacity<=0&&e.state.offers.size>0){let t=cT(e.state.offers);return lT(e),_n(t)}},Yw=e=>e.state._tag===`Done`?0:e.messages.length,Xw=_n(!1),Zw=_n(!0),Qw=xn(An()),$w=Wc(),eT=e=>{if(e.state._tag!==`Done`&&e.state.takers.size!==0){for(let t of e.state.takers)if(t.ready()&&(e.state.takers.delete(t),t.resume(Yc),e.messages.length===0))break}},tT=e=>{e.scheduleRunning||e.state._tag===`Done`||e.state.takers.size===0||(e.scheduleRunning=!0,e.dispatcher.scheduleTask(()=>{e.scheduleRunning=!1,eT(e)},0))},nT=(e,t,n)=>{if(e.state._tag===`Done`)return e.state.exit;if(n<=0||t<=0)return _n([]);if(!rT(e,t))return;let r=e.messages.length>0?nw(e.messages,n):[cT(e.state.offers)];return lT(e),_n(r)},rT=(e,t)=>e.messages.length>=(e.state._tag===`Closing`?1:Math.min(t,e.capacity||1))||e.capacity<=0&&e.state._tag!==`Done`&&e.state.offers.size>0,iT=(e,t)=>dc(n=>{if(e.state._tag===`Done`)return n(e.state.exit);if(t())return n(Yc);let r={ready:t,resume:n};return e.state.takers.add(r),Xs(()=>{e.state._tag!==`Done`&&e.state.takers.delete(r)})}),aT=(e,t)=>dc(n=>Bw(e,t)?n(Zw):oT(e,{_tag:`Single`,message:t,resume:n})),oT=(e,t)=>{if(e.state._tag!==`Open`)return sT(t);let n=e.state.offers;return n.add(t),Xs(()=>{e.state._tag!==`Done`&&(n.delete(t),e.state._tag===`Closing`&&n.size===0&&e.messages.length===0&&uT(e,e.state.exit))})},sT=e=>e._tag===`Single`?e.resume(Xw):e.resume(_n(e.remaining.slice(e.offset))),cT=e=>{let t=e.values().next().value;if(t._tag===`Single`)return e.delete(t),t.resume(Zw),t.message;let n=t.remaining[t.offset++];return t.offset===t.remaining.length&&(e.delete(t),t.resume(_n([]))),n},lT=e=>{if(e.state._tag===`Done`)return dp(e.state.exit.cause);if(e.state.offers.size===0)return e.state._tag===`Closing`&&e.messages.length===0&&(uT(e,e.state.exit),dp(e.state.exit.cause));for(let t of e.state.offers){let n=e.capacity-e.messages.length;if(n<=0)break;if(t._tag===`Single`)$C(e.messages,t.message),e.state.offers.delete(t),t.resume(Zw);else{for(;t.offset<t.remaining.length;t.offset++){if(n===0)return!1;$C(e.messages,t.remaining[t.offset]),n--}e.state.offers.delete(t),t.resume(_n([]))}}return!1},uT=(e,t)=>{if(e.state._tag===`Done`)return;let n=e.state;e.state={_tag:`Done`,exit:t};for(let e of n.takers)e.resume(t);n.takers.clear();for(let e of n.awaiters)e(t);n.awaiters.clear()},dT=e=>new pT(e),fT=(e,t,n)=>dc(r=>{if(e.free>=t)return r(n);let i=()=>{e.free<t||(e.waiters.delete(i),r(n))};return e.waiters.add(i),Xs(()=>{e.waiters.delete(i)})}),pT=class{waiters=new Set;taken=0;permits;constructor(e){this.permits=e}get free(){return this.permits-this.taken}take(e){let t=Zs(()=>this.free<e?fT(this,e,t):(this.taken+=e,qs(e)));return t}takeIfAvailable(e){return Zs(()=>this.free<e?qs(!1):(this.taken+=e,qs(!0)))}releaseUnsafe(e,t){return this.taken-=t,this.waiters.size>0&&e.currentDispatcher.scheduleTask(()=>{for(let e of this.waiters){if(this.free<=0)break;e()}},0),this.free}resize(e){return Cn(t=>(this.permits=e,this.free<0||this.releaseUnsafe(t,0),ic))}release(e){return Cn(t=>qs(this.releaseUnsafe(t,e)))}get releaseAll(){return Cn(e=>qs(this.releaseUnsafe(e,this.taken)))}withPermits(e){return t=>Cu(n=>{let r=Zs(()=>this.free<e?Ic(n(fT(this,e,ic)),()=>r):(this.taken+=e,ou(n(t),()=>{this.releaseUnsafe(Ns(),e)},!0)));return r})}withPermit=this.withPermits(1);withPermitsIfAvailable(e){return t=>Cu(n=>this.free<e?ec:(this.taken+=e,ou(n(Ac(t)),()=>{this.releaseUnsafe(Ns(),e)},!0)))}},mT=`~effect/Channel`,hT=e=>_e(e,mT),gT={[mT]:{_Env:s,_InErr:s,_InElem:s,_OutErr:s,_OutElem:s},pipe(){return r(this,arguments)}},_T=e=>{let t=Object.create(gT);return t.transform=(t,n)=>Kp(e(t,n),e=>E(Ap(e))),t},vT=(e,t)=>_T((n,r)=>k(xT(e)(n,r),e=>t(e,r))),yT=e=>_T((t,n)=>e),bT=e=>_T(Mm(function*(t,n){let r=gf(n),i=e=>_f(r,hp(e));return mm(yield*mm(e(t,n,r),i),i)})),xT=e=>e.transform,ST=(e,t,n)=>Lw({capacity:n?.bufferSize,strategy:n?.strategy}).pipe(zp(t=>hf(e,Uw(t))),zp(n=>Em(pf(t(n),e),e))),CT=(e,t)=>_T((n,r)=>Vp(ST(r,e,t),Gw)),wT=e=>_T((t,n)=>Tp(()=>xT(e())(t,n))),TT=e=>yT(D(()=>{let t=e();return Tp(()=>{let e=t.next();return e.done?qd(e.value):E(e.value)})})),ET=e=>jT(E(e)),DT=yT(E(qd())),OT=yT(E(Op)),kT=e=>yT(E(kp(e))),AT=e=>yT(Ap(e)),jT=e=>yT(D(()=>{let t=!1;return Tp(()=>t?qd():(t=!0,e))})),MT=e=>yT(E(vm(hw(e),()=>qd()))),NT=e=>QT(Vp(pw(e),MT)),PT=e=>_T((t,n)=>FT({scope:n,readable:e.evaluate(),onError:e.onError,releaseLockOnEnd:e.releaseLockOnEnd})),FT=e=>{let t=e.readable.getReader(),n=e.exit??qC(void 0),r=Tp(()=>n.current?n.current:tm(Cp({try:()=>t.read(),catch:e.onError}),{onFailure:e=>n.current??Ap(e),onSuccess:({done:e,value:t})=>n.current?n.current:e?qd():E(Da(t))}));return Hp(hf(e.scope,e.releaseLockOnEnd?D(()=>t.releaseLock()):Sp(()=>t.cancel().catch(p))),r)},IT=o(2,(e,t)=>vT(e,e=>D(()=>{let n=0;return Vp(e,e=>t(e,n++))}))),LT=e=>e===void 0||e!==`unbounded`&&e<=1,RT=o(e=>hT(e[0]),(e,t,n)=>LT(n?.concurrency)?zT(e,t):BT(e,t,n)),zT=(e,t)=>_T((n,r)=>{let i=0;return Vp(xT(e)(n,r),k(e=>t(e,i++)))}),BT=(e,t,n)=>bT(Mm(function*(r,i,a){let o=0,s=yield*xT(e)(r,i),l=n.concurrency===`unbounded`?2**53-1:n.concurrency,u=yield*Rw(0);yield*hf(a,Uw(u));let d=Om(yield*nm()),f=HC(a);if(n.unordered){let e=dT(l),n=c(e.release(1)),r=tm({onFailure:e=>k(Vw(u,e),n),onSuccess:e=>k(zw(u,e),n)});yield*e.take(1).pipe(k(()=>s),k(e=>{let n=o++;return f(d(r(Tp(()=>t(e,n))))),Ep}),xm({disableYield:!0}),Kp(t=>e.withPermits(l-1)(Vw(u,t))),Em(a))}else{let e=yield*Rw(l-2);yield*hf(a,Uw(e)),yield*qw(e).pipe(Lp,k(e=>zw(u,e)),xm({disableYield:!0}),Kp(e=>Vw(u,e)),Em(a));let n,r=e=>{e._tag!==`Success`&&(n=e.cause,Hw(u,e.cause))};yield*s.pipe(k(i=>{if(n)return Ap(n);let a=o++,s=d(Tp(()=>t(i,a)));return f(s),s.addObserver(r),zw(e,zC(s))}),xm({disableYield:!0}),Kp(t=>zw(e,Yd(t)).pipe(Rp(Vw(e,t)))),Em(a))}return qw(u)})),VT=o(e=>hT(e[0]),(e,t,n)=>LT(n?.concurrency)?HT(e,t):UT(e,t,n)),HT=(e,t)=>_T((n,r)=>Vp(xT(e)(n,r),e=>{let i,a,o=k(e,e=>(a??=gf(r),Lm(xT(t(e))(n,a),e=>(i=s(e),i)))),s=up(e=>{if(i=void 0,a.state._tag===`Empty`)return o;let t=_f(a,Zd);return a=void 0,k(t,()=>o)});return Tp(()=>i??o)})),UT=(e,t,n)=>e.pipe(IT(t),XT(n)),WT=e=>VT(e,s),GT=e=>vT(e,e=>{let t,n=0;return E(Tp(function r(){if(t===void 0)return k(e,e=>{switch(e.length){case 0:return r();case 1:return E(e[0]);default:return t=e,E(e[n++])}});let i=t[n++];return n>=t.length&&(t=void 0,n=0),E(i)}))}),KT=o(2,(e,t)=>_T((n,r)=>{let i=gf(r);return Vp(xT(e)(n,i),e=>{let a=e.pipe(Kp(e=>{if(dp(e))return Ap(e);let o=i;return i=gf(r),_f(o,Yd(e)).pipe(Rp(xT(t(e))(n,i)),k(e=>(a=e,e)))}));return Tp(()=>a)})})),qT=o(3,(e,t,n)=>KT(e,e=>{let r=t(e);return xi(r)?AT(r.failure):n(r.success,e)})),JT=o(2,(e,t)=>qT(e,lee,e=>t(e))),YT=o(e=>hT(e[0]),(e,t,n)=>e.pipe(IT(t),XT({...n,concurrency:n?.concurrency??1,switch:!0}))),XT=o(2,(e,{bufferSize:t=16,concurrency:n,switch:r=!1})=>bT(Mm(function*(i,a,o){let s=n===`unbounded`?2**53-1:Math.max(1,n),c=r?void 0:dT(s),l=yield*WC(!0),u=new Set,d=yield*Rw(t);yield*hf(o,Uw(d));let f=yield*xT(e)(i,a);return yield*O(function*(){for(;;){let e;c&&(u.size<s?yield*c.take(1):(e=yield*Tm(f),yield*$p(c.take(1),Rp(zC(e),Op))));let t=e===void 0?yield*f:yield*zC(e),n=gf(o),r=yield*xT(t)(i,n);for(;u.size>=s;){let e=Ei(u);u.delete(e),u.size===0&&(yield*l.open),yield*BC(e)}let a=yield*r.pipe(zp(()=>Pp),k(e=>zw(d,e)),xm({disableYield:!0}),mm(Mm(function*(e){let t=pp(e);if(yield*Bp(_f(n,xi(t)?Yd(t.failure):Jd(t.success.value))),u.has(a)&&(u.delete(a),c&&(yield*c.release(1)),u.size===0&&(yield*l.open),!Si(t)))return yield*Vw(d,e)})),Tm);l.closeUnsafe(),u.add(a)}}).pipe(Kp(e=>Si(pp(e))?l.whenOpen(Vw(d,e)):Vw(d,e)),Em(o)),qw(d)}))),ZT=o(2,(e,t)=>_T((n,r)=>k(xT(e)(n,r),e=>xT(t)(e,r)))),QT=e=>_T((t,n)=>{let r;return E(Tp(()=>r||e.pipe(pf(n),k(e=>xT(e)(t,n)),k(e=>r=e))))}),$T=e=>bT((t,n,r)=>Vp(pf(xT(e)(t,n),r),pf(r))),eE=o(2,(e,t)=>bT((n,r,i)=>mf(i,t).pipe(Rp(xT(e)(n,r))))),tE=o(2,(e,t)=>eE(e,e=>t)),nE=(e,t,n)=>Tp(()=>{let r=ff();return up(k(xT(e)(qd(),r),t),n||E).pipe(hm(e=>_f(r,e)))}),rE=o(2,(e,t)=>_T((n,r)=>Vp(am(xT(e)(n,r),t),am(t)))),iE=o(2,(e,t)=>nE(e,e=>xm(k(e,t),{disableYield:!0}))),aE=(e,t)=>xT(e)(qd(),t),oE=(e,t)=>()=>{let n=bS(WS(e),t);return _T((e,t)=>E(k(e,e=>n(e))))},sE=`~effect/Stream`,cE={_R:s,_E:s,_A:s},lE=function(e){this.channel=e};lE.prototype={[sE]:cE,pipe(){return r(this,arguments)}};var uE=e=>new lE(e),dE=`~effect/Stream`,fE=e=>_e(e,dE),pE=uE,mE=e=>pE(jT(Vp(e,Da))),hE=e=>gE(D(()=>{let t=!0,n=E(Da(void 0)),r=Zp(n,e);return Tp(()=>t?(t=!1,n):r)})),gE=e=>pE(yT(e)),_E=(e,t)=>pE(_T((n,r)=>k(aE(e.channel,r),e=>t(e,r)))),vE=(e,t)=>pE(CT(e,t)),yE=pE(DT),bE=(...e)=>CE(e),xE=e=>pE(wT(()=>e().channel)),SE=e=>pE(kT(e)),CE=e=>Zi(e)?pE(ET(e)):yE,wE=e=>pE(NT(e)),TE=e=>pE(PT(e)),EE=e=>pE(MT(e)),DE=pE(OT),OE=e=>pE($T(e.channel)),kE=o(2,(e,t)=>xE(()=>{let n=0;return pE(IT(e.channel,T(e=>t(e,n++))))})),AE=o(e=>fE(e[0]),(e,t,n)=>e.channel.pipe(GT,RT(t,n),IT(Da),pE)),jE=o(e=>fE(e[0]),(e,t,n)=>e.channel.pipe(GT,VT(e=>t(e).channel,n),pE)),ME=o(e=>fE(e[0]),(e,t,n)=>e.channel.pipe(GT,YT(e=>t(e).channel,n),pE)),NE=o(2,(e,t)=>{let n=pE(WT(TT(()=>FE(e,t))));return PE.set(n,[e,t]),n}),PE=new WeakMap;function*FE(e,t){let n=[t,e];for(;n.length>0;){let e=n.pop(),t=PE.get(e);t===void 0?yield e.channel:n.push(t[1],t[0])}}var IE=o(2,(e,t)=>pE(JT(e.channel,e=>t(e).channel))),LE=o(2,(e,t)=>{let n=mi(t);return n===0?e:_E(e,(e,t)=>D(()=>{let t=0,r=e.pipe(k(e=>t>=n?E(e):(t+=e.length,t<=n?r:E(e.slice(n-t)))));return r}))}),RE=o(2,(e,t)=>pE(ZT(e.channel,t))),zE=e=>BE(e,He),BE=o(2,(e,t)=>_E(e,(e,n)=>D(()=>{let n=!0,r;return k(e,function i(a){let o=[],s=0;for(n&&(n=!1,r=a[0],s=1,o.push(r));s<a.length;s++){let e=a[s];t(e,r)||(r=e,o.push(e))}return Xi(o)?E(o):k(e,i)})}))),VE=o(e=>fE(e[0]),(e,t)=>xE(()=>{let n=new TextDecoder(t?.encoding);return kE(e,e=>n.decode(e,{stream:!0}))})),HE=o(2,(e,t)=>pE(tE(e.channel,t))),UE=o(2,(e,t)=>pE(rE(e.channel,t))),WE=o(2,(e,t)=>iE(e.channel,e=>{let n=0;return xp({while:()=>n<e.length,body:()=>t(e[n++]),step:p})})),GE=o(2,(e,t)=>iE(e.channel,t)),KE=o(e=>fE(e[0]),(e,t,n)=>{let r,i,a=UC(!1);return new ReadableStream({start(n){i=Dm(am(GE(e,e=>a.whenOpen(D(()=>{a.closeUnsafe();for(let t=0;t<e.length;t++)n.enqueue(e[t]);r(),r=void 0}))),t)),i.addObserver(e=>{e._tag===`Failure`?n.error(Gd(e.cause)):n.close()})},pull(){return new Promise(e=>{r=e,a.openUnsafe()})},cancel(){if(i)return km(Up(BC(i)))}},n?.strategy)}),qE=o(e=>fE(e[0]),(e,t)=>Vp(nm(),n=>KE(e,n,t))),JE=`~effect/Match/Matcher`,YE={[JE]:{_input:s,_filters:s,_remaining:s,_result:s,_return:s,_args:s},_tag:`TypeMatcher`,add(e){return XE(this.select,[...this.cases,e])},pipe(){return r(this,arguments)}};function XE(e,t){let n=Object.create(YE);return n.select=e,n.cases=t,n}var ZE={[JE]:{_input:s,_filters:s,_result:s,_return:s,_flavor:s},_tag:`ValueMatcher`,add(e){return Si(this.value)?this:e._tag===`When`&&e.guard(this.provided)===!0||e._tag===`Not`&&e.guard(this.provided)===!1?QE(this.provided,gi(e.evaluate(this.provided))):this},pipe(){return r(this,arguments)}};function QE(e,t){let n=Object.create(ZE);return n.provided=e,n.value=t,n}var $E=(e,t)=>({_tag:`When`,guard:e,evaluate:t}),eD=e=>{if(typeof e==`function`)return e;if(Array.isArray(e)){let t=e.map(eD),n=t.length;return e=>{if(!Array.isArray(e))return!1;for(let r=0;r<n;r++)if(t[r](e[r])===!1)return!1;return!0}}if(typeof e==`object`&&e){let t=Reflect.ownKeys(e).map(t=>[t,eD(e[t])]),n=t.length;return e=>{if(typeof e!=`object`||!e)return!1;for(let r=0;r<n;r++){let[n,i]=t[r];if(!(n in e)||i(e[n])===!1)return!1}return!0}}return t=>t===e},tD=e=>{let t=e.map(eD),n=t.length;return e=>{for(let r=0;r<n;r++)if(t[r](e)===!0)return!0;return!1}},nD=e=>QE(e,_i(e)),rD=o(2,(e,t)=>dD(t)(XE(s,[]))(e)),iD=()=>e=>e,aD=(e,t)=>n=>n.add($E(eD(e),t)),oD=(...e)=>t=>{let n=e[e.length-1],r=e.slice(0,-1);return t.add($E(tD(r),n))},sD=e=>(...t)=>{let n=t[t.length-1],r=t.slice(0,-1),i=r.length===1?t=>t!=null&&t[e]===r[0]:t=>t!=null&&r.includes(t[e]);return e=>e.add($E(i,n))},cD=e=>t=>{let n=$E(n=>n!=null&&Object.hasOwn(t,n[e]),n=>t[n[e]](n));return e=>e.add(n)},lD=e=>t=>{let n=cD(e)(t);return e=>hD(n(e))},uD=sD(`_tag`),dD=lD(`_tag`),fD=e=>t=>{let n=pD(t);return bi(n)?n._tag===`Success`?n.success:e(n.failure):(...t)=>{let r=n(...t);return Si(r)?r.success:e(r.failure,...t)}},pD=e=>{if(e._tag===`ValueMatcher`)return e.value;let t=e.cases.length;if(t===1){let t=e.cases[0];return(...n)=>{let r=e.select(...n);return t._tag===`When`&&t.guard(r)===!0||t._tag===`Not`&&t.guard(r)===!1?gi(t.evaluate(r,...n)):_i(r)}}return(...n)=>{let r=e.select(...n);for(let i=0;i<t;i++){let t=e.cases[i];if(t._tag===`When`&&t.guard(r)===!0||t._tag===`Not`&&t.guard(r)===!1)return gi(t.evaluate(r,...n))}return _i(r)}},mD=`effect/match/Match/exhaustive: absurd`,hD=e=>{let t=pD(e);if(bi(t)){if(Si(t))return t.success;throw Error(mD)}return(...e)=>{let n=t(...e);if(Si(n))return n.success;throw Error(mD)}},gD=nD,_D=rD,vD=iD,yD=aD,bD=oD,xD=cD,SD=uD,CD=dD,wD=fD,TD=hD,ED={"~effect/Ref":{_A:s},...Wt,toJSON(){return{_id:`Ref`,ref:this.ref}}},DD=e=>{let t=Object.create(ED);return t.ref=qC(e),t},OD=e=>D(()=>DD(e)),kD=e=>D(()=>e.ref.current),AD=o(2,(e,t)=>D(()=>JC(e.ref,t))),jD=o(2,(e,t)=>D(()=>{let n=e.ref.current;return e.ref.current=t,n})),MD=e=>e.ref.current,ND=o(2,(e,t)=>e===void 0?void 0:t(e)),PD=(e,t)=>Qd(e)?t(0):Hd(e.cause)?t(130):t(LD(Gd(e.cause))),FD=e=>o(e=>vp(e[0]),(t,n)=>{let r=n?.disableErrorReporting===!0?Dm(t):Dm(Jp(t,e=>Hd(e)?Ep:zD(Gd(e))?Nm(e):Ep));try{let e=globalThis.setInterval(p,2147483647);r.addObserver(()=>{clearInterval(e)})}catch{}return e({fiber:r,teardown:n?.teardown??PD})}),ID=`~effect/Runtime/errorExitCode`,LD=e=>{if(typeof e==`object`&&e&&`~effect/Runtime/errorExitCode`in e){let t=e[ID];if(typeof t==`number`)return t}return 1},RD=`~effect/Runtime/errorReported`,zD=e=>{if(typeof e==`object`&&e&&`~effect/Runtime/errorReported`in e){let t=e[RD];if(typeof t==`boolean`)return t}return!0},BD=`~effect/SubscriptionRef`,VD={...Wt,[BD]:{_A:s},toJSON(){return{_id:`SubscriptionRef`,value:this.value}}},HD=e=>Vp(uw({replay:1}),t=>{let n=Object.create(VD);return n.semaphore=dT(1),n.value=e,n.pubsub=t,fw(n.pubsub,e),n}),UD=e=>e.value,WD=e=>D(()=>e.value),GD=(e,t)=>{e.value=t,fw(e.pubsub,t)},KD=o(2,(e,t)=>e.semaphore.withPermit(D(()=>{let[n,r]=t(e.value);return GD(e,r),n}))),qD=o(2,(e,t)=>e.semaphore.withPermit(D(()=>GD(e,t(e.value))))),JD=(e,t,n)=>{t===`__proto__`?Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n},YD=e=>{try{return e()}catch(e){throw Error(`Constructor adapter can only throw schema issues`,{cause:Rd(e)})}},XD=e=>e.checks!==void 0||e.encoding!==void 0||e.context!==void 0?!1:gD(e).pipe(vD(),CD({Declaration:()=>!1,Null:()=>!0,Undefined:()=>!0,Void:()=>!0,Never:()=>!0,Unknown:()=>!0,Any:()=>!0,String:()=>!0,Number:()=>!0,Boolean:()=>!0,BigInt:()=>!0,Symbol:()=>!0,Literal:()=>!0,UniqueSymbol:()=>!0,ObjectKeyword:()=>!0,Enum:()=>!0,TemplateLiteral:({parts:e})=>e.every(XD),Arrays:()=>!1,Objects:()=>!1,Union:({options:e,types:t})=>e?.mode!==`oneOf`&&t.every(XD),Suspend:()=>!1})),ZD=e=>{let t=[];for(let{name:n,type:r}of e){if(n!==`_tag`&&!XD(wb(r)))return;t.push(n)}return t},QD=(e,t)=>{let n=nC(e,t),r=Object.hasOwn(t,`_tag`)?void 0:ZD(n.ast.propertySignatures),i=e=>n.make(e??{}),a=r===void 0?i:t=>{let n=t??{};if(Object(n)!==n)return i(t);let a={};for(let o of r){let r=YD(()=>(o===`__proto__`?Object.hasOwn(n,o):Reflect.has(n,o))?n[o]:void 0);if(o===`_tag`){if(r!==void 0&&r!==e)return i(t);YD(()=>JD(a,o,e))}else YD(()=>JD(a,o,r))}return a};return new Proxy(function(){},{apply(e,t,n){return a(n[0])},get(e,t){return Reflect.get(n,t)},has(e,t){return Reflect.has(n,t)},getPrototypeOf(){return Reflect.getPrototypeOf(n)}})},$D=new Set([`members`,`subset`]),eO=new Set([`Rebuild`,`~type.parameters`,`Type`,`Encoded`,`DecodingServices`,`EncodingServices`,`~type.make.in`,`~type.make`,`~type.constructor.default`,`Iso`,`~type.mutability`,`~type.optionality`,`~encoded.mutability`,`~encoded.optionality`]),tO=(e,t)=>{let n=iC(t),r=ja(Object.keys(t),e=>Reflect.has(n,e)||eO.has(e)||$D.has(e));if(Xi(r))throw Error(`${e} names conflict with union properties: ${r.join(`, `)}`);let i={};for(let[e,n]of Object.entries(t))i[e]=QD(e,n);return Object.assign(n,i,{members:Object.values(i),subset:e=>{let t=[];for(let n of e){let e=i[n];if(!Object.hasOwn(i,n)||e===void 0)throw Error(`Union subset contains an unknown variant: ${n}`);t.push(e)}return KS(t)}})};function nO(e){return tO(`Message variant`,e)}function rO(e){return tO(`Variant`,e)}function iO(e){return tO(`Route variant`,e)}function aO(e,t={}){return QD(e,t)}var oO=aO(`Idle`),sO=aO(`Loading`),cO=e=>({_tag:`Refreshing`,data:e.data}),lO=e=>({_tag:`Failure`,error:e.error}),uO=e=>({_tag:`Stale`,error:e.error,data:e.data}),dO=e=>({_tag:`Success`,data:e.data}),fO=(e,t)=>{let n=aO(`Refreshing`,{data:e}),r=aO(`Failure`,{error:t}),i=aO(`Stale`,{error:t,data:e}),a=aO(`Success`,{data:e});return{schema:KS([oO,sO,n,r,i,a]),Idle:oO,Loading:sO,Refreshing:n,Failure:r,Stale:i,Success:a}},pO=o(2,(e,t)=>gO(e)?t.onIdle():_O(e)?t.onLoading():vO(e)?t.onRefreshing(e.data):yO(e)?t.onFailure(e.error):bO(e)?t.onStale({error:e.error,data:e.data}):t.onSuccess(e.data));o(2,(e,t)=>{let n=hO(e);return C(n)?t.onData(n.value):yO(e)?t.onFailure(e.error):t.onEmpty()}),o(2,(e,t)=>{let n=hO(e);return C(n)?t.onData(n.value):yO(e)?t.onFailure(e.error):_O(e)?t.onLoading():t.onIdle()});var mO=o(2,(e,t)=>gD(e).pipe(vD(),CD({Idle:e=>e,Loading:e=>e,Refreshing:({data:e})=>cO({data:t(e)}),Failure:e=>e,Stale:({error:e,data:n})=>uO({error:e,data:t(n)}),Success:({data:e})=>dO({data:t(e)})})));o(2,(e,t)=>gD(e).pipe(vD(),CD({Idle:e=>e,Loading:e=>e,Refreshing:e=>e,Failure:({error:e})=>lO({error:t(e)}),Stale:({error:e,data:n})=>uO({error:t(e),data:n}),Success:e=>e}))),o(2,(e,t)=>gD(e).pipe(vD(),CD({Idle:e=>e,Loading:e=>e,Refreshing:({data:e})=>cO({data:t.onData(e)}),Failure:({error:e})=>lO({error:t.onError(e)}),Stale:({error:e,data:n})=>uO({error:t.onError(e),data:t.onData(n)}),Success:({data:e})=>dO({data:t.onData(e)})}))),o(2,(e,t)=>gD(e).pipe(vD(),CD({Idle:e=>e,Loading:e=>e,Refreshing:({data:e})=>t(e),Failure:e=>e,Stale:({data:e})=>t(e),Success:({data:e})=>t(e)})));var hO=e=>xO(e)||vO(e)||bO(e)?S(e.data):x();o(2,(e,t)=>mr(hO(e),t));var gO=e=>e._tag===`Idle`,_O=e=>e._tag===`Loading`,vO=e=>e._tag===`Refreshing`,yO=e=>e._tag===`Failure`,bO=e=>e._tag===`Stale`,xO=e=>e._tag===`Success`,SO=e=>C(hO(e));o(2,(e,t)=>SO(e)?e:t());var CO=e=>gD(e).pipe(vD(),CD({Idle:()=>S(sO()),Loading:()=>x(),Refreshing:()=>x(),Failure:()=>S(sO()),Stale:({data:e})=>S(cO({data:e})),Success:({data:e})=>S(cO({data:e}))}));o(3,(e,t,n)=>{if(yO(e))return e;if(yO(t))return t;if(_O(e)||_O(t))return sO();if(gO(e)||gO(t))return oO();let r=n(e.data,t.data);return bO(e)?uO({error:e.error,data:r}):bO(t)?uO({error:t.error,data:r}):vO(e)||vO(t)?cO({data:r}):dO({data:r})}),o(2,(e,t)=>Ci(t,{onSuccess:e=>dO({data:e}),onFailure:t=>w(hO(e),{onNone:()=>lO({error:t}),onSome:e=>uO({error:t,data:e})})}));var wO=new Set(`accentColor alignContent alignItems alignSelf alignmentBaseline all anchorName anchorScope
15
- animation animationComposition animationDelay animationDirection animationDuration animationFillMode
16
- animationIterationCount animationName animationPlayState animationRange animationRangeEnd
17
- animationRangeStart animationTimeline animationTimingFunction appearance aspectRatio backdropFilter
18
- backfaceVisibility background backgroundAttachment backgroundBlendMode backgroundClip backgroundColor
19
- backgroundImage backgroundOrigin backgroundPosition backgroundPositionX backgroundPositionY
20
- backgroundRepeat backgroundSize baselineShift baselineSource blockSize border borderBlock
21
- borderBlockColor borderBlockEnd borderBlockEndColor borderBlockEndStyle borderBlockEndWidth
22
- borderBlockStart borderBlockStartColor borderBlockStartStyle borderBlockStartWidth borderBlockStyle
23
- borderBlockWidth borderBottom borderBottomColor borderBottomLeftRadius borderBottomRightRadius
24
- borderBottomStyle borderBottomWidth borderCollapse borderColor borderEndEndRadius borderEndStartRadius
25
- borderImage borderImageOutset borderImageRepeat borderImageSlice borderImageSource borderImageWidth
26
- borderInline borderInlineColor borderInlineEnd borderInlineEndColor borderInlineEndStyle
27
- borderInlineEndWidth borderInlineStart borderInlineStartColor borderInlineStartStyle
28
- borderInlineStartWidth borderInlineStyle borderInlineWidth borderLeft borderLeftColor borderLeftStyle
29
- borderLeftWidth borderRadius borderRight borderRightColor borderRightStyle borderRightWidth
30
- borderSpacing borderStartEndRadius borderStartStartRadius borderStyle borderTop borderTopColor
31
- borderTopLeftRadius borderTopRightRadius borderTopStyle borderTopWidth borderWidth bottom
32
- boxDecorationBreak boxShadow boxSizing breakAfter breakBefore breakInside captionSide caretColor clear
33
- clip clipPath clipRule color colorInterpolation colorInterpolationFilters colorScheme columnCount
34
- columnFill columnGap columnRule columnRuleColor columnRuleStyle columnRuleWidth columnSpan columnWidth
35
- columns contain containIntrinsicBlockSize containIntrinsicHeight containIntrinsicInlineSize
36
- containIntrinsicSize containIntrinsicWidth container containerName containerType content
37
- contentVisibility counterIncrement counterReset counterSet cssFloat cursor cx cy d direction display
38
- dominantBaseline dynamicRangeLimit emptyCells fieldSizing fill fillOpacity fillRule filter flex
39
- flexBasis flexDirection flexFlow flexGrow flexShrink flexWrap float floodColor floodOpacity font
40
- fontFamily fontFeatureSettings fontKerning fontLanguageOverride fontOpticalSizing fontPalette fontSize
41
- fontSizeAdjust fontStretch fontStyle fontSynthesis fontSynthesisSmallCaps fontSynthesisStyle
42
- fontSynthesisWeight fontVariant fontVariantAlternates fontVariantCaps fontVariantEastAsian
43
- fontVariantEmoji fontVariantLigatures fontVariantNumeric fontVariantPosition fontVariationSettings
44
- fontWeight forcedColorAdjust gap grid gridArea gridAutoColumns gridAutoFlow gridAutoRows gridColumn
45
- gridColumnEnd gridColumnGap gridColumnStart gridGap gridRow gridRowEnd gridRowGap gridRowStart
46
- gridTemplate gridTemplateAreas gridTemplateColumns gridTemplateRows height hyphenateCharacter
47
- hyphenateLimitChars hyphens imageOrientation imageRendering inlineSize inset insetBlock insetBlockEnd
48
- insetBlockStart insetInline insetInlineEnd insetInlineStart isolation justifyContent justifyItems
49
- justifySelf left letterSpacing lightingColor lineBreak lineHeight listStyle listStyleImage
50
- listStylePosition listStyleType margin marginBlock marginBlockEnd marginBlockStart marginBottom
51
- marginInline marginInlineEnd marginInlineStart marginLeft marginRight marginTop marker markerEnd markerMid
52
- markerStart mask maskClip maskComposite maskImage maskMode maskOrigin maskPosition maskRepeat maskSize
53
- maskType mathDepth mathShift mathStyle maxBlockSize maxHeight maxInlineSize maxWidth minBlockSize
54
- minHeight minInlineSize minWidth mixBlendMode objectFit objectPosition offset offsetAnchor
55
- offsetDistance offsetPath offsetPosition offsetRotate opacity order orphans outline outlineColor
56
- outlineOffset outlineStyle outlineWidth overflow overflowAnchor overflowBlock overflowClipMargin
57
- overflowInline overflowWrap overflowX overflowY overscrollBehavior overscrollBehaviorBlock
58
- overscrollBehaviorInline overscrollBehaviorX overscrollBehaviorY padding paddingBlock paddingBlockEnd
59
- paddingBlockStart paddingBottom paddingInline paddingInlineEnd paddingInlineStart paddingLeft paddingRight
60
- paddingTop page pageBreakAfter pageBreakBefore pageBreakInside paintOrder perspective perspectiveOrigin
61
- placeContent placeItems placeSelf pointerEvents position positionAnchor positionArea positionTry
62
- positionTryFallbacks positionTryOrder positionVisibility printColorAdjust quotes r resize right rotate
63
- rowGap rubyAlign rubyPosition rx ry scale scrollBehavior scrollMargin scrollMarginBlock
64
- scrollMarginBlockEnd scrollMarginBlockStart scrollMarginBottom scrollMarginInline scrollMarginInlineEnd
65
- scrollMarginInlineStart scrollMarginLeft scrollMarginRight scrollMarginTop scrollPadding
66
- scrollPaddingBlock scrollPaddingBlockEnd scrollPaddingBlockStart scrollPaddingBottom scrollPaddingInline
67
- scrollPaddingInlineEnd scrollPaddingInlineStart scrollPaddingLeft scrollPaddingRight scrollPaddingTop
68
- scrollSnapAlign scrollSnapStop scrollSnapType scrollTimeline scrollTimelineAxis scrollTimelineName
69
- scrollbarColor scrollbarGutter scrollbarWidth shapeImageThreshold shapeMargin shapeOutside
70
- shapeRendering stopColor stopOpacity stroke strokeDasharray strokeDashoffset strokeLinecap
71
- strokeLinejoin strokeMiterlimit strokeOpacity strokeWidth tabSize tableLayout textAlign textAlignLast
72
- textAnchor textAutospace textBox textBoxEdge textBoxTrim textCombineUpright textDecoration
73
- textDecorationColor textDecorationLine textDecorationSkipInk textDecorationStyle
74
- textDecorationThickness textEmphasis textEmphasisColor textEmphasisPosition textEmphasisStyle
75
- textIndent textJustify textOrientation textOverflow textRendering textShadow textTransform
76
- textUnderlineOffset textUnderlinePosition textWrap textWrapMode textWrapStyle timelineScope top
77
- touchAction transform transformBox transformOrigin transformStyle transition transitionBehavior
78
- transitionDelay transitionDuration transitionProperty transitionTimingFunction translate unicodeBidi
79
- userSelect vectorEffect verticalAlign viewTimeline viewTimelineAxis viewTimelineInset viewTimelineName
80
- viewTransitionClass viewTransitionName visibility webkitAlignContent webkitAlignItems webkitAlignSelf
81
- webkitAnimation webkitAnimationDelay webkitAnimationDirection webkitAnimationDuration
82
- webkitAnimationFillMode webkitAnimationIterationCount webkitAnimationName webkitAnimationPlayState
83
- webkitAnimationTimingFunction webkitAppearance webkitBackfaceVisibility webkitBackgroundClip
84
- webkitBackgroundOrigin webkitBackgroundSize webkitBorderBottomLeftRadius
85
- webkitBorderBottomRightRadius webkitBorderRadius webkitBorderTopLeftRadius
86
- webkitBorderTopRightRadius webkitBoxAlign webkitBoxFlex webkitBoxOrdinalGroup webkitBoxOrient
87
- webkitBoxPack webkitBoxShadow webkitBoxSizing webkitFilter webkitFlex webkitFlexBasis
88
- webkitFlexDirection webkitFlexFlow webkitFlexGrow webkitFlexShrink webkitFlexWrap
89
- webkitJustifyContent webkitLineClamp webkitMask webkitMaskBoxImage webkitMaskBoxImageOutset
90
- webkitMaskBoxImageRepeat webkitMaskBoxImageSlice webkitMaskBoxImageSource webkitMaskBoxImageWidth
91
- webkitMaskClip webkitMaskComposite webkitMaskImage webkitMaskOrigin webkitMaskPosition webkitMaskRepeat
92
- webkitMaskSize webkitOrder webkitPerspective webkitPerspectiveOrigin webkitTextFillColor
93
- webkitTextSizeAdjust webkitTextStroke webkitTextStrokeColor webkitTextStrokeWidth webkitTransform
94
- webkitTransformOrigin webkitTransformStyle webkitTransition webkitTransitionDelay
95
- webkitTransitionDuration webkitTransitionProperty webkitTransitionTimingFunction webkitUserSelect
96
- whiteSpace whiteSpaceCollapse widows width willChange wordBreak wordSpacing wordWrap writingMode x y
97
- zIndex zoom`.split(/\s+/)),TO=new Set([`autofocus`,`autoplay`,`checked`,`controls`,`disabled`,`formNoValidate`,`hidden`,`inert`,`isMap`,`loop`,`multiple`,`muted`,`noValidate`,`open`,`playsInline`,`readOnly`,`required`,`reversed`,`selected`]),EO={colSpan:`colspan`,dateTime:`datetime`,formAction:`formaction`,formEnctype:`formenctype`,formMethod:`formmethod`,formNoValidate:`formnovalidate`,formTarget:`formtarget`,htmlFor:`for`,isMap:`ismap`,maxLength:`maxlength`,minLength:`minlength`,noValidate:`novalidate`,playsInline:`playsinline`,readOnly:`readonly`,rowSpan:`rowspan`,tabIndex:`tabindex`},DO=new Set(`accept.action.alt.autocomplete.cite.cols.dir.download.enctype.high.href.id.label.lang.low.max.method.min.name.optimum.pattern.placeholder.poster.preload.rel.rows.size.span.src.start.step.target.title.type.value.wrap`.split(`.`)),OO=new Set([`autofocus`,`id`,`title`,`lang`,`dir`,`tabIndex`,`hidden`,`inert`,`draggable`]),kO=new Set([`autofocus`,`id`,`tabIndex`]),AO=e=>{let t=EO[e];if(t!==void 0)return t;if(TO.has(e)||DO.has(e)||e===`draggable`)return e},jO=/[A-Z]/g,MO=e=>e.replace(jO,e=>e.toLowerCase()),NO={attributename:`attributeName`,attributetype:`attributeType`,basefrequency:`baseFrequency`,baseprofile:`baseProfile`,calcmode:`calcMode`,clippathunits:`clipPathUnits`,diffuseconstant:`diffuseConstant`,edgemode:`edgeMode`,filterunits:`filterUnits`,glyphref:`glyphRef`,gradienttransform:`gradientTransform`,gradientunits:`gradientUnits`,kernelmatrix:`kernelMatrix`,kernelunitlength:`kernelUnitLength`,keypoints:`keyPoints`,keysplines:`keySplines`,keytimes:`keyTimes`,lengthadjust:`lengthAdjust`,limitingconeangle:`limitingConeAngle`,markerheight:`markerHeight`,markerunits:`markerUnits`,markerwidth:`markerWidth`,maskcontentunits:`maskContentUnits`,maskunits:`maskUnits`,numoctaves:`numOctaves`,pathlength:`pathLength`,patterncontentunits:`patternContentUnits`,patterntransform:`patternTransform`,patternunits:`patternUnits`,pointsatx:`pointsAtX`,pointsaty:`pointsAtY`,pointsatz:`pointsAtZ`,preservealpha:`preserveAlpha`,preserveaspectratio:`preserveAspectRatio`,primitiveunits:`primitiveUnits`,refx:`refX`,refy:`refY`,repeatcount:`repeatCount`,repeatdur:`repeatDur`,requiredextensions:`requiredExtensions`,requiredfeatures:`requiredFeatures`,specularconstant:`specularConstant`,specularexponent:`specularExponent`,spreadmethod:`spreadMethod`,startoffset:`startOffset`,stddeviation:`stdDeviation`,stitchtiles:`stitchTiles`,surfacescale:`surfaceScale`,systemlanguage:`systemLanguage`,tablevalues:`tableValues`,targetx:`targetX`,targety:`targetY`,textlength:`textLength`,viewbox:`viewBox`,viewtarget:`viewTarget`,xchannelselector:`xChannelSelector`,ychannelselector:`yChannelSelector`,zoomandpan:`zoomAndPan`},PO=(e,t)=>{let n=MO(t);return e===`http://www.w3.org/2000/svg`?NO[n]??n:e===`http://www.w3.org/1998/Math/MathML`&&n===`definitionurl`?`definitionURL`:n},FO={accept:new Set([`input`]),action:new Set([`form`]),alt:new Set([`area`,`img`,`input`]),autocomplete:new Set([`form`,`input`,`select`,`textarea`]),autoplay:new Set([`audio`,`video`]),checked:new Set([`input`]),cite:new Set([`blockquote`,`del`,`ins`,`q`]),cols:new Set([`textarea`]),colSpan:new Set([`td`,`th`]),controls:new Set([`audio`,`video`]),dateTime:new Set([`del`,`ins`,`time`]),disabled:new Set([`button`,`fieldset`,`input`,`link`,`optgroup`,`option`,`select`,`textarea`]),download:new Set([`a`,`area`]),enctype:new Set([`form`]),formAction:new Set([`button`,`input`]),formEnctype:new Set([`button`,`input`]),formMethod:new Set([`button`,`input`]),formNoValidate:new Set([`button`,`input`]),formTarget:new Set([`button`,`input`]),high:new Set([`meter`]),href:new Set([`a`,`area`,`base`,`link`]),htmlFor:new Set([`label`,`output`,`script`]),isMap:new Set([`img`]),label:new Set([`optgroup`,`option`,`track`]),loop:new Set([`audio`,`video`]),low:new Set([`meter`]),max:new Set([`input`,`meter`,`progress`]),maxLength:new Set([`input`,`textarea`]),method:new Set([`form`]),min:new Set([`input`,`meter`]),minLength:new Set([`input`,`textarea`]),multiple:new Set([`input`,`select`]),muted:new Set([`audio`,`video`]),name:new Set([`a`,`button`,`details`,`embed`,`fieldset`,`form`,`iframe`,`img`,`input`,`map`,`meta`,`object`,`output`,`param`,`select`,`slot`,`textarea`]),noValidate:new Set([`form`]),open:new Set([`details`,`dialog`]),optimum:new Set([`meter`]),pattern:new Set([`input`]),placeholder:new Set([`input`,`textarea`]),playsInline:new Set([`video`]),poster:new Set([`video`]),preload:new Set([`audio`,`video`]),readOnly:new Set([`input`,`textarea`]),rel:new Set([`a`,`area`,`form`,`link`]),required:new Set([`input`,`select`,`textarea`]),reversed:new Set([`ol`]),rows:new Set([`textarea`]),rowSpan:new Set([`td`,`th`]),selected:new Set([`option`]),size:new Set([`hr`,`input`,`select`]),span:new Set([`col`,`colgroup`]),src:new Set([`audio`,`embed`,`iframe`,`img`,`input`,`script`,`source`,`track`,`video`]),start:new Set([`ol`]),step:new Set([`input`]),target:new Set([`a`,`area`,`base`,`form`,`link`]),type:new Set([`a`,`button`,`embed`,`input`,`li`,`link`,`object`,`ol`,`param`,`script`,`source`,`style`,`ul`]),value:new Set([`button`,`data`,`input`,`li`,`meter`,`option`,`output`,`param`,`progress`,`select`,`textarea`]),wrap:new Set([`textarea`])},IO=(e,t)=>OO.has(t)||Object.hasOwn(FO,t)&&FO[t]?.has(e.toLowerCase())===!0,LO={li:new Set([`value`]),meter:new Set([`high`,`low`,`max`,`min`,`optimum`,`value`]),progress:new Set([`max`,`value`])},RO=(e,t,n)=>{let r=e.toLowerCase();return r===`textarea`&&t===`cols`&&n===0?`20`:r===`textarea`&&t===`rows`&&n===0?`2`:LO[r]?.has(t)===!0?String(Number(n)):String(n)},zO=new Set([`delayed`,`destroy`,`remove`]),BO=/^--(?:[A-Za-z0-9_-]|[^\u0000-\u007f])+$/,VO=/^-?[A-Za-z_][A-Za-z0-9_-]*$/,HO=e=>e.startsWith(`Webkit`)?`webkit${e.slice(6)}`:e,UO=e=>{if(e.startsWith(`--`))return e;if(e===`cssFloat`)return`float`;let t=HO(e).replace(jO,e=>`-${e}`).toLowerCase();return t.startsWith(`webkit-`)||t.startsWith(`ms-`)?`-${t}`:t},WO=new Set(Array.from(wO,UO)),GO=e=>{let t,n=0,r=!1;for(let i=0;i<e.length;i+=1){let a=e.charAt(i),o=e.charAt(i+1);if(r){a===`*`&&o===`/`&&(r=!1,i+=1);continue}if(a===`\\`){if(o===``)return!0;i+=1;continue}if(t!==void 0){a===t&&(t=void 0);continue}if(a===`/`&&o===`*`)r=!0,i+=1;else if(a===`"`||a===`'`)t=a;else if(a===`(`)n+=1;else if(a===`)`){if(n===0)return!0;--n}else if(n===0&&(a===`;`||a===`!`))return!0}return t!==void 0||n!==0||r},KO=e=>{let t=new Map;for(let n of Object.keys(e)){if(zO.has(n))throw Error(`[foldkit] h.Style property ${JSON.stringify(n)} is a Snabbdom lifecycle control rather than a CSS property. Foldkit h.Style accepts only declarations applied while the element exists.`);if(n===`cssText`||(n.startsWith(`--`)?!BO.test(n):!VO.test(n)))throw Error(`[foldkit] h.Style property ${JSON.stringify(n)} cannot be represented as one inline CSS declaration. Use a CSS property name without declaration delimiters.`);let r=HO(n);if(!n.startsWith(`--`)&&!wO.has(r)&&!WO.has(n))throw Error(`[foldkit] h.Style property ${JSON.stringify(n)} is not a CSSStyleDeclaration property supported by Foldkit. Use a known camel-case or declaration name, or a custom property beginning --.`);let i=UO(n),a=t.get(i);if(a!==void 0)throw Error(`[foldkit] h.Style properties ${JSON.stringify(a)} and ${JSON.stringify(n)} both name the ${JSON.stringify(i)} CSS declaration. Keep one spelling so the server, fresh client, and hydration have one owner for it.`);t.set(i,n);let o=e[n];if(typeof o!=`string`)throw Error(`[foldkit] h.Style value for ${JSON.stringify(n)} must be a string. Browser CSSOM assignment coerces other values while server serialization cannot preserve the same authored declaration.`);if(GO(o))throw Error(`[foldkit] h.Style value for ${JSON.stringify(n)} contains a unsafe CSS declaration syntax. Assigning one DOM style property rejects that value, while serializing it into a style attribute could activate additional or !important declarations. Keep the value to one declaration.`)}},qO=e=>UO(e),JO=e=>(KO(e),Object.fromEntries(Object.entries(e).map(([e,t])=>[UO(e),String(t)]))),YO=(e,t)=>{if(e===void 0)return;let n;for(let r of Object.keys(e))MO(r)===t&&(n=e[r]);return n},XO=Symbol(`foldkit/trusted-inner-html`),ZO=Symbol(`foldkit/client-only-properties`),QO=e=>e,$O=(e,t)=>{let n=QO(e);n[XO]=t,n[ZO]?.delete(`innerHTML`)},ek=(e,t)=>{let n=QO(e);(n[ZO]??=new Set).add(t),t===`innerHTML`&&Reflect.deleteProperty(n,XO)},tk=(e,t)=>{QO(e)[ZO]?.delete(t)},nk=e=>{if(e===void 0)return!1;let t=QO(e),n=t.innerHTML;return typeof n==`string`&&t[XO]===n},rk=(e,t)=>e!==void 0&&QO(e)[ZO]?.has(t)===!0,ik=e=>{let t=e.indexOf(`#`),n=e.indexOf(`.`),r=t>0?t:e.length,i=n>0?n:e.length;return e.slice(0,Math.min(r,i))},ak=e=>e.namespaceURI===null||e.namespaceURI===`http://www.w3.org/1999/xhtml`?e.localName:void 0,ok=(e,t,n)=>{n&&!e.hasAttribute(t)?e.setAttribute(t,``):!n&&e.hasAttribute(t)&&e.removeAttribute(t)},sk=(e,t,n)=>{let r=ak(e);if(t===`value`&&(r===`input`||r===`textarea`||r===`output`)){let t=String(n);Reflect.get(e,`defaultValue`)!==t&&Reflect.set(e,`defaultValue`,t),r===`input`&&e.getAttribute(`value`)!==t&&e.setAttribute(`value`,t);return}if(t===`checked`&&r===`input`){let t=!!n;Reflect.get(e,`defaultChecked`)!==t&&Reflect.set(e,`defaultChecked`,t),ok(e,`checked`,t);return}if(t===`selected`&&r===`option`){let t=!!n;Reflect.get(e,`defaultSelected`)!==t&&Reflect.set(e,`defaultSelected`,t),ok(e,`selected`,t);return}if(t===`muted`&&(r===`audio`||r===`video`)){let t=!!n;Reflect.get(e,`defaultMuted`)!==t&&Reflect.set(e,`defaultMuted`,t),ok(e,`muted`,t);return}if(t===`value`&&r===`select`){Reflect.set(e,`value`,n);for(let t of e.querySelectorAll(`option`))t.defaultSelected!==t.selected&&(t.defaultSelected=t.selected),ok(t,`selected`,t.selected)}},ck=(e,t)=>{let n=ak(e);if(t===`value`&&(n===`input`||n===`textarea`||n===`output`)){Reflect.set(e,`defaultValue`,``),n===`input`?(e.removeAttribute(`value`),Reflect.set(e,`value`,``)):n===`output`&&Reflect.set(e,`value`,``);return}if(t===`checked`&&n===`input`){Reflect.set(e,`defaultChecked`,!1),e.removeAttribute(`checked`),Reflect.set(e,`checked`,!1);return}if(t===`selected`&&n===`option`){Reflect.set(e,`defaultSelected`,!1),e.removeAttribute(`selected`),Reflect.set(e,`selected`,!1);return}if(t===`muted`&&(n===`audio`||n===`video`)){Reflect.set(e,`defaultMuted`,!1),e.removeAttribute(`muted`),Reflect.set(e,`muted`,!1);return}if(t===`value`&&n===`select`)for(let t of e.querySelectorAll(`option`))t.defaultSelected=!1,t.removeAttribute(`selected`)},lk=e=>{let t=e.data?.props,n=t!==void 0&&Object.hasOwn(t,`selected`),r=rk(t,`selected`),i=YO(e.data?.attrs,`selected`)!==void 0;return{defaultSelected:n&&!r?!!t.selected:i,selected:n?!!t.selected:void 0}},uk=(e,t)=>{if(e.sel!==void 0&&ik(e.sel).toLowerCase()===`option`){t.push(lk(e));return}for(let n of e.children??[])typeof n!=`string`&&uk(n,t)},dk=(e,t)=>{let n=t.data?.props!==void 0&&Object.hasOwn(t.data.props,`innerHTML`),r=[];if(!n){uk(t,r);let n=r.values();for(let t of Array.from(e.options)){let e=n.next().value?.defaultSelected??!1;t.defaultSelected!==e&&(t.defaultSelected=e),ok(t,`selected`,e)}}let i=e.cloneNode(!0);if(!(i instanceof HTMLSelectElement))return;for(let t=0;t<e.options.length;t+=1){let n=e.options.item(t),r=i.options.item(t);n!==null&&r!==null&&(n.selected=r.selected)}let a=r.values();for(let t of Array.from(e.options)){let e=a.next().value?.selected;e!==void 0&&(t.selected=e)}},fk=(e,t)=>{if(e instanceof HTMLTextAreaElement){e.value=e.defaultValue;return}if(e instanceof HTMLOutputElement){e.defaultValue=e.textContent??``;return}e instanceof HTMLSelectElement&&dk(e,t)},pk=(e,t)=>{let n=ak(e);if(t===`value`&&n===`input`){let t=Reflect.get(e,`defaultValue`);Reflect.set(e,`value`,Reflect.get(e,`type`)===`file`?``:t);return}if(t===`checked`&&n===`input`){Reflect.set(e,`checked`,Reflect.get(e,`defaultChecked`));return}if(t===`selected`&&n===`option`){Reflect.set(e,`selected`,Reflect.get(e,`defaultSelected`));return}if(t===`muted`&&(n===`audio`||n===`video`)){Reflect.set(e,`muted`,Reflect.get(e,`defaultMuted`));return}},mk=class extends Nr()(`@foldkit/MountTracker`){},hk=qS([`Live`,`Paused`]),gk=class extends Nr()(`@foldkit/MountRuntime`){},_k=Symbol.for(`foldkit/MountDefinition`),vk=(e,t)=>{Object.defineProperty(e,"name",{value:t,configurable:!0}),Object.defineProperty(e,_k,{value:_k})},yk=NE(bE(hk.make(`Live`)),DE),bk=e=>(t,n)=>vE(r=>O(function*(){return Bw(r,yield*e(t,n)),yield*Op}));function xk(e,t){if(le(t.args)){let n=n=>({name:e,args:n,f:bk((e,r)=>t.execute({...n,element:e,viewStateChanges:r}))});return vk(n,e),n}{let n=()=>({name:e,f:bk((e,n)=>t.execute({element:e,viewStateChanges:n}))});return vk(n,e),n}}o(2,(e,t)=>({...e,f:(n,r)=>e.f(n,r).pipe(kE(t))}));var Sk=Symbol(`foldkit/vnode-data-mask`),Ck={Attrs:1,Class:2,Dataset:4,On:8,Props:16,Style:32,OnUnmount:64};function wk(e,t,n,r,i){return{sel:e,data:t,children:n,text:r,elm:i,key:t===void 0?void 0:t.key}}var Tk=`http://www.w3.org/1999/xlink`,Ek=`http://www.w3.org/2000/xmlns/`,Dk=`http://www.w3.org/XML/1998/namespace`,Ok=`http://www.w3.org/1999/xhtml`,kk={"xlink:actuate":Tk,"xlink:arcrole":Tk,"xlink:href":Tk,"xlink:role":Tk,"xlink:show":Tk,"xlink:title":Tk,"xlink:type":Tk,"xml:base":Dk,"xml:lang":Dk,"xml:space":Dk,xmlns:Ek,"xmlns:xlink":Ek},Ak=(e,t)=>{if(e!==null&&e!==Ok)return kk[t]},jk=(e,t)=>{let n=new Map;for(let r of Object.keys(e))n.set(PO(t,r),e[r]);return n},Mk=(e,t,n)=>{let r=Ak(e.namespaceURI,t);if(n===!0)r===void 0?e.setAttribute(t,``):e.setAttributeNS(r,t,``);else if(n===!1){if(r===void 0)e.removeAttribute(t);else{let n=t.indexOf(`:`),i=n===-1?t:t.slice(n+1);e.removeAttributeNS(r,i)}}else r===void 0?e.setAttribute(t,n):e.setAttributeNS(r,t,n)};function Nk(e,t){let n=t.elm,r=e.data.attrs,i=t.data.attrs;if(!r&&!i||r===i)return;r||={},i||={};let a=jk(r,n.namespaceURI),o=jk(i,n.namespaceURI);for(let[e,t]of o)a.get(e)!==t&&Mk(n,e,t);for(let e of a.keys())o.has(e)||Mk(n,e,!1)}var Pk={dataMask:Ck.Attrs,create:Nk,update:Nk},Fk={_tag:`Absent`},Ik=/[\t\n\f\r ]+/,Lk=(e,t)=>{let n=e.data.attrs;if(n===void 0)return Fk;let r=Fk;for(let e of Object.keys(n))PO(t,e)===`class`&&(r={_tag:`Present`,value:n[e]});return r},Rk=(e,t)=>e._tag===`Absent`?t._tag===`Absent`:t._tag===`Present`&&e.value===t.value,zk=e=>{let t=new Set;if(e._tag===`Absent`||typeof e.value==`boolean`)return t;for(let n of String(e.value).split(Ik))n!==``&&t.add(n);return t};function Bk(e,t){let n,r,i=t.elm,a=e.data.class,o=t.data.class,s=e.data.attrs,c=t.data.attrs;if(!a&&!o||a===o&&s===c)return;let l=Lk(e,i.namespaceURI),u=Lk(t,i.namespaceURI);if(a===o&&Rk(l,u))return;if(a||={},o||={},a===o){for(r in o)o[r]&&!i.classList.contains(r)&&i.classList.add(r);return}let d=zk(u);for(r in a)a[r]&&o[r]!==!0&&!d.has(r)&&i.classList.remove(r);for(r in o)n=o[r],n&&!i.classList.contains(r)?i.classList.add(r):n!==a[r]&&!d.has(r)&&i.classList.remove(r)}var Vk={dataMask:Ck.Class,create:Bk,update:Bk},Hk=/[A-Z]/g;function Uk(e,t){let n=t.elm,r=e.data.dataset,i=t.data.dataset,a;if(!r&&!i||r===i)return;r||={},i||={};let o=n.dataset;for(a in r)a in i||(o?a in o&&delete o[a]:n.removeAttribute(`data-`+a.replace(Hk,`-$&`).toLowerCase()));for(a in i)r[a]!==i[a]&&(o?o[a]=i[a]:n.setAttribute(`data-`+a.replace(Hk,`-$&`).toLowerCase(),i[a]))}var Wk={dataMask:Ck.Dataset,create:Uk,update:Uk};function Gk(e,t,n){if(typeof e==`function`)e.call(t,n,t);else if(typeof e==`object`)for(let r=0;r<e.length;r++)Gk(e[r],t,n)}function Kk(e,t){let n=e.type,r=t.data.on;r&&r[n]&&Gk(r[n],t,e)}function qk(){return function e(t){Kk(t,e.vnode)}}function Jk(e,t){let n=e.data.on,r=e.listener,i=e.elm,a=t&&t.data.on,o=t&&t.elm,s;if(n===a){a&&r&&t&&(t.listener=r,r.vnode=t);return}if(n&&r){if(a)for(s in n)a[s]||i.removeEventListener(s,r,!1);else for(s in n)i.removeEventListener(s,r,!1)}if(a){let r=t.listener=e.listener||qk();if(r.vnode=t,n)for(s in a)n[s]||o.addEventListener(s,r,!1);else for(s in a)o.addEventListener(s,r,!1)}}var Yk={dataMask:Ck.On,create:Jk,update:Jk,destroy:Jk},Xk=Array.isArray;function Zk(e){return typeof e==`string`||typeof e==`number`||e instanceof String||e instanceof Number}var Qk=`http://www.w3.org/2000/svg`,$k=`http://www.w3.org/1998/Math/MathML`,eA=new Set([`foreignObject`,`desc`,`title`]),tA=new Set([`mi`,`mo`,`mn`,`ms`,`mtext`]),nA=new Set([`mglyph`,`malignmark`]),rA=new Set([`text/html`,`application/xhtml+xml`]),iA=(e,t,n,r,i)=>{if(e.ns=r,(n===void 0||!i.has(n))&&t!==void 0)for(let e=0;e<t.length;++e){let n=t[e];if(typeof n==`string`)continue;let a=n.data;a!==void 0&&iA(a,n.children,n.sel,r,i)}};function aA(e,t,n){iA(e,t,n,Qk,eA)}var oA=e=>{let t=e?.attrs;if(t==null)return!1;for(let e of Object.keys(t))if(e.toLowerCase()===`encoding`){let n=t[e];return typeof n==`string`&&rA.has(n.toLowerCase())}return!1},sA=(e,t,n)=>{if(e.ns=$k,t===void 0)return;let r=n===void 0?void 0:ik(n);if(r===`annotation-xml`&&oA(e))return;let i=r!==void 0&&tA.has(r);for(let e=0;e<t.length;++e){let n=t[e];if(typeof n==`string`)continue;let r=n.data;if(r!==void 0){if(i){let e=n.sel===void 0?void 0:ik(n.sel);if(e===void 0||!nA.has(e))continue}sA(r,n.children,n.sel)}}};function cA(e,t,n){sA(e,t,n)}function lA(e,t,n){let r={},i,a,o;if(n===void 0?t!=null&&(Xk(t)?i=t:Zk(t)?a=t.toString():t&&t.sel?i=[t]:r=t):(t!==null&&(r=t),Xk(n)?i=n:Zk(n)?a=n.toString():n&&n.sel&&(i=[n])),i!==void 0)for(o=0;o<i.length;++o)Zk(i[o])&&(i[o]=wk(void 0,void 0,void 0,i[o],void 0));return e.startsWith(`svg`)&&(e.length===3||e[3]===`.`||e[3]===`#`)?aA(r,i,e):e.startsWith(`math`)&&(e.length===4||e[4]===`.`||e[4]===`#`)&&cA(r,i,e),wk(e,r,i,a,void 0)}function uA(e,t){return document.createElement(e,t)}function dA(e,t,n){return document.createElementNS(e,t,n)}function fA(){return DA(document.createDocumentFragment())}function pA(e){return document.createTextNode(e)}function mA(e){return document.createComment(e)}function hA(e,t,n){if(EA(e)){let t=e;for(;t&&EA(t);)t=DA(t).parent;e=t??e}EA(t)&&(t=DA(t,e)),n&&EA(n)&&(n=DA(n).firstChildNode),e.insertBefore(t,n)}function gA(e,t){e.removeChild(t)}function _A(e,t){EA(t)&&(t=DA(t,e)),e.appendChild(t)}function vA(e){if(EA(e)){for(;e&&EA(e);)e=DA(e).parent;return e??null}return e.parentNode}function yA(e){if(EA(e)){let t=DA(e),n=vA(t);if(n&&t.lastChildNode){let e=Array.from(n.childNodes);return e[e.indexOf(t.lastChildNode)+1]??null}return null}return e.nextSibling}function bA(e){return e.tagName}function xA(e,t){e.textContent=t}function SA(e){return e.textContent}function CA(e){return e.nodeType===1}function wA(e){return e.nodeType===3}function TA(e){return e.nodeType===8}function EA(e){return e.nodeType===11}function DA(e,t){let n=e;return n.parent??=t??null,n.firstChildNode??=e.firstChild,n.lastChildNode??=e.lastChild,n}var OA={createElement:uA,createElementNS:dA,createTextNode:pA,createDocumentFragment:fA,createComment:mA,insertBefore:hA,removeChild:gA,appendChild:_A,parentNode:vA,nextSibling:yA,tagName:bA,setTextContent:xA,getTextContent:SA,isElement:CA,isText:wA,isComment:TA,isDocumentFragment:EA},kA=wk(``,{},[],void 0,void 0);function AA(e,t){return e===t?!0:e.sel!==t.sel||e.key!==t.key||e.identity!==t.identity||e.data?.is!==t.data?.is?!1:e.sel!==void 0||typeof e.text==typeof t.text}function jA(){throw Error(`The document fragment is not supported on this platform.`)}function MA(e,t){return e.isElement(t)}function NA(e,t){return e.isDocumentFragment?.(t)??!1}function PA(e,t,n){let r=new Map;for(let i=t;i<=n;++i){let t=e[i]?.key;t!==void 0&&r.set(t,i)}return r}var FA=[`create`,`update`,`remove`,`destroy`,`pre`,`post`],IA=void 0,LA=()=>IA??!1;function RA(e,t,n){let r={create:[],update:[],remove:[],destroy:[],pre:[],post:[]},i={create:[],update:[],destroy:[]},a=t===void 0?OA:t,o=!1;for(let t of FA)for(let n of e){let e=n[t];e!==void 0&&(r[t].push(e),(t===`create`||t===`update`||t===`destroy`)&&i[t].push(n.dataMask))}let s=i.create.every(e=>e!==void 0),c=i.update.every(e=>e!==void 0),l=i.destroy.every(e=>e!==void 0);function u(e){let t=e.id?`#`+e.id:``,n=e.getAttribute(`class`),r=n?`.`+n.split(` `).join(`.`):``;return wk(a.tagName(e).toLowerCase()+t+r,{},[],void 0,e)}function d(e){return wk(void 0,{},[],void 0,e)}function f(e,t){return function(){if(--t===0){let t=a.parentNode(e);t!==null&&a.removeChild(t,e)}}}function p(e,t){let o=e.data,c=o?.hook;c?.init?.(e);let l=e.children,u=e.sel;if(u===`!`)e.text??=``,e.elm=a.createComment(e.text);else if(u===``)e.elm=a.createTextNode(e.text);else if(u!==void 0){let n=u.indexOf(`#`),d=u.indexOf(`.`,n),f=n>0?n:u.length,m=d>0?d:u.length,h=n!==-1||d!==-1?u.slice(0,Math.min(f,m)):u,g=o?.ns,_=g===void 0?a.createElement(h,o):a.createElementNS(g,h,o);e.elm=_,f<m&&_.setAttribute(`id`,u.slice(f+1,m)),d>0&&_.setAttribute(`class`,u.slice(m+1).replace(/\./g,` `));let v=o?.[Sk];if(!s||v===void 0||v!==0)for(let t=0;t<r.create.length;++t){let n=i.create[t];(n===void 0||v===void 0||(v&n)!==0)&&r.create[t](kA,e)}if(Zk(e.text)&&(!Xk(l)||l.length===0)&&a.appendChild(_,a.createTextNode(e.text)),Xk(l))for(let e=0;e<l.length;++e){let n=l[e];n!=null&&a.appendChild(_,p(n,t))}c!==void 0&&(c.create?.(kA,e),c.insert!==void 0&&t.push(e))}else if(n?.experimental?.fragments&&e.children){e.elm=(a.createDocumentFragment??jA)();let n=o?.[Sk];if(!s||n===void 0||n!==0)for(let t=0;t<r.create.length;++t){let a=i.create[t];(a===void 0||n===void 0||(n&a)!==0)&&r.create[t](kA,e)}for(let n=0;n<e.children.length;++n){let r=e.children[n];r!=null&&a.appendChild(e.elm,p(r,t))}}else e.elm=a.createTextNode(e.text);return e.elm}function m(e,t,n,r,i,o){for(;r<=i;++r){let i=n[r];i!=null&&a.insertBefore(e,p(i,o),t)}}function h(e){let t=e.data;if(t!==void 0){t?.hook?.destroy?.(e);let n=t[Sk];if(!l||n===void 0||n!==0)for(let t=0;t<r.destroy.length;++t){let a=i.destroy[t];(a===void 0||n===void 0||(n&a)!==0)&&r.destroy[t](e)}if(e.children!==void 0)for(let t=0;t<e.children.length;++t){let n=e.children[t];n!=null&&typeof n!=`string`&&h(n)}}}function g(e,t,n,i){for(;n<=i;++n){let i,o=t[n];if(o!=null){if(o.sel!==void 0){h(o),i=r.remove.length+1;let e=f(o.elm,i);for(let t=0;t<r.remove.length;++t)r.remove[t](o,e);let t=o.data?.hook?.remove;t===void 0?e():t(o,e)}else o.children?(h(o),g(e,o.children,0,o.children.length-1)):a.removeChild(e,o.elm)}}}function _(e,t,n,r){if(!LA()||o)return;let i=new Set;for(let s=t;s<=n;++s){let t=e[s]?.key;if(t!==void 0){if(i.has(t)){o=!0;let e=a.isElement(r)?a.tagName(r).toLowerCase():String(r.nodeName).toLowerCase();console.warn(`[foldkit] Duplicate key "${String(t)}" among children of <${e}>. Keys must be unique among siblings; duplicates make sibling matching ambiguous and can patch the wrong element.`);return}i.add(t)}}}function v(e,t,n,r){if(t.length===0&&n.length===0)return;_(n,0,n.length-1,e);let i=0,o=0,s=t.length-1,c=n.length-1;for(;i<=s&&o<=c&&t[i]===n[o];)i+=1,o+=1;for(;i<=s&&o<=c&&t[s]===n[c];)--s,--c;let l=t[i],u=t[s],d=n[o],f=n[c],h,v,ee,te;for(;i<=s&&o<=c;)if(l==null)l=t[++i];else if(u==null)u=t[--s];else if(d==null)d=n[++o];else if(f==null)f=n[--c];else if(AA(l,d))y(l,d,r),l=t[++i],d=n[++o];else if(AA(u,f))y(u,f,r),u=t[--s],f=n[--c];else if(AA(l,f))y(l,f,r),a.insertBefore(e,l.elm,a.nextSibling(u.elm)),l=t[++i],f=n[--c];else if(AA(u,d))y(u,d,r),a.insertBefore(e,u.elm,l.elm),u=t[--s],d=n[++o];else{h===void 0&&(h=PA(t,i,s),_(t,i,s,e));let m=d.key;v=m===void 0?void 0:h.get(m),v===void 0?(a.insertBefore(e,p(d,r),l.elm),d=n[++o]):f.key===void 0||h.get(f.key)===void 0?(a.insertBefore(e,p(f,r),a.nextSibling(u.elm)),f=n[--c]):(ee=t[v],AA(ee,d)?(y(ee,d,r),t[v]=void 0,a.insertBefore(e,ee.elm,l.elm)):a.insertBefore(e,p(d,r),l.elm),d=n[++o])}o<=c&&(te=n[c+1]==null?null:n[c+1].elm,m(e,te,n,o,c,r)),i<=s&&g(e,t,i,s)}function y(e,t,n){if(e===t)return;let o=t.data?.hook;o?.prepatch?.(e,t);let s=t.elm=e.elm;if(t.data!==void 0||t.text!==void 0&&t.text!==e.text){t.data??={},e.data??={};let n=e.data[Sk],a=t.data[Sk];if(!c||n===void 0||a===void 0||(n|a)!==0)for(let o=0;o<r.update.length;++o){let s=i.update[o];(s===void 0||n===void 0||a===void 0||((n|a)&s)!==0)&&r.update[o](e,t)}t.data?.hook?.update?.(e,t)}let l=e.children,u=t.children;t.text===void 0?l!==void 0&&u!==void 0?l!==u&&v(s,l,u,n):u===void 0?l===void 0?e.text!==void 0&&a.setTextContent(s,``):g(s,l,0,l.length-1):(e.text!==void 0&&a.setTextContent(s,``),m(s,null,u,0,u.length-1,n)):e.text!==t.text&&(l!==void 0&&g(s,l,0,l.length-1),a.setTextContent(s,t.text)),o?.postpatch?.(e,t)}return function(e,t,n){let i=[];o=!1;for(let e=0;e<r.pre.length;++e)r.pre[e]();if(MA(a,e)?e=u(e):NA(a,e)&&(e=d(e)),AA(e,t))y(e,t,i);else{let n=e.elm,r=a.parentNode(n);p(t,i),r!==null&&(a.insertBefore(r,t.elm,a.nextSibling(n)),g(r,[e],0,0))}n?.(t);for(let e=0;e<i.length;++e)i[e].data.hook.insert(i[e]);for(let e=0;e<r.post.length;++e)r.post[e]();return t}}var zA=typeof window<`u`&&typeof window.requestAnimationFrame==`function`?window.requestAnimationFrame.bind(window):setTimeout,BA=function(e){zA(function(){zA(e)})},VA=!1;function HA(e,t,n){e.setProperty(qO(t),String(n))}function UA(e,t){e.removeProperty(qO(t))}function WA(e,t,n){BA(function(){HA(e,t,n)})}function GA(e,t){let n=t.elm,r=t.data.style;if(!r)return;for(let e of Object.keys(r))e!==`delayed`&&e!==`destroy`&&e!==`remove`&&HA(n.style,e,r[e]);let i=Object.hasOwn(r,`delayed`)?r.delayed:void 0;if(typeof i==`object`&&i)for(let e of Object.keys(i))WA(n.style,e,i[e])}function KA(e,t){let n,r,i=t.elm,a=e.data.style,o=t.data.style;if(!a&&!o||a===o||o===void 0&&YO(t.data.attrs,`style`)!==void 0)return;a||={},o||={};let s=Object.hasOwn(a,`delayed`);for(r of Object.keys(a))r!==`delayed`&&r!==`destroy`&&r!==`remove`&&!Object.hasOwn(o,r)&&UA(i.style,r);for(r of Object.keys(o))if(n=o[r],r===`delayed`&&typeof o.delayed==`object`&&o.delayed!==null)for(let e of Object.keys(o.delayed))n=o.delayed[e],(!s||n!==a.delayed[e])&&WA(i.style,e,n);else r!==`destroy`&&r!==`remove`&&n!==a[r]&&HA(i.style,r,n)}function qA(e){let t,n,r=e.elm,i=e.data.style;if(i&&Object.hasOwn(i,`destroy`)&&(t=i.destroy))for(n of Object.keys(t))HA(r.style,n,t[n])}function JA(e,t){let n=e.data.style;if(!n||!Object.hasOwn(n,`remove`)||!n.remove){t();return}VA||=(e.elm.offsetLeft,!0);let r,i=e.elm,a=0,o=n.remove,s=0,c=[];for(r of Object.keys(o)){let e=qO(r);c.push(e),HA(i.style,r,o[r])}let l=getComputedStyle(i)[`transition-property`].split(`, `);for(;a<l.length;++a)c.indexOf(l[a])!==-1&&s++;i.addEventListener(`transitionend`,function(e){e.target===i&&--s,s===0&&t()})}function YA(){VA=!1}var XA={dataMask:Ck.Style,pre:YA,create:GA,update:KA,destroy:qA,remove:JA};function ZA(e){return e.slice(5).replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}function QA(e,t){let n=t===void 0?OA:t,r;if(n.isElement(e)){let r=e.id?`#`+e.id:``,i=e.getAttribute(`class`)?.match(/[^\t\r\n\f ]+/g),a=i?`.`+i.join(`.`):``,o=n.tagName(e).toLowerCase()+r+a,s={},c={},l={},u=[],d,f,p,m=e.attributes,h=e.childNodes;for(f=0,p=m.length;f<p;f++)d=m[f].name,d.startsWith(`data-`)?c[ZA(d)]=m[f].value||``:d!==`id`&&d!==`class`&&(s[d]=m[f].value);for(f=0,p=h.length;f<p;f++)u.push(QA(h[f],t));return Object.keys(s).length>0&&(l.attrs=s),Object.keys(c).length>0&&(l.dataset=c),o.startsWith(`svg`)&&(o.length===3||o[3]===`.`||o[3]===`#`)?aA(l,u,o):o.startsWith(`math`)&&(o.length===4||o[4]===`.`||o[4]===`#`)&&cA(l,u,o),wk(o,l,u,void 0,e)}return n.isText(e)?(r=n.getTextContent(e),wk(void 0,void 0,void 0,r,e)):n.isComment(e)?(r=n.getTextContent(e),wk(`!`,{},[],r,e)):wk(``,{},[],void 0,e)}var $A=`foldkitOnUnmount`,ej=!1,tj=new Map,nj=e=>e.data?.[$A],rj=(e,t)=>{e[$A]=t,e[Sk]=(e[Sk]??0)|Ck.OnUnmount},ij=()=>{tj.clear(),ej=!0},aj=()=>{ej=!1,tj.clear()},oj=(e,t)=>{let n=ej?`Replay`:`Live`,r=e[$A];rj(e,{dispatches:r?.owner===n?[...r.dispatches,t]:[t],owner:n})},sj=()=>{if(!ej)return;let e=globalThis.Array.from(tj.values());tj.clear();for(let t of e)for(let e of t)e()},cj={dataMask:Ck.OnUnmount,update:(e,t)=>{let n=nj(e);if(!ej||n?.owner!==`Live`)return;let r=t.data===void 0?{}:{...t.data};t.data=r,rj(r,n)},destroy:e=>{let t=nj(e);if(t?.owner===`Live`){if(ej)e.elm!==void 0&&tj.set(e.elm,t.dispatches);else for(let e of t.dispatches)e()}}},lj=`|`,uj=(e,t)=>{if(t.includes(lj))throw Error(`Foldkit: h.submodel slotId cannot contain the boundary separator "${lj}". Got ${JSON.stringify(t)}.`);return e===``?t:`${e}${lj}${t}`},dj=e=>e===``?[]:e.split(lj),fj=()=>({wraps:new Map,boundaryDispatches:new WeakMap,mountWraps:new WeakMap,mountWrapOwners:new Map,seenThisRender:new Map,lazyTrackingStack:[],boundaryWrapTransactionLog:[],activeBoundaryWrapTransaction:void 0,dedupeSeen:new Set}),pj=()=>{let e=(Error().stack??``).split(`
98
- `);for(let t of e){let e=t.trim(),n=/[/\\]html[/\\]lazy\.[cm]?[jt]s/.test(e);if(!(e.length===0||e.startsWith(`Error`)||e.includes(`captureCallSite`)||e.includes(`assertBoundaryNotSeen`)||e.includes(`registerBoundaryWrap`)||e.includes(`restoreBoundaryWrapsForLazyHit`)||n||e.includes(`at submodel`)))return e}return`(call site unavailable)`},mj=(e,t)=>{let n=e.seenThisRender.get(t);if(n!==void 0){let e=t.includes(lj)?t.slice(t.lastIndexOf(lj)+1):t,r=pj();throw Error(`Foldkit: duplicate h.submodel slotId "${e}" at boundary "${t}".\n First registration: ${n}\n Second registration: ${r}\nEach h.submodel call inside the same parent boundary must use a unique \`slotId\`. The slotId is DOM-slot identity, not model identity. If the same model is rendered in two locations (desktop + mobile, master + detail), each slot needs its own id (e.g. "desktop-foo", "mobile-foo"). For lists, use a stable per-item identifier.`)}},hj=(e,t,n,r)=>{mj(e,t),gj(e,t,n,r,pj())},gj=(e,t,n,r,i)=>{let a=e.wraps.get(t),o=e.mountWraps.get(r),s=o?.get(t);e.activeBoundaryWrapTransaction!==void 0&&e.boundaryWrapTransactionLog.push({_tag:`Registration`,boundaryId:t,descriptor:n,mountOuterDispatch:r,previousDescriptor:a,previousMountDescriptor:s}),e.wraps.set(t,n);let c=o;c===void 0&&(c=new Map,e.mountWraps.set(r,c)),c.set(t,n);let l=e.mountWrapOwners.get(t);l===void 0&&(l=new Set,e.mountWrapOwners.set(t,l)),l.add(r),e.seenThisRender.set(t,i);for(let a of e.lazyTrackingStack)a.set(t,{callSite:i,descriptor:n,mountOuterDispatch:r})},_j=(e,t,n,r)=>{if(e.wraps.get(t)===n){e.wraps.delete(t);let n=e.mountWrapOwners.get(t);if(n!==void 0){for(let r of n)e.mountWraps.get(r)?.delete(t);e.mountWrapOwners.delete(t)}return}let i=e.mountWraps.get(r);if(i?.get(t)===n){i.delete(t);let n=e.mountWrapOwners.get(t);n?.delete(r),n?.size===0&&e.mountWrapOwners.delete(t)}},vj=(e,t,n,r,i,a)=>{e.wraps.get(t)===n&&(i===void 0?e.wraps.delete(t):e.wraps.set(t,i));let o=e.mountWraps.get(r);if(o?.get(t)===n){if(a===void 0){o.delete(t);let n=e.mountWrapOwners.get(t);n?.delete(r),n?.size===0&&e.mountWrapOwners.delete(t)}else o.set(t,a)}},yj=e=>{let t={parent:e.activeBoundaryWrapTransaction,startIndex:e.boundaryWrapTransactionLog.length};return e.activeBoundaryWrapTransaction=t,t},bj=(e,t)=>{if(e.activeBoundaryWrapTransaction!==t)throw Error(`Foldkit: boundary wrap transactions must commit in order.`);e.activeBoundaryWrapTransaction=t.parent,t.parent===void 0&&(e.boundaryWrapTransactionLog.length=0)},xj=(e,t)=>{if(e.activeBoundaryWrapTransaction!==t)throw Error(`Foldkit: boundary wrap transactions must roll back in order.`);let n=e.boundaryWrapTransactionLog.splice(t.startIndex);n.reverse();for(let t of n)t._tag===`Registration`?vj(e,t.boundaryId,t.descriptor,t.mountOuterDispatch,t.previousDescriptor,t.previousMountDescriptor):t.rollback();e.activeBoundaryWrapTransaction=t.parent},Sj=e=>{try{if(typeof e==`object`&&e&&`_tag`in e){let t=Reflect.get(e,`_tag`);if(typeof t==`string`)return`\`${t}\``}}catch{return`the Message`}return`the Message`},Cj=(e,t,n)=>{try{return e.toParentMessage(n)}catch(e){throw Error(`Foldkit: a Message dispatched from inside Submodel boundary "${t}" could not be lifted into its parent's Message type. Its \`toParentMessage\` rejected ${Sj(n)}, which means that Message is not part of the Submodel's own Message union. The usual cause is a shared view helper building an app-level Message inside a Submodel's view: a handler's dispatcher is chosen by where the element is built, not by the Message it carries, so the boundary tried to wrap a Message the Submodel does not own. Either move the Message into the Submodel's union, or have the parent supply the element through a \`viewInputs\` slot callback so it is built in the parent's boundary.`,{cause:e})}},wj=(e,t,n)=>Error(e===`Dispatch`?`Foldkit: dispatchAcrossBoundary missing wrap for ancestor "${t}" of boundary "${n}". The Submodel's wrap was absent from the registry at dispatch time. A known cause: a slot callback (an h.submodel \`viewInputs\` function value) was invoked from a deferred context (setTimeout, Promise.then, a stored callback) after the parent Submodel unmounted. Slot callbacks must be invoked synchronously inside the render that created them. It can also mean foldkit was loaded as more than one instance (a bundler split foldkit and @foldkit/ui), so the wrap was registered in one copy and read from another.`:e===`OnUnmount`?`Foldkit: resolveBoundaryDispatchThunk missing wrap for ancestor "${t}" of boundary "${n}" while resolving an OnUnmount message. The Submodel's wrap was absent from the registry at resolve time, which should not happen during a live render.`:e===`Scene`?`Foldkit: boundaryMappers missing wrap for ancestor "${t}" of boundary "${n}" while snapshotting an OnMount lift. The Submodel's wrap was absent from the registry during render, which should not happen for a live boundary.`:`Foldkit: Mount dispatch missing wrap for ancestor "${t}" of boundary "${n}". The Submodel's wrap was absent from the Mount's render owner.`),Tj=(e,t,n,r,i)=>{let a=r,o=dj(t);for(let r=o.length;r>0;r--){let s=o.slice(0,r).join(lj),c=e.get(s);if(c===void 0)throw wj(n,s,t);a=i(a,c,s)}return a},Ej=(e,t,n)=>Cj(t,n,e),Dj=(e,t)=>(e.push(t.toParentMessage),e),Oj=(e,t,n,r)=>{t(Tj(e.wraps,n,`Dispatch`,r,Ej))},kj=(e,t,n,r)=>{if(n===``)return()=>t(r);let i=Tj(e.wraps,n,`OnUnmount`,r,Ej);return()=>t(i)},Aj=(e,t)=>Tj(e.wraps,t,`Scene`,[],Dj),jj=(e,t,n)=>{if(n===``)return t;let r=e.boundaryDispatches.get(t);r===void 0&&(r=new Map,e.boundaryDispatches.set(t,r));let i=r.get(n);if(i!==void 0)return i;let a=r=>{Oj(e,t,n,r)};return r.set(n,a),a},Mj=(e,t,n)=>n===``?t:r=>{let i=e.mountWraps.get(t);if(i===void 0)throw Error(`Foldkit: Mount dispatch missing wraps for boundary "${n}". The Mount's render owner has no registered Submodel boundaries.`);t(Tj(i,n,`Mount`,r,Ej))},Nj=e=>{e.seenThisRender.clear(),e.dedupeSeen.clear()},Pj=[],Fj=()=>{let e=Pj[Pj.length-1];if(e===void 0)throw Error(`Foldkit: html element constructors must be called inside a runtime-driven render. The element was built outside a view, or foldkit was loaded as more than one instance (a bundler split foldkit and @foldkit/ui into separate copies).`);return e},Ij=(e,t,n=fj(),r=`Live`)=>{Pj.push({outerDispatch:e,mountOuterDispatch:e,mountRenderOwner:r,runtimeContext:t,boundaryRegistry:n,boundaryId:``})},Lj=e=>{let t=Pj[Pj.length-1];if(t===void 0)throw Error(`Foldkit: pushBoundary called without an active runtime frame`);Pj.push({outerDispatch:t.outerDispatch,mountOuterDispatch:t.mountOuterDispatch,mountRenderOwner:t.mountRenderOwner,runtimeContext:t.runtimeContext,boundaryRegistry:t.boundaryRegistry,boundaryId:e})},Rj=e=>{Pj.push(e)},zj=()=>{if(Pj.length===0)throw Error("Foldkit: clearRuntime called on an empty runtime stack. This means a `pushBoundary` or `setRuntime` was not paired with `clearRuntime` (or vice versa) upstream. Likely a bug in a custom Submodel integration or view-time helper.");Pj.pop()},Bj=()=>{let e=Fj();return jj(e.boundaryRegistry,e.outerDispatch,e.boundaryId)},Vj=()=>{let e=Fj();return t=>kj(e.boundaryRegistry,e.outerDispatch,e.boundaryId,t)},Hj=()=>{let e=Pj[Pj.length-1];return e===void 0?[]:Aj(e.boundaryRegistry,e.boundaryId)},Uj=()=>{let e=Fj();return{owner:e.mountRenderOwner,resolve:()=>Mj(e.boundaryRegistry,e.mountOuterDispatch,e.boundaryId)}},Wj=()=>Fj().runtimeContext,Gj=()=>{let e=Pj[Pj.length-1];if(e===void 0)throw Error(`Foldkit: getCurrentFrame called without an active runtime frame`);return e},Kj=`__childAttribute`,qj=e=>typeof e==`object`&&!!e&&Kj in e,Jj=new WeakMap,Yj=e=>{let t=Jj.get(e);if(t!==void 0)return t;let n={targets:new Set,pendingEmptyCheck:!1};return Jj.set(e,n),n},Xj=(e,t)=>{for(let n of t)(!(n instanceof Node)||!e.contains(n))&&t.delete(n)},Zj=(e,t,n)=>{Xj(t,e.targets);let r=e.targets.size>0||e.pendingEmptyCheck;return e.targets.add(n??t),!r},Qj=(e,t,n)=>(e.targets.delete(n??t),Xj(t,e.targets),e.targets.size>0||e.pendingEmptyCheck?`done`:(e.pendingEmptyCheck=!0,`schedule`)),$j=e=>(e.pendingEmptyCheck=!1,e.targets.size===0),eM=e=>{let t=Jj.get(e);t!==void 0&&(t.targets.clear(),t.pendingEmptyCheck=!1)},tM=e=>{let t=(e.ownerDocument.defaultView?.Element??globalThis.Element).prototype;for(;t!==null;){let e=Object.getOwnPropertyDescriptor(t,`innerHTML`);if(e?.get!==void 0&&e.set!==void 0)return e;t=Object.getPrototypeOf(t)}throw Error(`[foldkit] The browser does not expose Element.innerHTML.`)},nM=e=>{let t=tM(e).get?.call(e);return typeof t==`string`?t:``},rM=(e,t)=>{tM(e).set?.call(e,t)},iM=(e,t,n)=>{if(t===`__proto__`)Object.defineProperty(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0});else{let r=e;r[t]=n}},aM=e=>(e.namespaceURI===null||e.namespaceURI===`http://www.w3.org/1999/xhtml`)&&e.localName.includes(`-`),oM=(e,t,n)=>aM(e)&&OO.has(n)&&!rk(t,n),sM=(e,t,n)=>{let r=AO(t);r!==void 0&&(t===`draggable`?e.setAttribute(r,String(n)):n===!0?e.setAttribute(r,``):n===!1?e.removeAttribute(r):e.setAttribute(r,String(n)))},cM=(e,t,n)=>{t===`__proto__`?Reflect.deleteProperty(e,t):typeof n==`boolean`?iM(e,t,!1):typeof n==`string`?iM(e,t,``):typeof n==`number`&&iM(e,t,0)};function lM(e,t){let n=t.elm,r=e.data?.props,i=t.data?.props;if((r||i)&&r!==i){if(r??={},i??={},n instanceof Element)for(let e of Object.keys(r))if(e===`innerHTML`&&Object.hasOwn(i,e)&&nk(r)!==nk(i)&&(nk(r)?rM(n,``):cM(n,e,r[e])),Object.hasOwn(i,e)&&!rk(r,e)&&rk(i,e)){if(ck(n,e),oM(n,r,e)){let t=AO(e);t!==void 0&&n.removeAttribute(t)}}else Object.hasOwn(i,e)&&rk(r,e)&&!rk(i,e)&&oM(n,i,e)&&cM(n,e,r[e]);for(let e of Object.keys(i)){let t=i[e],a=r[e],o=rk(r,e)!==rk(i,e);(a!==t||o)&&(e!==`value`||n[e]!==t)&&(e===`innerHTML`&&n instanceof Element&&nk(i)?rM(n,String(t)):n instanceof Element&&oM(n,i,e)?sM(n,e,t):iM(n,e,t))}for(let e of Object.keys(r))if(!Object.hasOwn(i,e)){let a=r[e];if(e===`innerHTML`&&n instanceof Element&&nk(r)){rM(n,``);continue}if(n instanceof Element&&oM(n,r,e)){let t=AO(e);t!==void 0&&n.removeAttribute(t);continue}if(n instanceof Element&&e===`value`&&(n.localName===`select`||n.localName===`textarea`||n.localName===`output`)){Object.hasOwn(i,`innerHTML`)||ck(n,e);continue}let o=AO(e);if(o!==void 0&&!rk(r,e)&&n instanceof Element){if(YO(t.data?.attrs,o)!==void 0){pk(n,e);continue}ck(n,e),n.removeAttribute(o);continue}n instanceof Element&&ck(n,e),cM(n,e,a)}}}var uM=RA([Pk,Vk,Wk,Yk,cj,{dataMask:Ck.Props,create:lM,update:lM},XA]),dM=new WeakSet,gee=(e,t)=>{let n;for(let r=0;r<e.length;r++){let i=e[r],a=typeof i==`string`?i:fM(i,t);a!==i&&(n===void 0&&(n=e.slice()),n[r]=a)}return n},fM=(e,t)=>{let n=t.has(e);if(!n&&dM.has(e))return t.add(e),e;let r=n||e.elm!=null?{...e,elm:void 0}:e;if(t.add(e),r.children===void 0)return r;let i=gee(r.children,t);return i===void 0?r:r===e?{...e,children:i}:(r.children=i,r)},pM=(e,t=new Set)=>fM(e,t),_ee=(e,t,n)=>{let r=e.parentNode;if(r===null)return uM(QA(e),t,n);let i=e.ownerDocument.createComment(``);return r.replaceChild(i,e),uM(QA(i),t,n)},mM=(e,t,n,r,i)=>{let a=t===null?lA(`!`):pM(t,r);return pr(e)?_ee(n,a,i):uM(e.value,a,i)},vee=e=>{let t=e.elm,n=uM(e,lA(`!`));return n.elm!==t&&t?.parentNode&&t.parentNode.removeChild(t),n},hM=e=>e,gM=e=>typeof e==`object`&&!!e&&!Array.isArray(e),yee=e=>{for(let t of Object.keys(e)){let n=e[t];_M(n)||(gM(n)||Array.isArray(n))&&vM(n,[t])}},_M=e=>qj(e),vM=(e,t)=>{let n=(e,n)=>{let r=[...t,n];if(typeof e==`function`)throw Error(`Foldkit: h.submodel \`viewInputs\` may only contain functions at the top level. Found a function at \`viewInputs.${r.join(`.`)}\`. Lift it to the top level of \`viewInputs\` so it can be auto-scoped to the parent boundary, or pass the value as primitive data.`);_M(e)||(gM(e)||Array.isArray(e))&&vM(e,r)};if(Array.isArray(e))e.forEach((e,t)=>n(e,`[${t}]`));else if(gM(e))for(let t of Object.keys(e))n(e[t],t)},bee=(e,t)=>{if(!gM(e))return e;yee(e);let n={};for(let r of Object.keys(e)){let i=e[r];n[r]=typeof i==`function`?(...e)=>{Rj(t);try{return i(...e)}finally{zj()}}:i}return n},xee=(e,t,n,r,i)=>{let a=e.data??{},o=a.hook??{},s=o.destroy,c=e=>{_j(t,n,r,i),s!==void 0&&s(e)},l={...e,data:{...a,hook:{...o,destroy:c}}};return dM.has(e)&&dM.add(l),l},See=(e,t)=>{let n=Gj(),r=n.boundaryRegistry,i=uj(n.boundaryId,e.slotId),a={toParentMessage:e.toParentMessage},o=yj(r);try{hj(r,i,a,n.mountOuterDispatch);let s=t,c;Lj(i);try{if(Object.hasOwn(e,`viewInputs`)){let t=bee(e.viewInputs,n),r=e.view;c=r(e.model,t,s)}else{let t=e.view;c=t(e.model,s)}}finally{zj()}if(c===null)return xj(r,o),null;let l=xee(c,r,i,a,n.mountOuterDispatch);return bj(r,o),l}catch(e){throw xj(r,o),e}},yM=Ij,bM=zj,Cee=Symbol.for(`foldkit/html/fileHandler`),xM=(e,t)=>(e[Cee]=t,e),SM=e=>({shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey}),CM=e=>_e(e,`value`)&&b(e.value)?e.value:_e(e,`innerText`)&&b(e.innerText)?e.innerText:_e(e,`textContent`)&&b(e.textContent)?e.textContent:``,wM=e=>e.target===e.currentTarget,wee=e=>e instanceof Element&&e.id===`foldkit-devtools`,TM=e=>e.currentTarget instanceof Element&&e.relatedTarget instanceof Node&&e.currentTarget.contains(e.relatedTarget),Tee=qS([`Allow`,`Prevent`]),Eee=qS([`Bubble`,`Stop`]);M({defaultAction:jS(Tee),propagation:jS(Eee),focusSelector:jS(A)}),qS([`Ltr`,`Rtl`,`Auto`]);var Dee={Ltr:`ltr`,Rtl:`rtl`,Auto:`auto`},Oee=e=>Dee[e],EM=new WeakMap,kee=ij,Aee=aj,jee=sj,Mee=`foldkitMount`,{Key:Nee,Class:Pee,Id:Fee,Title:Iee,Lang:Lee,Dir:Ree,Tabindex:zee,Hidden:Bee,Contenteditable:Vee,Draggable:Hee,Accesskey:Uee,Translate:Wee,Inert:Gee,Popover:Kee,Popovertarget:qee,Popovertargetaction:Jee,OnClick:Yee,OnDoubleClick:Xee,OnMouseDown:Zee,OnMouseUp:Qee,OnMouseEnter:$ee,OnMouseLeave:ete,OnMouseOver:tte,OnMouseOut:nte,OnMouseMove:rte,OnPointerMove:ite,OnPointerLeave:ate,OnPointerDown:ote,OnPointerUp:ste,OnKeyDown:cte,OnKeyDownPreventDefault:lte,OnKeyDownSelf:ute,OnKeyDownSelfPreventDefault:dte,OnKeyDownFocus:fte,OnKeyUp:pte,OnKeyUpPreventDefault:mte,OnKeyPress:hte,OnFocus:gte,OnBlur:_te,OnFocusEnter:vte,OnFocusLeave:yte,OnInput:bte,OnChange:xte,OnBeforeInput:Ste,OnBeforeInputPreventDefault:Cte,OnFileChange:wte,OnSubmit:Tte,OnReset:Ete,OnScroll:Dte,OnWheel:Ote,OnCopy:kte,OnCut:Ate,OnPaste:jte,OnPastePreventDefault:Mte,OnCopyText:Nte,OnCutText:Pte,OnCancel:Fte,OnCancelPreventDefault:Ite,OnToggle:Lte,OnContextMenu:Rte,OnDragStart:zte,OnDrag:Bte,OnDragEnd:Vte,OnDragEnter:Hte,OnDragLeave:Ute,OnDragOver:Wte,AllowDrop:Gte,OnDrop:Kte,OnDropFiles:qte,OnTouchStart:Jte,OnTouchEnd:Yte,OnTouchMove:Xte,OnTouchCancel:Zte,OnAnimationStart:Qte,OnAnimationEnd:$te,OnAnimationIteration:ene,OnTransitionEnd:tne,OnLoad:nne,OnError:rne,OnPlay:ine,OnPause:ane,OnEnded:one,OnTimeUpdate:sne,OnVolumeChange:cne,OnSelect:lne,Value:une,Checked:dne,Selected:fne,Open:pne,Placeholder:mne,Name:hne,Disabled:gne,Readonly:_ne,Required:vne,Autofocus:yne,Spellcheck:bne,Autocorrect:xne,Autocapitalize:Sne,InputMode:Cne,EnterKeyHint:wne,Multiple:Tne,Type:Ene,Accept:Dne,Autocomplete:One,Pattern:kne,Maxlength:Ane,Minlength:jne,Size:Mne,Cols:Nne,Rows:Pne,Max:Fne,Min:Ine,Step:Lne,For:Rne,Href:zne,Src:Bne,Alt:Vne,Target:Hne,Rel:Une,Download:Wne,Action:Gne,Method:Kne,Enctype:qne,Novalidate:Jne,Formaction:Yne,Formmethod:Xne,Formnovalidate:Zne,Formtarget:Qne,Formenctype:$ne,Colspan:ere,Rowspan:tre,Scope:nre,Headers:rre,Span:ire,Start:are,Reversed:ore,CiteAttr:sre,Datetime:cre,Wrap:lre,List:ure,FormAttr:dre,LabelAttr:fre,ContentAttr:pre,Charset:mre,HttpEquiv:hre,Srcset:gre,Sizes:_re,Loading:vre,Decoding:yre,Fetchpriority:bre,Crossorigin:xre,Referrerpolicy:Sre,Integrity:Cre,Hreflang:wre,Ping:Tre,Sandbox:Ere,Allow:Dre,Srcdoc:Ore,Autoplay:kre,Controls:Are,Loop:jre,Muted:Mre,Poster:Nre,Preload:Pre,Playsinline:Fre,High:Ire,Low:Lre,Optimum:Rre,Usemap:zre,Ismap:Bre,Role:Vre,AriaLabel:Hre,AriaLabelledBy:Ure,AriaDescribedBy:Wre,AriaHidden:Gre,AriaExpanded:Kre,AriaSelected:qre,AriaChecked:Jre,AriaDisabled:Yre,AriaRequired:Xre,AriaInvalid:Zre,AriaLive:Qre,AriaControls:$re,AriaCurrent:eie,AriaOrientation:tie,AriaPressed:nie,AriaHasPopup:rie,AriaActiveDescendant:iie,AriaSort:aie,AriaMultiSelectable:oie,AriaModal:sie,AriaBusy:cie,AriaErrorMessage:lie,AriaRoleDescription:uie,AriaAtomic:die,AriaAutocomplete:fie,AriaColcount:pie,AriaColindex:mie,AriaColspan:hie,AriaDescription:gie,AriaDetails:_ie,AriaFlowto:vie,AriaKeyshortcuts:yie,AriaLevel:bie,AriaOwns:xie,AriaPlaceholder:Sie,AriaPosinset:Cie,AriaReadonly:wie,AriaRelevant:Tie,AriaRowcount:Eie,AriaRowindex:Die,AriaRowspan:Oie,AriaSetsize:kie,AriaValuemax:Aie,AriaValuemin:jie,AriaValuenow:Mie,AriaValuetext:Nie,Attribute:Pie,DataAttribute:Fie,Style:Iie,InnerHTML:Lie,ViewBox:Rie,Xmlns:zie,Fill:Bie,FillRule:Vie,ClipRule:Hie,Stroke:Uie,StrokeWidth:Wie,StrokeLinecap:Gie,StrokeLinejoin:Kie,D:qie,Cx:Jie,Cy:Yie,R:Xie,X:Zie,Y:Qie,Width:$ie,Height:eae,X1:tae,Y1:nae,X2:rae,Y2:iae,Points:aae,Transform:oae,Opacity:sae,StrokeDasharray:cae,StrokeDashoffset:DM,Dx:OM,Dy:kM,Rotate:AM,TextAnchor:jM,DominantBaseline:MM,AlignmentBaseline:NM,BaselineShift:PM,TextLength:FM,LengthAdjust:IM,FontFamily:LM,FontSize:RM,FontWeight:zM,FontStyle:BM,LetterSpacing:VM,WordSpacing:HM,TextDecoration:UM,WritingMode:WM,Rx:GM,Ry:KM,PathLength:qM,FillOpacity:JM,StrokeOpacity:YM,StrokeMiterlimit:XM,PaintOrder:ZM,VectorEffect:QM,Color:$M,Visibility:eN,Display:tN,Overflow:nN,PointerEvents:rN,Cursor:iN,ShapeRendering:aN,TextRendering:oN,ImageRendering:sN,ClipPath:cN,Mask:lN,Filter:uN,ClipPathUnits:dN,MaskUnits:fN,MaskContentUnits:pN,FilterUnits:mN,PrimitiveUnits:hN,Offset:gN,StopColor:_N,StopOpacity:vN,GradientUnits:yN,GradientTransform:bN,SpreadMethod:xN,Fx:SN,Fy:CN,Fr:wN,PatternUnits:TN,PatternContentUnits:EN,PatternTransform:DN,MarkerStart:ON,MarkerMid:kN,MarkerEnd:AN,MarkerWidth:jN,MarkerHeight:MN,MarkerUnits:NN,RefX:PN,RefY:FN,Orient:IN,PreserveAspectRatio:LN,Prop:lae,OnCustomEvent:uae,OnMount:RN,OnUnmount:zN}=jo(),BN=(e,t,n)=>{e.data[t]=n},VN=(e,t)=>{e.data[Sk]=(e.data[Sk]??0)|t},HN=(e,t,n,r)=>{e.data[t]=n,VN(e,r)},UN=(e,t,n)=>{let r=e.data.props??={};return t===`__proto__`?Object.defineProperty(r,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):r[t]=n,VN(e,Ck.Props),r},WN=(e,t,n)=>{tk(UN(e,t,n),t)},GN=(e,t,n)=>{ek(UN(e,t,n),t)},KN=(e,t)=>{$O(UN(e,`innerHTML`,t),t)},P=(e,t,n)=>{let r=e.data.attrs??={};r[t]=n,VN(e,Ck.Attrs)},qN=(e,t,n)=>{let r=e.data.on??={};VN(e,Ck.On);let i=r[t];if(i===void 0)r[t]=n;else{let e=i;r[t]=(...t)=>{e(...t),n(...t)}}},JN=(e,t)=>{if(VN(e,Ck.On),e.data.on===void 0){e.data.on=t;return}let n=e.data.on;for(let e of Object.keys(t)){let r=n[e],i=t[e];n[e]=r===void 0?i:(...e)=>{r(...e),i(...e)}}},YN=2147483647,XN=-2147483648,ZN={cols:{minimum:0,maximum:YN},colSpan:{minimum:0,maximum:YN},maxLength:{minimum:0,maximum:YN},minLength:{minimum:0,maximum:YN},rows:{minimum:0,maximum:YN},rowSpan:{minimum:0,maximum:YN},size:{minimum:0,maximum:YN},span:{minimum:0,maximum:YN},start:{minimum:XN,maximum:YN},tabIndex:{minimum:XN,maximum:YN}},QN=(e,t)=>`[foldkit] ${e} was given ${String(t)}, which a browser reads differently depending on whether it arrives as parsed markup or as a property assignment, and which can throw outright when assigned. `,$N=(e,t,n)=>{let r=ZN[t];if(r!==void 0&&!(Number.isInteger(n)&&n>=r.minimum&&n<=r.maximum))throw Error(QN(t,n)+`Use an integer from ${String(r.minimum)} to ${String(r.maximum)}.`);WN(e,t,n)},eP=(e,t,n)=>{if(!Number.isFinite(n))throw Error(QN(t,n)+`Use a finite number.`);WN(e,t,n)},tP=(e,t,n)=>{WN(e,t,n),e.getPostpatchProps().push({propName:t,value:n})},nP=1e4,rP=new Map,iP=e=>{let t=rP.get(e);if(t!==void 0)return t;let n={};for(let t of e.split(/\s+/))t!==``&&(n[t]=!0);return rP.size>=nP&&rP.clear(),rP.set(e,n),n},aP=new Set([`javascript`,`vbscript`]),oP=/[\u0000-\u001F\u007F-\u009F]/g,sP=/^\s*([a-zA-Z][a-zA-Z0-9+.-]*)\s*:/,cP=e=>{let t=sP.exec(e.replace(oP,``));if(t!==null){let e=t[1];if(e!==void 0&&aP.has(e.toLowerCase()))return``}return e},lP={Key:({value:e},t)=>BN(t,`key`,e),Class:({value:e},t)=>HN(t,`class`,iP(e),Ck.Class),Id:({value:e},t)=>WN(t,`id`,e),Title:({value:e},t)=>WN(t,`title`,e),Lang:({value:e},t)=>WN(t,`lang`,e),Dir:({value:e},t)=>WN(t,`dir`,e),Tabindex:({value:e},t)=>$N(t,`tabIndex`,e),Hidden:({value:e},t)=>WN(t,`hidden`,e),Contenteditable:({value:e},t)=>P(t,`contenteditable`,e),Draggable:({value:e},t)=>WN(t,`draggable`,e),Accesskey:({value:e},t)=>P(t,`accesskey`,e),Translate:({value:e},t)=>P(t,`translate`,e),Inert:({value:e},t)=>WN(t,`inert`,e),Popover:({value:e},t)=>P(t,`popover`,e),Popovertarget:({value:e},t)=>P(t,`popovertarget`,e),Popovertargetaction:({value:e},t)=>P(t,`popovertargetaction`,e),OnClick:({message:e,options:t},n)=>qN(n,`click`,r=>{t?.defaultAction===`Prevent`&&r.preventDefault(),t?.propagation===`Stop`&&r.stopPropagation();let i=t?.focusSelector;if(i!==void 0){let e=document.querySelector(i);e instanceof HTMLElement&&e.focus()}n.dispatch(e)}),OnDoubleClick:({message:e},t)=>qN(t,`dblclick`,()=>t.dispatch(e)),OnMouseDown:({message:e},t)=>qN(t,`mousedown`,()=>t.dispatch(e)),OnMouseUp:({message:e},t)=>qN(t,`mouseup`,()=>t.dispatch(e)),OnMouseEnter:({message:e},t)=>qN(t,`mouseenter`,()=>t.dispatch(e)),OnMouseLeave:({message:e},t)=>qN(t,`mouseleave`,()=>t.dispatch(e)),OnMouseOver:({message:e},t)=>qN(t,`mouseover`,()=>t.dispatch(e)),OnMouseOut:({message:e},t)=>qN(t,`mouseout`,()=>t.dispatch(e)),OnMouseMove:({message:e},t)=>qN(t,`mousemove`,()=>t.dispatch(e)),OnPointerMove:({f:e},t)=>JN(t,{pointermove:n=>{let r=e(n.screenX,n.screenY,n.pointerType);C(r)&&t.dispatch(r.value)}}),OnPointerLeave:({f:e},t)=>JN(t,{pointerleave:n=>{let r=e(n.pointerType);C(r)&&t.dispatch(r.value)}}),OnPointerDown:({f:e},t)=>JN(t,{pointerdown:n=>{let r=e(n.pointerType,n.button,n.screenX,n.screenY,n.timeStamp,n.clientX,n.clientY,n.pointerId,n.target);C(r)&&t.dispatch(r.value)}}),OnPointerUp:({f:e},t)=>JN(t,{pointerup:n=>{let r=e(n.screenX,n.screenY,n.pointerType,n.timeStamp);C(r)&&t.dispatch(r.value)}}),OnKeyDown:({f:e},t)=>JN(t,{keydown:n=>t.dispatch(e(n.key,SM(n)))}),OnKeyDownPreventDefault:({f:e},t)=>JN(t,{keydown:n=>{let r=e(n.key,SM(n));C(r)&&(n.preventDefault(),t.dispatch(r.value))}}),OnKeyDownSelf:({f:e},t)=>JN(t,{keydown:n=>{wM(n)&&t.dispatch(e(n.key,SM(n)))}}),OnKeyDownSelfPreventDefault:({f:e},t)=>JN(t,{keydown:n=>{if(!wM(n))return;let r=e(n.key,SM(n));C(r)&&(n.preventDefault(),t.dispatch(r.value))}}),OnKeyDownFocus:({f:e},t)=>JN(t,{keydown:n=>{let r=e(n.key,SM(n));if(C(r)){n.preventDefault();let{focusSelector:e,message:i}=r.value,a=document.querySelector(e);a instanceof HTMLElement&&a.focus(),t.dispatch(i)}}}),OnKeyUp:({f:e},t)=>JN(t,{keyup:n=>t.dispatch(e(n.key,SM(n)))}),OnKeyUpPreventDefault:({f:e},t)=>JN(t,{keyup:n=>{let r=e(n.key,SM(n));C(r)&&(n.preventDefault(),t.dispatch(r.value))}}),OnKeyPress:({f:e},t)=>JN(t,{keypress:n=>t.dispatch(e(n.key,SM(n)))}),OnFocus:({message:e},t)=>qN(t,`focus`,()=>t.dispatch(e)),OnBlur:({message:e},t)=>JN(t,{blur:n=>{wee(n.relatedTarget)||t.dispatch(e)}}),OnFocusEnter:({message:e},t)=>JN(t,{focusin:n=>{TM(n)||t.dispatch(e)}}),OnFocusLeave:({message:e},t)=>JN(t,{focusout:n=>{TM(n)||t.dispatch(e)}}),OnInput:({f:e},t)=>JN(t,{input:n=>t.dispatch(e(CM(n.target)))}),OnChange:({f:e},t)=>JN(t,{change:n=>t.dispatch(e(CM(n.target)))}),OnBeforeInput:({f:e},t)=>JN(t,{beforeinput:n=>t.dispatch(e(n.inputType,gr(n.data)))}),OnBeforeInputPreventDefault:({f:e},t)=>JN(t,{beforeinput:n=>{if(!n.cancelable)return;let r=e(n.inputType,gr(n.data));C(r)&&(n.preventDefault(),t.dispatch(r.value))}}),OnFileChange:({f:e},t)=>JN(t,{change:xM(n=>{let r=n.target,i=r.files?Bi(r.files):Ea();r.value=``,t.dispatch(e(i))},`OnFileChange`)}),OnSubmit:({message:e},t)=>JN(t,{submit:n=>{n.preventDefault(),t.dispatch(e)}}),OnReset:({message:e},t)=>qN(t,`reset`,()=>t.dispatch(e)),OnScroll:({f:e},t)=>JN(t,{scroll:n=>t.dispatch(e(n.target.scrollTop))}),OnWheel:({message:e},t)=>qN(t,`wheel`,()=>t.dispatch(e)),OnCopy:({message:e},t)=>qN(t,`copy`,()=>t.dispatch(e)),OnCut:({message:e},t)=>qN(t,`cut`,()=>t.dispatch(e)),OnPaste:({message:e},t)=>qN(t,`paste`,()=>t.dispatch(e)),OnPastePreventDefault:({f:e},t)=>JN(t,{paste:n=>{let r=e(n.clipboardData?.getData(`text/plain`)??``);C(r)&&(n.preventDefault(),t.dispatch(r.value))}}),OnCopyText:({text:e},t)=>JN(t,{copy:t=>{t.clipboardData&&(t.clipboardData.setData(`text/plain`,e),t.preventDefault())}}),OnCutText:({text:e,message:t},n)=>JN(n,{cut:r=>{r.clipboardData&&(r.clipboardData.setData(`text/plain`,e),r.preventDefault(),n.dispatch(t))}}),OnCancel:({message:e},t)=>JN(t,{cancel:n=>{n.preventDefault(),t.dispatch(e)}}),OnCancelPreventDefault:({maybeCustomEventMessage:e},t)=>JN(t,{cancel:n=>{n.preventDefault(),n instanceof CustomEvent&&C(e)&&t.dispatch(e.value)}}),OnToggle:({f:e},t)=>JN(t,{toggle:n=>t.dispatch(e(n.target.open))}),OnContextMenu:({message:e},t)=>JN(t,{contextmenu:n=>{n.preventDefault(),t.dispatch(e)}}),OnDragStart:({message:e},t)=>qN(t,`dragstart`,()=>t.dispatch(e)),OnDrag:({message:e},t)=>qN(t,`drag`,()=>t.dispatch(e)),OnDragEnd:({message:e},t)=>qN(t,`dragend`,()=>t.dispatch(e)),OnDragEnter:({message:e},t)=>JN(t,{dragenter:n=>{n.preventDefault();let r=n.currentTarget;if(!(r instanceof Element)){t.dispatch(e);return}Zj(Yj(r),r,n.target)&&t.dispatch(e)}}),OnDragLeave:({message:e},t)=>JN(t,{dragleave:n=>{let r=n.currentTarget;if(!(r instanceof Element)){t.dispatch(e);return}let i=Yj(r);Qj(i,r,n.target)===`schedule`&&queueMicrotask(()=>{$j(i)&&t.dispatch(e)})}}),OnDragOver:({message:e},t)=>JN(t,{dragover:n=>{n.preventDefault(),t.dispatch(e)}}),AllowDrop:(e,t)=>JN(t,{dragover:e=>{e.preventDefault()}}),OnDrop:({message:e},t)=>JN(t,{drop:n=>{n.preventDefault();let r=n.currentTarget;r instanceof Element&&eM(r),t.dispatch(e)}}),OnDropFiles:({f:e},t)=>JN(t,{drop:xM(n=>{n.preventDefault();let r=n,i=r.currentTarget;i instanceof Element&&eM(i);let a=r.dataTransfer?.files?Bi(r.dataTransfer.files):Ea();t.dispatch(e(a))},`OnDropFiles`)}),OnTouchStart:({message:e},t)=>qN(t,`touchstart`,()=>t.dispatch(e)),OnTouchEnd:({message:e},t)=>qN(t,`touchend`,()=>t.dispatch(e)),OnTouchMove:({message:e},t)=>qN(t,`touchmove`,()=>t.dispatch(e)),OnTouchCancel:({message:e},t)=>qN(t,`touchcancel`,()=>t.dispatch(e)),OnAnimationStart:({message:e},t)=>qN(t,`animationstart`,()=>t.dispatch(e)),OnAnimationEnd:({message:e},t)=>qN(t,`animationend`,()=>t.dispatch(e)),OnAnimationIteration:({message:e},t)=>qN(t,`animationiteration`,()=>t.dispatch(e)),OnTransitionEnd:({message:e},t)=>qN(t,`transitionend`,()=>t.dispatch(e)),OnLoad:({message:e},t)=>qN(t,`load`,()=>t.dispatch(e)),OnError:({message:e},t)=>qN(t,`error`,()=>t.dispatch(e)),OnPlay:({message:e},t)=>qN(t,`play`,()=>t.dispatch(e)),OnPause:({message:e},t)=>qN(t,`pause`,()=>t.dispatch(e)),OnEnded:({message:e},t)=>qN(t,`ended`,()=>t.dispatch(e)),OnTimeUpdate:({message:e},t)=>qN(t,`timeupdate`,()=>t.dispatch(e)),OnVolumeChange:({message:e},t)=>qN(t,`volumechange`,()=>t.dispatch(e)),OnSelect:({message:e},t)=>qN(t,`select`,()=>t.dispatch(e)),Value:({value:e},t)=>tP(t,`value`,e),Checked:({value:e},t)=>tP(t,`checked`,e),Selected:({value:e},t)=>tP(t,`selected`,e),Open:({value:e},t)=>tP(t,`open`,e),Placeholder:({value:e},t)=>WN(t,`placeholder`,e),Name:({value:e},t)=>WN(t,`name`,e),Disabled:({value:e},t)=>WN(t,`disabled`,e),Readonly:({value:e},t)=>WN(t,`readOnly`,e),Required:({value:e},t)=>WN(t,`required`,e),Autofocus:({value:e},t)=>WN(t,`autofocus`,e),Spellcheck:({value:e},t)=>P(t,`spellcheck`,e.toString()),Autocorrect:({value:e},t)=>P(t,`autocorrect`,e),Autocapitalize:({value:e},t)=>P(t,`autocapitalize`,e),InputMode:({value:e},t)=>P(t,`inputmode`,e),EnterKeyHint:({value:e},t)=>P(t,`enterkeyhint`,e),Multiple:({value:e},t)=>WN(t,`multiple`,e),Type:({value:e},t)=>WN(t,`type`,e),Accept:({value:e},t)=>WN(t,`accept`,e),Autocomplete:({value:e},t)=>WN(t,`autocomplete`,e),Pattern:({value:e},t)=>WN(t,`pattern`,e),Maxlength:({value:e},t)=>$N(t,`maxLength`,e),Minlength:({value:e},t)=>$N(t,`minLength`,e),Size:({value:e},t)=>$N(t,`size`,e),Cols:({value:e},t)=>$N(t,`cols`,e),Rows:({value:e},t)=>$N(t,`rows`,e),Max:({value:e},t)=>WN(t,`max`,e),Min:({value:e},t)=>WN(t,`min`,e),Step:({value:e},t)=>WN(t,`step`,e),For:({value:e},t)=>WN(t,`htmlFor`,e),Href:({value:e},t)=>WN(t,`href`,cP(e)),Src:({value:e},t)=>WN(t,`src`,cP(e)),Alt:({value:e},t)=>WN(t,`alt`,e),Target:({value:e},t)=>WN(t,`target`,e),Rel:({value:e},t)=>WN(t,`rel`,e),Download:({value:e},t)=>WN(t,`download`,e),Action:({value:e},t)=>WN(t,`action`,cP(e)),Method:({value:e},t)=>WN(t,`method`,e),Enctype:({value:e},t)=>WN(t,`enctype`,e),Novalidate:({value:e},t)=>WN(t,`noValidate`,e),Formaction:({value:e},t)=>WN(t,`formAction`,cP(e)),Formmethod:({value:e},t)=>WN(t,`formMethod`,e),Formnovalidate:({value:e},t)=>WN(t,`formNoValidate`,e),Formtarget:({value:e},t)=>WN(t,`formTarget`,e),Formenctype:({value:e},t)=>WN(t,`formEnctype`,e),Colspan:({value:e},t)=>$N(t,`colSpan`,e),Rowspan:({value:e},t)=>$N(t,`rowSpan`,e),Scope:({value:e},t)=>P(t,`scope`,e),Headers:({value:e},t)=>P(t,`headers`,e),Span:({value:e},t)=>$N(t,`span`,e),Start:({value:e},t)=>$N(t,`start`,e),Reversed:({value:e},t)=>WN(t,`reversed`,e),CiteAttr:({value:e},t)=>WN(t,`cite`,e),Datetime:({value:e},t)=>WN(t,`dateTime`,e),Wrap:({value:e},t)=>WN(t,`wrap`,e),List:({value:e},t)=>P(t,`list`,e),FormAttr:({value:e},t)=>P(t,`form`,e),LabelAttr:({value:e},t)=>WN(t,`label`,e),ContentAttr:({value:e},t)=>P(t,`content`,e),Charset:({value:e},t)=>P(t,`charset`,e),HttpEquiv:({value:e},t)=>P(t,`http-equiv`,e),Srcset:({value:e},t)=>P(t,`srcset`,e),Sizes:({value:e},t)=>P(t,`sizes`,e),Loading:({value:e},t)=>P(t,`loading`,e),Decoding:({value:e},t)=>P(t,`decoding`,e),Fetchpriority:({value:e},t)=>P(t,`fetchpriority`,e),Crossorigin:({value:e},t)=>P(t,`crossorigin`,e),Referrerpolicy:({value:e},t)=>P(t,`referrerpolicy`,e),Integrity:({value:e},t)=>P(t,`integrity`,e),Hreflang:({value:e},t)=>P(t,`hreflang`,e),Ping:({value:e},t)=>P(t,`ping`,e),Sandbox:({value:e},t)=>P(t,`sandbox`,e),Allow:({value:e},t)=>P(t,`allow`,e),Srcdoc:({value:e},t)=>P(t,`srcdoc`,e),Autoplay:({value:e},t)=>WN(t,`autoplay`,e),Controls:({value:e},t)=>WN(t,`controls`,e),Loop:({value:e},t)=>WN(t,`loop`,e),Muted:({value:e},t)=>tP(t,`muted`,e),Poster:({value:e},t)=>WN(t,`poster`,e),Preload:({value:e},t)=>WN(t,`preload`,e),Playsinline:({value:e},t)=>WN(t,`playsInline`,e),High:({value:e},t)=>eP(t,`high`,e),Low:({value:e},t)=>eP(t,`low`,e),Optimum:({value:e},t)=>eP(t,`optimum`,e),Usemap:({value:e},t)=>P(t,`usemap`,e),Ismap:({value:e},t)=>WN(t,`isMap`,e),Role:({value:e},t)=>P(t,`role`,e),AriaLabel:({value:e},t)=>P(t,`aria-label`,e),AriaLabelledBy:({value:e},t)=>P(t,`aria-labelledby`,e),AriaDescribedBy:({value:e},t)=>P(t,`aria-describedby`,e),AriaHidden:({value:e},t)=>P(t,`aria-hidden`,e.toString()),AriaExpanded:({value:e},t)=>P(t,`aria-expanded`,e.toString()),AriaSelected:({value:e},t)=>P(t,`aria-selected`,e.toString()),AriaChecked:({value:e},t)=>P(t,`aria-checked`,e.toString()),AriaDisabled:({value:e},t)=>P(t,`aria-disabled`,e.toString()),AriaRequired:({value:e},t)=>P(t,`aria-required`,e.toString()),AriaInvalid:({value:e},t)=>P(t,`aria-invalid`,e.toString()),AriaLive:({value:e},t)=>P(t,`aria-live`,e),AriaControls:({value:e},t)=>P(t,`aria-controls`,e),AriaCurrent:({value:e},t)=>P(t,`aria-current`,e),AriaOrientation:({value:e},t)=>P(t,`aria-orientation`,e),AriaPressed:({value:e},t)=>P(t,`aria-pressed`,e),AriaHasPopup:({value:e},t)=>P(t,`aria-haspopup`,e),AriaActiveDescendant:({value:e},t)=>P(t,`aria-activedescendant`,e),AriaSort:({value:e},t)=>P(t,`aria-sort`,e),AriaMultiSelectable:({value:e},t)=>P(t,`aria-multiselectable`,e.toString()),AriaModal:({value:e},t)=>P(t,`aria-modal`,e.toString()),AriaBusy:({value:e},t)=>P(t,`aria-busy`,e.toString()),AriaErrorMessage:({value:e},t)=>P(t,`aria-errormessage`,e),AriaRoleDescription:({value:e},t)=>P(t,`aria-roledescription`,e),AriaAtomic:({value:e},t)=>P(t,`aria-atomic`,e.toString()),AriaAutocomplete:({value:e},t)=>P(t,`aria-autocomplete`,e),AriaColcount:({value:e},t)=>P(t,`aria-colcount`,e.toString()),AriaColindex:({value:e},t)=>P(t,`aria-colindex`,e.toString()),AriaColspan:({value:e},t)=>P(t,`aria-colspan`,e.toString()),AriaDescription:({value:e},t)=>P(t,`aria-description`,e),AriaDetails:({value:e},t)=>P(t,`aria-details`,e),AriaFlowto:({value:e},t)=>P(t,`aria-flowto`,e),AriaKeyshortcuts:({value:e},t)=>P(t,`aria-keyshortcuts`,e),AriaLevel:({value:e},t)=>P(t,`aria-level`,e.toString()),AriaOwns:({value:e},t)=>P(t,`aria-owns`,e),AriaPlaceholder:({value:e},t)=>P(t,`aria-placeholder`,e),AriaPosinset:({value:e},t)=>P(t,`aria-posinset`,e.toString()),AriaReadonly:({value:e},t)=>P(t,`aria-readonly`,e.toString()),AriaRelevant:({value:e},t)=>P(t,`aria-relevant`,e),AriaRowcount:({value:e},t)=>P(t,`aria-rowcount`,e.toString()),AriaRowindex:({value:e},t)=>P(t,`aria-rowindex`,e.toString()),AriaRowspan:({value:e},t)=>P(t,`aria-rowspan`,e.toString()),AriaSetsize:({value:e},t)=>P(t,`aria-setsize`,e.toString()),AriaValuemax:({value:e},t)=>P(t,`aria-valuemax`,e.toString()),AriaValuemin:({value:e},t)=>P(t,`aria-valuemin`,e.toString()),AriaValuenow:({value:e},t)=>P(t,`aria-valuenow`,e.toString()),AriaValuetext:({value:e},t)=>P(t,`aria-valuetext`,e),Attribute:({key:e,value:t},n)=>P(n,e,t),DataAttribute:({key:e,value:t},n)=>P(n,`data-${e}`,t),Style:({value:e},t)=>HN(t,`style`,JO(e),Ck.Style),InnerHTML:({value:e},t)=>KN(t,e),ViewBox:({value:e},t)=>P(t,`viewBox`,e),Xmlns:({value:e},t)=>P(t,`xmlns`,e),Fill:({value:e},t)=>P(t,`fill`,e),FillRule:({value:e},t)=>P(t,`fill-rule`,e),ClipRule:({value:e},t)=>P(t,`clip-rule`,e),Stroke:({value:e},t)=>P(t,`stroke`,e),StrokeWidth:({value:e},t)=>P(t,`stroke-width`,e),StrokeLinecap:({value:e},t)=>P(t,`stroke-linecap`,e),StrokeLinejoin:({value:e},t)=>P(t,`stroke-linejoin`,e),D:({value:e},t)=>P(t,`d`,e),Cx:({value:e},t)=>P(t,`cx`,e),Cy:({value:e},t)=>P(t,`cy`,e),R:({value:e},t)=>P(t,`r`,e),X:({value:e},t)=>P(t,`x`,e),Y:({value:e},t)=>P(t,`y`,e),Width:({value:e},t)=>P(t,`width`,e),Height:({value:e},t)=>P(t,`height`,e),X1:({value:e},t)=>P(t,`x1`,e),Y1:({value:e},t)=>P(t,`y1`,e),X2:({value:e},t)=>P(t,`x2`,e),Y2:({value:e},t)=>P(t,`y2`,e),Points:({value:e},t)=>P(t,`points`,e),Transform:({value:e},t)=>P(t,`transform`,e),Opacity:({value:e},t)=>P(t,`opacity`,e),StrokeDasharray:({value:e},t)=>P(t,`stroke-dasharray`,e),StrokeDashoffset:({value:e},t)=>P(t,`stroke-dashoffset`,e),Dx:({value:e},t)=>P(t,`dx`,e),Dy:({value:e},t)=>P(t,`dy`,e),Rotate:({value:e},t)=>P(t,`rotate`,e),TextAnchor:({value:e},t)=>P(t,`text-anchor`,e),DominantBaseline:({value:e},t)=>P(t,`dominant-baseline`,e),AlignmentBaseline:({value:e},t)=>P(t,`alignment-baseline`,e),BaselineShift:({value:e},t)=>P(t,`baseline-shift`,e),TextLength:({value:e},t)=>P(t,`textLength`,e),LengthAdjust:({value:e},t)=>P(t,`lengthAdjust`,e),FontFamily:({value:e},t)=>P(t,`font-family`,e),FontSize:({value:e},t)=>P(t,`font-size`,e),FontWeight:({value:e},t)=>P(t,`font-weight`,e),FontStyle:({value:e},t)=>P(t,`font-style`,e),LetterSpacing:({value:e},t)=>P(t,`letter-spacing`,e),WordSpacing:({value:e},t)=>P(t,`word-spacing`,e),TextDecoration:({value:e},t)=>P(t,`text-decoration`,e),WritingMode:({value:e},t)=>P(t,`writing-mode`,e),Rx:({value:e},t)=>P(t,`rx`,e),Ry:({value:e},t)=>P(t,`ry`,e),PathLength:({value:e},t)=>P(t,`pathLength`,e),FillOpacity:({value:e},t)=>P(t,`fill-opacity`,e),StrokeOpacity:({value:e},t)=>P(t,`stroke-opacity`,e),StrokeMiterlimit:({value:e},t)=>P(t,`stroke-miterlimit`,e),PaintOrder:({value:e},t)=>P(t,`paint-order`,e),VectorEffect:({value:e},t)=>P(t,`vector-effect`,e),Color:({value:e},t)=>P(t,`color`,e),Visibility:({value:e},t)=>P(t,`visibility`,e),Display:({value:e},t)=>P(t,`display`,e),Overflow:({value:e},t)=>P(t,`overflow`,e),PointerEvents:({value:e},t)=>P(t,`pointer-events`,e),Cursor:({value:e},t)=>P(t,`cursor`,e),ShapeRendering:({value:e},t)=>P(t,`shape-rendering`,e),TextRendering:({value:e},t)=>P(t,`text-rendering`,e),ImageRendering:({value:e},t)=>P(t,`image-rendering`,e),ClipPath:({value:e},t)=>P(t,`clip-path`,e),Mask:({value:e},t)=>P(t,`mask`,e),Filter:({value:e},t)=>P(t,`filter`,e),ClipPathUnits:({value:e},t)=>P(t,`clipPathUnits`,e),MaskUnits:({value:e},t)=>P(t,`maskUnits`,e),MaskContentUnits:({value:e},t)=>P(t,`maskContentUnits`,e),FilterUnits:({value:e},t)=>P(t,`filterUnits`,e),PrimitiveUnits:({value:e},t)=>P(t,`primitiveUnits`,e),Offset:({value:e},t)=>P(t,`offset`,e),StopColor:({value:e},t)=>P(t,`stop-color`,e),StopOpacity:({value:e},t)=>P(t,`stop-opacity`,e),GradientUnits:({value:e},t)=>P(t,`gradientUnits`,e),GradientTransform:({value:e},t)=>P(t,`gradientTransform`,e),SpreadMethod:({value:e},t)=>P(t,`spreadMethod`,e),Fx:({value:e},t)=>P(t,`fx`,e),Fy:({value:e},t)=>P(t,`fy`,e),Fr:({value:e},t)=>P(t,`fr`,e),PatternUnits:({value:e},t)=>P(t,`patternUnits`,e),PatternContentUnits:({value:e},t)=>P(t,`patternContentUnits`,e),PatternTransform:({value:e},t)=>P(t,`patternTransform`,e),MarkerStart:({value:e},t)=>P(t,`marker-start`,e),MarkerMid:({value:e},t)=>P(t,`marker-mid`,e),MarkerEnd:({value:e},t)=>P(t,`marker-end`,e),MarkerWidth:({value:e},t)=>P(t,`markerWidth`,e),MarkerHeight:({value:e},t)=>P(t,`markerHeight`,e),MarkerUnits:({value:e},t)=>P(t,`markerUnits`,e),RefX:({value:e},t)=>P(t,`refX`,e),RefY:({value:e},t)=>P(t,`refY`,e),Orient:({value:e},t)=>P(t,`orient`,e),PreserveAspectRatio:({value:e},t)=>P(t,`preserveAspectRatio`,e),Prop:({key:e,value:t},n)=>GN(n,e,t),OnCustomEvent:({name:e,f:t},n)=>JN(n,{[e]:e=>{if(e instanceof CustomEvent){let r=t(e);C(r)&&n.dispatch(r.value)}}}),OnMount:({action:e},t)=>{let n=t.getCapturedContext(),r=li(n,mk),i=li(n,gk),a=t.resolveMountDispatch??hP(),o=C(r)?()=>r.value.started(e.name,e.args):p,s=C(r)?()=>r.value.ended(e.name,e.args):p,c=e.args===void 0?{name:e.name}:{name:e.name,args:e.args},l=t.boundaryMappers,u=Yi(l)?c:{...c,messageMappers:l};t.data[Mee]=u;let d=t.data.hook?.destroy;t.data.hook={...t.data.hook,insert:e=>{if(e.elm instanceof Element){let t=e.elm;m(t)}},postpatch:(e,t)=>{if(t.elm instanceof Element){let e=EM.get(t.elm);e?.owner===`Replay`&&a.owner===`Live`&&(f(e),m(t.elm,e.fiber))}},destroy:e=>{if(d!==void 0&&d(e),e.elm instanceof Element){let t=EM.get(e.elm);t&&(f(t),Dm(BC(t.fiber)),EM.delete(e.elm))}}};function f(e){e.lifecycle.isActive=!1,e.lifecycle.isStarted&&(e.lifecycle.isStarted=!1,e.owner===`Live`&&e.notifyEnded())}function m(t,r){let c={isActive:!0,isStarted:!0},l=a.resolve(),u=w(i,{onNone:()=>yk,onSome:e=>e.captureViewStateChanges()});o();let d=Tp(()=>c.isActive?WE(e.f(t,u),e=>D(()=>l(e))):Ep).pipe(Kp(t=>D(()=>{console.error(`[OnMount ${e.name}] unhandled failure`,t)}))),f=r===void 0?d:BC(r).pipe(Rp(d)),p=Om(n)(f);EM.set(t,{fiber:p,lifecycle:c,notifyEnded:s,owner:a.owner})}},OnUnmount:({message:e},t)=>{let n=t.resolveUnmount(e);oj(t.data,n)}},uP=(e,t)=>{let n=lP[e._tag];n(e,t)},dP=()=>{throw Error(`Foldkit: an event-bearing Html attribute fired without an active runtime frame. This typically means an Html element with event handlers (OnClick, OnInput, etc.) was constructed at module top level outside of a view function.`)},fP=()=>()=>{throw Error(`Foldkit: an OnUnmount attribute fired without an active runtime frame. This typically means an Html element with OnUnmount was constructed at module top level outside of a view function.`)},pP=()=>{try{return Bj()}catch{return dP}},mP=()=>{try{return Vj()}catch{return fP}},hP=()=>{try{return Uj()}catch{return{owner:`Live`,resolve:()=>dP}}},gP=()=>{try{return Wj()}catch{return Zr()}},_P=(e,t)=>{e.elm&&La(t,({propName:t,value:n})=>{(e.elm instanceof Element&&e.elm.localName===`output`&&t===`value`||e.elm[t]!==n)&&(e.elm[t]=n),e.elm instanceof Element&&sk(e.elm,t,n)})},vP=(e,t)=>{let n=e.hook?.insert,r=e.hook?.postpatch;e.hook={...e.hook,insert:e=>{_P(e,t),n?.(e)},postpatch:(e,n)=>{_P(n,t),r?.(e,n)}}},yP=e=>{let t=e.hook?.postpatch;e.hook={...e.hook,postpatch:(e,n)=>{t?.(e,n);let r=e.data?.props,i=n.data?.props;r!==void 0&&Object.hasOwn(r,`value`)&&(i===void 0||!Object.hasOwn(i,`value`))&&n.elm instanceof Element&&fk(n.elm,n)}}},bP=e=>{let t={[Sk]:0};if(e.length===0)return t;let n,r,i,a=()=>i??=[];for(let i of e)if(qj(i)){r??=new Map;let e=r.get(i.dispatch);(e===void 0||i.resolveMountDispatch!==void 0&&e.resolveMountDispatch!==i.resolveMountDispatch)&&(e={data:t,getPostpatchProps:a,dispatch:i.dispatch,resolveUnmount:i.resolveUnmount,boundaryMappers:i.boundaryMappers,...i.resolveMountDispatch!==void 0&&{resolveMountDispatch:i.resolveMountDispatch},getCapturedContext:gP},r.set(i.dispatch,e)),uP(i.attribute,e)}else n===void 0&&(n={data:t,getPostpatchProps:a,dispatch:pP(),resolveUnmount:mP(),boundaryMappers:Hj(),getCapturedContext:gP}),uP(i,n);return i!==void 0&&Zi(i)&&vP(t,i),t},xP=e=>{let t=[];for(let n=0;n<e.length;n++){let r=e[n];r!=null&&t.push(r)}return t},SP=new Set([`output`,`select`,`textarea`]),CP=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),wP=(e,t,n)=>{let r=e.toLowerCase();if((r===`textarea`||r===`output`)&&t.props?.value!==void 0&&n.length>0)throw Error(`[foldkit] <${r}> was given both a controlled value and children. Both own the element content, so a property assignment replaces the child nodes the differ expects to patch. Keep one owner.`);let i=t.props;if(i===void 0||!Object.hasOwn(i,`innerHTML`))return;let a=nk(i)?`h.InnerHTML`:`a client-only innerHTML property`;if(r===`textarea`)throw Error(`[foldkit] <textarea> was given ${a}. Textarea content must use h.Value because innerHTML stops updating the live value after the browser marks the field dirty. Remove the innerHTML owner.`);if(n.length>0)throw Error(`[foldkit] <${r}> was given both ${a} and children. innerHTML owns the whole of an element’s content, so the two cannot both describe it: server rendering emits the raw HTML alone for h.InnerHTML, while a browser property assignment replaces the nodes the differ expects to patch. Keep one content owner.`);if(SP.has(r)&&t.props?.value!==void 0)throw Error(`[foldkit] <${r}> was given both ${a} and a controlled value. Both own this element’s content, and they disagree once the client reasserts the value. Keep one of them.`);if(CP.has(r))throw Error(`[foldkit] <${r}> cannot hold content, so ${a} on it has no representation in served HTML. A browser can still build child nodes from the property, which no server render reproduces. Remove the innerHTML value.`)},TP=e=>{if(e.style!==void 0&&YO(e.attrs,`style`)!==void 0)throw Error(`[foldkit] An element was given both h.Style and a raw h.Attribute('style', ...). They are two owners of one declaration block, and CSS parsing can make one swallow or override the other. Keep all inline declarations in one of them.`)},EP=/^-?[0-9]+(\.[0-9]+)?([eE][-+]?[0-9]+)?$/,DP=/^-?[0-9]+$/,OP={meter:new Set([`high`,`low`,`max`,`min`,`optimum`,`value`]),progress:new Set([`max`,`value`])},kP={li:new Set([`value`])},AP=(e,t,n)=>{if(!(typeof n==`number`?Number.isFinite(n):typeof n==`string`&&EP.test(n)&&Number.isFinite(Number(n))))throw Error(`[foldkit] <${e}> reads ${t} as a number, and ${JSON.stringify(n)} is not one a browser reads the same way from markup and from a property assignment. Use a finite decimal number.`)},jP=(e,t,n)=>{let r=typeof n==`number`?n:typeof n==`string`&&DP.test(n)?Number(n):NaN;if(!Number.isInteger(r)||r<XN||r>YN)throw Error(`[foldkit] <${e}> reads ${t} as an integer, and ${JSON.stringify(n)} is not one a browser reads the same way from markup and from a property assignment. Use an integer from ${String(XN)} to ${String(YN)}.`)},MP=e=>{let t=e.props?.type;if(typeof t==`string`)return t.toLowerCase();let n=YO(e.attrs,`type`);return typeof n==`string`?n.toLowerCase():void 0},NP=(e,t)=>{let n=t.props;if(n===void 0)return;let r=e.toLowerCase(),i=OP[r],a=kP[r];for(let e of Object.keys(n)){let o=n[e];if(o===void 0||e===`innerHTML`)continue;if(i?.has(e)===!0&&AP(r,e,o),a?.has(e)===!0&&jP(r,e,o),r===`input`&&e===`size`&&o===0)throw Error(QN(e,o)+`Use an integer from 1 to ${String(YN)} on an input.`);let s=AO(e);if(s!==void 0&&!rk(n,e)&&YO(t.attrs,s)!==void 0)throw Error(`[foldkit] <${r}> was given both a typed ${e} and a raw h.Attribute('${s}', ...). They are two owners of one attribute, and the state they describe together has no spelling in served HTML: the property decides what is served while a fresh render parses the attribute as the default too. Keep one of them.`)}if(r===`input`&&MP(t)===`file`){let e=n.value;if(typeof e==`string`&&e!==``)throw Error(`[foldkit] <input type="file"> was given a value. A file input takes no value from markup or from the Model: the served attribute is ignored and assigning the property throws InvalidStateError, so the view crashes on a fresh render and on hydration. Drop the value.`)}},PP=(e,t)=>{let n=t.props;if(n!==void 0)for(let t of Object.keys(n))AO(t)!==void 0&&!IO(e,t)&&ek(n,t)},FP=e=>{let t=e.data;if(t===void 0||t.ns===void 0)return;let n=t.props;if(n!==void 0){for(let t of Object.keys(n))if(!(n[t]===void 0||t===`innerHTML`||kO.has(t)||AO(t)===void 0))throw Error(`[foldkit] <${ik(e.sel??``)}> is in the SVG or MathML namespace, where ${t} is not a property the element has. Assigning it on the client sets a value no attribute reflects, or throws outright, while server rendering writes the attribute, so the two disagree. Write it as h.Attribute('${t}', ...), which foreign content reads the same way on both sides.`)}for(let t of e.children??[])typeof t!=`string`&&FP(t)},IP=(e,t,n)=>{let r=xP(n);PP(e,t),wP(e,t,r),TP(t),t.style!==void 0&&KO(t.style),NP(e,t),(e.toLowerCase()===`select`||e.toLowerCase()===`textarea`||e.toLowerCase()===`output`)&&yP(t);let i=lA(e,t,r);return FP(i),i},LP=(e,t=[],n=[])=>IP(e,bP(t),n),RP=()=>e=>(t=[],n=[])=>LP(e,t,n),zP=()=>e=>(t=[])=>LP(e,t,[]),BP=()=>e=>(t,n=[],r=[])=>{let i=bP(n);return i.key=t,IP(e,i,r)},VP=()=>{let e=RP(),t=zP();return{a:e(`a`),abbr:e(`abbr`),address:e(`address`),area:t(`area`),article:e(`article`),aside:e(`aside`),audio:e(`audio`),b:e(`b`),base:t(`base`),bdi:e(`bdi`),bdo:e(`bdo`),blockquote:e(`blockquote`),body:e(`body`),br:t(`br`),button:e(`button`),canvas:e(`canvas`),caption:e(`caption`),cite:e(`cite`),code:e(`code`),col:t(`col`),colgroup:e(`colgroup`),data:e(`data`),datalist:e(`datalist`),dd:e(`dd`),del:e(`del`),details:e(`details`),dfn:e(`dfn`),dialog:e(`dialog`),div:e(`div`),dl:e(`dl`),dt:e(`dt`),em:e(`em`),embed:t(`embed`),fieldset:e(`fieldset`),figcaption:e(`figcaption`),figure:e(`figure`),footer:e(`footer`),form:e(`form`),h1:e(`h1`),h2:e(`h2`),h3:e(`h3`),h4:e(`h4`),h5:e(`h5`),h6:e(`h6`),head:e(`head`),header:e(`header`),hgroup:e(`hgroup`),hr:t(`hr`),html:e(`html`),i:e(`i`),iframe:e(`iframe`),img:t(`img`),input:t(`input`),ins:e(`ins`),kbd:e(`kbd`),label:e(`label`),legend:e(`legend`),li:e(`li`),link:t(`link`),main:e(`main`),map:e(`map`),mark:e(`mark`),menu:e(`menu`),meta:t(`meta`),meter:e(`meter`),nav:e(`nav`),noscript:e(`noscript`),object:e(`object`),ol:e(`ol`),optgroup:e(`optgroup`),option:e(`option`),output:e(`output`),p:e(`p`),picture:e(`picture`),portal:e(`portal`),pre:e(`pre`),progress:e(`progress`),q:e(`q`),rp:e(`rp`),rt:e(`rt`),ruby:e(`ruby`),s:e(`s`),samp:e(`samp`),script:e(`script`),search:e(`search`),section:e(`section`),select:e(`select`),slot:e(`slot`),small:e(`small`),source:t(`source`),span:e(`span`),strong:e(`strong`),style:e(`style`),sub:e(`sub`),summary:e(`summary`),sup:e(`sup`),table:e(`table`),tbody:e(`tbody`),td:e(`td`),template:e(`template`),textarea:e(`textarea`),tfoot:e(`tfoot`),th:e(`th`),thead:e(`thead`),time:e(`time`),title:e(`title`),tr:e(`tr`),track:t(`track`),u:e(`u`),ul:e(`ul`),var:e(`var`),video:e(`video`),wbr:t(`wbr`),svg:e(`svg`),animate:e(`animate`),animateMotion:e(`animateMotion`),animateTransform:e(`animateTransform`),circle:e(`circle`),clipPath:e(`clipPath`),defs:e(`defs`),desc:e(`desc`),ellipse:e(`ellipse`),feBlend:e(`feBlend`),feColorMatrix:e(`feColorMatrix`),feComponentTransfer:e(`feComponentTransfer`),feComposite:e(`feComposite`),feConvolveMatrix:e(`feConvolveMatrix`),feDiffuseLighting:e(`feDiffuseLighting`),feDisplacementMap:e(`feDisplacementMap`),feDistantLight:e(`feDistantLight`),feDropShadow:e(`feDropShadow`),feFlood:e(`feFlood`),feFuncA:e(`feFuncA`),feFuncB:e(`feFuncB`),feFuncG:e(`feFuncG`),feFuncR:e(`feFuncR`),feGaussianBlur:e(`feGaussianBlur`),feImage:e(`feImage`),feMerge:e(`feMerge`),feMergeNode:e(`feMergeNode`),feMorphology:e(`feMorphology`),feOffset:e(`feOffset`),fePointLight:e(`fePointLight`),feSpecularLighting:e(`feSpecularLighting`),feSpotLight:e(`feSpotLight`),feTile:e(`feTile`),feTurbulence:e(`feTurbulence`),filter:e(`filter`),foreignObject:e(`foreignObject`),g:e(`g`),image:e(`image`),line:e(`line`),linearGradient:e(`linearGradient`),marker:e(`marker`),mask:e(`mask`),metadata:e(`metadata`),mpath:e(`mpath`),path:e(`path`),pattern:e(`pattern`),polygon:e(`polygon`),polyline:e(`polyline`),radialGradient:e(`radialGradient`),rect:e(`rect`),set:e(`set`),stop:e(`stop`),switch:e(`switch`),symbol:e(`symbol`),text:e(`text`),textPath:e(`textPath`),tspan:e(`tspan`),use:e(`use`),view:e(`view`),math:e(`math`),annotation:e(`annotation`),"annotation-xml":e(`annotation-xml`),maction:e(`maction`),menclose:e(`menclose`),merror:e(`merror`),mfenced:e(`mfenced`),mfrac:e(`mfrac`),mglyph:e(`mglyph`),mi:e(`mi`),mlabeledtr:e(`mlabeledtr`),mlongdiv:e(`mlongdiv`),mmultiscripts:e(`mmultiscripts`),mn:e(`mn`),mo:e(`mo`),mover:e(`mover`),mpadded:e(`mpadded`),mphantom:e(`mphantom`),mprescripts:e(`mprescripts`),mroot:e(`mroot`),mrow:e(`mrow`),ms:e(`ms`),mscarries:e(`mscarries`),mscarry:e(`mscarry`),msgroup:e(`msgroup`),msline:e(`msline`),mspace:e(`mspace`),msqrt:e(`msqrt`),msrow:e(`msrow`),mstack:e(`mstack`),mstyle:e(`mstyle`),msub:e(`msub`),msubsup:e(`msubsup`),msup:e(`msup`),mtable:e(`mtable`),mtd:e(`mtd`),mtext:e(`mtext`),mtr:e(`mtr`),munder:e(`munder`),munderover:e(`munderover`),semantics:e(`semantics`)}},HP=()=>({Key:e=>Nee({value:e}),Class:e=>Pee({value:e}),Id:e=>Fee({value:e}),Title:e=>Iee({value:e}),Lang:e=>Lee({value:e}),Dir:e=>Ree({value:e}),Tabindex:e=>zee({value:e}),Hidden:e=>Bee({value:e}),Contenteditable:e=>Vee({value:e}),Draggable:e=>Hee({value:e}),Accesskey:e=>Uee({value:e}),Translate:e=>Wee({value:e}),Inert:e=>Gee({value:e}),Popover:e=>Kee({value:e}),Popovertarget:e=>qee({value:e}),Popovertargetaction:e=>Jee({value:e}),OnClick:(e,t)=>Yee(t===void 0?{message:e}:{message:e,options:t}),OnDoubleClick:e=>Xee({message:e}),OnMouseDown:e=>Zee({message:e}),OnMouseUp:e=>Qee({message:e}),OnMouseEnter:e=>$ee({message:e}),OnMouseLeave:e=>ete({message:e}),OnMouseOver:e=>tte({message:e}),OnMouseOut:e=>nte({message:e}),OnMouseMove:e=>rte({message:e}),OnPointerMove:e=>ite({f:e}),OnPointerLeave:e=>ate({f:e}),OnPointerDown:e=>ote({f:e}),OnPointerUp:e=>ste({f:e}),OnKeyDown:e=>cte({f:e}),OnKeyDownPreventDefault:e=>lte({f:e}),OnKeyDownSelf:e=>ute({f:e}),OnKeyDownSelfPreventDefault:e=>dte({f:e}),OnKeyDownFocus:e=>fte({f:e}),OnKeyUp:e=>pte({f:e}),OnKeyUpPreventDefault:e=>mte({f:e}),OnKeyPress:e=>hte({f:e}),OnFocus:e=>gte({message:e}),OnBlur:e=>_te({message:e}),OnFocusEnter:e=>vte({message:e}),OnFocusLeave:e=>yte({message:e}),OnInput:e=>bte({f:e}),OnChange:e=>xte({f:e}),OnBeforeInput:e=>Ste({f:e}),OnBeforeInputPreventDefault:e=>Cte({f:e}),OnFileChange:e=>wte({f:e}),OnSubmit:e=>Tte({message:e}),OnReset:e=>Ete({message:e}),OnScroll:e=>Dte({f:e}),OnWheel:e=>Ote({message:e}),OnCopy:e=>kte({message:e}),OnCut:e=>Ate({message:e}),OnPaste:e=>jte({message:e}),OnPastePreventDefault:e=>Mte({f:e}),OnCopyText:e=>Nte({text:e}),OnCutText:(e,t)=>Pte({text:e,message:t}),OnCancel:e=>Fte({message:e}),OnCancelPreventDefault:e=>Ite({maybeCustomEventMessage:gr(e)}),OnToggle:e=>Lte({f:e}),OnContextMenu:e=>Rte({message:e}),OnDragStart:e=>zte({message:e}),OnDrag:e=>Bte({message:e}),OnDragEnd:e=>Vte({message:e}),OnDragEnter:e=>Hte({message:e}),OnDragLeave:e=>Ute({message:e}),OnDragOver:e=>Wte({message:e}),AllowDrop:()=>Gte(),OnDrop:e=>Kte({message:e}),OnDropFiles:e=>qte({f:e}),OnTouchStart:e=>Jte({message:e}),OnTouchEnd:e=>Yte({message:e}),OnTouchMove:e=>Xte({message:e}),OnTouchCancel:e=>Zte({message:e}),OnAnimationStart:e=>Qte({message:e}),OnAnimationEnd:e=>$te({message:e}),OnAnimationIteration:e=>ene({message:e}),OnTransitionEnd:e=>tne({message:e}),OnLoad:e=>nne({message:e}),OnError:e=>rne({message:e}),OnPlay:e=>ine({message:e}),OnPause:e=>ane({message:e}),OnEnded:e=>one({message:e}),OnTimeUpdate:e=>sne({message:e}),OnVolumeChange:e=>cne({message:e}),OnSelect:e=>lne({message:e}),Value:e=>une({value:e}),Checked:e=>dne({value:e}),Selected:e=>fne({value:e}),Open:e=>pne({value:e}),Placeholder:e=>mne({value:e}),Name:e=>hne({value:e}),Disabled:e=>gne({value:e}),Readonly:e=>_ne({value:e}),Required:e=>vne({value:e}),Autofocus:e=>yne({value:e}),Spellcheck:e=>bne({value:e}),Autocorrect:e=>xne({value:e}),Autocapitalize:e=>Sne({value:e}),InputMode:e=>Cne({value:e}),EnterKeyHint:e=>wne({value:e}),Multiple:e=>Tne({value:e}),Type:e=>Ene({value:e}),Accept:e=>Dne({value:e}),Autocomplete:e=>One({value:e}),Pattern:e=>kne({value:e}),Maxlength:e=>Ane({value:e}),Minlength:e=>jne({value:e}),Size:e=>Mne({value:e}),Cols:e=>Nne({value:e}),Rows:e=>Pne({value:e}),Max:e=>Fne({value:e}),Min:e=>Ine({value:e}),Step:e=>Lne({value:e}),For:e=>Rne({value:e}),Href:e=>zne({value:e}),Src:e=>Bne({value:e}),Alt:e=>Vne({value:e}),Target:e=>Hne({value:e}),Rel:e=>Une({value:e}),Download:e=>Wne({value:e}),Action:e=>Gne({value:e}),Method:e=>Kne({value:e}),Enctype:e=>qne({value:e}),Novalidate:e=>Jne({value:e}),Formaction:e=>Yne({value:e}),Formmethod:e=>Xne({value:e}),Formnovalidate:e=>Zne({value:e}),Formtarget:e=>Qne({value:e}),Formenctype:e=>$ne({value:e}),Colspan:e=>ere({value:e}),Rowspan:e=>tre({value:e}),Scope:e=>nre({value:e}),Headers:e=>rre({value:e}),Span:e=>ire({value:e}),Start:e=>are({value:e}),Reversed:e=>ore({value:e}),CiteAttr:e=>sre({value:e}),Datetime:e=>cre({value:e}),Wrap:e=>lre({value:e}),List:e=>ure({value:e}),FormAttr:e=>dre({value:e}),LabelAttr:e=>fre({value:e}),ContentAttr:e=>pre({value:e}),Charset:e=>mre({value:e}),HttpEquiv:e=>hre({value:e}),Srcset:e=>gre({value:e}),Sizes:e=>_re({value:e}),Loading:e=>vre({value:e}),Decoding:e=>yre({value:e}),Fetchpriority:e=>bre({value:e}),Crossorigin:e=>xre({value:e}),Referrerpolicy:e=>Sre({value:e}),Integrity:e=>Cre({value:e}),Hreflang:e=>wre({value:e}),Ping:e=>Tre({value:e}),Sandbox:e=>Ere({value:e}),Allow:e=>Dre({value:e}),Srcdoc:e=>Ore({value:e}),Autoplay:e=>kre({value:e}),Controls:e=>Are({value:e}),Loop:e=>jre({value:e}),Muted:e=>Mre({value:e}),Poster:e=>Nre({value:e}),Preload:e=>Pre({value:e}),Playsinline:e=>Fre({value:e}),High:e=>Ire({value:e}),Low:e=>Lre({value:e}),Optimum:e=>Rre({value:e}),Usemap:e=>zre({value:e}),Ismap:e=>Bre({value:e}),Role:e=>Vre({value:e}),AriaLabel:e=>Hre({value:e}),AriaLabelledBy:e=>Ure({value:e}),AriaDescribedBy:e=>Wre({value:e}),AriaHidden:e=>Gre({value:e}),AriaExpanded:e=>Kre({value:e}),AriaSelected:e=>qre({value:e}),AriaChecked:e=>Jre({value:e}),AriaDisabled:e=>Yre({value:e}),AriaRequired:e=>Xre({value:e}),AriaInvalid:e=>Zre({value:e}),AriaLive:e=>Qre({value:e}),AriaControls:e=>$re({value:e}),AriaCurrent:e=>eie({value:e}),AriaOrientation:e=>tie({value:e}),AriaPressed:e=>nie({value:e}),AriaHasPopup:e=>rie({value:e}),AriaActiveDescendant:e=>iie({value:e}),AriaSort:e=>aie({value:e}),AriaMultiSelectable:e=>oie({value:e}),AriaModal:e=>sie({value:e}),AriaBusy:e=>cie({value:e}),AriaErrorMessage:e=>lie({value:e}),AriaRoleDescription:e=>uie({value:e}),AriaAtomic:e=>die({value:e}),AriaAutocomplete:e=>fie({value:e}),AriaColcount:e=>pie({value:e}),AriaColindex:e=>mie({value:e}),AriaColspan:e=>hie({value:e}),AriaDescription:e=>gie({value:e}),AriaDetails:e=>_ie({value:e}),AriaFlowto:e=>vie({value:e}),AriaKeyshortcuts:e=>yie({value:e}),AriaLevel:e=>bie({value:e}),AriaOwns:e=>xie({value:e}),AriaPlaceholder:e=>Sie({value:e}),AriaPosinset:e=>Cie({value:e}),AriaReadonly:e=>wie({value:e}),AriaRelevant:e=>Tie({value:e}),AriaRowcount:e=>Eie({value:e}),AriaRowindex:e=>Die({value:e}),AriaRowspan:e=>Oie({value:e}),AriaSetsize:e=>kie({value:e}),AriaValuemax:e=>Aie({value:e}),AriaValuemin:e=>jie({value:e}),AriaValuenow:e=>Mie({value:e}),AriaValuetext:e=>Nie({value:e}),Attribute:(e,t)=>Pie({key:e,value:t}),DataAttribute:(e,t)=>Fie({key:e,value:t}),Style:e=>Iie({value:e}),InnerHTML:e=>Lie({value:e}),ViewBox:e=>Rie({value:e}),Xmlns:e=>zie({value:e}),Fill:e=>Bie({value:e}),FillRule:e=>Vie({value:e}),ClipRule:e=>Hie({value:e}),Stroke:e=>Uie({value:e}),StrokeWidth:e=>Wie({value:e}),StrokeLinecap:e=>Gie({value:e}),StrokeLinejoin:e=>Kie({value:e}),D:e=>qie({value:e}),Cx:e=>Jie({value:e}),Cy:e=>Yie({value:e}),R:e=>Xie({value:e}),X:e=>Zie({value:e}),Y:e=>Qie({value:e}),Width:e=>$ie({value:e}),Height:e=>eae({value:e}),X1:e=>tae({value:e}),Y1:e=>nae({value:e}),X2:e=>rae({value:e}),Y2:e=>iae({value:e}),Points:e=>aae({value:e}),Transform:e=>oae({value:e}),Opacity:e=>sae({value:e}),StrokeDasharray:e=>cae({value:e}),StrokeDashoffset:e=>DM({value:e}),Dx:e=>OM({value:e}),Dy:e=>kM({value:e}),Rotate:e=>AM({value:e}),TextAnchor:e=>jM({value:e}),DominantBaseline:e=>MM({value:e}),AlignmentBaseline:e=>NM({value:e}),BaselineShift:e=>PM({value:e}),TextLength:e=>FM({value:e}),LengthAdjust:e=>IM({value:e}),FontFamily:e=>LM({value:e}),FontSize:e=>RM({value:e}),FontWeight:e=>zM({value:e}),FontStyle:e=>BM({value:e}),LetterSpacing:e=>VM({value:e}),WordSpacing:e=>HM({value:e}),TextDecoration:e=>UM({value:e}),WritingMode:e=>WM({value:e}),Rx:e=>GM({value:e}),Ry:e=>KM({value:e}),PathLength:e=>qM({value:e}),FillOpacity:e=>JM({value:e}),StrokeOpacity:e=>YM({value:e}),StrokeMiterlimit:e=>XM({value:e}),PaintOrder:e=>ZM({value:e}),VectorEffect:e=>QM({value:e}),Color:e=>$M({value:e}),Visibility:e=>eN({value:e}),Display:e=>tN({value:e}),Overflow:e=>nN({value:e}),PointerEvents:e=>rN({value:e}),Cursor:e=>iN({value:e}),ShapeRendering:e=>aN({value:e}),TextRendering:e=>oN({value:e}),ImageRendering:e=>sN({value:e}),ClipPath:e=>cN({value:e}),Mask:e=>lN({value:e}),Filter:e=>uN({value:e}),ClipPathUnits:e=>dN({value:e}),MaskUnits:e=>fN({value:e}),MaskContentUnits:e=>pN({value:e}),FilterUnits:e=>mN({value:e}),PrimitiveUnits:e=>hN({value:e}),Offset:e=>gN({value:e}),StopColor:e=>_N({value:e}),StopOpacity:e=>vN({value:e}),GradientUnits:e=>yN({value:e}),GradientTransform:e=>bN({value:e}),SpreadMethod:e=>xN({value:e}),Fx:e=>SN({value:e}),Fy:e=>CN({value:e}),Fr:e=>wN({value:e}),PatternUnits:e=>TN({value:e}),PatternContentUnits:e=>EN({value:e}),PatternTransform:e=>DN({value:e}),MarkerStart:e=>ON({value:e}),MarkerMid:e=>kN({value:e}),MarkerEnd:e=>AN({value:e}),MarkerWidth:e=>jN({value:e}),MarkerHeight:e=>MN({value:e}),MarkerUnits:e=>NN({value:e}),RefX:e=>PN({value:e}),RefY:e=>FN({value:e}),Orient:e=>IN({value:e}),PreserveAspectRatio:e=>LN({value:e}),OnMount:e=>RN({action:e}),OnUnmount:e=>zN({message:e})}),UP={...VP(),...HP(),empty:null,keyed:BP(),submodel:e=>See(e,UP)},WP=()=>UP,GP=WP(),KP=Symbol.for(`foldkit/CommandDefinition`),qP=(e,t)=>{Object.defineProperty(e,"name",{value:t,configurable:!0}),Object.defineProperty(e,KP,{value:KP})},JP=rO({Interrupted:{},NotFound:{}}),YP=()=>{let e=new Map,t=t=>w(gr(e.get(t)),{onNone:()=>[],onSome:e=>Bi(e)});return{lookup:t,register:(t,n)=>{w(gr(e.get(t)),{onNone:()=>{e.set(t,new Set([n]))},onSome:e=>{e.add(n)}})},release:(t,n)=>{let r=gr(e.get(t));C(r)&&(r.value.delete(n),r.value.size===0&&e.delete(t))},interrupt:e=>Tp(()=>Ui(t(e),{onEmpty:()=>E(JP.NotFound()),onNonEmpty:e=>Vp(VC(e),()=>JP.Interrupted())}))}},XP=fi(`foldkit/Command/Interruptible/CurrentRegistry`,{defaultValue:YP}),ZP=(e,t)=>Fp(n=>O(function*(){let r=yield*XP;return yield*bm(i=>Tp(()=>(r.register(e,n),i(t).pipe(pm(D(()=>r.release(e,n)))))))})),QP=(e,t)=>O(function*(){return t(yield*(yield*XP).interrupt(e))}),$P=(e,t)=>{let n=`${e}.Interrupt`,r=e=>({name:n,interruptsKey:t,effect:QP(t,e),messageMappers:[]});return qP(r,n),r},eF=(e,t)=>{let n=`${e}.Interrupt`,r=(e,r)=>{let i=t(e);return{name:n,args:e,interruptsKey:i,effect:QP(i,r),messageMappers:[]}};return qP(r,n),r},tF=(e,t)=>Tp(()=>e.execute(t));function F(e,t){let n=le(t.args),r=gr(t.interrupt);if(pr(r)){if(n){let n=n=>({name:e,args:n,effect:tF(t,n),messageMappers:[]});return qP(n,e),n}{let n=()=>({name:e,effect:t.execute,messageMappers:[]});return qP(n,e),n}}let{value:i}=r,a=he(i)&&_e(i,`toKey`)&&se(i.toKey)?S(i.toKey):x();if(!n){let n=()=>({name:e,key:e,effect:ZP(e,t.execute),messageMappers:[]});return qP(n,e),Object.defineProperty(n,"Interrupt",{value:$P(e,e)}),n}if(pr(a)){let n=n=>({name:e,args:n,key:e,effect:ZP(e,tF(t,n)),messageMappers:[]});return qP(n,e),Object.defineProperty(n,"Interrupt",{value:$P(e,e)}),n}let{value:o}=a,s=t=>`${e}:${o(t)}`,c=n=>{let r=s(n);return{name:e,args:n,key:r,effect:ZP(r,tF(t,n)),messageMappers:[]}};return qP(c,e),Object.defineProperty(c,"Interrupt",{value:eF(e,s)}),c}o(2,(e,t)=>({...e,effect:t(e.effect)}));var nF=o(2,(e,t)=>{let n=e;return{...n,effect:Vp(e.effect,t),messageMappers:[...n.messageMappers??[],t]}}),rF=o(2,(e,t)=>T(e??[],e=>nF(e,t))),iF=class extends No(`ElementNotFound`){},aF=class extends Nr()(`@foldkit/RenderCommit`){},oF=()=>{let e=!1,t=new Set;return{service:{isCommitPending:()=>e,onNextCommit:e=>(t.add(e),()=>{t.delete(e)})},markCommitPending:()=>{e=!0},notifyCommitted:()=>{e=!1;let n=Bi(t);t.clear(),n.forEach(e=>e())}}},sF=Dp(e=>{let t=requestAnimationFrame(()=>e(Ep));return D(()=>cancelAnimationFrame(t))}),cF=e=>Dp(t=>{if(e.isCommitPending())return D(e.onNextCommit(()=>t(Ep)));let n=requestAnimationFrame(()=>t(Ep));return D(()=>cancelAnimationFrame(n))}),lF=O(function*(){return yield*w(yield*om(aF),{onNone:()=>sF,onSome:cF})}),uF=O(function*(){yield*lF,yield*sF}),dF=class extends Nr()(`@foldkit/DialogRuntime`){},fF={originals:new Map,counts:new Map,cleanups:new Map,requests:new Map},pF=e=>{let t=fF.counts.get(e)??0;return fF.counts.set(e,Zf(t)),t===0&&(fF.originals.set(e,{ariaHidden:e.getAttribute(`aria-hidden`),inert:e.inert}),e.setAttribute(`aria-hidden`,`true`),e.inert=!0),()=>mF(e)},mF=e=>{let t=fF.counts.get(e)??1;if(t===1){let t=fF.originals.get(e);t&&(ue(t.ariaHidden)?e.removeAttribute(`aria-hidden`):e.setAttribute(`aria-hidden`,t.ariaHidden),e.inert=t.inert,fF.originals.delete(e)),fF.counts.delete(e)}else fF.counts.set(e,Qf(t))},hF=(e,t)=>{let n=fF.originals.get(e);n!==void 0&&(t===`aria-hidden`?fF.originals.set(e,{...n,ariaHidden:e.getAttribute(`aria-hidden`)}):fF.originals.set(e,{...n,inert:e.inert}))},gF=e=>Aa(e,e=>wi(document.querySelector(e),e=>e instanceof HTMLElement,()=>void 0)),_F=e=>Fa(e.parentElement,e=>de(e)?S([e,e===document.body?null:e.parentElement]):x()),vF=(e,t)=>m(e.children,Bi,Aa(e=>e instanceof HTMLElement&&!Pa(t,t=>e.contains(t))?gi(e):vi)),yF=e=>{let t=new Set;for(let n of e)for(let r of _F(n))for(let n of vF(r,e))t.add(n);return t},bF=()=>{let e=new Map;return{update:t=>{let n=yF(t);for(let[t,r]of e)n.has(t)||(r(),e.delete(t));for(let t of n)e.has(t)?(t.getAttribute(`aria-hidden`)!==`true`&&t.setAttribute(`aria-hidden`,`true`),t.inert||=!0):e.set(t,pF(t))},contains:t=>e.has(t),recordAttributeMutation:(t,n)=>{e.has(t)&&hF(t,n)},dispose:()=>{for(let t of e.values())t();e.clear()}}},xF=e=>{let t=bF();return t.update(e),t.dispose},SF=(e,t)=>O(function*(){let n=yield*D(()=>{let t=Symbol();return fF.requests.set(e,t),t});if(yield*lF,fF.requests.get(e)!==n)return;let r=gF(t);fF.cleanups.set(e,[xF(r)])}),CF=e=>D(()=>{fF.requests.delete(e);let t=fF.cleanups.get(e);t&&(La(t,e=>e()),fF.cleanups.delete(e))}),wF={count:0,overflow:``,paddingRight:``},TF=()=>{let{platform:e,maxTouchPoints:t}=window.navigator,n=/iPhone/gi.test(e),r=/Mac/gi.test(e)&&t>0;return n||r},EF=e=>{let t=window.getComputedStyle(e).overflowY;return(t===`auto`||t===`scroll`)&&e.scrollHeight>e.clientHeight},DF=e=>{let t=e;for(;t&&t!==document.documentElement;){if(EF(t))return t;t=t.parentElement}return null},OF=e=>{let t=e.composedPath()[0];return t instanceof Element?t:null},kF=e=>{let t=OF(e);t&&!DF(t)&&e.preventDefault()},AF=D(()=>{let{documentElement:e,documentElement:{style:t}}=document;if(wF.count===0){wF.overflow=t.overflow,wF.paddingRight=t.paddingRight;let n=window.innerWidth-e.clientWidth;t.overflow=`hidden`,t.paddingRight=n>0?`${n}px`:t.paddingRight,TF()&&document.addEventListener(`touchmove`,kF,{passive:!1})}wF.count++}),jF=D(()=>{if(wF.count=Math.max(0,Qf(wF.count)),wF.count===0){let{documentElement:{style:e}}=document;e.overflow=wF.overflow,e.paddingRight=wF.paddingRight,document.removeEventListener(`touchmove`,kF)}}),MF=0,NF=new Map,PF=[],FF,IF,LF=[],RF=[],zF=[],BF=new Set,VF=e=>e instanceof Element||e instanceof DocumentFragment?Pa(zF,t=>{try{return e instanceof Element&&e.matches(t)||e.querySelector(t)!==null}catch{return!1}}):!1,HF=e=>Pa(LF,t=>e.contains(t)),UF=e=>{if(e.type===`attributes`&&(e.attributeName===`aria-hidden`||e.attributeName===`inert`))return e.target instanceof HTMLElement&&FF?.contains(e.target)===!0;if(e.type===`attributes`)return Pa(RF,t=>e.target.contains(t))||VF(e.target);let t=[...Bi(e.addedNodes),...Bi(e.removedNodes)];return e.target instanceof HTMLElement&&BF.has(e.target)&&Pa(t,e=>e instanceof Element)?!0:Pa(t,e=>HF(e)||VF(e))},WF=e=>{let t=new Set;for(let n of e){let e=n.parentElement;for(;e!==null&&(t.add(e),e!==document.body);)e=e.parentElement}return t},GF=e=>{for(let t of e)t.type===`attributes`&&t.target instanceof HTMLElement&&(t.attributeName===`aria-hidden`||t.attributeName===`inert`)&&FF?.recordAttributeMutation(t.target,t.attributeName)},KF=()=>{IF!==void 0&&GF(IF.takeRecords()),IF?.disconnect();let e=ia(ja(PF,e=>e.isModal));if(pr(e)){IF?.disconnect(),IF=void 0,FF?.dispose(),FF=void 0,LF=[],RF=[],zF=[],BF=new Set;return}let{allowedOutsideSelectors:t}=e.value,n=ma(PF,t=>t!==e.value),r=Aa(t,e=>{try{let t=document.querySelector(e);return t instanceof HTMLElement?gi(t):vi}catch{return vi}}),i=[...T(n,e=>e.element),...r];FF??=bF(),FF.update(i),LF=i,RF=r,zF=t,BF=WF(i),IF??=new MutationObserver(e=>{Pa(e,UF)&&(GF(e),KF())}),IF.observe(document.body,{childList:!0,subtree:!0,attributes:!0})};Ra([`a[href]:not([tabindex="-1"])`,`button:not([disabled]):not([tabindex="-1"])`,`input:not([disabled]):not([tabindex="-1"])`,`select:not([disabled]):not([tabindex="-1"])`,`textarea:not([disabled]):not([tabindex="-1"])`,`[tabindex]:not([tabindex="-1"])`],`, `);var qF=e=>e.closest(`[hidden], [inert]`)===null&&e.checkVisibility({visibilityProperty:!0}),JF=e=>!(e instanceof HTMLElement)||e.matches(`:disabled`)||e instanceof HTMLInputElement&&e.type===`hidden`||e.tabIndex<0&&!e.hasAttribute(`tabindex`)?!1:qF(e),YF=e=>document.contains(e)?e instanceof HTMLDialogElement?e.open&&qF(e):JF(e):!1,XF=e=>Tp(()=>{let t=document.querySelector(e);return t instanceof HTMLElement?E(t):kp(new iF({selector:e}))}),ZF=(e,t)=>O(function*(){yield*lF;let n=yield*XF(e);t?.makeFocusable&&!n.hasAttribute(`tabindex`)&&n.setAttribute(`tabindex`,`-1`),n.focus({preventScroll:t?.preventScroll??!1})}),QF=e=>{let t=NF.get(e);if(t===void 0)return!1;let n=_a(PF,t=>t.id===e),r=jr(ia(PF),t=>t.id===e);if(C(n))for(let r of PF){if(r.id===e)continue;let i=NF.get(r.id),a=i?.returnFocus;i!==void 0&&a!==void 0&&n.value.element.contains(a)&&NF.set(r.id,{...i,returnFocus:t.returnFocus})}PF=ja(PF,t=>t.id!==e),KF(),MF=Math.max(0,Qf(MF)),t.removeKeydownListener(),NF.delete(e),t.unregisterOwner?.();let{returnFocus:i}=t;return r&&i!==void 0&&YF(i)&&i.focus(),!0},$F=e=>Tp(()=>QF(e)?Hp(jF,!0):E(!1)),eI=e=>O(function*(){yield*lF,(yield*XF(e)).click()}),tI=(e,t)=>O(function*(){yield*lF,(yield*XF(e)).scrollIntoView({block:t?.block??`nearest`})}),nI=e=>`${e.x},${e.y}`,rI=e=>O(function*(){return yield*lF,yield*Dp((t,n)=>{let r=document.querySelector(e);if(!(r instanceof HTMLElement))return t(Ep);let i=nI(r.getBoundingClientRect()),a=()=>{s.disconnect(),window.removeEventListener(`scroll`,o,{capture:!0}),window.removeEventListener(`resize`,o)},o=()=>{nI(r.getBoundingClientRect())!==i&&(a(),t(Ep))},s=new ResizeObserver(o);s.observe(r),window.addEventListener(`scroll`,o,{passive:!0,capture:!0}),window.addEventListener(`resize`,o),n.addEventListener(`abort`,a)})}),iI=e=>typeof e==`function`?e():e,aI=e=>vE(t=>dm(D(()=>{let n=iI(e.target),r=n=>{let r=e.filterMapEvent(n);C(r)&&Bw(t,r.value)};return n.addEventListener(e.type,r,e.options),{target:n,handleEvent:r}}),({target:t,handleEvent:n})=>D(()=>{t.removeEventListener(e.type,n,e.options)})).pipe(k(()=>Op))),oI=e=>aI(e),sI=e=>Dp(t=>{requestAnimationFrame(async()=>{let n=document.querySelector(e),r=n instanceof HTMLElement?n.getAnimations():[];await Promise.allSettled(r.map(({finished:e})=>e)),t(Ep)})}),cI=`~effect/http/HttpBody`,lI=e=>_e(e,cI),uI=class{[cI];constructor(){this[cI]=cI}[St](){return this.toJSON()}toString(){return mt(this,{ignoreToString:!0})}},dI=new class extends uI{_tag=`Empty`;toJSON(){return{_id:`effect/HttpBody`,_tag:`Empty`}}},fI=class extends uI{_tag=`Uint8Array`;contentType;contentLength;text;_body;constructor(e,t,n,r){super(),this._body=e,this.text=r,this.contentType=t,this.contentLength=n}get body(){return this._body??=gI(this.text)}toJSON(){return{_id:`effect/HttpBody`,_tag:`Uint8Array`,body:this.contentType.startsWith(`text/`)||this.contentType.endsWith(`json`)?new TextDecoder().decode(this.body):`Uint8Array(${this.body.length})`,contentType:this.contentType,contentLength:this.contentLength}}},pI=(e,t)=>new fI(e,t??`application/octet-stream`,e.length),mI=new TextEncoder,hI=globalThis.Buffer,gI=hI===void 0?e=>mI.encode(e):e=>hI.from(e,`utf8`),_I=(e,t)=>{if(typeof e!=`string`&&(e=e===void 0?``:String(e)),hI!==void 0)return new fI(void 0,t??`text/plain`,hI.byteLength(e,`utf8`),e);let n=mI.encode(e);return new fI(n,t??`text/plain`,n.length,e)},vI=(e,t)=>_I(o_(Qg(e)),t??`application/x-www-form-urlencoded`),yI=class extends uI{_tag=`FormData`;contentType=void 0;contentLength=void 0;formData;constructor(e){super(),this.formData=e}toJSON(){return{_id:`effect/HttpBody`,_tag:`FormData`,formData:this.formData}}},bI=e=>new yI(e),xI=`~effect/http/HttpClientError`,SI=class extends No(`HttpClientError`){constructor(e){`cause`in e.reason?super({...e,cause:e.reason.cause}):super(e)}[xI]=xI;get request(){return this.reason.request}get response(){return`response`in this.reason?this.reason.response:void 0}get message(){return this.reason.message}},CI=e=>e.endsWith(`Error`)?e.slice(0,-5):e,wI=(e,t,n)=>t?`${e}: ${t} (${n})`:`${e} error (${n})`,TI=class extends No(`TransportError`){get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){return wI(CI(this._tag),this.description,this.methodAndUrl)}},EI=class extends No(`InvalidUrlError`){get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){return wI(CI(this._tag),this.description,this.methodAndUrl)}},DI=class extends No(`StatusCodeError`){get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){let e=`${this.response.status} ${this.methodAndUrl}`;return wI(CI(this._tag),this.description,e)}},OI=class extends No(`DecodeError`){get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){let e=`${this.response.status} ${this.methodAndUrl}`;return wI(CI(this._tag),this.description,e)}},kI=class extends No(`EmptyBodyError`){get methodAndUrl(){return`${this.request.method} ${this.request.url}`}get message(){let e=`${this.response.status} ${this.methodAndUrl}`;return wI(CI(this._tag),this.description,e)}},AI=e=>e!==`GET`&&e!==`HEAD`&&e!==`OPTIONS`&&e!==`TRACE`,jI=[[`GET`,`get`],[`POST`,`post`],[`PUT`,`put`],[`DELETE`,`del`],[`PATCH`,`patch`],[`HEAD`,`head`],[`OPTIONS`,`options`],[`TRACE`,`trace`],[`QUERY`,`query`]],MI=(e,t)=>t._tag===`Empty`||t._tag===`FormData`?Wg(Wg(e,`content-type`),`content-length`):(e=t.contentType===void 0?Wg(e,`content-type`):Vg(e,`content-type`,t.contentType),t.contentLength===void 0?Wg(e,`content-length`):Vg(e,`content-length`,t.contentLength.toString())),NI=class extends No(`UrlError`){},PI=(e,t,n)=>yi({try:()=>{let r=new URL(e,FI());for(let e=0;e<t.params.length;e++){let[n,i]=t.params[e];i!==void 0&&r.searchParams.append(n,i)}return n!==void 0&&(r.hash=n),r},catch:e=>new NI({cause:e})}),FI=()=>{if(`location`in globalThis&&globalThis.location!==void 0&&globalThis.location.origin!==void 0&&globalThis.location.pathname!==void 0)return location.origin+location.pathname},II=`~effect/http/HttpClientRequest`,LI={[II]:II,...Tt,toJSON(){return{_id:`HttpClientRequest`,method:this.method,url:this.url,urlParams:this.urlParams,hash:this.hash,headers:lt(this.headers),body:this.body.toJSON()}},pipe(){return r(this,arguments)}};function RI(e,t,n,r,i,a){let o=Object.create(LI);return o.method=e,o.url=t,o.urlParams=n,o.hash=r,o.headers=i,o.body=a,o}var zI=RI(`GET`,``,n_,x(),Rg,dI),BI=e=>(t,n)=>VI(zI,{method:e,url:t,...n??void 0}),VI=o(2,(e,t)=>{let n=e;return t.method&&(n=HI(n,t.method)),t.url&&(n=qI(n,t.url)),t.headers&&(n=WI(n,t.headers)),t.urlParams&&(n=XI(n,t.urlParams)),t.hash&&(n=QI(n,t.hash)),t.body&&(n=$I(n,t.body)),t.accept&&(n=GI(n,t.accept)),t.acceptJson&&(n=KI(n)),n}),HI=o(2,(e,t)=>RI(t,e.url,e.urlParams,e.hash,e.headers,e.body)),UI=o(3,(e,t,n)=>RI(e.method,e.url,e.urlParams,e.hash,Vg(e.headers,t,n),e.body)),WI=o(2,(e,t)=>RI(e.method,e.url,e.urlParams,e.hash,Hg(e.headers,t),e.body)),GI=o(2,(e,t)=>UI(e,`Accept`,t)),KI=GI(`application/json`),qI=o(2,(e,t)=>{if(typeof t==`string`)return RI(e.method,t,e.urlParams,e.hash,e.headers,e.body);let n=new URL(t.toString()),r=Qg(n.searchParams),i=gr(n.hash===``?void 0:n.hash.slice(1));return n.search=``,n.hash=``,RI(e.method,n.toString(),r,i,e.headers,e.body)}),JI=o(2,(e,t)=>t===``?e:RI(e.method,YI(t,e.url),e.urlParams,e.hash,e.headers,e.body)),YI=(e,t)=>{let n=e.endsWith(`/`),r=t.startsWith(`/`);return n&&r?e+t.slice(1):!n&&!r?e+`/`+t:e+t},XI=o(2,(e,t)=>RI(e.method,e.url,i_(e.urlParams,t),e.hash,e.headers,e.body)),ZI=o(2,(e,t)=>RI(e.method,e.url,a_(e.urlParams,t),e.hash,e.headers,e.body)),QI=o(2,(e,t)=>RI(e.method,e.url,e.urlParams,S(t),e.headers,e.body)),$I=o(2,(e,t)=>RI(e.method,e.url,e.urlParams,e.hash,MI(e.headers,t),t)),eL=o(2,(e,t)=>$I(e,bI(t)));function tL(e){let t=PI(e.url,e.urlParams,yr(e.hash));return Si(t)?S(t.success):x()}var nL=`~effect/http/HttpIncomingMessage`,rL=(e,t)=>{let n=e.headers[`content-type`]??``,r;if(n.includes(`application/json`))try{r=Am(e.json)}catch{}else if(n.includes(`text/`)||n.includes(`urlencoded`))try{r=Am(e.text)}catch{}let i={...t,headers:lt(e.headers),remoteAddress:e.remoteAddress};return r!==void 0&&(i.body=r),i},iL=`~effect/http/HttpClientResponse`,aL=(e,t)=>new oL(e,t),oL=class extends Et{[nL];[iL];request;source;constructor(e,t){super(),this.request=e,this.source=t,this[nL]=nL,this[iL]=iL}toJSON(){return rL(this,{_id:`HttpClientResponse`,request:this.request.toJSON(),status:this.status})}get status(){return this.source.status}get url(){if(this.source.url)return this.source.url.split(`#`)[0];let e=tL(this.request);return pr(e)?``:(e.value.hash=``,e.value.href)}get headers(){return zg(this.source.headers)}cachedCookies;get cookies(){return this.cachedCookies?this.cachedCookies:this.cachedCookies=wg(this.source.headers.getSetCookie())}get remoteAddress(){return x()}get stream(){return this.source.body?TE({evaluate:()=>this.source.body,onError:e=>new SI({reason:new OI({request:this.request,response:this,cause:e})})}):SE(new SI({reason:new kI({request:this.request,response:this,description:`can not create stream from empty body`})}))}get json(){return k(this.text,e=>Np({try:()=>e===``?null:JSON.parse(e),catch:e=>new SI({reason:new OI({request:this.request,response:this,cause:e})})}))}textBody;get text(){return this.textBody??=Vp(this.arrayBuffer,e=>new TextDecoder().decode(e))}get urlParamsBody(){return k(this.text,e=>Np({try:()=>Qg(new URLSearchParams(e)),catch:e=>new SI({reason:new OI({request:this.request,response:this,cause:e})})}))}formDataBody;get formData(){return this.formDataBody??=Cp({try:()=>this.source.formData(),catch:e=>new SI({reason:new OI({request:this.request,response:this,cause:e})})}).pipe(gm,Am)}arrayBufferBody;get arrayBuffer(){return this.arrayBufferBody||=Cp({try:()=>this.source.arrayBuffer(),catch:e=>new SI({reason:new OI({request:this.request,response:this,cause:e})})}).pipe(gm,Am),this.arrayBufferBody}pipe(){return r(this,arguments)}},sL=e=>Bg({b3:`${e.traceId}-${e.spanId}-${e.sampled?`1`:`0`}${w(e.parent,{onNone:()=>``,onSome:e=>`-${e.spanId}`})}`,traceparent:`00-${e.traceId}-${e.spanId}-${e.sampled?`01`:`00`}`}),cL=`~effect/http/HttpClient`,lL=Nr(`effect/HttpClient`),uL=o(2,(e,t)=>dL(n=>t(e.postprocess(n)),e.preprocess)),dL=(e,t)=>{let n=Object.create(fL);return n.preprocess=t,n.postprocess=e,n.execute=function(n){return e(t(n))},n},fL={[cL]:cL,pipe(){return r(this,arguments)},...Tt,toJSON(){return{_id:`effect/HttpClient`}},...Object.fromEntries(jI.map(([e,t])=>[t,function(t,n){return this.execute(BI(e)(t,n))}]))},pL=e=>dL(t=>k(t,t=>Fp(n=>{let r=xL.get(t),i=r??new AbortController,a=PI(t.url,t.urlParams,yr(t.hash));if(xi(a))return kp(new SI({reason:new EI({request:t,cause:a.failure})}));let o=a.success;if(n.getRef(Go)||n.getRef(hL)(t)){let a=e(t,o,i.signal,n);return r?a:bm(e=>tm(e(a),{onSuccess(e){return bL.register(e,i),E(new SL(e,i))},onFailure(e){return Kd(e)&&i.abort(),Ap(e)}}))}return Sm(n.getRef(vL)(t),{kind:`client`},a=>{a.attribute(`http.request.method`,t.method),a.attribute(`server.address`,o.origin),o.port!==``&&a.attribute(`server.port`,+o.port),a.attribute(`url.full`,o.toString()),a.attribute(`url.path`,o.pathname),a.attribute(`url.scheme`,o.protocol.slice(0,-1));let s=o.search.slice(1);s!==``&&a.attribute(`url.query`,s);let c=n.getRef(qg),l=n.getRef(gL);for(let e in t.headers)l(e,`request`)&&a.attribute(`http.request.header.${e}`,Kg(e,c)?`<redacted>`:t.headers[e]);return t=n.getRef(_L)?WI(t,sL(a)):t,bm(s=>s(e(t,o,i.signal,n)).pipe(wm(a,{captureStackTrace:!1}),tm({onSuccess:e=>{a.attribute(`http.response.status_code`,e.status);for(let t in e.headers)l(t,`response`)&&a.attribute(`http.response.header.${t}`,Kg(t,c)?`<redacted>`:e.headers[t]);return r?E(e):(bL.register(e,i),E(new SL(e,i)))},onFailure(e){return!r&&Kd(e)&&i.abort(),Ap(e)}})))})})),E),mL=o(2,(e,t)=>dL(e.postprocess,n=>Vp(e.preprocess(n),t))),hL=fi(`effect/http/HttpClient/TracerDisabledWhen`,{defaultValue:()=>u}),gL=fi(`effect/http/HttpClient/TracerHeaderFilter`,{defaultValue:()=>l}),_L=fi(`effect/http/HttpClient/TracerPropagationEnabled`,{defaultValue:l}),vL=fi(`effect/http/HttpClient/SpanNameGenerator`,{defaultValue:()=>e=>`http.client ${e.method}`}),yL=e=>Ff(lL)(rm(t=>Vp(e,e=>uL(e,sm(e=>ui(t,e)))))),bL=(()=>{if(`FinalizationRegistry`in globalThis&&globalThis.FinalizationRegistry){let e=new FinalizationRegistry(e=>{e.abort()});return{register(t,n){e.register(t,n,t)},unregister(t){e.unregister(t)}}}let e=new Map;return{register(t,n){e.set(t,setTimeout(()=>n.abort(),5e3))},unregister(t){let n=e.get(t);n!==void 0&&(clearTimeout(n),e.delete(t))}}})(),xL=new WeakMap,SL=class{original;controller;constructor(e,t){this.original=e,this.controller=t}[iL]=iL;[nL]=nL;applyInterrupt(e){return Tp(()=>(bL.unregister(this.original),vm(e,()=>D(()=>{this.controller.abort()}))))}get request(){return this.original.request}get url(){return this.original.url}get status(){return this.original.status}get headers(){return this.original.headers}get cookies(){return this.original.cookies}get remoteAddress(){return this.original.remoteAddress}get formData(){return this.applyInterrupt(this.original.formData)}get text(){return this.applyInterrupt(this.original.text)}get json(){return this.applyInterrupt(this.original.json)}get urlParamsBody(){return this.applyInterrupt(this.original.urlParamsBody)}get arrayBuffer(){return this.applyInterrupt(this.original.arrayBuffer)}get stream(){return xE(()=>(bL.unregister(this.original),HE(this.original.stream,D(()=>{this.controller.abort()}))))}toJSON(){return this.original.toJSON()}[St](){return this.original[St]()}pipe(){return r(this,arguments)}},CL=fi(`effect/http/FetchHttpClient/Fetch`,{defaultValue:()=>globalThis.fetch}),wL=class extends Nr()(`effect/http/FetchHttpClient/RequestInit`){},TL=yL(E(pL((e,t,n,r)=>{let i=r.getRef(CL),a=ni(r.context,wL)??{},o=a.headers?Ug(zg(a.headers),e.headers):e.headers;o[`content-length`]&&(o=Wg(o,`content-length`));let s=r=>Vp(Cp({try:()=>i(t,{...a,method:e.method,headers:o,body:r,duplex:typeof ReadableStream<`u`&&r instanceof ReadableStream?`half`:void 0,signal:n}),catch:t=>new SI({reason:new TI({request:e,cause:t})})}),t=>aL(e,t));switch(e.body._tag){case`Raw`:case`Uint8Array`:return s(e.body.body);case`FormData`:return s(e.body.formData);case`Stream`:return k(qE(e.body.stream),s)}return s(void 0)})));({...Wt});var EL=new Uint8Array(256);for(let e of"!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")EL[e.charCodeAt(0)]=1;var DL=new Uint8Array(256);DL[9]=1;for(let e=32;e<=126;e++)DL[e]=1;for(let e=128;e<=255;e++)DL[e]=1;var OL=Nr(`effect/http/HttpServerRequest`),kL=new WeakSet,AL=e=>Fp(t=>{let n=ii(t.context,OL);return kL.add(n.source),e}),jL=Nr(`effect/http/HttpRouter`),ML=e=>e.endsWith(`/`)?e.slice(0,-1):e,NL=o(2,(e,t)=>(t=ML(t),e===`*`?`${t}/*`:e===`/`?t:t+e)),PL=`~effect/http/HttpRouter/Middleware`,FL=function(){return arguments.length===0?IL:IL(arguments[0],arguments[1])},IL=(e,t)=>t?.global?Rf(O(function*(){let t=yield*jL,n=vp(e)?yield*e:e;yield*t.addGlobalMiddleware(n)})):new zL(vp(e)?Lf(Vp(e,e=>Kr(new Map([[RL,e]])))):Nf(Kr(new Map([[RL,e]])))),LL=0,RL=`effect/http/HttpRouter/MiddlewareFn`,zL=class e{[PL]={};layerFn;dependencies;constructor(e,t){this.layerFn=e,this.dependencies=t;let n=`effect/http/HttpRouter/Middleware-${++LL}`;this.layer=Lf(O({self:this},function*(){let e=yield*nm(),t=[ri(e,RL)];if(this.dependencies){let n=yield*kf,r=ai(e,df),i=yield*Af(this.dependencies,n,r);t.push(...VL(i))}return Kr(new Map([[n,t]]))})).pipe(Uf(this.layerFn))}layer;combine(t){return new e(this.layerFn,this.dependencies?Wf(this.dependencies,t.layer):t.layer)}},BL=new WeakMap,VL=e=>{let t=BL.get(e);if(t)return t;let n=Ea(),r=0;for(let[t,i]of e.mapUnsafe)t.startsWith(`effect/http/HttpRouter/Middleware-`)&&(n.push(i),i.length>r&&(r=i.length));if(n.length===0)t=[];else{let e=new Set;for(let t=r-1;t>=0;t--)for(let r of n)t<r.length&&e.add(r[t]);t=Bi(e).reverse()}return BL.set(e,t),t};FL(AL).layer;var HL={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,OK:200,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511},UL=e=>HL[e],WL=kr(op);o(2,(e,t)=>kr(t,()=>e));var GL=e=>h(kr(cp(e)),xr(ip(e.length))),KL=e=>h(GL(e),Cr(WL)),qL=M({protocol:A,host:A,port:CC(A),pathname:A,search:CC(A),hash:CC(A)}),JL=M({href:A,location:M({protocol:A,host:A,port:A})}),YL=A.pipe(ZS(JL,_v({decode:e=>Np({try:()=>{let t=new URL(e);return{href:`${t.pathname}${t.search}${t.hash}`,location:{protocol:t.protocol,host:t.hostname,port:t.port}}},catch:()=>new j_({message:`Invalid URL: ${e}`})}),encode:({href:e,location:t})=>{let n=t.port?`:${t.port}`:``;return E(`${t.protocol}//${t.host}${n}${e}`)}}))),XL=JL.pipe(ZS(qL,vv({decode:({href:e,location:t})=>{let[n,r]=sp(e,`#`),[i,a]=sp(n,`?`);return{protocol:t.protocol,host:t.host,port:WL(t.port),pathname:i||`/`,search:WL(a||``),hash:WL(r||``)}},encode:e=>{let t=w(e.search,{onNone:()=>``,onSome:e=>`?${e}`}),n=w(e.hash,{onNone:()=>``,onSome:e=>`#${e}`});return{href:`${e.pathname}${t}${n}`,location:{protocol:e.protocol,host:e.host,port:mr(e.port,()=>``)}}}}))),ZL=YL.pipe(ZS(XL)),QL=e=>CS(ZL)(e),$L=e=>DS(ZL)(e),eR=rO({Internal:{url:qL},External:{href:A}}),tR=e=>D(()=>{window.history.pushState({},``,e),window.dispatchEvent(new CustomEvent(`foldkit:urlchange`))}),nR=e=>D(()=>window.location.assign(e)),rR=()=>e=>e(((e,t)=>({dependenciesSchema:M(e),...t}))),iR=e=>{let t={};for(let n of e)for(let e of Object.keys(n)){if(Object.hasOwn(t,e))throw Error(`Subscription.aggregate: duplicate key "${e}" across records`);Object.defineProperty(t,e,{configurable:!0,enumerable:!0,value:n[e],writable:!0})}return t},aR=((...e)=>Ui(e,{onEmpty:()=>(...e)=>iR(e),onNonEmpty:iR})),oR=e=>({dependenciesSchema:M({}),modelToDependencies:()=>({}),dependenciesToStream:()=>e}),sR=(e,t)=>e===void 0?l:typeof e==`function`?e:m(ji(e,t),Cr(gr),mr(()=>l)),cR=(e,t)=>kE(t,e.toParentMessage),lR=(e,t,n)=>{let r=M({maybeDependencies:CC(e.dependenciesSchema)}),i=r=>({maybeDependencies:m(r,kr(n),Cr(t.read),xr(e.modelToDependencies))});if(e.keepAliveEquivalence!==void 0){let n=Or(e.keepAliveEquivalence);return{dependenciesSchema:r,modelToDependencies:i,keepAliveEquivalence:(e,t)=>n(e.maybeDependencies,t.maybeDependencies),dependenciesToStream:(n,r)=>w(n.maybeDependencies,{onNone:()=>yE,onSome:n=>cR(t,e.dependenciesToStream(n,()=>mr(r().maybeDependencies,()=>n)))})}}return{dependenciesSchema:r,modelToDependencies:i,dependenciesToStream:n=>w(n.maybeDependencies,{onNone:()=>yE,onSome:n=>cR(t,e.dependenciesToStream(n))})}},uR=e=>t=>Mi(e,(e,n)=>lR(e,t,sR(t.when,n))),dR={isConfigured:!1,lookupInbound:()=>x(),lookupOutbound:()=>x()},fR=fi(`foldkit/Port/CurrentPortChannels`,{defaultValue:()=>dR}),pR=()=>{let e=new Set,t=S([]);return{deliver:n=>{e.size>0?e.forEach(e=>e(n)):C(t)&&t.value.push(n)},attach:n=>{if(e.add(n),C(t)){let{value:e}=t;t=x(),e.forEach(n)}return()=>{e.delete(n)}}}},mR=class extends No(`ParseError`){},hR=h(sp(`/`),ja(op)),gR=e=>({parse:t=>Wi(t,{onEmpty:()=>kp(new mR({message:`Expected '${e}'`,expected:e,actual:`end of path`,position:0})),onNonEmpty:(t,n)=>t===e?E([{},n]):kp(new mR({message:`Expected '${e}'`,expected:e,actual:t,position:0}))}),print:(t,n)=>E({...n,segments:[...n.segments,e]})}),_R=(e,t,n)=>({parse:n=>Wi(n,{onEmpty:()=>kp(new mR({message:`Expected ${e}`,expected:e,actual:`end of path`,position:0})),onNonEmpty:(e,n)=>m(e,t,Vp(e=>[e,n]))}),print:(e,t)=>E({...t,segments:[...t.segments,n(e)]})}),vR=e=>_R(`string (${e})`,t=>E({[e]:t}),t=>t[e]),yR={parse:e=>Wi(e,{onEmpty:()=>E([{},[]]),onNonEmpty:(e,t)=>kp(new mR({message:`Expected root path`,expected:`root path`,actual:`${t.length+1} remaining segments`}))}),print:(e,t)=>E(t)},bR=([e,t])=>Ui(t,{onEmpty:()=>E([e,t]),onNonEmpty:()=>{let e=Ra(t,`/`);return kp(new mR({message:`Unexpected remaining segments: ${e}`,actual:e}))}}),xR=(...e)=>({parse:(t,n)=>Wi(e,{onEmpty:()=>kp(new mR({message:`No parsers provided for path: /${Ra(t,`/`)}`})),onNonEmpty:()=>Xp(T(e,e=>m(e.parse(t,n),k(bR))))})}),SR=e=>t=>{let n=ER(t);return Object.assign(n,{parse:(n,r)=>m(t.parse(n,r),Vp(([t,n])=>[e.make.length===0?e.make():e.make(t),n])),build:n})},CR=e=>t=>({parse:(n,r)=>m(t.parse(n,r),k(([t,n])=>m(e.parse(n,r),Vp(([e,n])=>[{...t,...e},n])))),print:(n,r)=>m(t.print(n,r),k(t=>e.print(n,t)))}),wR=e=>t=>m(hR(t.pathname),n=>e.parse(n,yr(t.search)),k(bR),Vp(([e])=>e)),TR=(e,t)=>n=>m(n,wR(e),Wp(()=>E(t.make({path:n.pathname}))),Am),ER=e=>t=>{let n={segments:[],queryParams:new URLSearchParams};return m(e.print(t,n),Vp(e=>{let t=`/`+Ra(e.segments,`/`),n=e.queryParams.toString();return n?`${t}?${n}`:t}),Am)},DR=class extends Nr()(`@foldkit/Dispatch`){},OR=`data-foldkit-build`,kR=`data-foldkit-app`,AR=`data-foldkit-flags`,jR=(e,t)=>{let n=e.getAttribute(`data-foldkit-app`)??``;return{root:e,runtimeId:n,flagsScripts:m(Bi(document.querySelectorAll(`script[${AR}]`)),ja(e=>e.getAttribute(AR)===n)),isFlagsRequired:t}},MR=e=>{let t=new Set;for(let n of e){let e=n.getAttribute(`data-foldkit-app`)??``;if(e===``)throw WR(n.ownerDocument),Error(`[foldkit] Found a server-rendered root with an empty \`${kR}\` stamp. A hydratable root must carry a nonempty runtime id so the runtime can scope its Flags, Model, and scroll preservation.`);if(!n.ownerDocument.body?.contains(n))throw WR(n.ownerDocument),Error(`[foldkit] Found a server-rendered root outside the document body. Runtime.hydrate supports one page-owning application in the document light DOM. Do not hydrate a root in the head, a shadow tree, or a detached subtree.`);if(t.has(e))throw WR(n.ownerDocument),Error(`[foldkit] Found more than one server-rendered root stamped "${e}". A runtime id names one application for the whole page: it pairs a root with its Flags payload and keys the preserved Model and scroll position, so two roots sharing one would take each other's state. Remove the duplicate root. Foldkit hydrates one page-owning application per document.`);t.add(e)}},NR=e=>{if(e.length>1)throw WR(document),Error(`[foldkit] Found more than one page-owning application stamped with \`${kR}\`. Hydrating multiple applications in one document is not supported: each application owns the document metadata and installs document-wide navigation listeners. Render one application per page.`)},PR=(e,t,n)=>{if(!b(t)||t===``)return Error("[foldkit] Runtime.hydrate has no build id. Hydration compares the id the server stamped on the root with this client’s own before it adopts any DOM, and without one a page from any deployment would be adopted as this one. Build the client with @foldkit/vite-plugin, or pass the same nonempty `buildId` explicitly to `Runtime.hydrate` and `renderToString`.");let r=e.getAttribute(OR);if(r!==t)return Error(`[foldkit] Runtime.hydrate found application "${n}" served by ${r===null?`no known deployment`:`deployment "${r}"`}, but this client belongs to deployment "${t}". Startup stops here rather than reading a handoff written by other code: the Flags in the page are that deployment’s, and this build could accept them while every value in them means something else. Serve the page from the running deployment, and keep stale HTML out of shared caches.`)},FR=`data-foldkit-refused`,IR=`data-foldkit-refusal-shield`,LR=new WeakMap,RR=[`auxclick`,`click`,`contextmenu`,`dblclick`,`keydown`,`keypress`,`keyup`,`mousedown`,`mouseup`,`pointerdown`,`pointerup`,`touchend`,`touchstart`],zR=[`keydown`,`keypress`,`keyup`],BR=e=>{e.preventDefault(),e.stopImmediatePropagation()},VR=e=>{if(typeof e.showModal!=`function`)return!1;try{return e.showModal(),!0}catch{return!1}},HR=e=>{e.inert=!0,e.setAttribute(`inert`,``),e.open&&typeof e.close==`function`&&e.close(),VR(e)||e.setAttribute(`open`,``),e.inert=!1,e.removeAttribute(`inert`),e.focus({preventScroll:!0})},UR=e=>{let t=LR.get(e);if(t!==void 0&&t.isConnected){HR(t);return}let n=e.createElement(`dialog`);n.setAttribute(IR,``),n.setAttribute(`aria-label`,`Page unavailable`),n.setAttribute(`aria-modal`,`true`),n.setAttribute(`closedby`,`none`),n.tabIndex=-1,n.textContent=`This page could not start safely. Reload to get the current version.`,n.style.alignItems=`center`,n.style.background=`rgba(15, 23, 42, 0.96)`,n.style.border=`0`,n.style.boxSizing=`border-box`,n.style.color=`white`,n.style.font=`600 1rem/1.5 system-ui, sans-serif`,n.style.display=`grid`,n.style.height=`100vh`,n.style.inset=`0`,n.style.margin=`0`,n.style.maxHeight=`none`,n.style.maxWidth=`none`,n.style.overflow=`hidden`,n.style.padding=`2rem`,n.style.position=`fixed`,n.style.touchAction=`none`,n.style.userSelect=`none`,n.style.width=`100vw`,n.addEventListener(`cancel`,BR);for(let e of RR)n.addEventListener(e,BR,{capture:!0,passive:!1});for(let t of zR)e.addEventListener(t,BR,{capture:!0,passive:!1});e.documentElement.appendChild(n),LR.set(e,n),HR(n)},WR=e=>{let t=e.body??e.documentElement;t.inert=!0,t.setAttribute(`inert`,``),t.setAttribute(`aria-hidden`,`true`),t.setAttribute(FR,``),UR(e)},GR=e=>e.querySelector(`[${kR}], [${OR}], [${AR}]`)!==null,KR=(e,t)=>{let n=Bi(document.querySelectorAll(`[${kR}]`));if(MR(n),NR(n),e!==null){let r=e.closest(`[${kR}]`);if(e.hasAttribute(`data-foldkit-app`)){if(!w(na(n),{onNone:()=>!1,onSome:t=>t===e}))throw WR(e.ownerDocument),Error(`[foldkit] Runtime.hydrate received a stamped container that is not the single server root in the document light DOM. Hydration supports one page-owning application under the document body. Do not hydrate a root in a shadow tree or detached subtree.`);return jR(e,t)}return Ui(n,{onEmpty:()=>{if(r!==null)throw WR(e.ownerDocument),Error(`[foldkit] Runtime.hydrate received a container under a stamped root outside the document body light DOM. Do not hydrate a root in a shadow tree, detached subtree, or another document.`)},onNonEmpty:n=>{let i=ra(n);if(r===i)return jR(i,t);throw WR(e.ownerDocument),Error(`[foldkit] Runtime.hydrate received a container outside the document's server-rendered application root. A page-owning application must adopt that single root rather than boot beside server markup it does not own.`)}})}return w(na(n),{onNone:()=>void 0,onSome:e=>jR(e,t)})},qR=({bootMode:e,hydration:t,bootFlags:n,configuredFlags:r,isFlagsRequired:i,FlagsCodec:a,preservedModel:o,container:s,buildId:c,provideResources:l})=>O(function*(){let u=w(hr(gr(n),()=>r),{onNone:()=>i?Mp(Error(`[foldkit] This application declares Flags. Pass its Flags Effect to Runtime.run or Runtime.embed.`)):E(void 0),onSome:l}),d=(e,t,n)=>(WR(e.ownerDocument),Mp(n===void 0?Error(t):Error(t,{cause:n}))),f=(e,t,n)=>Np({try:()=>{let t=JSON.parse(e);return m(IC(a),wS,e=>e(t))},catch:e=>e}).pipe(Wp(e=>d(n,`[foldkit] Runtime.hydrate could not decode the server Flags payload for application "${t}". The HTML and client bundle must use the same Flags Schema.`,e))),p=e===`Hydrate`?gr(t):x();if(e===`Hydrate`&&pr(p))return WR(s===null?document:s.ownerDocument),yield*Mp(Error(`[foldkit] Runtime.hydrate could not find a server-rendered root stamped with \`${kR}\`. Use Runtime.run for a fresh client boot.`));if(C(p)){let e=PR(p.value.root,c,p.value.runtimeId);if(e!==void 0)return WR(p.value.root.ownerDocument),yield*Mp(e)}return{maybeHydrationRoot:ce(o)?xr(p,e=>e.root):x(),resolveFlags:w(yield*w(p,{onNone:()=>E(x()),onSome:e=>Vp(e.isFlagsRequired?Ui(e.flagsScripts,{onEmpty:()=>d(e.root,`[foldkit] Runtime.hydrate found application "${e.runtimeId}" but its server Flags payload is missing.`),onNonEmpty:([t,...n])=>Xi(n)?d(e.root,`[foldkit] Runtime.hydrate found multiple server Flags payloads for application "${e.runtimeId}".`):f(t.textContent??``,e.runtimeId,e.root)}):E(void 0),S)}),{onNone:()=>u,onSome:E})}}),JR=(e,t)=>{let n=YR(e,t),r=XR(e,t),i=ZR(e,t);return()=>{n(),r(),i()}},YR=(e,t)=>{let n=()=>{e(t.onUrlChange($R()))};return window.addEventListener(`popstate`,n),()=>{window.removeEventListener(`popstate`,n)}},XR=(e,t)=>{let n=n=>{let r=n.button!==0,i=n.metaKey||n.ctrlKey||n.shiftKey||n.altKey,a=n.defaultPrevented;if(r||i||a)return;let o=n.target;if(!(o instanceof Element))return;let s=gr(o.closest(`a`));if(pr(s))return;let{value:c}=s,{href:l}=c;if(ap(l))return;let u=!ap(c.target)&&c.target!==`_self`,d=c.hasAttribute(`download`);if(u||d)return;n.preventDefault();let f=new URL(l),p=new URL(window.location.href);if(f.origin!==p.origin){e(t.onUrlRequest(eR.External({href:l})));return}e(t.onUrlRequest(eR.Internal({url:QR(f)})))};return document.addEventListener(`click`,n),()=>{document.removeEventListener(`click`,n)}},ZR=(e,t)=>{let n=()=>{e(t.onUrlChange($R()))};return window.addEventListener(`foldkit:urlchange`,n),()=>{window.removeEventListener(`foldkit:urlchange`,n)}},QR=e=>{let{protocol:t,hostname:n,port:r,pathname:i,search:a,hash:o}=e;return{protocol:t,host:n,port:WL(r),pathname:i,search:KL(`?`)(a),hash:KL(`#`)(o)}},$R=()=>QR(new URL(window.location.href)),ez=e=>typeof e!=`object`||!e||Object.isFrozen(e)?e:Ji(e)?(Object.freeze(e),e.forEach(ez),e):fr(e)?(C(e)&&ez(e.value),e):tz(e)?(Object.freeze(e),Pi(e).forEach(ez),e):e,tz=e=>{if(!he(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},I=iS,nz=()=>(e,t)=>iS(e,t),rz=31,iz=100,az={changedPaths:gg(),affectedPaths:gg()},oz=me,sz=(e,t)=>{let n=new Set,r=(e,t,r)=>{if(e!==t){if(!oz(t)||!oz(e)){n.add(r);return}Ji(t)&&Ji(e)?a(e,t,r):he(t)&&he(e)?i(e,t,r):n.add(r)}},i=(e,t,i)=>{m(t,Ni,La(a=>{let o=`${i}.${a}`;Ai(e,a)?r(e[a],t[a],o):n.add(o)})),m(e,Ni,La(e=>{Ai(t,e)||n.add(`${i}.${e}`)}))},a=(e,t,i)=>{t.forEach((t,a)=>{let o=`${i}.${a}`;a<e.length?r(e[a],t,o):n.add(o)}),e.length>t.length&&m(zi(t.length,e.length-1),La(e=>n.add(`${i}.${e}`)))};r(e,t,`root`);let o=new Set(n),s=e=>{m(e,lp(`.`),xr(t=>e.substring(0,t)),Dr(e=>!o.has(e)),xr(e=>{o.add(e),s(e)}))};return n.forEach(s),{changedPaths:_g(n),affectedPaths:_g(o)}},cz={entries:[],keyframes:$h(),maybeInitModel:x(),initCommands:[],initMountStarts:[],startIndex:0,isPaused:!1,pausedAtIndex:0,maybeLatestModel:x()},lz=e=>Ui(e.entries,{onEmpty:()=>-1,onNonEmpty:t=>e.startIndex+t.length-1}),uz=e=>e.startIndex+e.entries.length,dz=(e,t={})=>O(function*(){let n=t.maxEntries??iz,r=t.keyframeInterval??rz,i=yield*HD(cz),a=(t,n)=>{let i=tg(t.keyframes,n+1);if(C(i))return i.value;let a=Math.floor(n/r)*r,o=ng(t.keyframes,a)?a:t.startIndex;return m(t.keyframes,tg(o),xr(r=>m(t.entries,pa(o-t.startIndex),la(n-o+1),Ma(r,(t,n)=>e.replay(t,n.message)))),br)},o=(e,t)=>n=>e%r===0?rg(n,e,t):n,s=e=>{let t=e.startIndex+r,n=e.pausedAtIndex>=t||e.pausedAtIndex===-1;return I(e,{entries:pa(r),keyframes:ig(e.startIndex),startIndex:()=>t,isPaused:e=>e&&n})},c=(e,t,n=[])=>qD(i,r=>I(r,{maybeInitModel:()=>S(e),initCommands:()=>t,initMountStarts:()=>n,keyframes:rg(0,e),maybeLatestModel:()=>S(e)})),l=(t,r,a,c,l)=>O(function*(){(yield*KD(i,e=>{let i=uz(e),u=l?sz(r,a):az,d=vg(u.changedPaths)>0,f=I(e,{entries:Ki({tag:t._tag,message:t,commands:c,mountStarts:[],mountEnds:[],timestamp:performance.now(),isModelChanged:d,diff:u}),keyframes:o(i+1,a),maybeLatestModel:()=>S(a)}),p=f.entries.length>n?s(f):f;return[e.isPaused&&!p.isPaused,p]}))&&(yield*e.markRenderPending)}),u=(e,t)=>qD(i,n=>{let r=n=>m(n,ha(t=>t.id===e),Cr(e=>ya(n,e,e=>I(e,{maybeSubmodelPath:()=>S(t)})))),i=r(n.initCommands);if(C(i))return I(n,{initCommands:()=>i.value});let a=ha(n.entries,t=>Pa(t.commands,t=>t.id===e));return pr(a)?n:w(ya(n.entries,a.value,e=>w(r(e.commands),{onNone:()=>e,onSome:t=>I(e,{commands:()=>t})})),{onNone:()=>n,onSome:e=>I(n,{entries:()=>e})})}),d=(e,t)=>qD(i,n=>Yi(e)&&Yi(t)?n:Ui(n.entries,{onEmpty:()=>I(n,{initMountStarts:qi(e)}),onNonEmpty:r=>I(n,{entries:()=>oee(r,n=>I(n,{mountStarts:qi(e),mountEnds:qi(t)}))})})),f=(e,t)=>gD(t).pipe(yD(-1,()=>br(e.maybeInitModel)),yD(lz(e),()=>br(e.maybeLatestModel)),wD(()=>a(e,t)));return{recordInit:c,recordMessage:l,recordResolvedCommand:u,updateLatestModel:e=>qD(i,I({maybeLatestModel:()=>S(e)})),attachRenderedMounts:d,getModelAtIndex:e=>m(i,WD,Vp(t=>f(t,e))),getMessageAtIndex:e=>O(function*(){if(e===-1)return x();let t=yield*WD(i);return m(t.entries,ea(e-t.startIndex),xr(({message:e})=>e))}),getDiffAtIndex:e=>O(function*(){if(e===-1)return az;let t=yield*WD(i);return m(t.entries,ea(e-t.startIndex),w({onNone:()=>az,onSome:({diff:e})=>e}))}),jumpTo:t=>O(function*(){let n=yield*WD(i),r=f(n,t);return yield*e.render(r),(yield*KD(i,e=>t===-1||t>=e.startIndex&&t<=lz(e)?[!1,I(e,{isPaused:()=>!0,pausedAtIndex:()=>t})]:[!0,I(e,{isPaused:()=>!1})]))&&(yield*e.markRenderPending),r}),resume:O(function*(){yield*qD(i,e=>I(e,{isPaused:()=>!1})),yield*e.markRenderPending}),clear:qD(i,e=>e.isPaused?e:I(e,{entries:()=>[],startIndex:()=>0,pausedAtIndex:()=>0,keyframes:()=>w(e.maybeInitModel,{onNone:()=>$h(),onSome:e=>eg([0,e])}),maybeLatestModel:()=>e.maybeInitModel})),stateRef:i}}),fz=/^Got.+Message$/,pz=vS(M({_tag:A})),mz=(e,t)=>{if(!fz.test(e))return{submodelPath:[],maybeLeafTag:x()};let n=[e],r=t?.message;for(;pz(r)&&fz.test(r._tag);)n.push(r._tag),r=r?.message;return{submodelPath:n,maybeLeafTag:m(r,kr(pz),xr(({_tag:e})=>e))}},hz=(e,t)=>gD(e).pipe(yD(`Always`,()=>!0),yD(`Development`,()=>t),TD),gz,_z=`Development`,vz=`BottomRight`,yz=`TimeTravel`,bz=e=>typeof e==`string`?e:e.production,xz=20,Sz=500,Cz=1,wz=e=>(window.self,window.top,m(e??{},kr(e=>e!==!1),Dr(e=>hz(e.show??_z,!1)),xr(e=>({position:e.position??vz,mode:bz(e.mode??yz),maybeBanner:gr(e.banner),maybeOverlay:gr(gz)})))),Tz=e=>m(e??{},kr(e=>e!==!1),wr(e=>e.excludeFromHistory),w({onNone:()=>new Set,onSome:e=>new Set(e)})),Ez=e=>m(e??{},kr(e=>e!==!1),wr(e=>e.maxEntries),w({onNone:()=>void 0,onSome:e=>Math.max(xz,Math.min(Sz,e))})),Dz=e=>m(e??{},kr(e=>e!==!1),wr(e=>e.keyframeInterval),w({onNone:()=>void 0,onSome:e=>Math.max(Cz,Math.floor(e))})),Oz=({id:e,command:t})=>t.args===void 0?{id:e,name:t.name,maybeSubmodelPath:x()}:{id:e,name:t.name,args:t.args,maybeSubmodelPath:x()},kz=({devTools:e,update:t,maybeFreezeModel:n,enqueueMessageEffect:r})=>O(function*(){let r=wz(e),i=Tz(e),a=Ez(e),o=Dz(e),s=`Live`,c=C(r)?S(yield*uw({replay:1})):x(),l=w(c,{onNone:()=>yk,onSome:e=>(fw(e,s),wE(e))}),u=e=>{e!==s&&(s=e,C(c)&&fw(c.value,e))},d=()=>s,f=null,p=gk.of({captureViewStateChanges:()=>NE(bE(s),l).pipe(zE)}),m=()=>f!==null&&UD(f.stateRef).isPaused,h=[],g=[],_={started:(e,t)=>{f!==null&&h.push(t===void 0?{name:e}:{name:e,args:t})},ended:(e,t)=>{f!==null&&g.push(t===void 0?{name:e}:{name:e,args:t})}},v=()=>{let e=h.slice(),t=g.slice();return h.length=0,g.length=0,{starts:e,ends:t}},y=({renderReplay:e,markRenderPending:s})=>w(r,{onNone:()=>Ep,onSome:({position:r,mode:c,maybeBanner:l,maybeOverlay:u})=>O(function*(){let d=i.size>0,p=yield*dz({replay:(e,r)=>n(t(e,r).model),render:e,markRenderPending:s},{...o!==void 0&&{keyframeInterval:o},...a!==void 0&&{maxEntries:a},...d&&{keyframeInterval:1}});f=p,yield*w(u,{onNone:()=>Ep,onSome:e=>e(p,r,c,l)})})}),ee=(e,t)=>O(function*(){let n=v();f!==null&&(yield*f.recordInit(e,T(t,Oz),n.starts))}),te=()=>{if(f!==null){let e=v();Dm(f.attachRenderedMounts(e.starts,e.ends))}},ne=(e,t,n,r)=>{if(f!==null){let a=f,o=e._tag,s=t!==n;i.has(o)?s&&Dm(a.updateLatestModel(n)):Dm(a.recordMessage(e,t,n,T(r,Oz),s))}},b=(e,t)=>{if(f===null)return;let n=pz(t)?mz(t._tag,t).submodelPath:[];Dm(f.recordResolvedCommand(e,n))},re=Tp(()=>f===null?Ep:f.resume);return{isRecordingCommands:C(r),mountTracker:_,mountRuntime:p,drainMountEvents:v,readViewState:d,setViewState:u,isPausedNow:m,installDevToolsStore:y,resumeDevTools:re,recordInit:ee,recordMessage:ne,recordCommandResult:b,attachRenderedMounts:te}}),Az=(e,t)=>{let n=new Map;Object.values(e.inbound??{}).forEach(e=>{n.set(e,pR())});let r=new Set(Object.values(e.outbound??{}));return{channels:{isConfigured:!0,lookupInbound:e=>gr(n.get(e)),lookupOutbound:e=>r.has(e)?S(n=>w(t,{onNone:p,onSome:t=>t.deliverOutbound(e,n)})):x()},deliverInbound:(e,t)=>{w(gr(n.get(e)),{onNone:p,onSome:e=>e.deliver(t)})}}},jz=e=>{let t=Object.entries(e.inbound??{}),n=Object.entries(e.outbound??{}),r=new Set(t.map(([e])=>e));n.forEach(([e])=>{if(r.has(e))throw Error(`[foldkit] Port name "${e}" appears in both inbound and outbound. Port names share one namespace on the EmbedHandle, so each name must be unique across both records.`)});let i=new Set;[...t,...n].forEach(([e,t])=>{if(i.has(t))throw Error(`[foldkit] The Port registered as "${e}" is also registered under another name. Each entry in the ports record needs its own Port.inbound or Port.outbound value.`);i.add(t)})},Mz=({managedResourceRefs:e,initModel:t,modelPubSub:n,runtimeScope:r,enqueueMessageEffect:i,crashWith:a})=>{let o=(e,t)=>n=>{if(fr(n)&&pr(n))return yE;let r=fr(n)?br(n):n;return m(OE(mE(dm(O(function*(){let n=yield*e.acquire(r);return yield*AD(t,S(n)),n}),n=>O(function*(){yield*e.release(n).pipe(Kp(()=>Ep)),yield*AD(t,x()),yield*i(e.onReleased())})))),jE(t=>NE(bE(e.onAcquired(t)),DE)),kE(E),IE(t=>bE(E(e.onAcquireError(t)))))};return bp(e,({config:e,ref:s})=>O(function*(){let c=yield*pw(n).pipe(cm(df,r)),l=NE(bE(t),EE(c)),u=FC(e.schema);yield*Em(r)(l.pipe(kE(e.modelToMaybeRequirements),BE(u),ME(o(e,s)),WE(k(i)),Kp(e=>a(e,x()))))}),{concurrency:`unbounded`,discard:!0})},Nz=5,Pz=({status:e,processMessage:t,crashWith:n})=>O(function*(){let r=[],i=!1,a=!1,o=t=>{e.isRuntimeDisposed||e.isCrashed||(r.push(t),a&&!e.isRenderingFrame&&m())},s=e=>D(()=>o(e)),c=x(),l=0,u=0,d=!1,f=null,p=()=>{f===null&&(f=new MessageChannel,f.port2.onmessage=()=>{d=!1,l=0,m()}),d=!0,f.port1.postMessage(null)};yield*fm(()=>D(()=>{f!==null&&(f.port1.close(),f.port2.close(),f=null)}));let m=()=>{if(!a||i||e.isRenderingFrame||d||e.isRuntimeDisposed||e.isCrashed)return;let o=performance.now();if(o-u>Nz&&(l=0),l>Nz){p();return}i=!0;try{for(;r.length>0;){let e=r;r=[];for(let n=0;n<e.length;n++){let i=e[n];if(c=S(i),t(i),(n+1<e.length||r.length>0)&&l+(performance.now()-o)>Nz){r=e.slice(n+1).concat(r),p();return}}}}catch(e){Dm(n(Rd(e),c))}finally{let e=performance.now();l+=e-o,u=e,i=!1}};return{enqueueMessage:o,enqueueMessageEffect:s,drainPendingMessages:m,resetDrainBudget:()=>{l=0},completeBoot:()=>{a=!0,m()}}}),Fz=M({id:A,model:FS,isReloadFlush:jS(RS)}),Iz=M({id:A}),Lz=M({id:A,model:jS(FS)});ES(Fz),ES(Iz),xS(Lz);var Rz=e=>E(void 0),zz=(e,t)=>O(function*(){let n=yield*lm,r=yield*OD(x()),i=yield*OD(x()),a=O(function*(){yield*w(yield*kD(i),{onNone:()=>Ep,onSome:BC}),yield*AD(i,x())}),o=e=>O(function*(){yield*w(yield*jD(r,x()),{onNone:()=>Ep,onSome:e})});return{schedule:s=>O(function*(){yield*AD(r,S(s)),yield*a;let c=yield*Em(O(function*(){yield*Qp(t),yield*o(e.onDebounce)}),n);yield*AD(i,S(c))}),flush:o(e.onFlush),cancel:O(function*(){yield*a,yield*AD(r,x())})}}),Bz=`data-foldkit-key`,Vz=`data-foldkit-identity`,Hz=16777619,Uz=2166136261,Wz=1099511628,Gz=e=>{let t=Uz,n=Wz;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r),a=i&255,o=i>>>8;t=Math.imul(t^a,Hz),t=Math.imul(t^o,Hz),n=Math.imul(n^o,Hz),n=Math.imul(n^a,Hz)}return(t>>>0).toString(16).padStart(8,`0`)+(n>>>0).toString(16).padStart(8,`0`)},Kz=e=>{if(typeof e==`string`)return Gz(`s:${e}`);if(typeof e==`number`)return Number.isNaN(e)?void 0:Gz(`n:${e}`)},qz=e=>Gz(`i:${e}`),Jz=`http://www.w3.org/1999/xhtml`,Yz=`data-foldkit-app`,Xz=e=>{let t={};for(let n of Array.from(e.classList))t[n]=!0;return t},Zz=e=>{let t={};if(`style`in e&&e.style instanceof CSSStyleDeclaration){let n=e.style;for(let e=0;e<n.length;e+=1){let r=n.item(e),i=n.getPropertyValue(r),a=n.getPropertyPriority(r);t[r]=a===``?i:`${i} !${a}`}}return t},Qz=(e,t,n,r)=>{if(!n)return{};if(!r)return Xz(e);let i={};for(let n of Object.keys(t.data?.class??{}))i[n]=e.classList.contains(n);return i},$z=(e,t,n,r)=>{if(!n)return{};let i=t.data?.style??{},a=Object.fromEntries(Object.entries(i).flatMap(([e,t])=>typeof t==`string`?[[qO(e),t]]:[])),o=Reflect.get(e,`style`);if(!(o instanceof CSSStyleDeclaration))return{};let s=r?{}:Zz(e),c=e.ownerDocument.createElement(`span`).style,l=new Set;for(let[t,n]of Object.entries(a)){c.setProperty(t,n);let r=e.ownerDocument.createElement(`span`).style;r.setProperty(t,n),l.add(t);for(let e=0;e<r.length;e+=1)l.add(r.item(e))}for(let e of l)delete s[e];return Object.keys(a).every(e=>o.getPropertyValue(e)===c.getPropertyValue(e)&&o.getPropertyPriority(e)===c.getPropertyPriority(e))&&Object.assign(s,a),s},eB=e=>{let t=e.ownerDocument.implementation.createHTMLDocument(),n=t.createElement(`base`);return n.href=e.ownerDocument.baseURI,t.head.appendChild(n),e.namespaceURI===null||e.namespaceURI===Jz?t.createElement(e.localName):t.createElementNS(e.namespaceURI,e.localName)},tB=e=>{let t=e.data?.props;return t===void 0?[]:Object.keys(t).filter(e=>!rk(t,e)&&AO(e)!==void 0)},nB=(e,t,n)=>TO.has(t)?n===!0?``:null:n===!1?t===`draggable`?`false`:String(n):t===`draggable`?n===!0?`true`:`false`:RO(e,t,n),rB=(e,t)=>{let n=e.localName;return t===`value`&&(n===`input`||n===`textarea`||n===`output`||n===`select`)||t===`checked`&&n===`input`||t===`selected`&&n===`option`||t===`muted`&&(n===`audio`||n===`video`)},iB=Symbol(`foldkit/stale-reflected-property`),aB=-1,oB=(e,t,n)=>{let r=t.data?.props,i=r?.value;if(!(e instanceof HTMLSelectElement)||typeof i!=`string`||rk(r,`value`))return;let a=Array.from(e.options),o=a.find(e=>e.value===i);for(let e of a)n.controlledOptionSelection.set(e,e===o);n.controlledSelectState.set(e,{selectedIndex:o?.index??aB,value:o?.value??``})},sB=(e,t)=>{let n=t.controlledSelectState.get(e);n!==void 0&&(Reflect.get(e,`value`)!==n.value||Reflect.get(e,`selectedIndex`)!==n.selectedIndex)&&uB(t);let r=t.controlledOptionSelection.get(e);r!==void 0&&(Reflect.get(e,`selected`)!==r||Reflect.get(e,`defaultSelected`)!==r)&&uB(t)},cB=(e,t,n,r,i)=>{let a=t.data?.props;if(a===void 0||n.length===0)return{};let o={};for(let t of n){let n=a[t],s=AO(t);if(s!==void 0){if(t===`value`&&i.controlledSelectState.has(e)||t===`selected`&&i.controlledOptionSelection.has(e)){o[t]=n;continue}(!r&&rB(e,t)?Object.is(Reflect.get(e,t),n):e.getAttribute(s)===nB(e.localName,t,n))?o[t]=n:(o[t]=iB,uB(i))}}return o},lB=(e,t,n,r,i)=>{sB(e,r);let a=t.data?.class!==void 0&&YO(t.data?.attrs,`class`)===void 0,o=t.data?.style!==void 0&&YO(t.data?.attrs,`style`)===void 0,s=tB(t),c=new Set(s.flatMap(t=>{let n=AO(t);return n===void 0?[]:[PO(e.namespaceURI,n)]})),l=new Map(Object.keys(t.data?.dataset??{}).map(e=>[`data-${e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}`,e])),u=i?new Set(Object.keys(t.data?.attrs??{}).map(e=>e.toLowerCase())):void 0,d={};for(let t of Array.from(e.attributes)){let e=t.name;e!==Yz&&(e===`class`&&a||e===`style`&&o||c.has(e)||l.has(e)||(u===void 0||u.has(e.toLowerCase()))&&(d[e]=t.value))}let f=Qz(e,t,a,i),p=$z(e,t,o,i),m=cB(e,t,s,i,r),h={};for(let[t,n]of l){let r=e.getAttribute(t);r!==null&&(h[n]=r)}n.data={...n.data,...Object.keys(d).length>0?{attrs:d}:{},...Object.keys(f).length>0?{class:f}:{},...Object.keys(p).length>0?{style:p}:{},...Object.keys(m).length>0?{props:{...n.data?.props,...m}}:{},...Object.keys(h).length>0?{dataset:h}:{}}},uB=e=>{e.isMismatchDetected=!0},dB=e=>e.nodeType===Node.TEXT_NODE,fB=e=>e.nodeType===Node.COMMENT_NODE,pB=e=>e.nodeType===Node.ELEMENT_NODE,mB=e=>{let t=e.firstChild;return t===null||t.nextSibling===null&&dB(t)},hB=(e,t)=>{let n=ik(t.sel??``),r=t.data?.ns===void 0?n.toLowerCase():n;return e.localName===r},gB=e=>typeof e.data?.ns==`string`?e.data.ns:Jz,_B=(e,t)=>(e.namespaceURI??Jz)===gB(t),vB=(e,t)=>{let n=e.getAttribute(Bz);if(t.key===void 0)return n===null;let r=Kz(t.key);return r!==void 0&&n===r},yB=(e,t)=>vB(e,t)?e.getAttribute(Vz)===(t.identity===void 0?null:qz(t.identity)):!1,bB=(e,t)=>{let n={sel:e.sel,data:e.data?.is===void 0?{}:{is:e.data.is},children:void 0,elm:t,text:void 0,key:e.key};return e.identity!==void 0&&(n.identity=e.identity),n},xB=e=>(e.namespaceURI===null||e.namespaceURI===Jz)&&e.localName.includes(`-`),SB=e=>e.text!==void 0||e.children!==void 0&&e.children.length>0||nk(e.data?.props),CB=(e,t)=>xB(e)&&SB(t),wB=(e,t)=>{let n=e.children;if(n!==void 0)for(let e of n)typeof e!=`string`&&wB(e,t);let r=e.data?.hook?.insert;r!==void 0&&t.push({vnode:e,insert:r})},TB=(e,t)=>{let n=[];wB(e,n);for(let{vnode:e}of n){let t=e.data?.hook;t!==void 0&&delete t.insert}try{return t()}finally{for(let{vnode:e,insert:t}of n){let n=e.data?.hook;n!==void 0&&(n.insert=t)}}},EB=(e,t)=>{let n=e.ownerDocument,r=e.parentNode??n.createDocumentFragment();e.parentNode===null&&r.appendChild(e);let i=n.createComment(``);return r.replaceChild(i,e),TB(t,()=>uM(QA(i),t))},DB=e=>typeof e==`string`?{sel:void 0,data:void 0,children:void 0,elm:void 0,text:e,key:void 0}:e,OB=e=>{let t=e.elm;if(t===void 0)throw Error(`[foldkit] A prepared hydration vnode has no DOM node.`);let n=bB(e,t);n.data={...n.data,...e.data?.on===void 0?{}:{on:e.data.on},...e.data?.props===void 0?{}:{props:e.data.props}},n.text=e.text;let r=e.children;if(r!==void 0){let e=[],i=t.firstChild;for(let t of r){let n=DB(t);n.elm===void 0&&(n.elm=i??void 0),e.push(OB(n)),i=n.elm?.nextSibling??null}n.children=e}return n},kB=e=>{e.textContent=``},AB=(e,t,n)=>{if(t!==null&&dB(t)){let e=t.data;return e===n?S({adoptedNode:t,nextDomChild:t.nextSibling}):e.startsWith(n)?(t.splitText(n.length),S({adoptedNode:t,nextDomChild:t.nextSibling})):x()}if(n===``){let n=e.ownerDocument.createTextNode(``);return e.insertBefore(n,t),S({adoptedNode:n,nextDomChild:t})}return x()},jB=(e,t,n)=>{if(CB(e,t))return OB(EB(e,t));let r=bB(t,e);oB(e,t,n),e.removeAttribute(Bz),e.removeAttribute(Vz);let i=xB(e),a=()=>i?(lB(e,t,r,n,!0),TB(t,()=>uM(r,t)),OB(t)):r;if((e.tagName===`TEXTAREA`||e.tagName===`OUTPUT`)&&t.data?.props?.value!==void 0)return r.children=[],a();let o=t.data?.props?.innerHTML,s=o!==void 0&&nk(t.data?.props),c=t.children;if(s){if(typeof o==`string`){let t=eB(e);rM(t,o);let i=nM(e);nM(t)!==i&&(uB(n),rM(e,o));let a={...r.data?.props,innerHTML:o};$O(a,a.innerHTML),r.data={...r.data,props:a}}else{let t={...r.data?.props,innerHTML:nM(e)};$O(t,t.innerHTML),r.data={...r.data,props:t}}return r.children=[],a()}if(c===void 0||c.length===0)return t.text===void 0?!i&&e.firstChild!==null&&(uB(n),kB(e),r.children=[]):mB(e)?(r.text=e.textContent??``,r.text!==t.text&&uB(n)):uB(n),a();let l=[],u=e.firstChild;for(let t of c){let i=DB(t);if(i.sel===void 0||i.sel===``){let t=i.text??``,o=AB(e,u,t);if(pr(o)){if(uB(n),u===null)break;return kB(e),r.children=[],a()}let s=o.value,c=bB(i,s.adoptedNode);c.text=t,l.push(c),u=s.nextDomChild;continue}if(u===null){uB(n);break}if(i.sel===`!`){if(!fB(u))return uB(n),kB(e),r.children=[],a();let t=bB(i,u);t.text=u.data,l.push(t),u=u.nextSibling;continue}if(!pB(u)||!hB(u,i)||!_B(u,i)||!yB(u,i))return uB(n),kB(e),r.children=[],a();let o=u.nextSibling;l.push(jB(u,i,n)),u=o}for(;u!==null;){uB(n);let t=u.nextSibling;e.removeChild(u),u=t}return r.children=l,a()},MB=(e,t,n)=>{let r=e.elm;r!==void 0&&pB(r)?(lB(r,t,e,n,xB(r)),t.text!==void 0&&(e.text=mB(r)?r.textContent??``:void 0)):r!==void 0&&(dB(r)||fB(r))&&(e.text=r.data);let i=e.children,a=t.children;if(i===void 0||a===void 0)return;let o=a.values();for(let e of i){let t=o.next();if(t.done)return;MB(DB(e),DB(t.value),n)}},NB=(e,t)=>{let n=[];wB(t,n);for(let{vnode:e}of n){let t=e.data?.hook;t!==void 0&&delete t.insert}let r;try{r=uM(e,t)}finally{for(let{vnode:e,insert:t}of n){let n=e.data?.hook;n!==void 0&&(n.insert=t)}}for(let{vnode:e,insert:t}of n)t(e);return r},PB=(e,t)=>{let n=e.ownerDocument,r=e.parentNode??n.createDocumentFragment();e.parentNode===null&&r.appendChild(e);let i=n.createComment(``);return r.replaceChild(i,e),uM(QA(i),t)},FB=(e,t,n,r)=>{let i=t===null?lA(`!`):pM(t,n),a={isMismatchDetected:!1,adoptedSignatures:new Map,controlledOptionSelection:new Map,controlledSelectState:new Map},o=e.getAttribute(OR),s=r!==``&&o===r;if(e.removeAttribute(OR),!s||i.sel===void 0||i.sel===``||i.sel===`!`||!hB(e,i)||!_B(e,i)||!yB(e,i))return uB(a),PB(e,i);if(CB(e,i))return PB(e,i);let c=jB(e,i,a);return MB(c,i,a),NB(c,i)},IB={field:`canonical`,tagName:`link`,identityAttribute:`rel`,identityValue:`canonical`,valueAttribute:`href`},LB={field:`ogUrl`,tagName:`meta`,identityAttribute:`property`,identityValue:`og:url`,valueAttribute:`content`},RB=new WeakMap,zB=e=>{let t=document.head;return e.observe(t,{attributes:!0,attributeFilter:[`rel`,`href`,`property`,`content`],childList:!0,characterData:!0,subtree:!0}),e.observe(document.documentElement,{attributes:!0,attributeFilter:[`lang`,`dir`]}),t},BB=()=>{let e=RB.get(document);if(e!==void 0)return e;let t={isInvalidated:!0},n=new MutationObserver(()=>{t.isInvalidated=!0}),r={elements:{},observer:n,invalidation:t,observedHead:zB(n)};return RB.set(document,r),r},VB=(e,t)=>{let{elements:n}=e,r=n[t.field];if(r!==void 0&&r.element.parentNode===document.head)return r.element;let i=document.head.querySelector(`${t.tagName}[${t.identityAttribute}="${t.identityValue}"]`);if(i!==null)return n[t.field]={_tag:`Found`,element:i,servedValue:i.getAttribute(t.valueAttribute)??void 0},i;let a=document.head.appendChild(document.createElement(t.tagName));return n[t.field]={_tag:`Created`,element:a},a},HB=(e,t)=>{let n=e.elements[t.field];if(n===void 0||n.element.parentNode!==document.head)return;if(n._tag===`Created`){n.element.remove();return}let{valueAttribute:r}=t;if(n.servedValue===void 0){n.element.removeAttribute(r);return}n.element.getAttribute(r)!==n.servedValue&&n.element.setAttribute(r,n.servedValue)},UB=(e,t,n)=>{if(n===void 0){HB(e,t),delete e.elements[t.field];return}let r=VB(e,t);r.getAttribute(t.identityAttribute)!==t.identityValue&&r.setAttribute(t.identityAttribute,t.identityValue),r.getAttribute(t.valueAttribute)!==n&&r.setAttribute(t.valueAttribute,n)},WB=e=>{e.observer.disconnect(),e.observedHead=zB(e.observer),e.invalidation.isInvalidated=!0},GB=(e,t)=>{document.title!==t.title&&(document.title=t.title);let{documentElement:n}=document;t.lang!==void 0&&n.lang!==t.lang&&(n.lang=t.lang),t.dirAttribute!==void 0&&n.dir!==t.dirAttribute&&(n.dir=t.dirAttribute),UB(e,IB,t.canonical),UB(e,LB,t.ogUrl),e.lastApplied=t,e.invalidation.isInvalidated=!1,e.observer.takeRecords()},KB=(e,t)=>{if(!t||!document.body.contains(t))return;let n=BB();n.observedHead!==document.head&&WB(n);let r=e.ogUrl??e.canonical,i=e.dir===void 0?void 0:Oee(e.dir);Xi(n.observer.takeRecords())&&(n.invalidation.isInvalidated=!0);let a=n.lastApplied;(n.invalidation.isInvalidated||a===void 0||a.title!==e.title||a.lang!==e.lang||a.dirAttribute!==i||a.canonical!==e.canonical||a.ogUrl!==r)&&GB(n,{title:e.title,lang:e.lang,dirAttribute:i,canonical:e.canonical,ogUrl:r})},qB={dispatchAsync:e=>Ep,dispatchSync:e=>{}},JB={bg:`#f9fafb`,cardBg:`#ffffff`,border:`#e5e7eb`,errorAccent:`#dc2626`,textPrimary:`#111827`,textSecondary:`#6b7280`,codeBg:`#f3f4f6`,buttonBg:`#18181b`,buttonText:`#ffffff`},YB=`system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif`,XB=`ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace`,ZB=(e,t)=>{let n=GP.Style({fontFamily:XB,color:JB.textPrimary,margin:`0`,fontSize:`0.9375rem`,lineHeight:`1.5`,backgroundColor:JB.codeBg,padding:`0.75rem 1rem`,borderRadius:`0.375rem`}),r=GP.Style({color:JB.textSecondary,margin:`0 0 0.5rem 0`,fontSize:`0.875rem`,fontWeight:`500`}),i=GP.Style({fontFamily:XB,backgroundColor:JB.codeBg,padding:`0.125rem 0.375rem`,borderRadius:`0.25rem`}),a=t instanceof Error?t.message:String(t),o=t?[`Your custom `,GP.span([i],[`crash.view`]),` threw an error while rendering.`]:[`Foldkit encountered an unrecoverable error while running your application.`],s=t?[GP.div([GP.Style({margin:`0 0 1rem 0`})],[GP.p([r],[`Original error`]),GP.p([n],[e.error.message])]),GP.div([GP.Style({margin:`0 0 1.25rem 0`})],[GP.p([r],[`crash.view error`]),GP.p([n],[a])])]:[GP.p([GP.Style({fontFamily:XB,color:JB.textPrimary,margin:`0 0 1.25rem 0`,fontSize:`0.9375rem`,lineHeight:`1.5`,backgroundColor:JB.codeBg,padding:`0.75rem 1rem`,borderRadius:`0.375rem`})],[e.error.message])],c=t?[]:[GP.p([GP.Style({color:JB.textSecondary,margin:`1.5rem 0 0 0`,fontSize:`0.875rem`,lineHeight:`1.5`,borderTop:`1px solid ${JB.border}`,paddingTop:`1rem`})],[`This is the default crash view. You can customize it by providing a `,GP.span([i],[`crash.view`]),` function.`])];return{title:`Application Crash`,body:GP.div([GP.Style({fontFamily:YB,padding:`2rem`,minHeight:`100vh`,backgroundColor:JB.bg,display:`flex`,alignItems:`center`,justifyContent:`center`})],[GP.div([GP.Style({width:`100%`,maxWidth:`960px`,margin:`0 auto`,backgroundColor:JB.cardBg,borderRadius:`0 0.5rem 0.5rem 0`,border:`1px solid ${JB.border}`,borderLeft:`4px solid ${JB.errorAccent}`,padding:`1.5rem`})],[GP.h1([GP.Style({color:JB.errorAccent,margin:`0 0 0.75rem 0`,fontSize:`1.25rem`,fontWeight:`600`,lineHeight:`1.5`})],[`Application Crash`]),GP.p([GP.Style({color:JB.textPrimary,margin:`0 0 1rem 0`,fontSize:`1rem`,lineHeight:`1.625`})],o),...s,GP.p([GP.Style({color:JB.textPrimary,margin:`0 0 1.5rem 0`,fontSize:`1rem`,lineHeight:`1.5`})],[`→ Check the browser console for the full stack trace with source-mapped line numbers.`]),GP.button([GP.Style({fontFamily:YB,backgroundColor:JB.buttonBg,color:JB.buttonText,border:`none`,padding:`0.5rem 1rem`,borderRadius:`0.375rem`,fontSize:`0.875rem`,fontWeight:`500`,cursor:`pointer`}),GP.Attribute(`onclick`,`location.reload()`)],[`Reload`]),...c])])}},QB=(e,t,n,r,i)=>{if(console.error(`[foldkit] Application crash:`,e.error),t?.report)try{t.report(e)}catch(e){console.error(`[foldkit] crash.report failed:`,e)}let a=$r(DR,qB).pipe(ei(mk,{started:()=>{},ended:()=>{}}));try{yM(qB.dispatchSync,a);let o;try{o=t?.view?t.view(e,WP()):ZB(e)}finally{bM()}let s=mM(r.maybeCurrentVNode,o.body,n);r.maybeCurrentVNode=S(s),i&&KB(o,s.elm)}catch(t){console.error(`[foldkit] crash.view failed:`,t);let o=t instanceof Error?t:Error(String(t));yM(qB.dispatchSync,a);let s;try{s=ZB(e,o)}finally{bM()}let c=mM(r.maybeCurrentVNode,s.body,n);r.maybeCurrentVNode=S(c),i&&KB(s,c.elm)}};qS([`Update`,`View`,`Patch`,`SubscriptionDependencies`]);var $B=`Development`,eV=16,tV=4,nV=8,rV=2,iV=[`Update`,`View`,`Patch`,`SubscriptionDependencies`],aV=(e,t,n)=>kr({thresholdMs:t,onSlow:n},()=>e),oV=(e,t)=>m(gD(e).pipe(vD(),yD(!1,()=>x()),yD(ce,()=>S({})),wD(e=>S(e))),Dr(e=>t(e.show??$B)),xr(e=>{let t=e.onSlow??fV,n=e.measuredPhases??iV,r=e=>ba(n,e);return{view:aV(r(`View`),e.thresholdOverrides?.View??eV,t),update:aV(r(`Update`),e.thresholdOverrides?.Update??tV,t),patch:aV(r(`Patch`),e.thresholdOverrides?.Patch??nV,t),subscriptionDependencies:aV(r(`SubscriptionDependencies`),e.thresholdOverrides?.SubscriptionDependencies??rV,t)}})),sV=(e,t)=>{if(C(e)){let e=performance.now();return[t(),S(performance.now()-e)]}return[t(),x()]},cV=(e,t,n)=>{if(C(e)){let{thresholdMs:r,onSlow:i}=e.value,a=Dr(t,e=>e>r);C(a)&&i(n(a.value,r))}},lV=e=>m(e,kr(he),Cr(ji(`_tag`)),w({onNone:()=>`unknown`,onSome:String})),uV=e=>w(e,{onNone:()=>`init`,onSome:lV}),dV=`Set slow.thresholdOverrides to change budgets or pass slow: false to disable warnings.`,fV=e=>{let{durationMs:t,thresholdMs:n}=e,r=t.toFixed(1),i=gD(e).pipe(CD({View:({message:e})=>`Slow view: ${r}ms (budget: ${n}ms), triggered by ${uV(e)}. Keep render-only work in the view path and memoize expensive subtrees with createLazy or createKeyedLazy.`,Update:({message:e})=>`Slow update: ${r}ms (budget: ${n}ms), triggered by ${lV(e)}. Inspect the triggering Message branch; move render-only derivations to memoized views and keep update focused on state transitions.`,Patch:({message:e})=>`Slow patch: ${r}ms (budget: ${n}ms), triggered by ${uV(e)}. Key mapped lists by stable ids, split large views, or memoize stable subtrees with createLazy.`,SubscriptionDependencies:({subscriptionKey:e})=>`Slow subscription dependencies: ${r}ms (budget: ${n}ms) for subscription "${e}". Keep modelToDependencies a cheap projection from modeled fields; avoid scans, sorting, serialization, and large dependency objects.`})),a=gD(e).pipe(vD(),CD({Update:({message:e})=>S(e),View:({message:e})=>e,Patch:({message:e})=>e,SubscriptionDependencies:()=>x()}));console.warn(`[foldkit] ${i} ${dV}`,e,...Er(a))},pV=e=>{let t=()=>{};e.ready?.catch(t),e.finished?.catch(t),e.updateCallbackDone.catch(t)},mV=()=>{if(typeof document.startViewTransition!=`function`)return x();let e=typeof ViewTransition<`u`&&`types`in ViewTransition.prototype;return S((t,n)=>m(n,Dr(()=>e),w({onNone:()=>document.startViewTransition(t),onSome:e=>document.startViewTransition({update:t,types:[...e]})})))},hV=(e,t)=>gD(e(t)).pipe(vD(),yD(!1,()=>x()),yD(!0,()=>S({maybeTypes:x()})),wD(({types:e})=>S({maybeTypes:S(e)}))),gV=({status:e,container:t,view:n,htmlBuilder:r,manageDocument:i,crash:a,buildId:o,initModel:s,maybeHydrationRoot:c,maybeSlowView:l,maybeSlowPatch:u,duplicateIdScanner:d,maybeResolvedViewTransition:f,commitNotifier:p,runtimeContext:m,readLiveModel:h,messageQueue:g,devToolsIntegration:_})=>O(function*(){let{enqueueMessage:d,enqueueMessageEffect:v,drainPendingMessages:y,resetDrainBudget:ee}=g,{mountTracker:te,mountRuntime:ne,drainMountEvents:b,readViewState:re,setViewState:ie,isPausedNow:ae,resumeDevTools:oe,attachRenderedMounts:se}=_,ce=()=>{p.service.isCommitPending()&&p.notifyCommitted()},le=!1,ue=!1,de=s,fe=x(),pe=()=>{if(C(fe)){let{value:e}=fe;fe=x(),e.update.isInvalidated=!0;try{e.handle.skipTransition()}catch{}}},me={maybeCurrentVNode:x()},he=(e,n,r)=>{try{return mM(e,n,t,r,e=>{me.maybeCurrentVNode=S(e)})}catch(e){try{let e=me.maybeCurrentVNode;C(e)&&(me.maybeCurrentVNode=S(vee(e.value)))}finally{jee()}throw e}},ge=vr(c);yield*fm(e=>O(function*(){if(!ef(e))return;let n=me.maybeCurrentVNode;yield*w(n,{onNone:()=>Ep,onSome:e=>D(()=>{let n=mM(S(e),null,t).elm;n&&n.parentNode&&(n.parentNode.replaceChild(t,n),t.replaceChildren())})})}));let _e=(n,r)=>D(()=>{if(e.isCrashed)return;e.isCrashed=!0,pe();let o=h(),s=Gd(n);QB({error:s instanceof Error?s:Error(String(s)),model:o,message:r},a,t,me,i),ce()}),ve=x(),ye=e=>{ve=S(e)},be={dispatchAsync:e=>v(e),dispatchSync:e=>{d(e)}},xe=fj(),Se=(e,t,a,s,c)=>{let d=kr(c,e=>e===`Live`),f=Cr(d,()=>l),p=Cr(d,()=>u),[m,h]=sV(f,()=>{Nj(xe),yM(a.dispatchSync,s,xe,c);try{return n(e,r)}finally{bM()}}),{body:g}=m;cV(f,h,(n,r)=>({_tag:`View`,model:e,message:t,durationMs:n,thresholdMs:r}));let{maybeCurrentVNode:_}=me,[v,y]=sV(p,()=>{if(pr(_)&&ge!==null){let e=ge;return ge=null,e.removeAttribute(kR),FB(e,g,xe.dedupeSeen,o??``)}return he(_,g,xe.dedupeSeen)});me.maybeCurrentVNode=S(v),cV(p,y,(n,r)=>({_tag:`Patch`,model:e,message:t,durationMs:n,thresholdMs:r})),i&&KB(m,v.elm)},Ce=(t,n,r=be,i=`Live`)=>O(function*(){e.isRenderingFrame=!0;let a=yield*nm();i===`Replay`&&kee(),Se(t,n,r,a,i)}).pipe(pm(D(()=>{e.isRenderingFrame=!1,Aee(),y()})),cm(DR,r),cm(mk,te),cm(gk,ne)),we=ei(ei(ei(m,DR,be),mk,te),gk,ne),Te=()=>{e.isRenderingFrame=!0;let t=h();re()===`Paused`&&(ve=x());try{Se(h(),ve,be,we,`Live`),de=t,ie(`Live`),se()}catch(e){Dm(_e(Rd(e),ve))}finally{e.isRenderingFrame=!1}y(),ce()},Ee=t=>{if(re()===`Paused`||t.reducedMotionQuery.matches||pr(ve))return!1;let n=hV(t.decide,{previousModel:de,model:h(),message:ve.value});if(pr(n))return!1;pe();try{let r={isInvalidated:!1,didRun:!1},i=t.startViewTransition(()=>{if(!(r.isInvalidated||r.didRun)){if(r.didRun=!0,e.isRuntimeDisposed||e.isCrashed||ae()||re()===`Paused`){ce();return}Te()}},n.value.maybeTypes);return fe=S({handle:i,update:r}),pV(i),!0}catch{return!1}},De=()=>{le=!1;let t=ue;if(ue=!1,e.isRuntimeDisposed){ce();return}if(ee(),e.isCrashed){ce();return}if(ae()){ce();return}if(re()===`Paused`&&!t){ce();return}if(pr(f)){Te();return}Ee(f.value)||Te()},Oe=(e=!1)=>{e&&(ue=!0),!le&&(le=!0,p.markCommitPending(),requestAnimationFrame(De))};return{crashWith:_e,render:Ce,setLastDirtyMessage:ye,scheduleRenderFrame:Oe,skipPendingViewTransition:pe,devToolsRenderBridge:{renderReplay:e=>O(function*(){let t=e,n=de;ie(`Paused`),pe();let r=yield*Bp(Ce(t,x(),qB,`Replay`));if($d(r)){if(b(),ae()){let e=yield*Bp(Ce(n,x(),qB,`Replay`));b(),$d(e)&&(yield*oe)}else yield*D(()=>Oe(!0));return yield*Ap(r.cause)}b(),de=t,ve=x()}),markRenderPending:D(()=>Oe(!0))}}}),_V=({resources:e,managedResources:t,runtimeScope:n,maybePortChannels:r})=>O(function*(){let i=yield*w(gr(e),{onNone:()=>E(x()),onSome:e=>Vp(gm(ym(jf(e,n))),S)}),a=yield*bp(t?ki(t):[],([e,t])=>OD(x()).pipe(Vp(e=>({config:t,ref:e})))),o=(e,{config:t,ref:n})=>Vf(e,Mf(t.resource._tag,n)),s=Ui(a,{onEmpty:()=>x(),onNonEmpty:e=>S(Ma(e,Pf,o))}),c=YP();return{managedResourceRefs:a,provideAllResources:e=>{let t=w(i,{onNone:()=>e,onSome:t=>k(t,t=>am(e,t))}),n=w(s,{onNone:()=>t,onSome:e=>im(t,e)});return cm(w(r,{onNone:()=>n,onSome:e=>cm(n,fR,e.channels)}),XP,c)},provideResources:e=>w(i,{onNone:()=>e,onSome:t=>tm(t,{onFailure:t=>Hd(t)?Ap(t):Kp(am(e,Zr()),e=>Hd(e)?Ap(e):Ap(Wd(t,e))),onSuccess:t=>am(e,t)})})}}),vV=()=>({isRuntimeDisposed:!1,isRenderingFrame:!1,isCrashed:!1}),yV=_C(M({x:j,y:j}));ES(yV);var bV=SS(yV),xV=e=>`foldkit:scroll:${e}`,SV=e=>{try{let t=xV(e),n=gr(window.sessionStorage.getItem(t));return window.sessionStorage.removeItem(t),Cr(n,bV)}catch{return x()}},CV=e=>D(()=>{let t=SV(e);if(C(t)){let{x:e,y:n}=t.value;window.scrollTo({left:e,top:n,behavior:`instant`})}}),wV=({subscriptions:e,initModel:t,modelPubSub:n,runtimeScope:r,maybeSlowSubscriptionDependencies:i,enqueueMessageEffect:a,provideAllResources:o,crashWith:s})=>m(e,ki,bp(([e,{dependenciesSchema:c,modelToDependencies:l,keepAliveEquivalence:u,dependenciesToStream:d}])=>O(function*(){let f=u??FC(c),[p,m]=sV(i,()=>l(t));cV(i,m,(n,r)=>({_tag:`SubscriptionDependencies`,subscriptionKey:e,model:t,durationMs:n,thresholdMs:r}));let h=yield*OD(p),g=EE(yield*pw(n).pipe(cm(df,r))).pipe(AE(t=>O(function*(){let[n,r]=sV(i,()=>l(t));return cV(i,r,(n,r)=>({_tag:`SubscriptionDependencies`,subscriptionKey:e,model:t,durationMs:n,thresholdMs:r})),yield*AD(h,n),n})));yield*Em(r)(NE(bE(p),g).pipe(BE(f),ME(e=>d(e,()=>MD(h))),WE(e=>a(e)),o,Kp(e=>s(e,x()))))}),{concurrency:`unbounded`,discard:!0})),TV=new WeakMap,EV=({ports:e,kind:t,Model:n,Flags:r,configuredFlags:i,isFlagsRequired:a,init:o,update:s,view:c,manageDocument:l,subscriptions:u,container:d,hydration:f,routing:p,crash:h,slow:g,viewTransition:_,freezeModel:v,preserveScroll:y,resources:ee,managedResources:te,devTools:ne})=>{let b=e=>hz(e,!1),re=WP(),ie=oV(g,b),ae=Cr(ie,({view:e})=>e),oe=Cr(ie,({update:e})=>e),se=Cr(ie,({patch:e})=>e),ce=Cr(ie,({subscriptionDependencies:e})=>e),ue=m(gr(_),Cr(e=>xr(mV(),t=>({decide:e,startViewTransition:t,reducedMotionQuery:window.matchMedia(`(prefers-reduced-motion: reduce)`)})))),de=v!==!1&&!1,fe=y!==!1&&l&&!1,pe=e=>de?ez(e):e;le(e)&&jz(e);let me=f!==void 0&&f.runtimeId!==``?f.runtimeId:d?.id??``,he=(t,g,_=`Fresh`,v,y)=>{let b=oF(),ie=new Set;return um(O(function*(){if(me===``)return yield*Mp(Error('[foldkit] Runtime container must have an `id` for Model preservation across reloads. Set `container.id = "app"` (or any unique string) before passing it to makeApplication or makeElement. On a server-rendered page the id comes from the `data-foldkit-app` root stamp instead.'));let le=yield*lm,de=m(gr(e),xr(e=>Az(e,t)));yield*w(Tr({connector:t,portChannels:de}),{onNone:()=>Ep,onSome:({connector:e,portChannels:t})=>dm(D(()=>e.bind(t.deliverInbound)),()=>D(()=>e.unbind()))});let{managedResourceRefs:he,provideAllResources:ge,provideResources:_e}=yield*_V({resources:ee,managedResources:te,runtimeScope:le,maybePortChannels:de}),{maybeHydrationRoot:ve,resolveFlags:ye}=yield*qR({bootMode:_,hydration:f,bootFlags:v,configuredFlags:i,isFlagsRequired:a,FlagsCodec:r,preservedModel:g,container:d,buildId:y,provideResources:_e}),be=IC(n),xe=xS(be),Se=ES(be),Ce=gr(p).pipe(Cr(()=>QL(window.location.href))),we=Vp(ye,e=>o(e,yr(Ce))),Te=yield*g===void 0?we:tf(xe(g),{onFailure:()=>we,onSuccess:e=>E({model:e})}),Ee=Te.model,De=Te.commands??[];yield*zz({onDebounce:e=>D(()=>(Se(e),void 0)),onFlush:e=>D(()=>(Se(e),void 0))},so(200));let Oe=vV(),ke=yield*Pz({status:Oe,processMessage:e=>Qe(e),crashWith:(e,t)=>Ge(e,t)}),{enqueueMessage:Ae,enqueueMessageEffect:je,completeBoot:Me}=ke,Ne=pe(Ee),Pe=yield*uw(),Fe=yield*kz({devTools:ne,update:s,maybeFreezeModel:pe,enqueueMessageEffect:je}),{isRecordingCommands:Ie,installDevToolsStore:Le,recordInit:Re,recordMessage:ze,recordCommandResult:Be}=Fe,Ve=0,He=e=>T(e,e=>({id:Ve++,command:e}));p&&(yield*dm(D(()=>JR(Ae,p)),e=>D(()=>e())));let Ue=Ne,We=yield*nm(),{crashWith:Ge,render:Ke,setLastDirtyMessage:qe,scheduleRenderFrame:Je,skipPendingViewTransition:Ye,devToolsRenderBridge:Xe}=yield*gV({status:Oe,container:d,view:c,htmlBuilder:re,manageDocument:l,crash:h,buildId:y,initModel:Ne,maybeHydrationRoot:ve,maybeSlowView:ae,maybeSlowPatch:se,duplicateIdScanner:void 0,maybeResolvedViewTransition:ue,commitNotifier:b,runtimeContext:We,readLiveModel:()=>Ue,messageQueue:ke,devToolsIntegration:Fe});yield*fm(()=>bp(m(ie,Bi,aee),$F,{discard:!0}));let Ze=(e,t,n)=>{queueMicrotask(()=>{if(Oe.isRuntimeDisposed||Oe.isCrashed)return;let r=e.effect.pipe(Cm(e.name,{attributes:e.args??{}}),ge),i=n===void 0?r:r.pipe(zp(e=>D(()=>Be(n,e))));Om(We)(Em(le)(i.pipe(k(je),Kp(e=>Ge(e,t)))))})},Qe=e=>{let t=Ue,[n,r]=sV(oe,()=>s(t,e)),i=n.model,a=n.commands??[],o=pe(i);if(cV(oe,r,(n,r)=>({_tag:`Update`,previousModel:t,nextModel:o,message:e,durationMs:n,thresholdMs:r})),t!==o&&(Ue=o,qe(e),fw(Pe,o),Je()),Ie){let n=He(a);for(let{command:t,id:r}of n)Ze(t,S(e),r);ze(e,t,o,n)}else for(let t of a)Ze(t,S(e))};yield*Le(Xe);let $e=yield*Bp(Ke(Ne,x()));if($d($e))return yield*Ge($e.cause,x()),yield*Op;fe&&(yield*CV(me));let et=Ie?He(De):[];if(Ie&&(yield*Re(Ne,et)),u&&(yield*wV({subscriptions:u,initModel:Ne,modelPubSub:Pe,runtimeScope:le,maybeSlowSubscriptionDependencies:ce,enqueueMessageEffect:je,provideAllResources:ge,crashWith:Ge})),yield*Mz({managedResourceRefs:he,initModel:Ne,modelPubSub:Pe,runtimeScope:le,enqueueMessageEffect:je,crashWith:Ge}),yield*fm(()=>D(()=>{Oe.isRuntimeDisposed=!0,Ye()})),Ie)for(let{command:e,id:t}of et)Ze(e,x(),t);else for(let e of De)Ze(e,x());Me(),yield*Op})).pipe(cm(aF,b.service),cm(dF,{register:e=>{ie.add(e)},unregister:e=>{ie.delete(e)}}))},ge={runtimeId:me,start:e=>he(x(),e,`Fresh`),ports:e};return TV.set(ge,{startWith:(e,t,n,r,i)=>he(e,t,n,r,i),kind:t,isEmbedActive:!1,maybeActiveFiber:x()}),ge};function DV(e){let{container:t}=e,n=`routing`in e,r=`Flags`in e,i=KR(t,r),a=i?.root??t;if(a===null)throw GR(document)&&WR(document),Error('[foldkit] Container is null. Make sure the element exists in the DOM before calling makeApplication (e.g. that your <div id="root"></div> has rendered, and your script runs after it). On a server-rendered page the runtime instead finds the root by its `data-foldkit-app` stamp.');let o=n?br(QL(window.location.href)):void 0,s={kind:`Application`,Model:e.Model,update:e.update,view:e.view,manageDocument:!0,ports:e.ports,...e.subscriptions&&{subscriptions:e.subscriptions},container:a,...i&&{hydration:i},...n&&{routing:e.routing},...e.crash&&{crash:e.crash},...le(e.slow)&&{slow:e.slow},...le(e.viewTransition)&&{viewTransition:e.viewTransition},...le(e.freezeModel)&&{freezeModel:e.freezeModel},...le(e.preserveScroll)&&{preserveScroll:e.preserveScroll},...e.resources&&{resources:e.resources},...e.managedResources&&{managedResources:e.managedResources},...le(e.devTools)&&{devTools:e.devTools}};return EV(r&&n?{...s,Flags:e.Flags,configuredFlags:x(),isFlagsRequired:!0,init:(t,n)=>e.init(t,n??o)}:n?{...s,Flags:zS,configuredFlags:x(),isFlagsRequired:!1,init:(t,n)=>e.init(n??o)}:r?{...s,Flags:e.Flags,configuredFlags:x(),isFlagsRequired:!0,init:t=>e.init(t)}:{...s,Flags:zS,configuredFlags:x(),isFlagsRequired:!1,init:()=>e.init()})}var OV=FD(({fiber:e,teardown:t})=>{function n(t){t.persisted||e.interruptUnsafe(e.id)}globalThis.addEventListener(`pagehide`,n),e.addObserver(e=>{globalThis.removeEventListener(`pagehide`,n),t(e,()=>{})})}),kV=new To(`async`,e=>{let t=!1;return queueMicrotask(()=>{t||e()}),()=>{t=!0}}),AV=e=>im(e,Mf(bo,kV)),jV=(e,t,n,r,i)=>{let a=TV.get(e);return ce(a)?Mp(Error(`[foldkit] Runtime boot expects a program created by makeApplication or makeElement.`)):n===`Hydrate`&&a.kind!==`Application`?Mp(Error(`[foldkit] Runtime.hydrate expects a program created by makeApplication.`)):a.startWith(x(),t,n,r,i)},MV=e=>Hd(e)?Ep:zD(Gd(e))?Nm(e):Ep,NV=e=>Jp(e,MV),PV=(e,t,n,r)=>{OV(NV(AV(k(Rz(e.runtimeId),i=>jV(e,i,t,n,r)))),{disableErrorReporting:!0})};function FV(e,t){PV(e,`Fresh`,t?.flags)}var IV=o(2,(e,t)=>t===void 0?e:{...e,outMessage:t}),LV=o(2,(e,t)=>Ma(t,{model:e},(e,t)=>{let n=t(e.model),r=[...e.commands??[],...n.commands??[]];return{model:n.model,commands:r}})),RV=e=>{let t=zV(e.toParentMessage);return o(2,(n,r)=>BV(e,t,n,r))},zV=e=>({liftCommand:t=>nF(t,e),liftCommands:t=>rF(t,e)}),BV=(e,t,n,r)=>m(n,e.read,w({onNone:()=>({model:n}),onSome:i=>{let a=e.update(i,r);return VV(a,e.write(n,a.model),e,t)}})),VV=(e,t,n,r)=>{let i=rF(e.commands,n.toParentMessage),a=n.foldOutMessage===void 0||e.outMessage===void 0?{model:t,commands:i}:UV(n.foldOutMessage,e.outMessage,r,t,i);if(a.outMessage!==void 0||n.toParentOutMessage===void 0||e.outMessage===void 0)return a;let o=n.toParentOutMessage(e.outMessage);return o===void 0?a:{...a,outMessage:o}},HV=e=>{let t=zV(e.toParentMessage);return n=>BV(e,t,n,void 0)},UV=(e,t,n,r,i)=>{let a=e(t,n)(r),o=[...i,...a.commands??[]];return{...a,commands:o}},WV=(e,t)=>VV(e,t.toParentModel(e.model),t,zV(t.toParentMessage)),GV=`~effect/encoding/Sse/SseError`,KV=class extends No(`EventTooLarge`){get message(){return`Pending SSE event exceeded the maximum size of ${this.maxEventSize}`}},qV=class extends No(`SseError`){[GV]=GV;get message(){return this.reason.message}},JV=10485760,YV=e=>_T((t,n)=>D(()=>{let n=[],r,i=ZV(e=>{e._tag===`Retry`?r=e:n.push(e)},e),a=k(t,e=>{for(let t=0;t<e.length;t++){let n=i.feed(e[t]);if(n!==void 0)return kp(n)}return Ep});return Tp(function e(){if(Xi(n)){let e=n;return n=[],E(e)}return r?kp(r):k(a,e)})})),XV=(e,t,n)=>ZT(YV(t),oE($V.pipe(ZS(e,eH)),n)());function ZV(e,t){let n=t?.maxEventSize??JV,r,i,a,o,s,c,l,u;return d(),{feed:f,reset:d};function d(){r=!0,i=``,a=0,o=-1,s=!1,c=void 0,l=void 0,u=``}function f(e){i=i?i+e:e,r&&i.startsWith(QV)&&(i=i.slice(QV.length)),r=!1;let t=i.length,c=0;for(;c<t;){s&&=(i[c]===`
99
- `&&++c,!1);let e=-1,n=o,r;for(let o=c+a;e<0&&o<t;++o)r=i[o],r===`:`&&n<0?n=o-c:r===`\r`?(s=!0,e=o-c):r===`
100
- `&&(e=o-c);if(e<0){a=t-c,o=n;break}a=0,o=-1,p(i,c,n,e),c+=e+1}if(c===t?i=``:c>0&&(i=i.slice(c)),i.length+u.length>n){let e=new qV({reason:new KV({maxEventSize:n})});return d(),e}}function p(t,n,r,i){if(i===0){u.length>0&&(e({_tag:`Event`,id:c,event:l||`message`,data:u.slice(0,-1)}),u=``),l=void 0;return}let a=r<0,o=t.slice(n,n+(a?i:r)),s=0;s=a?i:t[n+r+1]===` `?r+2:r+1;let d=n+s,f=i-s,p=t.slice(d,d+f).toString();o===`data`?u+=p?`${p}\n`:`
101
- `:o===`event`?l=p:o===`id`&&!p.includes(`\0`)?c=p:o===`retry`&&/^\d+$/.test(p)&&e(new nH({duration:so(parseInt(p,10)),lastEventId:c}))}}var QV=``,$V=M({_tag:tC(`Event`),id:YS(A),event:A,data:A}),eH=vv({decode:e=>e.id===void 0?{event:e.event,data:e.data}:{id:e.id,event:e.event,data:e.data},encode:e=>({_tag:`Event`,id:e.id,event:e.event??`message`,data:e.data})}),tH=`~effect/encoding/Sse/Retry`,nH=class e extends Ao(`Retry`){[tH]=tH;static is(e){return _e(e,tH)}static filter(t){return e.is(t)?gi(t):_i(t)}},rH=`~effect/http-api/HttpApiSchema/Stream`;function iH(e){let t=typeof e==`string`?UL(e):e;return e=>e.annotate({httpApiStatus:t})}var aH=(e=>zS.pipe(iH(e)))(204),oH=e=>kS(e)&&_e(e,rH),sH=e=>oH(e)&&e._tag===`StreamSse`,cH=e=>oH(e)&&e._tag===`StreamUint8Array`,lH=`~effect/http-api/HttpApiSchema/WithHeaders`,uH=`~effect/http-api/HttpApiSchema/WithHeadersValue`,dH=e=>({[uH]:uH,body:e.body,headers:e.headers}),fH=e=>kS(e)&&_e(e,`~effect/http-api/HttpApiSchema/WithHeaders`);function pH(e,t,n){return OS(e.ast,{[lH]:lH,schema:t,headers:n})}function mH(e,t){return e.annotate({"~httpApiEncoding":{_tag:t._tag,contentType:t.contentType??hH(t._tag)}})}function hH(e){switch(e){case`Multipart`:return`multipart/form-data`;case`Json`:return`application/json`;case`FormUrlEncoded`:return`application/x-www-form-urlencoded`;case`Uint8Array`:return`application/octet-stream`;case`Text`:return`text/plain`}}function gH(e){return t=>mH(t,{_tag:`FormUrlEncoded`,...e})}var _H=e=>{if(Fv(e)||Fv(Tb(e)))return!0;let t=e.encoding?.[0].to;return t!==void 0&&Fv(t)},vH=Vb(`~httpApiEncoding`),yH=Vb(`~httpApiWithHeaders`),bH=Vb(`httpApiStatus`),xH={_tag:`Json`,contentType:`application/json`},SH={_tag:`FormUrlEncoded`,contentType:`application/x-www-form-urlencoded`};function CH(e){return vH(e)??xH}function wH(e,t){return vH(e)||(AI(t)?xH:SH)}function TH(e){let t=CH(e);if(t._tag===`Multipart`)throw Error(`Multipart is not supported in response`);return t}function EH(e){return bH(e)??200}function DH(e){return fH(e)?bH(e.ast)??EH(e.schema.ast):EH(e.ast)}function OH(e){return fH(e)&&vH(e.ast)===void 0?TH(e.schema.ast):TH(e.ast)}function kH(e){return bH(e)??500}function AH(e){return fH(e)?bH(e.ast)??kH(e.schema.ast):kH(e.ast)}function jH(e){let t=e.toLowerCase().trim(),n=t.indexOf(`;`);return n===-1?t:t.slice(0,n).trim()}var MH=`~effect/http-api/HttpApiEndpoint`;function NH(e){let t=[];for(let{schemas:n}of e.payload.values())t.push(...n);return t}function PH(e){let t=Array.from(e.success);return Xi(t)?t:[aH]}function FH(e){let t=new Set(e.error),n=e.disableCodecs?s:WH;for(let r of e.middlewares){let e=r;for(let r of e.error)t.add(n(r))}return Array.from(t)}var IH={[MH]:MH,pipe(){return r(this,arguments)},prefix(e){return RH({...LH(this),path:NL(this.path,e)})},middleware(e){return RH({...LH(this),middlewares:new Set([...this.middlewares,e])})},annotate(e,t){return RH({...LH(this),annotations:ei(this.annotations,e,t)})},annotateMerge(e){return RH({...LH(this),annotations:ui(this.annotations,e)})}},LH=e=>({identifier:e.identifier,path:e.path,method:e.method,params:e.params,query:e.query,headers:e.headers,payload:e.payload,success:e.success,error:e.error,annotations:e.annotations,middlewares:e.middlewares,disableCodecs:e.disableCodecs});function RH(e){function t(){}return Object.setPrototypeOf(t,IH),Object.assign(t,e)}var zH=e=>(t,n,r)=>{let i=r?.disableCodecs??!1,a=i?s:LC;return RH({identifier:t,path:n,method:e,params:BH(r?.params,a),query:BH(r?.query,a),headers:BH(r?.headers,a),payload:VH(r?.payload,e,i),success:UH(r?.success,e,i),error:GH(r?.error,i),annotations:Zr(),middlewares:new Set,disableCodecs:i})};function BH(e,t){if(e!==void 0)return kS(e)?t(e):t(M(e))}function VH(e,t,n){let r=new Map;if(e===void 0)return r;let i=Array.isArray(e)?e:kS(e)?[e]:[M(e).pipe(gH())],a=n?s:tU;for(let e of i){let n=wH(e.ast,t),i=jH(n.contentType),o=r.get(i);if(o){if(o.encoding._tag!==n._tag)throw Error(`Multiple payload encodings for content-type: ${n.contentType}`);if(o.encoding._tag===`Multipart`)throw Error(`Multiple multipart payloads for content-type: ${n.contentType}`);o.schemas.push(a(e,t))}else r.set(i,{encoding:n,schemas:[a(e,t)]})}return r}var HH=`effect/http-api/stream/failure`;function UH(e,t,n){if(e===void 0)return new Set;let r=Vi(e);return KH(r,t),new Set(n?r:r.map(WH))}var WH=g(e=>oH(e)?e:fH(e)?pH(e,oH(e.schema)?e.schema:eU(e.schema,OH(e)),LC(e.headers)):$H(e));function GH(e,t){if(e===void 0)return new Set;let n=Vi(e);for(let e of n)if(oH(fH(e)?e.schema:e))throw Error(`Streaming schemas are not supported in error responses`);return JH(n,AH),new Set(t?n:n.map(WH))}function KH(e,t){let n=!1,r=new Map;for(let i of e){let e=fH(i)?i.schema:i,a=DH(i);if(oH(e)){if(YH(e,t),n)throw Error(`Multiple streaming success responses are not supported`);n=!0;let i=qH(r,a);if(i.noContent)throw Error(`Cannot combine no-content and streaming success responses for status: ${a}`);if(i.bufferedContentTypes.has(jH(e.contentType)))throw Error(`Cannot combine buffered and streaming success responses for status ${a} and content-type: ${e.contentType}`);r.set(a,{...i,stream:e})}else{let t=qH(r,a),n=_H(e.ast);if(t.stream!==void 0){if(n)throw Error(`Cannot combine no-content and streaming success responses for status: ${a}`);let e=OH(i);if(jH(e.contentType)===jH(t.stream.contentType))throw Error(`Cannot combine buffered and streaming success responses for status ${a} and content-type: ${e.contentType}`)}n||t.bufferedContentTypes.add(jH(OH(i).contentType)),t.noContent=t.noContent||n}}JH(e,DH)}function qH(e,t){let n=e.get(t);return n===void 0&&(n={bufferedContentTypes:new Set,noContent:!1},e.set(t,n)),n}function JH(e,t){let n=new Map;for(let r of e){let e=t(r),i=yH(r.ast),a=fH(r)?r.schema:i?.body??r,o=_H(a.ast)?``:jH(oH(a)?a.contentType:OH(r).contentType),s=n.get(e);s===void 0&&(s={headerContentType:void 0,plainContentTypes:new Set},n.set(e,s));let c=()=>Error(`Cannot combine a response with headers with another response for status ${e} and content-type: ${o||`<no content>`}`);if(fH(r)||i!==void 0){if(s.headerContentType!==void 0)throw Error(`Cannot declare multiple responses with headers for status ${e}`);if(s.plainContentTypes.has(o))throw c();s.headerContentType=o}else{if(s.headerContentType===o)throw c();s.plainContentTypes.add(o)}}}function YH(e,t){if(t===`HEAD`)throw Error(`HEAD endpoints cannot declare streaming success responses`);if(sH(e)&&XH(e.events.ast))throw Error(`SSE event name is reserved: ${HH}`)}function XH(e){return ZH(Tb(e),new Set)}function ZH(e,t){if(t.has(e))return!1;if(t.add(e),Vv(e))return e.types.some(e=>ZH(e,t));if(Hv(e))return ZH(e.thunk(),t);if(!Bv(e))return!1;let n=e.propertySignatures.find(e=>e.name===`event`);return n!==void 0&&QH(n.type,t)}function QH(e,t){if(t.has(e))return!1;t.add(e);let n=Tb(e);return n===e?Lv(e)?e.literal===HH:Vv(e)?e.types.some(e=>QH(e,t)):Hv(e)?QH(e.thunk(),t):!1:QH(n,t)}function $H(e){let t=TH(e.ast),n=yH(e.ast);return n===void 0?eU(e,t):e.annotate({"~httpApiWithHeaders":{...n,bodyCodec:eU(n.body,t),headersCodec:LC(n.headers)}})}function eU(e,t){switch(t._tag){case`Json`:return IC(e);case`FormUrlEncoded`:return LC(e);case`Text`:case`Uint8Array`:return e}}function tU(e,t){switch(wH(e.ast,t)._tag){case`Json`:return IC(e);case`FormUrlEncoded`:return LC(e);case`Text`:case`Uint8Array`:case`Multipart`:return e}}var nU=zH(`GET`),rU=zH(`POST`),iU=zH(`PUT`),aU=zH(`DELETE`),oU=`~effect/http-api/HttpApi`,sU={[oU]:oU,pipe(){return r(this,arguments)},add(...e){let t={...this.groups};for(let n of e)Mt(t,n.identifier,n);return lU({...cU(this),groups:t})},addHttpApi(e){let t={...this.groups};for(let n of Object.keys(e.groups)){let r=e.groups[n];Mt(t,n,r.annotateMerge(ui(e.annotations,r.annotations)))}return lU({...cU(this),groups:t})},prefix(e){return lU({...cU(this),groups:Mi(this.groups,t=>t.prefix(e))})},middleware(e){return lU({...cU(this),groups:Mi(this.groups,t=>t.middleware(e))})},annotate(e,t){return lU({...cU(this),annotations:ei(this.annotations,e,t)})},annotateMerge(e){return lU({...cU(this),annotations:ui(this.annotations,e)})}},cU=e=>({identifier:e.identifier,groups:e.groups,annotations:e.annotations}),lU=e=>{function t(){}return Object.setPrototypeOf(t,sU),Object.assign(t,e)},uU=e=>lU({identifier:e,groups:{},annotations:Zr()}),dU=(e,t)=>{let n=Object.values(e.groups);for(let r of n){let n=ui(e.annotations,r.annotations);t.onGroup({group:r,mergedAnnotations:n});let i=Object.values(r.endpoints);for(let e of i)(!t.predicate||t.predicate({endpoint:e,group:r}))&&t.onEndpoint({group:r,endpoint:e,middleware:e.middlewares,mergedAnnotations:ui(n,e.annotations),successes:fU(PH(e),DH),errors:fU(FH(e),AH)})}},fU=(e,t)=>{let n=new Map;return e.forEach(r),n;function r(e){if(oH(fH(e)?e.schema:e))return;let r=t(e),i=n.get(r);i===void 0?n.set(r,[e]):i.push(e)}},pU=class extends Nr()(`effect/http-api/HttpApi/ParseOptions`){},mU=class extends Nr()(`effect/http-api/HttpApi/ParamsParseOptions`){},hU=class extends Nr()(`effect/http-api/HttpApi/QueryParseOptions`){},gU=class extends Nr()(`effect/http-api/HttpApi/HeadersParseOptions`){},_U=class extends Nr()(`effect/http-api/HttpApi/PayloadParseOptions`){},vU=class extends Nr()(`effect/http-api/HttpApi/SuccessParseOptions`){},yU=class extends Nr()(`effect/http-api/HttpApi/ErrorParseOptions`){},bU=e=>{let t=ni(e,pU);return{params:ni(e,mU)??t,query:ni(e,hU)??t,headers:ni(e,gU)??t,payload:ni(e,_U)??t,success:ni(e,vU)??t,error:ni(e,yU)??t}},xU=new Set;function SU(e){if(e===void 0)return xU;let t=tb(e.ast);return Bv(t)&&t.indexSignatures.length===0?new Set(t.propertySignatures.map(e=>String(e.name))):void 0}var CU=(e,t)=>O(function*(){let n=yield*nm(),r=t.httpClient.pipe(t?.baseUrl===void 0?s:mL(JI(t.baseUrl.toString())));function i(e,t,a,o,s){if(s===-1)return r.execute(a);let c=n.mapUnsafe.get(o[s]);return c===void 0?i(e,t,a,o,s-1):c({endpoint:t,group:e,request:a,next(n){return i(e,t,n,o,s-1)}})}dU(e,{predicate:t?.predicate,onGroup(e){t.onGroup?.(e)},onEndpoint(e){let{group:n,endpoint:r,errors:a,successes:o,mergedAnnotations:s}=e,c=bU(s),l=DU(r.path,r.params),u={orElse:qU},d=new Map;for(let[e,t]of a.entries()){let n=NU(t);for(let[t,r]of n.entries())jU(d,e,t,OU(r,c.error,c.headers))}for(let[e,t]of d.entries()){let n=MU(t);u[e]=e=>k(Kp(n(e),t=>Ap(Wd(Ld(new SI({reason:new DI({request:e.request,response:e})})),t))),kp)}let f=new Map;for(let[e,t]of o.entries()){let n=NU(t);for(let[t,r]of n.entries())jU(f,e,t,OU(r,c.success,c.headers))}for(let e of LU(r)){let t=IU(e)?e.schema:e;jU(f,DH(e),t.contentType,RU(e,c.success,c.headers))}for(let[e,t]of f.entries())u[e]=MU(t);let p=ND(r.params,e=>TS(e,c.params)),m=NH(r),h=Xi(m)?TS(AI(r.method)?YU(m,r.method):KS(m),c.payload):void 0,g=ND(r.headers,e=>TS(e,c.headers)),_=ND(r.query,e=>TS(e,c.query)),v=Array.from(e.middleware,e=>`${e.key}/Client`),y=Mm(function*(e){let a=BI(r.method)(r.path);if(e!==void 0){if(p!==void 0){let t=yield*p(e.params);a=qI(a,l(t))}if(h!==void 0){if(AI(r.method)){if(e.payload instanceof FormData)a=eL(a,e.payload);else{let t=yield*h(e.payload);a=$I(a,t)}}else{let t=yield*h(e.payload);a=ZI(a,t)}}if(g!==void 0){let t=yield*g(e.headers);a=WI(a,t)}if(_!==void 0){let t=yield*_(e.query);a=ZI(a,t)}}let o=yield*i(n,r,a,v,v.length-1);if(e?.responseMode===`response-only`)return o;let s=(u[o.status]??u.orElse)(o,e?.sseOptions),c=yield*t.transformResponse===void 0?s:t.transformResponse(s);return e?.responseMode===`decoded-and-response`?[c,o]:c});t.onEndpoint({...e,endpointFn:y})}})}),wU=(e,t)=>k(lL,n=>TU(e,{...t,httpClient:t?.transformClient?t.transformClient(n):n})),TU=(e,t)=>{let n={};return CU(e,{...t,onGroup({group:e}){e.topLevel||Mt(n,e.identifier,{})},onEndpoint({endpoint:e,endpointFn:t,group:r}){Mt(r.topLevel?n:n[r.identifier],e.identifier,t)}}).pipe(Hp(n))},EU=/(\/?):(\w+)(\?)?/g,DU=(e,t)=>{if(t===void 0||!e.includes(`:`))return t=>e;let n=SU(t);return t=>e.replace(EU,(e,r,i,a)=>{if(n!==void 0&&!n.has(i))return e;let o=t[i];if(o===void 0){if(a!==void 0)return``;throw Error(`Missing path parameter: ${i}`)}return`${r}${encodeURIComponent(o)}`})};function OU(e,t,n){let r=e.some(e=>fH(e)||yH(e.ast)!==void 0),i=yS(r?KS(e.map(e=>AU(e,t,n))):GU(e),t);return e=>k(e.arrayBuffer,r?t=>i({body:t,headers:e.headers}):i)}var kU=M({body:FS,headers:FS});function AU(e,t,n){let r=yH(e.ast),i=r===void 0?fH(e)?{body:e.schema,headers:e.headers,toValue:dH}:{body:e,headers:FS,toValue:e=>e.body}:{body:r.bodyCodec,headers:r.headersCodec,toValue:r.transformation.decode},a=yS(KU(i.body).pipe(ZS(i.body)),t),o=yS(i.headers,n);return kU.pipe(ZS(fH(e)?e:MS(e),_v({decode:e=>yp({body:a(e.body),headers:o(e.headers)}).pipe(Vp(i.toValue),qp(e=>e.issue)),encode:(e,t)=>kp(new N_({message:`Decode only schema`},e,t))})))}function jU(e,t,n,r){let i=jH(n),a=e.get(t);a===void 0?e.set(t,[{contentType:i,decode:r}]):a.push({contentType:i,decode:r})}function MU(e){let t=e[0];return e.length===1&&t!==void 0?t.decode:(t,n)=>{let r=jH(t.headers[`content-type`]??``),i=e.find(e=>e.contentType===r);return i===void 0?PU(t,r,e):i.decode(t,n)}}function NU(e){let t=new Map;for(let n of e){let e=_H((fH(n)?n.schema:n).ast)?``:jH(OH(n).contentType),r=t.get(e);r===void 0?t.set(e,[n]):r.push(n)}return t}function PU(e,t,n){let r=Array.from(new Set(n.map(e=>e.contentType))).join(`, `);return kp(new SI({reason:new OI({request:e.request,response:e,description:`Unsupported response content-type for status ${e.status}: ${t||`<missing>`}. Expected one of: ${r}`})}))}var FU=`effect/http-api/stream/failure`,IU=e=>fH(e);function LU(e){let t=[];for(let n of e.success)oH(fH(n)?n.schema:n)&&t.push(n);return t}function RU(e,t,n){let r=IU(e),i=r?e.schema:e,a=cH(i)?void 0:{declaration:i,decoder:zU(i,t)},o=(e,t)=>Vp(nm(),n=>UE(a===void 0?e.stream:BU(e.stream,a.declaration,a.decoder(t)),n));if(!r)return o;let s=yS(e.headers,n);return(e,t)=>k(s(e.headers),n=>Vp(o(e,t),e=>dH({body:e,headers:n})))}function zU(e,t){let n=KS([M({id:jS(A),event:PS(FU),data:_C(IC(SC(e.error,hC())))}),e.events]),r=XV(n,void 0,t);return e=>e===void 0?r:XV(n,e,t)}function BU(e,t,n){let r=_E(e.pipe(VE,RE(n)),e=>D(()=>{let t;return Tp(()=>t===void 0?k(e,e=>{for(let n=0;n<e.length;n++){let r=e[n];if(r.event===FU&&Nd(r.data)){if(n===0)return Ap(r.data);t=r.data,e=e.slice(0,n);break}}return E(e)}):Ap(t))}));return t.sseMode===`data`?kE(r,e=>e.data):r}var VU=aC(globalThis.ArrayBuffer,{expected:`ArrayBuffer`}),HU=VU.pipe(ZS(bC,vv({decode(e){return new Uint8Array(e)},encode(e){return e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}}))),UU=VU.pipe(ZS(A,vv({decode(e){return new TextDecoder().decode(e)},encode(e){let t=new TextEncoder().encode(e);return t.byteLength===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}}))),WU=UU.pipe(ZS(KS([PS(``).pipe(ZS(LS,vv({decode:()=>void 0,encode:()=>``}))),vC])));function GU(e){return KS(e.map(t));function t(e){return KU(e).pipe(ZS(e))}}function KU(e){switch(TH(e.ast)._tag){case`Json`:return Pv(Tb(e.ast))?WU.pipe(ZS(FS,vv({decode:e=>e===void 0?null:e,encode:e=>e===null?void 0:e}))):WU;case`FormUrlEncoded`:return UU.pipe(ZS(TC,vv({decode:e=>Qg(new URLSearchParams(e)),encode:o_})));case`Uint8Array`:return HU;case`Text`:return UU}}var qU=e=>kp(new SI({reason:new OI({request:e.request,response:e})})),JU=dS(lI);function YU(e,t){return KS(e.map(e=>ZU(e,t)))}var XU=new WeakMap;function ZU(e,t){let n=e.ast,r=XU.get(n);if(r!==void 0)return r;let i=wH(n,t),a=JU.pipe(ZS(e,_v({decode(e,t){return kp(new N_({message:`Encode only schema`},e,t))},encode(e,t){switch(i._tag){case`Multipart`:return kp(new N_({message:`Payload must be a FormData`},e,t));case`Json`:try{return E(_I(JSON.stringify(e),i.contentType))}catch{return kp(new j_({expected:`a JSON-serializable request body`},e,t))}case`Text`:return typeof e==`string`?E(_I(e,i.contentType)):kp(new j_({message:`Expected a string`},e,t));case`FormUrlEncoded`:return he(e)?E(vI(Qg(e),i.contentType)):kp(new j_({message:`Expected a record`},e,t));case`Uint8Array`:return e instanceof Uint8Array?E(pI(e,i.contentType)):kp(new j_({message:`Expected a Uint8Array`},e,t))}}})));return XU.set(n,a),a}var QU=`~effect/http-api/HttpApiGroup`,$U={[QU]:QU,add(...e){let t={...this.endpoints};for(let n of e)Mt(t,n.identifier,n);return tW({...eW(this),endpoints:t})},prefix(e){return tW({...eW(this),endpoints:Mi(this.endpoints,t=>t.prefix(e))})},middleware(e){return tW({...eW(this),endpoints:Mi(this.endpoints,t=>t.middleware(e))})},annotateMerge(e){return tW({...eW(this),annotations:ui(this.annotations,e)})},annotate(e,t){return tW({...eW(this),annotations:ei(this.annotations,e,t)})},annotateEndpointsMerge(e){return tW({...eW(this),endpoints:Mi(this.endpoints,t=>t.annotateMerge(e))})},annotateEndpoints(e,t){return tW({...eW(this),endpoints:Mi(this.endpoints,n=>n.annotate(e,t))})},pipe(){return r(this,arguments)}},eW=e=>({identifier:e.identifier,topLevel:e.topLevel,endpoints:e.endpoints,annotations:e.annotations}),tW=e=>{function t(){}return Object.setPrototypeOf(t,$U),t.key=`effect/http-api/HttpApiGroup/${e.identifier}`,Object.assign(t,e)},nW=(e,t)=>tW({identifier:e,topLevel:t?.topLevel??!1,endpoints:{},annotations:Zr()}),rW=A.pipe(XS(`GoalId`)),iW=A.pipe(XS(`ConceptId`)),aW=A.pipe(XS(`SourceId`)),oW=M({id:iW,title:A,summary:A,objectives:N(A),estimatedMinutes:j,difficulty:j,depth:j,isGoal:RS,sourceIds:N(aW)}),sW=M({from:iW,to:iW,kind:qS([`Requires`,`Helps`]),confidence:j}),cW=M({concepts:N(oW),edges:N(sW)}),lW=qS([`Unknown`,`Assumed`,`Known`,`Shaky`,`InLesson`,`Acquired`,`Consolidating`,`Mastered`,`Durable`,`Relearning`]),uW=(e,t)=>{let r=new Set(e.concepts.map(e=>n(e.id,`../../packages/domain/src/graph.ts#anonymous`))),i=t.filter(e=>n(r.has(e),`../../packages/domain/src/graph.ts#anonymous~2`));if(i.length>0)return n(i,`../../packages/domain/src/graph.ts#effectiveTargets`);let a=e.concepts.filter(e=>n(e.isGoal,`../../packages/domain/src/graph.ts#anonymous~3`)).map(e=>n(e.id,`../../packages/domain/src/graph.ts#anonymous~4`));return n(a.length>0?a:e.concepts.map(e=>n(e.id,`../../packages/domain/src/graph.ts#anonymous~5`)),`../../packages/domain/src/graph.ts#effectiveTargets`)},dW=e=>n(e!==`Unknown`&&e!==`Shaky`&&e!==`InLesson`,`../../packages/domain/src/graph.ts#isLearned`),fW=e=>n(e===`Unknown`||e===`Shaky`||e===`InLesson`,`../../packages/domain/src/graph.ts#isDoubted`),pW=M({conceptId:iW,mastery:lW,maybeDueAt:wC(j)}),mW=M({conceptId:iW,title:A,url:A,kind:qS([`Article`,`Video`,`Course`,`Docs`,`Book`]),sourceId:aW,origin:A,weight:j}),hW=M({heading:A,gist:A,body:A}),gW=M({problem:A,steps:N(A),answer:A}),_W=M({belief:A,correction:A}),vW=M({keyIdeas:N(A),chunks:N(hW),workedExamples:N(gW),traps:N(_W),connection:A}),yW=M({id:iW,title:A,mastery:lW}),bW=M({goalId:rW,goalTitle:A,concept:oW,prerequisites:N(yW),unlocks:N(yW),mastery:lW,maybeNextReviewAt:wC(j),maybeLesson:wC(vW),resources:N(mW)}),xW=A.pipe(XS(`QuestionId`)),SW=M({id:xW,conceptId:iW,kind:qS([`MultipleChoice`,`ShortAnswer`]),prompt:A,options:N(M({id:A,text:A}))}),CW=nC(`Choice`,{optionId:A}),wW=nC(`Text`,{text:A}),TW=nC(`DontKnow`,{}),EW=KS([CW,wW,TW]),DW=qS([`Correct`,`Partial`,`Incorrect`,`DontKnow`]),OW=M({verdict:DW,explanation:A,correctAnswer:A,maybeMisconception:wC(A)}),kW=M({questionId:xW,response:EW,note:A,maybeConfidence:wC(qS([`Guess`,`Unsure`,`Sure`])),latencyMs:j,hintLevel:j.pipe(eC(E(0)))}),AW=M({questionId:xW,level:qS([1,2,3]),attempt:A}),jW=M({conceptId:iW,conceptTitle:A,fallbackQuestion:SW,fallbackLevel:j,dueAt:j,retrievability:j}),MW=M({goalId:rW,conceptId:iW,conceptTitle:A,reason:qS([`Lapses`,`LessonFailures`]),flaggedAt:j,recentLapses:j,lessonFailures:j,maybeRemediatedAt:wC(j)}),NW=M({goalId:rW,goalTitle:A,conceptId:iW,conceptTitle:A,question:SW,level:j,dueAt:j,retrievability:j,alsoCovers:N(jW),maybeLeech:wC(MW)}),PW=M({backlog:j,spreadDays:j,perDay:j,todayQuota:j,offPathEased:j}),FW=M({daysAway:j,backlog:j,criticalCount:j,questionBudget:j,minutes:j}),IW=M({items:N(NW),dueCount:j,estimatedMinutes:j,dueTomorrow:j,dueThisWeek:j,maybeNextDueAt:wC(j),coveredCount:j,maybeCatchUp:wC(PW),maybeReplacement:wC(FW)}),LW=M({feedback:OW,grading:qS([`Again`,`Hard`,`Good`,`Easy`]),mastery:lW,nextDueAt:j,nextDueInHours:j,counted:RS,creditedConcepts:N(A),probes:N(NW),maybeLeech:wC(MW)}),RW=M({goalId:rW,conceptId:iW,verdict:DW,isMultipleChoice:RS}),zW=M({heldUp:j,toRelearn:j,likelyHeld:j,likelyFaded:j,backlog:j}),BW=M({maybeItem:wC(NW),asked:j,budget:j,criticalCount:j,summary:zW}),VW=M({goalId:rW,goalTitle:A,conceptId:iW,conceptTitle:A,estimatedMinutes:j}),HW=M({budgetMinutes:j,reviewMinutes:j,minutesToday:j,lessonsToday:j,newLessonSlots:j,mode:qS([`Learning`,`CatchUp`,`CapReached`,`BudgetSpent`,`ReviewLoad`])}),UW=M({days:j,freezesUsed:j,freezesLeft:j,isSavedByFreeze:RS}),WW=M({plan:HW,dueCount:j,estimatedReviewMinutes:j,nextLessons:N(VW),studiedCount:j,masteredCount:j,reviewedToday:j,streakDays:j,streak:UW,maybeCatchUp:wC(PW),maybeReplacement:wC(FW)}),GW=(e,t)=>n(e.pipe(eC(E(t))),`../../packages/domain/src/source.ts#withDefault`),KW=qS([`Curriculum`,`Roadmap`,`Textbook`,`Course`,`Standard`,`Documentation`,`Article`,`Video`,`Reference`,`AiDraft`,`Other`]),qW=qS([`Adapter`,`Web`,`Prior`]),JW=qS([`Math`,`Science`,`CsFundamentals`,`SoftwareTech`,`Language`,`Humanities`,`Practical`]),YW=M({authority:j,currency:j,practicality:j,concision:j,coverage:j,sequencing:GW(j,3),prerequisites:GW(j,3),accessibility:GW(j,3),consensus:GW(j,3)}),XW=M({concept:j,order:j,resource:j}),ZW=qS([`PossiblyOutdated`,`CommercialBias`,`Paywalled`,`LicenseRestricted`,`NotLearnerFacing`,`MachineReadable`,`LlmPrior`,`InjectionSuspected`]),QW=M({id:aW,url:A,title:A,publisher:A,kind:KW,maybeYear:wC(j),summary:A,rationale:A,lane:GW(qW,`Web`),foundBy:GW(A,``),profile:GW(JW,`Practical`),scores:YW,fit:GW(j,1),overall:GW(j,3),weights:GW(XW,{concept:0,order:0,resource:0}),flags:GW(N(ZW),[]),weight:j,topicCount:j}),$W=M({id:rW,prompt:A,title:A,status:qS([`Researching`,`Ready`,`Failed`]),createdAt:j,conceptCount:j,knownCount:j,masteredCount:j}),eG=M({at:j,daysLeft:j}),tG=M({goal:$W,overview:A,assumedKnowledge:N(A),graph:cW,sources:N(QW),progress:N(pW),targets:N(iW),maybeDeadline:wC(eG),resources:N(mW),leeches:N(MW)}),nG=M({prompt:A.check(lC(3))}),rG=M({id:A,brief:A}),iG=KS([nC(`Intro`,{framing:A,motivation:A,objectives:N(A)}),nC(`Prequestion`,{question:SW}),nC(`Read`,{heading:A,body:A,maybeVisual:wC(rG)}),nC(`Check`,{question:SW}),nC(`WorkedExample`,{problem:A,steps:N(A),answer:A}),nC(`Connect`,{body:A}),nC(`TeachBack`,{prompt:A}),nC(`Closing`,{question:SW}),nC(`Summary`,{points:N(A)}),nC(`QuickCheck`,{question:SW}),nC(`QuickCheckDecision`,{})]),aG=M({conceptId:iW,title:A,estimatedMinutes:j,steps:N(iG)}),oG=KS([nC(`Generating`,{startedAt:j}),nC(`Ready`,{lesson:aG,answeredQuestionIds:N(xW)}),nC(`Failed`,{error:A})]),sG=M({score:j,feedback:A,ideaUnits:N(M({idea:A,status:qS([`Present`,`Partial`,`Absent`])})),noviceQuestion:A}),cG=M({mastery:lW,criterionMet:RS,maybeNextReviewAt:wC(j),message:A}),lG=qS([`Guess`,`Unsure`,`Sure`]),uG=qS([`Placement`,`Lesson`,`Review`]),dG=M({role:qS([`Learner`,`Tutor`]),text:A}),fG=M({question:A,stepContext:A,isGradedStep:RS,history:N(dG)}),pG=qS([`Analogy`,`ConcreteExample`,`FromScratch`,`Contrast`,`Picture`]),mG=M({heading:A,body:A,tried:N(pG),maybeMissedQuestion:wC(A)}),hG=M({angle:pG,body:A}),gG=M({conceptId:iW,pKnown:j,status:qS([`Known`,`QuickCheck`,`ToLearn`]),wasAsked:RS}),_G=M({conceptId:iW,prompt:A,verdict:qS([`Correct`,`Partial`,`Incorrect`,`DontKnow`,`Skipped`]),correctAnswer:A,explanation:A}),vG=KS([nC(`NotStarted`,{}),nC(`Preparing`,{ready:j,total:j}),nC(`Asking`,{question:SW,conceptTitle:A,number:j,questionsLeft:j,canFinishEarly:RS,isWarmup:RS}),nC(`Summary`,{beliefs:N(gG),questionsAsked:j,answers:N(_G)}),nC(`Applied`,{})]),yG=M({conceptId:iW,choice:qS([`Known`,`Unknown`])}),bG=M({durable:j,mastered:j,learning:j,knownBefore:j,notYet:j}),xG=M({goalId:rW,title:A,conceptCount:j,breakdown:bG}),SG=M({windowDays:j,reviewed:j,remembered:j}),CG=M({cardCount:j,projection:N(j),retention:SG,targetRetention:j}),wG=M({confidence:lG,answered:j,correct:j}),TG=M({confidence:lG,window:qS([`LastWeek`,`AllTime`]),answered:j,correct:j}),EG=M({lastWeek:N(wG),allTime:N(wG),readings:N(TG),minimumAnswers:j,isOverconfident:RS,isUnderconfident:RS}),DG=M({days:N(M({date:A,weekday:j,lessons:j,reviews:j})),streakDays:j,activeDays:j,effortMinutes:j,effortMinutesLastWeek:j}),OG=M({days:N(M({date:A,weekday:j,due:j,overdue:j})),later:j}),kG=M({today:A,totals:bG,goals:N(xG),memory:CG,calibration:EG,activity:DG,forecast:OG}),AG=class extends nW(`progress`).add(nU(`report`,`/progress`,{success:kG})){},jG=qS([10,20,30,45]),MG=qS([`low`,`medium`,`high`,`xhigh`,`max`]),NG=qS([`auto`,`low`,`medium`,`high`,`xhigh`,`max`]),PG=qS([`deep`,`smart`,`fast`]),FG=M({model:A,reasoning:NG,fastMode:RS}),IG=M({deep:FG,smart:FG,fast:FG}),LG=M({value:A,resolvedModel:A,displayName:A,description:A,isLatest:RS,reasoningLevels:N(MG),supportsFastMode:RS}),RG=M({isOn:RS,time:A}),zG=.85,BG=.95,VG=M({dailyMinutes:jG,desiredRetention:j,maxNewLessonsPerDay:j,showVisuals:RS,reminder:RG,models:IG}),HG={dailyMinutes:20,desiredRetention:.9,maxNewLessonsPerDay:3,showVisuals:!0,reminder:{isOn:!1,time:`19:00`},models:{deep:{model:`opus`,reasoning:`auto`,fastMode:!1},smart:{model:`sonnet`,reasoning:`auto`,fastMode:!1},fast:{model:`haiku`,reasoning:`auto`,fastMode:!1}}},UG=(e,t)=>{let r=t.find(t=>n(t.value===e.model,`../../packages/domain/src/settings.ts#anonymous`));return n(r===void 0?e:{model:e.model,reasoning:e.reasoning===`auto`||r.reasoningLevels.includes(e.reasoning)?e.reasoning:`auto`,fastMode:e.fastMode&&r.supportsFastMode},`../../packages/domain/src/settings.ts#fitChoice`)},WG=[[`haiku`,.6],[`sonnet`,1],[`opus`,1.6],[`fable`,2.2]],GG=e=>n(WG.find(([t])=>n(e.toLowerCase().includes(t),`../../packages/domain/src/settings.ts#anonymous~2`))?.[1]??1,`../../packages/domain/src/settings.ts#modelWeight`),KG={low:1,medium:1.4,high:2,xhigh:3,max:4},qG=1.6,JG=e=>n(e===void 0?qG:KG[e],`../../packages/domain/src/settings.ts#effortWeight`),YG={deep:`opus`,smart:`sonnet`,fast:`haiku`},XG=(e,t,r)=>{let i=e.reasoning===`auto`?r:e.reasoning,a=GG(e.model)*JG(i),o=GG(YG[t])*JG(r);return n(Math.min(6,Math.max(1,a/o)),`../../packages/domain/src/settings.ts#paceFactor`)},ZG=class extends nW(`settings`).add(nU(`get`,`/settings`,{success:VG}),nU(`defaults`,`/settings/defaults`,{success:VG}),iU(`set`,`/settings`,{payload:VG,success:VG}),nU(`models`,`/models`,{success:N(LG)})){},QG=qS([`Generating`,`Ready`,`Failed`,`Skipped`]),$G=KS([nC(`Generating`,{startedAt:j,attempt:j}),nC(`Ready`,{code:A,captions:N(A),altText:A}),nC(`Failed`,{note:A}),nC(`Skipped`,{note:A})]),eK=rW.make(`dev`),tK=M({brief:A,conceptTitle:A,context:A}),nK=M({goalId:rW,visualId:A,brief:A,status:QG,attempts:j,reviewNote:A,startedAt:j,maybeFinishedAt:wC(j)}),rK=class extends PC()(`VisualNotFound`,{visualId:A},{httpApiStatus:404}){},iK=class extends nW(`visuals`).add(nU(`get`,`/goals/:goalId/visuals/:visualId`,{params:{goalId:rW,visualId:A},success:$G,error:rK}),rU(`generateDev`,`/dev/visuals`,{payload:tK,success:nK}),nU(`listDev`,`/dev/visuals`,{success:N(nK)})){},aK=class extends PC()(`GoalNotFound`,{goalId:rW},{httpApiStatus:404}){},oK=class extends PC()(`ConceptNotFound`,{conceptId:iW},{httpApiStatus:404}){},sK=class extends PC()(`GradingUnavailable`,{},{httpApiStatus:503}){},cK=class extends PC()(`QuestionNotFound`,{questionId:xW},{httpApiStatus:404}){},lK=class extends nW(`system`,{topLevel:!0}).add(nU(`health`,`/health`,{success:aH})){},uK={goalId:rW},dK=class extends nW(`goals`).add(nU(`list`,`/goals`,{success:N($W)}),rU(`create`,`/goals`,{payload:nG,success:$W}),nU(`get`,`/goals/:goalId`,{params:uK,success:tG,error:aK}),aU(`remove`,`/goals/:goalId`,{params:uK,success:aH,error:aK}),rU(`retry`,`/goals/:goalId/retry`,{params:uK,success:$W,error:aK}),iU(`setTargets`,`/goals/:goalId/targets`,{params:uK,payload:M({targets:N(iW)}),success:M({targets:N(iW)}),error:aK}),iU(`setDeadline`,`/goals/:goalId/deadline`,{params:uK,payload:M({maybeDeadline:wC(j)}),success:M({maybeDeadline:wC(eG)}),error:aK}),iU(`setMastery`,`/goals/:goalId/concepts/:conceptId`,{params:{goalId:rW,conceptId:iW},payload:M({mastery:lW}),success:pW,error:[aK,oK]})){},fK={goalId:rW,conceptId:iW},pK=class extends nW(`learning`).add(nU(`lesson`,`/goals/:goalId/concepts/:conceptId/lesson`,{params:fK,success:oG,error:oK}),rU(`answer`,`/goals/:goalId/answers`,{params:uK,payload:M({answer:kW,context:uG}),success:OW,error:[cK,sK]}),rU(`teachBack`,`/goals/:goalId/concepts/:conceptId/teach-back`,{params:fK,payload:M({explanation:A}),success:sG,error:[oK,sK]}),rU(`reexplain`,`/goals/:goalId/concepts/:conceptId/reexplain`,{params:fK,payload:mG,success:hG,error:oK}),rU(`hint`,`/hints`,{payload:AW,success:M({hint:A}),error:[cK,sK]}),rU(`askTutor`,`/goals/:goalId/concepts/:conceptId/ask`,{params:fK,payload:fG,success:M({answer:A}),error:oK}),rU(`skipLesson`,`/goals/:goalId/concepts/:conceptId/skip`,{params:fK,success:cG,error:oK}),rU(`completeLesson`,`/goals/:goalId/concepts/:conceptId/complete`,{params:fK,success:cG,error:oK}),nU(`notes`,`/goals/:goalId/concepts/:conceptId/notes`,{params:fK,success:bW,error:oK})){},mK=class extends nW(`placement`).add(nU(`view`,`/goals/:goalId/placement`,{params:uK,success:vG,error:aK}),rU(`start`,`/goals/:goalId/placement/start`,{params:uK,payload:M({selfDescription:A}),success:vG,error:aK}),rU(`answer`,`/goals/:goalId/placement/answer`,{params:uK,payload:M({answer:kW}),success:vG,error:[aK,cK,sK]}),rU(`skip`,`/goals/:goalId/placement/skip`,{params:uK,success:vG,error:aK}),rU(`finish`,`/goals/:goalId/placement/finish`,{params:uK,success:vG,error:aK}),rU(`apply`,`/goals/:goalId/placement/apply`,{params:uK,payload:M({overrides:N(yG)}),success:vG,error:aK}),rU(`reset`,`/goals/:goalId/placement/reset`,{params:uK,success:vG,error:aK})){},hK=class extends nW(`reviews`).add(nU(`session`,`/reviews/session`,{success:IW}),rU(`answer`,`/reviews/answer`,{payload:M({goalId:rW,conceptId:iW,answer:kW}),success:LW,error:[cK,sK]}),nU(`today`,`/today`,{success:WW}),rU(`replacementNext`,`/reviews/replacement/next`,{payload:M({answered:N(RW)}),success:BW}),rU(`leechProbes`,`/reviews/leech/probes`,{payload:M({goalId:rW,conceptId:iW}),success:M({probes:N(NW)}),error:oK}),rU(`leechRelearn`,`/reviews/leech/relearn`,{payload:M({goalId:rW,conceptId:iW}),success:aH,error:oK})){},gK=class extends uU(`bavitutor`).add(lK).add(dK).add(pK).add(mK).add(hK).add(iK).add(ZG).add(AG).prefix(`/api`){},_K=e=>n(`/api/goals/${encodeURIComponent(e)}/events`,`../../packages/domain/src/api.ts#researchEventsPath`),vK=M({seq:j,at:j,event:KS([nC(`StageStarted`,{stage:qS([`Plan`,`Discover`,`Synthesize`,`Validate`]),label:A}),nC(`AgentStarted`,{agentId:A,label:A}),nC(`AgentActivity`,{agentId:A,text:A}),nC(`AgentFinished`,{agentId:A,summary:A}),nC(`AgentFailed`,{agentId:A,error:A}),nC(`SourceFound`,{source:QW}),nC(`Note`,{text:A}),nC(`GraphReady`,{conceptCount:j,edgeCount:j}),nC(`ResearchFailed`,{error:A})])}),yK=class extends Nr()(`bavitutor/ApiClient`){},bK=Ff(yK,Tp(()=>n(wU(gK,{transformClient:e=>n(e.pipe(mL(JI(globalThis.location.origin))),`src/api.ts#transformClient`)}),`src/api.ts#anonymous`))).pipe(Uf(TL)),xK=e=>{if(typeof e==`object`&&e){if(`_tag`in e&&e._tag===`GoalNotFound`)return n(`That subject no longer exists.`,`src/api.ts#errorMessage`);if(`_tag`in e&&e._tag===`GradingUnavailable`)return n(`I couldn’t check that answer just now. Nothing was recorded, so try again in a moment.`,`src/api.ts#errorMessage`);if(`message`in e&&typeof e.message==`string`&&e.message.length>0)return n(e.message,`src/api.ts#errorMessage`)}return n(`Something went wrong talking to the server.`,`src/api.ts#errorMessage`)};function SK(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=SK(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function CK(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=SK(e))&&(r&&(r+=` `),r+=t);return r}var wK=(e,t,n)=>{let r=e.get(t);r===void 0?e.set(t,[n]):r.includes(n)||r.push(n)},TK=e=>{let t=e.concepts.map(e=>n(e.id,`../../packages/engine/src/graph.ts#anonymous`)),r=new Set(t),i=new Map(t.map(e=>n([e,[]],`../../packages/engine/src/graph.ts#anonymous~2`))),a=new Map(t.map(e=>n([e,[]],`../../packages/engine/src/graph.ts#anonymous~3`)));for(let t of e.edges)t.kind===`Requires`&&r.has(t.from)&&r.has(t.to)&&t.from!==t.to&&(wK(i,t.to,t.from),wK(a,t.from,t.to));return n({ids:t,prerequisites:i,dependents:a},`../../packages/engine/src/graph.ts#indexGraph`)},EK=(e,t)=>{let r=new Set,i=[...e];for(;i.length>0;){let e=i.pop();if(!(e===void 0||r.has(e))){r.add(e);for(let n of t(e))r.has(n)||i.push(n)}}return n(r,`../../packages/engine/src/graph.ts#walk`)},DK=(e,t)=>n(EK(t,t=>n(e.prerequisites.get(t)??[],`../../packages/engine/src/graph.ts#anonymous~4`)),`../../packages/engine/src/graph.ts#prerequisiteClosure`),OK=(e,t)=>n(EK(t,t=>n(e.dependents.get(t)??[],`../../packages/engine/src/graph.ts#anonymous~5`)),`../../packages/engine/src/graph.ts#dependentClosure`),kK=e=>{let t=new Map,r=new Set,i=a=>{let o=t.get(a);if(o!==void 0)return n(o,`../../packages/engine/src/graph.ts#depthOf`);if(r.has(a))return n(0,`../../packages/engine/src/graph.ts#depthOf`);r.add(a);let s=e.prerequisites.get(a)??[],c=s.length===0?0:1+Math.max(...s.map(i));return r.delete(a),t.set(a,c),n(c,`../../packages/engine/src/graph.ts#depthOf`)};for(let t of e.ids)i(t);return n(t,`../../packages/engine/src/graph.ts#computeDepths`)},AK=(e,t,r)=>{let i=r??new Set(e.ids),a=new Map;for(let t of i){let r=(e.prerequisites.get(t)??[]).filter(e=>n(i.has(e),`../../packages/engine/src/graph.ts#anonymous~11`));a.set(t,r.length)}let o=[...i].filter(e=>n(a.get(e)===0,`../../packages/engine/src/graph.ts#anonymous~12`)),s=[];for(;o.length>0;){o.sort((e,r)=>n(t(e)-t(r)||e.localeCompare(r),`../../packages/engine/src/graph.ts#anonymous~13`));let r=o.shift();if(r===void 0)break;s.push(r);for(let t of e.dependents.get(r)??[]){if(!i.has(t))continue;let e=(a.get(t)??1)-1;a.set(t,e),e===0&&o.push(t)}}return n(s,`../../packages/engine/src/graph.ts#topologicalOrder`)},jK={nodeWidth:200,nodeHeight:52,columnGap:96,rowGap:20,sweeps:12},MK=(e,t,r,i)=>{let a=e=>n(e.isVirtual?i.rowGap:i.nodeHeight,`../../packages/engine/src/layout.ts#size`),o=(e,t)=>n((a(e)+a(t))/2+i.rowGap,`../../packages/engine/src/layout.ts#gapBetween`),s=new Map;for(let t of e){let e=0;t.forEach((n,r)=>{let i=t[r-1];e+=i===void 0?0:o(i,n),s.set(n.key,e)})}let c=(e,t)=>{let r=[...t];for(let t=1;t<e.length;t++){let n=o(e[t-1],e[t]);r[t]=Math.max(r[t]??0,(r[t-1]??0)+n)}let i=[...t];for(let t=e.length-2;t>=0;t--){let n=o(e[t],e[t+1]);i[t]=Math.min(i[t]??0,(i[t+1]??0)-n)}let a=r.map((e,t)=>n((e+(i[t]??e))/2,`../../packages/engine/src/layout.ts#anonymous~2`));for(let t=1;t<e.length;t++){let n=o(e[t-1],e[t]);a[t]=Math.max(a[t]??0,(a[t-1]??0)+n)}return n(a,`../../packages/engine/src/layout.ts#pack`)},l=(e,t)=>{let r=e.map(e=>{let r=t.get(e.key)??[];return r.length===0?n(s.get(e.key)??0,`../../packages/engine/src/layout.ts#anonymous~3`):n(r.reduce((e,t)=>n(e+(s.get(t)??0),`../../packages/engine/src/layout.ts#anonymous~4`),0)/r.length,`../../packages/engine/src/layout.ts#anonymous~3`)});c(e,r).forEach((t,n)=>{let r=e[n];r!==void 0&&s.set(r.key,t)})};for(let n=0;n<6;n++){for(let n=1;n<e.length;n++)l(e[n]??[],t);for(let t=e.length-2;t>=0;t--)l(e[t]??[],r)}return n(s,`../../packages/engine/src/layout.ts#assignVerticalPositions`)},NK=(e,t=jK)=>{let r=kK(e),i=Math.max(0,...r.values())+1,a=Array.from({length:i},()=>n([],`../../packages/engine/src/layout.ts#anonymous~6`));for(let t of e.ids)a[r.get(t)??0]?.push({key:t,isVirtual:!1});let o=[],s=new Map,c=new Map,l=(e,t)=>{c.set(e,[...c.get(e)??[],t]),s.set(t,[...s.get(t)??[],e])};for(let t of e.ids)for(let i of e.prerequisites.get(t)??[]){let e=r.get(i)??0,s=r.get(t)??0,c=[i];for(let n=e+1;n<s;n++){let e=`${i}->${t}@${n}`;a[n]?.push({key:e,isVirtual:!0}),c.push(e)}c.push(t),c.slice(1).forEach((e,t)=>n(l(c[t]??i,e),`../../packages/engine/src/layout.ts#anonymous~7`)),o.push({from:i,to:t,keys:c})}let u=new Map,d=()=>n(a.forEach(e=>n(e.forEach((e,t)=>n(u.set(e.key,t),`../../packages/engine/src/layout.ts#anonymous~9`)),`../../packages/engine/src/layout.ts#anonymous~8`)),`../../packages/engine/src/layout.ts#refreshPositions`);d();let f=(e,t)=>{let r=t.get(e)??[];return r.length===0?n(void 0,`../../packages/engine/src/layout.ts#barycenter`):n(r.reduce((e,t)=>n(e+(u.get(t)??0),`../../packages/engine/src/layout.ts#anonymous~10`),0)/r.length,`../../packages/engine/src/layout.ts#barycenter`)},p=(e,t)=>{let r=e.map((e,r)=>n({item:e,score:f(e.key,t)??r},`../../packages/engine/src/layout.ts#anonymous~11`));r.sort((e,t)=>n(e.score-t.score,`../../packages/engine/src/layout.ts#anonymous~12`)),e.splice(0,e.length,...r.map(e=>n(e.item,`../../packages/engine/src/layout.ts#anonymous~13`)))};for(let e=0;e<t.sweeps;e++)if(e%2==0)for(let e=1;e<a.length;e++)p(a[e]??[],s),d();else for(let e=a.length-2;e>=0;e--)p(a[e]??[],c),d();let m=MK(a,s,c,t),h=[...m.values()],g=h.length===0?0:Math.min(...h),_=t.nodeHeight/2,v=_-g,y=new Map,ee=[],te=t.nodeHeight;a.forEach((e,n)=>{let r=n*(t.nodeWidth+t.columnGap);for(let t of e){let e=(m.get(t.key)??0)+v;y.set(t.key,{x:r,y:e}),te=Math.max(te,e+_),t.isVirtual||ee.push({id:t.key,x:r,y:e-_,layer:n})}});let ne=t.nodeWidth;return n({nodes:ee,edges:o.map(e=>{let t=e.keys.map((t,r)=>{let i=y.get(t)??{x:0,y:0},a=r===0,o=r===e.keys.length-1;return n({x:a?i.x+ne:o?i.x:i.x+ne/2,y:i.y},`../../packages/engine/src/layout.ts#anonymous~16`)}),[r,...i]=t,a=i.map((e,r)=>{let i=t[r]??e,a=(i.x+e.x)/2;return n(`C ${a} ${i.y}, ${a} ${e.y}, ${e.x} ${e.y}`,`../../packages/engine/src/layout.ts#anonymous~17`)});return n({from:e.from,to:e.to,d:`M ${r?.x??0} ${r?.y??0} ${a.join(` `)}`},`../../packages/engine/src/layout.ts#anonymous~15`)}),width:a.length*t.nodeWidth+Math.max(0,a.length-1)*t.columnGap,height:te},`../../packages/engine/src/layout.ts#layoutGraph`)},PK=(e,t,r=new Set)=>n(new Set([...DK(e,t)].filter(e=>n(t.has(e)||!r.has(e),`../../packages/engine/src/path.ts#anonymous`))),`../../packages/engine/src/path.ts#impliedKnownSet`),FK=e=>{let t=DK(e.index,e.goals),r=PK(e.index,e.known,e.doubted),i=new Set([...t].filter(e=>n(!r.has(e),`../../packages/engine/src/path.ts#anonymous~2`))),a=[...t].filter(e=>n(r.has(e),`../../packages/engine/src/path.ts#anonymous~3`)),o=kK(e.index),s=t=>n([...OK(e.index,[t])].filter(e=>n(i.has(e),`../../packages/engine/src/path.ts#anonymous~4`)).length,`../../packages/engine/src/path.ts#unlocks`),c=AK(e.index,e=>n((o.get(e)??0)*1e3-s(e),`../../packages/engine/src/path.ts#anonymous~5`),i);return n({steps:c,skipped:a,totalMinutes:c.reduce((t,r)=>n(t+e.minutesOf(r),`../../packages/engine/src/path.ts#anonymous~6`),0)},`../../packages/engine/src/path.ts#learningPath`)},IK=(e,t,r,i=new Set)=>{let a=PK(e,r,i);return n(t.filter(r=>n(!a.has(r)&&(e.prerequisites.get(r)??[]).every(e=>n(a.has(e)||!t.includes(e),`../../packages/engine/src/path.ts#anonymous~8`)),`../../packages/engine/src/path.ts#anonymous~7`)),`../../packages/engine/src/path.ts#frontier`)},LK=class e extends Error{constructor(t=`FSRS Error`){super(t),this.name=`FSRSError`,Error.captureStackTrace?.(this,e)}},RK=class e extends LK{constructor(t){super(t),this.name=`FSRSValidationError`,Error.captureStackTrace?.(this,e)}},zK=(e=>(e[e.New=0]=`New`,e[e.Learning=1]=`Learning`,e[e.Review=2]=`Review`,e[e.Relearning=3]=`Relearning`,e))(zK||{}),BK=(e=>(e[e.Manual=0]=`Manual`,e[e.Again=1]=`Again`,e[e.Hard=2]=`Hard`,e[e.Good=3]=`Good`,e[e.Easy=4]=`Easy`,e))(BK||{}),VK=class e{static card(t){return{...t,state:e.state(t.state),due:e.time(t.due),last_review:t.last_review?e.time(t.last_review):void 0}}static rating(e){if(typeof e==`string`){let t=BK[`${e.charAt(0).toUpperCase()}${e.slice(1).toLowerCase()}`];if(t===void 0)throw new RK(`Invalid rating:[${e}]`);return t}if(typeof e==`number`)return e;throw new RK(`Invalid rating:[${e}]`)}static state(e){if(typeof e==`string`){let t=zK[`${e.charAt(0).toUpperCase()}${e.slice(1).toLowerCase()}`];if(t===void 0)throw new RK(`Invalid state:[${e}]`);return t}if(typeof e==`number`)return e;throw new RK(`Invalid state:[${e}]`)}static time(e){if(e instanceof Date)return e;let t=new Date(e);if(typeof e==`object`&&e&&!Number.isNaN(Date.parse(e)||+t))return t;if(typeof e==`string`){let t=Date.parse(e);if(Number.isNaN(t))throw new RK(`Invalid date:[${e}]`);return new Date(t)}if(typeof e==`number`)return new Date(e);throw new RK(`Invalid date:[${e}]`)}static review_log(t){return{...t,due:e.time(t.due),rating:e.rating(t.rating),state:e.state(t.state),review:e.time(t.review)}}};Date.prototype.scheduler=function(e,t){return HK(this,e,t)},Date.prototype.diff=function(e,t){return UK(this,e,t)},Date.prototype.format=function(){return WK(this)},Date.prototype.dueFormat=function(e,t,n){return JK(this,e,t,n)};function HK(e,t,n){return new Date(n?VK.time(e).getTime()+t*24*60*60*1e3:VK.time(e).getTime()+t*60*1e3)}function UK(e,t,n){if(!e||!t)throw new RK(`Invalid date`);let r=VK.time(e).getTime()-VK.time(t).getTime(),i=0;switch(n){case`days`:i=Math.floor(r/864e5);break;case`minutes`:i=Math.floor(r/6e4)}return i}function WK(e){let t=VK.time(e),n=t.getFullYear(),r=t.getMonth()+1,i=t.getDate(),a=t.getHours(),o=t.getMinutes(),s=t.getSeconds();return`${n}-${GK(r)}-${GK(i)} ${GK(a)}:${GK(o)}:${GK(s)}`}function GK(e){return e<10?`0${e}`:`${e}`}var KK=[60,60,24,31,12],qK=[`second`,`min`,`hour`,`day`,`month`,`year`];function JK(e,t,n,r=qK){e=VK.time(e),t=VK.time(t),r.length!==qK.length&&(r=qK);let i=e.getTime()-t.getTime(),a=0;for(i/=1e3,a=0;a<KK.length&&!(i<KK[a]);a++)i/=KK[a];return`${Math.floor(i)}${n?r[a]:``}`}Object.freeze([BK.Again,BK.Hard,BK.Good,BK.Easy]),Object.freeze([`1m`,`10m`]),Object.freeze([`10m`]),Object.freeze([.212,1.2931,2.3065,8.2956,6.4133,.8334,3.0194,.001,1.8722,.1666,.796,1.4835,.0614,.2629,1.6483,.6014,1.8729,.5425,.0912,.0658,.1542]),zK.New,zK.Learning,zK.Review,zK.Relearning,zK.New,zK.Learning,zK.Review,zK.Relearning,BK.Again,BK.Hard,BK.Good,BK.Easy;var YK=(e,t=.1542)=>{let r=e=>n(e**(-1/t)-1,`../../packages/engine/src/plan.ts#intervalAt`);return n(r(e)/r(.9),`../../packages/engine/src/plan.ts#intervalFactor`)},XK={arrowUp:[`m5 12 7-7 7 7`,`M12 19V5`],snowflake:[`m10 20-1.25-2.5L6 18`,`M10 4 8.75 6.5 6 6`,`m14 20 1.25-2.5L18 18`,`m14 4 1.25 2.5L18 6`,`m17 21-3-6h-4`,`m17 3-3 6 1.5 3`,`M2 12h6.5L10 9`,`m20 10-1.5 2 1.5 2`,`M22 12h-6.5L14 15`,`m4 10 1.5 2L4 14`,`m7 21 3-6-1.5-3`,`m7 3 3 6h4`],arrowRight:[`M5 12h14`,`m12 5 7 7-7 7`],arrowLeft:[`m12 19-7-7 7-7`,`M19 12H5`],sparkles:[`M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z`,`M20 3v4`,`M22 5h-4`],search:[`m21 21-4.34-4.34`,`M11 3a8 8 0 1 0 0 16 8 8 0 0 0 0-16z`],globe:[`M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20z`,`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,`M2 12h20`],book:[`M12 7v14`,`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`],network:[`M16 16h6v6h-6z`,`M2 16h6v6H2z`,`M9 2h6v6H9z`,`M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3`,`M12 12V8`],route:[`M6 19a3 3 0 1 0 0-6 3 3 0 0 0 0 6z`,`M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15`,`M18 5a3 3 0 1 0 0 0z`],check:[`M20 6 9 17l-5-5`],x:[`M18 6 6 18`,`m6 6 12 12`],refresh:[`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,`M21 3v5h-5`,`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,`M8 16H3v5`],sun:[`M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8z`,`M12 2v2`,`M12 20v2`,`m4.93 4.93 1.41 1.41`,`m17.66 17.66 1.41 1.41`,`M2 12h2`,`M20 12h2`,`m6.34 17.66-1.41 1.41`,`m19.07 4.93-1.41 1.41`],moon:[`M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z`],trash:[`M3 6h18`,`M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6`,`M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2`],external:[`M15 3h6v6`,`M10 14 21 3`,`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`],plus:[`M5 12h14`,`M12 5v14`],minus:[`M5 12h14`],maximize:[`M8 3H5a2 2 0 0 0-2 2v3`,`M21 8V5a2 2 0 0 0-2-2h-3`,`M3 16v3a2 2 0 0 0 2 2h3`,`M16 21h3a2 2 0 0 0 2-2v-3`],clock:[`M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20z`,`M12 6v6l4 2`],target:[`M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20z`,`M12 6a6 6 0 1 0 0 12 6 6 0 0 0 0-12z`,`M12 10a2 2 0 1 0 0 4 2 2 0 0 0 0-4z`],flag:[`M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528`],layers:[`m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z`,`m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65`,`m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65`],graduation:[`M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z`,`M22 10v6`,`M6 12.5V16a6 3 0 0 0 12 0v-3.5`],brain:[`M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z`,`M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z`,`M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4`],alert:[`M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20z`,`M12 8v4`,`M12 16h.01`],chart:[`M3 3v16a2 2 0 0 0 2 2h16`,`M18 17V9`,`M13 17V5`,`M8 17v-3`],play:[`M6 3 20 12 6 21z`],calendar:[`M8 2v4`,`M16 2v4`,`M3 10h18`,`M5 4h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z`],chevronDown:[`m6 9 6 6 6-6`],undo:[`M9 14 4 9l5-5`,`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`],zap:[`M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z`],sliders:[`M21 4h-7`,`M10 4H3`,`M21 12h-9`,`M8 12H3`,`M21 20h-5`,`M12 20H3`,`M14 2v4`,`M8 10v4`,`M16 18v4`],lightbulb:[`M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5`,`M9 18h6`,`M10 22h4`],circleDashed:[`M10.1 2.182a10 10 0 0 1 3.8 0`,`M13.9 21.818a10 10 0 0 1-3.8 0`,`M17.609 3.721a10 10 0 0 1 2.69 2.7`,`M2.182 13.9a10 10 0 0 1 0-3.8`,`M20.279 17.609a10 10 0 0 1-2.7 2.69`,`M21.818 10.1a10 10 0 0 1 0 3.8`,`M3.721 6.391a10 10 0 0 1 2.7-2.69`,`M6.391 20.279a10 10 0 0 1-2.69-2.7`],fileText:[`M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z`,`M14 2v4a2 2 0 0 0 2 2h4`,`M10 9H8`,`M16 13H8`,`M16 17H8`],circlePlay:[`M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20z`,`m10 8 6 4-6 4z`],library:[`m16 6 4 14`,`M12 6v14`,`M8 8v12`,`M4 4v16`],newspaper:[`M15 18h-5`,`M18 14h-8`,`M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2`,`M10 6h8v4h-8z`]},L=(e,t,r)=>n(r.svg([r.ViewBox(`0 0 24 24`),r.Fill(`none`),r.Stroke(`currentColor`),r.StrokeWidth(`2`),r.StrokeLinecap(`round`),r.StrokeLinejoin(`round`),r.AriaHidden(!0),r.Class(t)],T(XK[e],e=>n(r.path([r.D(e)]),`src/ui/icon.ts#anonymous`))),`src/ui/icon.ts#icon`),ZK={Article:`newspaper`,Video:`circlePlay`,Course:`graduation`,Docs:`book`,Book:`library`},QK={Article:`Article`,Video:`Video`,Course:`Course`,Docs:`Docs`,Book:`Book`},$K=e=>n((e.replace(/^[a-z][a-z0-9+.-]*:\/\//i,``).split(/[/?#]/)[0]??e).replace(/^www\./,``).toLowerCase(),`src/component/resources.ts#hostOf`),eq=e=>n(/^https?:\/\//i.test(e),`src/component/resources.ts#isWebUrl`),tq=(e,t,r)=>n(r.keyed(`li`)(e.url,[r.Class(`min-w-0`)],[r.a([r.Href(e.url),r.Target(`_blank`),r.Rel(`noopener noreferrer`),r.Title(`From ${e.origin}`),r.Class(CK(`group flex min-w-0 items-start gap-3 rounded-lg transition-colors hover:bg-accent/60`,t?`-mx-2 px-2 py-1.5`:`-mx-3 px-3 py-2.5`))],[r.span([r.Class(CK(`flex shrink-0 items-center justify-center rounded-md bg-primary/10 text-primary`,t?`mt-px size-6`:`mt-0.5 size-8`))],[L(ZK[e.kind],t?`size-3.5`:`size-4`,r)]),r.span([r.Class(`flex min-w-0 flex-1 flex-col gap-0.5`)],[r.span([r.Class(CK(`font-medium group-hover:text-primary`,t?`truncate text-sm`:`text-[15px] leading-snug`))],[e.title]),r.span([r.Class(CK(`text-xs text-muted-foreground`,t?`truncate`:`break-words`))],[t?`${QK[e.kind]} · ${$K(e.url)}`:`${QK[e.kind]} · ${$K(e.url)} · ${e.origin}`])]),L(`external`,`mt-1 size-3.5 shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100`,r),r.span([r.Class(`sr-only`)],[`(opens in a new tab)`])])]),`src/component/resources.ts#resourceView`),nq=(e,t,r,i)=>n(Ui(ja(e,e=>n(eq(e.url),`src/component/resources.ts#anonymous`)),{onEmpty:()=>n(i.empty,`src/component/resources.ts#onEmpty`),onNonEmpty:e=>n(i.ul([i.AriaLabel(r),i.Class(CK(`flex flex-col`,t?`gap-0.5`:`gap-1`))],T(e,e=>n(tq(e,t,i),`src/component/resources.ts#anonymous~2`))),`src/component/resources.ts#onNonEmpty`)}),`src/component/resources.ts#resourceListView`),rq=iO({Home:{},Goal:{goalId:A},Lesson:{goalId:A,conceptId:A},Notes:{goalId:A,conceptId:A},Placement:{goalId:A},Review:{},Settings:{},Progress:{},NotFound:{path:A},DevVisuals:{}}),iq=m(yR,SR(rq.Home)),aq=m(gR(`g`),CR(vR(`goalId`)),SR(rq.Goal)),oq=m(gR(`g`),CR(vR(`goalId`)),CR(gR(`learn`)),CR(vR(`conceptId`)),SR(rq.Lesson)),sq=m(gR(`g`),CR(vR(`goalId`)),CR(gR(`notes`)),CR(vR(`conceptId`)),SR(rq.Notes)),cq=m(gR(`g`),CR(vR(`goalId`)),CR(gR(`placement`)),SR(rq.Placement)),lq=m(gR(`review`),SR(rq.Review)),uq=m(gR(`settings`),SR(rq.Settings)),dq=m(gR(`progress`),SR(rq.Progress)),fq=TR(xR(m(gR(`dev`),CR(gR(`visuals`)),SR(rq.DevVisuals)),uq,lq,dq,oq,sq,cq,aq,iq),rq.NotFound),pq={Primary:`bg-primary text-primary-foreground shadow-sm shadow-primary/20 hover:bg-primary/90`,Secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/70`,Outline:`border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50`,Ghost:`hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50`,Destructive:`bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20`},mq={Small:`h-8 gap-1.5 rounded-md px-3 text-sm`,Medium:`h-9 gap-2 rounded-lg px-4 text-sm`,Large:`h-11 gap-2 rounded-xl px-6 text-base`,Icon:`size-9 rounded-lg`,IconSmall:`size-8 rounded-md`},R=(e=`Primary`,t=`Medium`,r)=>n(CK(`press inline-flex shrink-0 cursor-pointer items-center justify-center font-medium whitespace-nowrap outline-none select-none`,`focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50`,`[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,pq[e],mq[t],r),`src/ui/classes.ts#buttonClass`),hq={Neutral:`bg-secondary text-secondary-foreground`,Primary:`bg-primary/12 text-primary`,Success:`bg-success/12 text-success`,Info:`bg-info/12 text-info`,Warning:`bg-amber-500/14 text-amber-600 dark:text-amber-400`,Destructive:`bg-destructive/12 text-destructive`},gq=(e=`Neutral`,t)=>n(CK(`inline-flex w-fit shrink-0 items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium whitespace-nowrap [&_svg]:size-3`,hq[e],t),`src/ui/classes.ts#badgeClass`),_q=e=>n(CK(`rounded-xl border bg-card text-card-foreground shadow-xs`,e),`src/ui/classes.ts#cardClass`),vq=e=>n(CK(`w-full min-w-0 rounded-lg border border-input bg-transparent px-3 py-2 text-base shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground`,`focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 dark:bg-input/30 md:text-sm`,e),`src/ui/classes.ts#inputClass`),yq=e=>n(CK(`press inline-flex h-8 items-center gap-1.5 rounded-md px-3 text-sm font-medium transition-colors [&_svg]:size-4`,e?`bg-background text-foreground shadow-sm dark:bg-input/40`:`text-muted-foreground hover:text-foreground`),`src/ui/classes.ts#tabClass`),bq=(e,t)=>n(`${e} ${t}${e===1?``:`s`}`,`src/component/reviewEngine.ts#plural`),xq=e=>n(e.length<=1?e.join(``):`${e.slice(0,-1).join(`, `)} and ${e.at(-1)??``}`,`src/component/reviewEngine.ts#listOf`),Sq=(e,t)=>n(O(function*(){return n((yield*(yield*yK).reviews.leechProbes({payload:{goalId:rW.make(e),conceptId:iW.make(t)}})).probes,`src/component/reviewEngine.ts#anonymous`)}),`src/component/reviewEngine.ts#fetchLeechProbes`),Cq=(e,t)=>n(O(function*(){yield*(yield*yK).reviews.leechRelearn({payload:{goalId:rW.make(e),conceptId:iW.make(t)}}),yield*tR(oq({goalId:e,conceptId:t}))}),`src/component/reviewEngine.ts#startFreshLesson`),wq=(e,t)=>n(T(ja(e.alsoCovers,e=>n(!t.includes(e.conceptId),`src/component/reviewEngine.ts#anonymous~3`)),t=>n({goalId:e.goalId,goalTitle:e.goalTitle,conceptId:t.conceptId,conceptTitle:t.conceptTitle,question:t.fallbackQuestion,level:t.fallbackLevel,dueAt:t.dueAt,retrievability:t.retrievability,alsoCovers:[],maybeLeech:x()},`src/component/reviewEngine.ts#anonymous~4`)),`src/component/reviewEngine.ts#uncoveredFallbacks`),Tq=(e,t)=>n(Ui(e.alsoCovers,{onEmpty:()=>n(t.empty,`src/component/reviewEngine.ts#onEmpty`),onNonEmpty:e=>n(t.p([t.Class(`flex items-start gap-1.5 text-xs leading-relaxed text-muted-foreground`)],[L(`layers`,`mt-0.5 size-3.5 shrink-0 text-info`,t),t.span([],[t.span([t.Class(`font-medium text-foreground`)],[`Also refreshes: `]),xq(T(e,e=>n(e.conceptTitle,`src/component/reviewEngine.ts#anonymous~5`)))])]),`src/component/reviewEngine.ts#onNonEmpty`)}),`src/component/reviewEngine.ts#coversNoteView`),Eq=e=>n(e.reason===`Lapses`?`You've had this one before, but it has faded ${bq(e.recentLapses,`time`)} this month. That's common with ideas learned one way only, and more of the same repetition rarely fixes it. A different way in usually does.`:`The lesson hasn't clicked yet after ${e.lessonFailures} tries. That says more about the explanation than about you. A different way in usually helps.`,`src/component/reviewEngine.ts#leechMessage`),Dq=(e,t,r)=>n(r.div([r.Class(`pop-in flex flex-col gap-3 rounded-xl border border-amber-500/30 bg-amber-500/6 p-4`),r.Role(`note`)],[r.div([r.Class(`flex items-center gap-2 text-sm font-semibold`)],[L(`lightbulb`,`size-4 text-amber-600 dark:text-amber-400`,r),`This one keeps slipping`]),r.p([r.Class(`text-sm leading-relaxed text-muted-foreground`)],[Eq(e)]),r.div([r.Class(`flex flex-wrap gap-2`)],[w(t.maybeCheckBasics,{onNone:()=>n(r.empty,`src/component/reviewEngine.ts#onNone`),onSome:e=>n(r.button([r.Type(`button`),r.OnClick(e),r.Disabled(t.isBusy||t.isChecked),r.Class(R(`Outline`,`Small`))],[L(t.isChecked?`check`:`target`,``,r),t.isChecked?`Basics queued next`:`Check the basics`]),`src/component/reviewEngine.ts#onSome`)}),r.button([r.Type(`button`),r.OnClick(t.freshLesson),r.Disabled(t.isBusy),r.Class(R(`Secondary`,`Small`))],[L(`sparkles`,``,r),`Fresh lesson, new angle`]),r.a([r.Href(oq({goalId:e.goalId,conceptId:e.conceptId})),r.Class(R(`Ghost`,`Small`))],[L(`book`,``,r),`Ask the tutor`])])]),`src/component/reviewEngine.ts#leechNoteView`),Oq=e=>n([e.spreadDays<=1?`${bq(e.backlog,`review`)} waiting, all doable today, most important first.`:`${bq(e.backlog,`review`)} waiting, spread over the next ${e.spreadDays} days: about ${e.perDay} a day, most important first.`,e.offPathEased>0?`${bq(e.offPathEased,`concept`)} off your goal path aim for 85% recall for now, so they come back a little later.`:``,`Nothing gets reset.`].filter(e=>n(e.length>0,`src/component/reviewEngine.ts#anonymous~6`)).join(` `),`src/component/reviewEngine.ts#catchUpText`),kq=(e,t)=>n(t.div([t.Class(`reveal flex items-start gap-3 rounded-xl border bg-muted/40 px-4 py-3 text-sm`)],[L(`route`,`mt-0.5 size-4 shrink-0 text-primary`,t),t.div([t.Class(`flex flex-col gap-1`)],[t.p([t.Class(`font-medium`)],[`Catching up, at your pace`]),t.p([t.Class(`text-muted-foreground`)],[Oq(e)]),t.p([t.Class(`text-xs text-muted-foreground`)],[e.todayQuota>0?`Today's share: ${bq(e.todayQuota,`review`)} left.`:`Today's share is done. Anything more is a head start.`])])]),`src/component/reviewEngine.ts#catchUpBannerView`),Aq=e=>n(`It's been ${e.daysAway} days. Rather than ${bq(e.backlog,`review`)} in one go, take a ${e.minutes}-minute check-in on the concepts your goals rest on. What you still know gets a big boost; anything that faded goes back into relearning. The rest stays in your queue, lower priority.`,`src/component/reviewEngine.ts#replacementOfferText`),jq=(e,t,r)=>n(r.div([r.Class(_q(`reveal flex flex-col gap-4 p-6 sm:p-8`))],[r.div([r.Class(`flex items-center gap-3`)],[r.span([r.Class(`flex size-10 items-center justify-center rounded-xl bg-primary/12 text-primary`)],[L(`sparkles`,`size-5`,r)]),r.h2([r.Class(`text-xl font-semibold`)],[`Welcome back`])]),r.p([r.Class(`text-sm leading-relaxed text-muted-foreground`)],[Aq(e)]),r.div([r.Class(`flex flex-wrap justify-end gap-2`)],[r.button([r.Type(`button`),r.OnClick(t.skip),r.Class(R(`Ghost`,`Medium`))],[`Review the backlog instead`]),r.button([r.Type(`button`),r.OnClick(t.start),r.Class(R(`Primary`,`Medium`))],[`Start the ${e.minutes}-minute check-in`,L(`arrowRight`,``,r)])])]),`src/component/reviewEngine.ts#replacementOfferView`),Mq=e=>n([e.toRelearn>0?`${bq(e.heldUp,`concept`)} held up, and ${e.toRelearn} ${e.toRelearn===1?`needs`:`need`} a refresh, so ${e.toRelearn===1?`it's`:`they're`} back in relearning.`:`${bq(e.heldUp,`concept`)} held up.`,e.likelyHeld>0?`From your answers, ${e.likelyHeld} more on the same path look solid too.`:``,e.backlog>0?`The other ${bq(e.backlog,`review`)} stay in your queue, most important first.`:``].filter(e=>n(e.length>0,`src/component/reviewEngine.ts#anonymous~7`)).join(` `),`src/component/reviewEngine.ts#replacementSummaryText`),Nq=e=>n(`Streak saved by a freeze: a missed day doesn't break it. ${e.freezesLeft===0?`No freezes left this week.`:`${bq(e.freezesLeft,`freeze`)} left this week.`}`,`src/component/reviewEngine.ts#streakSavedText`),Pq=(e,t)=>n(e.isSavedByFreeze&&e.days>0?t.p([t.Class(`flex items-center gap-1.5 text-xs text-muted-foreground`)],[L(`snowflake`,`size-3.5 text-info`,t),Nq(e)]):t.empty,`src/component/reviewEngine.ts#streakSavedView`),Fq=(e,t)=>n(t.div([t.Class(`mb-4 flex flex-col gap-3 empty:hidden`)],[w(e.maybeReplacement,{onNone:()=>n(t.empty,`src/component/reviewEngine.ts#onNone~2`),onSome:e=>n(t.a([t.Href(lq()),t.Class(_q(`press flex flex-col gap-2 border-primary/40 bg-primary/6 p-5 hover:border-primary`))],[t.div([t.Class(`flex items-center gap-2 font-semibold`)],[L(`sparkles`,`size-4 text-primary`,t),`Welcome back: a ${e.minutes}-minute check-in`,L(`arrowRight`,`ml-auto size-4 text-primary`,t)]),t.p([t.Class(`text-sm text-muted-foreground`)],[Aq(e)])]),`src/component/reviewEngine.ts#onSome~2`)}),w(e.maybeCatchUp,{onNone:()=>n(t.empty,`src/component/reviewEngine.ts#onNone~3`),onSome:e=>n(t.p([t.Class(`flex items-start gap-2 text-sm text-muted-foreground`)],[L(`route`,`mt-0.5 size-4 shrink-0 text-primary`,t),Oq(e)]),`src/component/reviewEngine.ts#onSome~3`)}),Pq(e.streak,t)]),`src/component/reviewEngine.ts#todayEngineView`),Iq=(e,t,r)=>n(Ui(e,{onEmpty:()=>n(r.empty,`src/component/reviewEngine.ts#onEmpty~2`),onNonEmpty:e=>n(r.div([r.Class(`reveal mb-3 flex flex-wrap items-center gap-2 rounded-xl border border-amber-500/30 bg-amber-500/6 px-4 py-2.5 text-sm`),r.Role(`note`)],[L(`lightbulb`,`size-4 text-amber-600 dark:text-amber-400`,r),r.span([r.Class(`text-muted-foreground`)],[e.length===1?`This one keeps slipping, and a different angle may help:`:`These keep slipping, and a different angle may help:`]),...T(e,e=>n(r.button([r.Type(`button`),r.OnClick(t(e.conceptId)),r.Class(`press rounded-full border border-amber-500/40 bg-background/70 px-2.5 py-0.5 text-xs font-medium hover:border-amber-500`)],[e.conceptTitle]),`src/component/reviewEngine.ts#anonymous~8`))]),`src/component/reviewEngine.ts#onNonEmpty~2`)}),`src/component/reviewEngine.ts#goalLeechBannerView`),Lq=new WeakMap,Rq=e=>{let t=Lq.get(e);if(t!==void 0)return n(t,`src/page/goal/graph.ts#sceneFor`);let r=TK(e),i={index:r,layout:NK(r,{...jK,nodeHeight:56}),conceptsById:new Map(T(e.concepts,e=>n([e.id,e],`src/page/goal/graph.ts#anonymous`)))};return Lq.set(e,i),n(i,`src/page/goal/graph.ts#sceneFor`)},zq=48,Bq=(e,t,r)=>n(CK(`press absolute flex cursor-pointer items-center gap-2 rounded-xl border px-3 text-left text-[13px] leading-tight font-medium shadow-xs outline-none transition-[opacity,box-shadow,border-color,background-color] hover:shadow-md focus-visible:ring-[3px] focus-visible:ring-ring/50`,{"border-success/45 bg-success/10 text-foreground":e===`Known`,"pulse-ring border-primary bg-primary/12 text-foreground":e===`Next`,"border-primary/35 bg-card text-foreground":e===`ToLearn`,"border-dashed bg-card/60 text-muted-foreground opacity-55 hover:opacity-100":e===`NotNeeded`,"ring-2 ring-primary/40 ring-offset-2 ring-offset-background":t&&!r,"ring-[3px] ring-ring ring-offset-2 ring-offset-background":r}),`src/page/goal/graph.ts#nodeClass`),Vq=(e,t,r)=>n(e===`Known`?L(`check`,`size-3.5 shrink-0 text-success`,r):t?L(`flag`,`size-3.5 shrink-0 text-primary`,r):e===`Next`?L(`play`,`size-3 shrink-0 fill-primary text-primary`,r):r.span([r.Class(CK(`size-1.5 shrink-0 rounded-full`,e===`ToLearn`?`bg-primary/60`:`bg-muted-foreground/40`))]),`src/page/goal/graph.ts#nodeIcon`),Hq=(e,t,r)=>n(r.span([r.Class(`flex items-center gap-1.5`)],[r.span([r.Class(CK(`size-2.5 rounded-sm border`,e))]),t]),`src/page/goal/graph.ts#legendItem`),Uq=e=>n(e.div([e.Class(`flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-muted-foreground`)],[Hq(`border-success/50 bg-success/20`,`Known`,e),Hq(`border-primary bg-primary/25`,`Next up`,e),Hq(`border-primary/40 bg-card`,`To learn`,e),Hq(`border-dashed bg-card opacity-60`,`Not needed for goal`,e),e.span([e.Class(`flex items-center gap-1.5`)],[L(`flag`,`size-3 text-primary`,e),`Goal`])]),`src/page/goal/graph.ts#legendView`),Wq=(e,t)=>{let{layout:r,conceptsById:i,index:a}=e.scene,o=r.width+96,s=r.height+96,c=yr(e.maybeSelectedId),l=new Set(c===void 0?[]:[...a.prerequisites.get(c)??[],...a.dependents.get(c)??[]]),u=T(r.edges,r=>{let i=r.from===c||r.to===c,a=e.stateOf(r.to)===`Next`||e.stateOf(r.to)===`ToLearn`;return n(t.path([t.D(r.d),t.Fill(`none`),t.StrokeWidth(i?`2.25`:`1.5`),t.Class(CK(`transition-[stroke,opacity] duration-300`,{"flowing-edge stroke-primary":i,"stroke-primary/35":!i&&a,"stroke-graph-edge":!i&&!a,"opacity-40":c!==void 0&&!i}))]),`src/page/goal/graph.ts#anonymous~2`)}),d=T(r.nodes,r=>{let a=i.get(r.id),o=e.stateOf(r.id),s=e.isTarget(r.id),u=r.id===c,d=c!==void 0&&!u&&!l.has(r.id);return n(t.keyed(`button`)(r.id,[t.Type(`button`),t.OnClick(e.onSelect(r.id)),t.AriaLabel(a?.title??r.id),t.AriaPressed(u?`true`:`false`),t.Class(CK(Bq(o,s,u),{"opacity-45":d})),t.Style({left:`${r.x+zq}px`,top:`${r.y+zq}px`,width:`${jK.nodeWidth}px`,height:`56px`})],[Vq(o,s,t),t.span([t.Class(`line-clamp-2`)],[a?.title??r.id])]),`src/page/goal/graph.ts#anonymous~3`)});return n(t.div([t.Class(`relative origin-top-left`),t.Style({width:`${o*e.zoom}px`,height:`${s*e.zoom}px`})],[t.div([t.Class(`absolute top-0 left-0 origin-top-left`),t.Style({width:`${o}px`,height:`${s}px`,transform:`scale(${e.zoom})`})],[t.svg([t.Class(`pointer-events-none absolute inset-0`),t.Width(`${o}`),t.Height(`${s}`),t.ViewBox(`-48 -48 ${o} ${s}`),t.AriaHidden(!0)],[t.g([],u)]),...d])]),`src/page/goal/graph.ts#graphView`)},Gq={Curriculum:`Curriculum`,Roadmap:`Roadmap`,Textbook:`Textbook`,Course:`Course`,Standard:`Standard`,Documentation:`Docs`,Article:`Article`,Video:`Video`,Reference:`Reference`,AiDraft:`AI draft`,Other:`Other`},Kq=e=>n(Gq[e],`src/page/goal/sources.ts#sourceKindLabel`),qq={Adapter:{label:`Open data`,tone:`Success`},Web:{label:`Web`,tone:`Info`},Prior:{label:`No browsing`,tone:`Warning`}},Jq={PossiblyOutdated:`Possibly outdated`,CommercialBias:`Commercial bias`,Paywalled:`Paywalled`,LicenseRestricted:`Licence restricted`,NotLearnerFacing:`For educators`,MachineReadable:`Machine-readable`,LlmPrior:`Unverified`,InjectionSuspected:`Suspicious page`},Yq=[{key:`authority`,label:`Authority`},{key:`currency`,label:`Up to date`},{key:`practicality`,label:`Practical`},{key:`concision`,label:`Concise`},{key:`coverage`,label:`Coverage`},{key:`sequencing`,label:`Sequencing`},{key:`prerequisites`,label:`Prerequisites`},{key:`accessibility`,label:`Accessible`},{key:`consensus`,label:`Consensus`}],Xq=[{key:`concept`,label:`Topics`,hint:`How much its topics decide what is in the map`},{key:`order`,label:`Order`,hint:`How much its sequence and prerequisites decide the links`},{key:`resource`,label:`Recommend`,hint:`How strongly we would recommend it to learners`}],Zq=e=>n(`${Math.round(e*100)}`,`src/page/goal/sources.ts#percent`),Qq=(e,t)=>n(t.div([t.Class(`flex shrink-0 items-end gap-0.5`),t.Title([...T(Yq,({key:t,label:r})=>n(`${r}: ${e.scores[t].toFixed(1)}/5`,`src/page/goal/sources.ts#anonymous`)),`Goal fit: ${Zq(e.fit)}%`].join(`
102
- `))],[...T(Yq,({key:r})=>n(t.span([t.Class(`w-1 rounded-sm bg-primary/70`),t.Style({height:`${4+e.scores[r]*3}px`})]),`src/page/goal/sources.ts#anonymous~2`)),t.span([t.Class(`ml-2 w-9 text-right text-xs font-medium tabular-nums`)],[Zq(e.weight)])]),`src/page/goal/sources.ts#scoreBars`),$q=(e,t,r)=>n(r.div([r.Class(`flex items-center gap-3 text-xs`),r.Title(t.toFixed(1))],[r.span([r.Class(`w-24 shrink-0 text-muted-foreground`)],[e]),r.div([r.Class(`flex flex-1 gap-1`)],Ri(5,e=>n(r.span([r.Class(CK(`h-1.5 flex-1 rounded-full`,e<Math.round(t)?`bg-primary`:`bg-muted`))]),`src/page/goal/sources.ts#anonymous~3`)))]),`src/page/goal/sources.ts#scoreRow`),eJ=(e,t,r,i)=>n(i.div([i.Class(`flex flex-col gap-1`),i.Title(t)],[i.div([i.Class(`flex items-baseline justify-between text-xs`)],[i.span([i.Class(`text-muted-foreground`)],[e]),i.span([i.Class(`font-medium tabular-nums`)],[Zq(r)])]),i.div([i.Class(`h-1.5 overflow-hidden rounded-full bg-muted`)],[i.div([i.Class(`h-full rounded-full bg-primary`),i.Style({width:`${Zq(r)}%`})])])]),`src/page/goal/sources.ts#weightMeter`),tJ=(e,t)=>n(e.url.length===0?t.span([t.Class(`font-semibold`)],[e.title]):t.a([t.Href(e.url),t.Target(`_blank`),t.Rel(`noreferrer`),t.Class(`inline-flex items-center gap-1.5 font-semibold hover:underline`)],[e.title,L(`external`,`size-3.5 text-muted-foreground`,t)]),`src/page/goal/sources.ts#sourceTitle`),nJ=(e,t)=>n(t.keyed(`article`)(e.id,[t.Class(_q(`reveal flex flex-col gap-4 p-5`))],[t.div([t.Class(`flex items-start justify-between gap-4`)],[t.div([t.Class(`min-w-0`)],[t.div([t.Class(`mb-1.5 flex flex-wrap items-center gap-1.5`)],[t.span([t.Class(gq(`Neutral`,`font-mono`))],[e.id]),t.span([t.Class(gq(`Primary`))],[Kq(e.kind)]),t.span([t.Class(gq(qq[e.lane].tone))],[qq[e.lane].label]),w(e.maybeYear,{onNone:()=>n(t.empty,`src/page/goal/sources.ts#onNone`),onSome:e=>n(t.span([t.Class(gq(`Neutral`))],[`${e}`]),`src/page/goal/sources.ts#onSome`)}),t.span([t.Class(gq(`Neutral`))],[`Goal fit ${Zq(e.fit)}%`])]),tJ(e,t),t.p([t.Class(`text-sm text-muted-foreground`)],[e.foundBy.length>0?`${e.publisher} · found by ${e.foundBy}`:e.publisher])]),t.div([t.Class(`flex shrink-0 flex-col items-end`)],[t.span([t.Class(`text-2xl font-semibold tabular-nums`)],[e.overall.toFixed(1),t.span([t.Class(`text-sm font-normal text-muted-foreground`)],[`/5`])]),t.span([t.Class(`text-xs text-muted-foreground`)],[`grade`])])]),t.p([t.Class(`text-sm`)],[e.summary]),t.div([t.Class(`grid gap-1.5 sm:grid-cols-2 sm:gap-x-6`)],T(Yq,({key:r,label:i})=>n($q(i,e.scores[r],t),`src/page/goal/sources.ts#anonymous~4`))),t.div([t.Class(`grid grid-cols-3 gap-4 rounded-lg bg-muted/40 p-3`)],T(Xq,({key:r,label:i,hint:a})=>n(eJ(i,a,e.weights[r],t),`src/page/goal/sources.ts#anonymous~5`))),Ui(e.flags,{onEmpty:()=>n(t.empty,`src/page/goal/sources.ts#onEmpty`),onNonEmpty:e=>n(t.div([t.Class(`flex flex-wrap gap-1.5`)],T(e,e=>n(t.span([t.Class(gq(`Neutral`))],[Jq[e]]),`src/page/goal/sources.ts#anonymous~6`))),`src/page/goal/sources.ts#onNonEmpty`)}),t.p([t.Class(`border-l-2 pl-3 text-sm text-muted-foreground italic`)],[e.rationale])]),`src/page/goal/sources.ts#sourceCard`),rJ=(e,t)=>n(Ui(e,{onEmpty:()=>n(t.div([t.Class(_q(`p-6 text-sm text-muted-foreground`))],[`No web sources made it through grading, so this map was drafted from expert knowledge. Treat it as lower confidence.`]),`src/page/goal/sources.ts#onEmpty~2`),onNonEmpty:e=>n(t.div([t.Class(`flex flex-col gap-4`)],[t.p([t.Class(`text-sm text-muted-foreground`)],[`Every source is graded on nine dimensions, weighted by the kind of field: recency matters a lot for web frameworks and barely at all for algebra, and consensus measures how well a source agrees with the others. The grade, times how well the source fits your goal, becomes three trust weights: how much its topics decide what is in the map, how much its order decides the prerequisite links, and how strongly we would recommend it to you.`]),...T(e,e=>n(nJ(e,t),`src/page/goal/sources.ts#anonymous~7`))]),`src/page/goal/sources.ts#onNonEmpty~2`)}),`src/page/goal/sources.ts#sourcesView`),iJ=[{stage:`Plan`,title:`Plan`},{stage:`Discover`,title:`Research`},{stage:`Synthesize`,title:`Map`},{stage:`Validate`,title:`Verify`}],aJ=e=>n(Ma(e,{currentStage:x(),stageLabels:new Map,agents:[],sources:[],notes:[],maybeError:x(),isDone:!1,isNoteLast:!1,conceptCount:0,edgeCount:0},(e,{event:t})=>{let r={...e,isNoteLast:!1},i=(e,t)=>n(T(r.agents,r=>n(r.agentId===e?t(r):r,`src/page/goal/research.ts#anonymous~2`)),`src/page/goal/research.ts#updateAgent`);switch(t._tag){case`StageStarted`:return n({...r,...t.stage===`Plan`?{agents:[],sources:[],isDone:!1,notes:r.isNoteLast?ua(r.notes,1):[]}:{},currentStage:S(t.stage),stageLabels:new Map(r.stageLabels).set(t.stage,t.label),maybeError:x(),isDone:!1},`src/page/goal/research.ts#anonymous`);case`AgentStarted`:return n({...r,agents:[...ja(r.agents,e=>n(e.agentId!==t.agentId,`src/page/goal/research.ts#anonymous~3`)),{agentId:t.agentId,label:t.label,status:`Working`,activities:[],outcome:``}]},`src/page/goal/research.ts#anonymous`);case`AgentActivity`:return n({...r,agents:i(t.agentId,e=>n({...e,activities:[...e.activities,t.text]},`src/page/goal/research.ts#anonymous~4`))},`src/page/goal/research.ts#anonymous`);case`AgentFinished`:return n({...r,agents:i(t.agentId,e=>n({...e,status:`Finished`,outcome:t.summary},`src/page/goal/research.ts#anonymous~5`))},`src/page/goal/research.ts#anonymous`);case`AgentFailed`:return n({...r,agents:i(t.agentId,e=>n({...e,status:`Failed`,outcome:t.error},`src/page/goal/research.ts#anonymous~6`))},`src/page/goal/research.ts#anonymous`);case`SourceFound`:return n({...r,sources:[...r.sources,t.source]},`src/page/goal/research.ts#anonymous`);case`Note`:return n({...r,notes:[...r.notes,t.text],isNoteLast:!0},`src/page/goal/research.ts#anonymous`);case`GraphReady`:return n({...r,isDone:!0,conceptCount:t.conceptCount,edgeCount:t.edgeCount},`src/page/goal/research.ts#anonymous`);case`ResearchFailed`:return n({...r,maybeError:S(t.error)},`src/page/goal/research.ts#anonymous`)}}),`src/page/goal/research.ts#summarizeResearch`),oJ=(e,t)=>{let r=w(e.currentStage,{onNone:()=>n(-1,`src/page/goal/research.ts#onNone`),onSome:e=>n(iJ.findIndex(t=>n(t.stage===e,`src/page/goal/research.ts#anonymous~7`)),`src/page/goal/research.ts#onSome`)});return n(t.ol([t.Class(`flex items-center gap-2 text-sm`)],T(iJ,({stage:i,title:a},o)=>{let s=e.isDone||o<r,c=!e.isDone&&o===r;return n(t.keyed(`li`)(i,[t.Class(`flex items-center gap-2`)],[t.span([t.Class(CK(`flex size-6 items-center justify-center rounded-full border text-xs font-semibold transition-colors`,{"border-primary bg-primary text-primary-foreground":s,"pulse-ring border-primary text-primary":c,"text-muted-foreground":!s&&!c}))],[s?L(`check`,`size-3.5`,t):`${o+1}`]),t.span([t.Class(CK(`font-medium`,{"text-foreground":s||c,"text-muted-foreground":!s&&!c}))],[a]),o<iJ.length-1?t.span([t.Class(CK(`mx-1 h-px w-6 sm:w-10`,s?`bg-primary`:`bg-border`))]):t.empty]),`src/page/goal/research.ts#anonymous~8`)})),`src/page/goal/research.ts#stageStepper`)},sJ=(e,t)=>{let r=mr(ia(e.activities),()=>n(`Starting up…`,`src/page/goal/research.ts#anonymous~9`));return n(t.keyed(`li`)(e.agentId,[t.Class(_q(`reveal flex flex-col gap-2 p-4`))],[t.div([t.Class(`flex items-center justify-between gap-2`)],[t.div([t.Class(`flex items-center gap-2 font-medium`)],[t.span([t.Class(CK(`flex size-7 items-center justify-center rounded-lg`,{"bg-primary/12 text-primary":e.status===`Working`,"bg-success/12 text-success":e.status===`Finished`,"bg-destructive/12 text-destructive":e.status===`Failed`}))],[e.status===`Working`?L(`globe`,`size-4 spinner [animation-duration:3s]`,t):e.status===`Finished`?L(`check`,`size-4`,t):L(`alert`,`size-4`,t)]),e.label]),t.span([t.Class(`text-xs text-muted-foreground tabular-nums`)],[`${e.activities.length} steps`])]),e.status===`Working`?t.p([t.Class(`shimmer-text truncate text-sm`)],[r]):t.p([t.Class(CK(`truncate text-sm`,{"text-muted-foreground":e.status===`Finished`,"text-destructive":e.status===`Failed`}))],[e.outcome])]),`src/page/goal/research.ts#agentCard`)},cJ=(e,t)=>n(t.keyed(`li`)(e.id,[t.Class(`pop-in flex items-center justify-between gap-4 py-2.5`)],[t.div([t.Class(`min-w-0`)],[e.url.length>0?t.a([t.Href(e.url),t.Target(`_blank`),t.Rel(`noreferrer`),t.Class(`block truncate text-sm font-medium hover:underline`)],[e.title]):t.p([t.Class(`truncate text-sm font-medium`)],[e.title]),t.p([t.Class(`truncate text-xs text-muted-foreground`)],[`${e.publisher} · ${Kq(e.kind)} · ${e.topicCount} topics`])]),Qq(e,t)]),`src/page/goal/research.ts#sourceRow`),lJ=(e,t)=>n(t.div([t.Class(`mx-auto flex w-full max-w-4xl flex-col gap-6 px-5 py-10`)],[t.div([t.Class(`flex flex-col gap-4`)],[oJ(e,t),e.isDone?t.p([t.Class(`flex items-center gap-2 text-lg font-medium`)],[L(`check`,`size-5 text-success`,t),`Map ready: ${e.conceptCount} concepts, ${e.edgeCount} prerequisite links`]):w(e.currentStage,{onNone:()=>n(t.p([t.Class(`shimmer-text text-lg`)],[`Getting started…`]),`src/page/goal/research.ts#onNone~2`),onSome:r=>n(t.p([t.Class(`shimmer-text text-lg font-medium`)],[e.stageLabels.get(r)??``]),`src/page/goal/research.ts#onSome~2`)}),...T(e.notes,e=>n(t.p([t.Class(`reveal text-sm text-muted-foreground`)],[e]),`src/page/goal/research.ts#anonymous~10`))]),Ui(e.agents,{onEmpty:()=>n(t.empty,`src/page/goal/research.ts#onEmpty`),onNonEmpty:e=>n(t.ul([t.Class(`grid gap-3 sm:grid-cols-2`)],T(e,e=>n(sJ(e,t),`src/page/goal/research.ts#anonymous~11`))),`src/page/goal/research.ts#onNonEmpty`)}),Ui(e.sources,{onEmpty:()=>n(t.empty,`src/page/goal/research.ts#onEmpty~2`),onNonEmpty:e=>n(t.section([t.Class(_q(`p-4`))],[t.div([t.Class(`mb-1 flex items-center justify-between`)],[t.h3([t.Class(`text-sm font-semibold`)],[`Sources found`]),t.span([t.Class(gq(`Neutral`))],[`${e.length}`])]),t.ul([t.Class(`divide-y`)],T(e,e=>n(cJ(e,t),`src/page/goal/research.ts#anonymous~12`)))]),`src/page/goal/research.ts#onNonEmpty~2`)})]),`src/page/goal/research.ts#researchView`),uJ=fO(tG,A),dJ=qS([`Map`,`Path`,`Sources`,`Research`]),fJ=M({goalId:A,detail:uJ.schema,events:N(vK),tab:dJ,maybeSelectedConceptId:CC(A),zoom:j,isConfirmingDelete:RS,maybeActionError:CC(A)}),pJ=nO({SucceededFetchGoal:{detail:tG},FailedFetchGoal:{error:A},ReceivedResearchEvent:{envelope:vK},SelectedTab:{tab:dJ},ClickedConcept:{conceptId:A},ClickedShowOnMap:{conceptId:A},ClickedCloseConcept:{},ClickedZoomIn:{},ClickedZoomOut:{},ClickedZoomReset:{},ClickedZoomFit:{},CompletedPrefetchLesson:{},CompletedScrollMap:{},CompletedMeasureMap:{width:j,height:j},ClickedSetMastery:{conceptId:A,mastery:lW},ClickedToggleTarget:{conceptId:A},ClickedResetTargets:{},ChangedDeadline:{value:A},ClickedClearDeadline:{},SucceededSetDeadline:{maybeDeadline:CC(eG)},FailedSetDeadline:{error:A},SucceededSetTargets:{targets:N(iW)},FailedSetTargets:{error:A},SucceededSetMastery:{progress:pW},FailedSetMastery:{error:A},ClickedRetry:{},SucceededRetry:{},FailedRetry:{error:A},ClickedDelete:{},ClickedCancelDelete:{},SucceededDeleteGoal:{},FailedDeleteGoal:{error:A},ClickedFreshLesson:{conceptId:A},SucceededStartFreshLesson:{},FailedStartFreshLesson:{error:A}}),mJ=nO({DeletedGoal:{}}),hJ=`knowledge-map-viewport`,gJ=96,_J=.15,vJ=.4,yJ=.6,bJ=1.6,xJ=F(`FetchGoal`,{args:{goalId:A},messages:[pJ.SucceededFetchGoal,pJ.FailedFetchGoal],execute:({goalId:e})=>n(O(function*(){let t=yield*(yield*yK).goals.get({params:{goalId:rW.make(e)}});return n(pJ.SucceededFetchGoal({detail:t}),`src/page/goal/goal.ts#anonymous`)}).pipe(Wp(e=>n(E(pJ.FailedFetchGoal({error:xK(e)})),`src/page/goal/goal.ts#anonymous~2`))),`src/page/goal/goal.ts#execute`)}),SJ=F(`SetMastery`,{args:{goalId:A,conceptId:A,mastery:lW},messages:[pJ.SucceededSetMastery,pJ.FailedSetMastery],execute:({goalId:e,conceptId:t,mastery:r})=>n(O(function*(){let i=yield*(yield*yK).goals.setMastery({params:{goalId:rW.make(e),conceptId:iW.make(t)},payload:{mastery:r}});return n(pJ.SucceededSetMastery({progress:i}),`src/page/goal/goal.ts#anonymous~3`)}).pipe(Wp(e=>n(E(pJ.FailedSetMastery({error:xK(e)})),`src/page/goal/goal.ts#anonymous~4`))),`src/page/goal/goal.ts#execute~2`)}),CJ=F(`StartFreshLesson`,{args:{goalId:A,conceptId:A},messages:[pJ.SucceededStartFreshLesson,pJ.FailedStartFreshLesson],execute:({goalId:e,conceptId:t})=>n(Cq(e,t).pipe(Hp(pJ.SucceededStartFreshLesson()),Wp(e=>n(E(pJ.FailedStartFreshLesson({error:xK(e)})),`src/page/goal/goal.ts#anonymous~5`))),`src/page/goal/goal.ts#execute~3`)}),wJ=F(`PrefetchLesson`,{args:{goalId:A,conceptId:A},messages:[pJ.CompletedPrefetchLesson],execute:({goalId:e,conceptId:t})=>n(O(function*(){yield*(yield*yK).learning.lesson({params:{goalId:rW.make(e),conceptId:iW.make(t)}})}).pipe(Yp,Hp(pJ.CompletedPrefetchLesson())),`src/page/goal/goal.ts#execute~4`)}),TJ=48,EJ=F(`ScrollMap`,{args:{left:j,top:j},messages:[pJ.CompletedScrollMap],execute:({left:e,top:t})=>n(Qp(so(60)).pipe(Rp(D(()=>(globalThis.document.getElementById(hJ)?.scrollTo({left:e,top:t,behavior:`smooth`}),n(pJ.CompletedScrollMap(),`src/page/goal/goal.ts#anonymous~7`))))),`src/page/goal/goal.ts#execute~5`)}),DJ=F(`MeasureMap`,{messages:[pJ.CompletedMeasureMap],execute:Qp(so(40)).pipe(Rp(D(()=>{let e=globalThis.document.getElementById(hJ);return n(pJ.CompletedMeasureMap({width:e?.clientWidth??0,height:e?.clientHeight??0}),`src/page/goal/goal.ts#anonymous~8`)})))}),OJ=F(`SetTargets`,{args:{goalId:A,targets:N(A)},messages:[pJ.SucceededSetTargets,pJ.FailedSetTargets],execute:({goalId:e,targets:t})=>n(O(function*(){let r=yield*(yield*yK).goals.setTargets({params:{goalId:rW.make(e)},payload:{targets:T(t,e=>n(iW.make(e),`src/page/goal/goal.ts#anonymous~10`))}});return n(pJ.SucceededSetTargets({targets:r.targets}),`src/page/goal/goal.ts#anonymous~9`)}).pipe(Wp(e=>n(E(pJ.FailedSetTargets({error:xK(e)})),`src/page/goal/goal.ts#anonymous~11`))),`src/page/goal/goal.ts#execute~6`)}),kJ=F(`SetDeadline`,{args:{goalId:A,at:JS(j)},messages:[pJ.SucceededSetDeadline,pJ.FailedSetDeadline],execute:({goalId:e,at:t})=>n(O(function*(){let r=yield*(yield*yK).goals.setDeadline({params:{goalId:rW.make(e)},payload:{maybeDeadline:gr(t)}});return n(pJ.SucceededSetDeadline({maybeDeadline:r.maybeDeadline}),`src/page/goal/goal.ts#anonymous~12`)}).pipe(Wp(e=>n(E(pJ.FailedSetDeadline({error:xK(e)})),`src/page/goal/goal.ts#anonymous~13`))),`src/page/goal/goal.ts#execute~7`)}),AJ=e=>{let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);return n(t===null?x():S(new Date(globalThis.Number(t[1]),globalThis.Number(t[2])-1,globalThis.Number(t[3]),9).getTime()),`src/page/goal/goal.ts#parseDateInput`)},jJ=e=>{let t=new Date(e),r=e=>n(`${e}`.padStart(2,`0`),`src/page/goal/goal.ts#pad`);return n(`${t.getFullYear()}-${r(t.getMonth()+1)}-${r(t.getDate())}`,`src/page/goal/goal.ts#toDateInput`)},MJ=F(`RetryResearch`,{args:{goalId:A},messages:[pJ.SucceededRetry,pJ.FailedRetry],execute:({goalId:e})=>n(O(function*(){return yield*(yield*yK).goals.retry({params:{goalId:rW.make(e)}}),n(pJ.SucceededRetry(),`src/page/goal/goal.ts#anonymous~14`)}).pipe(Wp(e=>n(E(pJ.FailedRetry({error:xK(e)})),`src/page/goal/goal.ts#anonymous~15`))),`src/page/goal/goal.ts#execute~8`)}),NJ=F(`DeleteGoal`,{args:{goalId:A},messages:[pJ.SucceededDeleteGoal,pJ.FailedDeleteGoal],execute:({goalId:e})=>n(O(function*(){return yield*(yield*yK).goals.remove({params:{goalId:rW.make(e)}}),n(pJ.SucceededDeleteGoal(),`src/page/goal/goal.ts#anonymous~16`)}).pipe(Wp(e=>n(E(pJ.FailedDeleteGoal({error:xK(e)})),`src/page/goal/goal.ts#anonymous~17`))),`src/page/goal/goal.ts#execute~9`)}),PJ=e=>n({model:e,commands:[xJ({goalId:e.goalId})]},`src/page/goal/goal.ts#informEntered`),FJ=e=>n({model:{goalId:e,detail:uJ.Loading(),events:[],tab:`Map`,maybeSelectedConceptId:x(),zoom:1,isConfirmingDelete:!1,maybeActionError:x()},commands:[xJ({goalId:e})]},`src/page/goal/goal.ts#init`),IJ=new WeakMap,LJ=e=>{let t=IJ.get(e);if(t!==void 0)return n(t,`src/page/goal/goal.ts#learnerStateFor`);let r=Rq(e.graph),i=new Set(Oa(e.progress,e=>n(dW(e.mastery)?[e.conceptId]:[],`src/page/goal/goal.ts#anonymous~18`))),a=new Set(Oa(e.progress,e=>n(fW(e.mastery)?[e.conceptId]:[],`src/page/goal/goal.ts#anonymous~19`))),o=PK(r.index,i,a),s=uW(e.graph,e.targets),c=FK({index:r.index,known:i,doubted:a,goals:s,minutesOf:e=>n(r.conceptsById.get(e)?.estimatedMinutes??30,`src/page/goal/goal.ts#minutesOf`)}),l=new Set(c.steps),u=IK(r.index,c.steps,i,a),d=new Set(u),f={scene:r,targets:new Set(s),isCustomTarget:Zi(e.targets),stateOf:e=>n(o.has(e)?`Known`:d.has(e)?`Next`:l.has(e)?`ToLearn`:`NotNeeded`,`src/page/goal/goal.ts#stateOf`),steps:c.steps,nextUp:u,skipped:c.skipped.length,totalMinutes:c.totalMinutes,knownCount:o.size};return IJ.set(e,f),n(f,`src/page/goal/goal.ts#learnerStateFor`)},RJ=e=>n(w(hO(e.detail),{onNone:()=>n(!1,`src/page/goal/goal.ts#onNone`),onSome:e=>n(e.goal.status===`Researching`,`src/page/goal/goal.ts#onSome`)}),`src/page/goal/goal.ts#isResearching`),zJ=(e,t,r)=>n(I(e,{progress:e=>n([...ja(e,e=>n(e.conceptId!==t,`src/page/goal/goal.ts#anonymous~20`)),{conceptId:iW.make(t),mastery:r,maybeDueAt:x()}],`src/page/goal/goal.ts#progress`)}),`src/page/goal/goal.ts#withProgress`),BJ=(e,t)=>n(pJ.match(t,{SucceededFetchGoal:({detail:t})=>{let r=t.goal.status===`Ready`&&w(hO(e.detail),{onNone:()=>n(!0,`src/page/goal/goal.ts#onNone~2`),onSome:e=>n(e.goal.status!==`Ready`,`src/page/goal/goal.ts#onSome~2`)});return n({model:I(e,{detail:()=>n(uJ.Success({data:t}),`src/page/goal/goal.ts#detail`),tab:e=>n(t.goal.status===`Ready`&&e===`Research`?`Map`:e,`src/page/goal/goal.ts#tab`)}),commands:[...Hi(kr(DJ(),()=>n(r,`src/page/goal/goal.ts#anonymous~21`))),...Hi(xr(kr(t,e=>n(e.goal.status===`Ready`,`src/page/goal/goal.ts#anonymous~22`)).pipe(Cr(e=>n(na(LJ(e).nextUp),`src/page/goal/goal.ts#anonymous~23`))),t=>n(wJ({goalId:e.goalId,conceptId:t}),`src/page/goal/goal.ts#anonymous~24`)))]},`src/page/goal/goal.ts#SucceededFetchGoal`)},FailedFetchGoal:({error:t})=>n({model:I(e,{detail:e=>n(w(hO(e),{onNone:()=>n(uJ.Failure({error:t}),`src/page/goal/goal.ts#onNone~3`),onSome:e=>n(uJ.Stale({error:t,data:e}),`src/page/goal/goal.ts#onSome~3`)}),`src/page/goal/goal.ts#detail~2`)})},`src/page/goal/goal.ts#FailedFetchGoal`),ReceivedResearchEvent:({envelope:t})=>{let r=w(ia(e.events),{onNone:()=>n(0,`src/page/goal/goal.ts#onNone~4`),onSome:e=>n(e.seq,`src/page/goal/goal.ts#onSome~4`)});if(t.seq<=r)return n({model:e},`src/page/goal/goal.ts#ReceivedResearchEvent`);let i=I(e,{events:Ki(t)});return n((t.event._tag===`GraphReady`||t.event._tag===`ResearchFailed`)&&RJ(e)?{model:i,commands:[xJ({goalId:e.goalId})]}:{model:i},`src/page/goal/goal.ts#ReceivedResearchEvent`)},SelectedTab:({tab:t})=>n({model:I(e,{tab:()=>n(t,`src/page/goal/goal.ts#tab~2`)}),commands:Hi(kr(DJ(),()=>n(t===`Map`&&e.tab!==`Map`,`src/page/goal/goal.ts#anonymous~25`)))},`src/page/goal/goal.ts#SelectedTab`),ClickedConcept:({conceptId:t})=>n({model:I(e,{maybeSelectedConceptId:e=>n(Ar(e,t)?x():S(t),`src/page/goal/goal.ts#maybeSelectedConceptId`)})},`src/page/goal/goal.ts#ClickedConcept`),ClickedShowOnMap:({conceptId:t})=>n({model:I(e,{tab:()=>n(`Map`,`src/page/goal/goal.ts#tab~3`),maybeSelectedConceptId:()=>n(S(t),`src/page/goal/goal.ts#maybeSelectedConceptId~2`)}),commands:[DJ()]},`src/page/goal/goal.ts#ClickedShowOnMap`),ClickedCloseConcept:()=>n({model:I(e,{maybeSelectedConceptId:()=>n(x(),`src/page/goal/goal.ts#maybeSelectedConceptId~3`)})},`src/page/goal/goal.ts#ClickedCloseConcept`),ClickedZoomIn:()=>n({model:I(e,{zoom:e=>n(Math.min(bJ,e+_J),`src/page/goal/goal.ts#zoom`)})},`src/page/goal/goal.ts#ClickedZoomIn`),ClickedZoomOut:()=>n({model:I(e,{zoom:e=>n(Math.max(vJ,e-_J),`src/page/goal/goal.ts#zoom~2`)})},`src/page/goal/goal.ts#ClickedZoomOut`),ClickedZoomReset:()=>n({model:I(e,{zoom:()=>n(1,`src/page/goal/goal.ts#zoom~3`)})},`src/page/goal/goal.ts#ClickedZoomReset`),ClickedZoomFit:()=>n({model:e,commands:[DJ()]},`src/page/goal/goal.ts#ClickedZoomFit`),CompletedPrefetchLesson:()=>n({model:e},`src/page/goal/goal.ts#CompletedPrefetchLesson`),CompletedScrollMap:()=>n({model:e},`src/page/goal/goal.ts#CompletedScrollMap`),CompletedMeasureMap:({width:t,height:r})=>n(w(hO(e.detail),{onNone:()=>n({model:e},`src/page/goal/goal.ts#onNone~5`),onSome:i=>{if(t===0||r===0)return n({model:e},`src/page/goal/goal.ts#onSome~5`);let{layout:a}=Rq(i.graph),o=Math.min(t/(a.width+gJ),r/(a.height+gJ)),s=Math.min(1,Math.max(yJ,Math.floor(o*20)/20)),c=Cr(na(LJ(i).nextUp),e=>n(_a(a.nodes,t=>n(t.id===e,`src/page/goal/goal.ts#anonymous~27`)),`src/page/goal/goal.ts#anonymous~26`));return n({model:I(e,{zoom:()=>n(s,`src/page/goal/goal.ts#zoom~4`)}),commands:Hi(xr(c,e=>n(EJ({left:Math.max(0,(e.x+TJ)*s-32),top:Math.max(0,(e.y+TJ)*s-r/2)}),`src/page/goal/goal.ts#anonymous~28`)))},`src/page/goal/goal.ts#onSome~5`)}}),`src/page/goal/goal.ts#CompletedMeasureMap`),ClickedSetMastery:({conceptId:t,mastery:r})=>n({model:I(e,{detail:e=>n(mO(e,e=>n(zJ(e,t,r),`src/page/goal/goal.ts#anonymous~29`)),`src/page/goal/goal.ts#detail~3`),maybeActionError:()=>n(x(),`src/page/goal/goal.ts#maybeActionError`)}),commands:[SJ({goalId:e.goalId,conceptId:t,mastery:r})]},`src/page/goal/goal.ts#ClickedSetMastery`),SucceededSetMastery:()=>n({model:e},`src/page/goal/goal.ts#SucceededSetMastery`),ClickedToggleTarget:({conceptId:t})=>n(w(hO(e.detail),{onNone:()=>n({model:e},`src/page/goal/goal.ts#onNone~6`),onSome:r=>{let i=LJ(r),a=i.isCustomTarget?[...i.targets]:[],o=i.targets.has(t)&&i.isCustomTarget?ja(a,e=>n(e!==t,`src/page/goal/goal.ts#anonymous~30`)):Ki(a,t);return n({model:I(e,{detail:e=>n(mO(e,e=>n(I(e,{targets:()=>n(T(o,e=>n(iW.make(e),`src/page/goal/goal.ts#anonymous~32`)),`src/page/goal/goal.ts#targets`)}),`src/page/goal/goal.ts#anonymous~31`)),`src/page/goal/goal.ts#detail~4`)}),commands:[OJ({goalId:e.goalId,targets:o})]},`src/page/goal/goal.ts#onSome~6`)}}),`src/page/goal/goal.ts#ClickedToggleTarget`),ClickedResetTargets:()=>n({model:I(e,{detail:e=>n(mO(e,e=>n(I(e,{targets:()=>n([],`src/page/goal/goal.ts#targets~2`)}),`src/page/goal/goal.ts#anonymous~33`)),`src/page/goal/goal.ts#detail~5`)}),commands:[OJ({goalId:e.goalId,targets:[]})]},`src/page/goal/goal.ts#ClickedResetTargets`),ChangedDeadline:({value:t})=>n(w(AJ(t),{onNone:()=>n({model:e},`src/page/goal/goal.ts#onNone~7`),onSome:t=>n({model:e,commands:[kJ({goalId:e.goalId,at:t})]},`src/page/goal/goal.ts#onSome~7`)}),`src/page/goal/goal.ts#ChangedDeadline`),ClickedClearDeadline:()=>n({model:e,commands:[kJ({goalId:e.goalId,at:null})]},`src/page/goal/goal.ts#ClickedClearDeadline`),SucceededSetDeadline:({maybeDeadline:t})=>n({model:I(e,{detail:e=>n(mO(e,e=>n(I(e,{maybeDeadline:()=>n(t,`src/page/goal/goal.ts#maybeDeadline`)}),`src/page/goal/goal.ts#anonymous~34`)),`src/page/goal/goal.ts#detail~6`),maybeActionError:()=>n(x(),`src/page/goal/goal.ts#maybeActionError~2`)})},`src/page/goal/goal.ts#SucceededSetDeadline`),FailedSetDeadline:({error:t})=>n({model:I(e,{maybeActionError:()=>n(S(t),`src/page/goal/goal.ts#maybeActionError~3`)})},`src/page/goal/goal.ts#FailedSetDeadline`),SucceededSetTargets:()=>n({model:e},`src/page/goal/goal.ts#SucceededSetTargets`),FailedSetTargets:({error:t})=>n({model:I(e,{maybeActionError:()=>n(S(t),`src/page/goal/goal.ts#maybeActionError~4`)}),commands:[xJ({goalId:e.goalId})]},`src/page/goal/goal.ts#FailedSetTargets`),FailedSetMastery:({error:t})=>n({model:I(e,{maybeActionError:()=>n(S(t),`src/page/goal/goal.ts#maybeActionError~5`)}),commands:[xJ({goalId:e.goalId})]},`src/page/goal/goal.ts#FailedSetMastery`),ClickedRetry:()=>n({model:I(e,{maybeActionError:()=>n(x(),`src/page/goal/goal.ts#maybeActionError~6`),tab:()=>n(`Map`,`src/page/goal/goal.ts#tab~4`)}),commands:[MJ({goalId:e.goalId})]},`src/page/goal/goal.ts#ClickedRetry`),SucceededRetry:()=>n({model:e,commands:[xJ({goalId:e.goalId})]},`src/page/goal/goal.ts#SucceededRetry`),FailedRetry:({error:t})=>n({model:I(e,{maybeActionError:()=>n(S(t),`src/page/goal/goal.ts#maybeActionError~7`)})},`src/page/goal/goal.ts#FailedRetry`),ClickedDelete:()=>n(e.isConfirmingDelete?{model:e,commands:[NJ({goalId:e.goalId})]}:{model:I(e,{isConfirmingDelete:()=>n(!0,`src/page/goal/goal.ts#isConfirmingDelete`)})},`src/page/goal/goal.ts#ClickedDelete`),ClickedCancelDelete:()=>n({model:I(e,{isConfirmingDelete:()=>n(!1,`src/page/goal/goal.ts#isConfirmingDelete~2`)})},`src/page/goal/goal.ts#ClickedCancelDelete`),SucceededDeleteGoal:()=>n({model:e,outMessage:mJ.DeletedGoal()},`src/page/goal/goal.ts#SucceededDeleteGoal`),FailedDeleteGoal:({error:t})=>n({model:I(e,{isConfirmingDelete:()=>n(!1,`src/page/goal/goal.ts#isConfirmingDelete~3`),maybeActionError:()=>n(S(t),`src/page/goal/goal.ts#maybeActionError~8`)})},`src/page/goal/goal.ts#FailedDeleteGoal`),ClickedFreshLesson:({conceptId:t})=>n({model:I(e,{maybeActionError:()=>n(x(),`src/page/goal/goal.ts#maybeActionError~9`)}),commands:[CJ({goalId:e.goalId,conceptId:t})]},`src/page/goal/goal.ts#ClickedFreshLesson`),SucceededStartFreshLesson:()=>n({model:e},`src/page/goal/goal.ts#SucceededStartFreshLesson`),FailedStartFreshLesson:({error:t})=>n({model:I(e,{maybeActionError:()=>n(S(t),`src/page/goal/goal.ts#maybeActionError~10`)})},`src/page/goal/goal.ts#FailedStartFreshLesson`)}),`src/page/goal/goal.ts#update`),VJ=SS(_C(vK)),HJ=e=>n(vE(t=>n(dm(D(()=>{let r=new EventSource(_K(rW.make(e)));return r.addEventListener(`message`,e=>{w(VJ(e.data),{onNone:()=>n(void 0,`src/page/goal/goal.ts#onNone~8`),onSome:e=>n(Bw(t,pJ.ReceivedResearchEvent({envelope:e})),`src/page/goal/goal.ts#onSome~8`)})}),n(r,`src/page/goal/goal.ts#anonymous~36`)}),e=>n(D(()=>n(e.close(),`src/page/goal/goal.ts#anonymous~39`)),`src/page/goal/goal.ts#anonymous~38`)).pipe(k(()=>n(Op,`src/page/goal/goal.ts#anonymous~40`))),`src/page/goal/goal.ts#anonymous~35`)),`src/page/goal/goal.ts#streamResearchEvents`),UJ=rR()(e=>n({researchEvents:e({goalId:A},{modelToDependencies:e=>n({goalId:e.goalId},`src/page/goal/goal.ts#modelToDependencies`),dependenciesToStream:({goalId:e})=>n(HJ(e),`src/page/goal/goal.ts#dependenciesToStream`)})},`src/page/goal/goal.ts#anonymous~41`)),WJ=e=>{if(e<60)return n(`${e} min`,`src/page/goal/goal.ts#formatMinutes`);let t=e/60;return n(t<10?`${t.toFixed(1)} h`:`${Math.round(t)} h`,`src/page/goal/goal.ts#formatMinutes`)},GJ=(e,t,r)=>n(r.div([r.Class(`flex flex-col`)],[r.span([r.Class(`text-lg font-semibold tabular-nums`)],[t]),r.span([r.Class(`text-xs text-muted-foreground`)],[e])]),`src/page/goal/goal.ts#statView`),KJ=(e,t,r)=>{let i=LJ(t),a=t.goal.status===`Ready`;return n(r.header([r.Class(`mx-auto w-full max-w-7xl px-5 pt-8 pb-5`)],[r.a([r.Href(iq()),r.Class(`mb-4 inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground`)],[L(`arrowLeft`,`size-4`,r),`All subjects`]),r.div([r.Class(`flex flex-col gap-5 lg:flex-row lg:items-end lg:justify-between`)],[r.div([r.Class(`max-w-3xl`)],[r.h1([r.Class(`reveal text-3xl font-semibold tracking-tight`)],[t.goal.title]),t.overview.length>0?r.p([r.Class(`reveal stagger-1 mt-2 text-muted-foreground`)],[t.overview]):r.p([r.Class(`reveal stagger-1 mt-2 text-muted-foreground`)],[`“${t.goal.prompt}”`])]),a?r.div([r.Class(`reveal stagger-2 flex shrink-0 flex-col items-start gap-4 lg:items-end`)],[r.div([r.Class(`flex gap-6`)],[GJ(`concepts`,`${t.graph.concepts.length}`,r),GJ(`to learn`,`${i.steps.length}`,r),GJ(`estimated`,WJ(i.totalMinutes),r)]),qJ(t,i,r)]):r.empty]),a?JJ(i,r):r.empty,a?XJ(t,r):r.empty,a&&Yi(t.progress)?ZJ(t,r):r.empty,w(e.maybeActionError,{onNone:()=>n(r.empty,`src/page/goal/goal.ts#onNone~9`),onSome:e=>n(r.p([r.Role(`alert`),r.Class(`mt-3 text-sm text-destructive`)],[e]),`src/page/goal/goal.ts#onSome~9`)})]),`src/page/goal/goal.ts#headerView`)},qJ=(e,t,r)=>n(w(na(t.nextUp),{onNone:()=>n(r.empty,`src/page/goal/goal.ts#onNone~10`),onSome:i=>n(r.a([r.Href(oq({goalId:e.goal.id,conceptId:i})),r.Class(R(`Primary`,`Medium`))],[L(`play`,`fill-current`,r),`Continue: ${t.scene.conceptsById.get(i)?.title??`next lesson`}`]),`src/page/goal/goal.ts#onSome~10`)}),`src/page/goal/goal.ts#continueButton`),JJ=(e,t)=>n(t.div([t.Class(`reveal stagger-2 mt-4 flex flex-wrap items-center gap-2 text-sm`)],[t.span([t.Class(`flex items-center gap-1.5 text-muted-foreground`)],[L(`flag`,`size-3.5 text-primary`,t),e.isCustomTarget?`Your goal:`:`Goal:`]),...T([...e.targets].slice(0,4),r=>n(t.keyed(`button`)(r,[t.Type(`button`),t.OnClick(pJ.ClickedConcept({conceptId:r})),t.Class(`press rounded-md border border-primary/30 bg-primary/6 px-2 py-0.5 text-xs hover:border-primary`)],[e.scene.conceptsById.get(r)?.title??r]),`src/page/goal/goal.ts#anonymous~42`)),e.targets.size>4?t.span([t.Class(`text-xs text-muted-foreground`)],[`+${e.targets.size-4} more`]):t.empty,e.isCustomTarget?t.button([t.Type(`button`),t.OnClick(pJ.ClickedResetTargets()),t.Class(`press text-xs text-muted-foreground underline-offset-4 hover:text-foreground hover:underline`)],[`Reset to the whole subject`]):t.span([t.Class(`text-xs text-muted-foreground`)],[`· pick any concept on the map and choose “Make this my goal” for a shorter path`])]),`src/page/goal/goal.ts#goalLine`),YJ=e=>n(e.daysLeft<0?`That date has passed, so reviews are back to their usual rhythm.`:e.daysLeft<=2?`Final stretch: light review only, no new lessons. Sleep well; it matters more than one more session.`:e.daysLeft<=14?`${e.daysLeft} days to go. Reviews come often enough that everything is fresh on the day.`:`${e.daysLeft} days to go. Every concept will get at least two reviews before then.`,`src/page/goal/goal.ts#deadlineNote`),XJ=(e,t)=>n(t.div([t.Class(`reveal stagger-2 mt-2 flex flex-wrap items-center gap-2 text-sm`)],[t.label([t.For(`goal-deadline`),t.Class(`flex items-center gap-1.5 text-muted-foreground`)],[L(`calendar`,`size-3.5 text-primary`,t),`Exam or deadline:`]),t.input([t.Id(`goal-deadline`),t.Type(`date`),t.Value(w(e.maybeDeadline,{onNone:()=>n(``,`src/page/goal/goal.ts#onNone~11`),onSome:e=>n(jJ(e.at),`src/page/goal/goal.ts#onSome~11`)})),t.OnChange(e=>n(pJ.ChangedDeadline({value:e}),`src/page/goal/goal.ts#anonymous~43`)),t.Class(`h-7 rounded-md border border-input bg-transparent px-2 text-xs shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 dark:bg-input/30 dark:[color-scheme:dark]`)]),w(e.maybeDeadline,{onNone:()=>n(t.span([t.Class(`text-xs text-muted-foreground`)],[`· optional; reviews tighten so everything is fresh on the day`]),`src/page/goal/goal.ts#onNone~12`),onSome:e=>n(t.span([t.Class(`flex items-center gap-2 text-xs text-muted-foreground`)],[YJ(e),t.button([t.Type(`button`),t.OnClick(pJ.ClickedClearDeadline()),t.Class(`press text-xs underline-offset-4 hover:text-foreground hover:underline`)],[`Remove`])]),`src/page/goal/goal.ts#onSome~12`)})]),`src/page/goal/goal.ts#deadlineLine`),ZJ=(e,t)=>n(t.div([t.Class(`reveal stagger-3 mt-5 flex flex-col gap-3 rounded-2xl border border-primary/30 bg-primary/6 p-4 sm:flex-row sm:items-center sm:justify-between`)],[t.div([t.Class(`flex items-start gap-3`)],[L(`target`,`mt-0.5 size-5 shrink-0 text-primary`,t),t.div([],[t.p([t.Class(`font-medium`)],[`Already know some of this?`]),t.p([t.Class(`text-sm text-muted-foreground`)],[`Take a 2–3 minute adaptive quiz and we’ll skip everything you know. It binary-searches the map, so it usually needs only 6–10 questions.`])])]),t.a([t.Href(cq({goalId:e.goal.id})),t.Class(R(`Primary`,`Medium`,`shrink-0`))],[`Find my starting point`,L(`arrowRight`,``,t)])]),`src/page/goal/goal.ts#firstVisitBanner`),QJ=(e,t)=>n(t.div([t.Class(`mx-auto flex w-full max-w-7xl items-center justify-between gap-3 px-5`)],[t.div([t.Role(`tablist`),t.Class(`inline-flex gap-1 rounded-lg bg-muted p-1`)],T([{tab:`Map`,label:`Knowledge map`,iconName:`network`},{tab:`Path`,label:`Your path`,iconName:`route`},{tab:`Sources`,label:`Sources`,iconName:`book`},{tab:`Research`,label:`How it was built`,iconName:`search`}],({tab:r,label:i,iconName:a})=>n(t.keyed(`button`)(r,[t.Type(`button`),t.Role(`tab`),t.AriaSelected(e.tab===r),t.OnClick(pJ.SelectedTab({tab:r})),t.Class(yq(e.tab===r))],[L(a,``,t),t.span([t.Class(`hidden sm:inline`)],[i])]),`src/page/goal/goal.ts#anonymous~44`))),$J(e,t)]),`src/page/goal/goal.ts#tabsView`),$J=(e,t)=>n(e.isConfirmingDelete?t.div([t.Class(`pop-in flex items-center gap-2`)],[t.span([t.Class(`text-sm text-muted-foreground`)],[`Delete this subject?`]),t.button([t.Type(`button`),t.OnClick(pJ.ClickedCancelDelete()),t.Class(R(`Ghost`,`Small`))],[`Cancel`]),t.button([t.Type(`button`),t.OnClick(pJ.ClickedDelete()),t.Class(R(`Destructive`,`Small`))],[`Delete`])]):t.button([t.Type(`button`),t.AriaLabel(`Delete subject`),t.OnClick(pJ.ClickedDelete()),t.Class(R(`Ghost`,`IconSmall`,`text-muted-foreground`))],[L(`trash`,``,t)]),`src/page/goal/goal.ts#deleteControl`),eY=(e,t,r,i)=>n(Ui(t,{onEmpty:()=>n(i.empty,`src/page/goal/goal.ts#onEmpty`),onNonEmpty:t=>n(i.div([i.Class(`flex flex-col gap-2`)],[i.h4([i.Class(`text-xs font-medium tracking-wide text-muted-foreground uppercase`)],[e]),i.div([i.Class(`flex flex-wrap gap-1.5`)],T(t,e=>n(i.keyed(`button`)(e,[i.Type(`button`),i.OnClick(pJ.ClickedConcept({conceptId:e})),i.Class(CK(`press rounded-md border px-2 py-1 text-left text-xs hover:border-primary/50`,r.stateOf(e)===`Known`&&`border-success/40 bg-success/8`))],[r.scene.conceptsById.get(e)?.title??e]),`src/page/goal/goal.ts#anonymous~45`)))]),`src/page/goal/goal.ts#onNonEmpty`)}),`src/page/goal/goal.ts#chipList`),tY=3,nY=(e,t,r)=>n(Ui(ja(e.resources,e=>n(e.conceptId===t.id,`src/page/goal/goal.ts#anonymous~46`)),{onEmpty:()=>n(r.empty,`src/page/goal/goal.ts#onEmpty~2`),onNonEmpty:i=>n(r.div([r.Class(`flex flex-col gap-2`)],[r.h4([r.Class(`text-xs font-medium tracking-wide text-muted-foreground uppercase`)],[`Go deeper`]),nq(la(i,tY),!0,`Go deeper`,r),i.length>tY?r.a([r.Href(sq({goalId:e.goal.id,conceptId:t.id})),r.Class(`text-xs font-medium text-muted-foreground underline-offset-4 hover:text-foreground hover:underline`)],[`${i.length-tY} more in the notes`]):r.empty]),`src/page/goal/goal.ts#onNonEmpty~2`)}),`src/page/goal/goal.ts#goDeeperView`),rY=(e,t,r)=>n(w(_a(e.leeches,e=>n(e.conceptId===t,`src/page/goal/goal.ts#anonymous~47`)),{onNone:()=>n(r.empty,`src/page/goal/goal.ts#onNone~13`),onSome:e=>n(Dq(e,{maybeCheckBasics:x(),freshLesson:pJ.ClickedFreshLesson({conceptId:t}),isBusy:!1,isChecked:!1},r),`src/page/goal/goal.ts#onSome~13`)}),`src/page/goal/goal.ts#conceptLeechNote`),iY=(e,t,r,i)=>{let a=r.stateOf(e.id),o=a===`Known`,s=new Map(T(t.sources,e=>n([e.id,e],`src/page/goal/goal.ts#anonymous~48`))),c=w(_a(t.progress,t=>n(t.conceptId===e.id,`src/page/goal/goal.ts#anonymous~49`)),{onNone:()=>n(`Unknown`,`src/page/goal/goal.ts#onNone~14`),onSome:e=>n(e.mastery,`src/page/goal/goal.ts#onSome~14`)});return n(i.keyed(`aside`)(e.id,[i.Class(`pop-in absolute top-3 right-3 bottom-3 z-10 flex w-[min(24rem,calc(100%-1.5rem))] flex-col overflow-hidden rounded-2xl border bg-popover/95 shadow-2xl backdrop-blur`)],[i.div([i.Class(`flex items-start justify-between gap-3 border-b p-5`)],[i.div([],[i.div([i.Class(`mb-2 flex flex-wrap gap-1.5`)],[r.targets.has(e.id)?i.span([i.Class(gq(`Primary`))],[L(`flag`,``,i),`Your goal`]):i.empty,i.span([i.Class(gq(o?`Success`:a===`NotNeeded`?`Neutral`:`Primary`))],[o?`Known`:a===`Next`?`Next up`:a===`ToLearn`?`On your path`:`Not needed for goal`]),i.span([i.Class(gq(`Neutral`))],[L(`clock`,``,i),`${e.estimatedMinutes} min`]),i.span([i.Class(gq(`Neutral`))],[`Level ${e.difficulty}/5`])]),i.h3([i.Class(`text-lg font-semibold leading-snug`)],[e.title])]),i.button([i.Type(`button`),i.AriaLabel(`Close`),i.OnClick(pJ.ClickedCloseConcept()),i.Class(R(`Ghost`,`IconSmall`))],[L(`x`,``,i)])]),i.div([i.Class(`flex flex-1 flex-col gap-5 overflow-y-auto p-5`)],[i.div([i.Class(`flex flex-col items-start gap-2`)],[i.p([i.Class(`text-sm leading-relaxed`)],[e.summary]),i.a([i.Href(sq({goalId:t.goal.id,conceptId:e.id})),i.Class(`inline-flex items-center gap-1.5 text-sm font-medium text-primary underline-offset-4 hover:underline`)],[L(`fileText`,`size-4`,i),`Read the notes`])]),rY(t,e.id,i),Ui(e.objectives,{onEmpty:()=>n(i.empty,`src/page/goal/goal.ts#onEmpty~3`),onNonEmpty:e=>n(i.div([i.Class(`flex flex-col gap-2`)],[i.h4([i.Class(`text-xs font-medium tracking-wide text-muted-foreground uppercase`)],[`You will be able to`]),i.ul([i.Class(`flex flex-col gap-1.5 text-sm`)],T(e,e=>n(i.li([i.Class(`flex gap-2`)],[L(`target`,`mt-0.5 size-3.5 shrink-0 text-primary`,i),e]),`src/page/goal/goal.ts#anonymous~50`)))]),`src/page/goal/goal.ts#onNonEmpty~3`)}),eY(`Builds on`,r.scene.index.prerequisites.get(e.id)??[],r,i),eY(`Unlocks`,r.scene.index.dependents.get(e.id)??[],r,i),nY(t,e,i),Ui(e.sourceIds,{onEmpty:()=>n(i.empty,`src/page/goal/goal.ts#onEmpty~4`),onNonEmpty:e=>n(i.div([i.Class(`flex flex-col gap-2`)],[i.h4([i.Class(`text-xs font-medium tracking-wide text-muted-foreground uppercase`)],[`Taught in`]),i.ul([i.Class(`flex flex-col gap-1 text-sm`)],T(e,e=>{let t=s.get(e);return n(i.li([i.Class(`flex items-baseline gap-2`)],[i.span([i.Class(`font-mono text-xs text-muted-foreground`)],[e]),t===void 0?i.span([],[`Unknown source`]):i.a([i.Href(t.url),i.Target(`_blank`),i.Rel(`noreferrer`),i.Class(`hover:underline`)],[t.title])]),`src/page/goal/goal.ts#anonymous~51`)}))]),`src/page/goal/goal.ts#onNonEmpty~4`)})]),i.div([i.Class(`flex flex-col gap-2 border-t p-4`)],[c===`Known`?i.button([i.Type(`button`),i.OnClick(pJ.ClickedSetMastery({conceptId:e.id,mastery:`Unknown`})),i.Class(R(`Outline`,`Medium`,`w-full`))],[L(`x`,``,i),`I don’t actually know this`]):i.button([i.Type(`button`),i.OnClick(pJ.ClickedSetMastery({conceptId:e.id,mastery:`Known`})),i.Class(R(o?`Outline`:`Secondary`,`Medium`,`w-full`))],[L(`check`,``,i),o?`Known (implied by a later concept)`:`I already know this`]),a===`Next`||a===`ToLearn`||c===`Shaky`?i.a([i.Href(oq({goalId:t.goal.id,conceptId:e.id})),i.Class(R(`Primary`,`Medium`,`w-full`))],[L(`play`,`fill-current`,i),`Start lesson`]):i.empty,i.button([i.Type(`button`),i.OnClick(pJ.ClickedToggleTarget({conceptId:e.id})),i.Class(R(`Ghost`,`Small`,`w-full`))],[L(`flag`,``,i),r.isCustomTarget&&r.targets.has(e.id)?`Remove from my goals`:r.isCustomTarget?`Add as another goal`:`Make this my goal`]),a===`ToLearn`?i.p([i.Class(`text-center text-xs text-muted-foreground`)],[`Some prerequisites are still ahead of you on the path. You can start anyway, but it will make more sense after them.`]):i.empty])]),`src/page/goal/goal.ts#conceptPanel`)},aY=(e,t,r)=>{let i=LJ(t),a=Cr(e.maybeSelectedConceptId,e=>n(gr(i.scene.conceptsById.get(e)),`src/page/goal/goal.ts#anonymous~52`));return n(r.div([r.Class(`mx-auto w-full max-w-7xl px-5 pb-8`)],[Iq(t.leeches,e=>n(pJ.ClickedConcept({conceptId:e}),`src/page/goal/goal.ts#anonymous~53`),r),r.div([r.Class(_q(`relative h-[calc(100dvh-17rem)] min-h-[420px] overflow-hidden`))],[r.div([r.Id(hJ),r.Class(`h-full overflow-auto [background-image:radial-gradient(var(--border)_1px,transparent_1px)] [background-size:22px_22px]`)],[Wq({scene:i.scene,stateOf:i.stateOf,isTarget:e=>n(i.targets.has(e),`src/page/goal/goal.ts#isTarget`),maybeSelectedId:e.maybeSelectedConceptId,zoom:e.zoom,onSelect:e=>n(pJ.ClickedConcept({conceptId:e}),`src/page/goal/goal.ts#onSelect`)},r)]),r.div([r.Class(`absolute bottom-3 left-3 flex items-center gap-1 rounded-xl border bg-popover/90 p-1 shadow-sm backdrop-blur`)],[r.button([r.Type(`button`),r.AriaLabel(`Zoom out`),r.OnClick(pJ.ClickedZoomOut()),r.Class(R(`Ghost`,`IconSmall`))],[L(`minus`,``,r)]),r.button([r.Type(`button`),r.OnClick(pJ.ClickedZoomReset()),r.Class(R(`Ghost`,`Small`,`w-14 tabular-nums`))],[`${Math.round(e.zoom*100)}%`]),r.button([r.Type(`button`),r.AriaLabel(`Zoom in`),r.OnClick(pJ.ClickedZoomIn()),r.Class(R(`Ghost`,`IconSmall`))],[L(`plus`,``,r)]),r.span([r.Class(`mx-0.5 h-5 w-px bg-border`)]),r.button([r.Type(`button`),r.AriaLabel(`Fit to screen`),r.Title(`Fit to screen`),r.OnClick(pJ.ClickedZoomFit()),r.Class(R(`Ghost`,`IconSmall`))],[L(`maximize`,``,r)])]),r.div([r.Class(`absolute top-3 left-3 rounded-xl border bg-popover/90 px-3 py-2 shadow-sm backdrop-blur`)],[Uq(r)]),w(a,{onNone:()=>n(r.empty,`src/page/goal/goal.ts#onNone~15`),onSome:e=>n(iY(e,t,i,r),`src/page/goal/goal.ts#onSome~15`)})])]),`src/page/goal/goal.ts#mapView`)},oY=(e,t)=>{let r=LJ(e);return n(t.div([t.Class(`mx-auto grid w-full max-w-7xl gap-6 px-5 pb-12 lg:grid-cols-[22rem_1fr]`)],[t.div([t.Class(`flex flex-col gap-4 lg:sticky lg:top-20 lg:self-start`)],[t.div([t.Class(_q(`flex flex-col gap-4 p-5`))],[t.div([t.Class(`flex items-center gap-2 font-semibold`)],[L(`route`,`size-4 text-primary`,t),`Shortest path to your goal`]),t.p([t.Class(`text-sm text-muted-foreground`)],[`${r.steps.length} concepts, about ${WJ(r.totalMinutes)} of focused study.`,r.skipped>0?` ${r.skipped} concepts skipped because you already know them.`:``]),t.div([t.Class(`flex flex-col gap-2 rounded-xl border border-dashed p-4`)],[t.div([t.Class(`flex items-center gap-2 text-sm font-medium`)],[L(`brain`,`size-4 text-primary`,t),`Already know some of this?`]),t.p([t.Class(`text-sm text-muted-foreground`)],[`A short adaptive quiz (usually 6–10 questions, binary-search style) finds where you are and skips everything you know.`]),t.a([t.Href(cq({goalId:e.goal.id})),t.Class(R(`Secondary`,`Small`,`self-start`))],[`Find my starting point`,L(`arrowRight`,``,t)])])])]),Ui(r.steps,{onEmpty:()=>n(t.div([t.Class(_q(`flex flex-col items-center gap-2 p-10 text-center`))],[L(`graduation`,`size-8 text-success`,t),t.p([t.Class(`font-medium`)],[`You already know everything on this map.`])]),`src/page/goal/goal.ts#onEmpty~5`),onNonEmpty:i=>n(t.ol([t.Class(`flex min-w-0 flex-col gap-2`)],T(i,(i,a)=>{let o=r.scene.conceptsById.get(i),s=r.stateOf(i)===`Next`;return n(t.keyed(`li`)(i,[t.Class(_q(CK(`flex items-center gap-3 p-2 pr-4`,s&&`border-primary/50 bg-primary/5`)))],[t.button([t.Type(`button`),t.Title(`Show on the map`),t.OnClick(pJ.ClickedShowOnMap({conceptId:i})),t.Class(`press flex min-w-0 flex-1 items-center gap-4 rounded-lg p-2 text-left hover:bg-accent/40`)],[t.span([t.Class(CK(`flex size-8 shrink-0 items-center justify-center rounded-full text-sm font-semibold tabular-nums`,s?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`))],[`${a+1}`]),t.div([t.Class(`min-w-0 flex-1`)],[t.div([t.Class(`flex items-center gap-2`)],[t.span([t.Class(`font-medium`)],[o?.title??i]),r.targets.has(i)?L(`flag`,`size-3.5 text-primary`,t):t.empty,s?t.span([t.Class(gq(`Primary`))],[`Ready to start`]):t.empty]),t.p([t.Class(`truncate text-sm text-muted-foreground`)],[o?.summary??``])]),t.span([t.Class(`shrink-0 text-xs text-muted-foreground tabular-nums`)],[`${o?.estimatedMinutes??0} min`])]),s?t.a([t.Href(oq({goalId:e.goal.id,conceptId:i})),t.Class(R(`Primary`,`Small`,`shrink-0`))],[L(`play`,`fill-current`,t),`Start`]):t.empty]),`src/page/goal/goal.ts#anonymous~54`)})),`src/page/goal/goal.ts#onNonEmpty~5`)})]),`src/page/goal/goal.ts#pathView`)},sY=(e,t)=>n(t.div([t.Class(`mx-auto flex w-full max-w-4xl flex-col gap-4 px-5 pt-6`)],[t.div([t.Class(_q(`flex items-start gap-4 border-destructive/30 p-5`))],[L(`alert`,`mt-0.5 size-5 shrink-0 text-destructive`,t),t.div([t.Class(`flex-1`)],[t.p([t.Class(`font-medium`)],[`Research didn’t finish`]),t.p([t.Class(`text-sm text-muted-foreground`)],[`The agents hit a problem or the server restarted mid-run. Retrying starts the research over.`])]),t.button([t.Type(`button`),t.OnClick(pJ.ClickedRetry()),t.Class(R(`Primary`,`Medium`))],[L(`refresh`,``,t),`Retry`])]),lJ(aJ(e.events),t)]),`src/page/goal/goal.ts#failedView`),cY=(e,t,r)=>n(r.div([r.Class(`flex flex-col gap-5`)],[QJ(e,r),gD(e.tab).pipe(vD(),yD(`Map`,()=>n(aY(e,t,r),`src/page/goal/goal.ts#anonymous~55`)),yD(`Path`,()=>n(oY(t,r),`src/page/goal/goal.ts#anonymous~56`)),yD(`Sources`,()=>n(r.div([r.Class(`mx-auto w-full max-w-4xl px-5 pb-12`)],[rJ(t.sources,r)]),`src/page/goal/goal.ts#anonymous~57`)),yD(`Research`,()=>n(lJ(aJ(e.events),r),`src/page/goal/goal.ts#anonymous~58`)),TD)]),`src/page/goal/goal.ts#readyView`),lY=e=>n(e.div([e.Class(`mx-auto flex w-full max-w-7xl flex-col gap-4 px-5 pt-10`)],[e.div([e.Class(`h-8 w-72 animate-pulse rounded-lg bg-muted`)]),e.div([e.Class(`h-4 w-[32rem] max-w-full animate-pulse rounded bg-muted`)]),e.div([e.Class(`mt-6 h-[60vh] animate-pulse rounded-xl bg-muted/60`)])]),`src/page/goal/goal.ts#loadingView`),uY=(e,t,r)=>n(r.div([],[KJ(e,t,r),t.goal.status===`Ready`?cY(e,t,r):t.goal.status===`Failed`?sY(e,r):lJ(aJ(e.events),r)]),`src/page/goal/goal.ts#detailView`),dY=hM((e,t)=>n(pO(e.detail,{onIdle:()=>n(lY(t),`src/page/goal/goal.ts#onIdle`),onLoading:()=>n(lY(t),`src/page/goal/goal.ts#onLoading`),onFailure:e=>n(t.div([t.Class(`mx-auto flex max-w-md flex-col items-center gap-4 px-5 pt-24 text-center`)],[L(`alert`,`size-8 text-muted-foreground`,t),t.p([t.Class(`font-medium`)],[e]),t.a([t.Href(iq()),t.Class(R(`Outline`))],[`Back to subjects`])]),`src/page/goal/goal.ts#onFailure`),onRefreshing:r=>n(uY(e,r,t),`src/page/goal/goal.ts#onRefreshing`),onStale:({data:r})=>n(uY(e,r,t),`src/page/goal/goal.ts#onStale`),onSuccess:r=>n(uY(e,r,t),`src/page/goal/goal.ts#onSuccess`)}),`src/page/goal/goal.ts#anonymous~59`)),fY=e=>n(w(hO(e.detail),{onNone:()=>n(`BaviTutor`,`src/page/goal/goal.ts#onNone~16`),onSome:e=>n(`${e.goal.title} · BaviTutor`,`src/page/goal/goal.ts#onSome~16`)}),`src/page/goal/goal.ts#pageTitle`),pY=fO(N($W),A),mY=rO({Idle:{},Submitting:{},Failed:{error:A}}),hY=M({draft:A,submission:mY,goals:pY.schema,maybeToday:CC(WW)}),gY=nO({UpdatedDraft:{value:A},SubmittedGoal:{},ClickedSuggestion:{prompt:A},SucceededCreateGoal:{goal:$W},FailedCreateGoal:{error:A},SucceededFetchGoals:{goals:N($W)},FailedFetchGoals:{error:A},TickedRefresh:{},SucceededFetchToday:{today:WW},FailedFetchToday:{},CompletedFocusComposer:{}}),_Y=nO({CreatedGoal:{goalId:A}}),vY=`goal-composer`,yY=[`Algebra 1, from the very basics`,`Become a backend engineer`,`How transformers and attention work`,`Music theory for guitarists`,`Japanese grammar for JLPT N5`,`Personal finance and investing`],bY=F(`FetchGoals`,{messages:[gY.SucceededFetchGoals,gY.FailedFetchGoals],execute:O(function*(){let e=yield*(yield*yK).goals.list();return n(gY.SucceededFetchGoals({goals:e}),`src/page/home.ts#anonymous`)}).pipe(Wp(e=>n(E(gY.FailedFetchGoals({error:xK(e)})),`src/page/home.ts#anonymous~2`)))}),xY=F(`FetchToday`,{messages:[gY.SucceededFetchToday,gY.FailedFetchToday],execute:O(function*(){let e=yield*(yield*yK).reviews.today();return n(gY.SucceededFetchToday({today:e}),`src/page/home.ts#anonymous~3`)}).pipe(Wp(()=>n(E(gY.FailedFetchToday()),`src/page/home.ts#anonymous~4`)))}),SY=F(`CreateGoal`,{args:{prompt:A},messages:[gY.SucceededCreateGoal,gY.FailedCreateGoal],execute:({prompt:e})=>n(O(function*(){let t=yield*(yield*yK).goals.create({payload:{prompt:e}});return n(gY.SucceededCreateGoal({goal:t}),`src/page/home.ts#anonymous~5`)}).pipe(Wp(e=>n(E(gY.FailedCreateGoal({error:xK(e)})),`src/page/home.ts#anonymous~6`))),`src/page/home.ts#execute`)}),CY=F(`FocusComposer`,{messages:[gY.CompletedFocusComposer],execute:ZF(`#${vY}`).pipe(Yp,Hp(gY.CompletedFocusComposer()))}),wY=()=>n({model:{draft:``,submission:mY.Idle(),goals:pY.Loading(),maybeToday:x()},commands:[bY(),xY(),CY()]},`src/page/home.ts#init`),TY=e=>n({model:I(e,{goals:e=>n(mr(CO(e),()=>n(e,`src/page/home.ts#anonymous~7`)),`src/page/home.ts#goals`)}),commands:[bY(),xY(),CY()]},`src/page/home.ts#informEntered`),EY=(e,t)=>{let r=rp(t);return r.length<3||e.submission._tag===`Submitting`?n({model:e},`src/page/home.ts#submit`):n({model:I(e,{draft:()=>n(r,`src/page/home.ts#draft`),submission:()=>n(mY.Submitting(),`src/page/home.ts#submission`)}),commands:[SY({prompt:r})]},`src/page/home.ts#submit`)},DY=(e,t)=>n(gY.match(t,{UpdatedDraft:({value:t})=>n({model:I(e,{draft:()=>n(t,`src/page/home.ts#draft~2`),submission:e=>n(e._tag===`Failed`?mY.Idle():e,`src/page/home.ts#submission~2`)})},`src/page/home.ts#UpdatedDraft`),SubmittedGoal:()=>n(EY(e,e.draft),`src/page/home.ts#SubmittedGoal`),ClickedSuggestion:({prompt:t})=>n(EY(e,t),`src/page/home.ts#ClickedSuggestion`),SucceededCreateGoal:({goal:t})=>n({model:I(e,{draft:()=>n(``,`src/page/home.ts#draft~3`),submission:()=>n(mY.Idle(),`src/page/home.ts#submission~3`)}),outMessage:_Y.CreatedGoal({goalId:t.id})},`src/page/home.ts#SucceededCreateGoal`),FailedCreateGoal:({error:t})=>n({model:I(e,{submission:()=>n(mY.Failed({error:t}),`src/page/home.ts#submission~4`)})},`src/page/home.ts#FailedCreateGoal`),SucceededFetchGoals:({goals:t})=>n({model:I(e,{goals:()=>n(pY.Success({data:t}),`src/page/home.ts#goals~2`)})},`src/page/home.ts#SucceededFetchGoals`),FailedFetchGoals:({error:t})=>n({model:I(e,{goals:e=>n(w(hO(e),{onNone:()=>n(pY.Failure({error:t}),`src/page/home.ts#onNone`),onSome:e=>n(pY.Stale({error:t,data:e}),`src/page/home.ts#onSome`)}),`src/page/home.ts#goals~3`)})},`src/page/home.ts#FailedFetchGoals`),TickedRefresh:()=>n({model:e,commands:[bY()]},`src/page/home.ts#TickedRefresh`),SucceededFetchToday:({today:t})=>n({model:I(e,{maybeToday:()=>n(S(t),`src/page/home.ts#maybeToday`)})},`src/page/home.ts#SucceededFetchToday`),FailedFetchToday:()=>n({model:e},`src/page/home.ts#FailedFetchToday`),CompletedFocusComposer:()=>n({model:e},`src/page/home.ts#CompletedFocusComposer`)}),`src/page/home.ts#update`),OY=e=>n(w(hO(e.goals),{onNone:()=>n(!1,`src/page/home.ts#onNone~2`),onSome:e=>n(Pa(e,e=>n(e.status===`Researching`,`src/page/home.ts#anonymous~8`)),`src/page/home.ts#onSome~2`)}),`src/page/home.ts#isAnyResearching`),kY=co(4),AY=rR()(e=>n({refreshWhileResearching:e({isPolling:RS},{modelToDependencies:e=>n({isPolling:OY(e)},`src/page/home.ts#modelToDependencies`),dependenciesToStream:({isPolling:e})=>n(e?hE(kY).pipe(LE(1),kE(()=>n(gY.TickedRefresh(),`src/page/home.ts#anonymous~10`))):yE,`src/page/home.ts#dependenciesToStream`)})},`src/page/home.ts#anonymous~9`)),jY=(e,t)=>{let r=e.submission._tag===`Submitting`,i=rp(e.draft).length>=3&&!r;return n(t.form([t.OnSubmit(gY.SubmittedGoal()),t.Class(`reveal group relative w-full rounded-2xl border bg-card p-2 shadow-lg shadow-black/[0.03] transition-shadow focus-within:border-ring/60 focus-within:shadow-xl focus-within:shadow-primary/[0.06] dark:shadow-black/30`)],[t.textarea([t.Id(vY),t.Value(e.draft),t.Rows(3),t.Placeholder(`I want to learn…`),t.AriaLabel(`What do you want to learn?`),t.Disabled(r),t.OnInput(e=>n(gY.UpdatedDraft({value:e}),`src/page/home.ts#anonymous~11`)),t.OnKeyDownPreventDefault((e,t)=>n(kr(gY.SubmittedGoal(),()=>n(e===`Enter`&&!t.shiftKey,`src/page/home.ts#anonymous~13`)),`src/page/home.ts#anonymous~12`)),t.Class(`block max-h-60 min-h-24 w-full resize-none bg-transparent px-3 pt-2 text-lg leading-relaxed outline-none placeholder:text-muted-foreground/70`)]),t.div([t.Class(`flex items-center justify-between gap-3 px-2 pb-1`)],[t.p([t.Class(`text-xs text-muted-foreground`)],[`Describe a subject, a skill, or a goal. We research sources and map every concept on the way.`]),t.button([t.Type(`submit`),t.Disabled(!i),t.AriaLabel(`Start researching`),t.Class(R(`Primary`,`Icon`,`rounded-full`))],[r?L(`refresh`,`size-4 spinner`,t):L(`arrowUp`,`size-4`,t)])])]),`src/page/home.ts#composerView`)},MY=(e,t)=>n(mY.match(e.submission,{Idle:()=>n(t.empty,`src/page/home.ts#Idle`),Submitting:()=>n(t.empty,`src/page/home.ts#Submitting`),Failed:({error:e})=>n(t.p([t.Role(`alert`),t.Class(`reveal mt-3 text-sm text-destructive`)],[e]),`src/page/home.ts#Failed`)}),`src/page/home.ts#submissionErrorView`),NY=e=>n(e.div([e.Class(`reveal stagger-2 mt-5 flex flex-wrap justify-center gap-2`)],T(yY,t=>n(e.keyed(`button`)(t,[e.Type(`button`),e.OnClick(gY.ClickedSuggestion({prompt:t})),e.Class(`press rounded-full border bg-background/60 px-3 py-1.5 text-sm text-muted-foreground backdrop-blur hover:border-primary/40 hover:text-foreground`)],[t]),`src/page/home.ts#anonymous~14`))),`src/page/home.ts#suggestionsView`),PY=(e,t)=>n(`${e} ${t}${e===1?``:`s`}`,`src/page/home.ts#plural`),FY={Learning:({dueCount:e,plan:t})=>n(e>0?`Reviews first (about ${t.reviewMinutes} min), then ${PY(t.newLessonSlots,`new lesson`)}. That fills your ${t.budgetMinutes}-minute day.`:`Nothing to review yet. ${PY(t.newLessonSlots,`new lesson`)} ${t.newLessonSlots===1?`fits`:`fit`} your ${t.budgetMinutes}-minute day.`,`src/page/home.ts#Learning`),CatchUp:({dueCount:e,plan:t})=>n(`${PY(e,`review`)} piled up (about ${t.reviewMinutes} min). New lessons pause until the backlog fits your ${t.budgetMinutes}-minute day, most important first. No penalty for being away.`,`src/page/home.ts#CatchUp`),CapReached:({plan:e})=>n(`${PY(e.lessonsToday,`new concept`)} today, your daily cap. Tomorrow's reviews will lock them in; anything below is extra.`,`src/page/home.ts#CapReached`),BudgetSpent:({dueCount:e,plan:t})=>n(e>0?`Reviews first (about ${t.reviewMinutes} min), and that's your ${t.budgetMinutes}-minute day. More lessons are a bonus, not a must.`:`You've put in your ${t.budgetMinutes} minutes today. More lessons are a bonus, not a must.`,`src/page/home.ts#BudgetSpent`),ReviewLoad:({plan:e})=>n(`Reviews over the next two weeks are close to your ${e.budgetMinutes}-minute budget, so new lessons pause to keep them from snowballing.`,`src/page/home.ts#ReviewLoad`)},IY=e=>n(FY[e.plan.mode](e),`src/page/home.ts#planMessage`),LY=(e,t)=>n(w(e.maybeToday,{onNone:()=>n(t.empty,`src/page/home.ts#onNone~3`),onSome:e=>n(e.dueCount===0&&Yi(e.nextLessons)?t.empty:t.section([t.Class(`reveal mt-16 w-full`)],[t.div([t.Class(`mb-4 flex items-center justify-between`)],[t.h2([t.Class(`text-sm font-medium text-muted-foreground`)],[`Today`]),t.div([t.Class(`flex items-center gap-3 text-xs text-muted-foreground`)],[e.streakDays>0?t.span([t.Class(gq(`Primary`))],[L(`flag`,``,t),`${e.streakDays}-day streak`]):t.empty,t.span([],[`${e.studiedCount} studied · ${e.masteredCount} mastered`])])]),t.p([t.Class(`mb-4 text-sm text-muted-foreground`)],[IY(e)]),Fq(e,t),t.div([t.Class(`grid gap-3 sm:grid-cols-2 lg:grid-cols-3`)],[e.dueCount>0?t.a([t.Href(lq()),t.Class(_q(`press flex flex-col gap-2 border-primary/40 bg-primary/6 p-5 hover:border-primary`))],[t.div([t.Class(`flex items-center gap-2 font-semibold`)],[L(`brain`,`size-4 text-primary`,t),`Review due`]),t.p([t.Class(`text-sm text-muted-foreground`)],[`${e.dueCount} concept${e.dueCount===1?``:`s`} at risk of fading · about ${e.estimatedReviewMinutes} min`])]):t.empty,...T(e.nextLessons,(r,i)=>n(t.keyed(`a`)(`${r.goalId}/${r.conceptId}`,[t.Href(oq({goalId:r.goalId,conceptId:r.conceptId})),t.Class(_q(i<e.plan.newLessonSlots?`press flex flex-col gap-2 p-5 hover:border-primary/40`:`press flex flex-col gap-2 border-dashed bg-transparent p-5 shadow-none hover:border-primary/40`))],[t.div([t.Class(`flex items-center gap-2 font-semibold`)],[L(`play`,i<e.plan.newLessonSlots?`size-3.5 fill-primary text-primary`:`size-3.5 fill-muted-foreground text-muted-foreground`,t),r.conceptTitle,i<e.plan.newLessonSlots?t.empty:t.span([t.Class(gq(`Neutral`,`ml-auto`))],[`Extra`])]),t.p([t.Class(`text-sm text-muted-foreground`)],[`Next in ${r.goalTitle} · ~${r.estimatedMinutes} min`])]),`src/page/home.ts#anonymous~15`))])]),`src/page/home.ts#onSome~3`)}),`src/page/home.ts#todayView`),RY=(e,t)=>e.status===`Researching`?n(t.span([t.Class(gq(`Primary`))],[L(`refresh`,`spinner`,t),t.span([t.Class(`shimmer-text`)],[`Researching`])]),`src/page/home.ts#statusBadge`):e.status===`Failed`?n(t.span([t.Class(gq(`Destructive`))],[L(`alert`,``,t),`Needs retry`]),`src/page/home.ts#statusBadge`):n(t.span([t.Class(gq(`Success`))],[L(`check`,``,t),`Mapped`]),`src/page/home.ts#statusBadge`),zY=(e,t)=>{let r=e.knownCount+e.masteredCount,i=e.conceptCount===0?0:Math.round(r/e.conceptCount*100);return n(t.div([t.Class(`mt-4`)],[t.div([t.Class(`mb-1.5 flex justify-between text-xs text-muted-foreground`)],[t.span([],[`${e.conceptCount} concepts`]),t.span([],[`${i}% known`])]),t.div([t.Class(`h-1.5 overflow-hidden rounded-full bg-muted`)],[t.div([t.Class(`h-full rounded-full bg-primary transition-[width] duration-700`),t.Style({width:`${i}%`})])])]),`src/page/home.ts#progressBar`)},BY=(e,t,r)=>n(r.keyed(`a`)(e.id,[r.Href(aq({goalId:e.id})),r.Class(CK(_q(`reveal press group flex flex-col p-5 hover:border-primary/40 hover:shadow-md`),`stagger-${Math.min(t,4)}`))],[r.div([r.Class(`flex items-start justify-between gap-3`)],[r.h3([r.Class(`font-semibold leading-snug tracking-tight`)],[e.title]),RY(e,r)]),r.p([r.Class(`mt-1.5 line-clamp-2 text-sm text-muted-foreground`)],[`“${e.prompt}”`]),e.status===`Ready`?zY(e,r):r.empty]),`src/page/home.ts#goalCard`),VY=(e,t)=>n(pO(e.goals,{onIdle:()=>n(t.empty,`src/page/home.ts#onIdle`),onLoading:()=>n(t.empty,`src/page/home.ts#onLoading`),onFailure:e=>n(t.p([t.Class(`text-sm text-muted-foreground`)],[`Couldn't load your subjects: ${e}`]),`src/page/home.ts#onFailure`),onRefreshing:e=>n(HY(e,t),`src/page/home.ts#onRefreshing`),onStale:({data:e})=>n(HY(e,t),`src/page/home.ts#onStale`),onSuccess:e=>n(HY(e,t),`src/page/home.ts#onSuccess`)}),`src/page/home.ts#goalsView`),HY=(e,t)=>n(Ui(e,{onEmpty:()=>n(t.empty,`src/page/home.ts#onEmpty`),onNonEmpty:e=>n(t.section([t.Class(`mt-20 w-full`)],[t.h2([t.Class(`mb-4 text-sm font-medium text-muted-foreground`)],[`Your subjects`]),t.div([t.Class(`grid gap-3 sm:grid-cols-2 lg:grid-cols-3`)],T(e,(e,r)=>n(BY(e,r,t),`src/page/home.ts#anonymous~16`)))]),`src/page/home.ts#onNonEmpty`)}),`src/page/home.ts#goalListView`),UY=hM((e,t)=>n(t.div([t.Class(`mx-auto flex w-full max-w-5xl flex-col items-center px-5 pt-[12vh] pb-24`)],[t.div([t.Class(gq(`Primary`,`reveal mb-6 px-3 py-1`))],[L(`sparkles`,``,t),`Research-backed learning paths`]),t.h1([t.Class(`reveal text-center text-4xl font-semibold tracking-tight text-balance sm:text-5xl`)],[`What do you want to learn?`]),t.p([t.Class(`reveal stagger-1 mt-4 max-w-xl text-center text-balance text-muted-foreground`)],[`Agents read curricula, roadmaps and textbooks, grade them, and build a map of every concept between you and your goal. Then we teach only what you are missing, and keep it in your memory.`]),t.div([t.Class(`mt-10 w-full max-w-2xl`)],[jY(e,t),MY(e,t)]),NY(t),LY(e,t),VY(e,t)]),`src/page/home.ts#anonymous~17`));function WY(e,t){this.v=e,this.k=t}function GY(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function KY(e){if(Array.isArray(e))return e}function qY(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function JY(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
103
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function YY(e,t){return KY(e)||qY(e,t)||XY(e,t)||JY()}function XY(e,t){if(e){if(typeof e==`string`)return GY(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?GY(e,t):void 0}}function ZY(e){var t,n;function r(t,n){try{var a=e[t](n),o=a.value,s=o instanceof WY;Promise.resolve(s?o.v:o).then(function(n){if(s){var c=t===`return`&&o.k?t:`next`;if(!o.k||n.done)return r(c,n);n=e[c](n).value}i(!!a.done,n)},function(e){r(`throw`,e)})}catch(e){i(2,e)}}function i(e,i){e===2?t.reject(i):t.resolve({value:i,done:e}),(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,i){return new Promise(function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};n?n=n.next=s:(t=n=s,r(e,i))})},typeof e.return!=`function`&&(this.return=void 0)}ZY.prototype[typeof Symbol==`function`&&Symbol.asyncIterator||`@@asyncIterator`]=function(){return this},ZY.prototype.next=function(e){return this._invoke(`next`,e)},ZY.prototype.throw=function(e){return this._invoke(`throw`,e)},ZY.prototype.return=function(e){return this._invoke(`return`,e)};var QY=Object.entries,$Y=Object.setPrototypeOf,eX=Object.isFrozen,tX=Object.getPrototypeOf,nX=Object.getOwnPropertyDescriptor,rX=Object.freeze,iX=Object.seal,aX=Object.create,oX=typeof Reflect<`u`&&Reflect,sX=oX.apply,cX=oX.construct;rX||=function(e){return e},iX||=function(e){return e},sX||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},cX||=function(e){return new e(...[...arguments].slice(1))};var lX=kX(Array.prototype.forEach);Array.prototype.indexOf;var uX=kX(Array.prototype.lastIndexOf),dX=kX(Array.prototype.pop),fX=kX(Array.prototype.push);Array.prototype.slice;var pX=kX(Array.prototype.splice),mX=Array.isArray,hX=kX(String.prototype.toLowerCase),gX=kX(String.prototype.toString),_X=kX(String.prototype.match),vX=kX(String.prototype.replace),yX=kX(String.prototype.indexOf),bX=kX(String.prototype.trim),xX=kX(Number.prototype.toString),SX=kX(Boolean.prototype.toString),CX=typeof BigInt>`u`?null:kX(BigInt.prototype.toString),wX=typeof Symbol>`u`?null:kX(Symbol.prototype.toString),TX=kX(Object.prototype.hasOwnProperty),EX=kX(Object.prototype.toString),DX=kX(RegExp.prototype.test),OX=AX(TypeError);function kX(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return sX(e,t,n)}}function AX(e){return function(){return cX(e,[...arguments])}}function jX(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:hX;if($Y&&$Y(e,null),!mX(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(eX(t)||(t[r]=e),i=e)}e[i]=!0}return e}function MX(e){for(let t=0;t<e.length;t++)TX(e,t)||(e[t]=null);return e}function NX(e){let t=aX(null);for(let r of QY(e)){var n=YY(r,2);let i=n[0],a=n[1];TX(e,i)&&(t[i]=mX(a)?MX(a):a&&typeof a==`object`&&a.constructor===Object?NX(a):a)}return t}function PX(e){switch(typeof e){case`string`:return e;case`number`:return xX(e);case`boolean`:return SX(e);case`bigint`:return CX?CX(e):`0`;case`symbol`:return wX?wX(e):`Symbol()`;case`undefined`:return EX(e);case`function`:case`object`:{if(e===null)return EX(e);let t=e,n=FX(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:EX(e)}return EX(e)}default:return EX(e)}}function FX(e,t){for(;e!==null;){let n=nX(e,t);if(n){if(n.get)return kX(n.get);if(typeof n.value==`function`)return kX(n.value)}e=tX(e)}function n(){return null}return n}function IX(e){try{return DX(e,``),!0}catch{return!1}}var LX=rX(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),RX=rX(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),zX=rX([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),BX=rX([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),VX=rX(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),HX=rX([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),UX=rX([`#text`]),WX=rX(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),GX=rX(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dominant-baseline.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.pointer-events.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-orientation.text-rendering.textlength.type.u1.u2.unicode.values.vector-effect.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),KX=rX(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),qX=rX([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),JX=iX(/{{[\w\W]*|^[\w\W]*}}/g),YX=iX(/<%[\w\W]*|^[\w\W]*%>/g),XX=iX(/\${[\w\W]*/g),ZX=iX(/^data-[\-\w.\u00B7-\uFFFF]+$/),QX=iX(/^aria-[\-\w]+$/),$X=iX(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),eZ=iX(/^(?:\w+script|data):/i),tZ=iX(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),nZ=iX(/^html$/i),rZ=iX(/^[a-z][.\w]*(-[.\w]+)+$/i),iZ=iX(/<[/\w!]/g),aZ=iX(/<[/\w]/g),oZ=iX(/<\/no(script|embed|frames)/i),sZ=iX(/\/>/i),cZ={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},lZ=[`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`],uZ=rX(jX({},lZ)),dZ=function(){let e={};return lX(lZ,t=>{e[t]=iX(RegExp(`</`+t+`(?=[\\t\\n\\f\\r />])`,`i`))}),rX(e)}(),fZ=function(){return typeof window>`u`?null:window},pZ=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},mZ=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},hZ=function(e,t,n,r){return TX(e,t)&&mX(e[t])?jX(r.base?NX(r.base):{},e[t],r.transform):n},gZ=function(e,t,n){let r=TX(e,t)?e[t]:void 0;return r&&typeof r==`object`?NX(r):n()};function _Z(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:fZ(),t=e=>_Z(e);if(t.version=`3.4.16`,t.removed=[],!e||!e.document||e.document.nodeType!==cZ.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=FX(d,`cloneNode`),p=FX(d,`remove`),m=FX(d,`removeAttributeNode`),h=FX(d,`nextSibling`),g=FX(d,`childNodes`),_=FX(d,`parentNode`),v=FX(d,`shadowRoot`),y=FX(d,`attributes`),ee=o&&o.prototype?FX(o.prototype,`nodeType`):null,te=o&&o.prototype?FX(o.prototype,`nodeName`):null,ne=o&&o.prototype?FX(o.prototype,`ownerDocument`):null,b=function(e){return ee?ee(e):e.nodeType},re=function(e){return te?te(e):e.nodeName};if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let ie,ae=``,oe,se=!1,ce=0,le=function(){if(ce>0)throw OX(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},ue=function(e){le(),ce++;try{return ie.createHTML(e)}finally{ce--}},de=function(e){le(),ce++;try{return ie.createScriptURL(e)}finally{ce--}},fe=function(){return se||=(oe=pZ(u,i),!0),oe},pe=n,me=pe.implementation,he=pe.createNodeIterator,ge=pe.createDocumentFragment,_e=pe.getElementsByTagName,ve=r.importNode,ye=mZ();t.isSupported=typeof QY==`function`&&typeof _==`function`&&me&&me.createHTMLDocument!==void 0;let be=JX,xe=YX,Se=XX,Ce=ZX,we=QX,Te=eZ,Ee=tZ,De=rZ,Oe=$X,ke=null,Ae=jX({},[...LX,...RX,...zX,...VX,...UX]),je=null,Me=jX({},[...WX,...GX,...KX,...qX]),Ne=Object.seal(aX(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Pe=null,Fe=null,Ie=Object.seal(aX(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Le=!0,Re=!0,ze=!1,Be=!0,Ve=!1,He=!0,Ue=!1,We=!1,Ge=null,Ke=null,qe=!1,Je=!1,Ye=!1,Xe=!1,Ze=!0,Qe=!1,$e=`user-content-`,et=!0,tt=!1,nt={},rt=null,it=jX({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),at=null,ot=jX({},[`audio`,`video`,`img`,`source`,`image`,`track`]),st=null,ct=jX({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),lt=`http://www.w3.org/1998/Math/MathML`,ut=`http://www.w3.org/2000/svg`,dt=`http://www.w3.org/1999/xhtml`,ft=dt,pt=!1,mt=null,ht=jX({},[lt,ut,dt],gX),gt=rX([`mi`,`mo`,`mn`,`ms`,`mtext`]),_t=jX({},gt),vt=rX([`annotation-xml`]),yt=jX({},vt),bt=jX({},[`title`,`style`,`font`,`a`,`script`]),xt=null,St=[`application/xhtml+xml`,`text/html`],Ct=null,wt=null,Tt=n.createElement(`form`),Et=function(e){return e instanceof RegExp||e instanceof Function},Dt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(wt&&wt===e)return;(!e||typeof e!=`object`)&&(e={}),e=NX(e),xt=St.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,Ct=xt===`application/xhtml+xml`?gX:hX,ke=hZ(e,`ALLOWED_TAGS`,Ae,{transform:Ct}),je=hZ(e,`ALLOWED_ATTR`,Me,{transform:Ct}),mt=hZ(e,`ALLOWED_NAMESPACES`,ht,{transform:gX}),st=hZ(e,`ADD_URI_SAFE_ATTR`,ct,{transform:Ct,base:ct}),at=hZ(e,`ADD_DATA_URI_TAGS`,ot,{transform:Ct,base:ot}),rt=hZ(e,`FORBID_CONTENTS`,it,{transform:Ct}),Pe=hZ(e,`FORBID_TAGS`,NX({}),{transform:Ct}),Fe=hZ(e,`FORBID_ATTR`,NX({}),{transform:Ct}),nt=TX(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?NX(e.USE_PROFILES):e.USE_PROFILES:!1,Le=e.ALLOW_ARIA_ATTR!==!1,Re=e.ALLOW_DATA_ATTR!==!1,ze=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Be=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Ve=e.SAFE_FOR_TEMPLATES||!1,He=e.SAFE_FOR_XML!==!1,Ue=e.WHOLE_DOCUMENT||!1,Je=e.RETURN_DOM||!1,Ye=e.RETURN_DOM_FRAGMENT||!1,Xe=e.RETURN_TRUSTED_TYPE||!1,qe=e.FORCE_BODY||!1,Ze=e.SANITIZE_DOM!==!1,Qe=e.SANITIZE_NAMED_PROPS||!1,et=e.KEEP_CONTENT!==!1,tt=e.IN_PLACE||!1,Oe=IX(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:$X,ft=typeof e.NAMESPACE==`string`?e.NAMESPACE:dt,_t=gZ(e,`MATHML_TEXT_INTEGRATION_POINTS`,()=>jX({},gt)),yt=gZ(e,`HTML_INTEGRATION_POINTS`,()=>jX({},vt));let t=gZ(e,`CUSTOM_ELEMENT_HANDLING`,()=>aX(null));if(Ne=aX(null),TX(t,`tagNameCheck`)&&Et(t.tagNameCheck)&&(Ne.tagNameCheck=t.tagNameCheck),TX(t,`attributeNameCheck`)&&Et(t.attributeNameCheck)&&(Ne.attributeNameCheck=t.attributeNameCheck),TX(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(Ne.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),iX(Ne),Ve&&(Re=!1),Ye&&(Je=!0),nt&&(ke=jX({},UX),je=aX(null),nt.html===!0&&(jX(ke,LX),jX(je,WX)),nt.svg===!0&&(jX(ke,RX),jX(je,GX),jX(je,qX)),nt.svgFilters===!0&&(jX(ke,zX),jX(je,GX),jX(je,qX)),nt.mathMl===!0&&(jX(ke,VX),jX(je,KX),jX(je,qX))),Ie.tagCheck=null,Ie.attributeCheck=null,TX(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?Ie.tagCheck=e.ADD_TAGS:mX(e.ADD_TAGS)&&(ke===Ae&&(ke=NX(ke)),jX(ke,e.ADD_TAGS,Ct))),TX(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?Ie.attributeCheck=e.ADD_ATTR:mX(e.ADD_ATTR)&&(je===Me&&(je=NX(je)),jX(je,e.ADD_ATTR,Ct))),TX(e,`ADD_FORBID_CONTENTS`)&&mX(e.ADD_FORBID_CONTENTS)&&(rt===it&&(rt=NX(rt)),jX(rt,e.ADD_FORBID_CONTENTS,Ct)),et&&(ke[`#text`]=!0),Ue&&jX(ke,[`html`,`head`,`body`]),ke.table&&(jX(ke,[`tbody`]),delete Pe.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw OX(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw OX(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=ie;ie=e.TRUSTED_TYPES_POLICY;try{ae=ue(``)}catch(e){throw ie=t,e}}else e.TRUSTED_TYPES_POLICY===null?(ie=void 0,ae=``):(ie===void 0&&(ie=fe()),ie&&typeof ae==`string`&&(ae=ue(``)));rX&&rX(e),wt=e},Ot=jX({},[...RX,...zX,...BX]),kt=jX({},[...VX,...HX]),At=function(e,t,n){return t.namespaceURI===dt?e===`svg`:t.namespaceURI===lt?e===`svg`&&(n===`annotation-xml`||_t[n]):!!Ot[e]},jt=function(e,t,n){return t.namespaceURI===dt?e===`math`:t.namespaceURI===ut?e===`math`&&yt[n]:!!kt[e]},Mt=function(e,t,n){return t.namespaceURI===ut&&!yt[n]||t.namespaceURI===lt&&!_t[n]?!1:!kt[e]&&(bt[e]||!Ot[e])},Nt=function(e){let t=_(e);(!t||!t.tagName)&&(t={namespaceURI:ft,tagName:`template`});let n=hX(e.tagName),r=hX(t.tagName);return mt[e.namespaceURI]?e.namespaceURI===ut?At(n,t,r):e.namespaceURI===lt?jt(n,t,r):e.namespaceURI===dt?Mt(n,t,r):!!(xt===`application/xhtml+xml`&&mt[e.namespaceURI]):!1},Pt=function(e){fX(t.removed,{element:e});try{_(e).removeChild(e)}catch{if(p(e),!_(e))throw OX(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},Ft=function(e,t,n){try{m(e,t)}catch{try{e.removeAttribute(n)}catch{}}},It=function(e){zt(e);let t=g(e);if(t){let e=[];lX(t,t=>{fX(e,t)}),lX(e,e=>{try{p(e)}catch{}})}let n=y(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;typeof i==`string`&&Ft(e,r,i)}},Lt=function(e,n,r){if(!r)try{r=n.getAttributeNode(e)}catch{r=null}fX(t.removed,{attribute:r||null,from:n});try{r?m(n,r):n.removeAttribute(e)}catch{try{n.removeAttribute(e)}catch{}}if(e===`is`){if(Je||Ye)try{Pt(n)}catch{}else try{n.setAttribute(e,``)}catch{}}},Rt=function(e){let t=y(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;typeof i!=`string`||je[Ct(i)]||Ft(e,r,i)}},zt=function(e){let t=[e];for(;t.length>0;){let e=t.pop();b(e)===cZ.element&&Rt(e);let n=g(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},Bt=function(e,t){return He?e===`patchsrc`||e===`for`&&t!==`label`&&t!==`output`:!1},Vt=function(e){if(!He)return;let t=[e];for(;t.length>0;){let e=t.pop(),n=b(e);if(n===cZ.processingInstruction||n===cZ.comment&&DX(aZ,e.data)){try{p(e)}catch{}continue}if(n===cZ.element){let t=e,n=Ct(re(e));try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&Bt(`for`,n)&&t.removeAttribute(`for`)}catch{}}let r=g(e);if(r)for(let e=r.length-1;e>=0;--e)t.push(r[e])}},Ht=function(e){let t=null,r=null;if(qe)e=`<remove></remove>`+e;else{let t=_X(e,/^[\r\n\t ]+/);r=t&&t[0]}xt===`application/xhtml+xml`&&ft===dt&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=ie?ue(e):e;if(ft===dt)try{t=new l().parseFromString(i,xt)}catch{}if(!t||!t.documentElement){t=me.createDocument(ft,`template`,null);try{t.documentElement.innerHTML=pt?ae:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),ft===dt?_e.call(t,Ue?`html`:`body`)[0]:Ue?t.documentElement:a},Ut=function(e){let t=ne?ne(e):e.ownerDocument;return he.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Wt=function(e){return e=vX(e,be,` `),e=vX(e,xe,` `),e=vX(e,Se,` `),e},Gt=function(e){e.normalize();let t=ne?ne(e):e.ownerDocument,n=he.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=Wt(r.data),r=n.nextNode();let i=e.querySelectorAll?.call(e,`template`);i&&lX(i,e=>{qt(e.content)&&Gt(e.content)})},Kt=function(e){let t=te?te(e):null;return typeof t!=`string`||Ct(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==y(e)||typeof e.removeAttribute!=`function`||typeof e.removeAttributeNode!=`function`||typeof e.getAttributeNode!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==ee(e)||e.childNodes!==g(e)},qt=function(e){if(!ee||typeof e!=`object`||!e)return!1;try{return ee(e)===cZ.documentFragment}catch{return!1}},Jt=function(e){if(!ee||typeof e!=`object`||!e)return!1;try{return typeof ee(e)==`number`}catch{return!1}};function Yt(e,n,r){e.length!==0&&lX(e,e=>{e.call(t,n,r,wt)})}let Xt=function(e,t){return!!(He&&e.hasChildNodes()&&!Jt(e.firstElementChild)&&DX(iZ,e.textContent)&&DX(iZ,e.innerHTML)||He&&e.namespaceURI===dt&&uZ[t]&&(Jt(e.firstElementChild)||typeof e.textContent==`string`&&DX(dZ[t],e.textContent))||e.nodeType===cZ.processingInstruction||He&&e.nodeType===cZ.comment&&DX(aZ,e.data))},Zt=function(e,t){return e instanceof RegExp?DX(e,t):e instanceof Function&&!!e(t,...[...arguments].slice(2))},Qt=function(e,t,n){if(!Pe[t]&&an(t)&&Zt(Ne.tagNameCheck,t))return!1;if(et&&!rt[t]){let t=_(e),r=g(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?f(r[a],!0):r[a];t.insertBefore(i,h(e))}}}return Pt(e),!0},$t=function(e,t,n,r){return e.length===0?t:t===n||t===r?NX(t):t},en=function(e,t){return e===t||_(e)!==null?!1:(tt&&zt(e),!0)},tn=function(e,n){if(Yt(ye.beforeSanitizeElements,e,null),en(e,n))return!0;if(Kt(e))return Pt(e),!0;let r=Ct(re(e));if(ke=$t(ye.uponSanitizeElement,ke,Ae,Ge),Yt(ye.uponSanitizeElement,e,{tagName:r,allowedTags:ke}),en(e,n))return!0;if(Xt(e,r))return Pt(e),!0;if(Pe[r]||!(Ie.tagCheck instanceof Function&&Ie.tagCheck(r))&&!ke[r]){let t=Qt(e,r,n);return t===!1&&(Yt(ye.afterSanitizeElements,e,null),en(e,n))?!0:t}if(b(e)===cZ.element&&!Nt(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&DX(oZ,e.innerHTML))return Pt(e),!0;if(Ve&&e.nodeType===cZ.text){let n=Wt(e.textContent);e.textContent!==n&&(fX(t.removed,{element:e.cloneNode()}),e.textContent=n)}return Yt(ye.afterSanitizeElements,e,null),en(e,n)},nn=function(e,t,r){if(Fe[t]||Bt(t,e)||Ze&&(t===`id`||t===`name`)&&(r in n||r in Tt))return!1;let i=je[t]||Ie.attributeCheck instanceof Function&&Ie.attributeCheck(t,e);return Re&&DX(Ce,t)||Le&&DX(we,t)?!0:i?st[t]||DX(Oe,vX(r,Ee,``))||(t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&yX(r,`data:`)===0&&at[e]||ze&&!DX(Te,vX(r,Ee,``))?!0:!r:an(e)&&Zt(Ne.tagNameCheck,e)&&Zt(Ne.attributeNameCheck,t,e)||t===`is`&&Ne.allowCustomizedBuiltInElements&&Zt(Ne.tagNameCheck,r)},rn=jX({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),an=function(e){return!rn[hX(e)]&&DX(De,e)},on=function(e,t,n,r){if(ie&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return ue(r);case`TrustedScriptURL`:return de(r)}return r},sn=function(e,t,n,r){try{return n?e.setAttributeNS(n,t,r):e.setAttribute(t,r),!Kt(e)||(Pt(e),!1)}catch{return Lt(t,e),!1}},cn=function(e,n){if(Yt(ye.beforeSanitizeAttributes,e,null),en(e,n))return;let r=e.attributes;if(!r||Kt(e))return;je=$t(ye.uponSanitizeAttribute,je,Me,Ke);let i={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:je,forceKeepAttr:void 0},a=r.length,o=Ct(e.nodeName);for(;a--;){let n=r[a],s=n.name,c=n.namespaceURI,l=n.value,u=Ct(s),d=l,f=s===`value`?d:bX(d),p=!1;if(i.attrName=u,i.attrValue=f,i.keepAttr=!0,i.forceKeepAttr=void 0,Yt(ye.uponSanitizeAttribute,e,i),f=i.attrValue,Qe&&(u===`id`||u===`name`)&&yX(f,$e)!==0&&(Lt(s,e,n),f=$e+f,p=!0),He&&DX(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,f)){Lt(s,e,n);continue}if(u===`attributename`&&_X(f,`href`)){Lt(s,e,n);continue}if(!i.forceKeepAttr){if(!i.keepAttr){Lt(s,e,n);continue}if(!Be&&DX(sZ,f)){Lt(s,e,n);continue}if(Ve&&(f=Wt(f)),!nn(o,u,f)){Lt(s,e,n);continue}f=on(o,u,c,f),f!==d&&sn(e,s,c,f)&&p&&dX(t.removed)}}Yt(ye.afterSanitizeAttributes,e,null),en(e,n)},ln=function(e){let t=null,n=Ut(e);for(Yt(ye.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(Yt(ye.uponSanitizeShadowNode,t,null),tn(t,e),cn(t,e),qt(t.content)&&ln(t.content),b(t)===cZ.element){let e=v(t);qt(e)&&(un(e),ln(e))}Yt(ye.afterSanitizeShadowDOM,e,null)},un=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){ln(e.shadow);continue}let n=e.node,r=b(n)===cZ.element,i=g(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=te?te(n):null;if(typeof e==`string`&&Ct(e)===`template`){let e=n.content;qt(e)&&t.push({node:e,shadow:null})}}if(r){let e=v(n);qt(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(pt=!e,pt&&(e=`<!-->`),typeof e!=`string`&&!Jt(e)&&(e=PX(e),typeof e!=`string`))throw OX(`dirty is not a string, aborting`);if(!t.isSupported)return e;We?(ke=Ge,je=Ke):Dt(n),(ye.uponSanitizeElement.length>0||ye.uponSanitizeAttribute.length>0)&&(ke=NX(ke)),ye.uponSanitizeAttribute.length>0&&(je=NX(je)),t.removed=[];let c=tt&&typeof e!=`string`&&Jt(e);if(c){Vt(e);let t=re(e);if(typeof t==`string`){let n=Ct(t);if(!ke[n]||Pe[n])throw It(e),OX(`root node is forbidden and cannot be sanitized in-place`)}if(Kt(e))throw It(e),OX(`root node is clobbered and cannot be sanitized in-place`);try{un(e)}catch(t){throw It(e),t}}else if(Jt(e))i=Ht(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===cZ.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),un(i);else{if(!Je&&!Ve&&!Ue&&e.indexOf(`<`)===-1)return ie&&Xe?ue(e):e;if(i=Ht(e),!i)return Je?null:Xe?ae:``}i&&qe&&Pt(i.firstChild);let l=c?e:i;try{let e=Ut(l);for(;o=e.nextNode();)tn(o,l),cn(o,l),qt(o.content)&&ln(o.content)}catch(n){throw c&&(It(e),lX(t.removed,e=>{e.element&&zt(e.element)})),n}if(c){let n=!1;if(lX(t.removed,t=>{t.element&&(t.element===e&&(n=!0),zt(t.element))}),n)throw OX(`a node selected for removal could not be safely returned; refusing to sanitize in place`);return Ve&&Gt(e),e}if(Je){if(Ve&&Gt(i),Ye)for(s=ge.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(je.shadowroot||je.shadowrootmode)&&(s=ve.call(r,s,!0)),s}let u=Ue?i.outerHTML:i.innerHTML;return Ue&&ke[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&DX(nZ,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
104
- `+u),Ve&&(u=Wt(u)),ie&&Xe?ue(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Dt(e),We=!0,Ge=ke,Ke=je},t.clearConfig=function(){wt=null,We=!1,Ge=null,Ke=null,ie=oe,ae=``},t.isValidAttribute=function(e,t,n){wt||Dt({});let r=Ct(e),i=Ct(t);return nn(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&TX(ye,e)&&fX(ye[e],t)},t.removeHook=function(e,t){if(TX(ye,e)){if(t!==void 0){let n=uX(ye[e],t);return n===-1?void 0:pX(ye[e],n,1)[0]}return dX(ye[e])}},t.removeHooks=function(e){TX(ye,e)&&(ye[e]=[])},t.removeAllHooks=function(){ye=mZ()},t}var vZ=_Z(),z=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}},yZ=/([A-Z])/g,bZ=e=>e.replace(yZ,`-$1`).toLowerCase(),xZ={"&":`&amp;`,">":`&gt;`,"<":`&lt;`,'"':`&quot;`,"'":`&#x27;`},SZ=/[&><"']/g,CZ=e=>String(e).replace(SZ,e=>xZ[e]),wZ=e=>e.type===`ordgroup`||e.type===`color`?e.body.length===1?wZ(e.body[0]):e:e.type===`font`?wZ(e.body):e,TZ=new Set([`mathord`,`textord`,`atom`]),EZ=e=>TZ.has(wZ(e).type),DZ=e=>{var t=/^[\x00-\x20]*([^\\/#?]*?)(:|&#0*58|&#x0*3a|&colon)/i.exec(e);return t?t[2]!==`:`||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():`_relative`},OZ={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 kZ(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 AZ(e){return Object.prototype.hasOwnProperty.call(e,`default`)&&e.default!==void 0?e.default:kZ(Array.isArray(e.type)?e.type[0]:e.type)}function jZ(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?AZ(r):a?a(i):i}var MZ=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(OZ)){var n=OZ[t];n&&jZ(this,t,e,n)}}isTrusted(e){if(`url`in e&&e.url&&!e.protocol){var t=DZ(e.url);if(t==null)return!1;e.protocol=t}return!!(typeof this.trust==`function`?this.trust(e):this.trust)}},NZ=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 HZ[UZ[this.id]]}sub(){return HZ[WZ[this.id]]}fracNum(){return HZ[GZ[this.id]]}fracDen(){return HZ[KZ[this.id]]}cramp(){return HZ[qZ[this.id]]}text(){return HZ[JZ[this.id]]}isTight(){return this.size>=2}},PZ=0,FZ=1,IZ=2,LZ=3,RZ=4,zZ=5,BZ=6,VZ=7,HZ=[new NZ(PZ,0,!1),new NZ(FZ,0,!0),new NZ(IZ,1,!1),new NZ(LZ,1,!0),new NZ(RZ,2,!1),new NZ(zZ,2,!0),new NZ(BZ,3,!1),new NZ(VZ,3,!0)],UZ=[RZ,zZ,RZ,zZ,BZ,VZ,BZ,VZ],WZ=[zZ,zZ,zZ,zZ,VZ,VZ,VZ,VZ],GZ=[IZ,LZ,RZ,zZ,BZ,VZ,BZ,VZ],KZ=[LZ,LZ,zZ,zZ,VZ,VZ,VZ,VZ],qZ=[FZ,FZ,LZ,LZ,zZ,zZ,VZ,VZ],JZ=[PZ,FZ,IZ,LZ,IZ,LZ,IZ,LZ],YZ={DISPLAY:HZ[PZ],TEXT:HZ[IZ],SCRIPT:HZ[RZ],SCRIPTSCRIPT:HZ[BZ]},XZ=[{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 ZZ(e){for(var t=0;t<XZ.length;t++)for(var n=XZ[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 QZ=[];XZ.forEach(e=>e.blocks.forEach(e=>QZ.push(...e)));function $Z(e){for(var t=0;t<QZ.length;t+=2)if(e>=QZ[t]&&e<=QZ[t+1])return!0;return!1}var eQ=e=>e+` `+e,tQ=80,nQ=function(e,t){return`M95,`+(622+e+t)+`
105
- c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14
106
- c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54
107
- 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
108
- s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429
109
- c69,-144,104.5,-217.7,106.5,-221
110
- l`+e/2.075+` -`+e+`
111
- c5.3,-9.3,12,-14,20,-14
112
- H400000v`+(40+e)+`H845.2724
113
- s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7
114
- c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z
115
- M`+(834+e)+` `+t+`h400000v`+(40+e)+`h-400000z`},rQ=function(e,t){return`M263,`+(601+e+t)+`c0.7,0,18,39.7,52,119
116
- c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120
117
- c340,-704.7,510.7,-1060.3,512,-1067
118
- l`+e/2.084+` -`+e+`
119
- c4.7,-7.3,11,-11,19,-11
120
- H40000v`+(40+e)+`H1012.3
121
- s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232
122
- c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1
123
- s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26
124
- c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z
125
- M`+(1001+e)+` `+t+`h400000v`+(40+e)+`h-400000z`},iQ=function(e,t){return`M983 `+(10+e+t)+`
126
- l`+e/3.13+` -`+e+`
127
- c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+`
128
- H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7
129
- s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744
130
- c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30
131
- c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722
132
- c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5
133
- c53.7,-170.3,84.5,-266.8,92.5,-289.5z
134
- M`+(1001+e)+` `+t+`h400000v`+(40+e)+`h-400000z`},aQ=function(e,t){return`M424,`+(2398+e+t)+`
135
- c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514
136
- c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20
137
- s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121
138
- s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081
139
- l`+e/4.223+` -`+e+`c4,-6.7,10,-10,18,-10 H400000
140
- v`+(40+e)+`H1014.6
141
- s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185
142
- c-2,6,-10,9,-24,9
143
- c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+` `+t+`
144
- h400000v`+(40+e)+`h-400000z`},oQ=function(e,t){return`M473,`+(2713+e+t)+`
145
- c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+` -`+e+`
146
- c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7
147
- s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9
148
- c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200
149
- c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26
150
- s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,
151
- 606zM`+(1001+e)+` `+t+`h400000v`+(40+e)+`H1017.7z`},sQ=function(e){var t=e/2;return`M400000 `+e+` H0 L`+t+` 0 l65 45 L145 `+(e-80)+` H400000z`},cQ=function(e,t,n){var r=n-54-t-e;return`M702 `+(e+t)+`H400000`+(40+e)+`
152
- H742v`+r+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1
153
- h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170
154
- c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667
155
- 219 661 l218 661zM702 `+t+`H400000v`+(40+e)+`H742z`},lQ=function(e,t,n){t=1e3*t;var r=``;switch(e){case`sqrtMain`:r=nQ(t,tQ);break;case`sqrtSize1`:r=rQ(t,tQ);break;case`sqrtSize2`:r=iQ(t,tQ);break;case`sqrtSize3`:r=aQ(t,tQ);break;case`sqrtSize4`:r=oQ(t,tQ);break;case`sqrtTall`:r=cQ(t,tQ,n)}return r},uQ=function(e,t){switch(e){case`⎜`:return eQ(`M291 0 H417 V`+t+` H291z`);case`∣`:return eQ(`M145 0 H188 V`+t+` H145z`);case`∥`:return eQ(`M145 0 H188 V`+t+` H145z`)+eQ(`M367 0 H410 V`+t+` H367z`);case`⎟`:return eQ(`M457 0 H583 V`+t+` H457z`);case`⎢`:return eQ(`M319 0 H403 V`+t+` H319z`);case`⎥`:return eQ(`M263 0 H347 V`+t+` H263z`);case`⎪`:return eQ(`M384 0 H504 V`+t+` H384z`);case`⏐`:return eQ(`M312 0 H355 V`+t+` H312z`);case`‖`:return eQ(`M257 0 H300 V`+t+` H257z`)+eQ(`M478 0 H521 V`+t+` H478z`);default:return``}},dQ={doubleleftarrow:`M262 157
156
- l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3
157
- 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28
158
- 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5
159
- c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5
160
- 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87
161
- -86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7
162
- -2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z
163
- m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l
164
- -10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5
165
- 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88
166
- -33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68
167
- -17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18
168
- -13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782
169
- c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3
170
- -107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120
171
- 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8
172
- -5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247
173
- c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208
174
- 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3
175
- 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202
176
- l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117
177
- -45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7
178
- 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13
179
- 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688
180
- 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7
181
- -331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80
182
- H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0
183
- 435 0h399565z`,leftgroupunder:`M400000 262
184
- H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219
185
- 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3
186
- -3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5
187
- -18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7
188
- -196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5
189
- 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3
190
- -4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7
191
- -10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z
192
- m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333
193
- 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5
194
- 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667
195
- -152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12
196
- 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7
197
- -2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0
198
- v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5
199
- -83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3
200
- -68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21
201
- 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:eQ(`M40 281 V428 H0 V94 H40 V241 H400000 v40z`),leftbracketunder:eQ(`M0 0 h120 V290 H399995 v120 H0z`),leftbracketover:eQ(`M0 440 h120 V150 H399995 v-120 H0z`),leftmapsto:eQ(`M40 281 V448H0V74H40V241H400000v40z`),leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23
202
- -.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8
203
- c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3
204
- 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:eQ(`M0 50 h400000 v40H0z m0 194h40000v40H0z`),midbrace:`M200428 334
205
- c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14
206
- -53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7
207
- 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11
208
- 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214
209
- c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14
210
- 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3
211
- 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0
212
- -5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6
213
- -320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z
214
- m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8
215
- 60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8
216
- -451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z
217
- m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2
218
- c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6
219
- -480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z
220
- m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0
221
- 85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8
222
- -707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z
223
- m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1
224
- c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128
225
- -16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20
226
- 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7
227
- 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85
228
- -40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5
229
- -12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67
230
- 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l
231
- -6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5
232
- s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1
233
- c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3
234
- 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237
235
- -174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0
236
- 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18
237
- 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3
238
- -3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2
239
- -10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58
240
- 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11
241
- -18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7
242
- 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z
243
- m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8
244
- 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5
245
- -7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95
246
- -27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8
247
- 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3
248
- 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3
249
- -64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z
250
- m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3
251
- 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0
252
- -13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21
253
- 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:eQ(`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`),rightbracketunder:eQ(`M399995 0 h-120 V290 H0 v120 H400000z`),rightbracketover:eQ(`M399995 440 h-120 V150 H0 v-120 H399995z`),rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23
254
- 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32
255
- -52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142
256
- -167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40
257
- 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69
258
- -70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3
259
- -40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19
260
- -37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101
261
- 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167
262
- c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3
263
- 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42
264
- 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333
265
- -19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70
266
- 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7
267
- -2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0
268
- 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0
269
- 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128
270
- -68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418
271
- -8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9
272
- 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114
273
- c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751
274
- 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457
275
- -11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0
276
- 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697
277
- 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696
278
- -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345
279
- -11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409
280
- 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9
281
- 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409
282
- -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
283
- 3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
284
- 10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
285
- -1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
286
- -7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
287
- H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
288
- c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22
289
- c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10
290
- -11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10
291
- -11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10
292
- -11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,
293
- -5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
294
- -11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
295
- -11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
296
- -11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202
297
- c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5
298
- c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130
299
- s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47
300
- 121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6
301
- s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11
302
- c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z
303
- M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32
304
- -27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0
305
- 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39
306
- -84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5
307
- -119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5
308
- -12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67
309
- 151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11
310
- c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17
311
- c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21
312
- c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40
313
- c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z
314
- M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0
315
- c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,
316
- -231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6
317
- c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z
318
- M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11
319
- c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,
320
- 1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,
321
- -152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z
322
- M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0
323
- c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,
324
- -231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6
325
- c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z
326
- M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},fQ=function(e,t){switch(e){case`lbrack`:return`M403 1759 V84 H666 V0 H319 V1759 v`+t+` v1759 v84 h347 v-84
327
- H403z M403 1759 V0 H319 V1759 v`+t+` v1759 v84 h84z`;case`rbrack`:return`M347 1759 V0 H0 V84 H263 V1759 v`+t+` v1759 H0 v84 H347z
328
- M347 1759 V0 H263 V1759 v`+t+` v1759 h84z`;case`vert`:return`M145 15 v585 v`+t+` v585 c2.667,10,9.667,15,21,15
329
- c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15
330
- c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+t+` v585 h43z`;case`doublevert`:return`M145 15 v585 v`+t+` v585 c2.667,10,9.667,15,21,15
331
- c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15
332
- c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+t+` v585 h43z
333
- M367 15 v585 v`+t+` v585 c2.667,10,9.667,15,21,15
334
- c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15
335
- c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+t+` v585 h43z`;case`lfloor`:return`M319 602 V0 H403 V602 v`+t+` v1715 h263 v84 H319z
336
- MM319 602 V0 H403 V602 v`+t+` v1715 H319z`;case`rfloor`:return`M319 602 V0 H403 V602 v`+t+` v1799 H0 v-84 H319z
337
- MM319 602 V0 H403 V602 v`+t+` v1715 H319z`;case`lceil`:return`M403 1759 V84 H666 V0 H319 V1759 v`+t+` v602 h84z
338
- M403 1759 V0 H319 V1759 v`+t+` v602 h84z`;case`rceil`:return`M347 1759 V0 H0 V84 H263 V1759 v`+t+` v602 h84z
339
- M347 1759 V0 h-84 V1759 v`+t+` v602 h84z`;case`lparen`:return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1
340
- c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,
341
- -36,557 l0,`+(t+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,
342
- 949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9
343
- c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,
344
- -544.7,-112.5,-882c-2,-104,-3,-167,-3,-189
345
- l0,-`+(t+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,
346
- -210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case`rparen`:return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,
347
- 63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5
348
- c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(t+9)+`
349
- c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664
350
- 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,11
351
- 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
352
- c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558
353
- l0,-`+(t+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,
354
- -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 pQ(e){return`toText`in e}var mQ=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(pQ(e))return e.toText();throw Error(`Expected MathDomNode with toText, got `+e.constructor.name)}).join(``)}},hQ={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},gQ={ex:!0,em:!0,mu:!0},_Q=function(e){return typeof e!=`string`&&(e=e.unit),e in hQ||e in gQ||e===`ex`},vQ=function(e,t){var n;if(e.unit in hQ)n=hQ[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 z(`Invalid unit: '`+e.unit+`'`);r!==t&&(n*=r.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*n,t.maxSize)},B=function(e){return+e.toFixed(4)+`em`},yQ=function(e){return e.filter(e=>e).join(` `)},bQ=function(e){var t=``;for(var n of Object.keys(e)){var r=e[n];r!==void 0&&(t+=bZ(n)+`:`+r+`;`)}return t},xQ=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)}},SQ=function(e){var t=document.createElement(e);t.className=yQ(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},CQ=/[\s"'>/=\x00-\x1f]/,wQ=function(e){var t=`<`+e;this.classes.length&&(t+=` class="`+CZ(yQ(this.classes))+`"`);var n=bQ(this.style);n&&(t+=` style="`+CZ(n)+`"`);for(var r of Object.keys(this.attributes)){if(CQ.test(r))throw new z(`Invalid attribute name '`+r+`'`);t+=` `+r+`="`+CZ(this.attributes[r])+`"`}t+=`>`;for(var i=0;i<this.children.length;i++)t+=this.children[i].toMarkup();return t+=`</`+e+`>`,t},TQ=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,xQ.call(this,e,n,r),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return this.classes.includes(e)}toNode(){return SQ.call(this,`span`)}toMarkup(){return wQ.call(this,`span`)}},EQ=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,xQ.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 SQ.call(this,`a`)}toMarkup(){return wQ.call(this,`a`)}},DQ=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="`+CZ(this.src)+`"`+(` alt="`+CZ(this.alt)+`"`),t=bQ(this.style);return t&&(e+=` style="`+CZ(t)+`"`),e+=`'/>`,e}},OQ={î:`ı̂`,ï:`ı̈`,í:`ı́`,ì:`ı̀`},kQ=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=ZZ(this.text.charCodeAt(0));c&&this.classes.push(c+`_fallback`),/[îïíì]/.test(this.text)&&(this.text=OQ[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=B(this.italic)),this.classes.length>0&&(t||=document.createElement(`span`),t.className=yQ(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+=CZ(yQ(this.classes)),t+=`"`);var n=``;this.italic>0&&(n+=`margin-right:`+B(this.italic)+`;`),n+=bQ(this.style),n&&(e=!0,t+=` style="`+CZ(n)+`"`);var r=CZ(this.text);return e?(t+=`>`,t+=r,t+=`</span>`,t):r}},AQ=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+`="`+CZ(this.attributes[t])+`"`;e+=`>`;for(var n=0;n<this.children.length;n++)e+=this.children[n].toMarkup();return e+=`</svg>`,e}},jQ=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`,dQ[this.pathName]),e}toMarkup(){return this.alternate?`<path d="`+CZ(this.alternate)+`"/>`:`<path d="`+CZ(dQ[this.pathName])+`"/>`}},MQ=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+`="`+CZ(this.attributes[t])+`"`;return e+=`/>`,e}};function NQ(e){if(e instanceof kQ)return e;throw Error(`Expected symbolNode but got `+String(e)+`.`)}function PQ(e){if(e instanceof TQ)return e;throw Error(`Expected span<HtmlDomNode> but got `+String(e)+`.`)}var FQ=e=>e instanceof TQ||e instanceof EQ||e instanceof mQ,IQ={"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]}},LQ={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]},RQ={Å:`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 zQ(e,t){IQ[e]=t}function BQ(e,t,n){if(!IQ[t])throw Error(`Font metrics not found for font: `+t+`.`);var r=e.charCodeAt(0),i=IQ[t][r];if(!i&&e[0]in RQ&&(r=RQ[e[0]].charCodeAt(0),i=IQ[t][r]),!i&&n===`text`&&$Z(r)&&(i=IQ[t][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}var VQ={};function HQ(e){var t=e>=5?0:e>=3?1:2;if(!VQ[t]){var n=VQ[t]={cssEmPerMu:LQ.quad[t]/18};for(var r of Object.keys(LQ))n[r]=LQ[r][t]}return VQ[t]}var UQ={math:{},text:{}};function V(e,t,n,r,i,a){UQ[e][i]={font:t,group:n,replace:r},a&&r&&(UQ[e][r]=UQ[e][i])}var H=`math`,U=`text`,W=`main`,G=`ams`,WQ=`accent-token`,K=`bin`,GQ=`close`,KQ=`inner`,qQ=`mathord`,JQ=`op-token`,YQ=`open`,XQ=`punct`,q=`rel`,ZQ=`spacing`,J=`textord`;V(H,W,q,`≡`,`\\equiv`,!0),V(H,W,q,`≺`,`\\prec`,!0),V(H,W,q,`≻`,`\\succ`,!0),V(H,W,q,`∼`,`\\sim`,!0),V(H,W,q,`⊥`,`\\perp`),V(H,W,q,`⪯`,`\\preceq`,!0),V(H,W,q,`⪰`,`\\succeq`,!0),V(H,W,q,`≃`,`\\simeq`,!0),V(H,W,q,`∣`,`\\mid`,!0),V(H,W,q,`≪`,`\\ll`,!0),V(H,W,q,`≫`,`\\gg`,!0),V(H,W,q,`≍`,`\\asymp`,!0),V(H,W,q,`∥`,`\\parallel`),V(H,W,q,`⋈`,`\\bowtie`,!0),V(H,W,q,`⌣`,`\\smile`,!0),V(H,W,q,`⊑`,`\\sqsubseteq`,!0),V(H,W,q,`⊒`,`\\sqsupseteq`,!0),V(H,W,q,`≐`,`\\doteq`,!0),V(H,W,q,`⌢`,`\\frown`,!0),V(H,W,q,`∋`,`\\ni`,!0),V(H,W,q,`∝`,`\\propto`,!0),V(H,W,q,`⊢`,`\\vdash`,!0),V(H,W,q,`⊣`,`\\dashv`,!0),V(H,W,q,`∋`,`\\owns`),V(H,W,XQ,`.`,`\\ldotp`),V(H,W,XQ,`⋅`,`\\cdotp`),V(H,W,XQ,`⋅`,`·`),V(U,W,J,`⋅`,`·`),V(H,W,J,`#`,`\\#`),V(U,W,J,`#`,`\\#`),V(H,W,J,`&`,`\\&`),V(U,W,J,`&`,`\\&`),V(H,W,J,`ℵ`,`\\aleph`,!0),V(H,W,J,`∀`,`\\forall`,!0),V(H,W,J,`ℏ`,`\\hbar`,!0),V(H,W,J,`∃`,`\\exists`,!0),V(H,W,J,`∇`,`\\nabla`,!0),V(H,W,J,`♭`,`\\flat`,!0),V(H,W,J,`ℓ`,`\\ell`,!0),V(H,W,J,`♮`,`\\natural`,!0),V(H,W,J,`♣`,`\\clubsuit`,!0),V(H,W,J,`℘`,`\\wp`,!0),V(H,W,J,`♯`,`\\sharp`,!0),V(H,W,J,`♢`,`\\diamondsuit`,!0),V(H,W,J,`ℜ`,`\\Re`,!0),V(H,W,J,`♡`,`\\heartsuit`,!0),V(H,W,J,`ℑ`,`\\Im`,!0),V(H,W,J,`♠`,`\\spadesuit`,!0),V(H,W,J,`§`,`\\S`,!0),V(U,W,J,`§`,`\\S`),V(H,W,J,`¶`,`\\P`,!0),V(U,W,J,`¶`,`\\P`),V(H,W,J,`†`,`\\dag`),V(U,W,J,`†`,`\\dag`),V(U,W,J,`†`,`\\textdagger`),V(H,W,J,`‡`,`\\ddag`),V(U,W,J,`‡`,`\\ddag`),V(U,W,J,`‡`,`\\textdaggerdbl`),V(H,W,GQ,`⎱`,`\\rmoustache`,!0),V(H,W,YQ,`⎰`,`\\lmoustache`,!0),V(H,W,GQ,`⟯`,`\\rgroup`,!0),V(H,W,YQ,`⟮`,`\\lgroup`,!0),V(H,W,K,`∓`,`\\mp`,!0),V(H,W,K,`⊖`,`\\ominus`,!0),V(H,W,K,`⊎`,`\\uplus`,!0),V(H,W,K,`⊓`,`\\sqcap`,!0),V(H,W,K,`∗`,`\\ast`),V(H,W,K,`⊔`,`\\sqcup`,!0),V(H,W,K,`◯`,`\\bigcirc`,!0),V(H,W,K,`∙`,`\\bullet`,!0),V(H,W,K,`‡`,`\\ddagger`),V(H,W,K,`≀`,`\\wr`,!0),V(H,W,K,`⨿`,`\\amalg`),V(H,W,K,`&`,`\\And`),V(H,W,q,`⟵`,`\\longleftarrow`,!0),V(H,W,q,`⇐`,`\\Leftarrow`,!0),V(H,W,q,`⟸`,`\\Longleftarrow`,!0),V(H,W,q,`⟶`,`\\longrightarrow`,!0),V(H,W,q,`⇒`,`\\Rightarrow`,!0),V(H,W,q,`⟹`,`\\Longrightarrow`,!0),V(H,W,q,`↔`,`\\leftrightarrow`,!0),V(H,W,q,`⟷`,`\\longleftrightarrow`,!0),V(H,W,q,`⇔`,`\\Leftrightarrow`,!0),V(H,W,q,`⟺`,`\\Longleftrightarrow`,!0),V(H,W,q,`↦`,`\\mapsto`,!0),V(H,W,q,`⟼`,`\\longmapsto`,!0),V(H,W,q,`↗`,`\\nearrow`,!0),V(H,W,q,`↩`,`\\hookleftarrow`,!0),V(H,W,q,`↪`,`\\hookrightarrow`,!0),V(H,W,q,`↘`,`\\searrow`,!0),V(H,W,q,`↼`,`\\leftharpoonup`,!0),V(H,W,q,`⇀`,`\\rightharpoonup`,!0),V(H,W,q,`↙`,`\\swarrow`,!0),V(H,W,q,`↽`,`\\leftharpoondown`,!0),V(H,W,q,`⇁`,`\\rightharpoondown`,!0),V(H,W,q,`↖`,`\\nwarrow`,!0),V(H,W,q,`⇌`,`\\rightleftharpoons`,!0),V(H,G,q,`≮`,`\\nless`,!0),V(H,G,q,``,`\\@nleqslant`),V(H,G,q,``,`\\@nleqq`),V(H,G,q,`⪇`,`\\lneq`,!0),V(H,G,q,`≨`,`\\lneqq`,!0),V(H,G,q,``,`\\@lvertneqq`),V(H,G,q,`⋦`,`\\lnsim`,!0),V(H,G,q,`⪉`,`\\lnapprox`,!0),V(H,G,q,`⊀`,`\\nprec`,!0),V(H,G,q,`⋠`,`\\npreceq`,!0),V(H,G,q,`⋨`,`\\precnsim`,!0),V(H,G,q,`⪹`,`\\precnapprox`,!0),V(H,G,q,`≁`,`\\nsim`,!0),V(H,G,q,``,`\\@nshortmid`),V(H,G,q,`∤`,`\\nmid`,!0),V(H,G,q,`⊬`,`\\nvdash`,!0),V(H,G,q,`⊭`,`\\nvDash`,!0),V(H,G,q,`⋪`,`\\ntriangleleft`),V(H,G,q,`⋬`,`\\ntrianglelefteq`,!0),V(H,G,q,`⊊`,`\\subsetneq`,!0),V(H,G,q,``,`\\@varsubsetneq`),V(H,G,q,`⫋`,`\\subsetneqq`,!0),V(H,G,q,``,`\\@varsubsetneqq`),V(H,G,q,`≯`,`\\ngtr`,!0),V(H,G,q,``,`\\@ngeqslant`),V(H,G,q,``,`\\@ngeqq`),V(H,G,q,`⪈`,`\\gneq`,!0),V(H,G,q,`≩`,`\\gneqq`,!0),V(H,G,q,``,`\\@gvertneqq`),V(H,G,q,`⋧`,`\\gnsim`,!0),V(H,G,q,`⪊`,`\\gnapprox`,!0),V(H,G,q,`⊁`,`\\nsucc`,!0),V(H,G,q,`⋡`,`\\nsucceq`,!0),V(H,G,q,`⋩`,`\\succnsim`,!0),V(H,G,q,`⪺`,`\\succnapprox`,!0),V(H,G,q,`≆`,`\\ncong`,!0),V(H,G,q,``,`\\@nshortparallel`),V(H,G,q,`∦`,`\\nparallel`,!0),V(H,G,q,`⊯`,`\\nVDash`,!0),V(H,G,q,`⋫`,`\\ntriangleright`),V(H,G,q,`⋭`,`\\ntrianglerighteq`,!0),V(H,G,q,``,`\\@nsupseteqq`),V(H,G,q,`⊋`,`\\supsetneq`,!0),V(H,G,q,``,`\\@varsupsetneq`),V(H,G,q,`⫌`,`\\supsetneqq`,!0),V(H,G,q,``,`\\@varsupsetneqq`),V(H,G,q,`⊮`,`\\nVdash`,!0),V(H,G,q,`⪵`,`\\precneqq`,!0),V(H,G,q,`⪶`,`\\succneqq`,!0),V(H,G,q,``,`\\@nsubseteqq`),V(H,G,K,`⊴`,`\\unlhd`),V(H,G,K,`⊵`,`\\unrhd`),V(H,G,q,`↚`,`\\nleftarrow`,!0),V(H,G,q,`↛`,`\\nrightarrow`,!0),V(H,G,q,`⇍`,`\\nLeftarrow`,!0),V(H,G,q,`⇏`,`\\nRightarrow`,!0),V(H,G,q,`↮`,`\\nleftrightarrow`,!0),V(H,G,q,`⇎`,`\\nLeftrightarrow`,!0),V(H,G,q,`△`,`\\vartriangle`),V(H,G,J,`ℏ`,`\\hslash`),V(H,G,J,`▽`,`\\triangledown`),V(H,G,J,`◊`,`\\lozenge`),V(H,G,J,`Ⓢ`,`\\circledS`),V(H,G,J,`®`,`\\circledR`),V(U,G,J,`®`,`\\circledR`),V(H,G,J,`∡`,`\\measuredangle`,!0),V(H,G,J,`∄`,`\\nexists`),V(H,G,J,`℧`,`\\mho`),V(H,G,J,`Ⅎ`,`\\Finv`,!0),V(H,G,J,`⅁`,`\\Game`,!0),V(H,G,J,`‵`,`\\backprime`),V(H,G,J,`▲`,`\\blacktriangle`),V(H,G,J,`▼`,`\\blacktriangledown`),V(H,G,J,`■`,`\\blacksquare`),V(H,G,J,`⧫`,`\\blacklozenge`),V(H,G,J,`★`,`\\bigstar`),V(H,G,J,`∢`,`\\sphericalangle`,!0),V(H,G,J,`∁`,`\\complement`,!0),V(H,G,J,`ð`,`\\eth`,!0),V(U,W,J,`ð`,`ð`),V(H,G,J,`╱`,`\\diagup`),V(H,G,J,`╲`,`\\diagdown`),V(H,G,J,`□`,`\\square`),V(H,G,J,`□`,`\\Box`),V(H,G,J,`◊`,`\\Diamond`),V(H,G,J,`¥`,`\\yen`,!0),V(U,G,J,`¥`,`\\yen`,!0),V(H,G,J,`✓`,`\\checkmark`,!0),V(U,G,J,`✓`,`\\checkmark`),V(H,G,J,`ℶ`,`\\beth`,!0),V(H,G,J,`ℸ`,`\\daleth`,!0),V(H,G,J,`ℷ`,`\\gimel`,!0),V(H,G,J,`ϝ`,`\\digamma`,!0),V(H,G,J,`ϰ`,`\\varkappa`),V(H,G,YQ,`┌`,`\\@ulcorner`,!0),V(H,G,GQ,`┐`,`\\@urcorner`,!0),V(H,G,YQ,`└`,`\\@llcorner`,!0),V(H,G,GQ,`┘`,`\\@lrcorner`,!0),V(H,G,q,`≦`,`\\leqq`,!0),V(H,G,q,`⩽`,`\\leqslant`,!0),V(H,G,q,`⪕`,`\\eqslantless`,!0),V(H,G,q,`≲`,`\\lesssim`,!0),V(H,G,q,`⪅`,`\\lessapprox`,!0),V(H,G,q,`≊`,`\\approxeq`,!0),V(H,G,K,`⋖`,`\\lessdot`),V(H,G,q,`⋘`,`\\lll`,!0),V(H,G,q,`≶`,`\\lessgtr`,!0),V(H,G,q,`⋚`,`\\lesseqgtr`,!0),V(H,G,q,`⪋`,`\\lesseqqgtr`,!0),V(H,G,q,`≑`,`\\doteqdot`),V(H,G,q,`≓`,`\\risingdotseq`,!0),V(H,G,q,`≒`,`\\fallingdotseq`,!0),V(H,G,q,`∽`,`\\backsim`,!0),V(H,G,q,`⋍`,`\\backsimeq`,!0),V(H,G,q,`⫅`,`\\subseteqq`,!0),V(H,G,q,`⋐`,`\\Subset`,!0),V(H,G,q,`⊏`,`\\sqsubset`,!0),V(H,G,q,`≼`,`\\preccurlyeq`,!0),V(H,G,q,`⋞`,`\\curlyeqprec`,!0),V(H,G,q,`≾`,`\\precsim`,!0),V(H,G,q,`⪷`,`\\precapprox`,!0),V(H,G,q,`⊲`,`\\vartriangleleft`),V(H,G,q,`⊴`,`\\trianglelefteq`),V(H,G,q,`⊨`,`\\vDash`,!0),V(H,G,q,`⊪`,`\\Vvdash`,!0),V(H,G,q,`⌣`,`\\smallsmile`),V(H,G,q,`⌢`,`\\smallfrown`),V(H,G,q,`≏`,`\\bumpeq`,!0),V(H,G,q,`≎`,`\\Bumpeq`,!0),V(H,G,q,`≧`,`\\geqq`,!0),V(H,G,q,`⩾`,`\\geqslant`,!0),V(H,G,q,`⪖`,`\\eqslantgtr`,!0),V(H,G,q,`≳`,`\\gtrsim`,!0),V(H,G,q,`⪆`,`\\gtrapprox`,!0),V(H,G,K,`⋗`,`\\gtrdot`),V(H,G,q,`⋙`,`\\ggg`,!0),V(H,G,q,`≷`,`\\gtrless`,!0),V(H,G,q,`⋛`,`\\gtreqless`,!0),V(H,G,q,`⪌`,`\\gtreqqless`,!0),V(H,G,q,`≖`,`\\eqcirc`,!0),V(H,G,q,`≗`,`\\circeq`,!0),V(H,G,q,`≜`,`\\triangleq`,!0),V(H,G,q,`∼`,`\\thicksim`),V(H,G,q,`≈`,`\\thickapprox`),V(H,G,q,`⫆`,`\\supseteqq`,!0),V(H,G,q,`⋑`,`\\Supset`,!0),V(H,G,q,`⊐`,`\\sqsupset`,!0),V(H,G,q,`≽`,`\\succcurlyeq`,!0),V(H,G,q,`⋟`,`\\curlyeqsucc`,!0),V(H,G,q,`≿`,`\\succsim`,!0),V(H,G,q,`⪸`,`\\succapprox`,!0),V(H,G,q,`⊳`,`\\vartriangleright`),V(H,G,q,`⊵`,`\\trianglerighteq`),V(H,G,q,`⊩`,`\\Vdash`,!0),V(H,G,q,`∣`,`\\shortmid`),V(H,G,q,`∥`,`\\shortparallel`),V(H,G,q,`≬`,`\\between`,!0),V(H,G,q,`⋔`,`\\pitchfork`,!0),V(H,G,q,`∝`,`\\varpropto`),V(H,G,q,`◀`,`\\blacktriangleleft`),V(H,G,q,`∴`,`\\therefore`,!0),V(H,G,q,`∍`,`\\backepsilon`),V(H,G,q,`▶`,`\\blacktriangleright`),V(H,G,q,`∵`,`\\because`,!0),V(H,G,q,`⋘`,`\\llless`),V(H,G,q,`⋙`,`\\gggtr`),V(H,G,K,`⊲`,`\\lhd`),V(H,G,K,`⊳`,`\\rhd`),V(H,G,q,`≂`,`\\eqsim`,!0),V(H,W,q,`⋈`,`\\Join`),V(H,G,q,`≑`,`\\Doteq`,!0),V(H,G,K,`∔`,`\\dotplus`,!0),V(H,G,K,`∖`,`\\smallsetminus`),V(H,G,K,`⋒`,`\\Cap`,!0),V(H,G,K,`⋓`,`\\Cup`,!0),V(H,G,K,`⩞`,`\\doublebarwedge`,!0),V(H,G,K,`⊟`,`\\boxminus`,!0),V(H,G,K,`⊞`,`\\boxplus`,!0),V(H,G,K,`⋇`,`\\divideontimes`,!0),V(H,G,K,`⋉`,`\\ltimes`,!0),V(H,G,K,`⋊`,`\\rtimes`,!0),V(H,G,K,`⋋`,`\\leftthreetimes`,!0),V(H,G,K,`⋌`,`\\rightthreetimes`,!0),V(H,G,K,`⋏`,`\\curlywedge`,!0),V(H,G,K,`⋎`,`\\curlyvee`,!0),V(H,G,K,`⊝`,`\\circleddash`,!0),V(H,G,K,`⊛`,`\\circledast`,!0),V(H,G,K,`⋅`,`\\centerdot`),V(H,G,K,`⊺`,`\\intercal`,!0),V(H,G,K,`⋒`,`\\doublecap`),V(H,G,K,`⋓`,`\\doublecup`),V(H,G,K,`⊠`,`\\boxtimes`,!0),V(H,G,q,`⇢`,`\\dashrightarrow`,!0),V(H,G,q,`⇠`,`\\dashleftarrow`,!0),V(H,G,q,`⇇`,`\\leftleftarrows`,!0),V(H,G,q,`⇆`,`\\leftrightarrows`,!0),V(H,G,q,`⇚`,`\\Lleftarrow`,!0),V(H,G,q,`↞`,`\\twoheadleftarrow`,!0),V(H,G,q,`↢`,`\\leftarrowtail`,!0),V(H,G,q,`↫`,`\\looparrowleft`,!0),V(H,G,q,`⇋`,`\\leftrightharpoons`,!0),V(H,G,q,`↶`,`\\curvearrowleft`,!0),V(H,G,q,`↺`,`\\circlearrowleft`,!0),V(H,G,q,`↰`,`\\Lsh`,!0),V(H,G,q,`⇈`,`\\upuparrows`,!0),V(H,G,q,`↿`,`\\upharpoonleft`,!0),V(H,G,q,`⇃`,`\\downharpoonleft`,!0),V(H,W,q,`⊶`,`\\origof`,!0),V(H,W,q,`⊷`,`\\imageof`,!0),V(H,G,q,`⊸`,`\\multimap`,!0),V(H,G,q,`↭`,`\\leftrightsquigarrow`,!0),V(H,G,q,`⇉`,`\\rightrightarrows`,!0),V(H,G,q,`⇄`,`\\rightleftarrows`,!0),V(H,G,q,`↠`,`\\twoheadrightarrow`,!0),V(H,G,q,`↣`,`\\rightarrowtail`,!0),V(H,G,q,`↬`,`\\looparrowright`,!0),V(H,G,q,`↷`,`\\curvearrowright`,!0),V(H,G,q,`↻`,`\\circlearrowright`,!0),V(H,G,q,`↱`,`\\Rsh`,!0),V(H,G,q,`⇊`,`\\downdownarrows`,!0),V(H,G,q,`↾`,`\\upharpoonright`,!0),V(H,G,q,`⇂`,`\\downharpoonright`,!0),V(H,G,q,`⇝`,`\\rightsquigarrow`,!0),V(H,G,q,`⇝`,`\\leadsto`),V(H,G,q,`⇛`,`\\Rrightarrow`,!0),V(H,G,q,`↾`,`\\restriction`),V(H,W,J,`‘`,"`"),V(H,W,J,`$`,`\\$`),V(U,W,J,`$`,`\\$`),V(U,W,J,`$`,`\\textdollar`),V(H,W,J,`%`,`\\%`),V(U,W,J,`%`,`\\%`),V(H,W,J,`_`,`\\_`),V(U,W,J,`_`,`\\_`),V(U,W,J,`_`,`\\textunderscore`),V(H,W,J,`∠`,`\\angle`,!0),V(H,W,J,`∞`,`\\infty`,!0),V(H,W,J,`′`,`\\prime`),V(H,W,J,`△`,`\\triangle`),V(H,W,J,`Γ`,`\\Gamma`,!0),V(H,W,J,`Δ`,`\\Delta`,!0),V(H,W,J,`Θ`,`\\Theta`,!0),V(H,W,J,`Λ`,`\\Lambda`,!0),V(H,W,J,`Ξ`,`\\Xi`,!0),V(H,W,J,`Π`,`\\Pi`,!0),V(H,W,J,`Σ`,`\\Sigma`,!0),V(H,W,J,`Υ`,`\\Upsilon`,!0),V(H,W,J,`Φ`,`\\Phi`,!0),V(H,W,J,`Ψ`,`\\Psi`,!0),V(H,W,J,`Ω`,`\\Omega`,!0),V(H,W,J,`A`,`Α`),V(H,W,J,`B`,`Β`),V(H,W,J,`E`,`Ε`),V(H,W,J,`Z`,`Ζ`),V(H,W,J,`H`,`Η`),V(H,W,J,`I`,`Ι`),V(H,W,J,`K`,`Κ`),V(H,W,J,`M`,`Μ`),V(H,W,J,`N`,`Ν`),V(H,W,J,`O`,`Ο`),V(H,W,J,`P`,`Ρ`),V(H,W,J,`T`,`Τ`),V(H,W,J,`X`,`Χ`),V(H,W,J,`¬`,`\\neg`,!0),V(H,W,J,`¬`,`\\lnot`),V(H,W,J,`⊤`,`\\top`),V(H,W,J,`⊥`,`\\bot`),V(H,W,J,`∅`,`\\emptyset`),V(H,G,J,`∅`,`\\varnothing`),V(H,W,qQ,`α`,`\\alpha`,!0),V(H,W,qQ,`β`,`\\beta`,!0),V(H,W,qQ,`γ`,`\\gamma`,!0),V(H,W,qQ,`δ`,`\\delta`,!0),V(H,W,qQ,`ϵ`,`\\epsilon`,!0),V(H,W,qQ,`ζ`,`\\zeta`,!0),V(H,W,qQ,`η`,`\\eta`,!0),V(H,W,qQ,`θ`,`\\theta`,!0),V(H,W,qQ,`ι`,`\\iota`,!0),V(H,W,qQ,`κ`,`\\kappa`,!0),V(H,W,qQ,`λ`,`\\lambda`,!0),V(H,W,qQ,`μ`,`\\mu`,!0),V(H,W,qQ,`ν`,`\\nu`,!0),V(H,W,qQ,`ξ`,`\\xi`,!0),V(H,W,qQ,`ο`,`\\omicron`,!0),V(H,W,qQ,`π`,`\\pi`,!0),V(H,W,qQ,`ρ`,`\\rho`,!0),V(H,W,qQ,`σ`,`\\sigma`,!0),V(H,W,qQ,`τ`,`\\tau`,!0),V(H,W,qQ,`υ`,`\\upsilon`,!0),V(H,W,qQ,`ϕ`,`\\phi`,!0),V(H,W,qQ,`χ`,`\\chi`,!0),V(H,W,qQ,`ψ`,`\\psi`,!0),V(H,W,qQ,`ω`,`\\omega`,!0),V(H,W,qQ,`ε`,`\\varepsilon`,!0),V(H,W,qQ,`ϑ`,`\\vartheta`,!0),V(H,W,qQ,`ϖ`,`\\varpi`,!0),V(H,W,qQ,`ϱ`,`\\varrho`,!0),V(H,W,qQ,`ς`,`\\varsigma`,!0),V(H,W,qQ,`φ`,`\\varphi`,!0),V(H,W,K,`∗`,`*`,!0),V(H,W,K,`+`,`+`),V(H,W,K,`−`,`-`,!0),V(H,W,K,`⋅`,`\\cdot`,!0),V(H,W,K,`∘`,`\\circ`,!0),V(H,W,K,`÷`,`\\div`,!0),V(H,W,K,`±`,`\\pm`,!0),V(H,W,K,`×`,`\\times`,!0),V(H,W,K,`∩`,`\\cap`,!0),V(H,W,K,`∪`,`\\cup`,!0),V(H,W,K,`∖`,`\\setminus`,!0),V(H,W,K,`∧`,`\\land`),V(H,W,K,`∨`,`\\lor`),V(H,W,K,`∧`,`\\wedge`,!0),V(H,W,K,`∨`,`\\vee`,!0),V(H,W,J,`√`,`\\surd`),V(H,W,YQ,`⟨`,`\\langle`,!0),V(H,W,YQ,`∣`,`\\lvert`),V(H,W,YQ,`∥`,`\\lVert`),V(H,W,GQ,`?`,`?`),V(H,W,GQ,`!`,`!`),V(H,W,GQ,`⟩`,`\\rangle`,!0),V(H,W,GQ,`∣`,`\\rvert`),V(H,W,GQ,`∥`,`\\rVert`),V(H,W,q,`=`,`=`),V(H,W,q,`:`,`:`),V(H,W,q,`≈`,`\\approx`,!0),V(H,W,q,`≅`,`\\cong`,!0),V(H,W,q,`≥`,`\\ge`),V(H,W,q,`≥`,`\\geq`,!0),V(H,W,q,`←`,`\\gets`),V(H,W,q,`>`,`\\gt`,!0),V(H,W,q,`∈`,`\\in`,!0),V(H,W,q,``,`\\@not`),V(H,W,q,`⊂`,`\\subset`,!0),V(H,W,q,`⊃`,`\\supset`,!0),V(H,W,q,`⊆`,`\\subseteq`,!0),V(H,W,q,`⊇`,`\\supseteq`,!0),V(H,G,q,`⊈`,`\\nsubseteq`,!0),V(H,G,q,`⊉`,`\\nsupseteq`,!0),V(H,W,q,`⊨`,`\\models`),V(H,W,q,`←`,`\\leftarrow`,!0),V(H,W,q,`≤`,`\\le`),V(H,W,q,`≤`,`\\leq`,!0),V(H,W,q,`<`,`\\lt`,!0),V(H,W,q,`→`,`\\rightarrow`,!0),V(H,W,q,`→`,`\\to`),V(H,G,q,`≱`,`\\ngeq`,!0),V(H,G,q,`≰`,`\\nleq`,!0),V(H,W,ZQ,`\xA0`,`\\ `),V(H,W,ZQ,`\xA0`,`\\space`),V(H,W,ZQ,`\xA0`,`\\nobreakspace`),V(U,W,ZQ,`\xA0`,`\\ `),V(U,W,ZQ,`\xA0`,` `),V(U,W,ZQ,`\xA0`,`\\space`),V(U,W,ZQ,`\xA0`,`\\nobreakspace`),V(H,W,ZQ,``,`\\nobreak`),V(H,W,ZQ,``,`\\allowbreak`),V(H,W,XQ,`,`,`,`),V(H,W,XQ,`;`,`;`),V(H,G,K,`⊼`,`\\barwedge`,!0),V(H,G,K,`⊻`,`\\veebar`,!0),V(H,W,K,`⊙`,`\\odot`,!0),V(H,W,K,`⊕`,`\\oplus`,!0),V(H,W,K,`⊗`,`\\otimes`,!0),V(H,W,J,`∂`,`\\partial`,!0),V(H,W,K,`⊘`,`\\oslash`,!0),V(H,G,K,`⊚`,`\\circledcirc`,!0),V(H,G,K,`⊡`,`\\boxdot`,!0),V(H,W,K,`△`,`\\bigtriangleup`),V(H,W,K,`▽`,`\\bigtriangledown`),V(H,W,K,`†`,`\\dagger`),V(H,W,K,`⋄`,`\\diamond`),V(H,W,K,`⋆`,`\\star`),V(H,W,K,`◃`,`\\triangleleft`),V(H,W,K,`▹`,`\\triangleright`),V(H,W,YQ,`{`,`\\{`),V(U,W,J,`{`,`\\{`),V(U,W,J,`{`,`\\textbraceleft`),V(H,W,GQ,`}`,`\\}`),V(U,W,J,`}`,`\\}`),V(U,W,J,`}`,`\\textbraceright`),V(H,W,YQ,`{`,`\\lbrace`),V(H,W,GQ,`}`,`\\rbrace`),V(H,W,YQ,`[`,`\\lbrack`,!0),V(U,W,J,`[`,`\\lbrack`,!0),V(H,W,GQ,`]`,`\\rbrack`,!0),V(U,W,J,`]`,`\\rbrack`,!0),V(H,W,YQ,`(`,`\\lparen`,!0),V(H,W,GQ,`)`,`\\rparen`,!0),V(U,W,J,`<`,`\\textless`,!0),V(U,W,J,`>`,`\\textgreater`,!0),V(H,W,YQ,`⌊`,`\\lfloor`,!0),V(H,W,GQ,`⌋`,`\\rfloor`,!0),V(H,W,YQ,`⌈`,`\\lceil`,!0),V(H,W,GQ,`⌉`,`\\rceil`,!0),V(H,W,J,`\\`,`\\backslash`),V(H,W,J,`∣`,`|`),V(H,W,J,`∣`,`\\vert`),V(U,W,J,`|`,`\\textbar`,!0),V(H,W,J,`∥`,`\\|`),V(H,W,J,`∥`,`\\Vert`),V(U,W,J,`∥`,`\\textbardbl`),V(U,W,J,`~`,`\\textasciitilde`),V(U,W,J,`\\`,`\\textbackslash`),V(U,W,J,`^`,`\\textasciicircum`),V(H,W,q,`↑`,`\\uparrow`,!0),V(H,W,q,`⇑`,`\\Uparrow`,!0),V(H,W,q,`↓`,`\\downarrow`,!0),V(H,W,q,`⇓`,`\\Downarrow`,!0),V(H,W,q,`↕`,`\\updownarrow`,!0),V(H,W,q,`⇕`,`\\Updownarrow`,!0),V(H,W,JQ,`∐`,`\\coprod`),V(H,W,JQ,`⋁`,`\\bigvee`),V(H,W,JQ,`⋀`,`\\bigwedge`),V(H,W,JQ,`⨄`,`\\biguplus`),V(H,W,JQ,`⋂`,`\\bigcap`),V(H,W,JQ,`⋃`,`\\bigcup`),V(H,W,JQ,`∫`,`\\int`),V(H,W,JQ,`∫`,`\\intop`),V(H,W,JQ,`∬`,`\\iint`),V(H,W,JQ,`∭`,`\\iiint`),V(H,W,JQ,`∏`,`\\prod`),V(H,W,JQ,`∑`,`\\sum`),V(H,W,JQ,`⨂`,`\\bigotimes`),V(H,W,JQ,`⨁`,`\\bigoplus`),V(H,W,JQ,`⨀`,`\\bigodot`),V(H,W,JQ,`∮`,`\\oint`),V(H,W,JQ,`∯`,`\\oiint`),V(H,W,JQ,`∰`,`\\oiiint`),V(H,W,JQ,`⨆`,`\\bigsqcup`),V(H,W,JQ,`∫`,`\\smallint`),V(U,W,KQ,`…`,`\\textellipsis`),V(H,W,KQ,`…`,`\\mathellipsis`),V(U,W,KQ,`…`,`\\ldots`,!0),V(H,W,KQ,`…`,`\\ldots`,!0),V(H,W,KQ,`⋯`,`\\@cdots`,!0),V(H,W,KQ,`⋱`,`\\ddots`,!0),V(H,W,J,`⋮`,`\\varvdots`),V(U,W,J,`⋮`,`\\varvdots`),V(H,W,WQ,`ˊ`,`\\acute`),V(H,W,WQ,`ˋ`,`\\grave`),V(H,W,WQ,`¨`,`\\ddot`),V(H,W,WQ,`~`,`\\tilde`),V(H,W,WQ,`ˉ`,`\\bar`),V(H,W,WQ,`˘`,`\\breve`),V(H,W,WQ,`ˇ`,`\\check`),V(H,W,WQ,`^`,`\\hat`),V(H,W,WQ,`⃗`,`\\vec`),V(H,W,WQ,`˙`,`\\dot`),V(H,W,WQ,`˚`,`\\mathring`),V(H,W,qQ,``,`\\@imath`),V(H,W,qQ,``,`\\@jmath`),V(H,W,J,`ı`,`ı`),V(H,W,J,`ȷ`,`ȷ`),V(U,W,J,`ı`,`\\i`,!0),V(U,W,J,`ȷ`,`\\j`,!0),V(U,W,J,`ß`,`\\ss`,!0),V(U,W,J,`æ`,`\\ae`,!0),V(U,W,J,`œ`,`\\oe`,!0),V(U,W,J,`ø`,`\\o`,!0),V(U,W,J,`Æ`,`\\AE`,!0),V(U,W,J,`Œ`,`\\OE`,!0),V(U,W,J,`Ø`,`\\O`,!0),V(U,W,WQ,`ˊ`,`\\'`),V(U,W,WQ,`ˋ`,"\\`"),V(U,W,WQ,`ˆ`,`\\^`),V(U,W,WQ,`˜`,`\\~`),V(U,W,WQ,`ˉ`,`\\=`),V(U,W,WQ,`˘`,`\\u`),V(U,W,WQ,`˙`,`\\.`),V(U,W,WQ,`¸`,`\\c`),V(U,W,WQ,`˚`,`\\r`),V(U,W,WQ,`ˇ`,`\\v`),V(U,W,WQ,`¨`,`\\"`),V(U,W,WQ,`˝`,`\\H`),V(U,W,WQ,`◯`,`\\textcircled`);var QQ={"--":!0,"---":!0,"``":!0,"''":!0};V(U,W,J,`–`,`--`,!0),V(U,W,J,`–`,`\\textendash`),V(U,W,J,`—`,`---`,!0),V(U,W,J,`—`,`\\textemdash`),V(U,W,J,`‘`,"`",!0),V(U,W,J,`‘`,`\\textquoteleft`),V(U,W,J,`’`,`'`,!0),V(U,W,J,`’`,`\\textquoteright`),V(U,W,J,`“`,"``",!0),V(U,W,J,`“`,`\\textquotedblleft`),V(U,W,J,`”`,`''`,!0),V(U,W,J,`”`,`\\textquotedblright`),V(H,W,J,`°`,`\\degree`,!0),V(U,W,J,`°`,`\\degree`),V(U,W,J,`°`,`\\textdegree`,!0),V(H,W,J,`£`,`\\pounds`),V(H,W,J,`£`,`\\mathsterling`,!0),V(U,W,J,`£`,`\\pounds`),V(U,W,J,`£`,`\\textsterling`,!0),V(H,G,J,`✠`,`\\maltese`),V(U,G,J,`✠`,`\\maltese`);for(var $Q=`0123456789/@."`,e$=0;e$<$Q.length;e$++){var t$=$Q.charAt(e$);V(H,W,J,t$,t$)}for(var n$=`0123456789!@*()-=+";:?/.,`,r$=0;r$<n$.length;r$++){var i$=n$.charAt(r$);V(U,W,J,i$,i$)}for(var a$=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`,o$=0;o$<a$.length;o$++){var s$=a$.charAt(o$);V(H,W,qQ,s$,s$),V(U,W,J,s$,s$)}V(H,G,J,`C`,`ℂ`),V(U,G,J,`C`,`ℂ`),V(H,G,J,`H`,`ℍ`),V(U,G,J,`H`,`ℍ`),V(H,G,J,`N`,`ℕ`),V(U,G,J,`N`,`ℕ`),V(H,G,J,`P`,`ℙ`),V(U,G,J,`P`,`ℙ`),V(H,G,J,`Q`,`ℚ`),V(U,G,J,`Q`,`ℚ`),V(H,G,J,`R`,`ℝ`),V(U,G,J,`R`,`ℝ`),V(H,G,J,`Z`,`ℤ`),V(U,G,J,`Z`,`ℤ`),V(H,W,qQ,`h`,`ℎ`),V(U,W,qQ,`h`,`ℎ`);for(var c$,l$=0;l$<a$.length;l$++){var u$=a$.charAt(l$);c$=String.fromCharCode(55349,56320+l$),V(H,W,qQ,u$,c$),V(U,W,J,u$,c$),c$=String.fromCharCode(55349,56372+l$),V(H,W,qQ,u$,c$),V(U,W,J,u$,c$),c$=String.fromCharCode(55349,56424+l$),V(H,W,qQ,u$,c$),V(U,W,J,u$,c$),c$=String.fromCharCode(55349,56580+l$),V(H,W,qQ,u$,c$),V(U,W,J,u$,c$),c$=String.fromCharCode(55349,56684+l$),V(H,W,qQ,u$,c$),V(U,W,J,u$,c$),c$=String.fromCharCode(55349,56736+l$),V(H,W,qQ,u$,c$),V(U,W,J,u$,c$),c$=String.fromCharCode(55349,56788+l$),V(H,W,qQ,u$,c$),V(U,W,J,u$,c$),c$=String.fromCharCode(55349,56840+l$),V(H,W,qQ,u$,c$),V(U,W,J,u$,c$),c$=String.fromCharCode(55349,56944+l$),V(H,W,qQ,u$,c$),V(U,W,J,u$,c$),l$<26&&(c$=String.fromCharCode(55349,56632+l$),V(H,W,qQ,u$,c$),V(U,W,J,u$,c$),c$=String.fromCharCode(55349,56476+l$),V(H,W,qQ,u$,c$),V(U,W,J,u$,c$))}c$=String.fromCharCode(55349,56668),V(H,W,qQ,`k`,c$),V(U,W,J,`k`,c$);for(var d$=0;d$<10;d$++){var f$=d$.toString();c$=String.fromCharCode(55349,57294+d$),V(H,W,qQ,f$,c$),V(U,W,J,f$,c$),c$=String.fromCharCode(55349,57314+d$),V(H,W,qQ,f$,c$),V(U,W,J,f$,c$),c$=String.fromCharCode(55349,57324+d$),V(H,W,qQ,f$,c$),V(U,W,J,f$,c$),c$=String.fromCharCode(55349,57334+d$),V(H,W,qQ,f$,c$),V(U,W,J,f$,c$)}for(var p$=`ÐÞþ`,m$=0;m$<p$.length;m$++){var h$=p$.charAt(m$);V(H,W,qQ,h$,h$),V(U,W,J,h$,h$)}var g$={mathClass:`mathbf`,textClass:`textbf`,font:`Main-Bold`},_$={mathClass:`mathnormal`,textClass:`textit`,font:`Math-Italic`},v$={mathClass:`boldsymbol`,textClass:`boldsymbol`,font:`Main-BoldItalic`},y$={mathClass:`mathscr`,textClass:`textscr`,font:`Script-Regular`},b$={mathClass:``,textClass:``,font:``},x$={mathClass:`mathfrak`,textClass:`textfrak`,font:`Fraktur-Regular`},S$={mathClass:`mathbb`,textClass:`textbb`,font:`AMS-Regular`},C$={mathClass:`mathboldfrak`,textClass:`textboldfrak`,font:`Fraktur-Regular`},w$={mathClass:`mathsf`,textClass:`textsf`,font:`SansSerif-Regular`},T$={mathClass:`mathboldsf`,textClass:`textboldsf`,font:`SansSerif-Bold`},E$={mathClass:`mathitsf`,textClass:`textitsf`,font:`SansSerif-Italic`},D$={mathClass:`mathtt`,textClass:`texttt`,font:`Typewriter-Regular`},O$=[g$,g$,_$,_$,v$,v$,y$,b$,b$,b$,x$,x$,S$,S$,C$,C$,w$,w$,T$,T$,E$,E$,b$,b$,D$,D$],k$=[g$,b$,w$,T$,D$],A$=e=>{var t=e.charCodeAt(0),n=e.charCodeAt(1),r=(t-55296)*1024+(n-56320)+65536;if(119808<=r&&r<120484)return O$[Math.floor((r-119808)/26)];if(120782<=r&&r<=120831)return k$[Math.floor((r-120782)/10)];if(r===120485||r===120486)return O$[0];if(120486<r&&r<120782)return b$;throw new z(`Unsupported character: `+e)};function j$(e){var t=e.strict,n=e.errorCode,r=e.errorMsg,i=e.token,a=e.report,o=t;if(typeof t==`function`){if(a)o=t(n,r,i);else try{o=t(n,r,i)}catch{o=`error`}}switch(o){case!0:case`error`:if(a)throw new z(`LaTeX-incompatible input and strict mode is set to 'error': `+(r+` [`+n+`]`),i);return!0;case!1:case`ignore`:if(!a)return!1;break;default:if(typeof console<`u`&&console.warn(`LaTeX-incompatible input and strict mode is set to 'warn': `+(r+` [`+n+`]`)),!a)return!1}}var M$=function(e,t,n){if(UQ[n][e]){var r=UQ[n][e].replace;r&&(e=r)}return{value:e,metrics:BQ(e,t,n)}},N$=function(e,t,n,r,i){var a=M$(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 kQ(e,o.height,o.depth,c,o.skew,o.width,i)}else j$({strict:r.strict,errorCode:`symbolNotInFont`,errorMsg:`No character metrics for '`+e+`' in style '`+t+`' and mode '`+n+`'`,report:!0}),s=new kQ(e,0,0,0,0,0,i);s.maxFontSize=r.sizeMultiplier,r.style.isTight()&&s.classes.push(`mtight`);var l=r.getColor();return l&&(s.style.color=l),s},P$=function(e,t,n,r){return r===void 0&&(r=[]),n.font===`boldsymbol`&&M$(e,`Main-Bold`,t).metrics?N$(e,`Main-Bold`,t,n,r.concat([`mathbf`])):e===`\\`||UQ[t][e].font===`main`?N$(e,`Main-Regular`,t,n,r):N$(e,`AMS-Regular`,t,n,r.concat([`amsrm`]))},F$=function(e,t,n){return n!==`textord`&&M$(e,`Math-BoldItalic`,t).metrics?{fontName:`Math-BoldItalic`,fontClass:`boldsymbol`}:{fontName:`Main-Bold`,fontClass:`mathbf`}},I$=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=A$(i);f=m.font,p=m[r+`Class`]}if(f)return N$(i,f,r,t,a.concat(p));if(d){var h,g;if(d===`boldsymbol`){var _=F$(i,r,n);h=_.fontName,g=[_.fontClass]}else u?(h=Y$[o].fontName,g=[o]):(h=J$(s,c,l),g=[s,c,l]);if(M$(i,h,r).metrics)return N$(i,h,r,t,a.concat(g));if(Object.prototype.hasOwnProperty.call(QQ,i)&&h.slice(0,10)===`Typewriter`){for(var v=[],y=0;y<i.length;y++)v.push(N$(i[y],h,r,t,a.concat(g)));return U$(v)}}if(n===`mathord`)return N$(i,`Math-Italic`,r,t,a.concat([`mathnormal`]));if(n===`textord`){var ee=UQ[r][i]&&UQ[r][i].font;if(ee===`ams`)return N$(i,J$(`amsrm`,c,l),r,t,a.concat(`amsrm`,c,l));if(ee===`main`||!ee)return N$(i,J$(`textrm`,c,l),r,t,a.concat(c,l));var te=J$(ee,c,l);return N$(i,te,r,t,a.concat(te,c,l))}throw Error(`unexpected type: `+n+` in makeOrd`)},L$=(e,t)=>{if(yQ(e.classes)!==yQ(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},R$=e=>{for(var t=0;t<e.length-1;t++){var n=e[t],r=e[t+1];n instanceof kQ&&r instanceof kQ&&L$(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},z$=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},Y=function(e,t,n,r){var i=new TQ(e,t,n,r);return z$(i),i},B$=(e,t,n,r)=>new TQ(e,t,n,r),V$=function(e,t,n){var r=Y([e],[],t);return r.height=Math.max(n||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),r.style.borderBottomWidth=B(r.height),r.maxFontSize=1,r},H$=function(e,t,n,r){var i=new EQ(e,t,n,r);return z$(i),i},U$=function(e){var t=new mQ(e);return z$(t),t},W$=function(e,t){return e instanceof mQ?Y([],[e],t):e},G$=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}},K$=function(e,t){for(var n=G$(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=Y([`pstrut`],[]);l.style.height=B(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=Y(_,[l,g],void 0,v);y.style.top=B(-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 ee=Y([`vlist`],u);ee.style.height=B(f);var te;if(d<0){var ne=Y([`vlist`],[Y([],[])]);ne.style.height=B(-d),te=[Y([`vlist-r`],[ee,Y([`vlist-s`],[new kQ(`​`)])]),Y([`vlist-r`],[ne])]}else te=[Y([`vlist-r`],[ee])];var b=Y([`vlist-t`],te);return te.length===2&&b.classes.push(`vlist-t2`),b.height=f,b.depth=-d,b},q$=(e,t)=>{var n=Y([`mspace`],[],t),r=vQ(e,t);return n.style.marginRight=B(r),n},J$=(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},Y$={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`}},X$={vec:[`vec`,.471,.714],oiintSize1:[`oiintSize1`,.957,.499],oiintSize2:[`oiintSize2`,1.472,.659],oiiintSize1:[`oiiintSize1`,1.304,.499],oiiintSize2:[`oiiintSize2`,1.98,.659]},Z$=function(e,t){var n=X$[e],r=n[0],i=n[1],a=n[2],o=B$([`katex-overlay`],[new AQ([new jQ(r)],{width:B(i),height:B(a),style:`width:`+B(i),viewBox:`0 0 `+1e3*i+` `+1e3*a,preserveAspectRatio:`xMinYMin`})],t);return o.height=a,o.style.height=B(a),o.style.width=B(i),o},Q$={number:3,unit:`mu`},$$={number:4,unit:`mu`},e1={number:5,unit:`mu`},t1={mord:{mop:Q$,mbin:$$,mrel:e1,minner:Q$},mop:{mord:Q$,mop:Q$,mrel:e1,minner:Q$},mbin:{mord:$$,mop:$$,mopen:$$,minner:$$},mrel:{mord:e1,mop:e1,mopen:e1,minner:e1},mopen:{},mclose:{mop:Q$,mbin:$$,mrel:e1,minner:Q$},mpunct:{mord:Q$,mop:Q$,mrel:e1,mopen:Q$,mclose:Q$,mpunct:Q$,minner:Q$},minner:{mord:Q$,mop:Q$,mbin:$$,mrel:e1,mopen:Q$,mpunct:Q$,minner:Q$}},n1={mord:{mop:Q$},mop:{mord:Q$,mop:Q$},mbin:{},mrel:{},mopen:{},mclose:{mop:Q$},mpunct:{},minner:{mop:Q$}},r1={},i1={},a1={};function X(e){for(var t=e.type,n=e.names,r=e.htmlBuilder,i=e.mathmlBuilder,a=0;a<n.length;++a)r1[n[a]]=e;t&&(r&&(i1[t]=r),i&&(a1[t]=i))}function o1(e){var t=e.type,n=e.htmlBuilder,r=e.mathmlBuilder;n&&(i1[t]=n),r&&(a1[t]=r)}var s1=function(e){return e.type===`ordgroup`&&e.body.length===1?e.body[0]:e},c1=function(e){return e.type===`ordgroup`?e.body:[e]},l1=new Set([`leftmost`,`mbin`,`mopen`,`mrel`,`mop`,`mpunct`]),u1=new Set([`rightmost`,`mrel`,`mclose`,`mpunct`]),d1={display:YZ.DISPLAY,text:YZ.TEXT,script:YZ.SCRIPT,scriptscript:YZ.SCRIPTSCRIPT},dae={mord:`mord`,mop:`mop`,mbin:`mbin`,mrel:`mrel`,mopen:`mopen`,mclose:`mclose`,mpunct:`mpunct`,minner:`minner`},f1=function(e,t,n,r){r===void 0&&(r=[null,null]);for(var i=[],a=0;a<e.length;a++){var o=v1(e[a],t);if(o instanceof mQ){var s=o.children;i.push(...s)}else i.push(o)}if(R$(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(d1[l.style]))}var u=Y([r[0]||`leftmost`],[],t),d=Y([r[1]||`rightmost`],[],t),f=n===`root`;return p1(i,(e,t)=>{var n=t.classes[0],r=e.classes[0];n===`mbin`&&u1.has(r)?t.classes[0]=`mord`:r===`mbin`&&l1.has(n)&&(e.classes[0]=`mord`)},{node:u},d,f),p1(i,(e,t)=>{var n=g1(t),r=g1(e),i=n&&r?e.hasClass(`mtight`)?n1[n]?.[r]:t1[n]?.[r]:null;if(i)return q$(i,c)},{node:u},d,f),i},p1=function(e,t,n,r,i){r&&e.push(r);for(var a=0;a<e.length;a++){var o=e[a],s=m1(o);if(s){p1(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=Y([`leftmost`])),n.insertAfter=(t=>n=>{e.splice(t+1,0,n),a++})(a)}r&&e.pop()},m1=function(e){return e instanceof mQ||e instanceof EQ||e instanceof TQ&&e.hasClass(`enclosing`)?e:null},h1=function(e,t){var n=m1(e);if(n){var r=n.children;if(r.length){if(t===`right`)return h1(r[r.length-1],`right`);if(t===`left`)return h1(r[0],`left`)}}return e},g1=function(e,t){return e?(t&&(e=h1(e,t)),dae[e.classes[0]]||null):null},_1=function(e,t){var n=[`nulldelimiter`].concat(e.baseSizingClasses());return Y(t.concat(n))},v1=function(e,t,n){if(!e)return Y();if(i1[e.type]){var r=i1[e.type](e,t);if(n&&t.size!==n.size){r=Y(t.sizingClasses(n),[r],t);var i=t.sizeMultiplier/n.sizeMultiplier;r.height*=i,r.depth*=i}return r}throw new z(`Got group of unknown type: '`+e.type+`'`)};function y1(e,t){var n=Y([`katex-base`],e,t),r=Y([`katex-strut`]);return r.style.height=B(n.height+n.depth),n.depth&&(r.style.verticalAlign=B(-n.depth)),n.children.unshift(r),n}function b1(e,t){var n=null;e.length===1&&e[0].type===`tag`&&(n=e[0].tag,e=e[0].body);var r=f1(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(y1(o,t)),o=[])}else r[s].hasClass(`katex-newline`)&&(o.pop(),o.length>0&&(a.push(y1(o,t)),o=[]),a.push(r[s]));o.length>0&&a.push(y1(o,t));var l;n?(l=y1(f1(n,t,!0),t),l.classes=[`katex-tag`],a.push(l)):i&&a.push(i);var u=Y([`katex-html`],a);if(u.setAttribute(`aria-hidden`,`true`),l){var d=l.children[0];d.style.height=B(u.height+u.depth),u.depth&&(d.style.verticalAlign=B(-u.depth))}return u}function x1(e){return new mQ(e)}var Z=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=yQ(this.classes));for(var i=0;i<this.children.length;i++)if(this.children[i]instanceof S1&&this.children[i+1]instanceof S1){for(var a=this.children[i].toText()+this.children[++i].toText();this.children[i+1]instanceof S1;)a+=this.children[++i].toText();e.appendChild(new S1(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+=CZ(r),e+=`"`}this.classes.length>0&&(e+=` class ="`+CZ(yQ(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(``)}},S1=class{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return CZ(this.toText())}toText(){return this.text}},C1=class{constructor(e){this.width=void 0,this.character=void 0,this.width=e,this.character=e>=.05555&&e<=.05556?` `:e>=.1666&&e<=.1667?` `:e>=.2222&&e<=.2223?` `:e>=.2777&&e<=.2778?`  `:e>=-.05556&&e<=-.05555?` ⁣`:e>=-.1667&&e<=-.1666?` ⁣`:e>=-.2223&&e<=-.2222?` ⁣`:e>=-.2778&&e<=-.2777?` ⁣`: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`,B(this.width)),e}toMarkup(){return this.character?`<mtext>`+this.character+`</mtext>`:`<mspace width="`+B(this.width)+`"/>`}toText(){return this.character?this.character:` `}},w1=new Set([`\\imath`,`\\jmath`]),T1=new Set([`mrow`,`mtable`]),E1=function(e,t,n){var r,i;return UQ[t][e]&&UQ[t][e].replace&&e.charCodeAt(0)!==55349&&(!Object.prototype.hasOwnProperty.call(QQ,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=UQ[t][e].replace),new S1(e)},D1=function(e){return e.length===1?e[0]:new Z(`mrow`,e)},O1={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`},k1=(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=O1[n];if(i)return typeof i==`function`?i(e):i;var a=e.text;if(w1.has(a))return null;if(UQ[r][a]){var o=UQ[r][a].replace;o&&(a=o)}var s=Y$[n].fontName;return BQ(a,s,r)?Y$[n].variant:null};function A1(e){if(!e)return!1;if(e.type===`mi`&&e.children.length===1){var t=e.children[0];return t instanceof S1&&t.text===`.`}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 S1&&n.text===`,`}return!1}var j1=function(e,t,n){if(e.length===1){var r=N1(e[0],t);return n&&r instanceof Z&&r.type===`mo`&&(r.setAttribute(`lspace`,`0em`),r.setAttribute(`rspace`,`0em`)),[r]}for(var i=[],a,o=0;o<e.length;o++){var s=N1(e[o],t);if(s instanceof Z&&a instanceof Z){if(s.type===`mtext`&&a.type===`mtext`&&s.getAttribute(`mathvariant`)===a.getAttribute(`mathvariant`)){a.children.push(...s.children);continue}if(s.type===`mn`&&a.type===`mn`){a.children.push(...s.children);continue}if(A1(s)&&a.type===`mn`){a.children.push(...s.children);continue}if(s.type===`mn`&&A1(a))s.children=[...a.children,...s.children],i.pop();else if((s.type===`msup`||s.type===`msub`)&&s.children.length>=1&&(a.type===`mn`||A1(a))){var c=s.children[0];c instanceof Z&&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 S1&&l.text===`̸`&&(s.type===`mo`||s.type===`mi`||s.type===`mn`)){var u=s.children[0];u instanceof S1&&u.text.length>0&&(u.text=u.text.slice(0,1)+`̸`+u.text.slice(1),i.pop())}}}i.push(s),a=s}return i},M1=function(e,t,n){return D1(j1(e,t,n))},N1=function(e,t){if(!e)return new Z(`mrow`);if(a1[e.type])return a1[e.type](e,t);throw new z(`Got group of unknown type: '`+e.type+`'`)};function P1(e,t,n,r,i){var a=j1(e,n),o=a.length===1&&a[0]instanceof Z&&T1.has(a[0].type)?a[0]:new Z(`mrow`,a),s=new Z(`annotation`,[new S1(t)]);s.setAttribute(`encoding`,`application/x-tex`);var c=new Z(`math`,[new Z(`semantics`,[o,s])]);return c.setAttribute(`xmlns`,`http://www.w3.org/1998/Math/MathML`),r&&c.setAttribute(`display`,`block`),Y([i?`katex`:`katex-mathml`],[c])}var F1=[[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]],I1=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],L1=function(e,t){return t.size<2?e:F1[e-1][t.size-1]},R1=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.strict=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=I1[this.size-1],this.maxSize=t.maxSize,this.minRuleThickness=t.minRuleThickness,this.strict=t.strict,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,strict:this.strict};return Object.assign(n,t),new e(n)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:L1(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:I1[e-1]})}havingBaseStyle(t){t||=this.style.text();var n=L1(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||=HQ(this.size),this._fontMetrics}getColor(){return this.phantom?`transparent`:this.color}};R1.BASESIZE=6;var z1=e=>new R1({style:e.displayMode?YZ.DISPLAY:YZ.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness,strict:e.strict}),B1=function(e,t){if(t.displayMode){var n=[`katex-display`];t.leqno&&n.push(`leqno`),t.fleqn&&n.push(`fleqn`),e=Y(n,[e])}return e},V1=function(e,t,n){var r=z1(n),i;return n.output===`mathml`?P1(e,t,r,n.displayMode,!0):(i=n.output===`html`?Y([`katex`],[b1(e,r)]):Y([`katex`],[P1(e,t,r,n.displayMode,!1),b1(e,r)]),B1(i,n))},H1=function(e,t){return B1(Y([`katex`],[b1(e,z1(t))]),t)},U1={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":`=`},W1=function(e){var t=new Z(`mo`,[new S1(U1[e.replace(/^\\/,``)])]);return t.setAttribute(`stretchy`,`true`),t},G1={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]},K1=new Set([`widehat`,`widecheck`,`widetilde`,`utilde`]),q1=function(e,t){function n(){var n=4e5,r=e.label.slice(1);if(K1.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:B$([],[new AQ([new jQ(o)],{width:`100%`,height:B(s),viewBox:`0 0 `+n+` `+a,preserveAspectRatio:`none`})],t),minWidth:0,height:s}}var l=[],u=G1[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
355
- `+h+` children.`);for(var v=0;v<h;v++){var y=new AQ([new jQ(d[v])],{width:`400em`,height:B(m),viewBox:`0 0 `+n+` `+p,preserveAspectRatio:_[v]+` slice`}),ee=B$([g[v]],[y],t);if(h===1)return{span:ee,minWidth:f,height:m};ee.style.height=B(m),l.push(ee)}return{span:Y([`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=B(o),a>0&&(i.style.minWidth=B(a)),i},J1=function(e,t,n,r,i){var a,o=e.height+e.depth+n+r;if(/fbox|color|angl/.test(t)){if(a=Y([`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 MQ({x1:`0`,y1:`0`,x2:`100%`,y2:`100%`,"stroke-width":`0.046em`})),/^x?cancel$/.test(t)&&c.push(new MQ({x1:`0`,y1:`100%`,x2:`100%`,y2:`0`,"stroke-width":`0.046em`})),a=B$([],[new AQ(c,{width:`100%`,height:B(o)})],i)}return a.height=o,a.style.height=B(o),a},Y1=[`bin`,`close`,`inner`,`open`,`punct`,`rel`],X1=[`accent-token`,`mathord`,`op-token`,`spacing`,`textord`],Z1=new Set(Y1),Q1=new Set(X1);function $1(e){return Z1.has(e)}function e0(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 t0(e){var t=n0(e);if(!t)throw Error(`Expected node of symbol group type, but got `+(e?`node of type `+e.type:String(e)));return t}function n0(e){return e.type===`atom`||Q1.has(e.type)?e:null}function r0(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 z(t,e);return r}var i0=e=>{if(e instanceof kQ)return e;if(FQ(e)&&e.children.length===1)return i0(e.children[0])},a0=(e,t)=>{var n,r,i;e&&e.type===`supsub`?(r=e0(e.base,`accent`),n=r.base,e.base=n,i=PQ(v1(e,t)),e.base=r):(r=e0(e,`accent`),n=r.base);var a=v1(n,t.havingCrampedStyle()),o=r.isShifty&&EZ(n),s=0;o&&(s=i0(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=q1(r,t),u=K$({positionType:`firstBaseline`,children:[{type:`elem`,elem:a},{type:`elem`,elem:u,wrapperClasses:[`svg-align`],wrapperStyle:s>0?{width:`calc(100% - `+B(2*s)+`)`,marginLeft:B(2*s)}:void 0}]});else{var d,f;r.label===`\\vec`?(d=Z$(`vec`,t),f=X$.vec[1]):(d=I$({type:`textord`,mode:r.mode,text:r.label},t),d=NQ(d),d.italic=0,f=d.width,c&&(l+=d.depth)),u=Y([`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=B(m),r.label===`\\textcircled`&&(u.style.top=`.2em`),u=K$({positionType:`firstBaseline`,children:[{type:`elem`,elem:a},{type:`kern`,size:-l},{type:`elem`,elem:u}]})}var h=Y([`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},o0=(e,t)=>{var n=e.isStretchy?W1(e.label):new Z(`mo`,[E1(e.label,e.mode)]),r=new Z(`mover`,[N1(e.base,t),n]);return r.setAttribute(`accent`,`true`),r},s0=new RegExp([`\\acute`,`\\grave`,`\\ddot`,`\\tilde`,`\\bar`,`\\breve`,`\\check`,`\\hat`,`\\vec`,`\\dot`,`\\mathring`].map(e=>`\\`+e).join(`|`));X({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=s1(t[0]),r=!s0.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:a0,mathmlBuilder:o0}),X({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`&&(j$({strict:e.parser.settings.strict,errorCode:`mathVsTextAccents`,errorMsg:`LaTeX's accent `+e.funcName+` works only in text mode`,report:!0}),r=`text`),{type:`accent`,mode:r,label:e.funcName,isStretchy:!1,isShifty:!0,base:n}}}),X({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=v1(e.base,t),r=q1(e,t),i=e.label===`\\utilde`?.12:0;return Y([`mord`,`accentunder`],[K$({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=W1(e.label),r=new Z(`munder`,[N1(e.base,t),n]);return r.setAttribute(`accentunder`,`true`),r}});var c0=e=>{var t=new Z(`mpadded`,e?[e]:[]);return t.setAttribute(`width`,`+0.6em`),t.setAttribute(`lspace`,`0.3em`),t};X({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=W$(v1(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=W$(v1(e.below,r,t),t),o.classes.push(a+`-arrow-pad`));var s=q1(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=K$({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=K$({positionType:`individualShift`,children:[{type:`elem`,elem:i,shift:l},{type:`elem`,elem:s,shift:c,wrapperClasses:[`svg-align`]}]});return Y([`mrel`,`x-arrow`],[u],t)},mathmlBuilder(e,t){var n=W1(e.label);n.setAttribute(`minsize`,e.label.charAt(0)===`x`?`1.75em`:`3.0em`);var r;if(e.body){var i=c0(N1(e.body,t));r=e.below?new Z(`munderover`,[n,c0(N1(e.below,t)),i]):new Z(`mover`,[n,i])}else e.below?r=new Z(`munder`,[n,c0(N1(e.below,t))]):(r=c0(),r=new Z(`mover`,[n,r]));return r}});function l0(e,t){var n=f1(e.body,t,!0);return Y([e.mclass],n,t)}function u0(e,t){var n,r=j1(e.body,t);return e.mclass===`minner`?n=new Z(`mpadded`,r):e.mclass===`mord`?e.isCharacterBox?(n=r[0],n.type=`mi`):n=new Z(`mi`,r):(e.isCharacterBox?(n=r[0],n.type=`mo`):n=new Z(`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}X({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:c1(i),isCharacterBox:EZ(i)}},htmlBuilder:l0,mathmlBuilder:u0});var d0=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`};X({type:`mclass`,names:[`\\@binrel`],numArgs:2,handler(e,t){return{type:`mclass`,mode:e.parser.mode,mclass:d0(t[0]),body:c1(t[1]),isCharacterBox:EZ(t[1])}}}),X({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`:d0(i),s={type:`op`,mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:r!==`\\stackrel`,body:c1(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:EZ(c)}}}),X({type:`pmb`,names:[`\\pmb`],numArgs:1,allowedInText:!0,handler(e,t){return{type:`pmb`,mode:e.parser.mode,mclass:d0(t[0]),body:c1(t[0])}},htmlBuilder(e,t){var n=f1(e.body,t,!0),r=Y([e.mclass],n,t);return r.style.textShadow=`0.02em 0.01em 0.04px`,r},mathmlBuilder(e,t){var n=new Z(`mstyle`,j1(e.body,t));return n.setAttribute(`style`,`text-shadow: 0.02em 0.01em 0.04px`),n}});var f0={">":`\\\\cdrightarrow`,"<":`\\\\cdleftarrow`,"=":`\\\\cdlongequal`,A:`\\uparrow`,V:`\\downarrow`,"|":`\\Vert`,".":`no arrow`},p0=()=>({type:`styling`,body:[],mode:`math`,style:`display`,resetFont:!0}),m0=e=>e.type===`textord`&&e.text===`@`,h0=(e,t)=>(e.type===`mathord`||e.type===`atom`)&&e.text===t;function g0(e,t,n){var r=f0[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 _0(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 z(`Expected \\\\ or \\cr or \\end`,e.nextToken)}for(var r=[],i=[r],a=0;a<t.length;a++){for(var o=t[a],s=p0(),c=0;c<o.length;c++)if(!m0(o[c]))s.body.push(o[c]);else{r.push(s),c+=1;var l=t0(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(h0(o[p],l)){f=!1,c=p;break}if(m0(o[p]))throw new z(`Missing a `+l+` character to complete a CD arrow.`,o[p]);u[d].body.push(o[p])}if(f)throw new z(`Missing a `+l+` character to complete a CD arrow.`,o[c])}else throw new z(`Expected one of "<>AV=|." after @`,o[c])}var m={type:`styling`,body:[g0(l,u,e)],mode:`math`,style:`display`,resetFont:!0};r.push(m),s=p0()}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([])}}X({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=W$(v1(e.label,n,t),t);return r.classes.push(`cd-label-`+e.side),r.style.bottom=B(.8-r.depth),r.height=0,r.depth=0,r},mathmlBuilder(e,t){var n=new Z(`mrow`,[N1(e.label,t)]);return n=new Z(`mpadded`,[n]),n.setAttribute(`width`,`0`),e.side===`left`&&n.setAttribute(`lspace`,`-1width`),n.setAttribute(`voffset`,`0.7em`),n=new Z(`mstyle`,[n]),n.setAttribute(`displaystyle`,`false`),n.setAttribute(`scriptlevel`,`1`),n}}),X({type:`cdlabelparent`,names:[`\\\\cdparent`],numArgs:1,handler(e,t){return{type:`cdlabelparent`,mode:e.parser.mode,fragment:t[0]}},htmlBuilder(e,t){var n=W$(v1(e.fragment,t),t);return n.classes.push(`cd-vert-arrow`),n},mathmlBuilder(e,t){return new Z(`mrow`,[N1(e.fragment,t)])}}),X({type:`textord`,names:[`\\@char`],numArgs:1,allowedInText:!0,handler(e,t){var n=e.parser,r=r0(e0(t[0],`ordgroup`),`\\@char has non-numeric argument`),i=parseInt(r),a;if(isNaN(i))throw new z(`\\@char has non-numeric argument `+r);if(i<0||i>1114111)throw new z(`\\@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}}}),X({type:`color`,names:[`\\textcolor`],numArgs:2,allowedInText:!0,argTypes:[`color`,`original`],handler(e,t){var n=e.parser,r=e0(t[0],`color-token`).color,i=t[1];return{type:`color`,mode:n.mode,color:r,body:c1(i)}},htmlBuilder:(e,t)=>U$(f1(e.body,t.withColor(e.color),!1)),mathmlBuilder:(e,t)=>{var n=new Z(`mstyle`,j1(e.body,t.withColor(e.color)));return n.setAttribute(`mathcolor`,e.color),n}}),X({type:`color`,names:[`\\color`],numArgs:1,allowedInText:!0,argTypes:[`color`],handler(e,t){var n=e.parser,r=e.breakOnTokenText,i=e0(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}}}),X({type:`cr`,names:[`\\\\`],numArgs:0,numOptionalArgs:0,allowedInText:!0,handler(e){var t=e.parser,n=t.gullet.future().text===`[`?t.parseSizeGroup(!0):null,r=!t.settings.displayMode||!j$({strict:t.settings.strict,errorCode:`newLineInDisplayMode`,errorMsg:`In LaTeX, \\\\ or \\newline does nothing in display mode`,report:!1});return{type:`cr`,mode:t.mode,newLine:r,size:n&&e0(n,`size`).value}},htmlBuilder(e,t){var n=Y([`mspace`],[],t);return e.newLine&&(n.classes.push(`katex-newline`),e.size&&(n.style.marginTop=B(vQ(e.size,t)))),n},mathmlBuilder(e,t){var n=new Z(`mspace`);return e.newLine&&(n.setAttribute(`linebreak`,`newline`),e.size&&n.setAttribute(`height`,B(vQ(e.size,t)))),n}});var v0={"\\global":`\\global`,"\\long":`\\\\globallong`,"\\\\globallong":`\\\\globallong`,"\\def":`\\gdef`,"\\gdef":`\\gdef`,"\\edef":`\\xdef`,"\\xdef":`\\xdef`,"\\let":`\\\\globallet`,"\\futurelet":`\\\\globalfuture`},y0=e=>{var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new z(`Expected a control sequence`,e);return t},b0=e=>{var t=e.gullet.popToken();return t.text===`=`&&(t=e.gullet.popToken(),t.text===` `&&(t=e.gullet.popToken())),t},x0=(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)};X({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(v0[r.text])return(n===`\\global`||n===`\\\\globallong`)&&(r.text=v0[r.text]),e0(t.parseFunction(),`internal`);throw new z(`Invalid token after macro prefix`,r)}}),X({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 z(`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 z(`Invalid argument number "`+r.text+`"`);if(parseInt(r.text)!==a+1)throw new z(`Argument number "`+r.text+`" out of order`);a++,s.push([])}else if(r.text===`EOF`)throw new z(`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===v0[n]),{type:`internal`,mode:t.mode}}}),X({type:`internal`,names:[`\\let`,`\\\\globallet`],numArgs:0,allowedInText:!0,primitive:!0,handler(e){var t=e.parser,n=e.funcName,r=y0(t.gullet.popToken());return t.gullet.consumeSpaces(),x0(t,r,b0(t),n===`\\\\globallet`),{type:`internal`,mode:t.mode}}}),X({type:`internal`,names:[`\\futurelet`,`\\\\globalfuture`],numArgs:0,allowedInText:!0,primitive:!0,handler(e){var t=e.parser,n=e.funcName,r=y0(t.gullet.popToken()),i=t.gullet.popToken(),a=t.gullet.popToken();return x0(t,r,a,n===`\\\\globalfuture`),t.gullet.pushToken(a),t.gullet.pushToken(i),{type:`internal`,mode:t.mode}}});var S0=function(e,t,n){var r=BQ(UQ.math[e]&&UQ.math[e].replace||e,t,n);if(!r)throw Error(`Unsupported symbol `+e+` and font size `+t+`.`);return r},C0=function(e,t,n,r){var i=n.havingBaseStyle(t),a=Y(r.concat(i.sizingClasses(n)),[e],n),o=i.sizeMultiplier/n.sizeMultiplier;return a.height*=o,a.depth*=o,a.maxFontSize=i.sizeMultiplier,a},w0=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=B(i),e.height-=i,e.depth+=i},T0=function(e,t,n,r,i,a){var o=C0(N$(e,`Main-Regular`,i,r),t,r,a);return n&&w0(o,r,t),o},E0=function(e,t,n,r){return N$(e,`Size`+t+`-Regular`,n,r)},D0=function(e,t,n,r,i,a){var o=E0(e,t,i,r),s=C0(Y([`delimsizing`,`size`+t],[o],r),YZ.TEXT,r,a);return n&&w0(s,r,YZ.TEXT),s},O0=function(e,t,n,r){return{type:`elem`,elem:Y([`delimsizinginner`,t===`Size1-Regular`?`delim-size1`:`delim-size4`],[Y([],[N$(e,t,n,r)])])}},k0=function(e,t,n){var r=IQ[`Size4-Regular`][e.charCodeAt(0)]?IQ[`Size4-Regular`][e.charCodeAt(0)][4]:IQ[`Size1-Regular`][e.charCodeAt(0)][4],i=B$([],[new AQ([new jQ(`inner`,uQ(e,Math.round(1e3*t)))],{width:B(r),height:B(t),style:`width:`+B(r),viewBox:`0 0 `+1e3*r+` `+Math.round(1e3*t),preserveAspectRatio:`xMinYMin`})],n);return i.height=t,i.style.height=B(t),i.style.width=B(r),{type:`elem`,elem:i}},A0=.008,j0={type:`kern`,size:-1*A0},M0=new Set([`|`,`\\lvert`,`\\rvert`,`\\vert`]),N0=new Set([`\\|`,`\\lVert`,`\\rVert`,`\\Vert`]),P0=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`):M0.has(e)?(c=`∣`,u=`vert`,d=333):N0.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=S0(o,f,i),m=p.height+p.depth,h=S0(c,f,i),g=h.height+h.depth,_=S0(l,f,i),v=_.height+_.depth,y=0,ee=1;if(s!==null){var te=S0(s,f,i);y=te.height+te.depth,ee=2}var ne=m+v+y,b=ne+Math.max(0,Math.ceil((t-ne)/(ee*g)))*ee*g,re=r.fontMetrics().axisHeight;n&&(re*=r.sizeMultiplier);var ie=b/2-re,ae=[];if(u.length>0){var oe=b-m-v,se=Math.round(b*1e3),ce=fQ(u,Math.round(oe*1e3)),le=new jQ(u,ce),ue=B(d/1e3),de=B(se/1e3),fe=B$([],[new AQ([le],{width:ue,height:de,viewBox:`0 0 `+d+` `+se})],r);fe.height=se/1e3,fe.style.width=ue,fe.style.height=de,ae.push({type:`elem`,elem:fe})}else{if(ae.push(O0(l,f,i,r)),ae.push(j0),s===null){var pe=b-m-v+2*A0;ae.push(k0(c,pe,r))}else{var me=(b-m-v-y)/2+2*A0;ae.push(k0(c,me,r)),ae.push(j0),ae.push(O0(s,f,i,r)),ae.push(j0),ae.push(k0(c,me,r))}ae.push(j0),ae.push(O0(o,f,i,r))}var he=r.havingBaseStyle(YZ.TEXT);return C0(Y([`delimsizing`,`mult`],[K$({positionType:`bottom`,positionData:ie,children:ae})],he),YZ.TEXT,r,a)},F0=80,I0=.08,L0=function(e,t,n,r,i){return B$([`hide-tail`],[new AQ([new jQ(e,lQ(e,r,n))],{width:`400em`,height:B(t),viewBox:`0 0 400000 `+n,preserveAspectRatio:`xMinYMin slice`})],i)},R0=function(e,t){var n=t.havingBaseSizing(),r=J0(`\\surd`,e*n.sizeMultiplier,K0,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+F0,e<1?i=1:e<1.4&&(i=.7),s=(1+a+I0)/i,c=(1+a)/i,o=L0(`sqrtMain`,s,l,a,t),o.style.minWidth=`0.853em`,u=.833/i):r.type===`large`?(l=(1e3+F0)*H0[r.size],c=(H0[r.size]+a)/i,s=(H0[r.size]+a+I0)/i,o=L0(`sqrtSize`+r.size,s,l,a,t),o.style.minWidth=`1.02em`,u=1/i):(s=e+a+I0,c=e+a,l=Math.floor(1e3*e+a)+F0,o=L0(`sqrtTall`,s,l,a,t),o.style.minWidth=`0.742em`,u=1.056),o.height=c,o.style.height=B(s),{span:o,advanceWidth:u,ruleWidth:(t.fontMetrics().sqrtRuleThickness+a)*i}},z0=new Set([`(`,`\\lparen`,`)`,`\\rparen`,`[`,`\\lbrack`,`]`,`\\rbrack`,`\\{`,`\\lbrace`,`\\}`,`\\rbrace`,`\\lfloor`,`\\rfloor`,`⌊`,`⌋`,`\\lceil`,`\\rceil`,`⌈`,`⌉`,`\\surd`]),B0=new Set([`\\uparrow`,`\\downarrow`,`\\updownarrow`,`\\Uparrow`,`\\Downarrow`,`\\Updownarrow`,`|`,`\\|`,`\\vert`,`\\Vert`,`\\lvert`,`\\rvert`,`\\lVert`,`\\rVert`,`\\lgroup`,`\\rgroup`,`⟮`,`⟯`,`\\lmoustache`,`\\rmoustache`,`⎰`,`⎱`]),V0=new Set([`<`,`>`,`\\langle`,`\\rangle`,`/`,`\\backslash`,`\\lt`,`\\gt`]),H0=[0,1.2,1.8,2.4,3],U0=function(e,t,n,r,i){if(e===`<`||e===`\\lt`||e===`⟨`?e=`\\langle`:(e===`>`||e===`\\gt`||e===`⟩`)&&(e=`\\rangle`),z0.has(e)||V0.has(e))return D0(e,t,!1,n,r,i);if(B0.has(e))return P0(e,H0[t],!1,n,r,i);throw new z(`Illegal delimiter: '`+e+`'`)},W0=[{type:`small`,style:YZ.SCRIPTSCRIPT},{type:`small`,style:YZ.SCRIPT},{type:`small`,style:YZ.TEXT},{type:`large`,size:1},{type:`large`,size:2},{type:`large`,size:3},{type:`large`,size:4}],G0=[{type:`small`,style:YZ.SCRIPTSCRIPT},{type:`small`,style:YZ.SCRIPT},{type:`small`,style:YZ.TEXT},{type:`stack`}],K0=[{type:`small`,style:YZ.SCRIPTSCRIPT},{type:`small`,style:YZ.SCRIPT},{type:`small`,style:YZ.TEXT},{type:`large`,size:1},{type:`large`,size:2},{type:`large`,size:3},{type:`large`,size:4},{type:`stack`}],q0=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.`)},J0=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=S0(e,q0(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]},Y0=function(e,t,n,r,i,a){e===`<`||e===`\\lt`||e===`⟨`?e=`\\langle`:(e===`>`||e===`\\gt`||e===`⟩`)&&(e=`\\rangle`);var o=V0.has(e)?W0:z0.has(e)?K0:G0,s=J0(e,t,o,r);return s.type===`small`?T0(e,s.style,n,r,i,a):s.type===`large`?D0(e,s.size,n,r,i,a):P0(e,t,n,r,i,a)},X0=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 Y0(e,Math.max(l/500*s,2*l-c),!0,r,i,a)},Z0={"\\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}},Q0=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 $0(e){return`isMiddle`in e}function e2(e,t){var n=n0(e);if(n&&Q0.has(n.text))return n;throw n?new z(`Invalid delimiter '`+n.text+`' after '`+t.funcName+`'`,e):new z(`Invalid delimiter type '`+e.type+`'`,e)}X({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=e2(s1(t[0]),e);return{type:`delimsizing`,mode:e.parser.mode,size:Z0[e.funcName].size,mclass:Z0[e.funcName].mclass,delim:n.text}},htmlBuilder:(e,t)=>e.delim===`.`?Y([e.mclass]):U0(e.delim,e.size,t,e.mode,[e.mclass]),mathmlBuilder:e=>{var t=[];e.delim!==`.`&&t.push(E1(e.delim,e.mode));var n=new Z(`mo`,t);e.mclass===`mopen`||e.mclass===`mclose`?n.setAttribute(`fence`,`true`):n.setAttribute(`fence`,`false`),n.setAttribute(`stretchy`,`true`);var r=B(H0[e.size]);return n.setAttribute(`minsize`,r),n.setAttribute(`maxsize`,r),n}});function t2(e){if(!e.body)throw Error(`Bug: The leftright ParseNode wasn't fully parsed.`)}X({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 z(`\\current@color set to non-string in \\right`);return{type:`leftright-right`,mode:e.parser.mode,delim:e2(t[0],e).text,color:n}}}),X({type:`leftright`,names:[`\\left`],numArgs:1,primitive:!0,handler:(e,t)=>{var n=e2(t[0],e),r=e.parser;++r.leftrightDepth;var i=r.parseExpression(!1);--r.leftrightDepth,r.expect(`\\right`,!1);var a=e0(r.parseFunction(),`leftright-right`);return{type:`leftright`,mode:r.mode,body:i,left:n.text,right:a.delim,rightColor:a.color}},htmlBuilder:(e,t)=>{t2(e);for(var n=f1(e.body,t,!0,[`mopen`,`mclose`]),r=0,i=0,a=!1,o=0;o<n.length;o++){var s=n[o];$0(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===`.`?_1(t,[`mopen`]):X0(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($0(u)){var d=u.isMiddle;n[l]=X0(d.delim,r,i,d.options,e.mode,[])}}var f;if(e.right===`.`)f=_1(t,[`mclose`]);else{var p=e.rightColor?t.withColor(e.rightColor):t;f=X0(e.right,r,i,p,e.mode,[`mclose`])}return n.push(f),Y([`minner`],n,t)},mathmlBuilder:(e,t)=>{t2(e);var n=j1(e.body,t);if(e.left!==`.`){var r=new Z(`mo`,[E1(e.left,e.mode)]);r.setAttribute(`fence`,`true`),n.unshift(r)}if(e.right!==`.`){var i=new Z(`mo`,[E1(e.right,e.mode)]);i.setAttribute(`fence`,`true`),e.rightColor&&i.setAttribute(`mathcolor`,e.rightColor),n.push(i)}return D1(n)}}),X({type:`middle`,names:[`\\middle`],numArgs:1,primitive:!0,handler:(e,t)=>{var n=e2(t[0],e);if(!e.parser.leftrightDepth)throw new z(`\\middle without preceding \\left`,n);return{type:`middle`,mode:e.parser.mode,delim:n.text}},htmlBuilder:(e,t)=>{var n;return e.delim===`.`?n=_1(t,[]):(n=U0(e.delim,1,t,e.mode,[]),n.isMiddle={delim:e.delim,options:t}),n},mathmlBuilder:(e,t)=>{var n=new Z(`mo`,[e.delim===`\\vert`||e.delim===`|`?E1(`|`,`text`):E1(e.delim,e.mode)]);return n.setAttribute(`fence`,`true`),n.setAttribute(`lspace`,`0.05em`),n.setAttribute(`rspace`,`0.05em`),n}}),X({type:`enclose`,names:[`\\colorbox`],numArgs:2,allowedInText:!0,argTypes:[`color`,`hbox`],handler(e,t,n){var r=e.parser,i=e.funcName,a=e0(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=W$(v1(e.body,t),t),r=e.label.slice(1),i=t.sizeMultiplier,a,o,s=EZ(e.body);if(r===`sout`)a=Y([`katex-stretchy`,`katex-sout`]),a.height=t.fontMetrics().defaultRuleThickness/i,o=-.5*t.fontMetrics().xHeight;else if(r===`phase`){var c=vQ({number:.6,unit:`pt`},t),l=vQ({number:.35,unit:`ex`},t),u=t.havingBaseSizing();i/=u.sizeMultiplier;var d=n.height+n.depth+c+l;n.style.paddingLeft=B(d/2+c);var f=Math.floor(1e3*d*i);a=B$([`hide-tail`],[new AQ([new jQ(`phase`,sQ(f))],{width:`400em`,height:B(f/1e3),viewBox:`0 0 400000 `+f,preserveAspectRatio:`xMinYMin slice`})],t),a.style.height=B(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=J1(n,r,p,m,t),/fbox|boxed|fcolorbox/.test(r)?(a.style.borderStyle=`solid`,a.style.borderWidth=B(h)):r===`angl`&&h!==.049&&(a.style.borderTopWidth=B(h),a.style.borderRightWidth=B(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=K$({positionType:`individualShift`,children:[{type:`elem`,elem:a,shift:o},{type:`elem`,elem:n,shift:0}]});else{var _=/cancel|phase/.test(r)?[`svg-align`]:[];g=K$({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?Y([`mord`,`cancel-lap`],[g],t):Y([`mord`],[g],t)},mathmlBuilder:(e,t)=>{var n,r=new Z(e.label.includes(`colorbox`)?`mpadded`:`menclose`,[N1(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: `+B(i)+` solid `+e.borderColor)}break;case`\\xcancel`:r.setAttribute(`notation`,`updiagonalstrike downdiagonalstrike`)}return e.backgroundColor&&r.setAttribute(`mathbackground`,e.backgroundColor),r}}),X({type:`enclose`,names:[`\\fcolorbox`],numArgs:3,allowedInText:!0,argTypes:[`color`,`color`,`hbox`],handler(e,t,n){var r=e.parser,i=e.funcName,a=e0(t[0],`color-token`).color,o=e0(t[1],`color-token`).color,s=t[2];return{type:`enclose`,mode:r.mode,label:i,backgroundColor:o,borderColor:a,body:s}}}),X({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]}}}),X({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}}}),X({type:`enclose`,names:[`\\sout`],numArgs:1,allowedInText:!0,handler(e,t){var n=e.parser,r=e.funcName;n.mode===`math`&&j$({strict:n.settings.strict,errorCode:`mathVsSout`,errorMsg:`LaTeX's \\sout works only in text mode`,report:!0});var i=t[0];return{type:`enclose`,mode:n.mode,label:r,body:i}}}),X({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 n2={};function r2(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)n2[n[c]]=s;a&&(i1[t]=a),o&&(a1[t]=o)}var i2={};function Q(e,t){i2[e]=t}var a2=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}},o2=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,a2.range(this,t))}};function s2(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 c2=e=>{if(!e.parser.settings.displayMode)throw new z(`{`+e.envName+`} can be used only in display mode.`)},l2=new Set([`gather`,`gather*`]);function u2(e){if(!e.includes(`ed`))return!e.includes(`*`)}function d2(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 z(`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 ee(){v&&(e.gullet.macros.get(`\\df@tag`)?(v.push(e.subparse([new o2(`\\df@tag`)])),e.gullet.macros.set(`\\df@tag`,void 0,!0)):v.push(!!c&&e.gullet.macros.get(`\\@eqnsw`)===`1`))}for(y(),_.push(s2(e));;){var te=e.parseExpression(!1,l?`\\end`:`\\\\`);e.gullet.endGroup(),e.gullet.beginGroup();var ne={type:`ordgroup`,mode:e.mode,body:te};n&&(ne={type:`styling`,mode:e.mode,style:n,resetFont:!0,body:[ne]}),m.push(ne);var b=e.fetch().text;if(b===`&`){if(d&&m.length===d){if(l||s)throw new z(`Too many tab characters: &`,e.nextToken);j$({strict:e.settings.strict,errorCode:`textEnv`,errorMsg:`Too few columns specified in the {array} column argument.`,report:!0})}e.consume()}else if(b===`\\end`){ee(),m.length===1&&ne.type===`styling`&&ne.body.length===1&&ne.body[0].type===`ordgroup`&&ne.body[0].body.length===0&&(h.length>1||!u)&&!Array.isArray(v?.[v.length-1])&&!(c&&v?.[v.length-1]===!0)&&h.pop(),_.length<h.length+1&&_.push([]);break}else if(b===`\\\\`){e.consume();var re=void 0;e.gullet.future().text!==` `&&(re=e.parseSizeGroup(!0)),g.push(re?re.value:null),ee(),_.push(s2(e)),m=[],h.push(m),y()}else throw new z(`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 f2(e){return e.slice(0,1)===`d`?`display`:`text`}var p2=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(YZ.SCRIPT).sizeMultiplier/t.sizeMultiplier));var f=e.colSeparationType===`CD`?vQ({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],ee=h,te=g;o<y.length&&(o=y.length);var ne={cells:Array(y.length),height:0,depth:0,pos:0};for(r=0;r<y.length;++r){var b=v1(y[r],t);te<b.depth&&(te=b.depth),ee<b.height&&(ee=b.height),ne.cells[r]=b}var re=e.rowGaps[n],ie=0;re&&(ie=vQ(re,t),ie>0&&(ie+=g,te<ie&&(te=ie),ie=0)),e.addJot&&n<e.body.length-1&&(te+=p),ne.height=ee,ne.depth=te,_+=ee,ne.pos=_,_+=te+ie,s[n]=ne,v(a[n+1])}var ae=_/2+t.fontMetrics().axisHeight,oe=e.cols||[],se=[],ce,le,ue=[];if(e.tags&&e.tags.some(e=>e))for(n=0;n<i;++n){var de=s[n],fe=de.pos-ae,pe=e.tags[n],me=void 0;me=pe===!0?Y([`eqn-num`],[],t):pe===!1?Y([],[],t):Y([],f1(pe,t,!0),t),me.depth=de.depth,me.height=de.height,ue.push({type:`elem`,elem:me,shift:fe})}for(r=0,le=0;r<o||le<oe.length;++r,++le){for(var he=oe[le],ge=!0;(_e=he)?.type===`separator`;){var _e;if(ge||(ce=Y([`arraycolsep`],[]),ce.style.width=B(t.fontMetrics().doubleRuleSep),se.push(ce)),he.separator===`|`||he.separator===`:`){var ve=he.separator===`|`?`solid`:`dashed`,ye=Y([`vertical-separator`],[],t);ye.style.height=B(_),ye.style.borderRightWidth=B(l),ye.style.borderRightStyle=ve,ye.style.margin=`0 `+B(-l/2);var be=_-ae;be&&(ye.style.verticalAlign=B(-be)),se.push(ye)}else throw new z(`Invalid separator type: `+he.separator);le++,he=oe[le],ge=!1}if(!(r>=o)){var xe=void 0;(r>0||e.hskipBeforeAndAfter)&&(xe=he?.pregap??d,xe!==0&&(ce=Y([`arraycolsep`],[]),ce.style.width=B(xe),se.push(ce)));var Se=[];for(n=0;n<i;++n){var Ce=s[n],we=Ce.cells[r];if(we){var Te=Ce.pos-ae;we.depth=Ce.depth,we.height=Ce.height,Se.push({type:`elem`,elem:we,shift:Te})}}var Ee=K$({positionType:`individualShift`,children:Se}),De=Y([`col-align-`+(he?.align||`c`)],[Ee]);se.push(De),(r<o-1||e.hskipBeforeAndAfter)&&(xe=he?.postgap??d,xe!==0&&(ce=Y([`arraycolsep`],[]),ce.style.width=B(xe),se.push(ce)))}}var Oe=Y([`mtable`],se);if(c.length>0){for(var ke=V$(`katex-hline`,t,l),Ae=V$(`katex-hdashline`,t,l),je=[{type:`elem`,elem:Oe,shift:0}];c.length>0;){var Me=c.pop(),Ne=Me.pos-ae;Me.isDashed?je.push({type:`elem`,elem:Ae,shift:Ne}):je.push({type:`elem`,elem:ke,shift:Ne})}Oe=K$({positionType:`individualShift`,children:je})}if(ue.length===0)return Y([`mord`],[Oe],t);var Pe=Y([`katex-tag`],[K$({positionType:`individualShift`,children:ue})],t);return U$([Oe,Pe])},m2={c:`center `,l:`left `,r:`right `},h2=function(e,t){for(var n=[],r=new Z(`mtd`,[],[`mtr-glue`]),i=new Z(`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 Z(`mtd`,[N1(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 Z(`mtr`,s))}var l=new Z(`mtable`,n),u=e.arraystretch===.5?.1:.16+e.arraystretch-1+(e.addJot?.09:0);l.setAttribute(`rowspacing`,B(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+=m2[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 ee=e.cols||[],te=``,ne=1;ne<ee.length;ne++)te+=ne%2?`0em `:`1em `;l.setAttribute(`columnspacing`,te.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 b=``,re=e.hLinesBeforeRow;d+=re[0].length>0?`left `:``,d+=re[re.length-1].length>0?`right `:``;for(var ie=1;ie<re.length-1;ie++)b+=re[ie].length===0?`none `:re[ie][0]?`dashed `:`solid `;return/[sd]/.test(b)&&l.setAttribute(`rowlines`,b.trim()),d!==``&&(l=new Z(`menclose`,[l]),l.setAttribute(`notation`,d.trim())),e.arraystretch&&e.arraystretch<1&&(l=new Z(`mstyle`,[l]),l.setAttribute(`scriptlevel`,`1`)),l},g2=function(e,t){e.envName.includes(`ed`)||c2(e);var n=[],r=e.envName===`split`,i=d2(e.parser,{cols:n,addJot:!0,autoTag:r?void 0:u2(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=r0(t[0],c);if(!/^[0-9]+$/.test(l)||Number(l)<1)throw new z(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)e0(e0(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 z(`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};r2({type:`array`,names:[`array`,`darray`],props:{numArgs:1},handler(e,t){var n=(n0(t[0])?[t[0]]:e0(t[0],`ordgroup`).body).map(function(e){var t=t0(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 z(`Unknown column alignment: `+t,e)}),r={cols:n,hskipBeforeAndAfter:!0,maxNumCols:n.length};return d2(e.parser,r,f2(e.envName))},htmlBuilder:p2,mathmlBuilder:h2}),r2({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 z(`Expected l or c or r`,i.nextToken);i.consume(),i.consumeSpaces(),i.expect(`]`),i.consume(),r.cols=[{type:`align`,align:n}]}}var a=d2(e.parser,r,f2(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:p2,mathmlBuilder:h2}),r2({type:`array`,names:[`smallmatrix`],props:{numArgs:0},handler(e){var t=d2(e.parser,{arraystretch:.5},`script`);return t.colSeparationType=`small`,t},htmlBuilder:p2,mathmlBuilder:h2}),r2({type:`array`,names:[`subarray`],props:{numArgs:1},handler(e,t){var n=(n0(t[0])?[t[0]]:e0(t[0],`ordgroup`).body).map(function(e){var t=t0(e).text;if(`lc`.includes(t))return{type:`align`,align:t};throw new z(`Unknown column alignment: `+t,e)});if(n.length>1)throw new z(`{subarray} can contain only one column`);var r={cols:n,hskipBeforeAndAfter:!1,arraystretch:.5},i=d2(e.parser,r,`script`);if(i.body.length>0&&i.body[0].length>1)throw new z(`{subarray} can contain only one column`);return i},htmlBuilder:p2,mathmlBuilder:h2}),r2({type:`array`,names:[`cases`,`dcases`,`rcases`,`drcases`],props:{numArgs:0},handler(e){var t=d2(e.parser,{arraystretch:1.2,cols:[{type:`align`,align:`l`,pregap:0,postgap:1},{type:`align`,align:`l`,pregap:0,postgap:0}]},f2(e.envName));return{type:`leftright`,mode:e.mode,body:[t],left:e.envName.includes(`r`)?`.`:`\\{`,right:e.envName.includes(`r`)?`\\}`:`.`,rightColor:void 0}},htmlBuilder:p2,mathmlBuilder:h2}),r2({type:`array`,names:[`align`,`align*`,`aligned`,`split`],props:{numArgs:0},handler:g2,htmlBuilder:p2,mathmlBuilder:h2}),r2({type:`array`,names:[`gathered`,`gather`,`gather*`],props:{numArgs:0},handler(e){l2.has(e.envName)&&c2(e);var t={cols:[{type:`align`,align:`c`}],addJot:!0,colSeparationType:`gather`,autoTag:u2(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return d2(e.parser,t,`display`)},htmlBuilder:p2,mathmlBuilder:h2}),r2({type:`array`,names:[`alignat`,`alignat*`,`alignedat`],props:{numArgs:1},handler:g2,htmlBuilder:p2,mathmlBuilder:h2}),r2({type:`array`,names:[`equation`,`equation*`],props:{numArgs:0},handler(e){c2(e);var t={autoTag:u2(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return d2(e.parser,t,`display`)},htmlBuilder:p2,mathmlBuilder:h2}),r2({type:`array`,names:[`CD`],props:{numArgs:0},handler(e){return c2(e),_0(e.parser)},htmlBuilder:p2,mathmlBuilder:h2}),Q(`\\nonumber`,`\\gdef\\@eqnsw{0}`),Q(`\\notag`,`\\nonumber`),X({type:`text`,names:[`\\hline`,`\\hdashline`],numArgs:0,allowedInText:!0,allowedInMath:!0,handler(e,t){throw new z(e.funcName+` valid only within array environment`)}});var _2=n2;X({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 z(`Invalid environment name`,i);var a=r0(i,`Environment name should contain only text characters and spaces`,!0);if(r===`\\begin`){if(!Object.prototype.hasOwnProperty.call(_2,a))throw new z(`No such environment: `+a,i);var o=_2[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=e0(n.parseFunction(),`environment`);if(p.name!==a)throw new z(`Mismatch: \\begin{`+a+`} matched by \\end{`+p.name+`}`,f);return d}return{type:`environment`,mode:n.mode,name:a,nameGroup:i}}});var v2=(e,t)=>{var n=e.font,r=t.withFont(n);return v1(e.body,r)},y2=(e,t)=>{var n=e.font,r=t.withFont(n);return N1(e.body,r)},b2={"\\Bbb":`\\mathbb`,"\\bold":`\\mathbf`,"\\frak":`\\mathfrak`};X({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=s1(t[0]),a=r in b2?b2[r]:r;return{type:`font`,mode:n.mode,font:a.slice(1),body:i}},htmlBuilder:v2,mathmlBuilder:y2}),X({type:`mclass`,names:[`\\boldsymbol`,`\\bm`],numArgs:1,handler:(e,t)=>{var n=e.parser,r=t[0];return{type:`mclass`,mode:n.mode,mclass:d0(r),body:[{type:`font`,mode:n.mode,font:`boldsymbol`,body:r}],isCharacterBox:EZ(r)}}}),X({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 x2=(e,t)=>{var n=t.style,r=n.fracNum(),i=n.fracDen(),a=t.havingStyle(r),o=v1(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=v1(e.denom,a,t),u,d,f;e.hasBarLine?(e.barSize?(d=vQ(e.barSize,t),u=V$(`frac-line`,t,d)):u=V$(`frac-line`,t),d=u.height,f=u.height):(u=null,d=0,f=t.fontMetrics().defaultRuleThickness);var p,m,h;n.size===YZ.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=K$({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=K$({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 ee=n.size===YZ.DISPLAY.size?t.fontMetrics().delim1:n.size===YZ.SCRIPTSCRIPT.size?t.havingStyle(YZ.SCRIPT).fontMetrics().delim2:t.fontMetrics().delim2,te=e.leftDelim==null?_1(t,[`mopen`]):Y0(e.leftDelim,ee,!0,t.havingStyle(n),e.mode,[`mopen`]),ne=e.continued?Y([]):e.rightDelim==null?_1(t,[`mclose`]):Y0(e.rightDelim,ee,!0,t.havingStyle(n),e.mode,[`mclose`]);return Y([`mord`].concat(a.sizingClasses(t)),[te,Y([`mfrac`],[g]),ne],t)},S2=(e,t)=>{var n=new Z(`mfrac`,[N1(e.numer,t),N1(e.denom,t)]);if(!e.hasBarLine)n.setAttribute(`linethickness`,`0px`);else if(e.barSize){var r=vQ(e.barSize,t);n.setAttribute(`linethickness`,B(r))}if(e.leftDelim!=null||e.rightDelim!=null){var i=[];if(e.leftDelim!=null){var a=new Z(`mo`,[new S1(e.leftDelim.replace(`\\`,``))]);a.setAttribute(`fence`,`true`),i.push(a)}if(i.push(n),e.rightDelim!=null){var o=new Z(`mo`,[new S1(e.rightDelim.replace(`\\`,``))]);o.setAttribute(`fence`,`true`),i.push(o)}return D1(i)}return n},C2=(e,t)=>t?{type:`styling`,mode:e.mode,style:t,body:[e]}:e;X({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`),C2({type:`genfrac`,mode:n.mode,numer:i,denom:a,continued:l,hasBarLine:o,leftDelim:s,rightDelim:c,barSize:null},u)},htmlBuilder:x2,mathmlBuilder:S2}),X({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 w2=[`display`,`text`,`script`,`scriptscript`],T2=function(e){var t=null;return e.length>0&&(t=e,t=t===`.`?null:t),t};X({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=s1(t[0]),o=a.type===`atom`&&a.family===`open`?T2(a.text):null,s=s1(t[1]),c=s.type===`atom`&&s.family===`close`?T2(s.text):null,l=e0(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=e0(p.body[0],`textord`);f=w2[Number(m.text)]}}else p=e0(p,`textord`),f=w2[Number(p.text)];return C2({type:`genfrac`,mode:n.mode,numer:r,denom:i,continued:!1,hasBarLine:u,barSize:d,leftDelim:o,rightDelim:c},f)}}),X({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:e0(t[0],`size`).value,token:r}}}),X({type:`genfrac`,names:[`\\\\abovefrac`],numArgs:3,argTypes:[`math`,`size`,`math`],handler:(e,t)=>{var n=e.parser;e.funcName;var r=t[0],i=e0(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 E2=(e,t)=>{var n=t.style,r,i;e.type===`supsub`?(r=e.sup?v1(e.sup,t.havingStyle(n.sup()),t):v1(e.sub,t.havingStyle(n.sub()),t),i=e0(e.base,`horizBrace`)):i=e0(e,`horizBrace`);var a=v1(i.base,t.havingBaseStyle(YZ.DISPLAY)),o=q1(i,t),s=i.isOver?K$({positionType:`firstBaseline`,children:[{type:`elem`,elem:a},{type:`kern`,size:.1},{type:`elem`,elem:o,wrapperClasses:[`svg-align`]}]}):K$({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=Y([`minner`,i.isOver?`mover`:`munder`],[s],t);s=i.isOver?K$({positionType:`firstBaseline`,children:[{type:`elem`,elem:c},{type:`kern`,size:.2},{type:`elem`,elem:r}]}):K$({positionType:`bottom`,positionData:c.depth+.2+r.height+r.depth,children:[{type:`elem`,elem:r},{type:`kern`,size:.2},{type:`elem`,elem:c}]})}return Y([`minner`,i.isOver?`mover`:`munder`],[s],t)};X({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:E2,mathmlBuilder:(e,t)=>{var n=W1(e.label);return new Z(e.isOver?`mover`:`munder`,[N1(e.base,t),n])}}),X({type:`href`,names:[`\\href`],numArgs:2,argTypes:[`url`,`original`],allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=t[1],i=e0(t[0],`url`).url;return n.settings.isTrusted({command:`\\href`,url:i})?{type:`href`,mode:n.mode,href:i,body:c1(r)}:n.formatUnsupportedCmd(`\\href`)},htmlBuilder:(e,t)=>{var n=f1(e.body,t,!1);return H$(e.href,[],n,t)},mathmlBuilder:(e,t)=>{var n=M1(e.body,t);return n instanceof Z||(n=new Z(`mrow`,[n])),n.setAttribute(`href`,e.href),n}}),X({type:`href`,names:[`\\url`],numArgs:1,argTypes:[`url`],allowedInText:!0,handler:(e,t)=>{var n=e.parser,r=e0(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:c1(s)}}}),X({type:`hbox`,names:[`\\hbox`],numArgs:1,argTypes:[`text`],allowedInText:!0,primitive:!0,handler(e,t){return{type:`hbox`,mode:e.parser.mode,body:c1(t[0])}},htmlBuilder(e,t){return U$(f1(e.body,t.withFont(``),!1))},mathmlBuilder(e,t){return new Z(`mrow`,j1(e.body,t.withFont(``)))}}),X({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=e0(t[0],`raw`).string,a=t[1];n.settings.strict&&j$({strict:n.settings.strict,errorCode:`htmlExtension`,errorMsg:`HTML extension is disabled on strict mode`,report:!0});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 z(`\\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:c1(a)}:n.formatUnsupportedCmd(r)},htmlBuilder:(e,t)=>{var n=f1(e.body,t,!1),r=[`enclosing`];e.attributes.class&&r.push(...e.attributes.class.trim().split(/\s+/));var i=Y(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)=>M1(e.body,t)}),X({type:`htmlmathml`,names:[`\\html@mathml`],numArgs:2,allowedInArgument:!0,allowedInText:!0,handler:(e,t)=>({type:`htmlmathml`,mode:e.parser.mode,html:c1(t[0]),mathml:c1(t[1])}),htmlBuilder:(e,t)=>U$(f1(e.html,t,!1)),mathmlBuilder:(e,t)=>M1(e.mathml,t)});var D2=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 z(`Invalid size: '`+e+`' in \\includegraphics`);var n={number:+(t[1]+t[2]),unit:t[3]};if(!_Q(n))throw new z(`Invalid unit: '`+n.unit+`' in \\includegraphics.`);return n};X({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=e0(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=D2(d);break;case`height`:a=D2(d);break;case`totalheight`:o=D2(d);break;default:throw new z(`Invalid key: '`+u[0]+`' in \\includegraphics.`)}}}var f=e0(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=vQ(e.height,t),r=0;e.totalheight.number>0&&(r=vQ(e.totalheight,t)-n);var i=0;e.width.number>0&&(i=vQ(e.width,t));var a={height:B(n+r)};i>0&&(a.width=B(i)),r>0&&(a.verticalAlign=B(-r));var o=new DQ(e.src,e.alt,a);return o.height=n,o.depth=r,o},mathmlBuilder:(e,t)=>{var n=new Z(`mglyph`,[]);n.setAttribute(`alt`,e.alt);var r=vQ(e.height,t),i=0;if(e.totalheight.number>0&&(i=vQ(e.totalheight,t)-r,n.setAttribute(`valign`,B(-i))),n.setAttribute(`height`,B(r+i)),e.width.number>0){var a=vQ(e.width,t);n.setAttribute(`width`,B(a))}return n.setAttribute(`src`,e.src),n}}),X({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=e0(t[0],`size`);if(n.settings.strict){var a=r[1]===`m`,o=i.value.unit===`mu`;a?(o||j$({strict:n.settings.strict,errorCode:`mathVsTextUnits`,errorMsg:`LaTeX's `+r+` supports only mu units, `+(`not `+i.value.unit+` units`),report:!0}),n.mode!==`math`&&j$({strict:n.settings.strict,errorCode:`mathVsTextUnits`,errorMsg:`LaTeX's `+r+` works only in math mode`,report:!0})):o&&j$({strict:n.settings.strict,errorCode:`mathVsTextUnits`,errorMsg:`LaTeX's `+r+` doesn't support mu units`,report:!0})}return{type:`kern`,mode:n.mode,dimension:i.value}},htmlBuilder(e,t){return q$(e.dimension,t)},mathmlBuilder(e,t){return new C1(vQ(e.dimension,t))}}),X({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=Y([],[v1(e.body,t)]),n=Y([`katex-inner`],[n],t)):n=Y([`katex-inner`],[v1(e.body,t)]);var r=Y([`katex-fix`],[]),i=Y([e.alignment],[n,r],t),a=Y([`katex-strut`]);return a.style.height=B(i.height+i.depth),i.depth&&(a.style.verticalAlign=B(-i.depth)),i.children.unshift(a),i=Y([`katex-thinbox`],[i],t),Y([`mord`,`katex-vbox`],[i],t)},mathmlBuilder:(e,t)=>{var n=new Z(`mpadded`,[N1(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}}),X({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}}}),X({type:`text`,names:[`\\)`,`\\]`],numArgs:0,allowedInText:!0,allowedInMath:!1,handler(e,t){throw new z(`Mismatched `+e.funcName)}});var O2=(e,t)=>{switch(t.style.size){case YZ.DISPLAY.size:return e.display;case YZ.TEXT.size:return e.text;case YZ.SCRIPT.size:return e.script;case YZ.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};X({type:`mathchoice`,names:[`\\mathchoice`],numArgs:4,primitive:!0,handler:(e,t)=>({type:`mathchoice`,mode:e.parser.mode,display:c1(t[0]),text:c1(t[1]),script:c1(t[2]),scriptscript:c1(t[3])}),htmlBuilder:(e,t)=>U$(f1(O2(e,t),t,!1)),mathmlBuilder:(e,t)=>M1(O2(e,t),t)});var k2=(e,t,n,r,i,a,o)=>{e=Y([],[e]);var s=n&&EZ(n),c,l;if(t){var u=v1(t,r.havingStyle(i.sup()),r);l={elem:u,kern:Math.max(r.fontMetrics().bigOpSpacing1,r.fontMetrics().bigOpSpacing3-u.depth)}}if(n){var d=v1(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=K$({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:B(-a)},{type:`kern`,size:c.kern},{type:`elem`,elem:e},{type:`kern`,size:l.kern},{type:`elem`,elem:l.elem,marginLeft:B(a)},{type:`kern`,size:r.fontMetrics().bigOpSpacing5}]});else if(c)f=K$({positionType:`top`,positionData:e.height-o,children:[{type:`kern`,size:r.fontMetrics().bigOpSpacing5},{type:`elem`,elem:c.elem,marginLeft:B(-a)},{type:`kern`,size:c.kern},{type:`elem`,elem:e}]});else if(l)f=K$({positionType:`bottom`,positionData:e.depth+o,children:[{type:`elem`,elem:e},{type:`kern`,size:l.kern},{type:`elem`,elem:l.elem,marginLeft:B(a)},{type:`kern`,size:r.fontMetrics().bigOpSpacing5}]});else return e;var p=[f];if(c&&a!==0&&!s){var m=Y([`mspace`],[],r);m.style.marginRight=B(a),p.unshift(m)}return Y([`mop`,`op-limits`],p,r)},A2=new Set([`\\smallint`]),j2=(e,t)=>{var n,r,i=!1,a;e.type===`supsub`?(n=e.sup,r=e.sub,a=e0(e.base,`op`),i=!0):a=e0(e,`op`);var o=t.style,s=!1;o.size===YZ.DISPLAY.size&&a.symbol&&!A2.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=N$(a.name,u,`math`,t,[`mop`,`op-symbol`,s?`large-op`:`small-op`]),l=c.italic,d.length>0){var f=Z$(d+`Size`+(s?`2`:`1`),t);c=K$({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=f1(a.body,t,!0);p.length===1&&p[0]instanceof kQ?(c=p[0],c.classes[0]=`mop`):c=Y([`mop`],p,t)}else{for(var m=[],h=1;h<a.name.length;h++)m.push(P$(a.name[h],a.mode,t));c=Y([`mop`],m,t)}var g=0,_=0;return(c instanceof kQ||a.name===`\\oiint`||a.name===`\\oiiint`)&&!a.suppressBaseShift&&(g=(c.height-c.depth)/2-t.fontMetrics().axisHeight,_=c.italic??0),i?k2(c,n,r,t,o,_,g):(g&&(c.style.position=`relative`,c.style.top=B(g)),c)},M2=(e,t)=>{var n;if(e.symbol)n=new Z(`mo`,[E1(e.name,e.mode)]),A2.has(e.name)&&n.setAttribute(`largeop`,`false`);else if(e.body)n=new Z(`mo`,j1(e.body,t));else{n=new Z(`mi`,[new S1(e.name.slice(1))]);var r=new Z(`mo`,[E1(`⁡`,`text`)]);n=e.parentIsSupSub?new Z(`mrow`,[n,r]):x1([n,r])}return n},N2={"∏":`\\prod`,"∐":`\\coprod`,"∑":`\\sum`,"⋀":`\\bigwedge`,"⋁":`\\bigvee`,"⋂":`\\bigcap`,"⋃":`\\bigcup`,"⨀":`\\bigodot`,"⨁":`\\bigoplus`,"⨂":`\\bigotimes`,"⨄":`\\biguplus`,"⨆":`\\bigsqcup`};X({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=N2[r]),{type:`op`,mode:n.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:r}},htmlBuilder:j2,mathmlBuilder:M2}),X({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:c1(r)}}});var P2={"∫":`\\int`,"∬":`\\iint`,"∭":`\\iiint`,"∮":`\\oint`,"∯":`\\oiint`,"∰":`\\oiiint`};X({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}}}),X({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}}}),X({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=P2[n]),{type:`op`,mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}}});var F2=(e,t)=>{var n,r,i=!1,a;e.type===`supsub`?(n=e.sup,r=e.sub,a=e0(e.base,`operatorname`),i=!0):a=e0(e,`operatorname`);var o;if(a.body.length>0){for(var s=f1(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 kQ&&(l.text=l.text.replace(/\u2212/,`-`).replace(/\u2217/,`*`))}o=Y([`mop`],s,t)}else o=Y([`mop`],[],t);return i?k2(o,n,r,t,t.style,0,0):o};X({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:c1(i),alwaysHandleSupSub:r===`\\operatornamewithlimits`,limits:!1,parentIsSupSub:!1}},htmlBuilder:F2,mathmlBuilder:(e,t)=>{for(var n=j1(e.body,t.withFont(`mathrm`)),r=!0,i=0;i<n.length;i++){var a=n[i];if(!(a instanceof C1)){if(a instanceof Z)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 S1?o.text=o.text.replace(/\u2212/,`-`).replace(/\u2217/,`*`):r=!1;break;default:r=!1}else r=!1}}r&&(n=[new S1(n.map(e=>e.toText()).join(``))]);var s=new Z(`mi`,n);s.setAttribute(`mathvariant`,`normal`);var c=new Z(`mo`,[E1(`⁡`,`text`)]);return e.parentIsSupSub?new Z(`mrow`,[s,c]):x1([s,c])}}),Q(`\\operatorname`,`\\@ifstar\\operatornamewithlimits\\operatorname@`),o1({type:`ordgroup`,htmlBuilder(e,t){return e.semisimple?U$(f1(e.body,t,!1)):Y([`mord`],f1(e.body,t,!0),t)},mathmlBuilder(e,t){return M1(e.body,t,!0)}}),X({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=v1(e.body,t.havingCrampedStyle()),r=V$(`overline-line`,t),i=t.fontMetrics().defaultRuleThickness;return Y([`mord`,`katex-overline`],[K$({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 Z(`mo`,[new S1(`‾`)]);n.setAttribute(`stretchy`,`true`);var r=new Z(`mover`,[N1(e.body,t),n]);return r.setAttribute(`accent`,`true`),r}}),X({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:c1(r)}},htmlBuilder:(e,t)=>U$(f1(e.body,t.withPhantom(),!1)),mathmlBuilder:(e,t)=>new Z(`mphantom`,j1(e.body,t))}),Q(`\\hphantom`,`\\smash{\\phantom{#1}}`),X({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)=>Y([`mord`,`rlap`],[Y([`katex-inner`],[v1(e.body,t.withPhantom())]),Y([`katex-fix`],[])],t),mathmlBuilder:(e,t)=>{var n=new Z(`mpadded`,[new Z(`mphantom`,j1(c1(e.body),t))]);return n.setAttribute(`width`,`0px`),n}}),X({type:`raisebox`,names:[`\\raisebox`],numArgs:2,argTypes:[`size`,`hbox`],allowedInText:!0,handler(e,t){var n=e.parser,r=e0(t[0],`size`).value,i=t[1];return{type:`raisebox`,mode:n.mode,dy:r,body:i}},htmlBuilder(e,t){var n=v1(e.body,t);return K$({positionType:`shift`,positionData:-vQ(e.dy,t),children:[{type:`elem`,elem:n}]})},mathmlBuilder(e,t){var n=new Z(`mpadded`,[N1(e.body,t)]),r=e.dy.number+e.dy.unit;return n.setAttribute(`voffset`,r),n}});var I2=(e,t)=>({type:`reflectbox`,mode:e.parser.mode,body:t[0]});X({type:`reflectbox`,names:[`\\reflectbox`],numArgs:1,argTypes:[`hbox`],allowedInText:!0,handler:I2,htmlBuilder(e,t){return Y([`mord`,`reflectbox`],[v1(e.body,t)],t)},mathmlBuilder(e,t){return N1(e.body,t)}}),X({type:`reflectbox`,names:[`\\mathreflectbox`],numArgs:1,argTypes:[`math`],handler:I2}),X({type:`internal`,names:[`\\relax`],numArgs:0,allowedInText:!0,allowedInArgument:!0,handler(e){return{type:`internal`,mode:e.parser.mode}}}),X({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=e0(t[0],`size`),o=e0(t[1],`size`);return{type:`rule`,mode:r.mode,shift:i&&e0(i,`size`).value,width:a.value,height:o.value}},htmlBuilder(e,t){var n=Y([`mord`,`katex-rule`],[],t),r=vQ(e.width,t),i=vQ(e.height,t),a=e.shift?vQ(e.shift,t):0;return n.style.borderRightWidth=B(r),n.style.borderTopWidth=B(i),n.style.bottom=B(a),n.width=r,n.height=i+a,n.depth=-a,n.maxFontSize=i*1.125*t.sizeMultiplier,n},mathmlBuilder(e,t){var n=vQ(e.width,t),r=vQ(e.height,t),i=e.shift?vQ(e.shift,t):0,a=t.color&&t.getColor()||`black`,o=new Z(`mspace`);o.setAttribute(`mathbackground`,a),o.setAttribute(`width`,B(n)),o.setAttribute(`height`,B(r));var s=new Z(`mpadded`,[o]);return i>=0?s.setAttribute(`height`,B(i)):(s.setAttribute(`height`,B(i)),s.setAttribute(`depth`,B(-i))),s.setAttribute(`voffset`,B(i)),s}});function L2(e,t,n){for(var r=f1(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 U$(r)}var R2=[`\\tiny`,`\\sixptsize`,`\\scriptsize`,`\\footnotesize`,`\\small`,`\\normalsize`,`\\large`,`\\Large`,`\\LARGE`,`\\huge`,`\\Huge`];X({type:`sizing`,names:R2,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:R2.indexOf(r)+1,body:a}},htmlBuilder:(e,t)=>{var n=t.havingSize(e.size);return L2(e.body,n,t)},mathmlBuilder:(e,t)=>{var n=t.havingSize(e.size),r=new Z(`mstyle`,j1(e.body,n));return r.setAttribute(`mathsize`,B(n.sizeMultiplier)),r}}),X({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]&&e0(n[0],`ordgroup`);if(o)for(var s,c=0;c<o.body.length;++c){var l=o.body[c];if(s=t0(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=Y([],[v1(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 Y([`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 Y([`mord`],[K$({positionType:`firstBaseline`,children:[{type:`elem`,elem:n}]})],t)},mathmlBuilder:(e,t)=>{var n=new Z(`mpadded`,[N1(e.body,t)]);return e.smashHeight&&n.setAttribute(`height`,`0px`),e.smashDepth&&n.setAttribute(`depth`,`0px`),n}}),X({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=v1(e.body,t.havingCrampedStyle());n.height===0&&(n.height=t.fontMetrics().xHeight),n=W$(n,t);var r=t.fontMetrics().defaultRuleThickness,i=r;t.style.id<YZ.TEXT.id&&(i=t.fontMetrics().xHeight);var a=r+i/4,o=R0(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=B(l);var f=K$({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(YZ.SCRIPTSCRIPT),m=v1(e.index,p,t);return Y([`mord`,`sqrt`],[Y([`katex-root`],[K$({positionType:`shift`,positionData:-(.6*(f.height-f.depth)),children:[{type:`elem`,elem:m}]})]),f],t)}return Y([`mord`,`sqrt`],[f],t)},mathmlBuilder(e,t){var n=e.body,r=e.index;return r?new Z(`mroot`,[N1(n,t),N1(r,t)]):new Z(`msqrt`,[N1(n,t)])}});var z2={display:YZ.DISPLAY,text:YZ.TEXT,script:YZ.SCRIPT,scriptscript:YZ.SCRIPTSCRIPT};function B2(e){return e in z2}X({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(!B2(o))throw Error(`Unknown style: `+o);return{type:`styling`,mode:i.mode,style:o,body:a}},htmlBuilder(e,t){var n=z2[e.style],r=t.havingStyle(n);return e.resetFont&&(r=r.withFont(``)),L2(e.body,r,t)},mathmlBuilder(e,t){var n=z2[e.style],r=t.havingStyle(n);e.resetFont&&(r=r.withFont(``));var i=new Z(`mstyle`,j1(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 V2=function(e,t){var n=e.base;return n?n.type===`op`?n.limits&&(t.style.size===YZ.DISPLAY.size||n.alwaysHandleSupSub)?j2:null:n.type===`operatorname`?n.alwaysHandleSupSub&&(t.style.size===YZ.DISPLAY.size||n.limits)?F2:null:n.type===`accent`?EZ(n.base)?a0:null:n.type===`horizBrace`&&!e.sub===n.isOver?E2:null:null};o1({type:`supsub`,htmlBuilder(e,t){var n=V2(e,t);if(n)return n(e,t);var r=e.base,i=e.sup,a=e.sub,o=v1(r,t),s,c,l=t.fontMetrics(),u=0,d=0,f=r&&EZ(r);if(i){var p=t.havingStyle(t.style.sup());s=v1(i,p,t),f||(u=o.height-p.fontMetrics().supDrop*p.sizeMultiplier/t.sizeMultiplier)}if(a){var m=t.havingStyle(t.style.sub());c=v1(a,m,t),f||(d=o.depth+m.fontMetrics().subDrop*m.sizeMultiplier/t.sizeMultiplier)}var h=t.style===YZ.DISPLAY?l.sup1:t.style.cramped?l.sup3:l.sup2,g=t.sizeMultiplier,_=B(.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 kQ||y)&&(v=B(-(o.italic??0)))}var ee;if(s&&c){u=Math.max(u,h,s.depth+.25*l.xHeight),d=Math.max(d,l.sub2);var te=4*l.defaultRuleThickness;if(u-s.depth-(c.height-d)<te){d=te-(u-s.depth)+c.height;var ne=.8*l.xHeight-(u-s.depth);ne>0&&(u+=ne,d-=ne)}ee=K$({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),ee=K$({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),ee=K$({positionType:`shift`,positionData:-u,children:[{type:`elem`,elem:s,marginRight:_}]});else throw Error(`supsub must have either sup or sub.`);return Y([g1(o,`right`)||`mord`],[o,Y([`msupsub`],[ee])],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=[N1(e.base,t)];e.sub&&a.push(N1(e.sub,t)),e.sup&&a.push(N1(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===YZ.DISPLAY||s.alwaysHandleSupSub)||s&&s.type===`operatorname`&&s.alwaysHandleSupSub&&(s.limits||t.style===YZ.DISPLAY)?`mover`:`msup`}else if(e.sup){var c=e.base;o=c&&c.type===`op`&&c.limits&&t.style===YZ.DISPLAY||c&&c.type===`operatorname`&&c.alwaysHandleSupSub&&(t.style===YZ.DISPLAY||c.limits)?`munderover`:`msubsup`}else{var l=e.base;o=l&&l.type===`op`&&l.limits&&(t.style===YZ.DISPLAY||l.alwaysHandleSupSub)||l&&l.type===`operatorname`&&l.alwaysHandleSupSub&&(l.limits||t.style===YZ.DISPLAY)?`munder`:`msub`}return new Z(o,a)}}),o1({type:`atom`,htmlBuilder(e,t){return P$(e.text,e.mode,t,[`m`+e.family])},mathmlBuilder(e,t){var n=new Z(`mo`,[E1(e.text,e.mode)]);if(e.family===`bin`){var r=k1(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 H2={mi:`italic`,mn:`normal`,mtext:`normal`};o1({type:`mathord`,htmlBuilder(e,t){return I$(e,t)},mathmlBuilder(e,t){var n=new Z(`mi`,[E1(e.text,e.mode,t)]),r=k1(e,t)||`italic`;return r!==H2[n.type]&&n.setAttribute(`mathvariant`,r),n}}),o1({type:`textord`,htmlBuilder(e,t){return I$(e,t)},mathmlBuilder(e,t){var n=E1(e.text,e.mode,t),r=k1(e,t)||`normal`,i=e.mode===`text`?new Z(`mtext`,[n]):/[0-9]/.test(e.text)?new Z(`mn`,[n]):e.text===`\\prime`?new Z(`mo`,[n]):new Z(`mi`,[n]);return r!==H2[i.type]&&i.setAttribute(`mathvariant`,r),i}});var U2=new Map([[`\\nobreak`,`nobreak`],[`\\allowbreak`,`allowbreak`]]),W2=new Map([[` `,{}],[`\\ `,{}],[`~`,{className:`nobreak`}],[`\\space`,{}],[`\\nobreakspace`,{className:`nobreak`}]]);o1({type:`spacing`,htmlBuilder(e,t){var n=W2.get(e.text),r=U2.get(e.text);if(n){var i=n.className||``;if(e.mode===`text`){var a=I$(e,t);return a.classes.push(i),a}return Y([`mspace`,i],[P$(e.text,e.mode,t)],t)}if(r)return Y([`mspace`,r],[],t);throw new z(`Unknown type of space "`+e.text+`"`)},mathmlBuilder(e,t){var n;if(W2.has(e.text))n=new Z(`mtext`,[new S1(`\xA0`)]);else if(U2.has(e.text))return new Z(`mspace`);else throw new z(`Unknown type of space "`+e.text+`"`);return n}});var G2=()=>{var e=new Z(`mtd`,[]);return e.setAttribute(`width`,`50%`),e};o1({type:`tag`,mathmlBuilder(e,t){var n=new Z(`mtable`,[new Z(`mtr`,[G2(),new Z(`mtd`,[M1(e.body,t)]),G2(),new Z(`mtd`,[M1(e.tag,t)])])]);return n.setAttribute(`width`,`100%`),n}});var K2={"\\text":void 0,"\\textrm":`textrm`,"\\textsf":`textsf`,"\\texttt":`texttt`,"\\textnormal":`textrm`},q2={"\\textbf":`textbf`,"\\textmd":`textmd`},J2={"\\textit":`textit`,"\\textup":`textup`},Y2=(e,t)=>{var n=e.font;return n?K2[n]?t.withTextFontFamily(K2[n]):q2[n]?t.withTextFontWeight(q2[n]):n===`\\emph`?t.fontShape===`textit`?t.withTextFontShape(`textup`):t.withTextFontShape(`textit`):t.withTextFontShape(J2[n]):t};X({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:c1(i),font:r}},htmlBuilder(e,t){var n=Y2(e,t);return Y([`mord`,`text`],f1(e.body,n,!0),n)},mathmlBuilder(e,t){var n=Y2(e,t);return M1(e.body,n)}}),X({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=v1(e.body,t),r=V$(`underline-line`,t),i=t.fontMetrics().defaultRuleThickness;return Y([`mord`,`katex-underline`],[K$({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 Z(`mo`,[new S1(`‾`)]);n.setAttribute(`stretchy`,`true`);var r=new Z(`munder`,[N1(e.body,t),n]);return r.setAttribute(`accentunder`,`true`),r}}),X({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=v1(e.body,t),r=t.fontMetrics().axisHeight;return K$({positionType:`shift`,positionData:.5*(n.height-r-(n.depth+r)),children:[{type:`elem`,elem:n}]})},mathmlBuilder(e,t){return new Z(`mrow`,[new Z(`mpadded`,[N1(e.body,t)],[`vcenter`])])}}),X({type:`verb`,names:[`\\verb`],numArgs:0,allowedInText:!0,handler(e,t,n){throw new z(`\\verb ended by end of line instead of matching delimiter`)},htmlBuilder(e,t){for(var n=X2(e),r=[],i=t.havingStyle(t.style.text()),a=0;a<n.length;a++){var o=n[a];o===`~`&&(o=`\\textasciitilde`),r.push(N$(o,`Typewriter-Regular`,e.mode,i,[`mord`,`texttt`]))}return Y([`mord`,`text`].concat(i.sizingClasses(t)),R$(r),i)},mathmlBuilder(e,t){var n=new Z(`mtext`,[new S1(X2(e))]);return n.setAttribute(`mathvariant`,`monospace`),n}});var X2=e=>e.body.replace(/ /g,e.star?`␣`:`\xA0`),Z2=r1,Q2=`[ \r
356
- ]`,$2=`\\\\[a-zA-Z@]+`,e4=`\\\\[^\ud800-\udfff]`,t4=`(`+$2+`)`+Q2+`*`,n4=`\\\\(
357
- |[ \r ]+
358
- ?)[ \r ]*`,r4=`[̀-ͯ]`,i4=RegExp(r4+`+$`),a4=`(`+Q2+`+)|`+(n4+`|`)+`([!-\\[\\]-‧‪-퟿豈-￿]`+(r4+`*`)+`|[\ud800-\udbff][\udc00-\udfff]`+(r4+`*`)+`|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5`+(`|`+t4)+(`|`+e4+`)`),o4=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(a4,`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 o2(`EOF`,new a2(this,t,t));var n=this.tokenRegex.exec(e);if(n===null||n.index!==t)throw new z(`Unexpected character: '`+e[t]+`'`,new o2(e[t],new a2(this,t,t+1)));var r=n[6]||n[3]||(n[2]?`\\ `:` `);if(this.catcodes[r]===14){var i=e.indexOf(`
359
- `,this.tokenRegex.lastIndex);return i===-1?(this.tokenRegex.lastIndex=e.length,j$({strict:this.settings.strict,errorCode:`commentAtEnd`,errorMsg:`% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)`,report:!0})):this.tokenRegex.lastIndex=i+1,this.lex()}return new o2(r,new a2(this,t,this.tokenRegex.lastIndex))}},s4=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 z(`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}},c4=i2;Q(`\\noexpand`,function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}}),Q(`\\expandafter`,function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}}),Q(`\\@firstoftwo`,function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}}),Q(`\\@secondoftwo`,function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}}),Q(`\\@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}}),Q(`\\@ifstar`,`\\@ifnextchar *{\\@firstoftwo{#1}}`),Q(`\\TextOrMath`,function(e){var t=e.consumeArgs(2);return e.mode===`text`?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}});var l4={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};Q(`\\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 z("\\char` missing argument");else r=t.text.charCodeAt(0)}else n=10;if(n){if(r=l4[t.text],r==null||r>=n)throw new z(`Invalid base-`+n+` digit `+t.text);for(var i;(i=l4[e.future().text])!=null&&i<n;)r*=n,r+=i,e.popToken()}return`\\@char{`+r+`}`});var u4=(e,t,n,r)=>{var i=e.consumeArg().tokens;if(i.length!==1)throw new z(`\\newcommand's first argument must be a macro name`);var a=i[0].text,o=e.isDefined(a);if(o&&!t)throw new z(`\\newcommand{`+a+`} attempting to redefine `+(a+`; use \\renewcommand`));if(!o&&!n)throw new z(`\\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 z(`Invalid number of arguments: `+c);s=parseInt(c),i=e.consumeArg().tokens}return o&&r||e.macros.set(a,{tokens:i,numArgs:s}),``};Q(`\\newcommand`,e=>u4(e,!1,!0,!1)),Q(`\\renewcommand`,e=>u4(e,!0,!1,!1)),Q(`\\providecommand`,e=>u4(e,!0,!0,!0)),Q(`\\message`,e=>{var t=e.consumeArgs(1)[0];return console.log(t.reverse().map(e=>e.text).join(``)),``}),Q(`\\errmessage`,e=>{var t=e.consumeArgs(1)[0];return console.error(t.reverse().map(e=>e.text).join(``)),``}),Q(`\\show`,e=>{var t=e.popToken(),n=t.text;return console.log(t,e.macros.get(n),Z2[n],UQ.math[n],UQ.text[n]),``}),Q(`\\bgroup`,`{`),Q(`\\egroup`,`}`),Q(`~`,`\\nobreakspace`),Q(`\\lq`,"`"),Q(`\\rq`,`'`),Q(`\\aa`,`\\r a`),Q(`\\AA`,`\\r A`),Q(`\\textcopyright`,"\\html@mathml{\\textcircled{c}}{\\char`©}"),Q(`\\copyright`,`\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}`),Q(`\\textregistered`,"\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}"),Q(`ℬ`,`\\mathscr{B}`),Q(`ℰ`,`\\mathscr{E}`),Q(`ℱ`,`\\mathscr{F}`),Q(`ℋ`,`\\mathscr{H}`),Q(`ℐ`,`\\mathscr{I}`),Q(`ℒ`,`\\mathscr{L}`),Q(`ℳ`,`\\mathscr{M}`),Q(`ℛ`,`\\mathscr{R}`),Q(`ℭ`,`\\mathfrak{C}`),Q(`ℌ`,`\\mathfrak{H}`),Q(`ℨ`,`\\mathfrak{Z}`),Q(`\\Bbbk`,`\\Bbb{k}`),Q(`\\llap`,`\\mathllap{\\textrm{#1}}`),Q(`\\rlap`,`\\mathrlap{\\textrm{#1}}`),Q(`\\clap`,`\\mathclap{\\textrm{#1}}`),Q(`\\mathstrut`,`\\vphantom{(}`),Q(`\\underbar`,`\\underline{\\text{#1}}`),Q(`\\not`,`\\html@mathml{\\mathrel{\\mathrlap\\@not}\\nobreak}{\\char"338}`),Q(`\\neq`,"\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}"),Q(`\\ne`,`\\neq`),Q(`≠`,`\\neq`),Q(`\\notin`,"\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}"),Q(`∉`,`\\notin`),Q(`≘`,"\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}"),Q(`≙`,"\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}"),Q(`≚`,"\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}"),Q(`≛`,"\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}"),Q(`≝`,"\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}"),Q(`≞`,"\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}"),Q(`≟`,"\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}"),Q(`⟂`,`\\perp`),Q(`‼`,`\\mathclose{!\\mkern-0.8mu!}`),Q(`∌`,`\\notni`),Q(`⌜`,`\\ulcorner`),Q(`⌝`,`\\urcorner`),Q(`⌞`,`\\llcorner`),Q(`⌟`,`\\lrcorner`),Q(`©`,`\\copyright`),Q(`®`,`\\textregistered`),Q(`\\ulcorner`,`\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}`),Q(`\\urcorner`,`\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}`),Q(`\\llcorner`,`\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}`),Q(`\\lrcorner`,`\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}`),Q(`\\vdots`,`{\\varvdots\\rule{0pt}{15pt}}`),Q(`⋮`,`\\vdots`),Q(`\\varGamma`,`\\mathit{\\Gamma}`),Q(`\\varDelta`,`\\mathit{\\Delta}`),Q(`\\varTheta`,`\\mathit{\\Theta}`),Q(`\\varLambda`,`\\mathit{\\Lambda}`),Q(`\\varXi`,`\\mathit{\\Xi}`),Q(`\\varPi`,`\\mathit{\\Pi}`),Q(`\\varSigma`,`\\mathit{\\Sigma}`),Q(`\\varUpsilon`,`\\mathit{\\Upsilon}`),Q(`\\varPhi`,`\\mathit{\\Phi}`),Q(`\\varPsi`,`\\mathit{\\Psi}`),Q(`\\varOmega`,`\\mathit{\\Omega}`),Q(`\\substack`,`\\begin{subarray}{c}#1\\end{subarray}`),Q(`\\colon`,`\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax`),Q(`\\boxed`,`\\fbox{$\\displaystyle{#1}$}`),Q(`\\iff`,`\\DOTSB\\;\\Longleftrightarrow\\;`),Q(`\\implies`,`\\DOTSB\\;\\Longrightarrow\\;`),Q(`\\impliedby`,`\\DOTSB\\;\\Longleftarrow\\;`),Q(`\\dddot`,`{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}`),Q(`\\ddddot`,`{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}`);var d4={",":`\\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`},f4=new Set([`bin`,`rel`]);Q(`\\dots`,function(e){var t=`\\dotso`,n=e.expandAfterFuture().text;return n in d4?t=d4[n]:(n.slice(0,4)===`\\not`||n in UQ.math&&f4.has(UQ.math[n].group))&&(t=`\\dotsb`),t});var p4={")":!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};Q(`\\dotso`,function(e){return e.future().text in p4?`\\ldots\\,`:`\\ldots`}),Q(`\\dotsc`,function(e){var t=e.future().text;return t in p4&&t!==`,`?`\\ldots\\,`:`\\ldots`}),Q(`\\cdots`,function(e){return e.future().text in p4?`\\@cdots\\,`:`\\@cdots`}),Q(`\\dotsb`,`\\cdots`),Q(`\\dotsm`,`\\cdots`),Q(`\\dotsi`,`\\!\\cdots`),Q(`\\dotsx`,`\\ldots\\,`),Q(`\\DOTSI`,`\\relax`),Q(`\\DOTSB`,`\\relax`),Q(`\\DOTSX`,`\\relax`),Q(`\\tmspace`,`\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax`),Q(`\\,`,`\\tmspace+{3mu}{.1667em}`),Q(`\\thinspace`,`\\,`),Q(`\\>`,`\\mskip{4mu}`),Q(`\\:`,`\\tmspace+{4mu}{.2222em}`),Q(`\\medspace`,`\\:`),Q(`\\;`,`\\tmspace+{5mu}{.2777em}`),Q(`\\thickspace`,`\\;`),Q(`\\!`,`\\tmspace-{3mu}{.1667em}`),Q(`\\negthinspace`,`\\!`),Q(`\\negmedspace`,`\\tmspace-{4mu}{.2222em}`),Q(`\\negthickspace`,`\\tmspace-{5mu}{.277em}`),Q(`\\enspace`,`\\kern.5em `),Q(`\\enskip`,`\\hskip.5em\\relax`),Q(`\\quad`,`\\hskip1em\\relax`),Q(`\\qquad`,`\\hskip2em\\relax`),Q(`\\tag`,`\\@ifstar\\tag@literal\\tag@paren`),Q(`\\tag@paren`,`\\tag@literal{({#1})}`),Q(`\\tag@literal`,e=>{if(e.macros.get(`\\df@tag`))throw new z(`Multiple \\tag`);return`\\gdef\\df@tag{\\text{#1}}`}),Q(`\\bmod`,`\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}`),Q(`\\pod`,`\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)`),Q(`\\pmod`,`\\pod{{\\rm mod}\\mkern6mu#1}`),Q(`\\mod`,`\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1`),Q(`\\newline`,`\\\\\\relax`),Q(`\\TeX`,`\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}`);var m4=B(IQ[`Main-Regular`][84][1]-.7*IQ[`Main-Regular`][65][1]);Q(`\\LaTeX`,`\\textrm{\\html@mathml{`+(`L\\kern-.36em\\raisebox{`+m4+`}{\\scriptstyle A}`)+`\\kern-.15em\\TeX}{LaTeX}}`),Q(`\\KaTeX`,`\\textrm{\\html@mathml{`+(`K\\kern-.17em\\raisebox{`+m4+`}{\\scriptstyle A}`)+`\\kern-.15em\\TeX}{KaTeX}}`),Q(`\\hspace`,`\\@ifstar\\@hspacer\\@hspace`),Q(`\\@hspace`,`\\hskip #1\\relax`),Q(`\\@hspacer`,`\\rule{0pt}{0pt}\\hskip #1\\relax`),Q(`\\ordinarycolon`,`:`),Q(`\\vcentcolon`,`\\mathrel{\\mathop\\ordinarycolon}`),Q(`\\dblcolon`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}`),Q(`\\coloneqq`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}`),Q(`\\Coloneqq`,`\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}`),Q(`\\coloneq`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}`),Q(`\\Coloneq`,`\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}`),Q(`\\eqqcolon`,`\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}`),Q(`\\Eqqcolon`,`\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}`),Q(`\\eqcolon`,`\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}`),Q(`\\Eqcolon`,`\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}`),Q(`\\colonapprox`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}`),Q(`\\Colonapprox`,`\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}`),Q(`\\colonsim`,`\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}`),Q(`\\Colonsim`,`\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}`),Q(`∷`,`\\dblcolon`),Q(`∹`,`\\eqcolon`),Q(`≔`,`\\coloneqq`),Q(`≕`,`\\eqqcolon`),Q(`⩴`,`\\Coloneqq`),Q(`\\ratio`,`\\vcentcolon`),Q(`\\coloncolon`,`\\dblcolon`),Q(`\\colonequals`,`\\coloneqq`),Q(`\\coloncolonequals`,`\\Coloneqq`),Q(`\\equalscolon`,`\\eqqcolon`),Q(`\\equalscoloncolon`,`\\Eqqcolon`),Q(`\\colonminus`,`\\coloneq`),Q(`\\coloncolonminus`,`\\Coloneq`),Q(`\\minuscolon`,`\\eqcolon`),Q(`\\minuscoloncolon`,`\\Eqcolon`),Q(`\\coloncolonapprox`,`\\Colonapprox`),Q(`\\coloncolonsim`,`\\Colonsim`),Q(`\\simcolon`,`\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}`),Q(`\\simcoloncolon`,`\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}`),Q(`\\approxcolon`,`\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}`),Q(`\\approxcoloncolon`,`\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}`),Q(`\\notni`,"\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}"),Q(`\\limsup`,`\\DOTSB\\operatorname*{lim\\,sup}`),Q(`\\liminf`,`\\DOTSB\\operatorname*{lim\\,inf}`),Q(`\\injlim`,`\\DOTSB\\operatorname*{inj\\,lim}`),Q(`\\projlim`,`\\DOTSB\\operatorname*{proj\\,lim}`),Q(`\\varlimsup`,`\\DOTSB\\operatorname*{\\overline{lim}}`),Q(`\\varliminf`,`\\DOTSB\\operatorname*{\\underline{lim}}`),Q(`\\varinjlim`,`\\DOTSB\\operatorname*{\\underrightarrow{lim}}`),Q(`\\varprojlim`,`\\DOTSB\\operatorname*{\\underleftarrow{lim}}`),Q(`\\gvertneqq`,`\\html@mathml{\\@gvertneqq}{≩}`),Q(`\\lvertneqq`,`\\html@mathml{\\@lvertneqq}{≨}`),Q(`\\ngeqq`,`\\html@mathml{\\@ngeqq}{≱}`),Q(`\\ngeqslant`,`\\html@mathml{\\@ngeqslant}{≱}`),Q(`\\nleqq`,`\\html@mathml{\\@nleqq}{≰}`),Q(`\\nleqslant`,`\\html@mathml{\\@nleqslant}{≰}`),Q(`\\nshortmid`,`\\html@mathml{\\@nshortmid}{∤}`),Q(`\\nshortparallel`,`\\html@mathml{\\@nshortparallel}{∦}`),Q(`\\nsubseteqq`,`\\html@mathml{\\@nsubseteqq}{⊈}`),Q(`\\nsupseteqq`,`\\html@mathml{\\@nsupseteqq}{⊉}`),Q(`\\varsubsetneq`,`\\html@mathml{\\@varsubsetneq}{⊊}`),Q(`\\varsubsetneqq`,`\\html@mathml{\\@varsubsetneqq}{⫋}`),Q(`\\varsupsetneq`,`\\html@mathml{\\@varsupsetneq}{⊋}`),Q(`\\varsupsetneqq`,`\\html@mathml{\\@varsupsetneqq}{⫌}`),Q(`\\imath`,`\\html@mathml{\\@imath}{ı}`),Q(`\\jmath`,`\\html@mathml{\\@jmath}{ȷ}`),Q(`\\llbracket`,"\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}"),Q(`\\rrbracket`,"\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}"),Q(`⟦`,`\\llbracket`),Q(`⟧`,`\\rrbracket`),Q(`\\lBrace`,"\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}"),Q(`\\rBrace`,"\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}"),Q(`↤`,`\\mapsfrom`),Q(`\\mapsfrom`,"\\html@mathml{\\mathrel{\\mathreflectbox{\\mapsto}}}{\\mathrel{\\char`↤}}"),Q(`⦃`,`\\lBrace`),Q(`⦄`,`\\rBrace`),Q(`\\minuso`,"\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}"),Q(`⦵`,`\\minuso`),Q(`\\darr`,`\\downarrow`),Q(`\\dArr`,`\\Downarrow`),Q(`\\Darr`,`\\Downarrow`),Q(`\\lang`,`\\langle`),Q(`\\rang`,`\\rangle`),Q(`\\uarr`,`\\uparrow`),Q(`\\uArr`,`\\Uparrow`),Q(`\\Uarr`,`\\Uparrow`),Q(`\\N`,`\\mathbb{N}`),Q(`\\R`,`\\mathbb{R}`),Q(`\\Z`,`\\mathbb{Z}`),Q(`\\alef`,`\\aleph`),Q(`\\alefsym`,`\\aleph`),Q(`\\Alpha`,`\\mathrm{A}`),Q(`\\Beta`,`\\mathrm{B}`),Q(`\\bull`,`\\bullet`),Q(`\\Chi`,`\\mathrm{X}`),Q(`\\clubs`,`\\clubsuit`),Q(`\\cnums`,`\\mathbb{C}`),Q(`\\Complex`,`\\mathbb{C}`),Q(`\\Dagger`,`\\ddagger`),Q(`\\diamonds`,`\\diamondsuit`),Q(`\\empty`,`\\emptyset`),Q(`\\Epsilon`,`\\mathrm{E}`),Q(`\\Eta`,`\\mathrm{H}`),Q(`\\exist`,`\\exists`),Q(`\\harr`,`\\leftrightarrow`),Q(`\\hArr`,`\\Leftrightarrow`),Q(`\\Harr`,`\\Leftrightarrow`),Q(`\\hearts`,`\\heartsuit`),Q(`\\image`,`\\Im`),Q(`\\infin`,`\\infty`),Q(`\\Iota`,`\\mathrm{I}`),Q(`\\isin`,`\\in`),Q(`\\Kappa`,`\\mathrm{K}`),Q(`\\larr`,`\\leftarrow`),Q(`\\lArr`,`\\Leftarrow`),Q(`\\Larr`,`\\Leftarrow`),Q(`\\lrarr`,`\\leftrightarrow`),Q(`\\lrArr`,`\\Leftrightarrow`),Q(`\\Lrarr`,`\\Leftrightarrow`),Q(`\\Mu`,`\\mathrm{M}`),Q(`\\natnums`,`\\mathbb{N}`),Q(`\\Nu`,`\\mathrm{N}`),Q(`\\Omicron`,`\\mathrm{O}`),Q(`\\plusmn`,`\\pm`),Q(`\\rarr`,`\\rightarrow`),Q(`\\rArr`,`\\Rightarrow`),Q(`\\Rarr`,`\\Rightarrow`),Q(`\\real`,`\\Re`),Q(`\\reals`,`\\mathbb{R}`),Q(`\\Reals`,`\\mathbb{R}`),Q(`\\Rho`,`\\mathrm{P}`),Q(`\\sdot`,`\\cdot`),Q(`\\sect`,`\\S`),Q(`\\spades`,`\\spadesuit`),Q(`\\sub`,`\\subset`),Q(`\\sube`,`\\subseteq`),Q(`\\supe`,`\\supseteq`),Q(`\\Tau`,`\\mathrm{T}`),Q(`\\thetasym`,`\\vartheta`),Q(`\\weierp`,`\\wp`),Q(`\\Zeta`,`\\mathrm{Z}`),Q(`\\argmin`,`\\DOTSB\\operatorname*{arg\\,min}`),Q(`\\argmax`,`\\DOTSB\\operatorname*{arg\\,max}`),Q(`\\plim`,`\\DOTSB\\mathop{\\operatorname{plim}}\\limits`),Q(`\\bra`,`\\mathinner{\\langle{#1}|}`),Q(`\\ket`,`\\mathinner{|{#1}\\rangle}`),Q(`\\braket`,`\\mathinner{\\langle{#1}\\rangle}`),Q(`\\Bra`,`\\left\\langle#1\\right|`),Q(`\\Ket`,`\\left|#1\\right\\rangle`);var h4=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}};Q(`\\bra@ket`,h4(!1)),Q(`\\bra@set`,h4(!0)),Q(`\\Braket`,`\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}`),Q(`\\Set`,`\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}`),Q(`\\set`,`\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}`),Q(`\\angln`,`{\\angl n}`),Q(`\\blue`,`\\textcolor{##6495ed}{#1}`),Q(`\\orange`,`\\textcolor{##ffa500}{#1}`),Q(`\\pink`,`\\textcolor{##ff00af}{#1}`),Q(`\\red`,`\\textcolor{##df0030}{#1}`),Q(`\\green`,`\\textcolor{##28ae7b}{#1}`),Q(`\\gray`,`\\textcolor{gray}{#1}`),Q(`\\purple`,`\\textcolor{##9d38bd}{#1}`),Q(`\\blueA`,`\\textcolor{##ccfaff}{#1}`),Q(`\\blueB`,`\\textcolor{##80f6ff}{#1}`),Q(`\\blueC`,`\\textcolor{##63d9ea}{#1}`),Q(`\\blueD`,`\\textcolor{##11accd}{#1}`),Q(`\\blueE`,`\\textcolor{##0c7f99}{#1}`),Q(`\\tealA`,`\\textcolor{##94fff5}{#1}`),Q(`\\tealB`,`\\textcolor{##26edd5}{#1}`),Q(`\\tealC`,`\\textcolor{##01d1c1}{#1}`),Q(`\\tealD`,`\\textcolor{##01a995}{#1}`),Q(`\\tealE`,`\\textcolor{##208170}{#1}`),Q(`\\greenA`,`\\textcolor{##b6ffb0}{#1}`),Q(`\\greenB`,`\\textcolor{##8af281}{#1}`),Q(`\\greenC`,`\\textcolor{##74cf70}{#1}`),Q(`\\greenD`,`\\textcolor{##1fab54}{#1}`),Q(`\\greenE`,`\\textcolor{##0d923f}{#1}`),Q(`\\goldA`,`\\textcolor{##ffd0a9}{#1}`),Q(`\\goldB`,`\\textcolor{##ffbb71}{#1}`),Q(`\\goldC`,`\\textcolor{##ff9c39}{#1}`),Q(`\\goldD`,`\\textcolor{##e07d10}{#1}`),Q(`\\goldE`,`\\textcolor{##a75a05}{#1}`),Q(`\\redA`,`\\textcolor{##fca9a9}{#1}`),Q(`\\redB`,`\\textcolor{##ff8482}{#1}`),Q(`\\redC`,`\\textcolor{##f9685d}{#1}`),Q(`\\redD`,`\\textcolor{##e84d39}{#1}`),Q(`\\redE`,`\\textcolor{##bc2612}{#1}`),Q(`\\maroonA`,`\\textcolor{##ffbde0}{#1}`),Q(`\\maroonB`,`\\textcolor{##ff92c6}{#1}`),Q(`\\maroonC`,`\\textcolor{##ed5fa6}{#1}`),Q(`\\maroonD`,`\\textcolor{##ca337c}{#1}`),Q(`\\maroonE`,`\\textcolor{##9e034e}{#1}`),Q(`\\purpleA`,`\\textcolor{##ddd7ff}{#1}`),Q(`\\purpleB`,`\\textcolor{##c6b9fc}{#1}`),Q(`\\purpleC`,`\\textcolor{##aa87ff}{#1}`),Q(`\\purpleD`,`\\textcolor{##7854ab}{#1}`),Q(`\\purpleE`,`\\textcolor{##543b78}{#1}`),Q(`\\mintA`,`\\textcolor{##f5f9e8}{#1}`),Q(`\\mintB`,`\\textcolor{##edf2df}{#1}`),Q(`\\mintC`,`\\textcolor{##e0e5cc}{#1}`),Q(`\\grayA`,`\\textcolor{##f6f7f7}{#1}`),Q(`\\grayB`,`\\textcolor{##f0f1f2}{#1}`),Q(`\\grayC`,`\\textcolor{##e3e5e6}{#1}`),Q(`\\grayD`,`\\textcolor{##d6d8da}{#1}`),Q(`\\grayE`,`\\textcolor{##babec2}{#1}`),Q(`\\grayF`,`\\textcolor{##888d93}{#1}`),Q(`\\grayG`,`\\textcolor{##626569}{#1}`),Q(`\\grayH`,`\\textcolor{##3b3e40}{#1}`),Q(`\\grayI`,`\\textcolor{##21242c}{#1}`),Q(`\\kaBlue`,`\\textcolor{##314453}{#1}`),Q(`\\kaGreen`,`\\textcolor{##71B307}{#1}`);var g4={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},_4=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 s4(c4,t.macros),this.mode=n,this.stack=[]}feed(e){this.lexer=new o4(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 o2(`EOF`,n.loc)),this.pushTokens(r),new o2(``,a2.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 z(`Extra }`,i)}else if(i.text===`EOF`)throw new z(`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 z(`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 z(`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 z(`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 z(`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 z(`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 z(`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 o2(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 o4(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(Z2,e)||Object.prototype.hasOwnProperty.call(UQ.math,e)||Object.prototype.hasOwnProperty.call(UQ.text,e)||Object.prototype.hasOwnProperty.call(g4,e)}isExpandable(e){var t=this.macros.get(e);return t==null?Object.prototype.hasOwnProperty.call(Z2,e)&&!Z2[e].primitive:typeof t==`string`||typeof t==`function`||!t.unexpandable}},v4=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,y4=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`,ᵝ:`β`,ᵞ:`γ`,ᵟ:`δ`,ᵠ:`ϕ`,ᵡ:`χ`,ᶿ:`θ`}),b4={"́":{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`}},x4={á:`á`,à:`à`,ä:`ä`,ǟ:`ǟ`,ã:`ã`,ā:`ā`,ă:`ă`,ắ:`ắ`,ằ:`ằ`,ẵ:`ẵ`,ǎ:`ǎ`,â:`â`,ấ:`ấ`,ầ:`ầ`,ẫ:`ẫ`,ȧ:`ȧ`,ǡ:`ǡ`,å:`å`,ǻ:`ǻ`,ḃ:`ḃ`,ć:`ć`,ḉ:`ḉ`,č:`č`,ĉ:`ĉ`,ċ:`ċ`,ç:`ç`,ď:`ď`,ḋ:`ḋ`,ḑ:`ḑ`,é:`é`,è:`è`,ë:`ë`,ẽ:`ẽ`,ē:`ē`,ḗ:`ḗ`,ḕ:`ḕ`,ĕ:`ĕ`,ḝ:`ḝ`,ě:`ě`,ê:`ê`,ế:`ế`,ề:`ề`,ễ:`ễ`,ė:`ė`,ȩ:`ȩ`,ḟ:`ḟ`,ǵ:`ǵ`,ḡ:`ḡ`,ğ:`ğ`,ǧ:`ǧ`,ĝ:`ĝ`,ġ:`ġ`,ģ:`ģ`,ḧ:`ḧ`,ȟ:`ȟ`,ĥ:`ĥ`,ḣ:`ḣ`,ḩ:`ḩ`,í:`í`,ì:`ì`,ï:`ï`,ḯ:`ḯ`,ĩ:`ĩ`,ī:`ī`,ĭ:`ĭ`,ǐ:`ǐ`,î:`î`,ǰ:`ǰ`,ĵ:`ĵ`,ḱ:`ḱ`,ǩ:`ǩ`,ķ:`ķ`,ĺ:`ĺ`,ľ:`ľ`,ļ:`ļ`,ḿ:`ḿ`,ṁ:`ṁ`,ń:`ń`,ǹ:`ǹ`,ñ:`ñ`,ň:`ň`,ṅ:`ṅ`,ņ:`ņ`,ó:`ó`,ò:`ò`,ö:`ö`,ȫ:`ȫ`,õ:`õ`,ṍ:`ṍ`,ṏ:`ṏ`,ȭ:`ȭ`,ō:`ō`,ṓ:`ṓ`,ṑ:`ṑ`,ŏ:`ŏ`,ǒ:`ǒ`,ô:`ô`,ố:`ố`,ồ:`ồ`,ỗ:`ỗ`,ȯ:`ȯ`,ȱ:`ȱ`,ő:`ő`,ṕ:`ṕ`,ṗ:`ṗ`,ŕ:`ŕ`,ř:`ř`,ṙ:`ṙ`,ŗ:`ŗ`,ś:`ś`,ṥ:`ṥ`,š:`š`,ṧ:`ṧ`,ŝ:`ŝ`,ṡ:`ṡ`,ş:`ş`,ẗ:`ẗ`,ť:`ť`,ṫ:`ṫ`,ţ:`ţ`,ú:`ú`,ù:`ù`,ü:`ü`,ǘ:`ǘ`,ǜ:`ǜ`,ǖ:`ǖ`,ǚ:`ǚ`,ũ:`ũ`,ṹ:`ṹ`,ū:`ū`,ṻ:`ṻ`,ŭ:`ŭ`,ǔ:`ǔ`,û:`û`,ů:`ů`,ű:`ű`,ṽ:`ṽ`,ẃ:`ẃ`,ẁ:`ẁ`,ẅ:`ẅ`,ŵ:`ŵ`,ẇ:`ẇ`,ẘ:`ẘ`,ẍ:`ẍ`,ẋ:`ẋ`,ý:`ý`,ỳ:`ỳ`,ÿ:`ÿ`,ỹ:`ỹ`,ȳ:`ȳ`,ŷ:`ŷ`,ẏ:`ẏ`,ẙ:`ẙ`,ź:`ź`,ž:`ž`,ẑ:`ẑ`,ż:`ż`,Á:`Á`,À:`À`,Ä:`Ä`,Ǟ:`Ǟ`,Ã:`Ã`,Ā:`Ā`,Ă:`Ă`,Ắ:`Ắ`,Ằ:`Ằ`,Ẵ:`Ẵ`,Ǎ:`Ǎ`,Â:`Â`,Ấ:`Ấ`,Ầ:`Ầ`,Ẫ:`Ẫ`,Ȧ:`Ȧ`,Ǡ:`Ǡ`,Å:`Å`,Ǻ:`Ǻ`,Ḃ:`Ḃ`,Ć:`Ć`,Ḉ:`Ḉ`,Č:`Č`,Ĉ:`Ĉ`,Ċ:`Ċ`,Ç:`Ç`,Ď:`Ď`,Ḋ:`Ḋ`,Ḑ:`Ḑ`,É:`É`,È:`È`,Ë:`Ë`,Ẽ:`Ẽ`,Ē:`Ē`,Ḗ:`Ḗ`,Ḕ:`Ḕ`,Ĕ:`Ĕ`,Ḝ:`Ḝ`,Ě:`Ě`,Ê:`Ê`,Ế:`Ế`,Ề:`Ề`,Ễ:`Ễ`,Ė:`Ė`,Ȩ:`Ȩ`,Ḟ:`Ḟ`,Ǵ:`Ǵ`,Ḡ:`Ḡ`,Ğ:`Ğ`,Ǧ:`Ǧ`,Ĝ:`Ĝ`,Ġ:`Ġ`,Ģ:`Ģ`,Ḧ:`Ḧ`,Ȟ:`Ȟ`,Ĥ:`Ĥ`,Ḣ:`Ḣ`,Ḩ:`Ḩ`,Í:`Í`,Ì:`Ì`,Ï:`Ï`,Ḯ:`Ḯ`,Ĩ:`Ĩ`,Ī:`Ī`,Ĭ:`Ĭ`,Ǐ:`Ǐ`,Î:`Î`,İ:`İ`,Ĵ:`Ĵ`,Ḱ:`Ḱ`,Ǩ:`Ǩ`,Ķ:`Ķ`,Ĺ:`Ĺ`,Ľ:`Ľ`,Ļ:`Ļ`,Ḿ:`Ḿ`,Ṁ:`Ṁ`,Ń:`Ń`,Ǹ:`Ǹ`,Ñ:`Ñ`,Ň:`Ň`,Ṅ:`Ṅ`,Ņ:`Ņ`,Ó:`Ó`,Ò:`Ò`,Ö:`Ö`,Ȫ:`Ȫ`,Õ:`Õ`,Ṍ:`Ṍ`,Ṏ:`Ṏ`,Ȭ:`Ȭ`,Ō:`Ō`,Ṓ:`Ṓ`,Ṑ:`Ṑ`,Ŏ:`Ŏ`,Ǒ:`Ǒ`,Ô:`Ô`,Ố:`Ố`,Ồ:`Ồ`,Ỗ:`Ỗ`,Ȯ:`Ȯ`,Ȱ:`Ȱ`,Ő:`Ő`,Ṕ:`Ṕ`,Ṗ:`Ṗ`,Ŕ:`Ŕ`,Ř:`Ř`,Ṙ:`Ṙ`,Ŗ:`Ŗ`,Ś:`Ś`,Ṥ:`Ṥ`,Š:`Š`,Ṧ:`Ṧ`,Ŝ:`Ŝ`,Ṡ:`Ṡ`,Ş:`Ş`,Ť:`Ť`,Ṫ:`Ṫ`,Ţ:`Ţ`,Ú:`Ú`,Ù:`Ù`,Ü:`Ü`,Ǘ:`Ǘ`,Ǜ:`Ǜ`,Ǖ:`Ǖ`,Ǚ:`Ǚ`,Ũ:`Ũ`,Ṹ:`Ṹ`,Ū:`Ū`,Ṻ:`Ṻ`,Ŭ:`Ŭ`,Ǔ:`Ǔ`,Û:`Û`,Ů:`Ů`,Ű:`Ű`,Ṽ:`Ṽ`,Ẃ:`Ẃ`,Ẁ:`Ẁ`,Ẅ:`Ẅ`,Ŵ:`Ŵ`,Ẇ:`Ẇ`,Ẍ:`Ẍ`,Ẋ:`Ẋ`,Ý:`Ý`,Ỳ:`Ỳ`,Ÿ:`Ÿ`,Ỹ:`Ỹ`,Ȳ:`Ȳ`,Ŷ:`Ŷ`,Ẏ:`Ẏ`,Ź:`Ź`,Ž:`Ž`,Ẑ:`Ẑ`,Ż:`Ż`,ά:`ά`,ὰ:`ὰ`,ᾱ:`ᾱ`,ᾰ:`ᾰ`,έ:`έ`,ὲ:`ὲ`,ή:`ή`,ὴ:`ὴ`,ί:`ί`,ὶ:`ὶ`,ϊ:`ϊ`,ΐ:`ΐ`,ῒ:`ῒ`,ῑ:`ῑ`,ῐ:`ῐ`,ό:`ό`,ὸ:`ὸ`,ύ:`ύ`,ὺ:`ὺ`,ϋ:`ϋ`,ΰ:`ΰ`,ῢ:`ῢ`,ῡ:`ῡ`,ῠ:`ῠ`,ώ:`ώ`,ὼ:`ὼ`,Ύ:`Ύ`,Ὺ:`Ὺ`,Ϋ:`Ϋ`,Ῡ:`Ῡ`,Ῠ:`Ῠ`,Ώ:`Ώ`,Ὼ:`Ὼ`},S4=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 _4(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 z(`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 o2(`}`)),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&&Z2[i.text]&&Z2[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 z(`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],[])]}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 z(`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 z(`Limit controls must follow a math operator`,i);this.consume()}else if(i.text===`^`){if(n)throw new z(`Double superscript`,i);n=this.handleSupSubscript(`superscript`)}else if(i.text===`_`){if(r)throw new z(`Double subscript`,i);r=this.handleSupSubscript(`subscript`)}else if(i.text===`'`){if(n)throw new z(`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(y4[i.text]){var s=v4.test(i.text),c=[];for(c.push(new o2(y4[i.text])),this.consume();;){var l=this.fetch().text;if(!y4[l]||v4.test(l)!==s)break;c.unshift(new o2(y4[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=Z2[r];if(!i)return null;if(this.consume(),t&&t!==`atom`&&!i.allowedInArgument)throw new z(`Got function '`+r+`' with no arguments`+(t?` as `+t:``),n);if(this.mode===`text`&&!i.allowedInText)throw new z(`Can't use function '`+r+`' in text mode`,n);if(this.mode===`math`&&i.allowedInMath===!1)throw new z(`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=Z2[e];if(o&&o.handler)return o.handler(a,t,n);throw new z(`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 z(`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 z(`A primitive argument cannot be optional`);var a=this.parseGroup(e);if(a==null)throw new z(`Expected group as `+e,this.fetch());return a;case`original`:case void 0:return this.parseArgumentGroup(n);default:throw new z(`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 z(`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 z(`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 z(`Invalid size: '`+t.text+`'`,t);var i={number:+(r[1]+r[2]),unit:r[3]};if(!_Q(i))throw new z(`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:a2.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(g4,r)){if(this.settings.throwOnError)throw new z(`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:a2.range(r,o),text:`---`}),t-=2):(e.splice(n,2,{type:`textord`,mode:`text`,loc:a2.range(r,a),text:`--`}),--t)}(i===`'`||i==="`")&&a.text===i&&(e.splice(n,2,{type:`textord`,mode:`text`,loc:a2.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 z(`\\verb assertion failed --
360
- 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(x4,t[0])&&!UQ[this.mode][t[0]]&&(this.settings.strict&&this.mode===`math`&&j$({strict:this.settings.strict,errorCode:`unicodeTextInMathMode`,errorMsg:`Accented Unicode text character "`+t[0]+`" used in math mode`,report:!0,token:e}),t=x4[t[0]]+t.slice(1));var i=i4.exec(t);i&&(t=t.substring(0,i.index),t===`i`?t=`ı`:t===`j`&&(t=`ȷ`));var a;if(UQ[this.mode][t]){this.settings.strict&&this.mode===`math`&&p$.includes(t)&&j$({strict:this.settings.strict,errorCode:`unicodeTextInMathMode`,errorMsg:`Latin-1/Unicode text character "`+t[0]+`" used in math mode`,report:!0,token:e});var o=UQ[this.mode][t].group,s=a2.range(e);a=$1(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&&($Z(t.charCodeAt(0))?this.mode===`math`&&j$({strict:this.settings.strict,errorCode:`unicodeTextInMathMode`,errorMsg:`Unicode text character "`+t[0]+`" used in math mode`,report:!0,token:e}):j$({strict:this.settings.strict,errorCode:`unknownSymbol`,errorMsg:`Unrecognized Unicode character "`+t[0]+`"`+(` (`+t.charCodeAt(0)+`)`),report:!0,token:e})),a={type:`textord`,mode:`text`,loc:a2.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(!b4[l])throw new z(`Unknown accent ' `+l+`'`,e);var u=b4[l][this.mode]||b4[l].text;if(!u)throw new z(`Accent `+l+` unsupported in `+this.mode+` mode`,e);a={type:`accent`,mode:this.mode,loc:a2.range(e),label:u,isStretchy:!1,isShifty:!0,base:a}}return a}};S4.endOfExpression=new Set([`}`,`\\endgroup`,`\\end`,`\\right`,`&`]);var C4=function(e,t){if(!(typeof e==`string`||e instanceof String))throw TypeError(`KaTeX can only parse string typed expression`);var n=new S4(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 z(`\\tag works only in display equations`);r=[{type:`tag`,mode:`text`,body:r,tag:n.subparse([new o2(`\\df@tag`)])}]}return r},w4=function(e,t,n){t.textContent=``;var r=O4(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.`),w4=function(){throw new z(`KaTeX doesn't work in quirks mode.`)});var T4=function(e,t){return O4(e,t).toMarkup()},E4=function(e,t){return C4(e,new MZ(t))},D4=function(e,t,n){if(n.throwOnError||!(e instanceof z))throw e;var r=Y([`katex-error`],[new kQ(t)]);return r.setAttribute(`title`,e.toString()),r.setAttribute(`style`,`color:`+n.errorColor),r},O4=function(e,t){var n=new MZ(t);try{return V1(C4(e,n),e,n)}catch(t){return D4(t,e,n)}},k4={version:`0.19.0`,render:w4,renderToString:T4,ParseError:z,SETTINGS_SCHEMA:OZ,__parse:E4,__renderToDomTree:O4,__renderToHTMLTree:function(e,t){var n=new MZ(t);try{return H1(C4(e,n),n)}catch(t){return D4(t,e,n)}},__setFontMetrics:zQ,__defineSymbol:V,__defineFunction:X,__defineMacro:Q,__domTree:{Span:TQ,Anchor:EQ,SymbolNode:kQ,SvgNode:AQ,PathNode:jQ,LineNode:MQ}};function A4(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var j4=A4();function M4(e){j4=e}var N4={exec:()=>null};function P4(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function F4(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(L4.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var I4=((e=``)=>{try{return!!RegExp(`(?<=1)(?<!1)`+e)}catch{return!1}})(),L4={codeRemoveIndent:/^(?: {0,3}\t| {1,4})/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,endingSpaceTabChar:/[ \t]$/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,leadingSpaceTab:/^[ \t]+/,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,numericCharacterReference:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));/g,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:P4(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:P4(e=>RegExp(`^ {0,${e}}((?:-[ ]*){3,}|(?:_[ ]*){3,}|(?:\\*[ ]*){3,})(?:\\n+|$)`)),fencesBeginRegex:P4(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:P4(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:P4(e=>RegExp(`^ {0,${e}}(?:</?(?:${Q4})(?: +|$|/?>)|<(?:script|pre|style|textarea|!--))`,`i`)),blockquoteBeginRegex:P4(e=>RegExp(`^ {0,${e}}>`))},R4=/^(?:[ \t]*(?:\n|$))+/,z4=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,B4=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,V4=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,H4=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,U4=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,W4=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,G4=F4(W4).replace(/bull/g,U4).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),K4=F4(W4).replace(/bull/g,U4).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),q4=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,J4=/^[^\n]+/,Y4=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,X4=F4(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,Y4).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Z4=F4(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,U4).getRegex(),Q4=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,$4=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,e3=F4(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][a-z0-9-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,$4).replace(`tag`,Q4).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),t3=e=>F4(q4).replace(`hr`,V4).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,e).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Q4).getRegex(),n3=t3(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),r3=t3(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),i3={blockquote:F4(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,r3).getRegex(),code:z4,def:X4,fences:B4,heading:H4,hr:V4,html:e3,lheading:G4,list:Z4,newline:R4,paragraph:n3,table:N4,text:J4},a3=F4(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,V4).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Q4).getRegex(),o3={...i3,lheading:K4,table:a3,paragraph:F4(q4).replace(`hr`,V4).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,a3).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Q4).getRegex()},s3={...i3,html:F4(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,$4).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:N4,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:F4(q4).replace(`hr`,V4).replace(`heading`,` *#{1,6} *[^
361
- ]`).replace(`lheading`,G4).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},c3=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,l3=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,u3=/^( {2,}|\\)\n(?!\s*$)[ \t]*/,d3=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,f3=/[\p{P}\p{S}]/u,p3=/[\s\p{P}\p{S}]/u,m3=/[^\s\p{P}\p{S}]/u,h3=F4(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,p3).getRegex(),g3=/[\p{Pi}\p{Ps}"']/u,_3=/(?!~)[\p{P}\p{S}]/u,v3=/(?!~)[\s\p{P}\p{S}]/u,y3=/(?:[^\s\p{P}\p{S}]|~)/u,b3=F4(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,I4?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),x3=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,S3=F4(x3,`u`).replace(/punct/g,f3).getRegex(),C3=F4(x3,`u`).replace(/punct/g,_3).getRegex(),w3=F4(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,`u`).replace(/openQuote/g,g3).replace(/punct/g,f3).getRegex(),T3=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,E3=F4(T3,`gu`).replace(/notPunctSpace/g,m3).replace(/punctSpace/g,p3).replace(/punct/g,f3).getRegex(),D3=F4(T3,`gu`).replace(/notPunctSpace/g,y3).replace(/punctSpace/g,v3).replace(/punct/g,_3).getRegex(),O3=F4(`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,m3).replace(/punctSpace/g,p3).replace(/punct/g,f3).getRegex(),k3=F4(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,m3).replace(/punctSpace/g,p3).replace(/punct/g,f3).getRegex(),A3=F4(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,m3).replace(/punctSpace/g,p3).replace(/punct/g,f3).getRegex(),j3=F4(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,f3).getRegex(),M3=F4(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,m3).replace(/punctSpace/g,p3).replace(/punct/g,f3).getRegex(),N3=F4(/\\(punct)/,`gu`).replace(/punct/g,f3).getRegex(),P3=F4(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),F3=F4($4).replace(`(?:-->|$)`,`-->`).getRegex(),I3=F4(`^comment|^</[a-zA-Z][a-zA-Z0-9-]*\\s*>|^<[a-zA-Z][a-zA-Z0-9-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,F3).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),L3=/\[(?:\\[\s\S]|[^\[\]\\])*\]/,R3=F4(/(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/).replace(`brackets`,L3).getRegex(),z3=F4(/^!?\[(label)\]\([ \t\n]*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?[ \t\n]*\)/).replace(`label`,R3).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),B3=F4(/^!?\[(label)\]\[(ref)\]/).replace(`label`,R3).replace(`ref`,Y4).getRegex(),V3=F4(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,Y4).getRegex(),H3=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\]){1,999}/,U3=F4(/(?:[^\[\]\\`]*(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\]))){0,999}?[^\[\]\\`]*?/).replace(`brackets`,L3).getRegex(),W3=F4(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,F4(/^!?\[(label)\]\[(ref)\]/).replace(`label`,U3).replace(`ref`,H3).getRegex()).replace(`nolink`,F4(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,H3).getRegex()).getRegex(),G3=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,fae=F4(/(?:mailto:email|xmpp:email(?:\/[A-Za-z0-9@.]+)?)/).replace(/email/g,/[A-Za-z0-9._+-]+@[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),K3={_backpedal:N4,anyPunctuation:N3,autolink:P3,blockSkip:b3,br:u3,code:l3,del:N4,delLDelim:N4,delRDelim:N4,emStrongLDelim:S3,emStrongRDelimAst:E3,emStrongRDelimUnd:k3,escape:c3,link:z3,nolink:V3,punctuation:h3,reflink:B3,reflinkSearch:W3,tag:I3,text:d3,url:N4},pae={...K3,emStrongLDelim:w3,emStrongRDelimAst:O3,emStrongRDelimUnd:A3,link:F4(/^!?\[(label)\]\((.*?)\)/).replace(`label`,R3).getRegex(),reflink:F4(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,R3).getRegex()},q3={...K3,emStrongRDelimAst:D3,emStrongLDelim:C3,delLDelim:j3,delRDelim:M3,url:F4(/^emailProtocol|^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`emailProtocol`,fae).replace(`protocol`,G3).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:F4(/^(?:[^a-zA-Z0-9](?=emailProtocol)|(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9](?=emailProtocol)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))))/).replace(`protocol`,G3).replace(/emailProtocol/g,/(?:mailto|xmpp):/).getRegex()},mae={...q3,br:F4(u3).replace(`{2,}`,`*`).getRegex(),text:F4(q3.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},J3={normal:i3,gfm:o3,pedantic:s3},Y3={normal:K3,gfm:q3,breaks:mae,pedantic:pae},hae={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`},X3=e=>hae[e];function Z3(e,t){if(t){if(L4.escapeTest.test(e))return e.replace(L4.escapeReplace,X3)}else if(L4.escapeTestNoEncode.test(e))return e.replace(L4.escapeReplaceNoEncode,X3);return e}function gae(e){return e.replace(L4.numericCharacterReference,(e,t,n)=>{let r=t===void 0?Number.parseInt(n,16):Number.parseInt(t,10);return r===0||r>1114111||r>=55296&&r<=57343?`�`:String.fromCodePoint(r)})}function Q3(e){try{e=encodeURI(e).replace(L4.percentDecode,`%`)}catch{return null}return e}function $3(e,t){let n=e.replace(L4.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(L4.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t){if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``)}for(;r<n.length;r++)n[r]=n[r].trim().replace(L4.slashPipe,`|`);return n}function e6(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function t6(e){let t=e.split(`
362
- `),n=t.length-1;for(;n>=0&&L4.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join(`
363
- `)}function n6(e){return e.trim().toLowerCase().toUpperCase().toLowerCase()}function r6(e,t){if(e.indexOf(t[0])===-1&&e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function i6(e,t=0){let n=t,r=``;for(let t of e)if(t===` `){let e=4-n%4;r+=` `.repeat(e),n+=e}else r+=t,n++;return r}function a6(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`),c=e[0].charAt(0)===`!`;r.state.inLink=!0;let l=r.state.linkEmitted,u=r.state.inRawBlock;r.state.linkEmitted=!1;let d=r.inlineTokens(s),f=r.state.linkEmitted;if(r.state.linkEmitted=l,r.state.inLink=!1,!c){if(f){r.state.inRawBlock=u;return}r.state.linkEmitted=!0}return{type:c?`image`:`link`,raw:n,href:a,title:o,text:s,tokens:d}}function _ae(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
364
- `).map(e=>{let t=e.match(n.other.beginningSpace);if(t===null)return e;let[r]=t;return e.slice(Math.min(r.length,i.length))}).join(`
365
- `)}function o6(e,t,n,r){if(!t.includes(`<`))return!1;for(let i=0;i<t.length;i++){if(t[i]===`\\`){i++;continue}if(t[i]==="`"){let e=r.inline.code.exec(t.slice(i));if(e){i+=e[0].length-1;continue}}if(t[i]!==`<`)continue;let a=e.slice(n+i),o=r.inline.tag.exec(a)||r.inline.autolink.exec(a);if(o){if(o[0].length>t.length-i)return!0;i+=o[0].length-1}}return!1}var s6=class{options;rules;lexer;constructor(e){this.options=e||j4}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=this.options.pedantic?t[0]:t6(t[0]);return{type:`code`,raw:e,codeBlockStyle:`indented`,text:e.replace(this.rules.other.codeRemoveIndent,``)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=_ae(e,t[3]||``,this.rules);return{type:`code`,raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,`$1`):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=e6(e,`#`);(this.options.pedantic||!t||this.rules.other.endingSpaceTabChar.test(t))&&(e=t.trim())}return{type:`heading`,raw:e6(t[0],`
366
- `),depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:e6(t[0],`
367
- `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=e6(t[0],`
368
- `).split(`
369
- `),n=``,r=``,i=[];for(;e.length>0;){let t=!1,a=[],o=0;for(;o<e.length;o++)if(this.rules.other.blockquoteStart.test(e[o]))a.push(e[o]),t=!0;else if(!t)a.push(e[o]);else break;e=e.slice(o);let s=a.join(`
370
- `),c=s.replace(this.rules.other.blockquoteSetextReplace,`
371
- $1`).replace(this.rules.other.blockquoteSetextReplace2,``);n=n?`${n}
372
- ${s}`:s,r=r?`${r}
373
- ${c}`:c;let l=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,i,!0),this.lexer.state.top=l,e.length===0)break;let u=i.at(-1);if(u?.type===`code`)break;if(u?.type===`blockquote`){let t=u,a=e.join(`
374
- `),o=t.raw+`
375
- `+a.replace(this.rules.other.blockquoteSetextReplace2,``),s=this.blockquote(o);i[i.length-1]=s;let c=o.substring(s.raw.length).replace(/^\n/,``),l=c?c.split(`
376
- `).length:0,d=l?e.slice(0,-l):e;d.length>0&&(n=`${n}
377
- ${d.join(`
378
- `)}`),r=r.substring(0,r.length-t.text.length)+s.text;break}if(u?.type===`list`){let t=u,a=t.raw+`
379
- `+e.join(`
380
- `),o=this.list(a);i[i.length-1]=o,n=n.substring(0,n.length-u.raw.length)+o.raw,r=r.substring(0,r.length-t.raw.length)+o.raw,e=a.substring(i.at(-1).raw.length).split(`
381
- `);continue}}return{type:`blockquote`,raw:n,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:`list`,raw:``,ordered:r,start:r?+n.slice(0,-1):``,loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:`[*+-]`);let a=this.rules.other.listItemRegex(n),o=!1;for(;e;){let n=!1,r=``,s=``;if(!(t=a.exec(e))||this.rules.block.hr.test(e))break;r=t[0],e=e.substring(r.length);let c=t[2].split(`
382
- `,1)[0],l=t[1].length,u=this.options.pedantic?i6(c,l):c.replace(this.rules.other.leadingSpaceTab,e=>i6(e,l)),d=e.split(`
383
- `,1)[0],f=!u.trim(),p=0;if(this.options.pedantic?(p=2,s=u.trimStart()):f?p=l+1:(p=u.search(this.rules.other.nonSpaceChar),p=p>4?1:p,s=u.slice(p),p+=l),f&&this.rules.other.blankLine.test(d)&&(r+=d+`
384
- `,e=e.substring(d.length+1),n=!0),!n){let t=this.rules.other.nextBulletRegex(p),n=this.rules.other.hrRegex(p),i=this.rules.other.fencesBeginRegex(p),a=this.rules.other.headingBeginRegex(p),o=this.rules.other.htmlBeginRegex(p),c=this.rules.other.blockquoteBeginRegex(p);for(;e;){let l=e.split(`
385
- `,1)[0],m;if(d=l,this.options.pedantic?(d=d.replace(this.rules.other.listReplaceNesting,` `),m=d):m=d.replace(this.rules.other.leadingSpaceTab,e=>e.replace(this.rules.other.tabCharGlobal,` `)),i.test(d)||a.test(d)||o.test(d)||c.test(d)||t.test(d)||n.test(d))break;if(m.search(this.rules.other.nonSpaceChar)>=p||!d.trim())s+=`
386
- `+m.slice(p);else{if(f||u.replace(this.rules.other.tabCharGlobal,` `).search(this.rules.other.nonSpaceChar)>=4||i.test(u)||a.test(u)||n.test(u))break;s+=`
387
- `+d}f=!d.trim(),r+=l+`
388
- `,e=e.substring(l.length+1),u=m.slice(p)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(r)&&(o=!0)),i.items.push({type:`list_item`,raw:r,task:!!this.options.gfm&&this.rules.other.listIsTask.test(s),loose:!1,text:s,tokens:[]}),i.raw+=r}let s=i.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let e of i.items)if(this.lexer.state.top=!1,e.tokens=this.lexer.blockTokens(e.text,[]),!i.loose){let t=e.tokens.filter(e=>e.type===`space`);i.loose=t.length>0&&t.some(e=>this.rules.other.anyLine.test(e.raw))}for(let e of i.items){let t=e.tokens[0];if(e.task&&(t?.type===`text`||t?.type===`paragraph`)){e.text=e.text.replace(this.rules.other.listReplaceTask,``),t.raw=t.raw.replace(this.rules.other.listReplaceTask,``),t.text=t.text.replace(this.rules.other.listReplaceTask,``);for(let e=this.lexer.inlineQueue.length-1;e>=0;e--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)){this.lexer.inlineQueue[e].src=this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask,``);break}let n=this.rules.other.listTaskCheckbox.exec(e.raw);if(n){let t={type:`checkbox`,raw:n[0]+` `,checked:n[0]!==`[ ]`};e.checked=t.checked,i.loose?e.tokens[0]&&[`paragraph`,`text`].includes(e.tokens[0].type)&&`tokens`in e.tokens[0]&&e.tokens[0].tokens?(e.tokens[0].raw=t.raw+e.tokens[0].raw,e.tokens[0].text=t.raw+e.tokens[0].text,e.tokens[0].tokens.unshift(t)):e.tokens.unshift({type:`paragraph`,raw:t.raw,text:t.raw,tokens:[t]}):e.tokens.unshift(t)}}else e.task&&=!1}if(i.loose)for(let e of i.items){e.loose=!0;for(let t of e.tokens)t.type===`text`&&(t.type=`paragraph`)}return i}}html(e){let t=this.rules.block.html.exec(e);if(t){let e=t6(t[0]);return{type:`html`,block:!0,raw:e,pre:t[1]===`pre`||t[1]===`script`||t[1]===`style`,text:e}}}def(e){let t=this.rules.block.def.exec(e);if(t){if(!this.rules.other.startAngleBracket.test(t[2])&&r6(t[2],`()`)!==-1)return;let e=n6(t[1]).replace(this.rules.other.multipleSpaceGlobal,` `),n=t[2]?t[2].replace(this.rules.other.hrefBrackets,`$1`).replace(this.rules.inline.anyPunctuation,`$1`):``,r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,`$1`):t[3];return{type:`def`,tag:e,raw:e6(t[0],`
389
- `),href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=$3(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,``).split(`|`),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,``).split(`
390
- `):[],a={type:`table`,raw:e6(t[0],`
391
- `),header:[],align:[],rows:[]};if(n.length===r.length){for(let e of r)this.rules.other.tableAlignRight.test(e)?a.align.push(`right`):this.rules.other.tableAlignCenter.test(e)?a.align.push(`center`):this.rules.other.tableAlignLeft.test(e)?a.align.push(`left`):a.align.push(null);for(let e=0;e<n.length;e++)a.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:a.align[e]});for(let e of i)a.rows.push($3(e,a.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:a.align[t]})));return a}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let e=t[1].trim();return{type:`heading`,raw:e6(t[0],`
392
- `),depth:t[2].charAt(0)===`=`?1:2,text:e,tokens:this.lexer.inline(e)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
393
- `?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){if(this.lexer.state.linkParenPossible===!1)return;let t=this.rules.inline.link.exec(e);if(t){let n=t[0].charAt(0)===`!`?2:1;if(!this.options.pedantic&&o6(e,t[1],n,this.rules))return;let r=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(r)){if(!this.rules.other.endAngleBracket.test(r))return;let e=e6(r.slice(0,-1),`\\`);if((r.length-e.length)%2==0)return}else{let e=r6(t[2],`()`);if(e===-2)return;if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let i=t[2],a=``;if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(i);e&&(i=e[1],a=e[3])}else a=t[3]?t[3].slice(1,-1):``;return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(i=this.options.pedantic&&!this.rules.other.endAngleBracket.test(r)?i.slice(1):i.slice(1,-1)),a6(t,{href:i&&i.replace(this.rules.inline.anyPunctuation,`$1`),title:a&&a.replace(this.rules.inline.anyPunctuation,`$1`)},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=n[0].charAt(0)===`!`?2:1;if(!this.options.pedantic&&o6(e,n[1],r,this.rules))return;let i=t[n6((n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,` `))];if(!i){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return a6(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,a,o,s=i,c=0,l=r[0][0],u=n===l,d=l===`*`?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,t=t.slice(-1*e.length+i);(r=d.exec(t))!==null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(o=[...a].length,r[3]||r[4]){s+=o;continue}if(r[5]||r[6]){if(i%3&&!((i+o)%3)){c+=o;continue}if(u)break}if(s-=o,s>0)continue;o=Math.min(o,o+s+c);let t=[...r[0]][0].length,n=e.slice(0,i+r.index+t+o);if(Math.min(i,o)%2){let e=n.slice(1,-1);return{type:`em`,raw:n,text:e,tokens:this.lexer.inlineTokens(e)}}let l=n.slice(2,-2);return{type:`strong`,raw:n,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal,` `),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e,t,n=``){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=this.rules.inline.delRDelim;for(s.lastIndex=0,t=t.slice(-1*e.length+n);(r=s.exec(t))!==null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i||(a=[...i].length,a!==n))continue;if(r[3]||r[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let t=[...r[0]][0].length,s=e.slice(0,n+r.index+t+a),c=s.slice(n,-n);return{type:`del`,raw:s,text:c,tokens:this.lexer.inlineTokens(c)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=t[1],n=`mailto:`+e):(e=t[1],n=e),{type:`link`,raw:t[0],text:e,href:n,autolink:!0,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=t[0],n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??``;while(r!==t[0]);e=t[0],n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,autolink:!0,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:`text`,raw:t[0],text:e?t[0]:gae(t[0]),escaped:e}}}},c6=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||j4,this.options.tokenizer=this.options.tokenizer||new s6,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,linkEmitted:!1,linkParenPossible:!0,top:!0};let t={other:L4,block:J3.normal,inline:Y3.normal};this.options.pedantic?(t.block=J3.pedantic,t.inline=Y3.pedantic):this.options.gfm&&(t.block=J3.gfm,t.inline=this.options.breaks?Y3.breaks:Y3.gfm),this.tokenizer.rules=t}static get rules(){return{block:J3,inline:Y3}}static lex(t,n){return new e(n).lex(t)}static lexInline(t,n){return new e(n).inlineTokens(t)}lex(e){e=e.replace(L4.carriageReturn,`
394
- `),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(L4.tabCharGlobal,` `).replace(L4.spaceLine,``));let r=1/0;for(;e;){if(e.length<r)r=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let i;if(this.options.extensions?.block?.some(n=>(i=n.call({lexer:this},e,t))?(e=e.substring(i.raw.length),t.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let n=t.at(-1);i.raw.length===1&&n!==void 0?n.raw+=`
395
- `:t.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
396
- `)?``:`
397
- `)+i.raw,n.text+=`
398
- `+i.text,this.inlineQueue.at(-1).src=n.text):t.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
399
- `)?``:`
400
- `)+i.raw,n.text+=`
401
- `+i.raw,this.inlineQueue.at(-1).src=n.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},t.push(i));continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),t.push(i);continue}let a=e;if(this.options.extensions?.startBlock){let t=1/0,n=e.slice(1),r;this.options.extensions.startBlock.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(a=e.substring(0,t+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){let r=t.at(-1);n&&r?.type===`paragraph`?(r.raw+=(r.raw.endsWith(`
402
- `)?``:`
403
- `)+i.raw,r.text+=`
404
- `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(i),n=a.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`text`?(n.raw+=(n.raw.endsWith(`
405
- `)?``:`
406
- `)+i.raw,n.text+=`
407
- `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(i);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}linkInText(e){if(!e.includes(`[`))return!1;let t=this.tokenizer.rules.inline.link;for(let n of e.matchAll(this.tokenizer.rules.inline.blockSkip))if(t.test(n[0])&&e.charAt(n.index-1)!==`!`)return!0;for(let t of e.matchAll(this.tokenizer.rules.inline.reflinkSearch)){let e=t[0],n=e.lastIndexOf(`[`);if(e.charAt(0)!==`!`&&Object.hasOwn(this.tokens.links,n6(e.slice(n+1,-1)))&&!(n>1&&this.linkInText(e.slice(1,n-1))))return!0}return!1}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=this.state.linkParenPossible;this.state.linkParenPossible=n&&e.includes(`)`);try{return this.#e(e,t)}finally{this.state.linkParenPossible=n}}#e(e,t){let n=e;if(this.tokens.links&&e.includes(`[`)){let e=this.tokenizer.rules.inline.reflinkSearch,t=n=>{let r=n.lastIndexOf(`[`);if(!Object.hasOwn(this.tokens.links,n6(n.slice(r+1,-1))))return n;if(r>1&&n.charAt(0)!==`!`){let i=n.slice(1,r-1);if(this.linkInText(i))return`[`+i.replace(e,t)+`][`+`a`.repeat(n.length-r-2)+`]`}return`[`+`a`.repeat(n.length-2)+`]`};n=n.replace(e,t)}n=n.replace(this.tokenizer.rules.inline.anyPunctuation,e=>`+`.repeat(e.length)),n=n.replace(this.tokenizer.rules.inline.blockSkip,(e,t,n)=>{let r=n?n.length:0;return e.slice(0,r)+`[`+`a`.repeat(e.length-r-2)+`]`}),n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let r=!1,i=``,a=1/0;for(;e;){if(e.length<a)a=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}r||(i=``),r=!1;let o;if(this.options.extensions?.inline?.some(n=>(o=n.call({lexer:this},e,t))?(e=e.substring(o.raw.length),t.push(o),!0):!1))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let n=t.at(-1);o.type===`text`&&n?.type===`text`?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,i)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e,n,i)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let s=e;if(this.options.extensions?.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(s=e.substring(0,t+1))}if(o=this.tokenizer.inlineText(s)){e=e.substring(o.raw.length),o.raw.slice(-1)!==`_`&&(i=o.raw.slice(-1)),r=!0;let n=t.at(-1);n?.type===`text`?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t=`Infinite loop on byte: `+e;if(this.options.silent)console.error(t);else throw Error(t)}},l6=class{options;parser;constructor(e){this.options=e||j4}space(e){return``}code({text:e,lang:t,escaped:n}){let r=(t||``).match(L4.notSpaceStart)?.[0],i=e?e.replace(L4.endingNewline,``)+`
408
- `:``;return r?`<pre><code class="language-`+Z3(r)+`">`+(n?i:Z3(i,!0))+`</code></pre>
409
- `:`<pre><code>`+(n?i:Z3(i,!0))+`</code></pre>
410
- `}blockquote({tokens:e}){return`<blockquote>
411
- ${this.parser.parse(e)}</blockquote>
412
- `}html({text:e}){return e}def(e){return``}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
413
- `}hr(e){return`<hr>
414
- `}list(e){let t=e.ordered,n=e.start,r=``;for(let t=0;t<e.items.length;t++){let n=e.items[t];r+=this.listitem(n)}let i=t?`ol`:`ul`,a=t&&n!==1?` start="`+n+`"`:``;return`<`+i+a+`>
415
- `+r+`</`+i+`>
416
- `}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
417
- `}checkbox({checked:e}){return`<input `+(e?`checked="" `:``)+`disabled="" type="checkbox"> `}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
418
- `}table(e){let t=``,n=``;for(let t=0;t<e.header.length;t++)n+=this.tablecell(e.header[t]);t+=this.tablerow({text:n});let r=``;for(let t=0;t<e.rows.length;t++){let i=e.rows[t];n=``;for(let e=0;e<i.length;e++)n+=this.tablecell(i[e]);r+=this.tablerow({text:n})}return r&&=`<tbody>${r}</tbody>`,`<table>
419
- <thead>
420
- `+t+`</thead>
421
- `+r+`</table>
422
- `}tablerow({text:e}){return`<tr>
423
- ${e}</tr>
424
- `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
425
- `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${Z3(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,text:n,tokens:r,autolink:i}){let a=i?Z3(n,!0):this.parser.parseInline(r),o=Q3(e);if(o===null)return a;e=Z3(o,i);let s=`<a href="`+e+`"`;return t&&(s+=` title="`+Z3(t)+`"`),s+=`>`+a+`</a>`,s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=Q3(e);if(i===null)return Z3(n);e=i;let a=`<img src="${Z3(e)}" alt="${Z3(n)}"`;return t&&(a+=` title="${Z3(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:Z3(e.text)}},u6=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},d6=class e{options;renderer;textRenderer;constructor(e){this.options=e||j4,this.options.renderer=this.options.renderer||new l6,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new u6}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(n!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`checkbox`,`html`,`def`,`paragraph`,`text`].includes(e.type)){t+=n||``;continue}}let i=r;switch(i.type){case`space`:t+=this.renderer.space(i);break;case`hr`:t+=this.renderer.hr(i);break;case`heading`:t+=this.renderer.heading(i);break;case`code`:t+=this.renderer.code(i);break;case`table`:t+=this.renderer.table(i);break;case`blockquote`:t+=this.renderer.blockquote(i);break;case`list`:t+=this.renderer.list(i);break;case`checkbox`:t+=this.renderer.checkbox(i);break;case`html`:t+=this.renderer.html(i);break;case`def`:t+=this.renderer.def(i);break;case`paragraph`:t+=this.renderer.paragraph(i);break;case`text`:t+=this.renderer.text(i);break;default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`checkbox`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`checkbox`:n+=t.checkbox(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},f6=class{options;block;constructor(e){this.options=e||j4}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`,`emStrongMask`]);static passThroughHooksRespectAsync=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?c6.lex:c6.lexInline}provideParser(e=this.block){return e?d6.parse:d6.parseInline}},p6=class{defaults=A4();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=d6;Renderer=l6;TextRenderer=u6;Lexer=c6;Tokenizer=s6;Hooks=f6;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new l6(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new s6(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new f6;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];t[r]=f6.passThroughHooks.has(n)?e=>{if(this.defaults.async&&f6.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return c6.lex(e,t??this.defaults)}parser(e,t){return d6.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(typeof t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer(e):e?c6.lex:c6.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser(e):e?d6.parse:d6.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer(e):e?c6.lex:c6.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser(e):e?d6.parse:d6.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
426
- Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+Z3(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}},m6=new p6;function h6(e,t){return m6.parse(e,t)}h6.options=h6.setOptions=function(e){return m6.setOptions(e),h6.defaults=m6.defaults,M4(h6.defaults),h6},h6.getDefaults=A4,h6.defaults=j4;function vae(...e){return m6.use(...e),h6.defaults=m6.defaults,M4(h6.defaults),h6}h6.use=vae,h6.walkTokens=function(e,t){return m6.walkTokens(e,t)},h6.parseInline=m6.parseInline,h6.Parser=d6,h6.parser=d6.parse,h6.Renderer=l6,h6.TextRenderer=u6,h6.Lexer=c6,h6.lexer=c6.lex,h6.Tokenizer=s6,h6.Hooks=f6,h6.parse=h6,h6.options,h6.setOptions,h6.walkTokens,h6.parseInline,d6.parse,c6.lex;var g6=(e,t)=>n(k4.renderToString(e,{displayMode:t,throwOnError:!1,output:`htmlAndMathml`}),`src/ui/markdown.ts#renderMath`),yae={name:`blockMath`,level:`block`,start:e=>n(e.indexOf(`$$`),`src/ui/markdown.ts#start`),tokenizer:e=>{let t=/^\$\$([\s\S]+?)\$\$(?:\n|$)/.exec(e);return n(t===null?void 0:{type:`blockMath`,raw:t[0],text:(t[1]??``).trim()},`src/ui/markdown.ts#tokenizer`)},renderer:e=>n(`<div class="math-block">${g6(String(e.text),!0)}</div>`,`src/ui/markdown.ts#renderer`)},bae={name:`inlineMath`,level:`inline`,start:e=>n(e.indexOf(`$`),`src/ui/markdown.ts#start~2`),tokenizer:e=>{let t=/^\$(?!\s)((?:\\\$|[^$\n])+?)(?<!\s)\$(?!\d)/.exec(e);return n(t===null?void 0:{type:`inlineMath`,raw:t[0],text:t[1]??``},`src/ui/markdown.ts#tokenizer~2`)},renderer:e=>n(g6(String(e.text),!1),`src/ui/markdown.ts#renderer~2`)},_6=new p6({gfm:!0,breaks:!1});_6.use({extensions:[yae,bae]});var v6=new Map,xae=500,y6=e=>{let t=v6.get(e);if(t!==void 0)return n(t,`src/ui/markdown.ts#renderMarkdown`);let r=vZ.sanitize(_6.parse(e,{async:!1}),{USE_PROFILES:{html:!0,mathMl:!0,svg:!0}});if(v6.size>=xae){let e=v6.keys().next();e.done!==!0&&v6.delete(e.value)}return v6.set(e,r),n(r,`src/ui/markdown.ts#renderMarkdown`)},Sae=e=>n(y6(e).replace(/^<p>/,``).replace(/<\/p>\s*$/,``),`src/ui/markdown.ts#renderInlineMarkdown`),b6=(e,t,r)=>n(r.div([r.Class(CK(`prose prose-neutral max-w-none dark:prose-invert prose-headings:tracking-tight prose-code:before:content-none prose-code:after:content-none`,t)),r.InnerHTML(y6(e))]),`src/ui/markdown.ts#markdownView`),x6=(e,t,r)=>n(r.span([r.Class(t),r.InnerHTML(Sae(e))]),`src/ui/markdown.ts#inlineMarkdownView`),S6=rO({Answering:{},Submitting:{response:EW},Answered:{response:EW,feedback:OW}}),C6=M({question:SW,maybeSelectedOptionId:CC(A),text:A,note:A,isNoteOpen:RS,maybeConfidence:CC(lG),phase:S6,canHint:RS,hints:N(A),isHintLoading:RS,maybeHintError:CC(A)}),w6=nO({SelectedOption:{optionId:A},UpdatedText:{value:A},UpdatedNote:{value:A},ToggledNote:{},SelectedConfidence:{confidence:lG},ClickedSubmit:{},ClickedDontKnow:{},ClickedHint:{},SucceededHint:{hint:A},FailedHint:{error:A},ClickedContinue:{},PressedKey:{key:A,isModified:RS,isInTextField:RS}}),T6=nO({SubmittedAnswer:{response:EW,note:A,maybeConfidence:CC(lG),hintLevel:j},ContinuedAfterFeedback:{}}),Cae=F(`RequestHint`,{args:{questionId:A,level:qS([1,2,3]),attempt:A},messages:[w6.SucceededHint,w6.FailedHint],execute:e=>n(O(function*(){let t=yield*(yield*yK).learning.hint({payload:{questionId:xW.make(e.questionId),level:e.level,attempt:e.attempt}});return n(w6.SucceededHint({hint:t.hint}),`src/component/quizCard.ts#anonymous`)}).pipe(Wp(e=>n(E(w6.FailedHint({error:xK(e)})),`src/component/quizCard.ts#anonymous~2`))),`src/component/quizCard.ts#execute`)}),E6=(e,t={})=>n({question:e,maybeSelectedOptionId:x(),text:``,note:``,isNoteOpen:!1,maybeConfidence:x(),phase:S6.Answering(),canHint:t.canHint??!1,hints:[],isHintLoading:!1,maybeHintError:x()},`src/component/quizCard.ts#init`),D6=(e,t)=>n(S6.match(e.phase,{Answering:()=>n(e,`src/component/quizCard.ts#Answering`),Submitting:({response:r})=>n(I(e,{phase:()=>n(S6.Answered({response:r,feedback:t}),`src/component/quizCard.ts#phase`)}),`src/component/quizCard.ts#Submitting`),Answered:()=>n(e,`src/component/quizCard.ts#Answered`)}),`src/component/quizCard.ts#showFeedback`),O6=e=>n(I(e,{phase:()=>n(S6.Answering(),`src/component/quizCard.ts#phase~2`)}),`src/component/quizCard.ts#reopen`),k6=(e,t)=>n({model:I(e,{phase:()=>n(S6.Submitting({response:t}),`src/component/quizCard.ts#phase~3`)}),outMessage:T6.SubmittedAnswer({response:t,note:rp(e.note),maybeConfidence:t._tag===`DontKnow`?x():e.maybeConfidence,hintLevel:e.hints.length})},`src/component/quizCard.ts#submit`),wae=e=>n(e.question.kind===`MultipleChoice`?w(Cr(e.maybeSelectedOptionId,t=>n(_a(e.question.options,e=>n(e.id===t,`src/component/quizCard.ts#anonymous~4`)),`src/component/quizCard.ts#anonymous~3`)),{onNone:()=>n(``,`src/component/quizCard.ts#onNone`),onSome:e=>n(`Leaning towards: ${e.text}`,`src/component/quizCard.ts#onSome`)}):e.text,`src/component/quizCard.ts#attemptSoFar`),A6=e=>n(e.question.kind===`MultipleChoice`?xr(e.maybeSelectedOptionId,e=>n(CW.make({optionId:e}),`src/component/quizCard.ts#anonymous~5`)):xr(kr(rp(e.text),e=>n(e.length>0,`src/component/quizCard.ts#anonymous~6`)),e=>n(wW.make({text:e}),`src/component/quizCard.ts#anonymous~7`)),`src/component/quizCard.ts#currentResponse`),j6=e=>n(e.phase._tag===`Answering`,`src/component/quizCard.ts#isAnswering`),M6=(e,t)=>n(w6.match(t,{SelectedOption:({optionId:t})=>n(j6(e)?{model:I(e,{maybeSelectedOptionId:()=>n(S(t),`src/component/quizCard.ts#maybeSelectedOptionId`)})}:{model:e},`src/component/quizCard.ts#SelectedOption`),UpdatedText:({value:t})=>n({model:I(e,{text:()=>n(t,`src/component/quizCard.ts#text`)})},`src/component/quizCard.ts#UpdatedText`),UpdatedNote:({value:t})=>n({model:I(e,{note:()=>n(t,`src/component/quizCard.ts#note`)})},`src/component/quizCard.ts#UpdatedNote`),ToggledNote:()=>n({model:I(e,{isNoteOpen:e=>n(!e,`src/component/quizCard.ts#isNoteOpen`)})},`src/component/quizCard.ts#ToggledNote`),SelectedConfidence:({confidence:t})=>n(j6(e)?{model:I(e,{maybeConfidence:e=>n(Ar(e,t)?x():S(t),`src/component/quizCard.ts#maybeConfidence`)})}:{model:e},`src/component/quizCard.ts#SelectedConfidence`),ClickedSubmit:()=>n(j6(e)?w(A6(e),{onNone:()=>n({model:e},`src/component/quizCard.ts#onNone~2`),onSome:t=>n(k6(e,t),`src/component/quizCard.ts#onSome~2`)}):{model:e},`src/component/quizCard.ts#ClickedSubmit`),ClickedDontKnow:()=>n(j6(e)?k6(e,TW.make({})):{model:e},`src/component/quizCard.ts#ClickedDontKnow`),ClickedHint:()=>{let t=e.hints.length+1;return n(e.canHint&&j6(e)&&!e.isHintLoading&&(t===1||t===2||t===3)?{model:I(e,{isHintLoading:()=>n(!0,`src/component/quizCard.ts#isHintLoading`),maybeHintError:()=>n(x(),`src/component/quizCard.ts#maybeHintError`)}),commands:[Cae({questionId:e.question.id,level:t,attempt:wae(e)})]}:{model:e},`src/component/quizCard.ts#ClickedHint`)},SucceededHint:({hint:t})=>n({model:I(e,{hints:e=>n([...e,t],`src/component/quizCard.ts#hints`),isHintLoading:()=>n(!1,`src/component/quizCard.ts#isHintLoading~2`)})},`src/component/quizCard.ts#SucceededHint`),FailedHint:({error:t})=>n({model:I(e,{isHintLoading:()=>n(!1,`src/component/quizCard.ts#isHintLoading~3`),maybeHintError:()=>n(S(t),`src/component/quizCard.ts#maybeHintError~2`)})},`src/component/quizCard.ts#FailedHint`),ClickedContinue:()=>n({model:e,outMessage:T6.ContinuedAfterFeedback()},`src/component/quizCard.ts#ClickedContinue`),PressedKey:({key:t,isModified:r,isInTextField:i})=>{let a=Tae.indexOf(t);return a>=0&&!i&&!r&&j6(e)?n(w(ea(e.question.options,a),{onNone:()=>n({model:e},`src/component/quizCard.ts#onNone~3`),onSome:t=>n({model:I(e,{maybeSelectedOptionId:()=>n(S(t.id),`src/component/quizCard.ts#maybeSelectedOptionId~2`)})},`src/component/quizCard.ts#onSome~3`)}),`src/component/quizCard.ts#PressedKey`):n(t!==`Enter`||i&&!r?{model:e}:S6.match(e.phase,{Answering:()=>n(w(A6(e),{onNone:()=>n({model:e},`src/component/quizCard.ts#onNone~4`),onSome:t=>n(k6(e,t),`src/component/quizCard.ts#onSome~4`)}),`src/component/quizCard.ts#Answering~2`),Submitting:()=>n({model:e},`src/component/quizCard.ts#Submitting~2`),Answered:()=>n({model:e,outMessage:T6.ContinuedAfterFeedback()},`src/component/quizCard.ts#Answered~2`)}),`src/component/quizCard.ts#PressedKey`)}}),`src/component/quizCard.ts#update`),Tae=[`1`,`2`,`3`,`4`,`5`,`6`],Eae=e=>n(e instanceof HTMLElement&&(e.tagName===`TEXTAREA`||e.tagName===`INPUT`||e.isContentEditable),`src/component/quizCard.ts#isTextField`),Dae=e=>n(e instanceof HTMLElement&&(e.tagName===`BUTTON`||e.tagName===`A`),`src/component/quizCard.ts#isActivatable`),N6=rR()(()=>n({keyboard:oR(oI({target:()=>n(globalThis.document,`src/component/quizCard.ts#target`),type:`keydown`,filterMapEvent:e=>n(kr(w6.PressedKey({key:e.key,isModified:e.ctrlKey||e.metaKey,isInTextField:Eae(e.target)}),()=>n(!e.repeat&&!(e.key===`Enter`&&Dae(e.target)),`src/component/quizCard.ts#anonymous~9`)),`src/component/quizCard.ts#filterMapEvent`)}))},`src/component/quizCard.ts#anonymous~8`)),Oae=[`A`,`B`,`C`,`D`,`E`,`F`],kae=e=>n(S6.match(e,{Answering:()=>n(x(),`src/component/quizCard.ts#Answering~3`),Submitting:({response:e})=>n(e._tag===`Choice`?S(e.optionId):x(),`src/component/quizCard.ts#Submitting~3`),Answered:({response:e})=>n(e._tag===`Choice`?S(e.optionId):x(),`src/component/quizCard.ts#Answered~3`)}),`src/component/quizCard.ts#chosenOptionId`),Aae=(e,t,r,i)=>{let a=Ar(e.maybeSelectedOptionId,t.id),o=S6.match(e.phase,{Answering:()=>n(x(),`src/component/quizCard.ts#Answering~4`),Submitting:()=>n(x(),`src/component/quizCard.ts#Submitting~4`),Answered:({feedback:e})=>n(S(e),`src/component/quizCard.ts#Answered~4`)}),s=w(o,{onNone:()=>n(!1,`src/component/quizCard.ts#onNone~5`),onSome:e=>n(e.correctAnswer===t.text,`src/component/quizCard.ts#onSome~5`)}),c=C(o)&&Ar(kae(e.phase),t.id)&&!s;return n(i.keyed(`button`)(t.id,[i.Type(`button`),i.Disabled(!j6(e)),i.AriaPressed(a?`true`:`false`),i.OnClick(w6.SelectedOption({optionId:t.id})),i.Class(CK(`press flex w-full items-start gap-3 rounded-xl border px-4 py-3 text-left transition-colors disabled:cursor-default`,{"border-primary bg-primary/8 ring-1 ring-primary/40":a&&j6(e),"hover:border-primary/40 hover:bg-accent/40":!a&&j6(e),"border-success/60 bg-success/10":s,"border-destructive/50 bg-destructive/8":c,"opacity-60":C(o)&&!s&&!c}))],[i.span([i.Class(CK(`mt-0.5 flex size-6 shrink-0 items-center justify-center rounded-md border text-xs font-semibold`,{"border-primary bg-primary text-primary-foreground":a&&j6(e),"border-success bg-success text-white":s,"border-destructive bg-destructive text-white":c}))],[s?L(`check`,`size-3.5`,i):c?L(`x`,`size-3.5`,i):Oae[r]??`${r+1}`]),x6(t.text,`flex-1 leading-relaxed`,i)]),`src/component/quizCard.ts#optionView`)},jae=(e,t)=>n(e.question.kind===`MultipleChoice`?t.div([t.Class(`flex flex-col gap-2`)],T(e.question.options,(r,i)=>n(Aae(e,r,i,t),`src/component/quizCard.ts#anonymous~10`))):t.textarea([t.Value(e.text),t.Rows(4),t.Disabled(!j6(e)),t.Placeholder(`Answer in your own words…`),t.OnInput(e=>n(w6.UpdatedText({value:e}),`src/component/quizCard.ts#anonymous~11`)),t.Class(vq(`resize-y text-base leading-relaxed`))]),`src/component/quizCard.ts#answerInputView`),Mae={Correct:{title:`Correct`,tone:`border-success/40 bg-success/8`,iconName:`check`},Partial:{title:`Partly right`,tone:`border-amber-500/40 bg-amber-500/8`,iconName:`alert`},Incorrect:{title:`Not quite`,tone:`border-destructive/40 bg-destructive/6`,iconName:`x`},DontKnow:{title:`Good call — here’s the idea`,tone:`border-info/40 bg-info/8`,iconName:`circleDashed`}},Nae=e=>n(S6.match(e.phase,{Answering:()=>n(x(),`src/component/quizCard.ts#Answering~5`),Submitting:()=>n(x(),`src/component/quizCard.ts#Submitting~5`),Answered:({response:t})=>n(gD(t).pipe(CD({Choice:({optionId:t})=>n(xr(_a(e.question.options,e=>n(e.id===t,`src/component/quizCard.ts#anonymous~12`)),e=>n(e.text,`src/component/quizCard.ts#anonymous~13`)),`src/component/quizCard.ts#Choice`),Text:({text:e})=>n(kr(e,op),`src/component/quizCard.ts#Text`),DontKnow:()=>n(x(),`src/component/quizCard.ts#DontKnow`)})),`src/component/quizCard.ts#Answered~5`)}),`src/component/quizCard.ts#ownAnswer`),Pae={title:`Surprise! This one is worth a second look`,tone:`border-destructive/40 bg-destructive/6`,iconName:`alert`},Fae=(e,t)=>n(t.a([t.Href(e),t.Target(`_blank`),t.Rel(`noopener`),t.Class(R(`Ghost`,`Medium`,`text-muted-foreground`))],[L(`fileText`,``,t),`Notes`,t.span([t.Class(`sr-only`)],[`(opens in a new tab)`])]),`src/component/quizCard.ts#notesLink`),Iae=(e,t,r,i,a)=>{let o=t.verdict===`Incorrect`&&Ar(e.maybeConfidence,`Sure`),s=o?Pae:Mae[t.verdict];return n(a.div([a.Class(`pop-in flex flex-col gap-4`)],[a.div([a.Class(CK(`flex flex-col gap-2 rounded-xl border p-4`,s.tone))],[a.div([a.Class(`flex items-center gap-2 font-semibold`)],[L(s.iconName,`size-4`,a),s.title]),o?a.p([a.Class(`text-sm`)],[`You were sure, which is exactly what makes this valuable: confident mistakes that get corrected are the ones people remember best.`]):a.empty,t.verdict===`Correct`?a.empty:w(Nae(e),{onNone:()=>n(a.empty,`src/component/quizCard.ts#onNone~6`),onSome:e=>n(a.div([a.Class(`text-sm text-muted-foreground`)],[a.span([a.Class(`font-medium`)],[`You said: `]),x6(e,``,a)]),`src/component/quizCard.ts#onSome~6`)}),e.question.kind===`ShortAnswer`||t.verdict!==`Correct`?a.div([a.Class(`text-sm`)],[a.span([a.Class(`font-medium`)],[`Answer: `]),x6(t.correctAnswer,``,a)]):a.empty,b6(t.explanation,`prose-sm text-foreground/90`,a),w(t.maybeMisconception,{onNone:()=>n(a.empty,`src/component/quizCard.ts#onNone~7`),onSome:e=>n(a.p([a.Class(`text-sm text-muted-foreground`)],[a.span([a.Class(`font-medium`)],[`Common trap: `]),e]),`src/component/quizCard.ts#onSome~7`)})]),a.div([a.Class(`flex items-center justify-end gap-2`)],[w(i,{onNone:()=>n(a.empty,`src/component/quizCard.ts#onNone~8`),onSome:e=>n(Fae(e,a),`src/component/quizCard.ts#onSome~8`)}),a.button([a.Type(`button`),a.Autofocus(!0),a.OnClick(w6.ClickedContinue()),a.Class(R(`Primary`,`Large`))],[r,L(`arrowRight`,``,a)])])]),`src/component/quizCard.ts#feedbackView`)},Lae=[{confidence:`Guess`,label:`Guessing`},{confidence:`Unsure`,label:`Unsure`},{confidence:`Sure`,label:`Sure`}],Rae=(e,t)=>n(t.div([t.Class(`flex flex-wrap items-center gap-2 text-sm`)],[t.span([t.Class(`text-muted-foreground`)],[`How sure are you?`]),t.div([t.Role(`group`),t.AriaLabel(`Confidence`),t.Class(`inline-flex rounded-lg bg-muted p-0.5`)],T(Lae,({confidence:r,label:i})=>n(t.keyed(`button`)(r,[t.Type(`button`),t.AriaPressed(Ar(e.maybeConfidence,r)?`true`:`false`),t.OnClick(w6.SelectedConfidence({confidence:r})),t.Class(CK(`press rounded-md px-2.5 py-1 text-xs font-medium transition-colors`,Ar(e.maybeConfidence,r)?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground`))],[i]),`src/component/quizCard.ts#anonymous~14`)))]),`src/component/quizCard.ts#confidenceView`),zae=(e,t)=>n(Yi(e.hints)&&pr(e.maybeHintError)?t.empty:t.div([t.Class(`flex flex-col gap-2`)],[...T(e.hints,(e,r)=>n(t.keyed(`div`)(`hint-${r}`,[t.Class(`pop-in flex flex-col gap-1 rounded-lg border border-primary/25 bg-primary/5 px-3 py-2`)],[t.span([t.Class(`flex items-center gap-1.5 text-xs font-medium text-primary`)],[L(`lightbulb`,`size-3.5`,t),`Hint ${r+1}`]),b6(e,`prose-sm text-foreground/90`,t)]),`src/component/quizCard.ts#anonymous~15`)),w(e.maybeHintError,{onNone:()=>n(t.empty,`src/component/quizCard.ts#onNone~9`),onSome:e=>n(t.p([t.Class(`text-sm text-destructive`)],[e]),`src/component/quizCard.ts#onSome~9`)}),Yi(e.hints)?t.empty:t.p([t.Class(`text-xs text-muted-foreground`)],[`Hints help you get there; an answer reached with them counts a little less towards remembering it, so it comes back sooner.`])]),`src/component/quizCard.ts#hintsView`),P6=(e,t)=>{let r=e.phase._tag===`Submitting`,i=j6(e)&&C(A6(e));return n(t.div([t.Class(`flex flex-col gap-3`)],[C(A6(e))?Rae(e,t):t.empty,zae(e,t),e.isNoteOpen?t.textarea([t.Value(e.note),t.Rows(2),t.Placeholder(`Optional: your reasoning, or how sure you are. The tutor reads this.`),t.OnInput(e=>n(w6.UpdatedNote({value:e}),`src/component/quizCard.ts#anonymous~16`)),t.Class(vq(`resize-none text-sm`))]):t.empty,t.div([t.Class(`flex flex-wrap items-center justify-between gap-2`)],[t.div([t.Class(`flex items-center gap-1`)],[t.button([t.Type(`button`),t.Disabled(!j6(e)),t.OnClick(w6.ClickedDontKnow()),t.Class(R(`Ghost`,`Medium`,`text-muted-foreground`))],[L(`circleDashed`,``,t),`I don’t know`]),e.canHint&&j6(e)&&e.hints.length<3?t.button([t.Type(`button`),t.Disabled(e.isHintLoading),t.OnClick(w6.ClickedHint()),t.Class(R(`Ghost`,`Medium`,`text-muted-foreground`))],[e.isHintLoading?L(`refresh`,`spinner`,t):L(`lightbulb`,``,t),Yi(e.hints)?`Hint`:`Another hint (${e.hints.length+1}/3)`]):t.empty,t.button([t.Type(`button`),t.OnClick(w6.ToggledNote()),t.Class(R(`Ghost`,`Medium`,`text-muted-foreground`))],[e.isNoteOpen?`Hide note`:`Add a note`])]),t.button([t.Type(`button`),t.Disabled(!i),t.OnClick(w6.ClickedSubmit()),t.Class(R(`Primary`,`Large`))],[r?L(`refresh`,`spinner`,t):t.empty,r?`Checking…`:`Check answer`])])]),`src/component/quizCard.ts#actionsView`)},F6=(e,t=x())=>n(hM((r,i)=>n(i.div([i.Class(_q(`reveal flex flex-col gap-5 p-6 sm:p-7`))],[b6(r.question.prompt,`text-lg leading-relaxed`,i),jae(r,i),S6.match(r.phase,{Answering:()=>n(P6(r,i),`src/component/quizCard.ts#Answering~6`),Submitting:()=>n(P6(r,i),`src/component/quizCard.ts#Submitting~6`),Answered:({feedback:a})=>n(Iae(r,a,e,t,i),`src/component/quizCard.ts#Answered~6`)})]),`src/component/quizCard.ts#anonymous~17`)),`src/component/quizCard.ts#viewWith`),Bae=`/**
427
- * bv — BaviTutor visual runtime. A tiny, dependency-free, Manim-flavoured scene engine on SVG.
428
- *
429
- * Coordinate system (same as Manim): origin at the centre, +y up, the frame is 8 units tall and
430
- * 8 * (width / height) units wide (14.22 for 16:9). Points are \`[x, y]\` arrays in these units.
431
- *
432
- * Authoring model: \`bv.scene(options, build)\`. \`build(s)\` creates objects and registers steps with
433
- * \`s.step(caption, async (s) => { ... })\`. Every navigation (Back, Replay, Goto) re-runs \`build\`
434
- * from scratch and fast-forwards earlier steps with animations skipped, so scenes are always
435
- * replayable and deterministic (Math.random is re-seeded on every rebuild).
436
- *
437
- * Works as an ES module (\`import bv from './bv.js'\`) and also installs \`globalThis.bv\`.
438
- * @module bv
439
- */
440
-
441
- const SVGNS = 'http://www.w3.org/2000/svg';
442
- export const version = '0.2.0';
443
-
444
- /**
445
- * Host configuration, read from the document element (see \`buildSceneDocument\` in @bavitutor/viz):
446
- * \`data-bv-frame\` is echoed in every message to the host so several frames on one page can be told
447
- * apart, and \`data-bv-theme="light"\` switches the canvas to the light theme.
448
- */
449
- const HOST = (() => {
450
- const d = typeof document !== 'undefined' && document.documentElement ? document.documentElement.dataset : {};
451
- return { frame: d.bvFrame || '', theme: d.bvTheme === 'light' ? 'light' : 'dark' };
452
- })();
453
-
454
- // ───────────────────────────── palette & theme ─────────────────────────────
455
- /** Manim Community colour palette (hex values from manim/utils/color/manim_colors.py). */
456
- const palette = {
457
- WHITE: '#FFFFFF', BLACK: '#000000',
458
- GREY_A: '#DDDDDD', GREY_B: '#BBBBBB', GREY_C: '#888888', GREY_D: '#444444', GREY_E: '#222222',
459
- BLUE_A: '#C7E9F1', BLUE_B: '#9CDCEB', BLUE_C: '#58C4DD', BLUE_D: '#29ABCA', BLUE_E: '#236B8E',
460
- TEAL_A: '#ACEAD7', TEAL_B: '#76DDC0', TEAL_C: '#5CD0B3', TEAL_D: '#55C1A7', TEAL_E: '#49A88F',
461
- GREEN_A: '#C9E2AE', GREEN_B: '#A6CF8C', GREEN_C: '#83C167', GREEN_D: '#77B05D', GREEN_E: '#699C52',
462
- YELLOW_A: '#FFF1B6', YELLOW_B: '#FFEA94', YELLOW_C: '#F7D96F', YELLOW_D: '#F4D345', YELLOW_E: '#E8C11C',
463
- GOLD_A: '#F7C797', GOLD_B: '#F9B775', GOLD_C: '#F0AC5F', GOLD_D: '#E1A158', GOLD_E: '#C78D46',
464
- RED_A: '#F7A1A3', RED_B: '#FF8080', RED_C: '#FC6255', RED_D: '#E65A4C', RED_E: '#CF5044',
465
- MAROON_A: '#ECABC1', MAROON_B: '#EC92AB', MAROON_C: '#C55F73', MAROON_D: '#A24D61', MAROON_E: '#94424F',
466
- PURPLE_A: '#CAA3E8', PURPLE_B: '#B189C6', PURPLE_C: '#9A72AC', PURPLE_D: '#715582', PURPLE_E: '#644172',
467
- PINK: '#D147BD', LIGHT_PINK: '#DC75CD', ORANGE: '#FF862F',
468
- LIGHT_BROWN: '#CD853F', DARK_BROWN: '#8B4513', GREY_BROWN: '#736357',
469
- };
470
- for (const fam of ['BLUE', 'TEAL', 'GREEN', 'YELLOW', 'GOLD', 'RED', 'MAROON', 'PURPLE']) palette[fam] = palette[fam + '_C'];
471
- palette.GREY = palette.GREY_C;
472
- for (const k of Object.keys(palette)) if (k.startsWith('GREY')) palette[k.replace('GREY', 'GRAY')] = palette[k];
473
- /** @type {Readonly<Record<string,string>>} */
474
- export const C = Object.freeze(palette);
475
-
476
- export const theme = {
477
- /** 'dark' (the 3b1b look, the default) or 'light'. Scenes are always authored for the dark canvas. */
478
- mode: HOST.theme,
479
- bg: '#0F1115', text: '#ECECEC', muted: C.GREY_B, faint: C.GREY_D, axis: C.GREY_B, grid: C.BLUE_D,
480
- font: '"CMU Serif","Latin Modern Roman","Computer Modern","STIX Two Text",Cambria,"Times New Roman",serif',
481
- mathFont: '"Latin Modern Math","CMU Serif","STIX Two Math","Cambria Math","Times New Roman",serif',
482
- monoFont: '"CMU Typewriter Text",Consolas,"SFMono-Regular",Menlo,monospace',
483
- uiFont: 'system-ui,-apple-system,"Segoe UI",Roboto,sans-serif',
484
- strokeWidth: 3, fontSize: 28, dotRadius: 0.08,
485
- /** Semantic roles. Prefer these over raw colours so meaning stays consistent. */
486
- roles: { primary: C.BLUE, secondary: C.TEAL, accent: C.YELLOW, positive: C.GREEN, negative: C.RED,
487
- special: C.PURPLE, warm: C.GOLD, muted: C.GREY_B, text: '#ECECEC' },
488
- };
489
-
490
- // ───────────────────────────── rate functions (Manim) ─────────────────────────────
491
- const clamp = (v, a, b) => (v < a ? a : v > b ? b : v);
492
- const clamp01 = (t) => clamp(t, 0, 1);
493
- const bez = (c) => (t) => { const a = c.slice(); for (let k = a.length - 1; k > 0; k--) for (let i = 0; i < k; i++) a[i] += (a[i + 1] - a[i]) * t; return a[0]; };
494
- const smooth = (t) => { const s = 1 - t; return t * t * t * (10 * s * s + 5 * s * t + t * t); };
495
- /** Easing ("rate") functions, ported from manimlib/utils/rate_functions.py. t ∈ [0,1]. */
496
- export const ease = {
497
- linear: (t) => t,
498
- smooth,
499
- smoothstep: (t) => 3 * t * t - 2 * t * t * t,
500
- rushInto: (t) => 2 * smooth(t / 2),
501
- rushFrom: (t) => 2 * smooth(t / 2 + 0.5) - 1,
502
- slowInto: (t) => Math.sqrt(1 - (1 - t) * (1 - t)),
503
- doubleSmooth: (t) => (t < 0.5 ? 0.5 * smooth(2 * t) : 0.5 * (1 + smooth(2 * t - 1))),
504
- thereAndBack: (t) => smooth(t < 0.5 ? 2 * t : 2 * (1 - t)),
505
- thereAndBackWithPause: (t, pause = 1 / 3) => { const a = 2 / (1 - pause); return t < 0.5 - pause / 2 ? smooth(a * t) : t < 0.5 + pause / 2 ? 1 : smooth(a - a * t); },
506
- runningStart: bez([0, 0, -0.5, -0.5, 1, 1, 1]),
507
- overshoot: bez([0, 0, 1.5, 1.5, 1, 1]),
508
- wiggle: (t) => smooth(t < 0.5 ? 2 * t : 2 * (1 - t)) * Math.sin(2 * Math.PI * t),
509
- lingering: (t) => clamp01(t / 0.8),
510
- exponentialDecay: (t) => 1 - Math.exp(-t / 0.1),
511
- /** @param {(t:number)=>number} f */
512
- notQuiteThere: (f = smooth, p = 0.7) => (t) => p * f(t),
513
- /** Squish f into the sub-interval [a,b]. */
514
- squish: (f = smooth, a = 0.4, b = 0.6) => (t) => (t < a ? f(0) : t > b ? f(1) : f((t - a) / (b - a))),
515
- };
516
- for (const k of Object.keys(ease)) ease[k.replace(/[A-Z]/g, (m) => '_' + m.toLowerCase())] = ease[k];
517
- const resolveEase = (e) => (typeof e === 'function' ? e : ease[e] || smooth);
518
-
519
- // ───────────────────────────── vectors & colours ─────────────────────────────
520
- export const UP = [0, 1], DOWN = [0, -1], LEFT = [-1, 0], RIGHT = [1, 0], ORIGIN = [0, 0];
521
- export const UL = [-1, 1], UR = [1, 1], DL = [-1, -1], DR = [1, -1];
522
- const add = (a, b) => [a[0] + b[0], a[1] + b[1]];
523
- const sub = (a, b) => [a[0] - b[0], a[1] - b[1]];
524
- const mul = (a, k) => [a[0] * k, a[1] * k];
525
- const len = (a) => Math.hypot(a[0], a[1]);
526
- const norm = (a) => { const l = len(a) || 1; return [a[0] / l, a[1] / l]; };
527
- const lerp = (a, b, t) => a + (b - a) * t;
528
- const lerpPt = (a, b, t) => [lerp(a[0], b[0], t), lerp(a[1], b[1], t)];
529
- const rot = (a, deg) => { const r = (deg * Math.PI) / 180, c = Math.cos(r), s = Math.sin(r); return [a[0] * c - a[1] * s, a[0] * s + a[1] * c]; };
530
- /** Small vector toolkit for authors. */
531
- export const v = { add, sub, mul, len, norm, lerp: lerpPt, dist: (a, b) => len(sub(a, b)), mid: (a, b) => lerpPt(a, b, 0.5), rot, perp: (a) => [-a[1], a[0]] };
532
- const isPt = (p) => Array.isArray(p) && p.length === 2 && typeof p[0] === 'number';
533
- const r2 = (x) => Math.round(x * 100) / 100;
534
-
535
- const hexRgb = (h) => {
536
- if (typeof h !== 'string' || h[0] !== '#') return null;
537
- let s = h.slice(1); if (s.length === 3) s = s.replace(/./g, (c) => c + c);
538
- if (s.length !== 6) return null;
539
- const n = parseInt(s, 16); return [(n >> 16) & 255, (n >> 8) & 255, n & 255];
540
- };
541
- /** Interpolate two hex colours. */
542
- export const mixColor = (a, b, t) => {
543
- const A = hexRgb(a), B = hexRgb(b);
544
- if (!A || !B) return t < 0.5 ? a : b;
545
- return '#' + A.map((x, i) => Math.round(lerp(x, B[i], t)).toString(16).padStart(2, '0')).join('');
546
- };
547
- // Light theme. Scenes are authored for the dark canvas (bright \`_C\` strokes over dark \`_E\` fills). On
548
- // the light canvas every drawn colour keeps its hue and saturation and mirrors its HSL lightness:
549
- // bright strokes become deep strokes, dark fills become pale fills, dimmed greys stay faint, and the
550
- // semantic colour roles survive. The canvas background maps to a warm off-white.
551
- const LIGHT_BG = '#FAF9F6';
552
- const rgbToHsl = ([r, g, b]) => {
553
- r /= 255; g /= 255; b /= 255;
554
- const mx = Math.max(r, g, b), mn = Math.min(r, g, b), l = (mx + mn) / 2;
555
- if (mx === mn) return [0, 0, l];
556
- const d = mx - mn, s = l > 0.5 ? d / (2 - mx - mn) : d / (mx + mn);
557
- const h = mx === r ? (g - b) / d + (g < b ? 6 : 0) : mx === g ? (b - r) / d + 2 : (r - g) / d + 4;
558
- return [h / 6, s, l];
559
- };
560
- const hslToHex = ([h, s, l]) => {
561
- const k = (n) => (n + h * 12) % 12, a = s * Math.min(l, 1 - l);
562
- const f = (n) => l - a * Math.max(-1, Math.min(k(n) - 3, 9 - k(n), 1));
563
- return '#' + [f(0), f(8), f(4)].map((x) => Math.round(x * 255).toString(16).padStart(2, '0')).join('');
564
- };
565
- const paintCache = new Map();
566
- /** The colour actually drawn for an authored colour under the active theme (identity on the dark theme). */
567
- export const paint = (c) => {
568
- if (HOST.theme !== 'light' || typeof c !== 'string') return c;
569
- let out = paintCache.get(c);
570
- if (out === undefined) {
571
- const rgb = hexRgb(c);
572
- if (!rgb) out = c;
573
- else if (c.toLowerCase() === theme.bg.toLowerCase()) out = LIGHT_BG;
574
- else { const [h, s, l] = rgbToHsl(rgb); out = hslToHex([h, s, clamp(1 - l, 0.06, 0.92)]); }
575
- paintCache.set(c, out);
576
- }
577
- return out;
578
- };
579
- const interp = (a, b, t) => {
580
- if (typeof a === 'number' && typeof b === 'number') return lerp(a, b, t);
581
- if (Array.isArray(a) && Array.isArray(b) && a.length === b.length) return a.map((x, i) => interp(x, b[i], t));
582
- if (typeof a === 'string' && typeof b === 'string' && a[0] === '#' && b[0] === '#') return mixColor(a, b, t);
583
- return t < 1 ? a : b;
584
- };
585
- /** Format a number for display (uses the true minus sign "−"). */
586
- export const fmt = (x, d = 2) => { const s = (Math.abs(x) < 0.5 * 10 ** -d ? 0 : x).toFixed(d); return s.replace('-', '−'); };
587
-
588
- /** Seeded PRNG (mulberry32). Returns a function producing numbers in [0,1). */
589
- export function random(seed = 1) {
590
- let a = seed >>> 0;
591
- return () => { a = (a + 0x6d2b79f5) >>> 0; let t = a; t = Math.imul(t ^ (t >>> 15), t | 1); t ^= t + Math.imul(t ^ (t >>> 7), t | 61); return ((t ^ (t >>> 14)) >>> 0) / 4294967296; };
592
- }
593
-
594
- // ───────────────────────────── DOM helpers ─────────────────────────────
595
- const svgEl = (tag, attrs = {}) => { const n = document.createElementNS(SVGNS, tag); for (const k in attrs) n.setAttribute(k, attrs[k]); return n; };
596
- const htmlEl = (tag, cls, text) => { const n = document.createElement(tag); if (cls) n.className = cls; if (text != null) n.textContent = text; return n; };
597
- const setA = (n, k, val) => { const s = String(val); if (n.getAttribute(k) !== s) n.setAttribute(k, s); };
598
- const RAF = typeof requestAnimationFrame === 'function' ? (f) => requestAnimationFrame(f) : (f) => setTimeout(() => f(now()), 16);
599
- const CAF = typeof cancelAnimationFrame === 'function' ? (id) => cancelAnimationFrame(id) : (id) => clearTimeout(id);
600
- const now = () => (typeof performance !== 'undefined' ? performance.now() : Date.now());
601
-
602
- class Cancelled extends Error { constructor() { super('bv: step cancelled by navigation'); this.name = 'Cancelled'; } }
603
-
604
- /** The run (scene instance) currently being built/played. */
605
- let CURRENT = null;
606
- let NEXT_ID = 1;
607
- const FN_PROPS = new Set(['f', 'format', 'onDrag', 'constrain']);
608
- const STYLE_KEYS = new Set(['color', 'fill', 'fillOpacity', 'width']);
609
- const unit = () => (CURRENT ? CURRENT.unit : 67.5);
610
-
611
- // ───────────────────────────── Mob (base object) ─────────────────────────────
612
- /**
613
- * Base class of every visible object ("mobject"). Any prop may be a function \`() => value\`;
614
- * it is re-evaluated every frame (reactive props), which is the easiest way to make objects
615
- * follow trackers. Don't animate a prop that is a function.
616
- */
617
- export class Mob {
618
- constructor(kind, defaults, props = {}) {
619
- this.id = NEXT_ID++; this.kind = kind;
620
- this.props = { opacity: 1, scale: 1, rotate: 0, ...defaults };
621
- for (const k in props) if (props[k] !== undefined) this.props[k] = props[k];
622
- if (props.fill && props.fillOpacity === undefined) this.props.fillOpacity = 1;
623
- /** @type {Mob[]} */ this.children = []; this.parent = null; this.updaters = [];
624
- this.node = null; this.attached = false; this.run = null;
625
- }
626
- /** Resolved prop value (calls function props). */
627
- p(k) { const x = this.props[k]; return typeof x === 'function' && !FN_PROPS.has(k) ? x() : x; }
628
- get(k) { return this.p(k); }
629
- /** Set props (instantly). Returns this. */
630
- set(props) { Object.assign(this.props, props); if (CURRENT) CURRENT.invalidate(); return this; }
631
- /** Animation that tweens props to the given values. \`{at:[x,y]}\` moves any object. */
632
- to(props, opts) { return animate(this, props, opts); }
633
- /** Register \`fn(mob, dt)\`, called every frame before rendering. */
634
- addUpdater(fn) { this.updaters.push(fn); if (CURRENT) CURRENT.invalidate(); return this; }
635
- clearUpdaters() { this.updaters = []; return this; }
636
- /** World-space bounding box. */
637
- bbox() { const b = this._bbox(); return { x0: b[0], y0: b[1], x1: b[2], y1: b[3], w: b[2] - b[0], h: b[3] - b[1], cx: (b[0] + b[2]) / 2, cy: (b[1] + b[3]) / 2 }; }
638
- center() { const b = this.bbox(); return [b.cx, b.cy]; }
639
- top() { const b = this.bbox(); return [b.cx, b.y1]; }
640
- bottom() { const b = this.bbox(); return [b.cx, b.y0]; }
641
- left() { const b = this.bbox(); return [b.x0, b.cy]; }
642
- right() { const b = this.bbox(); return [b.x1, b.cy]; }
643
- width() { return this.bbox().w; }
644
- height() { return this.bbox().h; }
645
- /** Translate by [dx,dy] (instantly). */
646
- shift(d) { this._shift(d); if (CURRENT) CURRENT.invalidate(); return this; }
647
- /** Move so the centre is at p (instantly). */
648
- moveTo(p) { return this.shift(sub(p, this.center())); }
649
- /** Place next to another object (or point): side 'up'|'down'|'left'|'right'|'ur'|'ul'|'dr'|'dl'. */
650
- nextTo(target, side = 'right', buff = 0.2) {
651
- const tb = boundsOf(target), me = this.bbox(), d = SIDES[side] || side, e = 1e-6;
652
- const x = d[0] > e ? tb.x1 + buff + me.w / 2 : d[0] < -e ? tb.x0 - buff - me.w / 2 : tb.cx;
653
- const y = d[1] > e ? tb.y1 + buff + me.h / 2 : d[1] < -e ? tb.y0 - buff - me.h / 2 : tb.cy;
654
- return this.moveTo([x, y]);
655
- }
656
- /** Deep copy (not yet added to the scene). */
657
- copy() {
658
- const m = Object.create(Object.getPrototypeOf(this)); Object.assign(m, this);
659
- m.id = NEXT_ID++; m.node = null; m.attached = false; m.parent = null; m.run = null;
660
- m.props = cloneProps(this.props); m.updaters = [...this.updaters]; m.children = [];
661
- for (const c of this.children) { const cc = c.copy(); cc.parent = m; m.children.push(cc); }
662
- return m;
663
- }
664
- // ── internals ──
665
- _shift(d) { for (const k of ['at', 'from', 'to']) { const x = this.props[k]; if (isPt(x)) this.props[k] = add(x, d); } if (Array.isArray(this.props.points) && isPt(this.props.points[0])) this.props.points = this.props.points.map((q) => add(q, d)); for (const c of this.children) c._shift(d); }
666
- _bbox() { return [0, 0, 0, 0]; }
667
- _outline() { return null; }
668
- _build() { return svgEl('g'); }
669
- _draw() {}
670
- _childParent() { return this.node; }
671
- _mount(run, parentNode) {
672
- if (!this.node) this.node = this._build();
673
- this.run = run; parentNode.appendChild(this.node); this.attached = true;
674
- for (const c of this.children) c._mount(run, this._childParent());
675
- }
676
- _unmount() { if (this.node && this.node.parentNode) this.node.parentNode.removeChild(this.node); this.attached = false; }
677
- _update(dt) { if (!this.attached) return; for (const f of this.updaters) f(this, dt); for (const c of this.children) c._update(dt); }
678
- _render() {
679
- if (!this.attached) return;
680
- this._draw();
681
- const n = this.node, o = this.p('opacity'), s = this.p('scale'), r = this.p('rotate');
682
- if (o !== 1 || n.hasAttribute('opacity')) setA(n, 'opacity', r2(o));
683
- if (s !== 1 || r) { const [cx, cy] = this.run.toPx(this.center()); setA(n, 'transform', \`translate(\${r2(cx)} \${r2(cy)}) rotate(\${r2(-r)}) scale(\${s}) translate(\${r2(-cx)} \${r2(-cy)})\`); }
684
- else if (n.hasAttribute('transform')) n.removeAttribute('transform');
685
- for (const c of this.children) c._render();
686
- }
687
- _leaves() { return this.children.length ? this.children.flatMap((c) => c._leaves()) : [this]; }
688
- }
689
- const SIDES = { up: UP, down: DOWN, left: LEFT, right: RIGHT, ur: UR, ul: UL, dr: DR, dl: DL };
690
- /** Bounds of a Mob, an array of Mobs, a point, or a [p1, p2] pair (world units). */
691
- const boundsOf = (t) => {
692
- if (t instanceof Mob) return t.bbox();
693
- const pts = isPt(t) ? [t] : Array.isArray(t) && t.every(isPt) ? t : null;
694
- if (pts) { const b = bboxOf(pts); return { x0: b[0], y0: b[1], x1: b[2], y1: b[3], w: b[2] - b[0], h: b[3] - b[1], cx: (b[0] + b[2]) / 2, cy: (b[1] + b[3]) / 2 }; }
695
- const bs = t.map((m) => m.bbox()), x0 = Math.min(...bs.map((b) => b.x0)), y0 = Math.min(...bs.map((b) => b.y0)), x1 = Math.max(...bs.map((b) => b.x1)), y1 = Math.max(...bs.map((b) => b.y1));
696
- return { x0, y0, x1, y1, w: x1 - x0, h: y1 - y0, cx: (x0 + x1) / 2, cy: (y0 + y1) / 2 };
697
- };
698
- const cloneProps = (p) => { const o = {}; for (const k in p) o[k] = Array.isArray(p[k]) ? JSON.parse(JSON.stringify(p[k])) : p[k]; return o; };
699
-
700
- // ───────────────────────────── shapes (all rendered as <path>) ─────────────────────────────
701
- const strokeDefaults = () => ({ color: theme.roles.primary, width: theme.strokeWidth, fill: null, fillOpacity: 0, dashed: false, _ds: 0, _de: 1 });
702
- class Shape extends Mob {
703
- _build() { return svgEl('path', { 'stroke-linecap': 'round', 'stroke-linejoin': 'round' }); }
704
- /** outline points in world units + closed flag */
705
- _geom() { return { pts: [], closed: false }; }
706
- _outline() { return this._geom(); }
707
- _d() { const g = this._geom(); return ptsToD(g.pts.map((q) => this.run.toPx(q)), g.closed); }
708
- _bbox() { return bboxOf(this._geom().pts, this.p('width') / 2 / unit()); }
709
- _draw() {
710
- const n = this.node, color = this.p('color'), fill = this.p('fill'), ds = this.p('_ds'), de = this.p('_de');
711
- setA(n, 'd', this._d());
712
- setA(n, 'stroke', paint(color) || 'none'); setA(n, 'stroke-width', this.p('width'));
713
- setA(n, 'fill', paint(fill) || 'none'); setA(n, 'fill-opacity', r2(this.p('fillOpacity')));
714
- if (ds > 0 || de < 1) { setA(n, 'pathLength', 1); setA(n, 'stroke-dasharray', \`\${Math.max(0, de - ds)} 2\`); setA(n, 'stroke-dashoffset', -ds); }
715
- else if (this.p('dashed')) { n.removeAttribute('pathLength'); setA(n, 'stroke-dasharray', '8 7'); n.removeAttribute('stroke-dashoffset'); }
716
- else { for (const a of ['pathLength', 'stroke-dasharray', 'stroke-dashoffset']) if (n.hasAttribute(a)) n.removeAttribute(a); }
717
- }
718
- }
719
- const ptsToD = (P, closed) => (P.length ? 'M' + P.map((q) => \`\${r2(q[0])} \${r2(q[1])}\`).join(' L') + (closed ? ' Z' : '') : '');
720
- const bboxOf = (pts, pad = 0) => { let a = Infinity, b = Infinity, c = -Infinity, d = -Infinity; for (const q of pts) { if (q[0] < a) a = q[0]; if (q[1] < b) b = q[1]; if (q[0] > c) c = q[0]; if (q[1] > d) d = q[1]; } return pts.length ? [a - pad, b - pad, c + pad, d + pad] : [0, 0, 0, 0]; };
721
- const circlePts = (c, r, n = 64, a0 = 0, a1 = 360) => Array.from({ length: n + 1 }, (_, i) => { const a = ((a0 + ((a1 - a0) * i) / n) * Math.PI) / 180; return [c[0] + r * Math.cos(a), c[1] + r * Math.sin(a)]; });
722
-
723
- class Circle extends Shape {
724
- _geom() { const pts = circlePts(this.p('at'), this.p('r')); pts.pop(); return { pts, closed: true }; }
725
- _d() { const [cx, cy] = this.run.toPx(this.p('at')), r = this.p('r') * this.run.unit; return \`M\${r2(cx + r)} \${r2(cy)} A\${r2(r)} \${r2(r)} 0 1 0 \${r2(cx - r)} \${r2(cy)} A\${r2(r)} \${r2(r)} 0 1 0 \${r2(cx + r)} \${r2(cy)} Z\`; }
726
- _bbox() { const [x, y] = this.p('at'), r = this.p('r') + (this.p('color') ? this.p('width') / 2 / unit() : 0); return [x - r, y - r, x + r, y + r]; }
727
- }
728
- /** Filled dot: \`color\` means the fill colour. */
729
- class Dot extends Circle {
730
- set(props) { if ('color' in props) { props = { ...props, fill: props.color }; delete props.color; } return super.set(props); }
731
- }
732
- class Rect extends Shape {
733
- _geom() { const [x, y] = this.p('at'), w = this.p('w') / 2, h = this.p('h') / 2; return { pts: [[x + w, y + h], [x - w, y + h], [x - w, y - h], [x + w, y - h]], closed: true }; }
734
- _d() {
735
- const rad = Math.min(this.p('radius') || 0, this.p('w') / 2, this.p('h') / 2) * this.run.unit;
736
- if (!rad) return super._d();
737
- const [cx, cy] = this.run.toPx(this.p('at')), w = (this.p('w') * this.run.unit) / 2, h = (this.p('h') * this.run.unit) / 2;
738
- const x0 = r2(cx - w), x1 = r2(cx + w), y0 = r2(cy - h), y1 = r2(cy + h), R = r2(rad);
739
- return \`M\${x1 - R} \${y0} L\${x0 + R} \${y0} A\${R} \${R} 0 0 0 \${x0} \${y0 + R} L\${x0} \${y1 - R} A\${R} \${R} 0 0 0 \${x0 + R} \${y1} L\${x1 - R} \${y1} A\${R} \${R} 0 0 0 \${x1} \${y1 - R} L\${x1} \${y0 + R} A\${R} \${R} 0 0 0 \${x1 - R} \${y0} Z\`;
740
- }
741
- }
742
- class Poly extends Shape {
743
- _geom() { const pts = this.p('points') || [], closed = !!this.p('closed'); return { pts: this.p('smooth') ? smoothPts(pts, closed) : pts, closed }; }
744
- }
745
- const smoothPts = (P, closed, k = 10) => {
746
- const n = P.length; if (n < 3) return P;
747
- const at = (i) => (closed ? P[(i + n) % n] : P[clamp(i, 0, n - 1)]), out = [];
748
- for (let i = 0; i < (closed ? n : n - 1); i++) {
749
- const p0 = at(i - 1), p1 = at(i), p2 = at(i + 1), p3 = at(i + 2);
750
- const c1 = add(p1, mul(sub(p2, p0), 1 / 6)), c2 = sub(p2, mul(sub(p3, p1), 1 / 6));
751
- for (let j = 0; j < k; j++) { const t = j / k, u = 1 - t; out.push([0, 1].map((d) => u * u * u * p1[d] + 3 * u * u * t * c1[d] + 3 * u * t * t * c2[d] + t * t * t * p2[d])); }
752
- }
753
- if (!closed) out.push(P[n - 1]);
754
- return out;
755
- };
756
- class Line extends Shape {
757
- _geom() { const a = this.p('from'), b = this.p('to'); return { pts: [a, b], closed: false }; }
758
- _d() { const a = this.p('from'), b = this.p('to'), ds = this.p('_ds'), de = this.p('_de'); return ptsToD([lerpPt(a, b, ds), lerpPt(a, b, de)].map((q) => this.run.toPx(q)), false); }
759
- _draw() { const de = this.props._de, ds = this.props._ds; this.props._de = 1; this.props._ds = 0; super._draw(); this.props._de = de; this.props._ds = ds; setA(this.node, 'd', this._d()); }
760
- }
761
- class Graph extends Shape {
762
- _segments() {
763
- const ax = this.props.axes, f = this.props.f, [a, b] = this.p('x') || ax.props.x, n = this.p('samples'), [y0, y1] = ax.props.y, segs = [];
764
- let cur = [];
765
- for (let i = 0; i <= n; i++) {
766
- const x = lerp(a, b, i / n), y = f(x), ok = Number.isFinite(y) && y >= y0 - 1e-9 && y <= y1 + 1e-9;
767
- if (ok) cur.push(ax.c2p(x, y)); else if (cur.length) { segs.push(cur); cur = []; }
768
- }
769
- if (cur.length) segs.push(cur);
770
- return segs;
771
- }
772
- _geom() { return { pts: this._segments().flat(), closed: false }; }
773
- _d() { return this._segments().map((s) => ptsToD(s.map((q) => this.run.toPx(q)), false)).join(' '); }
774
- }
775
-
776
- class Arrow extends Mob {
777
- _build() { const g = svgEl('g'); g.appendChild(svgEl('path', { fill: 'none', 'stroke-linecap': 'round' })); g.appendChild(svgEl('path', { 'stroke-linejoin': 'round' })); return g; }
778
- _parts() {
779
- const a = this.p('from'), b = this.p('to'), L = len(sub(b, a)), bend = this.p('bend') || 0;
780
- const ctrl = add(lerpPt(a, b, 0.5), mul(v.perp(norm(sub(b, a))), bend * L));
781
- const tip = Math.min(this.p('tip'), L * 0.45), u = norm(sub(b, bend ? ctrl : a));
782
- const base = sub(b, mul(u, tip)), wv = mul(v.perp(u), tip * 0.42);
783
- return { a, b, ctrl, base, tri: [b, add(base, wv), sub(base, wv)], L };
784
- }
785
- _geom() { const q = this._parts(); return { pts: this.p('bend') ? Array.from({ length: 21 }, (_, i) => quadAt(q.a, q.ctrl, q.base, i / 20)) : [q.a, q.base], closed: false }; }
786
- _outline() { return this._geom(); }
787
- _bbox() { const q = this._parts(); return bboxOf([...this._geom().pts, ...q.tri], 0.02); }
788
- _draw() {
789
- const q = this._parts(), [shaft, head] = this.node.childNodes, P = (x) => this.run.toPx(x), color = this.p('color'), de = this.p('_de');
790
- const pts = this._geom().pts, end = Math.max(1, Math.round((pts.length - 1) * de));
791
- setA(shaft, 'd', de >= 1 ? ptsToD(pts.map(P), false) : ptsToD((pts.length === 2 ? [pts[0], lerpPt(pts[0], pts[1], de)] : pts.slice(0, end + 1)).map(P), false));
792
- setA(shaft, 'stroke', paint(color)); setA(shaft, 'stroke-width', this.p('width'));
793
- setA(head, 'd', ptsToD(q.tri.map(P), true)); setA(head, 'fill', paint(color)); setA(head, 'stroke', paint(color)); setA(head, 'stroke-width', 1);
794
- setA(head, 'opacity', r2(clamp01((de - 0.85) / 0.15)));
795
- }
796
- }
797
- const quadAt = (a, c, b, t) => { const u = 1 - t; return [u * u * a[0] + 2 * u * t * c[0] + t * t * b[0], u * u * a[1] + 2 * u * t * c[1] + t * t * b[1]]; };
798
-
799
- // ───────────────────────────── text & TeX-like math ─────────────────────────────
800
- const textSizePx = (m) => m.p('size');
801
- class Text extends Mob {
802
- _build() { return svgEl('text', { 'dominant-baseline': 'central' }); }
803
- _lines() { return String(this.p('text') ?? '').split('\\n'); }
804
- _w() { const lines = this._lines(), s = textSizePx(this); return Math.max(...lines.map((l) => measure(l, s, this._fontAttrs()))) / unit(); }
805
- _fontAttrs() { return { family: this.p('mono') ? theme.monoFont : this.p('font') || theme.font, weight: this.p('weight'), style: this.p('italic') ? 'italic' : 'normal' }; }
806
- _bbox() {
807
- const [x, y] = this.p('at'), w = this._w(), n = this._lines().length, h = (textSizePx(this) * (1.25 * n - 0.1)) / unit();
808
- const anchor = this.p('anchor'), x0 = anchor === 'start' ? x : anchor === 'end' ? x - w : x - w / 2;
809
- return [x0, y - h / 2, x0 + w, y + h / 2];
810
- }
811
- _draw() {
812
- const n = this.node, [px, py] = this.run.toPx(this.p('at')), s = textSizePx(this), f = this._fontAttrs(), lines = this._lines();
813
- setA(n, 'font-family', f.family); setA(n, 'font-size', s); setA(n, 'font-weight', f.weight); setA(n, 'font-style', f.style);
814
- setA(n, 'fill', paint(this.p('color'))); setA(n, 'text-anchor', { start: 'start', end: 'end' }[this.p('anchor')] || 'middle');
815
- setA(n, 'x', r2(px)); setA(n, 'y', r2(py));
816
- const key = lines.join('\\n') + '|' + r2(px) + '|' + r2(py);
817
- if (n._key === key) return; n._key = key; n.textContent = '';
818
- if (lines.length === 1) { n.textContent = lines[0]; return; }
819
- const y0 = py - ((lines.length - 1) * 1.25 * s) / 2;
820
- lines.forEach((l, i) => { const t = svgEl('tspan', { x: r2(px), y: r2(y0 + i * 1.25 * s) }); t.textContent = l; n.appendChild(t); });
821
- }
822
- }
823
-
824
- const GREEK = 'alpha:α beta:β gamma:γ delta:δ epsilon:ε varepsilon:ε zeta:ζ eta:η theta:θ iota:ι kappa:κ lambda:λ mu:μ nu:ν xi:ξ pi:π rho:ρ sigma:σ tau:τ upsilon:υ phi:φ varphi:φ chi:χ psi:ψ omega:ω Gamma:Γ Delta:Δ Theta:Θ Lambda:Λ Xi:Ξ Pi:Π Sigma:Σ Phi:Φ Psi:Ψ Omega:Ω';
825
- const SYMS = 'cdot:· times:× div:÷ pm:± mp:∓ le:≤ leq:≤ ge:≥ geq:≥ ne:≠ neq:≠ approx:≈ equiv:≡ sim:∼ to:→ rightarrow:→ leftarrow:← Rightarrow:⇒ Leftarrow:⇐ iff:⇔ implies:⇒ mapsto:↦ infty:∞ sum:∑ prod:∏ int:∫ partial:∂ nabla:∇ in:∈ notin:∉ subset:⊂ subseteq:⊆ cup:∪ cap:∩ emptyset:∅ forall:∀ exists:∃ neg:¬ land:∧ lor:∨ ldots:… cdots:⋯ dots:… circ:∘ prime:′ langle:⟨ rangle:⟩ lfloor:⌊ rfloor:⌋ lceil:⌈ rceil:⌉ quad:  qquad:  ';
826
- const TEXMAP = Object.fromEntries((GREEK + ' ' + SYMS).split(' ').map((s) => { const i = s.indexOf(':'); return [s.slice(0, i), s.slice(i + 1)]; }));
827
- const readGroup = (s, i) => { // returns [content, nextIndex] for {..} or single char
828
- if (s[i] !== '{') return [s[i] ?? '', i + 1];
829
- let depth = 0, j = i;
830
- for (; j < s.length; j++) { if (s[j] === '{') depth++; else if (s[j] === '}' && --depth === 0) break; }
831
- return [s.slice(i + 1, j), j + 1];
832
- };
833
- /** Convert a TeX-ish string into styled runs: [{text, italic, script}] */
834
- function texRuns(src) {
835
- let s = String(src)
836
- .replace(/\\\\(left|right|displaystyle|limits)\\b/g, '')
837
- .replace(/\\\\([,;: !])/g, (m, c) => (c === '!' ? '' : ' '))
838
- .replace(/\\\\([{}%$#&_])/g, '$1')
839
- .replace(/\\\\sqrt\\s*(\\{(?:[^{}]|\\{[^{}]*\\})*\\}|\\S)/g, (m, g) => { const c = g[0] === '{' ? g.slice(1, -1) : g; return '√' + (c.length > 1 ? '(' + c + ')' : c); })
840
- .replace(/\\\\frac\\s*\\{((?:[^{}]|\\{[^{}]*\\})*)\\}\\s*\\{((?:[^{}]|\\{[^{}]*\\})*)\\}/g, '($1)/($2)')
841
- .replace(/\\\\(?:text|mathrm|operatorname|mathbf)\\s*\\{([^{}]*)\\}/g, '\\u0000$1\\u0001')
842
- .replace(/\\\\([A-Za-z]+)/g, (m, name) => TEXMAP[name] ?? name)
843
- .replace(/-/g, '−').replace(/\\*/g, '·').replace(/'/g, '′');
844
- const runs = []; let upright = false;
845
- const push = (text, script) => { if (!text) return; for (const part of text.match(/[A-Za-z]+|[^A-Za-z]+/g) || []) runs.push({ text: part, italic: !upright && /^[A-Za-z]$/.test(part), script }); };
846
- let buf = '';
847
- for (let i = 0; i < s.length;) {
848
- const ch = s[i];
849
- if (ch === '\\u0000' || ch === '\\u0001') { push(buf, null); buf = ''; upright = ch === '\\u0000'; i++; continue; }
850
- if ((ch === '^' || ch === '_') && i + 1 < s.length) { push(buf, null); buf = ''; const [g, j] = readGroup(s, i + 1); push(g.replace(/[{}]/g, ''), ch === '^' ? 'sup' : 'sub'); i = j; continue; }
851
- if (ch === '{' || ch === '}') { i++; continue; }
852
- buf += ch; i++;
853
- }
854
- push(buf, null);
855
- return runs;
856
- }
857
- const fillRuns = (node, runs, size) => {
858
- node.textContent = ''; let shift = 0;
859
- for (const r of runs) {
860
- const t = svgEl('tspan'), want = r.script === 'sup' ? -0.4 * size : r.script === 'sub' ? 0.25 * size : 0;
861
- if (want !== shift) { t.setAttribute('dy', r2(want - shift)); shift = want; }
862
- if (r.script) t.setAttribute('font-size', r2(size * 0.68));
863
- if (r.italic) t.setAttribute('font-style', 'italic');
864
- t.textContent = r.text; node.appendChild(t);
865
- }
866
- };
867
- /** One token of a Tex expression (plain text or a stacked fraction). */
868
- class Token extends Mob {
869
- constructor(src, props) {
870
- super('token', { at: [0, 0], size: theme.fontSize, color: theme.text }, props);
871
- this.src = src;
872
- const m = /^\\\\frac\\s*\\{((?:[^{}]|\\{[^{}]*\\})*)\\}\\s*\\{((?:[^{}]|\\{[^{}]*\\})*)\\}$/.exec(src.trim());
873
- this.frac = m ? [texRuns(m[1]), texRuns(m[2])] : null; this.runs = m ? null : texRuns(src);
874
- const G = '(\\\\{(?:[^{}]|\\\\{[^{}]*\\\\})*\\\\}|\\\\S)', op = !m && new RegExp(\`^\\\\\\\\(lim|sum|prod|max|min)(?:_\${G})?(?:\\\\^\${G})?$\`).exec(src.trim());
875
- const ungroup = (g) => (g && g[0] === '{' ? g.slice(1, -1) : g);
876
- if (op && (op[2] || op[3])) { const big = op[1] === 'sum' || op[1] === 'prod'; this.op = { main: texRuns('\\\\' + op[1]), k: big ? 1.35 : 1, under: op[2] ? texRuns(ungroup(op[2])) : null, over: op[3] ? texRuns(ungroup(op[3])) : null }; this.runs = null; }
877
- this._wpx = this._measure();
878
- }
879
- _measure() {
880
- const s = this.props.size, k = this.frac ? 0.8 : 1;
881
- const one = (runs, kk = k) => measureRuns(runs, s * kk);
882
- if (this.op) return Math.max(one(this.op.main, this.op.k), this.op.under ? one(this.op.under, 0.62) : 0, this.op.over ? one(this.op.over, 0.62) : 0) + 0.1 * s;
883
- return this.frac ? Math.max(one(this.frac[0]), one(this.frac[1])) + 0.2 * s : one(this.runs);
884
- }
885
- _build() {
886
- const g = svgEl('g'), s = this.props.size, mk = (runs, size) => { const t = svgEl('text', { 'dominant-baseline': 'central', 'text-anchor': 'middle', 'font-family': theme.mathFont, 'font-size': r2(size) }); fillRuns(t, runs, size); g.appendChild(t); return t; };
887
- if (this.frac) { mk(this.frac[0], s * 0.8); g.appendChild(svgEl('path', { 'stroke-width': Math.max(1.5, s * 0.06) })); mk(this.frac[1], s * 0.8); }
888
- else if (this.op) { mk(this.op.main, s * this.op.k); mk(this.op.under || [], s * 0.62); mk(this.op.over || [], s * 0.62); }
889
- else mk(this.runs, s);
890
- return g;
891
- }
892
- _bbox() {
893
- const [x, y] = this.p('at'), s = this.props.size / unit(), w = this._wpx / unit() / 2;
894
- if (this.op) return [x - w, y - (this.op.under ? 1.15 : 0.6) * s, x + w, y + (this.op.over ? 1.15 : 0.6) * s];
895
- const h = (this.frac ? 1.15 : 0.6) * s; return [x - w, y - h, x + w, y + h];
896
- }
897
- _draw() {
898
- const [px, py] = this.run.toPx(this.p('at')), s = this.props.size, color = paint(this.p('color')), kids = this.node.childNodes;
899
- if (this.op) { const dy = [0, 0.8 * s * this.op.k, -0.85 * s * this.op.k]; [...kids].forEach((t, i) => { setA(t, 'x', r2(px)); setA(t, 'y', r2(py + dy[i])); setA(t, 'fill', color); }); return; }
900
- if (!this.frac) { setA(kids[0], 'x', r2(px)); setA(kids[0], 'y', r2(py)); setA(kids[0], 'fill', color); return; }
901
- const [num, bar, den] = kids, hw = this._wpx / 2 - 0.05 * s;
902
- setA(num, 'x', r2(px)); setA(num, 'y', r2(py - 0.55 * s)); setA(num, 'fill', color);
903
- setA(den, 'x', r2(px)); setA(den, 'y', r2(py + 0.6 * s)); setA(den, 'fill', color);
904
- setA(bar, 'd', \`M\${r2(px - hw)} \${r2(py)} L\${r2(px + hw)} \${r2(py)}\`); setA(bar, 'stroke', color);
905
- }
906
- }
907
- const measureRuns = (runs, size) => {
908
- if (CURRENT && CURRENT.player) { const w = CURRENT.player.measureRuns(runs, size); if (w) return w; }
909
- return runs.reduce((a, r) => a + estimate(r.text, size * (r.script ? 0.68 : 1)), 0);
910
- };
911
- const estimate = (str, size) => [...str].reduce((a, ch) => a + size * (/[ilj.,:;'|!·]/.test(ch) ? 0.3 : /[mwMW—]/.test(ch) ? 0.8 : /\\s/.test(ch) ? 0.28 : 0.52), 0);
912
- const measure = (str, size, font) => {
913
- if (CURRENT && CURRENT.player) { const w = CURRENT.player.measureText(str, size, font); if (w) return w; }
914
- return estimate(str, size);
915
- };
916
-
917
- // ───────────────────────────── groups & composite objects ─────────────────────────────
918
- export class Group extends Mob {
919
- constructor(children = [], props = {}, kind = 'group') { super(kind, {}, props); for (const c of children.flat()) if (c) this.add(c); }
920
- /** Add children (they move with the group). */
921
- add(...ms) {
922
- for (const m of ms.flat()) {
923
- if (m.parent) m.parent.children.splice(m.parent.children.indexOf(m), 1);
924
- m.parent = this; this.children.push(m);
925
- // An attached child stays visible on its own until the group itself is added.
926
- if (this.attached) { if (m.run) m.run.mobs = m.run.mobs.filter((x) => x !== m); m._mount(this.run, this.node); }
927
- }
928
- return this;
929
- }
930
- /** i-th child. */
931
- item(i) { return this.children[i < 0 ? this.children.length + i : i]; }
932
- get length() { return this.children.length; }
933
- set(props) { // style props propagate to children
934
- const own = {}, style = {};
935
- for (const k in props) (STYLE_KEYS.has(k) ? style : own)[k] = props[k];
936
- if (Object.keys(style).length) for (const c of this.children) c.set(style);
937
- return super.set(own);
938
- }
939
- /** Lay children out in a row/column with gaps, centred on the current centre. */
940
- arrange(dir = 'right', buff = 0.25) {
941
- const c0 = this.center(), d = SIDES[dir] || dir; let prev = null;
942
- for (const c of this.children) { if (prev) c.nextTo(prev, d, buff); else c.moveTo([0, 0]); prev = c; }
943
- return this.moveTo(c0);
944
- }
945
- _bbox() { const bs = this.children.map((c) => c._bbox()); return bs.length ? [Math.min(...bs.map((b) => b[0])), Math.min(...bs.map((b) => b[1])), Math.max(...bs.map((b) => b[2])), Math.max(...bs.map((b) => b[3]))] : [0, 0, 0, 0]; }
946
- }
947
-
948
- /** TeX-like expression: tokens separated by spaces (or given as an array) are laid out left→right. */
949
- class Tex extends Group {
950
- constructor(src, props = {}) {
951
- super([], { at: [0, 0], size: theme.fontSize, color: theme.text, gap: undefined, ...props }, 'tex');
952
- const size = this.props.size, tokens = Array.isArray(src) ? src : splitTokens(String(src));
953
- const gap = (this.props.gap ?? (Array.isArray(src) ? 0 : 0.22)) * size, colors = this.props.colors || {};
954
- const toks = tokens.map((t) => new Token(t, { size, color: colors[t] || this.props.color }));
955
- const total = toks.reduce((a, t) => a + t._wpx, 0) + gap * Math.max(0, toks.length - 1);
956
- let x = -total / 2; const [cx, cy] = this.props.at, u = unit();
957
- for (const t of toks) { t.props.at = [cx + (x + t._wpx / 2) / u, cy]; x += t._wpx + gap; this.add(t); }
958
- this.src = tokens;
959
- }
960
- /** Token (as a Mob) by its source string or index. */
961
- part(key) { return typeof key === 'number' ? this.children[key] : this.children.find((t) => t.src === key); }
962
- parts(key) { return this.children.filter((t) => t.src === key); }
963
- }
964
- const splitTokens = (s) => { const out = []; let cur = '', depth = 0; for (const ch of s) { if (ch === '{') depth++; if (ch === '}') depth--; if (/\\s/.test(ch) && depth === 0) { if (cur) out.push(cur); cur = ''; } else cur += ch; } if (cur) out.push(cur); return out; };
965
-
966
- class NumberLine extends Group {
967
- constructor(o = {}) {
968
- super([], { range: [-5, 5, 1], length: 10, at: [0, 0], color: theme.axis, labels: true, labelSize: 20, ticks: true, tip: false, vertical: false, ...o }, 'numberline');
969
- const [a, b, step] = this.props.range, P = this.props;
970
- this.line = P.tip ? new Arrow('arrow', { ...strokeDefaults(), tip: 0.2 }, { from: this.n2p(a), to: add(this.n2p(b), mul(this.dir(), 0.25)), color: P.color, width: 2 }) : new Line('line', strokeDefaults(), { from: this.n2p(a), to: this.n2p(b), color: P.color, width: 2 });
971
- this.add(this.line);
972
- const nums = []; for (let x = a; x <= b + 1e-9; x += step) nums.push(Math.round(x / step) * step);
973
- if (P.ticks) this.add(this.tickMarks = new Group(nums.map((x) => { const q = this.n2p(x), n = mul(v.perp(this.dir()), 0.1); return new Line('line', strokeDefaults(), { from: add(q, n), to: sub(q, n), color: P.color, width: 2 }); })));
974
- const labelled = Array.isArray(P.labels) ? P.labels : P.labels ? nums.filter((x) => !(P.skip || []).includes(x)) : [];
975
- this.add(this.numbers = new Group(labelled.map((x) => new Text('text', { at: add(this.n2p(x), P.vertical ? [-0.35, 0] : [0, -0.38]), text: fmt(x, Number.isInteger(x) ? 0 : 1), size: P.labelSize, color: theme.text, anchor: P.vertical ? 'end' : 'middle', weight: 400 }))));
976
- }
977
- dir() { return this.props.vertical ? UP : RIGHT; }
978
- /** number → world point */
979
- n2p(x) { const [a, b] = this.props.range, L = this.props.length, t = (x - a) / (b - a) - 0.5; return add(this.props.at, mul(this.dir(), t * L)); }
980
- /** world point → number */
981
- p2n(p) { const [a, b] = this.props.range, d = sub(p, this.props.at), t = (this.props.vertical ? d[1] : d[0]) / this.props.length + 0.5; return a + t * (b - a); }
982
- }
983
-
984
- class Axes extends Group {
985
- constructor(o = {}) {
986
- super([], { x: [-5, 5, 1], y: [-3, 3, 1], width: 10, height: 6, at: [0, 0], color: theme.axis, labels: true, labelSize: 18, tips: true, grid: false, xLabel: null, yLabel: null, ...o }, 'axes');
987
- const P = this.props, [x0, x1, xs] = P.x, [y0, y1, ys] = P.y;
988
- const ox = clamp(0, x0, x1), oy = clamp(0, y0, y1);
989
- if (P.grid) {
990
- const lines = [];
991
- for (let x = Math.ceil(x0 / xs) * xs; x <= x1 + 1e-9; x += xs) lines.push(new Line('line', strokeDefaults(), { from: this.c2p(x, y0), to: this.c2p(x, y1), color: theme.grid, width: 1.2, opacity: 0.45 }));
992
- for (let y = Math.ceil(y0 / ys) * ys; y <= y1 + 1e-9; y += ys) lines.push(new Line('line', strokeDefaults(), { from: this.c2p(x0, y), to: this.c2p(x1, y), color: theme.grid, width: 1.2, opacity: 0.45 }));
993
- this.add(this.gridLines = new Group(lines));
994
- }
995
- const mk = (from, to) => (P.tips ? new Arrow('arrow', { ...strokeDefaults(), tip: 0.18 }, { from, to, color: P.color, width: 2 }) : new Line('line', strokeDefaults(), { from, to, color: P.color, width: 2 }));
996
- this.xAxis = mk(this.c2p(x0, oy), add(this.c2p(x1, oy), P.tips ? [0.25, 0] : [0, 0]));
997
- this.yAxis = mk(this.c2p(ox, y0), add(this.c2p(ox, y1), P.tips ? [0, 0.25] : [0, 0]));
998
- this.add(this.xAxis, this.yAxis);
999
- const ticks = [], labels = [], skip = (val, o0) => Math.abs(val - o0) < 1e-9;
1000
- for (let x = Math.ceil(x0 / xs) * xs; x <= x1 + 1e-9; x += xs) { const q = this.c2p(x, oy); ticks.push(new Line('line', strokeDefaults(), { from: add(q, [0, 0.08]), to: add(q, [0, -0.08]), color: P.color, width: 2 })); if (P.labels && !skip(x, ox)) labels.push(new Text('text', { at: add(q, [0, -0.32]), text: fmt(x, Number.isInteger(+x.toFixed(6)) ? 0 : 1), size: P.labelSize, color: theme.muted, anchor: 'middle', weight: 400 })); }
1001
- for (let y = Math.ceil(y0 / ys) * ys; y <= y1 + 1e-9; y += ys) { const q = this.c2p(ox, y); ticks.push(new Line('line', strokeDefaults(), { from: add(q, [0.08, 0]), to: add(q, [-0.08, 0]), color: P.color, width: 2 })); if (P.labels && !skip(y, oy)) labels.push(new Text('text', { at: add(q, [-0.18, 0]), text: fmt(y, Number.isInteger(+y.toFixed(6)) ? 0 : 1), size: P.labelSize, color: theme.muted, anchor: 'end', weight: 400 })); }
1002
- this.add(this.ticks = new Group(ticks), this.numbers = new Group(labels));
1003
- if (P.xLabel) this.add(this.xLabelMob = new Tex(P.xLabel, { at: add(this.c2p(x1, oy), [0.55, 0.0]), size: 24 }));
1004
- if (P.yLabel) this.add(this.yLabelMob = new Tex(P.yLabel, { at: add(this.c2p(ox, y1), [0, 0.5]), size: 24 }));
1005
- }
1006
- /** graph coordinates → world point. Accepts (x, y) or ([x, y]). */
1007
- c2p(x, y) { if (Array.isArray(x)) [x, y] = x; const P = this.props, [x0, x1] = P.x, [y0, y1] = P.y; return [P.at[0] + ((x - x0) / (x1 - x0) - 0.5) * P.width, P.at[1] + ((y - y0) / (y1 - y0) - 0.5) * P.height]; }
1008
- /** world point → graph coordinates */
1009
- p2c(p) { const P = this.props, [x0, x1] = P.x, [y0, y1] = P.y; return [x0 + ((p[0] - P.at[0]) / P.width + 0.5) * (x1 - x0), y0 + ((p[1] - P.at[1]) / P.height + 0.5) * (y1 - y0)]; }
1010
- /** Function graph y = f(x). f may read trackers; it is re-sampled every frame. */
1011
- plot(f, o = {}) { return new Graph('graph', { ...strokeDefaults(), samples: 160, x: null }, { ...o, f, axes: this }); }
1012
- /** Dot at graph coords; x / y may be numbers or functions (then the dot follows them). */
1013
- point(x, y, o = {}) { const fx = typeof x === 'function', fy = typeof y === 'function'; return dot({ ...o, at: fx || fy ? () => this.c2p(fx ? x() : x, fy ? y() : y) : this.c2p(x, y) }); }
1014
- /** Line segment between two points given in graph coords (arrays or functions returning arrays). */
1015
- segment(a, b, o = {}) { const g = (q) => (typeof q === 'function' ? () => this.c2p(q()) : this.c2p(q)); return line({ ...o, from: g(a), to: g(b) }); }
1016
- }
1017
-
1018
- class ArrayMob extends Group {
1019
- constructor(values, o = {}) {
1020
- super([], { at: [0, 0], cell: 0.8, color: theme.muted, fill: null, size: 26, indices: true, ...o }, 'array');
1021
- const P = this.props, n = values.length, x0 = P.at[0] - ((n - 1) * P.cell) / 2;
1022
- this.values = values.slice();
1023
- this.cells = new Group(values.map((_, i) => rect({ at: [x0 + i * P.cell, P.at[1]], w: P.cell, h: P.cell, color: P.color, width: 2, fill: P.fill || theme.bg, fillOpacity: 1 })));
1024
- this.items = new Group(values.map((val, i) => text(String(val), { at: [x0 + i * P.cell, P.at[1]], size: P.size, color: theme.text })));
1025
- this.add(this.cells, this.items);
1026
- if (P.indices) this.add(this.indexLabels = new Group(values.map((_, i) => text(String(i), { at: [x0 + i * P.cell, P.at[1] - P.cell / 2 - 0.25], size: 16, color: theme.muted }))));
1027
- }
1028
- cell(i) { return this.cells.item(i); }
1029
- /** value text mob */
1030
- value(i) { return this.items.item(i); }
1031
- /** centre of cell i */
1032
- pos(i) { return this.cells.item(i).center(); }
1033
- }
1034
-
1035
- // ───────────────────────────── factories (public) ─────────────────────────────
1036
- /** @param {object} o {at, r, color, width, fill, fillOpacity} */
1037
- export const circle = (o = {}) => new Circle('circle', { ...strokeDefaults(), at: [0, 0], r: 1 }, o);
1038
- /** Small filled dot. {at, r=0.08, color} */
1039
- export const dot = (o = {}) => new Dot('dot', { ...strokeDefaults(), at: [0, 0], r: theme.dotRadius, color: null, width: 0, fill: o.color || theme.text, fillOpacity: 1 }, { ...o, color: null, fill: o.fill || o.color || theme.text });
1040
- export const line = (o = {}) => new Line('line', { ...strokeDefaults(), from: [-1, 0], to: [1, 0] }, o);
1041
- /** Arrow {from, to, tip=0.25, bend=0 (curved if ≠0; positive bends left)} */
1042
- export const arrow = (o = {}) => new Arrow('arrow', { ...strokeDefaults(), from: [0, 0], to: [1, 0], tip: 0.25, bend: 0 }, o);
1043
- export const rect = (o = {}) => new Rect('rect', { ...strokeDefaults(), at: [0, 0], w: 2, h: 1, radius: 0 }, o);
1044
- export const square = (o = {}) => rect({ ...o, w: o.side ?? 1, h: o.side ?? 1 });
1045
- export const polygon = (o = {}) => new Poly('polygon', { ...strokeDefaults(), points: [], closed: true }, { ...o, closed: true });
1046
- /** Regular n-gon. {at, r=1, angle=0 (degrees; first vertex points up)} */
1047
- export const regular = (n, o = {}) => { const { at = [0, 0], r = 1, angle = 0, ...rest } = o; return polygon({ ...rest, points: Array.from({ length: n }, (_, i) => add(at, rot([r, 0], 90 + (360 * i) / n + angle))) }); };
1048
- /** Polyline / smooth curve through points. {points, closed=false, smooth=false} */
1049
- export const path = (o = {}) => new Poly('path', { ...strokeDefaults(), points: [], closed: false, smooth: false }, o);
1050
- /** Circular arc {at, r, start, end} in degrees (CCW from +x). */
1051
- export const arc = (o = {}) => path({ ...o, points: () => circlePts(typeof o.at === 'function' ? o.at() : o.at || [0, 0], typeof o.r === 'function' ? o.r() : o.r ?? 1, 48, typeof o.start === 'function' ? o.start() : o.start ?? 0, typeof o.end === 'function' ? o.end() : o.end ?? 90) });
1052
- /** Text label. str may be a function (re-evaluated every frame). */
1053
- export const text = (str, o = {}) => new Text('text', { at: [0, 0], size: theme.fontSize, color: theme.text, anchor: 'middle', weight: 400, italic: false, font: null, mono: false }, { ...o, text: str });
1054
- /** TeX-like math: "a^2 + b^2 = c^2", "\\\\frac{f(x+h) - f(x)}{h}". Spaces separate tokens. */
1055
- export const tex = (src, o = {}) => new Tex(src, o);
1056
- /** Live number display: bv.number(() => h.value, {decimals: 2, prefix: 'h = '}) */
1057
- export const number = (fn, o = {}) => { const get = typeof fn === 'function' ? fn : () => fn.value; return text(() => (o.prefix || '') + fmt(get(), o.decimals ?? 2) + (o.suffix || ''), o); };
1058
- export const group = (...ms) => new Group(ms);
1059
- export const numberLine = (o) => new NumberLine(o);
1060
- export const axes = (o) => new Axes(o);
1061
- export const plane = (o = {}) => new Axes({ grid: true, tips: false, width: 14.2, height: 8, x: [-7, 7, 1], y: [-4, 4, 1], ...o });
1062
- /** CS helper: a row of labelled cells. */
1063
- export const array = (values, o) => new ArrayMob(values, o);
1064
- /** Rounded box with centred text. {at, w, h, color, fill, size} → Group with .rect and .label */
1065
- export const box = (str, o = {}) => {
1066
- const size = o.size ?? 24, t = text(str, { at: o.at || [0, 0], size, color: o.textColor || theme.text, mono: o.mono });
1067
- const w = o.w ?? t.width() + 0.5, h = o.h ?? (size / unit()) + 0.4;
1068
- const g = new Group([rect({ at: o.at || [0, 0], w, h, radius: o.radius ?? 0.12, color: o.color || theme.roles.primary, width: o.width ?? 2.5, fill: o.fill || theme.bg, fillOpacity: o.fillOpacity ?? 1 }), t]);
1069
- g.rect = g.children[0]; g.label = g.children[1]; return g;
1070
- };
1071
- /** Curly brace along a mob's side (or between two points), with optional label. */
1072
- export const brace = (target, o = {}) => {
1073
- const side = o.side || 'down', buff = o.buff ?? 0.12, h = o.depth ?? 0.22;
1074
- let a, b;
1075
- if (Array.isArray(target) && target.length === 2 && target.every(isPt)) [a, b] = target;
1076
- else { const bb = boundsOf(target); a = { down: [bb.x0, bb.y0 - buff], up: [bb.x1, bb.y1 + buff], left: [bb.x0 - buff, bb.y1], right: [bb.x1 + buff, bb.y0] }[side]; b = { down: [bb.x1, bb.y0 - buff], up: [bb.x0, bb.y1 + buff], left: [bb.x0 - buff, bb.y0], right: [bb.x1 + buff, bb.y1] }[side]; }
1077
- const t = norm(sub(b, a)), nrm = [t[1], -t[0]], w = len(sub(b, a)), q = Math.min(h, w / 4);
1078
- const L = (u, vv) => add(a, add(mul(t, u), mul(nrm, vv))), seg = (p0, c, p1) => Array.from({ length: 7 }, (_, i) => quadAt(p0, c, p1, i / 6));
1079
- const pts = [...seg(L(0, 0), L(0, h / 2), L(q, h / 2)), ...seg(L(w / 2 - q, h / 2), L(w / 2, h / 2), L(w / 2, h)), ...seg(L(w / 2, h), L(w / 2, h / 2), L(w / 2 + q, h / 2)), ...seg(L(w - q, h / 2), L(w, h / 2), L(w, 0))];
1080
- const shape = path({ points: pts, color: o.color || theme.text, width: o.width ?? 2.5 });
1081
- const g = new Group([shape]); g.tip = L(w / 2, h); g.shape = shape;
1082
- if (o.label != null) { const lab = o.label instanceof Mob ? o.label : tex(String(o.label), { size: o.size ?? 26, color: o.labelColor || o.color || theme.text }); lab.nextTo(g.tip, nrm, 0.12); g.add(lab); g.label = lab; }
1083
- return g;
1084
- };
1085
- /** Attach a label (string → Tex, or any Mob) next to target; it follows the target every frame. */
1086
- export const label = (target, content, o = {}) => {
1087
- const m = content instanceof Mob ? content : o.plain ? text(String(content), o) : tex(String(content), o);
1088
- const side = o.side || 'up', buff = o.buff ?? 0.15;
1089
- m.nextTo(labelAnchor(target), side, buff);
1090
- if (o.follow !== false) m.addUpdater((mm) => mm.nextTo(labelAnchor(target), side, buff));
1091
- return m;
1092
- };
1093
- /**
1094
- * Lines and arrows are labelled beside their midpoint (on the curve for bent arrows). Their bounding
1095
- * box would put a label for a diagonal at a far corner, away from the line it names.
1096
- */
1097
- const labelAnchor = (target) => {
1098
- if (target instanceof Line) return lerpPt(target.p('from'), target.p('to'), 0.5);
1099
- if (target instanceof Arrow) { const q = target._parts(); return target.p('bend') ? quadAt(q.a, q.ctrl, q.base, 0.5) : lerpPt(q.a, q.b, 0.5); }
1100
- return target;
1101
- };
1102
- /** Re-create a Mob from fn() every frame (Manim's always_redraw). */
1103
- export const always = (fn) => {
1104
- const g = new Group([], {}, 'always'); let cur = fn(); g.add(cur);
1105
- g.addUpdater(() => { const nx = fn(); if (cur.constructor === nx.constructor && !nx.children.length) { cur.props = nx.props; } else { g.children = []; cur._unmount(); cur.parent = null; g.add(nx); cur = nx; } });
1106
- return g;
1107
- };
1108
-
1109
- // ───────────────────────────── value trackers ─────────────────────────────
1110
- /** A number that drives other objects (Manim's ValueTracker). */
1111
- export class Tracker {
1112
- constructor(value = 0) { this._v = value; this.run = CURRENT; this.listeners = []; }
1113
- get value() { return this._v; }
1114
- set value(x) { this.set(x); }
1115
- set(x) { if (x !== this._v) { this._v = x; for (const f of this.listeners) f(x); if (this.run && !this.run.dead) this.run.invalidate(); } return this; }
1116
- /** Animation to a target value. */
1117
- to(target, opts) { return tween(this, target, opts); }
1118
- onChange(fn) { this.listeners.push(fn); return this; }
1119
- }
1120
- export const tracker = (x = 0) => new Tracker(x);
1121
-
1122
- // ───────────────────────────── animations ─────────────────────────────
1123
- /** An animation: begin(run) → update(eased t) every frame → finish(run). */
1124
- export class Anim {
1125
- constructor(opts = {}, hooks = {}, dflt = {}) {
1126
- this.duration = opts.duration ?? dflt.duration ?? 1; this.delay = opts.delay ?? 0;
1127
- this.ease = resolveEase(opts.ease ?? dflt.ease ?? 'smooth'); Object.assign(this, hooks);
1128
- }
1129
- begin() {} update() {} finish() {}
1130
- }
1131
- const ensureOn = (run, m) => { if (!m.attached) run.add(m); };
1132
-
1133
- /** Draw a shape in (stroke dash), grow dots, write text token by token. Groups are staggered. */
1134
- export function create(m, opts = {}) {
1135
- if (m instanceof Group) {
1136
- const kids = m.children.map((c) => create(c, { duration: opts.duration ?? 1 }));
1137
- const inner = lagged(kids, { lag: opts.lag ?? (m.kind === 'tex' ? 0.25 : 0.15), duration: opts.duration ?? (m.kind === 'tex' ? 1 : 1.5) });
1138
- const b = inner.begin.bind(inner);
1139
- inner.begin = (run) => { ensureOn(run, m); for (const c of m.children) c._unmount(); b(run); };
1140
- return inner;
1141
- }
1142
- let st;
1143
- return new Anim(opts, {
1144
- begin(run) { ensureOn(run, m); st = { fo: m.props.fillOpacity, o: m.props.opacity, s: m.props.scale }; },
1145
- update(t) {
1146
- if (m instanceof Text || m instanceof Token || m.props.dashed) m.props.opacity = st.o * t;
1147
- else if (m.kind === 'dot') { m.props.scale = st.s * t; m.props.opacity = st.o * Math.min(1, t * 2); }
1148
- else if (m instanceof Shape || m instanceof Arrow) { const hasFill = !!m.p('fill') && st.fo > 0; m.props._de = hasFill ? clamp01(t / 0.7) : t; if (hasFill) m.props.fillOpacity = st.fo * clamp01((t - 0.5) / 0.5); }
1149
- else m.props.opacity = st.o * t;
1150
- },
1151
- finish() { Object.assign(m.props, { _de: 1, fillOpacity: st.fo, opacity: st.o, scale: st.s }); },
1152
- });
1153
- }
1154
- export const write = create;
1155
- /** Reverse of create; removes the object at the end. */
1156
- export function uncreate(m, opts = {}) {
1157
- if (m instanceof Group) return fadeOut(m, opts);
1158
- const a = create(m, opts), f = a.ease;
1159
- a.ease = (t) => 1 - f(t);
1160
- const fin = a.finish.bind(a); a.finish = (run) => { fin(run); run.remove(m); };
1161
- return a;
1162
- }
1163
- const offsetAnim = (m, from, to, opts, onT, end) => {
1164
- let cur = [0, 0];
1165
- return new Anim(opts, {
1166
- begin(run) { ensureOn(run, m); cur = [0, 0]; this._o = m.props.opacity; onT(0, this._o); m._shift(from); cur = from; },
1167
- update(t) { const want = lerpPt(from, to, t); m._shift(sub(want, cur)); cur = want; onT(t, this._o); },
1168
- finish(run) { end && end(run, this._o, cur); },
1169
- });
1170
- };
1171
- /** Fade in, optionally sliding by \`shift\` (e.g. {shift: [0, 0.3]} rises into place). */
1172
- export function fadeIn(m, opts = {}) { const s = opts.shift || [0, 0], fn = () => typeof m.props.opacity === 'function'; let o0; return offsetAnim(m, mul(s, -1), [0, 0], opts, (t, o) => { if (t === 0) o0 = fn() ? null : o || 1; if (o0 != null) m.props.opacity = o0 * t; }, () => { if (o0 != null) m.props.opacity = o0; }); }
1173
- /** Fade out (optionally sliding by \`shift\`) and remove. */
1174
- export function fadeOut(m, opts = {}) { const s = opts.shift || [0, 0]; return offsetAnim(m, [0, 0], s, opts, (t, o) => { if (typeof o !== 'function') m.props.opacity = o * (1 - t); }, (run, o, cur) => { run.remove(m); m.props.opacity = o; m._shift(mul(cur, -1)); }); }
1175
- /** Grow from the centre (scale 0 → 1). */
1176
- export function grow(m, opts = {}) { let s; return new Anim(opts, { begin(run) { ensureOn(run, m); s = m.props.scale; m.props.scale = 0; }, update(t) { m.props.scale = s * t; }, finish() { m.props.scale = s; } }); }
1177
- /** Move the object's centre to p. */
1178
- export function moveTo(m, p, opts = {}) { let from, cur; return new Anim(opts, { begin(run) { ensureOn(run, m); from = m.center(); cur = from; }, update(t) { const want = lerpPt(from, p, t); m._shift(sub(want, cur)); cur = want; } }); }
1179
- /** Translate by d. */
1180
- export function shift(m, d, opts = {}) { let cur; return new Anim(opts, { begin(run) { ensureOn(run, m); cur = [0, 0]; }, update(t) { const want = mul(d, t); m._shift(sub(want, cur)); cur = want; } }); }
1181
- /** Tween any props: bv.animate(dot, {at:[1,2], color: bv.C.RED, r: 0.2}). Groups: style keys apply to all children. */
1182
- export function animate(m, target, opts = {}) {
1183
- let jobs = [];
1184
- return new Anim(opts, {
1185
- begin(run) {
1186
- ensureOn(run, m); jobs = [];
1187
- const collect = (mob, tgt) => {
1188
- for (const k in tgt) {
1189
- if (mob instanceof Dot && k === 'color') { collect(mob, { fill: tgt[k] }); continue; }
1190
- if (k === 'at' && (mob instanceof Group || !('at' in mob.props) || typeof mob.props.at === 'function')) { const from = mob.center(), to = tgt.at; let cur = from; jobs.push((t) => { const want = lerpPt(from, to, t); mob._shift(sub(want, cur)); cur = want; }); continue; }
1191
- if (mob instanceof Group && STYLE_KEYS.has(k)) { for (const c of mob.children) collect(c, { [k]: tgt[k] }); continue; }
1192
- if (typeof mob.props[k] === 'function' && !FN_PROPS.has(k)) { console.warn(\`bv.animate: prop "\${k}" is a function; not animated\`); continue; }
1193
- const from = cloneProps({ x: mob.props[k] }).x, to = tgt[k];
1194
- jobs.push((t) => { mob.props[k] = interp(from, to, t); });
1195
- }
1196
- };
1197
- collect(m, target);
1198
- },
1199
- update(t) { for (const j of jobs) j(t); },
1200
- });
1201
- }
1202
- /** Animate a tracker to a value. */
1203
- export function tween(trk, target, opts = {}) { let from; return new Anim(opts, { begin() { from = trk.value; }, update(t) { trk.set(lerp(from, target, t)); } }); }
1204
-
1205
- const resample = (pts, closed, n) => {
1206
- const P = closed ? [...pts, pts[0]] : pts.slice();
1207
- if (P.length < 2) return Array.from({ length: n }, () => (P[0] || [0, 0]).slice());
1208
- const cum = [0]; for (let i = 1; i < P.length; i++) cum.push(cum[i - 1] + len(sub(P[i], P[i - 1])));
1209
- const total = cum[cum.length - 1] || 1, out = []; let j = 1;
1210
- for (let i = 0; i < n; i++) {
1211
- const d = (closed ? i / n : i / (n - 1)) * total;
1212
- while (j < P.length - 1 && cum[j] < d) j++;
1213
- const seg = cum[j] - cum[j - 1] || 1; out.push(lerpPt(P[j - 1], P[j], clamp01((d - cum[j - 1]) / seg)));
1214
- }
1215
- return out;
1216
- };
1217
- const area = (P) => P.reduce((s, p, i) => { const q = P[(i + 1) % P.length]; return s + p[0] * q[1] - q[0] * p[1]; }, 0);
1218
- const alignPts = (A, B, closed) => {
1219
- if (closed) {
1220
- if (Math.sign(area(A)) !== Math.sign(area(B))) B = B.slice().reverse();
1221
- let best = 0, bestD = Infinity; const n = A.length;
1222
- for (let k = 0; k < n; k++) { let d = 0; for (let i = 0; i < n; i += 4) { const q = B[(i + k) % n]; d += (A[i][0] - q[0]) ** 2 + (A[i][1] - q[1]) ** 2; } if (d < bestD) { bestD = d; best = k; } }
1223
- return B.map((_, i) => B[(i + best) % n]);
1224
- }
1225
- const d0 = len(sub(A[0], B[0])) + len(sub(A[A.length - 1], B[B.length - 1])), d1 = len(sub(A[0], B[B.length - 1])) + len(sub(A[A.length - 1], B[0]));
1226
- return d1 < d0 ? B.slice().reverse() : B;
1227
- };
1228
- const styleOf = (m) => ({ color: m.p('color') || m.p('fill') || theme.text, width: m.p('width') ?? 3, fill: m.p('fill'), fillOpacity: m.p('fill') ? m.p('fillOpacity') : 0, opacity: m.p('opacity') });
1229
-
1230
- /**
1231
- * Morph a into b (ReplacementTransform): a disappears, a temporary shape morphs, b appears.
1232
- * Tex→Tex matches identical tokens (TransformMatchingTex); groups of equal size transform pairwise;
1233
- * anything without an outline (text) cross-fades while moving.
1234
- */
1235
- export function transform(a, b, opts = {}) {
1236
- if (a instanceof Tex && b instanceof Tex) return transformMatching(a, b, opts);
1237
- if (a instanceof Group && b instanceof Group && a.children.length === b.children.length && a.kind === 'group' && b.kind === 'group') {
1238
- const inner = lagged(a.children.map((c, i) => transform(c, b.children[i], {})), { lag: opts.lag ?? 0, duration: opts.duration ?? 1 });
1239
- const fin = inner.finish.bind(inner); inner.finish = (run) => { fin(run); run.remove(a); run.add(b); }; return inner;
1240
- }
1241
- const A = a._outline(), B = b._outline();
1242
- if (!A || !B || A.pts.length < 2 || B.pts.length < 2) return crossfade(a, b, opts);
1243
- let tmp, pa, pb, sa, sb;
1244
- return new Anim(opts, {
1245
- begin(run) {
1246
- const closed = A.closed && B.closed, N = 120;
1247
- pa = resample(a._outline().pts, closed, N); pb = alignPts(pa, resample(b._outline().pts, closed, N), closed);
1248
- sa = styleOf(a); sb = styleOf(b);
1249
- tmp = path({ points: pa, closed, ...sa }); tmp.props.fillOpacity = sa.fillOpacity;
1250
- if (!tmp.props.fill) tmp.props.fill = sb.fill;
1251
- run.remove(a); run.add(tmp);
1252
- },
1253
- update(t) { tmp.props.points = pa.map((q, i) => lerpPt(q, pb[i], t)); for (const k of ['color', 'width', 'fillOpacity', 'opacity']) tmp.props[k] = interp(sa[k], sb[k], t); if (sa.fill && sb.fill) tmp.props.fill = mixColor(sa.fill, sb.fill, t); },
1254
- finish(run) { run.remove(tmp); run.add(b); },
1255
- });
1256
- }
1257
- /** Fade a out while moving to b's place; fade b in from a's place. */
1258
- export function crossfade(a, b, opts = {}) {
1259
- let ca, cb, oa, ob, curA, curB;
1260
- return new Anim(opts, {
1261
- begin(run) { ca = a.center(); cb = b.center(); oa = a.props.opacity; ob = b.props.opacity; ensureOn(run, a); ensureOn(run, b); b._shift(sub(ca, cb)); curA = ca; curB = ca; },
1262
- update(t) { const pA = lerpPt(ca, cb, t); a._shift(sub(pA, curA)); curA = pA; b._shift(sub(pA, curB)); curB = pA; a.props.opacity = oa * (1 - t); b.props.opacity = ob * t; },
1263
- finish(run) { run.remove(a); a._shift(sub(ca, curA)); a.props.opacity = oa; b.props.opacity = ob; },
1264
- });
1265
- }
1266
- /** TransformMatchingTex: identical tokens glide to their new place, others fade. */
1267
- export function transformMatching(a, b, opts = {}) {
1268
- let pairs, extraA, extraB;
1269
- return new Anim(opts, {
1270
- begin(run) {
1271
- const used = new Set(); pairs = []; extraB = [];
1272
- for (const tb of b.children) { const ta = a.children.find((x) => !used.has(x) && x.src === tb.src); if (ta) { used.add(ta); pairs.push({ ta, tb, from: ta.props.at.slice(), c0: ta.p('color'), k: tb.props.size / ta.props.size }); } else extraB.push(tb); }
1273
- extraA = a.children.filter((x) => !used.has(x));
1274
- ensureOn(run, a); ensureOn(run, b);
1275
- for (const t of b.children) t.props.opacity = 0;
1276
- this._shiftB = sub(a.center(), b.center());
1277
- },
1278
- update(t) {
1279
- for (const p of pairs) { p.ta.props.at = lerpPt(p.from, p.tb.props.at, t); p.ta.props.color = mixColor(p.c0, p.tb.p('color'), t); p.ta.props.scale = lerp(1, p.k, t); }
1280
- for (const x of extraA) x.props.opacity = 1 - clamp01(t * 2);
1281
- for (const x of extraB) x.props.opacity = clamp01(t * 2 - 1);
1282
- },
1283
- finish(run) { run.remove(a); for (const p of pairs) { p.ta.props.at = p.from; p.ta.props.color = p.c0; p.ta.props.scale = 1; } for (const x of a.children) x.props.opacity = 1; for (const x of b.children) x.props.opacity = 1; },
1284
- });
1285
- }
1286
- /** Briefly scale up + recolour (there-and-back) to draw attention. */
1287
- export function indicate(m, opts = {}) {
1288
- const color = opts.color || theme.roles.accent, k = opts.scale ?? 1.2; let st;
1289
- return new Anim(opts, {
1290
- begin(run) { ensureOn(run, m); st = { s: m.props.scale, leaves: m._leaves().map((l) => ({ l, c: l.props.color, f: l.props.fill })) }; },
1291
- // background-coloured fills (boxes, array cells) stay put so their text remains readable
1292
- update(t) { m.props.scale = st.s * (1 + (k - 1) * t); for (const { l, c, f } of st.leaves) { if (typeof c === 'string') l.props.color = mixColor(c, color, t); if (typeof f === 'string' && f.toLowerCase() !== theme.bg.toLowerCase()) l.props.fill = mixColor(f, color, t); } },
1293
- finish() { m.props.scale = st.s; for (const { l, c, f } of st.leaves) { l.props.color = c; l.props.fill = f; } },
1294
- }, { ease: 'thereAndBack' });
1295
- }
1296
- /** Draw a rectangle (or circle) around m, then erase it. */
1297
- export function circumscribe(m, opts = {}) {
1298
- let r;
1299
- return new Anim(opts, {
1300
- begin(run) { const b = boundsOf(m), pad = opts.buff ?? 0.15; r = opts.shape === 'circle' ? circle({ at: [b.cx, b.cy], r: Math.max(b.w, b.h) / 2 + pad, color: opts.color || theme.roles.accent, width: 4 }) : rect({ at: [b.cx, b.cy], w: b.w + 2 * pad, h: b.h + 2 * pad, color: opts.color || theme.roles.accent, width: 4, radius: 0.08 }); run.add(r); },
1301
- update(t) { r.props._de = clamp01(t * 2); r.props._ds = clamp01(t * 2 - 1); },
1302
- finish(run) { run.remove(r); },
1303
- }, { duration: 1.4, ease: 'linear' });
1304
- }
1305
- /** Expanding ring at a point or object centre ("look here"). */
1306
- export function pulse(target, opts = {}) {
1307
- let c;
1308
- return new Anim(opts, {
1309
- begin(run) { const bb = isPt(target) ? null : boundsOf(target), at = bb ? [bb.cx, bb.cy] : target; c = circle({ at, r: 0.1, color: opts.color || theme.roles.accent, width: 3 }); run.add(c); },
1310
- update(t) { c.props.r = 0.1 + t * (opts.r ?? 0.6); c.props.opacity = 1 - t; },
1311
- finish(run) { run.remove(c); },
1312
- }, { duration: 0.9, ease: 'rushFrom' });
1313
- }
1314
- /** Run fn once (useful inside sequence()). */
1315
- export const call = (fn) => new Anim({ duration: 0 }, { begin(run) { fn(run); } });
1316
- /** Arbitrary animation: bv.custom(t => {...}, {duration}) */
1317
- export const custom = (fn, opts = {}) => new Anim(opts, { update(t) { fn(t); } });
1318
- /** Staggered animations (Manim's lag_ratio). Each child starts \`lag\` × its duration after the previous. */
1319
- export function lagged(anims, opts = {}) {
1320
- const lag = opts.lag ?? 0.2, list = anims.flat().filter(Boolean);
1321
- const D = opts.duration != null ? opts.duration / (1 + Math.max(0, list.length - 1) * lag) : null;
1322
- if (D != null) for (const x of list) x.duration = D;
1323
- let t0 = 0; const starts = list.map((x) => { const s = t0 + x.delay; t0 += x.duration * lag; return s; });
1324
- return composite(list, starts, opts);
1325
- }
1326
- /** Play animations one after another. */
1327
- export function sequence(...anims) {
1328
- const list = anims.flat().filter(Boolean); let t0 = 0;
1329
- const starts = list.map((x) => { const s = t0 + x.delay; t0 = s + x.duration; return s; });
1330
- return composite(list, starts, {});
1331
- }
1332
- function composite(list, starts, opts) {
1333
- const total = Math.max(0, ...list.map((x, i) => starts[i] + x.duration));
1334
- let state;
1335
- const self = new Anim({ duration: total, ease: 'linear', delay: opts.delay }, {
1336
- begin(run) { state = list.map(() => 0); self._run = run; },
1337
- update(t) {
1338
- const T = t * total;
1339
- list.forEach((x, i) => {
1340
- if (state[i] === 2) return;
1341
- if (T + 1e-9 < starts[i] && t < 1) return;
1342
- if (state[i] === 0) { x.begin(self._run); state[i] = 1; }
1343
- const local = x.duration > 0 ? clamp01((T - starts[i]) / x.duration) : 1;
1344
- x.update(x.ease(t >= 1 ? 1 : local));
1345
- if (local >= 1 || t >= 1) { x.finish(self._run); state[i] = 2; }
1346
- });
1347
- },
1348
- });
1349
- return self;
1350
- }
1351
-
1352
- // ───────────────────────────── Run (the \`s\` object authors use) ─────────────────────────────
1353
- /** One build of a scene. Navigation creates a fresh Run; stale runs are dead and refuse to act. */
1354
- class Run {
1355
- constructor(player) {
1356
- this.player = player; this.unit = player.unit; this.steps = []; this.mobs = []; this.active = []; this.waits = new Set();
1357
- this.dead = false; this.instant = false; this.rushing = false; this.running = false; this.raf = null; this.lastNow = null; this.sliders = []; this.handles = [];
1358
- const W = player.W / player.unit, H = player.H / player.unit;
1359
- /** Frame in world units. */
1360
- this.frame = { width: W, height: H, left: -W / 2, right: W / 2, top: H / 2, bottom: -H / 2 };
1361
- this.reducedMotion = player.reduced;
1362
- }
1363
- /** Register a step: caption shown by the host; fn plays the step's animations. */
1364
- step(caption, fn = async () => {}) { this.steps.push({ caption: String(caption), fn }); return this; }
1365
- /** Centre of layout-grid cell (col, row): 6×6 by default, col 0 = left, row 0 = top. Fractions allowed. */
1366
- grid(col, row, cols = 6, rows = 6) { const F = this.frame; return [F.left + ((col + 0.5) * F.width) / cols, F.top - ((row + 0.5) * F.height) / rows]; }
1367
- toPx(p) { return [this.player.W / 2 + p[0] * this.unit, this.player.H / 2 - p[1] * this.unit]; }
1368
- toWorld(px) { return [(px[0] - this.player.W / 2) / this.unit, (this.player.H / 2 - px[1]) / this.unit]; }
1369
- /** Show objects instantly (on top). Returns the first. */
1370
- add(...ms) {
1371
- if (this.dead) return ms[0];
1372
- const strip = (x) => { for (const c of x.children) { this.mobs = this.mobs.filter((y) => y !== c); strip(c); } };
1373
- for (const m of ms.flat()) {
1374
- if (m.attached) continue;
1375
- if (m.parent && m.parent.attached) { m._mount(this, m.parent.node); continue; }
1376
- m._mount(this, this.player.layer); strip(m); if (!this.mobs.includes(m)) this.mobs.push(m);
1377
- }
1378
- this.invalidate(); return ms[0];
1379
- }
1380
- /** Hide objects instantly. */
1381
- remove(...ms) { for (const m of ms.flat()) { m._unmount(); this.mobs = this.mobs.filter((x) => x !== m); } this.invalidate(); }
1382
- toBack(m) { if (m.node && m.node.parentNode) m.node.parentNode.insertBefore(m.node, m.node.parentNode.firstChild); return m; }
1383
- toFront(m) { if (m.node && m.node.parentNode) m.node.parentNode.appendChild(m.node); return m; }
1384
- /** Play animations in parallel. Last arg may be options {duration, ease} applied to all. */
1385
- play(...items) {
1386
- if (this.dead) return Promise.reject(new Cancelled());
1387
- let o = null; if (items.length && !(items[items.length - 1] instanceof Anim) && !Array.isArray(items[items.length - 1])) o = items.pop();
1388
- const anims = items.flat().filter(Boolean);
1389
- for (const a of anims) { if (o && o.duration != null) a.duration = o.duration; if (o && o.ease) a.ease = resolveEase(o.ease); }
1390
- for (const a of anims) a.begin(this);
1391
- const total = Math.max(0, ...anims.map((a) => a.delay + a.duration));
1392
- if (this.instant || this.rushing || this.player.reduced || this.player.checking || total === 0) { for (const a of anims) { a.update(a.ease(1)); a.finish(this); } this.tick(0); return Promise.resolve(); }
1393
- return new Promise((resolve, reject) => { this.active.push({ anims, total, t0: null, done: new Set(), resolve, reject }); this._loop(); });
1394
- }
1395
- /** Pause (seconds). */
1396
- wait(sec = 1) {
1397
- if (this.dead) return Promise.reject(new Cancelled());
1398
- if (this.instant || this.rushing || this.player.checking) return Promise.resolve();
1399
- return new Promise((resolve, reject) => { const w = { resolve, reject }; w.timer = setTimeout(() => { this.waits.delete(w); resolve(); }, (sec * 1000) / this.player.speed); this.waits.add(w); });
1400
- }
1401
- invalidate() { if (!this.dead && !this.instant) this._loop(); }
1402
- _loop() { if (this.raf == null && !this.dead) this.raf = RAF((t) => this._frame(t)); }
1403
- _frame(time) {
1404
- this.raf = null; if (this.dead) return;
1405
- const dt = this.lastNow == null ? 0 : Math.min(0.1, (time - this.lastNow) / 1000); this.lastNow = time;
1406
- const finished = [];
1407
- for (const job of this.active.slice()) {
1408
- if (job.t0 == null) job.t0 = time;
1409
- const T = this.rushing ? Infinity : ((time - job.t0) / 1000) * this.player.speed;
1410
- for (const a of job.anims) {
1411
- if (job.done.has(a)) continue;
1412
- const local = a.duration > 0 ? clamp01((T - a.delay) / a.duration) : T >= a.delay ? 1 : 0;
1413
- a.update(a.ease(local)); if (local >= 1) { a.finish(this); job.done.add(a); }
1414
- }
1415
- if (job.done.size === job.anims.length) { this.active.splice(this.active.indexOf(job), 1); finished.push(job.resolve); }
1416
- }
1417
- this.tick(dt);
1418
- for (const r of finished) r();
1419
- if (this.active.length) this._loop(); else this.lastNow = null;
1420
- }
1421
- /** Run updaters, then render everything. */
1422
- tick(dt = 0) {
1423
- if (this.dead) return;
1424
- const prev = CURRENT; CURRENT = this;
1425
- try {
1426
- for (const m of this.mobs) m._update(dt);
1427
- for (const m of this.mobs) m._render();
1428
- for (const s of this.sliders) s.sync();
1429
- for (const h of this.handles) h.sync();
1430
- } finally { CURRENT = prev; }
1431
- }
1432
- /** Finish the running step instantly. */
1433
- rush() { this.rushing = true; for (const w of this.waits) { clearTimeout(w.timer); w.resolve(); } this.waits.clear(); if (this.active.length) { if (this.raf != null) CAF(this.raf); this.raf = null; this._frame(now()); } }
1434
- _kill() { this.dead = true; if (this.raf != null) CAF(this.raf); for (const j of this.active) j.reject(new Cancelled()); for (const w of this.waits) { clearTimeout(w.timer); w.reject(new Cancelled()); } this.active = []; this.waits.clear(); }
1435
- /** Seeded random generator (Math.random is also re-seeded on every rebuild). */
1436
- random(seed = 1) { return random(seed); }
1437
-
1438
- /** Range slider bound to a tracker, shown under the canvas. */
1439
- slider({ tracker: trk, min = 0, max = 1, step = 0.01, label: name = '', format, color } = {}) {
1440
- if (!trk) throw new Error('bv: slider needs {tracker}');
1441
- const wrap = htmlEl('label', 'bv-slider'), nm = htmlEl('span', 'bv-slider-name', name), input = htmlEl('input'), out = htmlEl('output');
1442
- Object.assign(input, { type: 'range', min, max, step, value: trk.value }); input.setAttribute('aria-label', name || 'value');
1443
- if (color) { input.style.accentColor = paint(color); nm.style.color = paint(color); }
1444
- input.addEventListener('input', () => trk.set(+input.value));
1445
- wrap.append(nm, input, out); this.player.controls.appendChild(wrap);
1446
- const fmtf = format || ((x) => fmt(x, step >= 1 ? 0 : step >= 0.1 ? 1 : 2));
1447
- const s = { el: wrap, input, sync: () => { if (+input.value !== trk.value) input.value = trk.value; out.textContent = fmtf(trk.value); } };
1448
- s.sync(); this.sliders.push(s); return s;
1449
- }
1450
- /** A button under the canvas. onClick may call s.play(). */
1451
- button(labelText, onClick) {
1452
- const b = htmlEl('button', 'bv-btn', labelText); b.type = 'button';
1453
- b.addEventListener('click', () => { Promise.resolve(onClick(this)).catch((e) => { if (!(e instanceof Cancelled)) this.player.error(e); }); });
1454
- this.player.controls.appendChild(b); return b;
1455
- }
1456
- /**
1457
- * Make a mob draggable. With {x, y} trackers the drag sets them (the mob should follow the
1458
- * trackers via function props). With {axes}, positions are in graph coordinates.
1459
- * {xRange, yRange} clamp, {constrain(p) → p} snaps, {onDrag(p)} is called with the point.
1460
- */
1461
- draggable(m, o = {}) {
1462
- const P = this.player, hit = svgEl('circle', { r: 0.32 * this.unit, class: 'bv-handle', tabindex: 0, role: 'slider', 'aria-label': o.label || 'draggable point' });
1463
- const ring = svgEl('circle', { r: 0.22 * this.unit, class: 'bv-halo', fill: 'none', stroke: paint(o.color || theme.roles.accent), 'stroke-width': 2, 'stroke-dasharray': '4 4', 'pointer-events': 'none' });
1464
- P.ui.append(hit, ring);
1465
- const apply = (world) => {
1466
- let q = o.axes ? o.axes.p2c(world) : world;
1467
- if (o.xRange) q = [clamp(q[0], o.xRange[0], o.xRange[1]), q[1]];
1468
- if (o.yRange) q = [q[0], clamp(q[1], o.yRange[0], o.yRange[1])];
1469
- if (o.constrain) q = o.constrain(q);
1470
- if (o.x) o.x.set(q[0]); if (o.y) o.y.set(q[1]);
1471
- if (o.onDrag) o.onDrag(q);
1472
- if (!o.x && !o.y && !o.onDrag) m.moveTo(o.axes ? o.axes.c2p(q) : q);
1473
- this.invalidate();
1474
- };
1475
- let dragging = false;
1476
- hit.addEventListener('pointerdown', (e) => { dragging = true; hit.setPointerCapture && hit.setPointerCapture(e.pointerId); hit.classList.add('bv-dragging'); e.preventDefault(); });
1477
- hit.addEventListener('pointermove', (e) => { if (dragging) apply(this.toWorld(P.clientToPx(e.clientX, e.clientY))); });
1478
- const end = () => { dragging = false; hit.classList.remove('bv-dragging'); };
1479
- hit.addEventListener('pointerup', end); hit.addEventListener('pointercancel', end);
1480
- hit.addEventListener('keydown', (e) => {
1481
- const d = { ArrowLeft: [-1, 0], ArrowRight: [1, 0], ArrowUp: [0, 1], ArrowDown: [0, -1] }[e.key]; if (!d) return;
1482
- e.preventDefault(); e.stopPropagation(); apply(add(m.center(), mul(d, e.shiftKey ? 0.5 : 0.1)));
1483
- });
1484
- const h = { sync: () => { const [x, y] = this.toPx(m.center()), vis = m.attached ? '' : 'none'; for (const n of [hit, ring]) { setA(n, 'cx', r2(x)); setA(n, 'cy', r2(y)); n.style.display = vis; } } };
1485
- h.sync(); this.handles.push(h); return h;
1486
- }
1487
- /** Layout lint: off-canvas objects, overlapping text, text walls. Returns warnings. */
1488
- audit() {
1489
- const out = [], F = this.frame, tol = 0.05, texts = [], describe = (m) => (m instanceof Text ? \`text "\${String(m.p('text')).slice(0, 30)}"\` : m instanceof Token ? \`tex token "\${m.src}"\` : m.kind);
1490
- const walk = (m) => { if (!m.attached) return; if (m.children.length) return m.children.forEach(walk); leaves.push(m); };
1491
- const leaves = []; this.mobs.forEach(walk);
1492
- const boxOf = (m) => { if ((m instanceof Text || m instanceof Token) && m.node && m.node.getBBox && !m.node.closest('[transform]')) { try { const b = m.node.getBBox(); if (b.width > 0) { const [x0, y1] = this.toWorld([b.x, b.y]), [x1, y0] = this.toWorld([b.x + b.width, b.y + b.height]); return { x0, y0, x1, y1 }; } } catch (e) { /* ignore */ } } return m.bbox(); };
1493
- for (const m of leaves) {
1494
- if (m.p('opacity') === 0) continue;
1495
- const b = boxOf(m);
1496
- if (b.x0 < F.left - tol || b.x1 > F.right + tol || b.y0 < F.bottom - tol || b.y1 > F.top + tol) out.push({ type: 'off-canvas', message: \`\${describe(m)} extends outside the frame\` });
1497
- if (m instanceof Text || m instanceof Token) texts.push({ m, b });
1498
- if (m instanceof Text && String(m.p('text')).split(/\\s+/).length > 12) out.push({ type: 'text-wall', message: \`\${describe(m)} has more than 12 words; move prose to the caption\` });
1499
- }
1500
- for (let i = 0; i < texts.length; i++) for (let j = i + 1; j < texts.length; j++) {
1501
- const A = texts[i], B = texts[j]; if (A.m.parent && A.m.parent === B.m.parent && A.m.parent.kind === 'tex') continue;
1502
- const ix = Math.min(A.b.x1, B.b.x1) - Math.max(A.b.x0, B.b.x0), iy = Math.min(A.b.y1, B.b.y1) - Math.max(A.b.y0, B.b.y0);
1503
- const minArea = Math.min((A.b.x1 - A.b.x0) * (A.b.y1 - A.b.y0), (B.b.x1 - B.b.x0) * (B.b.y1 - B.b.y0));
1504
- if (ix > 0 && iy > 0 && ix * iy > 0.2 * minArea) out.push({ type: 'overlap', message: \`\${describe(A.m)} overlaps \${describe(B.m)}\` });
1505
- }
1506
- const words = texts.reduce((a, t) => a + (t.m instanceof Text ? String(t.m.p('text')).split(/\\s+/).filter((w) => /[A-Za-z]{2,}/.test(w)).length : 0), 0);
1507
- if (words > 40) out.push({ type: 'clutter', message: \`\${words} words of on-canvas text (aim for < 40)\` });
1508
- if (leaves.length > 250) out.push({ type: 'clutter', message: \`\${leaves.length} visible primitives\` });
1509
- const cap = this.steps[this.player.index]; if (cap && cap.caption.length > 160) out.push({ type: 'caption', message: \`caption for step \${this.player.index + 1} is \${cap.caption.length} chars (aim for ≤ 160)\` });
1510
- return out;
1511
- }
1512
- }
1513
-
1514
- // ───────────────────────────── Player (one per iframe: DOM, navigation, host bridge) ─────────────────────────────
1515
- const CSS = \`
1516
- :root{--bv-text:\${theme.text};--bv-muted:\${theme.muted};--bv-panel:#1d2129;--bv-line:#3a404c;--bv-rule:#23272f;--bv-accent:\${C.BLUE};--bv-err-bg:#3a1418;--bv-err-fg:#ffb4b4;--bv-err-line:\${C.RED};color-scheme:dark}
1517
- :root[data-bv-theme=light]{--bv-text:\${paint(theme.text)};--bv-muted:\${paint(theme.muted)};--bv-panel:#ffffff;--bv-line:#d6d3cc;--bv-rule:#e7e4de;--bv-accent:\${paint(C.BLUE)};--bv-err-bg:#fdecea;--bv-err-fg:#8a1c12;--bv-err-line:\${paint(C.RED)};color-scheme:light}
1518
- html,body{margin:0;height:100%;background:var(--bv-bg);color:var(--bv-text);font-family:\${theme.uiFont};overflow:hidden}
1519
- .bv-root{display:flex;flex-direction:column;height:100%;position:relative}
1520
- .bv-svg{flex:1 1 auto;min-height:0;width:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none}
1521
- .bv-controls{display:flex;flex-wrap:wrap;gap:6px 22px;justify-content:center;align-items:center;padding:6px 12px 8px}
1522
- .bv-controls:empty{display:none}
1523
- .bv-slider{display:flex;align-items:center;gap:8px;font-size:15px}
1524
- .bv-slider-name{font-family:\${theme.mathFont};font-style:italic;font-size:18px}
1525
- .bv-slider input{width:min(220px,40vw)}
1526
- .bv-slider output{min-width:4.5ch;font-variant-numeric:tabular-nums;color:var(--bv-muted)}
1527
- .bv-btn,.bv-nav button{background:var(--bv-panel);color:var(--bv-text);border:1px solid var(--bv-line);border-radius:6px;padding:5px 12px;font:inherit;font-size:14px;cursor:pointer}
1528
- .bv-btn:hover,.bv-nav button:hover{border-color:var(--bv-accent)}
1529
- .bv-nav{display:flex;gap:8px;align-items:center;padding:6px 12px;border-top:1px solid var(--bv-rule)}
1530
- .bv-nav .bv-cap{flex:1;font-size:15px}
1531
- .bv-handle{fill:transparent;cursor:grab;outline:none}
1532
- .bv-handle.bv-dragging{cursor:grabbing}
1533
- .bv-halo{opacity:.55;transition:opacity .15s}
1534
- .bv-handle:hover+.bv-halo,.bv-handle:focus-visible+.bv-halo{opacity:1}
1535
- .bv-error{position:absolute;left:8px;right:8px;bottom:8px;background:var(--bv-err-bg);color:var(--bv-err-fg);border:1px solid var(--bv-err-line);border-radius:6px;padding:8px 10px;font:13px/1.4 ui-monospace,Consolas,monospace;white-space:pre-wrap}
1536
- text{font-kerning:normal;font-variant-numeric:lining-nums tabular-nums}
1537
- \`;
1538
-
1539
- /**
1540
- * Send a message to the host page (a no-op when the document is opened directly). Every message carries
1541
- * the frame id from \`data-bv-frame\`, so a host with several frames can route messages to the right one.
1542
- */
1543
- const postToHost = (msg) => { if (typeof window !== 'undefined' && window.parent && window.parent !== window) window.parent.postMessage({ ...msg, frame: HOST.frame }, '*'); };
1544
-
1545
- class Player {
1546
- constructor(opts, build) {
1547
- if (typeof build !== 'function') throw new Error('bv.scene(options, build): build(s) function is required');
1548
- this.opts = opts; this.build = build; this.W = opts.width ?? 960; this.H = opts.height ?? 540;
1549
- this.unit = this.H / (opts.frameHeight ?? 8); this.speed = opts.speed ?? 1; this.index = 0; this.run = null; this.chain = Promise.resolve();
1550
- this.captions = []; this.measureCache = new Map(); this.seed = opts.seed ?? 1;
1551
- const mq = typeof matchMedia === 'function' ? matchMedia('(prefers-reduced-motion: reduce)') : null;
1552
- this.reduced = opts.reducedMotion ?? (mq ? mq.matches : false);
1553
- if (mq && mq.addEventListener && opts.reducedMotion == null) mq.addEventListener('change', (e) => { this.reduced = e.matches; });
1554
- this._dom(); this._bridge();
1555
- setTimeout(() => this.goto(opts.start ?? 0), 0);
1556
- }
1557
- _dom() {
1558
- const host = typeof this.opts.el === 'string' ? document.querySelector(this.opts.el) : this.opts.el || document.body;
1559
- if (!document.getElementById('bv-style')) { const st = htmlEl('style'); st.id = 'bv-style'; st.textContent = CSS; document.head.appendChild(st); }
1560
- document.documentElement.style.setProperty('--bv-bg', paint(this.opts.background || theme.bg));
1561
- this.root = htmlEl('div', 'bv-root');
1562
- this.svg = svgEl('svg', { viewBox: \`0 0 \${this.W} \${this.H}\`, class: 'bv-svg', role: 'img', preserveAspectRatio: 'xMidYMin meet', 'aria-label': this.opts.title || 'visual explanation' });
1563
- this.svg.style.background = paint(this.opts.background || theme.bg);
1564
- this.layer = svgEl('g', { class: 'bv-layer' }); this.ui = svgEl('g', { class: 'bv-ui' }); this.measureG = svgEl('g', { visibility: 'hidden', 'aria-hidden': 'true' });
1565
- this.svg.append(this.measureG, this.layer, this.ui);
1566
- this.controls = htmlEl('div', 'bv-controls');
1567
- this.root.append(this.svg, this.controls);
1568
- const standalone = typeof window === 'undefined' || window.parent === window;
1569
- if (this.opts.controls ?? standalone) {
1570
- const nav = htmlEl('div', 'bv-nav'), b = (t, f) => { const x = htmlEl('button', '', t); x.type = 'button'; x.onclick = f; nav.appendChild(x); return x; };
1571
- b('◀ Back', () => this.prev()); b('↻ Replay', () => this.replay());
1572
- this.capEl = htmlEl('div', 'bv-cap'); this.capEl.setAttribute('aria-live', 'polite'); nav.appendChild(this.capEl); this.counterEl = htmlEl('span', '', ''); nav.appendChild(this.counterEl);
1573
- b('Next ▶', () => this.next()); this.root.appendChild(nav);
1574
- }
1575
- host.appendChild(this.root);
1576
- }
1577
- _bridge() {
1578
- if (typeof window === 'undefined') return;
1579
- window.addEventListener('message', (e) => {
1580
- if (window.parent !== window && e.source !== window.parent) return;
1581
- const d = e.data || {};
1582
- if (d.type === 'bv:next') this.next(); else if (d.type === 'bv:prev') this.prev(); else if (d.type === 'bv:replay') this.replay();
1583
- else if (d.type === 'bv:goto') this.goto(d.index | 0);
1584
- else if (d.type === 'bv:config') { if ('reducedMotion' in d) this.reduced = !!d.reducedMotion; if (d.speed) this.speed = +d.speed; }
1585
- else if (d.type === 'bv:audit') this.post({ type: 'bv:audit', index: this.index, warnings: this.run ? this.run.audit() : [] });
1586
- else if (d.type === 'bv:check') this.check();
1587
- });
1588
- window.addEventListener('keydown', (e) => {
1589
- if (e.target && /^(INPUT|BUTTON|TEXTAREA|SELECT)$/.test(e.target.tagName)) return;
1590
- if (e.key === 'ArrowRight' || e.key === 'PageDown' || e.key === ' ') { e.preventDefault(); this.next(); }
1591
- else if (e.key === 'ArrowLeft' || e.key === 'PageUp') { e.preventDefault(); this.prev(); }
1592
- else if (e.key === 'r' || e.key === 'R') this.replay();
1593
- });
1594
- window.addEventListener('error', (e) => this.error(e.error || e.message));
1595
- window.addEventListener('unhandledrejection', (e) => { if (!(e.reason instanceof Cancelled)) this.error(e.reason); });
1596
- }
1597
- post(msg) { if (this.checking && msg.type !== 'bv:report') return; postToHost(msg); }
1598
- state() {
1599
- const cap = this.captions[this.index] ?? '', count = this.captions.length, playing = !!(this.run && this.run.running);
1600
- if (this.capEl) { this.capEl.textContent = cap; this.counterEl.textContent = \`\${this.index + 1} / \${count}\`; }
1601
- this.svg.setAttribute('aria-label', \`\${this.opts.title ? this.opts.title + ': ' : ''}\${cap}\`);
1602
- this.post({ type: 'bv:state', index: this.index, count, caption: cap, playing });
1603
- }
1604
- error(e, step) {
1605
- const msg = (e && (e.stack || e.message)) || String(e); console.error('[bv]', e);
1606
- (this.errors ||= []).push({ message: String((e && e.message) || e), step });
1607
- if (!this.errEl) { this.errEl = htmlEl('div', 'bv-error'); this.root.appendChild(this.errEl); }
1608
- this.errEl.textContent = \`bv error\${step != null ? \` in step \${step}\` : ''}: \${msg.split('\\n').slice(0, 4).join('\\n')}\`;
1609
- this.post({ type: 'bv:error', message: String((e && e.message) || e), stack: e && e.stack, step });
1610
- }
1611
- // measurement
1612
- _measureNode(node) { this.measureG.appendChild(node); let w = 0; try { w = node.getComputedTextLength ? node.getComputedTextLength() : 0; } catch (e) { w = 0; } node.remove(); return w > 0 ? w : 0; }
1613
- measureText(str, size, f = {}) {
1614
- if (!str) return 0;
1615
- const key = [str, size, f.family, f.weight, f.style].join('|'); if (this.measureCache.has(key)) return this.measureCache.get(key);
1616
- const t = svgEl('text', { 'font-size': size, 'font-family': f.family || theme.font, 'font-weight': f.weight || 400, 'font-style': f.style || 'normal' }); t.textContent = str;
1617
- const w = this._measureNode(t); if (w) this.measureCache.set(key, w); return w;
1618
- }
1619
- measureRuns(runs, size) {
1620
- const t = svgEl('text', { 'font-size': size, 'font-family': theme.mathFont }); fillRuns(t, runs, size);
1621
- return this._measureNode(t);
1622
- }
1623
- clientToPx(cx, cy) {
1624
- const ctm = this.svg.getScreenCTM && this.svg.getScreenCTM();
1625
- if (ctm && this.svg.createSVGPoint) { const pt = this.svg.createSVGPoint(); pt.x = cx; pt.y = cy; const q = pt.matrixTransform(ctm.inverse()); return [q.x, q.y]; }
1626
- const r = this.svg.getBoundingClientRect(), k = Math.min(r.width / this.W, r.height / this.H);
1627
- return [(cx - r.left - (r.width - this.W * k) / 2) / k, (cy - r.top) / k];
1628
- }
1629
- // navigation
1630
- async _rebuild() {
1631
- if (this.run) this.run._kill();
1632
- this.layer.textContent = ''; this.ui.textContent = ''; this.controls.textContent = '';
1633
- if (this.errEl) { this.errEl.remove(); this.errEl = null; }
1634
- Math.random = random(this.seed); NEXT_ID = 1;
1635
- const run = new Run(this); this.run = run; CURRENT = run;
1636
- try { await this.build(run); } catch (e) { this.error(e, 'build'); return null; }
1637
- if (!run.steps.length) run.step('');
1638
- const first = !this.captions.length; this.captions = run.steps.map((s) => s.caption);
1639
- if (first) this.post({ type: 'bv:ready', count: this.captions.length, captions: this.captions, title: this.opts.title || '' });
1640
- return run;
1641
- }
1642
- async _runStep(run, i, instant) {
1643
- if (run.dead) return;
1644
- run.instant = instant; run.rushing = false; run.running = true; CURRENT = run;
1645
- try { await run.steps[i].fn(run); } catch (e) { if (!(e instanceof Cancelled)) this.error(e, i); }
1646
- if (run.dead) return;
1647
- run.running = false; run.instant = false; run.rushing = false; run.tick(0);
1648
- if (!instant) {
1649
- this.state();
1650
- if (this.opts.audit !== false) { const w = run.audit(); if (w.length) { for (const x of w) console.warn('[bv audit]', x.message); } this.post({ type: 'bv:audit', index: i, warnings: w }); }
1651
- }
1652
- }
1653
- _enqueue(fn) { this.chain = this.chain.then(fn).catch((e) => this.error(e)); return this.chain; }
1654
- /** Rebuild and play step k (earlier steps are applied instantly). */
1655
- goto(k) {
1656
- return this._enqueue(async () => {
1657
- const run = await this._rebuild(); if (!run) return;
1658
- k = clamp(k | 0, 0, run.steps.length - 1);
1659
- for (let i = 0; i < k; i++) { await this._runStep(run, i, true); if (run.dead) return; }
1660
- this.index = k; run.instant = false; run.tick(0); run.running = true; this.state();
1661
- this.current = this._runStep(run, k, false);
1662
- });
1663
- }
1664
- next() {
1665
- if (this.run && this.run.running) this.run.rush();
1666
- return this._enqueue(async () => {
1667
- const run = this.run; if (!run || run.dead) return;
1668
- if (run.running) { run.rush(); await this.current; }
1669
- if (this.index >= run.steps.length - 1) return;
1670
- this.index++; run.running = true; this.state();
1671
- this.current = this._runStep(run, this.index, false);
1672
- });
1673
- }
1674
- prev() { return this.goto(Math.max(0, this.index - 1)); }
1675
- /**
1676
- * Headless validation for the generate→repair loop: plays every step instantly, collects errors and
1677
- * layout warnings, posts {type:'bv:report', count, captions, steps:[{index, caption, warnings}], errors},
1678
- * then returns to step 0.
1679
- */
1680
- async check() {
1681
- const back = this.index; this.checking = true; this.errors = []; const steps = [];
1682
- try {
1683
- await this.goto(0); await this.current;
1684
- for (let i = 0; i < this.captions.length; i++) {
1685
- if (i > 0) { await this.goto(i); await this.current; }
1686
- steps.push({ index: i, caption: this.captions[i], warnings: this.run && !this.run.dead ? this.run.audit() : [] });
1687
- }
1688
- } finally { this.checking = false; }
1689
- const seen = new Set(), errors = this.errors.filter((e) => { const k = e.step + '|' + e.message; return seen.has(k) ? false : seen.add(k); });
1690
- const report = { type: 'bv:report', count: this.captions.length, captions: this.captions, steps, errors };
1691
- this.post(report); this.goto(Math.min(back, Math.max(0, this.captions.length - 1)));
1692
- return report;
1693
- }
1694
- replay() { return this.goto(this.index); }
1695
- }
1696
-
1697
- /**
1698
- * Create the scene. \`build(s)\` is called on every (re)build; create objects and call \`s.step(...)\` in it.
1699
- * @param {{el?:Element|string,width?:number,height?:number,background?:string,title?:string,controls?:boolean,
1700
- * reducedMotion?:boolean,speed?:number,seed?:number,start?:number,audit?:boolean,frameHeight?:number}} options
1701
- * @param {(s: Run) => void|Promise<void>} build
1702
- */
1703
- export function scene(options = {}, build) { const p = new Player(options, build); bv.player = p; return p; }
1704
-
1705
- const bv = {
1706
- version, C, theme, ease, v, fmt, random, mixColor, UP, DOWN, LEFT, RIGHT, ORIGIN, UL, UR, DL, DR,
1707
- scene, Mob, Group, Anim, Tracker, tracker,
1708
- circle, dot, line, arrow, rect, square, polygon, regular, path, arc, text, tex, number, group, numberLine, axes, plane, array, box, brace, label, always,
1709
- create, write, uncreate, fadeIn, fadeOut, grow, moveTo, shift, animate, tween, transform, transformMatching, crossfade, indicate, circumscribe, pulse, call, custom, lagged, sequence,
1710
- player: null,
1711
- };
1712
- if (typeof globalThis !== 'undefined') globalThis.bv = bv;
1713
-
1714
- // Failures before \`bv.scene(...)\` runs (a syntax error in the scene code, a throw at its top level, or a
1715
- // scene that never calls bv.scene) would otherwise leave the host waiting for \`bv:ready\` until it times
1716
- // out. Report them as \`bv:error\` with step 'load'. Module scripts run before DOMContentLoaded.
1717
- if (typeof window !== 'undefined' && typeof document !== 'undefined') {
1718
- let failedEarly = false;
1719
- window.addEventListener('error', (e) => {
1720
- if (bv.player) return;
1721
- failedEarly = true;
1722
- postToHost({ type: 'bv:error', message: String((e.error && e.error.message) || e.message || 'script error'), step: 'load' });
1723
- });
1724
- const checkStarted = () => { if (!bv.player && !failedEarly) postToHost({ type: 'bv:error', message: 'The scene code never called bv.scene(options, build).', step: 'load' }); };
1725
- if (document.readyState !== 'complete') document.addEventListener('DOMContentLoaded', checkStarted);
1726
- }
1727
- export default bv;
1728
- `,Vae=`default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'`,Hae={Dark:`#0F1115`,Light:`#FAF9F6`},I6=e=>n(e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`),`../../packages/viz/src/document.ts#escapeHtml`),L6=e=>n(e.replace(/<\/script/gi,`<\\/script`).replace(/<!--/g,`<\\!--`),`../../packages/viz/src/document.ts#escapeScript`),Uae=e=>n([`<!doctype html>`,`<html lang="en" data-bv-theme="${e.theme===`Light`?`light`:`dark`}" data-bv-frame="${I6(e.frameId??``)}">`,`<head>`,`<meta charset="utf-8">`,`<meta http-equiv="Content-Security-Policy" content="${Vae}">`,`<meta name="viewport" content="width=device-width,initial-scale=1">`,`<title>${I6(e.title??`Visual explanation`)}</title>`,`<style>html,body{margin:0;background:${Hae[e.theme]}}</style>`,`</head>`,`<body>`,`<script type="module">${L6(Bae)}<\/script>`,`<script type="module">${L6(e.code)}<\/script>`,`</body>`,`</html>`].join(`
1729
- `),`../../packages/viz/src/document.ts#buildSceneDocument`),R6=[{id:`01-counting`,title:`Counting: from marbles to numbers`,code:`// Node: "Counting objects" · Core insight: counting pairs each object with the next number word,
1730
- // and the LAST number you say answers "how many?". The number doesn't depend on what you count.
1731
- // Colour roles: marbles = BLUE, numbers = YELLOW, one-to-one matching = GREEN, other objects = TEAL.
1732
- bv.scene({ title: 'Counting: from marbles to numbers' }, (s) => {
1733
- const { C } = bv;
1734
- const ROLE = { marble: C.BLUE, number: C.YELLOW, match: C.GREEN, other: C.TEAL };
1735
- const N = 7, MAX = 10, ROW_Y = 0.6;
1736
- const rowX = (i) => -5.6 + i * 0.95;
1737
-
1738
- // A messy pile, generated with a seeded RNG so every replay looks identical.
1739
- const rand = s.random(4);
1740
- const pile = [];
1741
- while (pile.length < N) {
1742
- const p = [-1.6 + (rand() - 0.5) * 3.6, 0.4 + (rand() - 0.5) * 2.8];
1743
- if (pile.every((q) => bv.v.dist(p, q) > 0.75)) pile.push(p);
1744
- }
1745
- const marble = (at) => bv.circle({ at, r: 0.3, color: ROLE.marble, fill: C.BLUE_E, width: 3 });
1746
- const marbles = pile.map(marble);
1747
- const numerals = Array.from({ length: MAX }, (_, i) => bv.tex(String(i + 1), { at: [rowX(i), ROW_Y - 0.75], size: 34, color: ROLE.number }));
1748
- const question = bv.tex('?', { at: [3.6, 0.4], size: 96, color: ROLE.number });
1749
-
1750
- s.step('Here is a pile of marbles. How many are there? Make a guess before we count.', async () => {
1751
- await s.play(bv.lagged(marbles.map((m) => bv.grow(m)), { lag: 0.3, duration: 1.6 }));
1752
- await s.play(bv.fadeIn(question, { shift: [0, 0.3] }));
1753
- });
1754
-
1755
- s.step('To count, touch each marble exactly once and say the next number: one, two, three…', async () => {
1756
- await s.play(bv.fadeOut(question), { duration: 0.5 });
1757
- for (let i = 0; i < N; i++) {
1758
- const d = i < 3 ? 0.6 : 0.35; // speed up once the pattern is clear
1759
- await s.play(bv.moveTo(marbles[i], [rowX(i), ROW_Y]), { duration: d });
1760
- await s.play(bv.fadeIn(numerals[i], { shift: [0, 0.25] }), bv.indicate(marbles[i]), { duration: d });
1761
- }
1762
- });
1763
-
1764
- const big = bv.tex('7', { at: [4.9, ROW_Y], size: 120, color: ROLE.number });
1765
- const brace = bv.brace([[rowX(0) - 0.3, ROW_Y - 1.2], [rowX(N - 1) + 0.3, ROW_Y - 1.2]], { label: '7 marbles', color: ROLE.number });
1766
-
1767
- s.step('The last number you say is the answer to "how many?". There are 7 marbles.', async () => {
1768
- await s.play(bv.indicate(numerals[N - 1], { scale: 1.5 }));
1769
- await s.play(bv.transform(numerals[N - 1].copy(), big), { duration: 1.2 });
1770
- await s.play(bv.create(brace));
1771
- });
1772
-
1773
- const squares = Array.from({ length: N }, (_, i) => bv.square({ at: [rowX(i), 2.7], side: 0.55, color: ROLE.other, fill: C.TEAL_E }));
1774
- const links = Array.from({ length: N }, (_, i) => bv.line({ from: [rowX(i), ROW_Y + 0.38], to: [rowX(i), 2.35], color: ROLE.match, width: 2.5, dashed: true }));
1775
-
1776
- s.step('A number does not care what you count: 7 squares match the 7 marbles one-to-one.', async () => {
1777
- await s.play(bv.lagged(squares.map((q) => bv.fadeIn(q, { shift: [0, -0.3] })), { lag: 0.2, duration: 1.4 }));
1778
- await s.play(bv.lagged(links.map((l) => bv.create(l)), { lag: 0.2, duration: 1.4 }));
1779
- await s.play(bv.indicate(big));
1780
- });
1781
-
1782
- s.step('Your turn: drag the slider to change how many marbles there are. Count them, then check the big number.', async () => {
1783
- const n = bv.tracker(N);
1784
- const extra = Array.from({ length: MAX - N }, (_, i) => marble([rowX(N + i), ROW_Y]));
1785
- const all = [...marbles, ...extra];
1786
- await s.play(bv.fadeOut(bv.group(...squares)), bv.fadeOut(bv.group(...links)), bv.fadeOut(brace), bv.fadeOut(big), { duration: 0.6 });
1787
- all.forEach((m, i) => m.set({ opacity: () => (i < Math.round(n.value) ? 1 : 0.12) }));
1788
- numerals.forEach((t, i) => t.set({ opacity: () => (i < Math.round(n.value) ? 1 : 0) }));
1789
- s.add(...extra, ...numerals.slice(N));
1790
- const live = bv.number(() => Math.round(n.value), { decimals: 0, at: [4.9, ROW_Y], size: 120, color: ROLE.number });
1791
- await s.play(bv.fadeIn(live));
1792
- s.slider({ tracker: n, min: 0, max: MAX, step: 1, label: 'marbles', color: ROLE.marble });
1793
- });
1794
- });
1795
- `},{id:`02-addition`,title:`Addition: combining groups, counting on`,code:`// Node: "Addition" · Core insight: a + b means "put a things and b things together and count them all",
1796
- // which on a number line is "start at a, then take b steps to the right".
1797
- // Colour roles: first addend a = BLUE, second addend b = GREEN, sum = YELLOW.
1798
- bv.scene({ title: 'Addition: combining groups, counting on' }, (s) => {
1799
- const { C } = bv;
1800
- const ROLE = { a: C.BLUE, b: C.GREEN, sum: C.YELLOW };
1801
- const marble = (at, role, fill) => bv.circle({ at, r: 0.28, color: role, fill, width: 3 });
1802
- const groupA = [0, 1, 2].map((i) => marble([-5.2 + i * 0.8, 2.3], ROLE.a, C.BLUE_E));
1803
- const groupB = [0, 1].map((i) => marble([0.6 + i * 0.8, 2.3], ROLE.b, C.GREEN_E));
1804
- const braceA = bv.brace(groupA, { label: '3', color: ROLE.a });
1805
- const braceB = bv.brace(groupB, { label: '2', color: ROLE.b });
1806
-
1807
- s.step('Here are 3 blue marbles and 2 green ones. How many altogether? Predict before you press Next.', async () => {
1808
- await s.play(bv.lagged(groupA.map((m) => bv.grow(m)), { lag: 0.3 }));
1809
- await s.play(bv.lagged(groupB.map((m) => bv.grow(m)), { lag: 0.3 }));
1810
- await s.play(bv.create(braceA), bv.create(braceB));
1811
- });
1812
-
1813
- const eq = bv.tex('3 + 2 = 5', { at: [3.8, 2.1], size: 48, colors: { 3: ROLE.a, 2: ROLE.b, 5: ROLE.sum } });
1814
- const all = [...groupA, ...groupB];
1815
- const braceAll = bv.brace([[-5.5, 1.88], [-1.5, 1.88]], { label: '5', color: ROLE.sum });
1816
-
1817
- s.step('Adding means putting the groups together and counting everything: 3 + 2 = 5.', async () => {
1818
- await s.play(bv.fadeOut(braceA), bv.fadeOut(braceB), { duration: 0.5 });
1819
- await s.play(...groupB.map((m, i) => bv.moveTo(m, [-5.2 + (3 + i) * 0.8, 2.3])), { duration: 1.2 });
1820
- await s.play(bv.lagged(all.map((m) => bv.indicate(m, { scale: 1.3 })), { lag: 0.3, duration: 1.6 }));
1821
- await s.play(bv.create(braceAll));
1822
- await s.play(bv.write(eq));
1823
- });
1824
-
1825
- const nl = bv.numberLine({ range: [0, 9, 1], length: 12, at: [0, -1.4], labelSize: 24 });
1826
- const above = (x) => bv.v.add(nl.n2p(x), [0, 0.12]);
1827
- const jumpA = bv.arrow({ from: above(0), to: above(3), bend: 0.32, color: ROLE.a, width: 4 });
1828
- const hops = [3, 4].map((x) => bv.arrow({ from: above(x), to: above(x + 1), bend: 0.45, color: ROLE.b, width: 4, tip: 0.2 }));
1829
- const labA = bv.label(jumpA, '3', { side: 'up', color: ROLE.a, size: 30 });
1830
- const hopLabels = hops.map((h) => bv.label(h, '+1', { side: 'up', color: ROLE.b, size: 24 }));
1831
- const landing = bv.dot({ at: nl.n2p(5), color: ROLE.sum, r: 0.12 });
1832
-
1833
- s.step('On a number line, 3 + 2 means: start at 3, then take 2 steps to the right.', async () => {
1834
- await s.play(bv.create(nl));
1835
- await s.play(bv.create(jumpA), bv.fadeIn(labA), { duration: 1.2 });
1836
- for (let i = 0; i < 2; i++) await s.play(bv.create(hops[i]), bv.fadeIn(hopLabels[i]), { duration: 0.7 });
1837
- await s.play(bv.grow(landing), bv.indicate(nl.numbers.item(5), { color: ROLE.sum, scale: 1.6 }));
1838
- await s.play(bv.indicate(eq.part('5')));
1839
- });
1840
-
1841
- const below = (x) => bv.v.add(nl.n2p(x), [0, -0.62]);
1842
- const jumpB = bv.arrow({ from: below(0), to: below(2), bend: -0.3, color: ROLE.b, width: 4 });
1843
- const jumpA2 = bv.arrow({ from: below(2), to: below(5), bend: -0.3, color: ROLE.a, width: 4 });
1844
- const eq2 = bv.tex('2 + 3 = 5', { at: [3.8, 2.1], size: 48, colors: { 3: ROLE.a, 2: ROLE.b, 5: ROLE.sum } });
1845
-
1846
- s.step('Order does not matter: 2 + 3 lands on exactly the same spot.', async () => {
1847
- await s.play(bv.transform(eq, eq2), { duration: 1.2 });
1848
- await s.play(bv.create(jumpB));
1849
- await s.play(bv.create(jumpA2));
1850
- await s.play(bv.pulse(landing), bv.indicate(eq2.part('5')));
1851
- });
1852
-
1853
- s.step('Your turn: set a and b with the sliders. Start at a, take b steps. Where do you land?', async () => {
1854
- const a = bv.tracker(3), b = bv.tracker(2);
1855
- const A = () => Math.round(a.value), B = () => Math.round(b.value);
1856
- await s.play(...[jumpA, labA, ...hops, ...hopLabels, jumpB, jumpA2, landing, eq2, braceAll].map((m) => bv.fadeOut(m)), { duration: 0.6 });
1857
- // Top row: a blue marbles followed by b green ones (marble slots 0..7)
1858
- const slots = Array.from({ length: 8 }, (_, i) => marble([-5.2 + i * 0.8, 2.3], C.GREY_D, C.GREY_E));
1859
- slots.forEach((m, i) => m.set({
1860
- color: () => (i < A() ? ROLE.a : i < A() + B() ? ROLE.b : C.GREY_D),
1861
- fill: () => (i < A() ? C.BLUE_E : i < A() + B() ? C.GREEN_E : C.GREY_E),
1862
- opacity: () => (i < A() + B() ? 1 : 0.25),
1863
- }));
1864
- s.remove(...all);
1865
- s.add(...slots);
1866
- const arcA = bv.arrow({ from: () => above(0), to: () => above(A()), bend: 0.32, color: ROLE.a, width: 4, opacity: () => (A() > 0 ? 1 : 0) });
1867
- const liveHops = [0, 1, 2, 3].map((k) => bv.arrow({ from: () => above(A() + k), to: () => above(A() + k + 1), bend: 0.45, color: ROLE.b, width: 4, tip: 0.2, opacity: () => (k < B() ? 1 : 0) }));
1868
- const spot = bv.dot({ at: () => nl.n2p(A() + B()), color: ROLE.sum, r: 0.12 });
1869
- const parts = [
1870
- bv.number(A, { decimals: 0, at: [2.7, 2.1], size: 48, color: ROLE.a }), bv.text('+', { at: [3.25, 2.1], size: 44 }),
1871
- bv.number(B, { decimals: 0, at: [3.8, 2.1], size: 48, color: ROLE.b }), bv.text('=', { at: [4.35, 2.1], size: 44 }),
1872
- bv.number(() => A() + B(), { decimals: 0, at: [4.9, 2.1], size: 48, color: ROLE.sum }),
1873
- ];
1874
- await s.play(bv.create(arcA), ...liveHops.map((h) => bv.create(h)), bv.grow(spot), ...parts.map((p) => bv.fadeIn(p)));
1875
- s.slider({ tracker: a, min: 0, max: 5, step: 1, label: 'a', color: ROLE.a });
1876
- s.slider({ tracker: b, min: 0, max: 3, step: 1, label: 'b', color: ROLE.b });
1877
- });
1878
- });
1879
- `},{id:`03-derivative`,title:`The derivative: from secant line to tangent line`,code:`// Node: "The derivative" · Core insight: the slope at a point is what the slope of a secant line
1880
- // (rise over run between two nearby points) settles on as the run h shrinks to 0.
1881
- // Colour roles: curve = BLUE, secant/tangent line = YELLOW, run h = PURPLE_A, rise Δf = GREEN.
1882
- bv.scene({ title: 'The derivative: from secant line to tangent line' }, (s) => {
1883
- const { C, v } = bv;
1884
- const ROLE = { curve: C.BLUE, line: C.YELLOW, run: C.PURPLE_A, rise: C.GREEN, point: C.WHITE };
1885
- const f = (x) => 0.1 * x ** 3 - 0.75 * x ** 2 + 1.5 * x + 1.2;
1886
- const df = (x) => 0.3 * x ** 2 - 1.5 * x + 1.5; // exact derivative, shown at the end
1887
-
1888
- const ax = bv.axes({ x: [0, 7, 1], y: [0, 5, 1], width: 8.4, height: 5.6, at: [-2.5, -0.7], xLabel: 'x', yLabel: 'y' });
1889
- const graph = ax.plot(f, { color: ROLE.curve, width: 4 });
1890
- const x0 = bv.tracker(4.2), h = bv.tracker(1.6);
1891
- const X = () => x0.value, H = () => h.value;
1892
- const slope = () => (f(X() + H()) - f(X())) / H();
1893
-
1894
- const P = ax.point(X, () => f(X()), { color: ROLE.point, r: 0.1 });
1895
- const Q = ax.point(() => X() + H(), () => f(X() + H()), { color: ROLE.line, r: 0.1 });
1896
- const labP = bv.label(P, 'P', { side: 'ul', size: 30 });
1897
- const labQ = bv.label(Q, 'Q', { side: 'ur', size: 30, color: ROLE.line });
1898
-
1899
- // Secant through P and Q, drawn as a fixed-length segment centred near P (stays on screen).
1900
- const dir = () => v.norm(v.sub(ax.c2p(X() + H(), f(X() + H())), ax.c2p(X(), f(X()))));
1901
- const secant = bv.line({ from: () => v.sub(P.center(), v.mul(dir(), 2.0)), to: () => v.add(P.center(), v.mul(dir(), 3.2)), color: ROLE.line, width: 3 });
1902
- const corner = () => ax.c2p(X() + H(), f(X()));
1903
- const run = bv.line({ from: () => P.center(), to: corner, color: ROLE.run, width: 4 });
1904
- const rise = bv.line({ from: corner, to: () => Q.center(), color: ROLE.rise, width: 4 });
1905
- const labH = bv.label(run, 'h', { side: 'down', color: ROLE.run, size: 30 });
1906
- const labDf = bv.label(rise, 'Δf', { side: 'right', color: ROLE.rise, size: 30 });
1907
-
1908
- s.step('How steep is this curve at the point P? Slope is rise over run, but a single point has no run.', async () => {
1909
- await s.play(bv.create(ax));
1910
- await s.play(bv.create(graph), { duration: 1.5 });
1911
- await s.play(bv.grow(P), bv.fadeIn(labP));
1912
- });
1913
-
1914
- s.step('Pick a second point Q, a distance h to the right. The line through P and Q is called a secant line.', async () => {
1915
- await s.play(bv.grow(Q), bv.fadeIn(labQ));
1916
- await s.play(bv.create(run), bv.fadeIn(labH));
1917
- await s.play(bv.create(rise), bv.fadeIn(labDf));
1918
- await s.play(bv.create(secant));
1919
- });
1920
-
1921
- const formula = bv.tex('slope = \\\\frac{Δf}{h}', { at: [4.75, 2.2], size: 34, colors: { slope: ROLE.line } });
1922
- const readout = bv.number(slope, { prefix: 'slope ≈ ', decimals: 3, at: [4.75, 0.9], size: 30, color: ROLE.line });
1923
-
1924
- s.step('A secant line has an easy slope: rise over run, Δf divided by h.', async () => {
1925
- await s.play(bv.write(formula));
1926
- await s.play(bv.fadeIn(readout, { shift: [0, 0.2] }));
1927
- await s.play(bv.indicate(rise), bv.indicate(labDf));
1928
- await s.play(bv.indicate(run), bv.indicate(labH));
1929
- });
1930
-
1931
- s.step('Pause and predict: if Q slides toward P (h shrinks), what happens to the secant line and its slope?', async () => {
1932
- await s.play(bv.pulse(Q), bv.indicate(labH, { scale: 1.4 }));
1933
- await s.play(h.to(1.1), { duration: 1.2 });
1934
- });
1935
-
1936
- const deriv = bv.tex("f'(x) = \\\\lim_{h \\\\to 0} \\\\frac{f(x+h) - f(x)}{h}", { at: [4.75, -0.6], size: 28 });
1937
- const exact = bv.text(\`tangent slope f′(4.2) = \${bv.fmt(df(4.2), 3)}\`, { at: [4.75, -2.0], size: 22, color: C.GREY_B });
1938
-
1939
- s.step('As h → 0, the secant line settles onto the tangent line. That limiting slope is the derivative.', async () => {
1940
- await s.play(bv.fadeOut(labH), bv.fadeOut(labDf), bv.fadeOut(labQ), { duration: 0.5 });
1941
- await s.play(h.to(0.001), { duration: 3.5 });
1942
- await s.play(bv.indicate(secant, { scale: 1 }), bv.indicate(readout));
1943
- await s.play(bv.write(deriv), { duration: 1.5 });
1944
- await s.play(bv.fadeIn(exact));
1945
- });
1946
-
1947
- s.step('Explore: drag P along the curve and change h with the slider. Where is the slope zero?', async () => {
1948
- await s.play(h.to(0.8), bv.fadeOut(exact), { duration: 1 });
1949
- await s.play(bv.fadeIn(labH), bv.fadeIn(labDf), bv.fadeIn(labQ));
1950
- // Labels would pile up on top of P when h is tiny, so fade them out as h → 0.
1951
- for (const l of [labH, labDf, labQ]) l.set({ opacity: () => Math.min(1, Math.max(0, (H() - 0.15) / 0.3)) });
1952
- s.slider({ tracker: h, min: 0.01, max: 1.5, step: 0.01, label: 'h', color: ROLE.run });
1953
- s.draggable(P, { axes: ax, x: x0, xRange: [0.3, 4.6], label: 'point P on the curve' });
1954
- });
1955
- });
1956
- `},{id:`04-binary-search`,title:`Binary search: halving the haystack`,code:`// Node: "Binary search" · Core insight: in a SORTED list, one comparison with the middle element
1957
- // rules out half of what's left, so n items need only about log₂(n) looks.
1958
- // Colour roles: target = YELLOW, element being checked = BLUE, ruled out = GREY, found = GREEN.
1959
- bv.scene({ title: 'Binary search: halving the haystack' }, (s) => {
1960
- const { C } = bv;
1961
- const ROLE = { target: C.YELLOW, probe: C.BLUE, gone: C.GREY_D, found: C.GREEN, live: C.TEAL };
1962
- const values = [3, 7, 11, 14, 18, 22, 25, 29, 33, 37, 41, 46, 50, 54, 59];
1963
- const arr = bv.array(values, { at: [0, 0], cell: 0.85, color: ROLE.live });
1964
- const goal = bv.box('target = 41', { at: [0, 2.7], color: ROLE.target, size: 28 });
1965
-
1966
- // The "mid" pointer: an arrow with a label, moved as one group.
1967
- const pointer = bv.group(
1968
- bv.arrow({ from: [0, 1.45], to: [0, 0.55], color: ROLE.probe, width: 4, tip: 0.2 }),
1969
- bv.text('mid', { at: [0, 1.7], size: 22, color: ROLE.probe }),
1970
- );
1971
- const pointAt = (i) => bv.moveTo(pointer, [arr.pos(i)[0], pointer.center()[1]], { duration: 0.8 });
1972
- const discard = (from, to) => {
1973
- const anims = [];
1974
- for (let i = from; i <= to; i++) anims.push(bv.animate(arr.cell(i), { color: ROLE.gone, opacity: 0.35 }), bv.animate(arr.value(i), { opacity: 0.3 }));
1975
- return anims;
1976
- };
1977
- const compare = (src) => bv.tex(src, { at: [0, -1.5], size: 40, colors: { 41: ROLE.target } });
1978
-
1979
- s.step('A sorted list of 15 numbers. Is 41 in it? Checking one by one could take up to 15 looks.', async () => {
1980
- await s.play(bv.create(arr), { duration: 2 });
1981
- await s.play(bv.fadeIn(goal, { shift: [0, -0.3] }));
1982
- });
1983
-
1984
- let cmp = compare('29 < 41');
1985
- s.step('Look in the middle first: 29. Since 29 < 41 and the list is sorted, 41 cannot be on the left. Rule out that half.', async () => {
1986
- s.add(pointer.moveTo([arr.pos(7)[0], 1.0]));
1987
- await s.play(bv.fadeIn(pointer, { shift: [0, -0.3] }));
1988
- await s.play(bv.indicate(arr.value(7), { color: ROLE.probe, scale: 1.5 }));
1989
- await s.play(bv.write(cmp));
1990
- await s.play(...discard(0, 7), { duration: 1.2 });
1991
- });
1992
-
1993
- s.step('Pause and ponder: which cell should we check next? The middle of what is left: 46 > 41, so rule out the right part.', async () => {
1994
- await s.play(pointAt(11));
1995
- await s.play(bv.indicate(arr.value(11), { color: ROLE.probe, scale: 1.5 }));
1996
- const next = compare('46 > 41');
1997
- await s.play(bv.transform(cmp, next)); cmp = next;
1998
- await s.play(...discard(11, 14), { duration: 1.2 });
1999
- });
2000
-
2001
- s.step('Middle of the three that remain: 37 < 41. Rule out 37 and everything left of it.', async () => {
2002
- await s.play(pointAt(9));
2003
- const next = compare('37 < 41');
2004
- await s.play(bv.transform(cmp, next)); cmp = next;
2005
- await s.play(...discard(8, 9), { duration: 1 });
2006
- });
2007
-
2008
- s.step('One cell left, and it holds 41. Found in 4 looks instead of 11.', async () => {
2009
- await s.play(pointAt(10));
2010
- const next = compare('41 = 41');
2011
- await s.play(bv.transform(cmp, next)); cmp = next;
2012
- await s.play(bv.animate(arr.cell(10), { color: ROLE.found, fill: C.GREEN_E }), bv.circumscribe(arr.cell(10), { color: ROLE.found }));
2013
- });
2014
-
2015
- s.step('Each look halves what is left: 15 → 7 → 3 → 1. Try other targets: how many looks does each one take?', async () => {
2016
- const T = bv.tracker(41);
2017
- const search = (t) => { let lo = 0, hi = values.length - 1; const probes = []; while (lo <= hi) { const mid = (lo + hi) >> 1; probes.push(mid); if (values[mid] === t) return { probes, found: mid }; if (values[mid] < t) lo = mid + 1; else hi = mid - 1; } return { probes, found: -1 }; };
2018
- const res = () => search(Math.round(T.value));
2019
- await s.play(bv.fadeOut(pointer), bv.fadeOut(cmp), bv.fadeOut(goal), { duration: 0.5 });
2020
- values.forEach((_, i) => {
2021
- arr.cell(i).set({
2022
- color: () => (res().found === i ? ROLE.found : res().probes.includes(i) ? ROLE.probe : C.GREY_C),
2023
- fill: () => (res().found === i ? C.GREEN_E : bv.theme.bg), opacity: 1,
2024
- });
2025
- arr.value(i).set({ opacity: () => (res().probes.includes(i) ? 1 : 0.45) });
2026
- });
2027
- const order = values.map((_, i) => bv.text(() => { const k = res().probes.indexOf(i); return k >= 0 ? String(k + 1) : ''; }, { at: [arr.pos(i)[0], 0.75], size: 20, color: ROLE.probe }));
2028
- const halving = bv.tex('15 → 7 → 3 → 1', { at: [0, -1.5], size: 36, color: C.GREY_A });
2029
- const liveGoal = bv.text(() => \`target = \${Math.round(T.value)}\`, { at: [0, 2.7], size: 28, color: ROLE.target });
2030
- const verdict = bv.text(() => { const r = res(); return r.found >= 0 ? \`found in \${r.probes.length} looks\` : \`not in the list (\${r.probes.length} looks)\`; }, { at: [0, 1.9], size: 24, color: C.GREY_A });
2031
- s.add(...order);
2032
- await s.play(bv.write(halving), bv.fadeIn(liveGoal), bv.fadeIn(verdict));
2033
- s.slider({ tracker: T, min: 0, max: 62, step: 1, label: 'target', color: ROLE.target });
2034
- });
2035
- });
2036
- `}],z6=A,B6=jS(KS([j,A])),V6=M({type:A,message:A}),Wae=SS(KS([M({type:PS(`bv:ready`),frame:z6,count:j,captions:N(A),title:A}),M({type:PS(`bv:state`),frame:z6,index:j,count:j,caption:A,playing:RS}),M({type:PS(`bv:audit`),frame:z6,index:j,warnings:N(V6)}),M({type:PS(`bv:error`),frame:z6,message:A,step:B6}),M({type:PS(`bv:report`),frame:z6,count:j,captions:N(A),steps:N(M({index:j,caption:A,warnings:N(V6)})),errors:N(M({message:A,step:B6}))})])),H6=qS([`Dark`,`Light`]),Gae=M({goalId:A,visualId:A}),U6=rO({Loading:{},Generating:{attempt:j,pollCount:j},Ready:{code:A,captions:N(A),altText:A},Unavailable:{reason:A,isRetryable:RS}}),Kae=M({index:j,count:j,caption:A,isPlaying:RS}),W6=M({frameId:A,maybeSource:CC(Gae),status:U6,maybeTheme:CC(H6),step:Kae,hasReachedEnd:RS}),G6=rO({Next:{},Back:{},Replay:{},Goto:{index:j}}),K6=nO({SucceededFetchVisual:{state:$G},FailedFetchVisual:{error:A},ClickedRetry:{},ReceivedFrameReady:{count:j},ReceivedFrameState:{index:j,count:j,caption:A,isPlaying:RS},ReceivedFrameError:{message:A},UpdatedTheme:{theme:H6},ClickedNext:{},ClickedBack:{},ClickedReplay:{},ClickedStep:{index:j},CompletedSendToFrame:{}}),q6=nO({ReachedLastStep:{},BecameUnavailable:{reason:A}}),qae=3e3,J6=F(`FetchVisual`,{args:{goalId:A,visualId:A,delayMillis:j},messages:[K6.SucceededFetchVisual,K6.FailedFetchVisual],execute:({goalId:e,visualId:t,delayMillis:r})=>n(O(function*(){yield*Qp(so(r));let i=yield*(yield*yK).visuals.get({params:{goalId:rW.make(e),visualId:t}});return n(K6.SucceededFetchVisual({state:i}),`src/component/vizFrame.ts#anonymous`)}).pipe(Wp(e=>n(E(K6.FailedFetchVisual({error:xK(e)})),`src/component/vizFrame.ts#anonymous~2`))),`src/component/vizFrame.ts#execute`)}),Jae=e=>n(G6.match(e,{Next:()=>n({type:`bv:next`},`src/component/vizFrame.ts#Next`),Back:()=>n({type:`bv:prev`},`src/component/vizFrame.ts#Back`),Replay:()=>n({type:`bv:replay`},`src/component/vizFrame.ts#Replay`),Goto:({index:e})=>n({type:`bv:goto`,index:e},`src/component/vizFrame.ts#Goto`)}),`src/component/vizFrame.ts#toHostRequest`),Yae=F(`SendToFrame`,{args:{frameId:A,request:G6},messages:[K6.CompletedSendToFrame],execute:({frameId:e,request:t})=>n(D(()=>{let n=globalThis.document.getElementById(e);n instanceof HTMLIFrameElement&&n.contentWindow?.postMessage(Jae(t),`*`)}).pipe(Hp(K6.CompletedSendToFrame())),`src/component/vizFrame.ts#execute~2`)}),Y6=e=>n(`viz-${e.replace(/[^A-Za-z0-9_-]/g,``)}`,`src/component/vizFrame.ts#frameIdFor`),X6={index:0,count:0,caption:``,isPlaying:!1},Z6=e=>n({model:{frameId:Y6(e.visualId),maybeSource:S(e),status:U6.Loading(),maybeTheme:x(),step:X6,hasReachedEnd:!1},commands:[J6({...e,delayMillis:0})]},`src/component/vizFrame.ts#init`),Xae=e=>n({frameId:Y6(e.key),maybeSource:x(),status:U6.Ready({code:e.code,captions:[],altText:e.title}),maybeTheme:x(),step:X6,hasReachedEnd:!1},`src/component/vizFrame.ts#initWithScene`),Q6=(e,t,r)=>n({model:I(e,{status:()=>n(U6.Unavailable({reason:t,isRetryable:r}),`src/component/vizFrame.ts#status`)}),outMessage:q6.BecameUnavailable({reason:t})},`src/component/vizFrame.ts#becomeUnavailable`),$6=(e,t)=>n(e.status._tag===`Ready`?{model:e,commands:[Yae({frameId:e.frameId,request:t})]}:{model:e},`src/component/vizFrame.ts#sendToFrame`),Zae=e=>n(U6.matchOrElse(e,{Generating:({pollCount:e})=>n(e+1,`src/component/vizFrame.ts#Generating`)},()=>n(0,`src/component/vizFrame.ts#anonymous~4`)),`src/component/vizFrame.ts#pollCountOf`),Qae=(e,t)=>{let r=Zae(e.status);return n(r>200?Q6(e,`Drawing this visual is taking too long.`,!0):{model:I(e,{status:()=>n(U6.Generating({attempt:t,pollCount:r}),`src/component/vizFrame.ts#status~2`)}),commands:T(Er(e.maybeSource),e=>n(J6({...e,delayMillis:qae}),`src/component/vizFrame.ts#anonymous~5`))},`src/component/vizFrame.ts#keepPolling`)},$ae=(e,t)=>n(_D(t,{Generating:({attempt:t})=>n(Qae(e,t),`src/component/vizFrame.ts#Generating~2`),Ready:({code:t,captions:r,altText:i})=>n({model:I(e,{status:()=>n(U6.Ready({code:t,captions:r,altText:i}),`src/component/vizFrame.ts#status~3`),step:()=>n({...X6,count:r.length,caption:r[0]??``},`src/component/vizFrame.ts#step`)})},`src/component/vizFrame.ts#Ready`),Failed:({note:t})=>n(Q6(e,t,!1),`src/component/vizFrame.ts#Failed`),Skipped:({note:t})=>n(Q6(e,t,!1),`src/component/vizFrame.ts#Skipped`)}),`src/component/vizFrame.ts#receiveVisual`),e8=(e,t)=>n(K6.match(t,{SucceededFetchVisual:({state:t})=>n($ae(e,t),`src/component/vizFrame.ts#SucceededFetchVisual`),FailedFetchVisual:({error:t})=>n(Q6(e,t,!0),`src/component/vizFrame.ts#FailedFetchVisual`),ClickedRetry:()=>n(w(e.maybeSource,{onNone:()=>n({model:e},`src/component/vizFrame.ts#onNone`),onSome:t=>n({model:I(e,{status:()=>n(U6.Loading(),`src/component/vizFrame.ts#status~4`)}),commands:[J6({...t,delayMillis:0})]},`src/component/vizFrame.ts#onSome`)}),`src/component/vizFrame.ts#ClickedRetry`),ReceivedFrameReady:({count:t})=>{let r=I(e,{step:e=>n(I(e,{count:()=>n(t,`src/component/vizFrame.ts#count`)}),`src/component/vizFrame.ts#step~2`)});return n(e.step.index>0&&e.step.index<t?$6(r,G6.Goto({index:e.step.index})):{model:r},`src/component/vizFrame.ts#ReceivedFrameReady`)},ReceivedFrameState:({index:t,count:r,caption:i,isPlaying:a})=>{let o=t===r-1&&!a,s=I(e,{step:()=>n({index:t,count:r,caption:i,isPlaying:a},`src/component/vizFrame.ts#step~3`),hasReachedEnd:e=>n(e||o,`src/component/vizFrame.ts#hasReachedEnd`)});return n(o&&!e.hasReachedEnd?{model:s,outMessage:q6.ReachedLastStep()}:{model:s},`src/component/vizFrame.ts#ReceivedFrameState`)},ReceivedFrameError:({message:t})=>n(Q6(e,`The visual stopped with an error: ${t}`,!1),`src/component/vizFrame.ts#ReceivedFrameError`),UpdatedTheme:({theme:t})=>n(Ar(e.maybeTheme,t)?{model:e}:{model:I(e,{maybeTheme:()=>n(S(t),`src/component/vizFrame.ts#maybeTheme`)})},`src/component/vizFrame.ts#UpdatedTheme`),ClickedNext:()=>n($6(e,G6.Next()),`src/component/vizFrame.ts#ClickedNext`),ClickedBack:()=>n($6(e,G6.Back()),`src/component/vizFrame.ts#ClickedBack`),ClickedReplay:()=>n($6(e,G6.Replay()),`src/component/vizFrame.ts#ClickedReplay`),ClickedStep:({index:t})=>n($6(e,G6.Goto({index:t})),`src/component/vizFrame.ts#ClickedStep`),CompletedSendToFrame:()=>n({model:e},`src/component/vizFrame.ts#CompletedSendToFrame`)}),`src/component/vizFrame.ts#update`),eoe=e=>n(gD(e).pipe(xD(`type`)({"bv:ready":({count:e})=>n(S(K6.ReceivedFrameReady({count:e})),`src/component/vizFrame.ts#bv:ready`),"bv:state":({index:e,count:t,caption:r,playing:i})=>n(S(K6.ReceivedFrameState({index:e,count:t,caption:r,isPlaying:i})),`src/component/vizFrame.ts#bv:state`),"bv:error":({message:e})=>n(S(K6.ReceivedFrameError({message:e})),`src/component/vizFrame.ts#bv:error`)}),wD(()=>n(x(),`src/component/vizFrame.ts#anonymous~6`))),`src/component/vizFrame.ts#toMessage`),toe=(e,t)=>{let r=globalThis.document.getElementById(e);return n(r instanceof HTMLIFrameElement&&t.source===r.contentWindow,`src/component/vizFrame.ts#isFromFrame`)},noe=e=>n(vE(t=>n(dm(D(()=>{let r=r=>n(m(kr(r,()=>n(toe(e,r),`src/component/vizFrame.ts#anonymous~9`)),Cr(e=>n(Wae(e.data),`src/component/vizFrame.ts#anonymous~10`)),Dr(t=>n(t.frame===e,`src/component/vizFrame.ts#anonymous~11`)),Cr(eoe),w({onNone:()=>n(void 0,`src/component/vizFrame.ts#onNone~2`),onSome:e=>n(Bw(t,e),`src/component/vizFrame.ts#onSome~2`)})),`src/component/vizFrame.ts#listener`);return globalThis.addEventListener(`message`,r),n(r,`src/component/vizFrame.ts#anonymous~8`)}),e=>n(D(()=>n(globalThis.removeEventListener(`message`,e),`src/component/vizFrame.ts#anonymous~13`)),`src/component/vizFrame.ts#anonymous~12`)).pipe(k(()=>n(Op,`src/component/vizFrame.ts#anonymous~14`))),`src/component/vizFrame.ts#anonymous~7`)),`src/component/vizFrame.ts#frameMessages`),roe=()=>n(globalThis.document.documentElement.classList.contains(`dark`)?`Dark`:`Light`,`src/component/vizFrame.ts#currentTheme`),ioe=vE(e=>n(dm(D(()=>{let t=()=>n(Bw(e,K6.UpdatedTheme({theme:roe()})),`src/component/vizFrame.ts#emit`),r=new MutationObserver(t);return r.observe(globalThis.document.documentElement,{attributes:!0,attributeFilter:[`class`]}),t(),n(r,`src/component/vizFrame.ts#anonymous~16`)}),e=>n(D(()=>n(e.disconnect(),`src/component/vizFrame.ts#anonymous~18`)),`src/component/vizFrame.ts#anonymous~17`)).pipe(k(()=>n(Op,`src/component/vizFrame.ts#anonymous~19`))),`src/component/vizFrame.ts#anonymous~15`)),t8=rR()(e=>n({frameEvents:e({maybeFrameId:CC(A)},{modelToDependencies:e=>n({maybeFrameId:kr(e.frameId,()=>n(e.status._tag===`Ready`,`src/component/vizFrame.ts#anonymous~21`))},`src/component/vizFrame.ts#modelToDependencies`),dependenciesToStream:({maybeFrameId:e})=>n(w(e,{onNone:()=>n(yE,`src/component/vizFrame.ts#onNone~3`),onSome:noe}),`src/component/vizFrame.ts#dependenciesToStream`)}),theme:e({frameId:A},{modelToDependencies:e=>n({frameId:e.frameId},`src/component/vizFrame.ts#modelToDependencies~2`),dependenciesToStream:()=>n(ioe,`src/component/vizFrame.ts#dependenciesToStream~2`)})},`src/component/vizFrame.ts#anonymous~20`)),n8=`relative aspect-[16/10] w-full overflow-hidden bg-[#FAF9F6] dark:bg-[#0F1115]`,r8=(e,t)=>n(t.div([t.Class(CK(n8,`flex flex-col items-center justify-center gap-3 px-6 text-center text-sm text-muted-foreground`))],e),`src/component/vizFrame.ts#centeredView`),i8=(e,t,r)=>n(r8([L(`refresh`,`spinner size-5 text-primary`,r),r.p([r.Class(`font-medium text-foreground`)],[e]),r.p([r.Class(`max-w-sm`)],[t])],r),`src/component/vizFrame.ts#waitingView`),aoe=(e,t,r,i)=>n(r8([L(`circleDashed`,`size-5`,i),i.p([i.Class(`font-medium text-foreground`)],[`Visual unavailable`]),i.p([i.Class(`max-w-md`)],[r.showDetails?e:`We couldn’t draw a picture we trust for this idea. The text has everything you need.`]),t?i.button([i.Type(`button`),i.OnClick(K6.ClickedRetry()),i.Class(R(`Outline`,`Small`))],[L(`refresh`,``,i),`Try again`]):i.empty],i),`src/component/vizFrame.ts#unavailableView`),ooe=(e,t,r,i)=>n(w(e.maybeTheme,{onNone:()=>n(i.div([i.Class(n8)],[]),`src/component/vizFrame.ts#onNone~4`),onSome:a=>n(i.div([i.Class(n8)],[i.iframe([i.Id(e.frameId),i.Sandbox(`allow-scripts`),i.Title(r.length>0?r:`Visual explanation`),i.Srcdoc(Uae({code:t,theme:a,frameId:e.frameId})),i.Class(`absolute inset-0 block size-full border-0`)])]),`src/component/vizFrame.ts#onSome~3`)}),`src/component/vizFrame.ts#sceneView`),soe=(e,t)=>n(t.div([t.Class(`flex gap-1.5 px-4 pt-3`),t.AriaHidden(!0)],Ri(e.step.count,r=>n(t.keyed(`button`)(`${r}`,[t.Type(`button`),t.Tabindex(-1),t.OnClick(K6.ClickedStep({index:r})),t.Class(CK(`h-1 flex-1 rounded-full transition-colors`,{"bg-primary":r===e.step.index,"bg-primary/35":r<e.step.index,"bg-border hover:bg-primary/20":r>e.step.index}))],[]),`src/component/vizFrame.ts#anonymous~22`))),`src/component/vizFrame.ts#progressView`),coe=(e,t)=>{let r=e.step.count>0,i=e.step.index>=e.step.count-1;return n(t.div([t.Class(`flex flex-col`)],[soe(e,t),t.div([t.Class(`flex items-center gap-2 px-3 pt-2 pb-3`)],[t.button([t.Type(`button`),t.AriaLabel(`Previous step`),t.Disabled(!r||e.step.index===0),t.OnClick(K6.ClickedBack()),t.Class(R(`Ghost`,`Icon`))],[L(`arrowLeft`,``,t)]),t.button([t.Type(`button`),t.AriaLabel(`Replay this step`),t.Disabled(!r),t.OnClick(K6.ClickedReplay()),t.Class(R(`Ghost`,`Icon`))],[L(`refresh`,``,t)]),t.p([t.AriaLive(`polite`),t.Class(`min-h-10 flex-1 text-sm leading-snug sm:text-[0.95rem]`)],[e.step.caption]),t.span([t.Class(`text-xs text-muted-foreground tabular-nums`)],[r?`${e.step.index+1} / ${e.step.count}`:``]),t.button([t.Type(`button`),t.Disabled(!r||i&&!e.step.isPlaying),t.OnClick(K6.ClickedNext()),t.Class(R(`Primary`,`Medium`))],[`Next`,L(`arrowRight`,``,t)])])]),`src/component/vizFrame.ts#controlsView`)},a8=e=>n(hM((t,r)=>n(r.figure([r.Class(_q(`overflow-hidden`))],[U6.match(t.status,{Loading:()=>n(i8(`Loading the visual…`,``,r),`src/component/vizFrame.ts#Loading`),Generating:({attempt:e})=>n(i8(`Drawing a picture for this idea…`,e>1?`Fixing what the first check found (attempt ${e} of 3). You can keep reading meanwhile.`:`Each picture is drawn and then checked before you see it. This takes a minute or two; you can keep reading meanwhile.`,r),`src/component/vizFrame.ts#Generating~3`),Ready:({code:e,altText:i})=>n(ooe(t,e,i,r),`src/component/vizFrame.ts#Ready~2`),Unavailable:({reason:t,isRetryable:i})=>n(aoe(t,i,e,r),`src/component/vizFrame.ts#Unavailable`)}),t.status._tag===`Ready`?coe(t,r):r.empty]),`src/component/vizFrame.ts#anonymous~23`)),`src/component/vizFrame.ts#viewWith`),loe=a8({showDetails:!1}),o8=M({key:A,step:iG,attempt:j}),s8=rO({Loading:{},Generating:{startedAt:j},Failed:{error:A},Ready:{title:A,estimatedMinutes:j}}),c8=rO({Writing:{text:A},Grading:{text:A},Graded:{text:A,result:sG,followUp:A}}),l8=rO({NotStarted:{},Completing:{},Completed:{outcome:cG},Failed:{error:A}}),uoe=M({goalId:A,conceptId:A,load:s8,maybeCurrent:CC(o8),queue:N(o8),skipped:N(o8),completedSteps:j,maybeQuiz:CC(C6),maybeFrame:CC(W6),maybeLastRead:CC(M({heading:A,body:A})),reexplain:M({isLoading:RS,alternatives:N(hG),maybeError:CC(A)}),questionShownAt:j,revealedSteps:j,teachBack:c8,completion:l8,quickCheckVerdicts:N(DW),tutor:M({isOpen:RS,draft:A,turns:N(dG),isAsking:RS}),maybeError:CC(A)}),u8=nO({SucceededFetchLesson:{state:oG},FailedFetchLesson:{error:A},TickedPoll:{},ClickedContinue:{},ClickedStartOver:{},ClickedRevealStep:{},GotQuizMessage:{message:w6},GotVizFrameMessage:{message:K6},CompletedMarkQuestionShown:{at:j},SucceededSubmitAnswer:{feedback:OW},FailedSubmitAnswer:{error:A},UpdatedTeachBack:{value:A},SubmittedTeachBack:{},SucceededTeachBack:{result:sG},FailedTeachBack:{error:A},UpdatedFollowUp:{value:A},ClickedSkipLesson:{},SucceededSkipLesson:{outcome:cG},FailedSkipLesson:{error:A},ToggledTutor:{},UpdatedTutorDraft:{value:A},SubmittedTutorQuestion:{},SucceededAskTutor:{answer:A},FailedAskTutor:{error:A},ClickedExplainDifferently:{},SucceededReexplain:{reexplanation:hG},FailedReexplain:{error:A},SucceededCompleteLesson:{outcome:cG},FailedCompleteLesson:{error:A}}),doe=co(2),foe=3,poe=2,d8=F(`FetchLesson`,{args:{goalId:A,conceptId:A},messages:[u8.SucceededFetchLesson,u8.FailedFetchLesson],execute:({goalId:e,conceptId:t})=>n(O(function*(){let r=yield*(yield*yK).learning.lesson({params:{goalId:rW.make(e),conceptId:iW.make(t)}});return n(u8.SucceededFetchLesson({state:r}),`src/page/lesson.ts#anonymous`)}).pipe(Wp(e=>n(E(u8.FailedFetchLesson({error:xK(e)})),`src/page/lesson.ts#anonymous~2`))),`src/page/lesson.ts#execute`)}),moe=F(`MarkQuestionShown`,{messages:[u8.CompletedMarkQuestionShown],execute:Gf.pipe(Vp(e=>n(u8.CompletedMarkQuestionShown({at:e}),`src/page/lesson.ts#anonymous~3`)))}),hoe=F(`SubmitAnswer`,{args:{goalId:A,questionId:A,response:EW,note:A,maybeConfidence:CC(lG),hintLevel:j,shownAt:j},messages:[u8.SucceededSubmitAnswer,u8.FailedSubmitAnswer],execute:e=>n(O(function*(){let t=yield*yK,r=yield*Gf,i=yield*t.learning.answer({params:{goalId:rW.make(e.goalId)},payload:{context:`Lesson`,answer:{questionId:xW.make(e.questionId),response:e.response,note:e.note,maybeConfidence:e.maybeConfidence,latencyMs:Math.max(0,r-e.shownAt),hintLevel:e.hintLevel}}});return n(u8.SucceededSubmitAnswer({feedback:i}),`src/page/lesson.ts#anonymous~4`)}).pipe(Wp(e=>n(E(u8.FailedSubmitAnswer({error:xK(e)})),`src/page/lesson.ts#anonymous~5`))),`src/page/lesson.ts#execute~2`)}),goe=F(`SubmitTeachBack`,{args:{goalId:A,conceptId:A,explanation:A},messages:[u8.SucceededTeachBack,u8.FailedTeachBack],execute:({goalId:e,conceptId:t,explanation:r})=>n(O(function*(){let i=yield*(yield*yK).learning.teachBack({params:{goalId:rW.make(e),conceptId:iW.make(t)},payload:{explanation:r}});return n(u8.SucceededTeachBack({result:i}),`src/page/lesson.ts#anonymous~6`)}).pipe(Wp(e=>n(E(u8.FailedTeachBack({error:xK(e)})),`src/page/lesson.ts#anonymous~7`))),`src/page/lesson.ts#execute~3`)}),_oe=F(`CompleteLesson`,{args:{goalId:A,conceptId:A},messages:[u8.SucceededCompleteLesson,u8.FailedCompleteLesson],execute:({goalId:e,conceptId:t})=>n(O(function*(){let r=yield*(yield*yK).learning.completeLesson({params:{goalId:rW.make(e),conceptId:iW.make(t)}});return n(u8.SucceededCompleteLesson({outcome:r}),`src/page/lesson.ts#anonymous~8`)}).pipe(Wp(e=>n(E(u8.FailedCompleteLesson({error:xK(e)})),`src/page/lesson.ts#anonymous~9`))),`src/page/lesson.ts#execute~4`)}),voe=F(`SkipLesson`,{args:{goalId:A,conceptId:A},messages:[u8.SucceededSkipLesson,u8.FailedSkipLesson],execute:({goalId:e,conceptId:t})=>n(O(function*(){let r=yield*(yield*yK).learning.skipLesson({params:{goalId:rW.make(e),conceptId:iW.make(t)}});return n(u8.SucceededSkipLesson({outcome:r}),`src/page/lesson.ts#anonymous~10`)}).pipe(Wp(e=>n(E(u8.FailedSkipLesson({error:xK(e)})),`src/page/lesson.ts#anonymous~11`))),`src/page/lesson.ts#execute~5`)}),yoe=F(`AskTutor`,{args:{goalId:A,conceptId:A,question:A,stepContext:A,isGradedStep:RS,history:N(dG)},messages:[u8.SucceededAskTutor,u8.FailedAskTutor],execute:e=>n(O(function*(){let t=yield*(yield*yK).learning.askTutor({params:{goalId:rW.make(e.goalId),conceptId:iW.make(e.conceptId)},payload:{question:e.question,stepContext:e.stepContext,isGradedStep:e.isGradedStep,history:e.history}});return n(u8.SucceededAskTutor({answer:t.answer}),`src/page/lesson.ts#anonymous~12`)}).pipe(Wp(e=>n(E(u8.FailedAskTutor({error:xK(e)})),`src/page/lesson.ts#anonymous~13`))),`src/page/lesson.ts#execute~6`)}),boe=F(`Reexplain`,{args:{goalId:A,conceptId:A,heading:A,body:A,tried:N(pG),missedQuestion:A},messages:[u8.SucceededReexplain,u8.FailedReexplain],execute:e=>n(O(function*(){let t=yield*(yield*yK).learning.reexplain({params:{goalId:rW.make(e.goalId),conceptId:iW.make(e.conceptId)},payload:{heading:e.heading,body:e.body,tried:e.tried,maybeMissedQuestion:kr(e.missedQuestion,op)}});return n(u8.SucceededReexplain({reexplanation:t}),`src/page/lesson.ts#anonymous~14`)}).pipe(Wp(e=>n(E(u8.FailedReexplain({error:xK(e)})),`src/page/lesson.ts#anonymous~15`))),`src/page/lesson.ts#execute~7`)}),f8={isLoading:!1,alternatives:[],maybeError:x()},p8=3,xoe=(e,t)=>n({model:{goalId:e,conceptId:t,load:s8.Loading(),maybeCurrent:x(),queue:[],skipped:[],completedSteps:0,maybeQuiz:x(),maybeFrame:x(),maybeLastRead:x(),reexplain:f8,questionShownAt:0,revealedSteps:0,teachBack:c8.Writing({text:``}),completion:l8.NotStarted(),quickCheckVerdicts:[],tutor:{isOpen:!1,draft:``,turns:[],isAsking:!1},maybeError:x()},commands:[d8({goalId:e,conceptId:t})]},`src/page/lesson.ts#init`),Soe=e=>n(gD(e).pipe(SD(`Intro`,e=>n(`${e.framing}\n\n${e.motivation}`,`src/page/lesson.ts#anonymous~16`)),SD(`Read`,e=>n(`## ${e.heading}\n${e.body}`,`src/page/lesson.ts#anonymous~17`)),SD(`Prequestion`,`Check`,`Closing`,({question:e})=>n([e.prompt,...T(e.options,e=>n(`- ${e.text}`,`src/page/lesson.ts#anonymous~19`))].join(`
2037
- `),`src/page/lesson.ts#anonymous~18`)),SD(`WorkedExample`,e=>n(`${e.problem}\n${e.steps.join(`
2038
- `)}`,`src/page/lesson.ts#anonymous~20`)),SD(`Connect`,e=>n(e.body,`src/page/lesson.ts#anonymous~21`)),SD(`TeachBack`,e=>n(e.prompt,`src/page/lesson.ts#anonymous~22`)),SD(`Summary`,e=>n(e.points.join(`
2039
- `),`src/page/lesson.ts#anonymous~23`)),SD(`QuickCheck`,({question:e})=>n(e.prompt,`src/page/lesson.ts#anonymous~24`)),SD(`QuickCheckDecision`,()=>n(`Deciding whether to skip the lesson`,`src/page/lesson.ts#anonymous~25`)),TD),`src/page/lesson.ts#stepContextOf`),m8=e=>n(w(e.maybeQuiz,{onNone:()=>n(!1,`src/page/lesson.ts#onNone`),onSome:e=>n(e.phase._tag===`Answering`,`src/page/lesson.ts#onSome`)}),`src/page/lesson.ts#isUnansweredQuestion`),Coe=e=>n(m8(e)&&jr(e.maybeCurrent,e=>n(e.step._tag===`Closing`||e.step._tag===`QuickCheck`||e.step._tag===`Prequestion`,`src/page/lesson.ts#anonymous~26`)),`src/page/lesson.ts#isRetrievalCheck`),h8=e=>n(gD(e).pipe(SD(`Prequestion`,`Check`,`Closing`,`QuickCheck`,({question:e})=>n(S(e),`src/page/lesson.ts#anonymous~27`)),wD(()=>n(x(),`src/page/lesson.ts#anonymous~28`))),`src/page/lesson.ts#questionOf`),woe=e=>n(e._tag===`Read`?e.maybeVisual:x(),`src/page/lesson.ts#visualOf`),g8=e=>n(u8.GotVizFrameMessage({message:e}),`src/page/lesson.ts#toFrameMessage`),Toe=RV({update:e8,read:e=>n(e.maybeFrame,`src/page/lesson.ts#read`),write:(e,t)=>n(I(e,{maybeFrame:()=>n(S(t),`src/page/lesson.ts#maybeFrame`)}),`src/page/lesson.ts#write`),toParentMessage:g8,foldOutMessage:q6.match({ReachedLastStep:()=>n((e=>n({model:e},`src/page/lesson.ts#anonymous~29`)),`src/page/lesson.ts#ReachedLastStep`),BecameUnavailable:()=>n((e=>n({model:e},`src/page/lesson.ts#anonymous~30`)),`src/page/lesson.ts#BecameUnavailable`)})}),_8=e=>{let t=e.completedSteps+ +!!C(e.maybeCurrent);return n(Ui(e.queue,{onEmpty:()=>n({model:I(e,{maybeCurrent:()=>n(x(),`src/page/lesson.ts#maybeCurrent`),maybeQuiz:()=>n(x(),`src/page/lesson.ts#maybeQuiz`),completedSteps:()=>n(t,`src/page/lesson.ts#completedSteps`)})},`src/page/lesson.ts#onEmpty`),onNonEmpty:([r,...i])=>{let a=h8(r.step),o=xr(woe(r.step),t=>n(Z6({goalId:e.goalId,visualId:t.id}),`src/page/lesson.ts#anonymous~31`)),s=r.step._tag===`Summary`&&e.completion._tag===`NotStarted`;return n({model:I(e,{maybeCurrent:()=>n(S(r),`src/page/lesson.ts#maybeCurrent~2`),queue:()=>n(i,`src/page/lesson.ts#queue`),completedSteps:()=>n(t,`src/page/lesson.ts#completedSteps~2`),maybeQuiz:()=>n(xr(a,e=>n(E6(e,{canHint:r.step._tag===`Check`}),`src/page/lesson.ts#anonymous~32`)),`src/page/lesson.ts#maybeQuiz~2`),maybeFrame:()=>n(xr(o,e=>n(e.model,`src/page/lesson.ts#anonymous~33`)),`src/page/lesson.ts#maybeFrame~2`),maybeLastRead:e=>n(r.step._tag===`Read`?S({heading:r.step.heading,body:r.step.body}):e,`src/page/lesson.ts#maybeLastRead`),reexplain:()=>n(f8,`src/page/lesson.ts#reexplain`),revealedSteps:()=>n(0,`src/page/lesson.ts#revealedSteps`),maybeError:()=>n(x(),`src/page/lesson.ts#maybeError`),completion:e=>n(s?l8.Completing():e,`src/page/lesson.ts#completion`)}),commands:[...Hi(xr(a,()=>n(moe(),`src/page/lesson.ts#anonymous~34`))),...w(o,{onNone:()=>n([],`src/page/lesson.ts#onNone~2`),onSome:e=>n(rF(e.commands??[],g8),`src/page/lesson.ts#onSome~2`)}),...Hi(kr(_oe({goalId:e.goalId,conceptId:e.conceptId}),()=>n(s,`src/page/lesson.ts#anonymous~35`)))]},`src/page/lesson.ts#onNonEmpty`)}}),`src/page/lesson.ts#enterNext`)},v8=e=>n(Cr(e.maybeCurrent,t=>n(t.step._tag===`Check`?Cr(e.maybeQuiz,e=>n(S6.match(e.phase,{Answering:()=>n(x(),`src/page/lesson.ts#Answering`),Submitting:()=>n(x(),`src/page/lesson.ts#Submitting`),Answered:({feedback:t})=>n(kr(e.question.prompt,()=>n(t.verdict!==`Correct`,`src/page/lesson.ts#anonymous~38`)),`src/page/lesson.ts#Answered`)}),`src/page/lesson.ts#anonymous~37`)):x(),`src/page/lesson.ts#anonymous~36`)),`src/page/lesson.ts#missedCheckPrompt`),Eoe=e=>n(Cr(e.maybeCurrent,t=>n(t.step._tag===`Read`?S({heading:t.step.heading,body:t.step.body,missedQuestion:``}):Cr(v8(e),t=>n(xr(e.maybeLastRead,e=>n({...e,missedQuestion:t},`src/page/lesson.ts#anonymous~41`)),`src/page/lesson.ts#anonymous~40`)),`src/page/lesson.ts#anonymous~39`)),`src/page/lesson.ts#reexplainTarget`),y8=(e,t)=>n(jr(h8(e.step),e=>n(t.includes(e.id),`src/page/lesson.ts#anonymous~42`)),`src/page/lesson.ts#isAnswered`),Doe=(e,t)=>n(w(ga(la(e,mr(ha(e,e=>n(C(h8(e.step))&&!y8(e,t),`src/page/lesson.ts#anonymous~43`)),()=>n(e.length,`src/page/lesson.ts#anonymous~44`))),e=>n(y8(e,t),`src/page/lesson.ts#anonymous~45`)),{onNone:()=>n(0,`src/page/lesson.ts#onNone~3`),onSome:e=>n(e+1,`src/page/lesson.ts#onSome~3`)}),`src/page/lesson.ts#resumeIndex`),Ooe=(e,t)=>n(w(e.maybeCurrent,{onNone:()=>n(e,`src/page/lesson.ts#onNone~4`),onSome:r=>{let i=t.verdict!==`Correct`;if(r.step._tag!==`Closing`||!i||r.attempt+1>=foe)return n(e,`src/page/lesson.ts#onSome~4`);let a={key:`${r.key}:retry${r.attempt+1}`,step:r.step,attempt:r.attempt+1},o=mr(ha(e.queue,e=>n(e.step._tag===`Summary`,`src/page/lesson.ts#anonymous~46`)),()=>n(e.queue.length,`src/page/lesson.ts#anonymous~47`)),s=Math.min(poe,o);return n(I(e,{queue:e=>n(mr(va(e,s,a),()=>n(Ki(e,a),`src/page/lesson.ts#anonymous~48`)),`src/page/lesson.ts#queue~2`)}),`src/page/lesson.ts#onSome~4`)}}),`src/page/lesson.ts#requeueMissedClosing`),koe=RV({update:M6,read:e=>n(e.maybeQuiz,`src/page/lesson.ts#read~2`),write:(e,t)=>n(I(e,{maybeQuiz:()=>n(S(t),`src/page/lesson.ts#maybeQuiz~3`)}),`src/page/lesson.ts#write~2`),toParentMessage:e=>n(u8.GotQuizMessage({message:e}),`src/page/lesson.ts#toParentMessage`),foldOutMessage:T6.match({SubmittedAnswer:({response:e,note:t,maybeConfidence:r,hintLevel:i})=>n((a=>n({model:a,commands:Hi(xr(a.maybeQuiz,o=>n(hoe({goalId:a.goalId,questionId:o.question.id,response:e,note:t,maybeConfidence:r,hintLevel:i,shownAt:a.questionShownAt}),`src/page/lesson.ts#anonymous~50`)))},`src/page/lesson.ts#anonymous~49`)),`src/page/lesson.ts#SubmittedAnswer`),ContinuedAfterFeedback:()=>n(_8,`src/page/lesson.ts#ContinuedAfterFeedback`)})}),Aoe=(e,t)=>n(u8.match(t,{ClickedStartOver:()=>n(_8(I(e,{queue:()=>n([...e.skipped,...Hi(e.maybeCurrent),...e.queue],`src/page/lesson.ts#queue~3`),skipped:()=>n([],`src/page/lesson.ts#skipped`),maybeCurrent:()=>n(x(),`src/page/lesson.ts#maybeCurrent~3`),maybeQuiz:()=>n(x(),`src/page/lesson.ts#maybeQuiz~4`),completedSteps:()=>n(0,`src/page/lesson.ts#completedSteps~3`)})),`src/page/lesson.ts#ClickedStartOver`),ClickedExplainDifferently:()=>n(w(Eoe(e),{onNone:()=>n({model:e},`src/page/lesson.ts#onNone~5`),onSome:t=>n(e.reexplain.isLoading||e.reexplain.alternatives.length>=p8?{model:e}:{model:I(e,{reexplain:e=>n({...e,isLoading:!0,maybeError:x()},`src/page/lesson.ts#reexplain~2`)}),commands:[boe({goalId:e.goalId,conceptId:e.conceptId,...t,tried:T(e.reexplain.alternatives,e=>n(e.angle,`src/page/lesson.ts#anonymous~51`))})]},`src/page/lesson.ts#onSome~5`)}),`src/page/lesson.ts#ClickedExplainDifferently`),SucceededReexplain:({reexplanation:t})=>n({model:I(e,{reexplain:e=>n({isLoading:!1,alternatives:[...e.alternatives,t],maybeError:x()},`src/page/lesson.ts#reexplain~3`)})},`src/page/lesson.ts#SucceededReexplain`),FailedReexplain:({error:t})=>n({model:I(e,{reexplain:e=>n({...e,isLoading:!1,maybeError:S(t)},`src/page/lesson.ts#reexplain~4`)})},`src/page/lesson.ts#FailedReexplain`),SucceededFetchLesson:({state:t})=>n(gD(t).pipe(vD(),SD(`Generating`,({startedAt:t})=>n({model:I(e,{load:()=>n(s8.Generating({startedAt:t}),`src/page/lesson.ts#load`)})},`src/page/lesson.ts#anonymous~52`)),SD(`Failed`,({error:t})=>n({model:I(e,{load:()=>n(s8.Failed({error:t}),`src/page/lesson.ts#load~2`)})},`src/page/lesson.ts#anonymous~53`)),SD(`Ready`,({lesson:t,answeredQuestionIds:r})=>{if(e.load._tag===`Ready`)return n({model:e},`src/page/lesson.ts#anonymous~54`);let i=T(t.steps,(e,t)=>n({key:`${t}`,step:e,attempt:0},`src/page/lesson.ts#anonymous~55`)),a=Doe(i,r),[o,s]=Sa(i,a);return n(_8(I(e,{load:()=>n(s8.Ready({title:t.title,estimatedMinutes:t.estimatedMinutes}),`src/page/lesson.ts#load~3`),queue:()=>n(s,`src/page/lesson.ts#queue~4`),skipped:()=>n(o,`src/page/lesson.ts#skipped~2`),completedSteps:()=>n(a,`src/page/lesson.ts#completedSteps~4`)})),`src/page/lesson.ts#anonymous~54`)}),TD),`src/page/lesson.ts#SucceededFetchLesson`),FailedFetchLesson:({error:t})=>n({model:I(e,{load:()=>n(s8.Failed({error:t}),`src/page/lesson.ts#load~4`)})},`src/page/lesson.ts#FailedFetchLesson`),TickedPoll:()=>n({model:e,commands:[d8({goalId:e.goalId,conceptId:e.conceptId})]},`src/page/lesson.ts#TickedPoll`),ClickedContinue:()=>n(_8(e),`src/page/lesson.ts#ClickedContinue`),ClickedRevealStep:()=>n({model:I(e,{revealedSteps:e=>n(e+1,`src/page/lesson.ts#revealedSteps~2`)})},`src/page/lesson.ts#ClickedRevealStep`),GotQuizMessage:({message:t})=>n(koe(e,t),`src/page/lesson.ts#GotQuizMessage`),GotVizFrameMessage:({message:t})=>n(Toe(e,t),`src/page/lesson.ts#GotVizFrameMessage`),CompletedMarkQuestionShown:({at:t})=>n({model:I(e,{questionShownAt:()=>n(t,`src/page/lesson.ts#questionShownAt`)})},`src/page/lesson.ts#CompletedMarkQuestionShown`),SucceededSubmitAnswer:({feedback:t})=>n({model:Ooe(I(e,{quickCheckVerdicts:r=>n(w(e.maybeCurrent,{onNone:()=>n(r,`src/page/lesson.ts#onNone~6`),onSome:e=>n(e.step._tag===`QuickCheck`?Ki(r,t.verdict):r,`src/page/lesson.ts#onSome~6`)}),`src/page/lesson.ts#quickCheckVerdicts`),maybeQuiz:xr(e=>n(D6(e,t),`src/page/lesson.ts#anonymous~56`))}),t)},`src/page/lesson.ts#SucceededSubmitAnswer`),FailedSubmitAnswer:({error:t})=>n({model:I(e,{maybeQuiz:xr(O6),maybeError:()=>n(S(t),`src/page/lesson.ts#maybeError~2`)})},`src/page/lesson.ts#FailedSubmitAnswer`),UpdatedTeachBack:({value:t})=>n({model:I(e,{teachBack:e=>n(e._tag===`Writing`?c8.Writing({text:t}):e,`src/page/lesson.ts#teachBack`)})},`src/page/lesson.ts#UpdatedTeachBack`),SubmittedTeachBack:()=>n(c8.match(e.teachBack,{Writing:({text:t})=>n(rp(t).length<10?{model:e}:{model:I(e,{teachBack:()=>n(c8.Grading({text:t}),`src/page/lesson.ts#teachBack~2`)}),commands:[goe({goalId:e.goalId,conceptId:e.conceptId,explanation:t})]},`src/page/lesson.ts#Writing`),Grading:()=>n({model:e},`src/page/lesson.ts#Grading`),Graded:()=>n({model:e},`src/page/lesson.ts#Graded`)}),`src/page/lesson.ts#SubmittedTeachBack`),SucceededTeachBack:({result:t})=>n({model:I(e,{teachBack:e=>n(c8.Graded({text:e._tag===`Writing`||e._tag===`Grading`?e.text:``,result:t,followUp:``}),`src/page/lesson.ts#teachBack~3`)})},`src/page/lesson.ts#SucceededTeachBack`),FailedTeachBack:({error:t})=>n({model:I(e,{teachBack:e=>n(e._tag===`Grading`?c8.Writing({text:e.text}):e,`src/page/lesson.ts#teachBack~4`),maybeError:()=>n(S(t),`src/page/lesson.ts#maybeError~3`)})},`src/page/lesson.ts#FailedTeachBack`),UpdatedFollowUp:({value:t})=>n({model:I(e,{teachBack:e=>n(e._tag===`Graded`?I(e,{followUp:()=>n(t,`src/page/lesson.ts#followUp`)}):e,`src/page/lesson.ts#teachBack~5`)})},`src/page/lesson.ts#UpdatedFollowUp`),ClickedSkipLesson:()=>n({model:I(e,{completion:()=>n(l8.Completing(),`src/page/lesson.ts#completion~2`)}),commands:[voe({goalId:e.goalId,conceptId:e.conceptId})]},`src/page/lesson.ts#ClickedSkipLesson`),SucceededSkipLesson:({outcome:t})=>n({model:I(e,{completion:()=>n(l8.Completed({outcome:t}),`src/page/lesson.ts#completion~3`)})},`src/page/lesson.ts#SucceededSkipLesson`),FailedSkipLesson:({error:t})=>n({model:I(e,{completion:()=>n(l8.NotStarted(),`src/page/lesson.ts#completion~4`),maybeError:()=>n(S(t),`src/page/lesson.ts#maybeError~4`)})},`src/page/lesson.ts#FailedSkipLesson`),ToggledTutor:()=>n({model:I(e,{tutor:e=>n(I(e,{isOpen:e=>n(!e,`src/page/lesson.ts#isOpen`)}),`src/page/lesson.ts#tutor`)})},`src/page/lesson.ts#ToggledTutor`),UpdatedTutorDraft:({value:t})=>n({model:I(e,{tutor:e=>n(I(e,{draft:()=>n(t,`src/page/lesson.ts#draft`)}),`src/page/lesson.ts#tutor~2`)})},`src/page/lesson.ts#UpdatedTutorDraft`),SubmittedTutorQuestion:()=>{let t=rp(e.tutor.draft);return t.length===0||e.tutor.isAsking?n({model:e},`src/page/lesson.ts#SubmittedTutorQuestion`):n({model:I(e,{tutor:e=>n(I(e,{draft:()=>n(``,`src/page/lesson.ts#draft~2`),isAsking:()=>n(!0,`src/page/lesson.ts#isAsking`),turns:Ki({role:`Learner`,text:t})}),`src/page/lesson.ts#tutor~3`)}),commands:[yoe({goalId:e.goalId,conceptId:e.conceptId,question:t,stepContext:w(e.maybeCurrent,{onNone:()=>n(``,`src/page/lesson.ts#onNone~7`),onSome:e=>n(Soe(e.step),`src/page/lesson.ts#onSome~7`)}),isGradedStep:m8(e),history:e.tutor.turns})]},`src/page/lesson.ts#SubmittedTutorQuestion`)},SucceededAskTutor:({answer:t})=>n({model:I(e,{tutor:e=>n(I(e,{isAsking:()=>n(!1,`src/page/lesson.ts#isAsking~2`),turns:Ki({role:`Tutor`,text:t})}),`src/page/lesson.ts#tutor~4`)})},`src/page/lesson.ts#SucceededAskTutor`),FailedAskTutor:({error:t})=>n({model:I(e,{tutor:e=>n(I(e,{isAsking:()=>n(!1,`src/page/lesson.ts#isAsking~3`)}),`src/page/lesson.ts#tutor~5`),maybeError:()=>n(S(t),`src/page/lesson.ts#maybeError~5`)})},`src/page/lesson.ts#FailedAskTutor`),SucceededCompleteLesson:({outcome:t})=>n({model:I(e,{completion:()=>n(l8.Completed({outcome:t}),`src/page/lesson.ts#completion~5`)})},`src/page/lesson.ts#SucceededCompleteLesson`),FailedCompleteLesson:({error:t})=>n({model:I(e,{completion:()=>n(l8.Failed({error:t}),`src/page/lesson.ts#completion~6`)})},`src/page/lesson.ts#FailedCompleteLesson`)}),`src/page/lesson.ts#update`),joe=uR(N6)({read:e=>n(e.maybeQuiz,`src/page/lesson.ts#read~3`),toParentMessage:e=>n(u8.GotQuizMessage({message:e}),`src/page/lesson.ts#toParentMessage~2`)}),Moe=e=>n(jr(e.maybeCurrent,e=>n(e.step._tag===`Intro`||e.step._tag===`Read`||e.step._tag===`Connect`,`src/page/lesson.ts#anonymous~57`)),`src/page/lesson.ts#isContinueStep`),Noe=e=>n(e instanceof HTMLElement&&(e.isContentEditable||[`INPUT`,`TEXTAREA`,`SELECT`,`BUTTON`,`A`].includes(e.tagName)),`src/page/lesson.ts#isTypingOrPressing`),Poe=rR()(e=>n({lessonContinueKey:e({canContinue:RS},{modelToDependencies:e=>n({canContinue:Moe(e)},`src/page/lesson.ts#modelToDependencies`),dependenciesToStream:({canContinue:e})=>n(e?oI({target:()=>n(globalThis.document,`src/page/lesson.ts#target`),type:`keydown`,filterMapEvent:e=>n(kr(u8.ClickedContinue(),()=>n(e.key===`Enter`&&!e.repeat&&!e.ctrlKey&&!e.metaKey&&!Noe(e.target),`src/page/lesson.ts#anonymous~59`)),`src/page/lesson.ts#filterMapEvent`)}):yE,`src/page/lesson.ts#dependenciesToStream`)}),pollWhileGenerating:e({isGenerating:RS},{modelToDependencies:e=>n({isGenerating:e.load._tag===`Generating`},`src/page/lesson.ts#modelToDependencies~2`),dependenciesToStream:({isGenerating:e})=>n(e?hE(doe).pipe(LE(1),kE(()=>n(u8.TickedPoll(),`src/page/lesson.ts#anonymous~60`))):yE,`src/page/lesson.ts#dependenciesToStream~2`)})},`src/page/lesson.ts#anonymous~58`)),b8=uR(t8)({read:e=>n(e.maybeFrame,`src/page/lesson.ts#read~4`),toParentMessage:g8}),Foe=aR(Poe,{lessonQuizKeyboard:joe.keyboard,lessonFrameEvents:b8.frameEvents,lessonFrameTheme:b8.theme}),x8=(e,t)=>n(t.div([t.Class(`ml-auto flex justify-end`)],[t.button([t.Type(`button`),t.OnClick(u8.ClickedContinue()),t.Class(R(`Primary`,`Large`))],[e,L(`arrowRight`,``,t)])]),`src/page/lesson.ts#continueButton`),Ioe=e=>n(gD(e).pipe(SD(`Intro`,()=>n(`Why this matters`,`src/page/lesson.ts#anonymous~61`)),SD(`Prequestion`,()=>n(`Warm-up guess`,`src/page/lesson.ts#anonymous~62`)),SD(`Read`,()=>n(`Learn`,`src/page/lesson.ts#anonymous~63`)),SD(`Check`,()=>n(`Quick check`,`src/page/lesson.ts#anonymous~64`)),SD(`WorkedExample`,()=>n(`Worked example`,`src/page/lesson.ts#anonymous~65`)),SD(`Connect`,()=>n(`Where this fits`,`src/page/lesson.ts#anonymous~66`)),SD(`TeachBack`,()=>n(`Teach it back`,`src/page/lesson.ts#anonymous~67`)),SD(`Closing`,()=>n(`Recall`,`src/page/lesson.ts#anonymous~68`)),SD(`Summary`,()=>n(`Wrap-up`,`src/page/lesson.ts#anonymous~69`)),SD(`QuickCheck`,`QuickCheckDecision`,()=>n(`Quick check`,`src/page/lesson.ts#anonymous~70`)),TD),`src/page/lesson.ts#stepLabel`),Loe=(e,t)=>n(t.div([t.Class(_q(`reveal flex flex-col gap-5 p-6 sm:p-8`))],[t.p([t.Class(`text-lg font-medium`)],[e.framing]),b6(e.motivation,`text-base`,t),Ui(e.objectives,{onEmpty:()=>n(t.empty,`src/page/lesson.ts#onEmpty~2`),onNonEmpty:e=>n(t.ul([t.Class(`flex flex-col gap-1.5 rounded-xl bg-muted/50 p-4 text-sm`)],T(e,e=>n(t.li([t.Class(`flex gap-2`)],[L(`target`,`mt-0.5 size-3.5 shrink-0 text-primary`,t),e]),`src/page/lesson.ts#anonymous~71`))),`src/page/lesson.ts#onNonEmpty~2`)}),x8(`Start`,t)]),`src/page/lesson.ts#introView`),Roe={Analogy:`An analogy`,ConcreteExample:`A worked example`,FromScratch:`Step by step from the basics`,Contrast:`What it is, and what it isn’t`,Picture:`A picture`},S8=(e,t)=>n(t.div([t.Class(`flex flex-col gap-3`)],T(e.reexplain.alternatives,(e,r)=>n(t.keyed(`section`)(`alternative-${r}`,[t.Class(`reveal flex flex-col gap-2 rounded-xl border border-primary/25 bg-primary/5 p-5`)],[t.p([t.Class(`flex items-center gap-1.5 text-xs font-medium tracking-wide text-primary uppercase`)],[L(`lightbulb`,`size-3.5`,t),`Another way · ${Roe[e.angle]}`]),b6(e.body,`text-[1.02rem] leading-relaxed`,t)]),`src/page/lesson.ts#anonymous~72`))),`src/page/lesson.ts#alternativesView`),C8=(e,t)=>n(e.reexplain.alternatives.length>=p8?t.p([t.Class(`text-sm text-muted-foreground`)],[`Still fuzzy? Ask the tutor about the exact part that’s unclear.`]):t.div([t.Class(`flex flex-wrap items-center gap-3`)],[t.button([t.Type(`button`),t.Disabled(e.reexplain.isLoading),t.OnClick(u8.ClickedExplainDifferently()),t.Class(R(`Outline`,`Medium`))],e.reexplain.isLoading?[L(`refresh`,`spinner`,t),t.span([t.Class(`shimmer-text`)],[`Finding another way in`])]:[L(`lightbulb`,``,t),Yi(e.reexplain.alternatives)?`Explain it differently`:`Try another angle`]),w(e.reexplain.maybeError,{onNone:()=>n(t.empty,`src/page/lesson.ts#onNone~8`),onSome:()=>n(t.span([t.Class(`text-sm text-destructive`)],[`Couldn’t get another explanation just now. Try again.`]),`src/page/lesson.ts#onSome~8`)})]),`src/page/lesson.ts#explainDifferentlyButton`),zoe=(e,t,r)=>n(r.article([r.Class(_q(`reveal flex flex-col gap-4 p-6 sm:p-8`))],[r.h2([r.Class(`text-xl font-semibold tracking-tight`)],[t.heading]),b6(t.body,`text-[1.05rem] leading-relaxed`,r),w(e.maybeFrame,{onNone:()=>n(r.empty,`src/page/lesson.ts#onNone~9`),onSome:e=>n(r.submodel({slotId:`lesson-visual-${e.frameId}`,model:e,view:loe,toParentMessage:g8}),`src/page/lesson.ts#onSome~9`)}),S8(e,r),r.div([r.Class(`flex flex-wrap items-center justify-between gap-3`)],[C8(e,r),x8(`Got it`,r)])]),`src/page/lesson.ts#readView`),Boe=(e,t,r)=>{let i=e.revealedSteps>=t.steps.length;return n(r.div([r.Class(_q(`reveal flex flex-col gap-4 p-6 sm:p-8`))],[r.div([r.Class(`text-sm font-medium text-muted-foreground`)],[`Try each step yourself before revealing it.`]),b6(t.problem,`text-lg`,r),r.ol([r.Class(`flex flex-col gap-2`)],T(la(t.steps,e.revealedSteps),(e,t)=>n(r.keyed(`li`)(`${t}`,[r.Class(`pop-in flex gap-3 rounded-lg bg-muted/50 px-4 py-2.5`)],[r.span([r.Class(`font-mono text-xs text-muted-foreground`)],[`${t+1}`]),b6(e,`prose-sm flex-1`,r)]),`src/page/lesson.ts#anonymous~73`))),i?r.div([r.Class(`flex flex-col gap-4`)],[r.div([r.Class(`rounded-lg border border-success/40 bg-success/8 px-4 py-3`)],[b6(`**Answer:** ${t.answer}`,`prose-sm`,r)]),x8(`Continue`,r)]):r.div([r.Class(`flex justify-end`)],[r.button([r.Type(`button`),r.OnClick(u8.ClickedRevealStep()),r.Class(R(`Secondary`,`Large`))],[`Reveal step ${e.revealedSteps+1} of ${t.steps.length}`])])]),`src/page/lesson.ts#workedExampleView`)},Voe=(e,t)=>n(t.div([t.Class(_q(`reveal flex flex-col gap-4 p-6 sm:p-8`))],[t.div([t.Class(`flex items-center gap-2 font-semibold`)],[L(`network`,`size-4 text-primary`,t),`Where this sits in your map`]),b6(e.body,``,t),x8(`Continue`,t)]),`src/page/lesson.ts#connectView`),Hoe=(e,t,r)=>n(r.div([r.Class(_q(`reveal flex flex-col gap-4 p-6 sm:p-8`))],[r.div([r.Class(`flex items-center gap-2 font-semibold`)],[L(`graduation`,`size-4 text-primary`,r),`Teach it back`]),b6(t.prompt,``,r),c8.match(e.teachBack,{Writing:({text:e})=>n(w8(e,!1,r),`src/page/lesson.ts#Writing~2`),Grading:({text:e})=>n(w8(e,!0,r),`src/page/lesson.ts#Grading~2`),Graded:({result:e,followUp:t})=>n(r.div([r.Class(`pop-in flex flex-col gap-4`)],[r.div([r.Class(`rounded-xl border bg-muted/40 p-4`)],[b6(e.feedback,`prose-sm`,r),Ui(e.ideaUnits,{onEmpty:()=>n(r.empty,`src/page/lesson.ts#onEmpty~3`),onNonEmpty:e=>n(r.ul([r.Class(`mt-3 flex flex-col gap-1 text-sm`)],T(e,e=>n(r.li([r.Class(`flex items-start gap-2`)],[e.status===`Present`?L(`check`,`mt-0.5 size-3.5 shrink-0 text-success`,r):e.status===`Partial`?L(`circleDashed`,`mt-0.5 size-3.5 shrink-0 text-amber-500`,r):L(`x`,`mt-0.5 size-3.5 shrink-0 text-destructive`,r),e.idea]),`src/page/lesson.ts#anonymous~74`))),`src/page/lesson.ts#onNonEmpty~3`)})]),r.div([r.Class(`flex flex-col gap-2 rounded-xl border border-dashed p-4`)],[r.p([r.Class(`text-sm text-muted-foreground`)],[`A curious beginner asks:`]),r.p([r.Class(`font-medium`)],[`“${e.noviceQuestion}”`]),r.textarea([r.Value(t),r.Rows(3),r.Placeholder(`Answer them in a sentence or two (optional)…`),r.OnInput(e=>n(u8.UpdatedFollowUp({value:e}),`src/page/lesson.ts#anonymous~75`)),r.Class(vq(`resize-none text-sm`))])]),x8(`Continue`,r)]),`src/page/lesson.ts#Graded~2`)})]),`src/page/lesson.ts#teachBackView`),w8=(e,t,r)=>n(r.div([r.Class(`flex flex-col gap-3`)],[r.textarea([r.Value(e),r.Rows(5),r.Disabled(t),r.Placeholder(`Explain it in your own words, as if to a friend…`),r.OnInput(e=>n(u8.UpdatedTeachBack({value:e}),`src/page/lesson.ts#anonymous~76`)),r.Class(vq(`resize-y text-base leading-relaxed`))]),r.div([r.Class(`flex items-center justify-between gap-3`)],[r.p([r.Class(`text-xs text-muted-foreground`)],[`Explaining from memory is one of the strongest ways to lock an idea in.`]),r.button([r.Type(`button`),r.Disabled(t||rp(e).length<10),r.OnClick(u8.SubmittedTeachBack()),r.Class(R(`Primary`,`Large`))],[t?L(`refresh`,`spinner`,r):r.empty,t?`Reading…`:`Submit`])])]),`src/page/lesson.ts#teachBackInput`),Uoe=(e,t,r)=>n(r.div([r.Class(_q(`reveal flex flex-col gap-5 p-6 sm:p-8`))],[r.div([r.Class(`flex items-center gap-2 text-lg font-semibold`)],[L(`sparkles`,`size-5 text-primary`,r),`Key takeaways`]),r.ul([r.Class(`flex flex-col gap-2`)],T(t.points,e=>n(r.li([r.Class(`flex gap-2`)],[L(`check`,`mt-1 size-4 shrink-0 text-success`,r),b6(e,`prose-sm flex-1`,r)]),`src/page/lesson.ts#anonymous~77`))),l8.match(e.completion,{NotStarted:()=>n(r.empty,`src/page/lesson.ts#NotStarted`),Completing:()=>n(r.p([r.Class(`shimmer-text text-sm`)],[`Scheduling your first review…`]),`src/page/lesson.ts#Completing`),Failed:({error:e})=>n(r.p([r.Class(`text-sm text-destructive`)],[e]),`src/page/lesson.ts#Failed`),Completed:({outcome:e})=>n(r.div([r.Class(CK(`pop-in flex items-start gap-3 rounded-xl border p-4`,e.criterionMet?`border-success/40 bg-success/8`:`border-amber-500/40 bg-amber-500/8`))],[L(e.criterionMet?`brain`:`refresh`,`mt-0.5 size-5 shrink-0`,r),r.p([r.Class(`text-sm`)],[e.message])]),`src/page/lesson.ts#Completed`)}),T8(e,r)]),`src/page/lesson.ts#summaryView`),T8=(e,t)=>n(t.div([t.Class(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`)],[t.a([t.Href(sq({goalId:e.goalId,conceptId:e.conceptId})),t.Class(R(`Outline`,`Large`))],[L(`fileText`,``,t),`Read the notes`]),t.a([t.Href(aq({goalId:e.goalId})),t.Class(R(`Primary`,`Large`))],[`Back to your map`,L(`arrowRight`,``,t)])]),`src/page/lesson.ts#finishActions`),Woe=(e,t,r)=>n(w(e.maybeQuiz,{onNone:()=>n(r.empty,`src/page/lesson.ts#onNone~10`),onSome:i=>n(r.div([r.Class(`flex flex-col gap-3`)],[t._tag===`QuickCheck`?r.p([r.Class(gq(`Warning`,`reveal px-3 py-1`))],[`Quick check: placement was not sure you know this. Get these right and you can skip the lesson.`]):r.empty,t._tag===`Prequestion`?r.p([r.Class(gq(`Info`,`reveal px-3 py-1`))],[`Best guess — no penalty. Guessing first helps you learn the answer.`]):r.empty,r.submodel({slotId:`quiz-${i.question.id}`,model:i,view:F6(`Continue`),toParentMessage:e=>n(u8.GotQuizMessage({message:e}),`src/page/lesson.ts#toParentMessage~3`)}),C(v8(e))&&C(e.maybeLastRead)?r.div([r.Class(`reveal flex flex-col gap-3`)],[S8(e,r),C8(e,r)]):r.empty]),`src/page/lesson.ts#onSome~10`)}),`src/page/lesson.ts#quizView`),Goe=(e,t)=>{let r=Zi(e.quickCheckVerdicts)&&Na(e.quickCheckVerdicts,e=>n(e===`Correct`,`src/page/lesson.ts#anonymous~78`));return n(l8.match(e.completion,{Completed:({outcome:r})=>n(t.div([t.Class(_q(`reveal flex flex-col gap-4 p-6 sm:p-8`))],[t.div([t.Class(`flex items-center gap-2 text-lg font-semibold`)],[L(`check`,`size-5 text-success`,t),`Skipped`]),t.p([t.Class(`text-sm text-muted-foreground`)],[r.message]),T8(e,t)]),`src/page/lesson.ts#Completed~2`),NotStarted:()=>n(E8(e,r,!1,t),`src/page/lesson.ts#NotStarted~2`),Completing:()=>n(E8(e,r,!0,t),`src/page/lesson.ts#Completing~2`),Failed:()=>n(E8(e,r,!1,t),`src/page/lesson.ts#Failed~2`)}),`src/page/lesson.ts#quickCheckDecisionView`)},E8=(e,t,r,i)=>n(i.div([i.Class(_q(`reveal flex flex-col gap-4 p-6 sm:p-8`))],[i.div([i.Class(`flex items-center gap-2 text-lg font-semibold`)],[L(t?`sparkles`:`book`,`size-5 text-primary`,i),t?`You already know this`:`Let’s go through it properly`]),i.p([i.Class(`text-sm text-muted-foreground`)],[t?`You answered the quick check correctly. Skip the lesson and we will schedule a review to make sure it sticks, or take the lesson anyway.`:`At least one answer missed, so the full lesson will fill the gap. It is short.`]),i.div([i.Class(`flex justify-end gap-2`)],t?[i.button([i.Type(`button`),i.OnClick(u8.ClickedContinue()),i.Class(R(`Ghost`,`Large`))],[`Learn it anyway`]),i.button([i.Type(`button`),i.Disabled(r),i.OnClick(u8.ClickedSkipLesson()),i.Class(R(`Primary`,`Large`))],[r?L(`refresh`,`spinner`,i):L(`check`,``,i),`Skip this lesson`])]:[i.button([i.Type(`button`),i.OnClick(u8.ClickedContinue()),i.Class(R(`Primary`,`Large`))],[`Start the lesson`,L(`arrowRight`,``,i)])]),w(e.maybeError,{onNone:()=>n(i.empty,`src/page/lesson.ts#onNone~11`),onSome:e=>n(i.p([i.Class(`text-sm text-destructive`)],[e]),`src/page/lesson.ts#onSome~11`)})]),`src/page/lesson.ts#quickCheckChoice`),Koe=(e,t,r)=>n(gD(t.step).pipe(vD(),SD(`Intro`,e=>n(Loe(e,r),`src/page/lesson.ts#anonymous~79`)),SD(`Read`,t=>n(zoe(e,t,r),`src/page/lesson.ts#anonymous~80`)),SD(`WorkedExample`,t=>n(Boe(e,t,r),`src/page/lesson.ts#anonymous~81`)),SD(`Connect`,e=>n(Voe(e,r),`src/page/lesson.ts#anonymous~82`)),SD(`TeachBack`,t=>n(Hoe(e,t,r),`src/page/lesson.ts#anonymous~83`)),SD(`Summary`,t=>n(Uoe(e,t,r),`src/page/lesson.ts#anonymous~84`)),SD(`Prequestion`,`Check`,`Closing`,`QuickCheck`,t=>n(Woe(e,t,r),`src/page/lesson.ts#anonymous~85`)),SD(`QuickCheckDecision`,()=>n(Goe(e,r),`src/page/lesson.ts#anonymous~86`)),TD),`src/page/lesson.ts#stepView`),qoe=(e,t)=>{let r=e.completedSteps+e.queue.length+ +!!C(e.maybeCurrent),i=r===0?0:Math.round(e.completedSteps/r*100);return n(t.div([t.Class(`h-1 w-full overflow-hidden rounded-full bg-muted`)],[t.div([t.Class(`h-full rounded-full bg-primary transition-[width] duration-500`),t.Style({width:`${i}%`})])]),`src/page/lesson.ts#progressView`)},Joe=e=>n(e.div([e.Class(_q(`flex flex-col items-center gap-4 p-10 text-center`))],[e.span([e.Class(`flex size-12 items-center justify-center rounded-2xl bg-primary/12 text-primary`)],[L(`book`,`size-6`,e)]),e.p([e.Class(`shimmer-text text-lg font-medium`)],[`Writing your lesson…`]),e.p([e.Class(`max-w-md text-sm text-muted-foreground`)],[`Building it from your prerequisites: a motivating problem, short steps with a check after each, a worked example, and a recall round at the end. This takes about a minute the first time.`])]),`src/page/lesson.ts#generatingView`),Yoe=e=>n(e.p([e.Class(`text-center text-sm text-muted-foreground`)],[`This one is answered from memory, so the tutor waits until you have tried. A wrong answer here is useful too.`]),`src/page/lesson.ts#recallNoteView`),Xoe=(e,t)=>n(Coe(e)?Yoe(t):e.tutor.isOpen?t.section([t.Class(_q(`pop-in flex flex-col gap-3 p-4`))],[t.div([t.Class(`flex items-center justify-between`)],[t.div([t.Class(`flex items-center gap-2 text-sm font-semibold`)],[L(`sparkles`,`size-4 text-primary`,t),`Tutor`]),t.button([t.Type(`button`),t.AriaLabel(`Close tutor`),t.OnClick(u8.ToggledTutor()),t.Class(R(`Ghost`,`IconSmall`))],[L(`x`,``,t)])]),Ui(e.tutor.turns,{onEmpty:()=>n(t.p([t.Class(`text-sm text-muted-foreground`)],[m8(e)?`Stuck on this question? I can give you a nudge, but not the answer: working it out is what makes it stick.`:`Ask anything about this step: why it works, another example, how it connects.`]),`src/page/lesson.ts#onEmpty~4`),onNonEmpty:e=>n(t.ol([t.Class(`flex max-h-96 flex-col gap-3 overflow-y-auto`)],T(e,(e,r)=>n(t.keyed(`li`)(`${r}`,[t.Class(CK(`rounded-xl px-3 py-2 text-sm`,e.role===`Learner`?`self-end bg-primary/10`:`self-start bg-muted/60`))],[b6(e.text,`prose-sm`,t)]),`src/page/lesson.ts#anonymous~87`))),`src/page/lesson.ts#onNonEmpty~4`)}),e.tutor.isAsking?t.p([t.Class(`shimmer-text text-sm`)],[`Thinking...`]):t.empty,t.form([t.OnSubmit(u8.SubmittedTutorQuestion()),t.Class(`flex items-end gap-2`)],[t.textarea([t.Value(e.tutor.draft),t.Rows(2),t.Placeholder(`Ask the tutor...`),t.OnInput(e=>n(u8.UpdatedTutorDraft({value:e}),`src/page/lesson.ts#anonymous~88`)),t.OnKeyDownPreventDefault((e,t)=>n(kr(u8.SubmittedTutorQuestion(),()=>n(e===`Enter`&&!t.shiftKey,`src/page/lesson.ts#anonymous~90`)),`src/page/lesson.ts#anonymous~89`)),t.Class(vq(`resize-none text-sm`))]),t.button([t.Type(`submit`),t.AriaLabel(`Send`),t.Disabled(e.tutor.isAsking),t.Class(R(`Primary`,`Icon`))],[L(`arrowUp`,``,t)])])]):t.div([t.Class(`flex justify-center`)],[t.button([t.Type(`button`),t.OnClick(u8.ToggledTutor()),t.Class(R(`Ghost`,`Small`,`text-muted-foreground`))],[L(`sparkles`,``,t),`Ask the tutor`])]),`src/page/lesson.ts#tutorView`),Zoe=hM((e,t)=>n(t.div([t.Class(`mx-auto flex w-full max-w-3xl flex-col gap-5 px-5 pt-6 pb-24`)],[t.div([t.Class(`flex items-center justify-between gap-4`)],[t.a([t.Href(aq({goalId:e.goalId})),t.Class(`inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground`)],[L(`arrowLeft`,`size-4`,t),`Map`]),w(e.maybeCurrent,{onNone:()=>n(t.empty,`src/page/lesson.ts#onNone~12`),onSome:e=>n(t.span([t.Class(`text-sm text-muted-foreground`)],[Ioe(e.step)]),`src/page/lesson.ts#onSome~12`)})]),s8.match(e.load,{Loading:()=>n(t.div([t.Class(`h-64 animate-pulse rounded-xl bg-muted/60`)]),`src/page/lesson.ts#Loading`),Generating:()=>n(Joe(t),`src/page/lesson.ts#Generating`),Failed:({error:e})=>n(t.div([t.Class(_q(`flex flex-col gap-3 p-6`))],[t.p([t.Class(`font-medium`)],[`This lesson could not be written.`]),t.p([t.Class(`text-sm text-muted-foreground`)],[e])]),`src/page/lesson.ts#Failed~3`),Ready:({title:r,estimatedMinutes:i})=>n(t.div([t.Class(`flex flex-col gap-5`)],[t.div([t.Class(`flex flex-col gap-3`)],[t.div([t.Class(`flex items-end justify-between gap-3`)],[t.h1([t.Class(`text-2xl font-semibold tracking-tight`)],[r]),t.span([t.Class(gq(`Neutral`))],[L(`clock`,``,t),`~${i} min`])]),qoe(e,t)]),w(e.maybeError,{onNone:()=>n(t.empty,`src/page/lesson.ts#onNone~13`),onSome:e=>n(t.p([t.Role(`alert`),t.Class(`text-sm text-destructive`)],[e]),`src/page/lesson.ts#onSome~13`)}),Yi(e.skipped)||e.completedSteps!==e.skipped.length?t.empty:t.div([t.Class(`reveal flex items-center justify-between gap-3 rounded-lg bg-muted/60 px-4 py-2 text-sm text-muted-foreground`)],[t.span([],[`Welcome back: picked up where you left off.`]),t.button([t.Type(`button`),t.OnClick(u8.ClickedStartOver()),t.Class(R(`Ghost`,`Small`))],[L(`refresh`,``,t),`Start over`])]),w(e.maybeCurrent,{onNone:()=>n(t.empty,`src/page/lesson.ts#onNone~14`),onSome:r=>n(t.keyed(`div`)(r.key,[],[Koe(e,r,t)]),`src/page/lesson.ts#onSome~14`)}),Xoe(e,t)]),`src/page/lesson.ts#Ready`)})]),`src/page/lesson.ts#anonymous~91`)),Qoe=e=>n(e.load._tag===`Ready`?`${e.load.title} · Lesson`:`Lesson · BaviTutor`,`src/page/lesson.ts#pageTitle`),D8=rO({Loading:{},Failed:{error:A},Ready:{notes:bW,fetchedAt:j}}),$oe=M({goalId:A,conceptId:A,load:D8}),O8=nO({SucceededFetchNotes:{notes:bW,fetchedAt:j},FailedFetchNotes:{error:A},ClickedRetry:{}}),k8=F(`FetchNotes`,{args:{goalId:A,conceptId:A},messages:[O8.SucceededFetchNotes,O8.FailedFetchNotes],execute:({goalId:e,conceptId:t})=>n(O(function*(){let r=yield*(yield*yK).learning.notes({params:{goalId:rW.make(e),conceptId:iW.make(t)}}),i=yield*Gf;return n(O8.SucceededFetchNotes({notes:r,fetchedAt:i}),`src/page/notes.ts#anonymous`)}).pipe(Gp(`ConceptNotFound`,()=>n(E(O8.FailedFetchNotes({error:`That concept is not on this map any more.`})),`src/page/notes.ts#anonymous~2`)),Wp(e=>n(E(O8.FailedFetchNotes({error:xK(e)})),`src/page/notes.ts#anonymous~3`))),`src/page/notes.ts#execute`)}),ese=(e,t)=>n({model:{goalId:e,conceptId:t,load:D8.Loading()},commands:[k8({goalId:e,conceptId:t})]},`src/page/notes.ts#init`),tse=(e,t)=>n(O8.match(t,{SucceededFetchNotes:({notes:t,fetchedAt:r})=>n({model:I(e,{load:()=>n(D8.Ready({notes:t,fetchedAt:r}),`src/page/notes.ts#load`)})},`src/page/notes.ts#SucceededFetchNotes`),FailedFetchNotes:({error:t})=>n({model:I(e,{load:()=>n(D8.Failed({error:t}),`src/page/notes.ts#load~2`)})},`src/page/notes.ts#FailedFetchNotes`),ClickedRetry:()=>n({model:I(e,{load:()=>n(D8.Loading(),`src/page/notes.ts#load~3`)}),commands:[k8({goalId:e.goalId,conceptId:e.conceptId})]},`src/page/notes.ts#ClickedRetry`)}),`src/page/notes.ts#update`),nse=36e5,rse={Unknown:{label:`Not studied yet`,tone:`Neutral`,note:``},Assumed:{label:`Assumed known`,tone:`Neutral`,note:`Implied by a later concept you know.`},Known:{label:`Known before`,tone:`Success`,note:`You knew this before you started here.`},Shaky:{label:`Shaky`,tone:`Warning`,note:`Placement wasn’t sure, so a quick check comes first.`},InLesson:{label:`In a lesson`,tone:`Primary`,note:`Started, not passed yet.`},Acquired:{label:`Learned`,tone:`Success`,note:`Passed the lesson; spaced reviews make it stick.`},Consolidating:{label:`Consolidating`,tone:`Info`,note:`In spaced review.`},Mastered:{label:`Mastered`,tone:`Success`,note:`Recalled on two later days.`},Durable:{label:`Durable`,tone:`Success`,note:`Expected to hold for a month without review.`},Relearning:{label:`Relearning`,tone:`Warning`,note:`Slipped in a review, so it comes back sooner.`}},ise=e=>n(new Date(e).toLocaleDateString(`en-US`,{weekday:`short`,month:`short`,day:`numeric`}),`src/page/notes.ts#formatDay`),ase=(e,t)=>{let r=(e-t)/nse;if(r<1)return n(`within the hour`,`src/page/notes.ts#fromNow`);if(r<36)return n(`in about ${Math.round(r)} hours`,`src/page/notes.ts#fromNow`);let i=Math.round(r/24);return n(i<60?`in ${i} days`:`in about ${Math.round(i/30)} months`,`src/page/notes.ts#fromNow`)},A8=`text-xs font-medium tracking-wide text-muted-foreground uppercase`,j8=(e,t,r,i)=>n(i.section([i.AriaLabelledBy(`notes-${e}`),i.Class(`flex flex-col gap-5 border-t py-8 last:pb-0`)],[i.h2([i.Id(`notes-${e}`),i.Class(`text-lg font-semibold tracking-tight`)],[t]),...r]),`src/page/notes.ts#sectionView`),ose=(e,t,r)=>{let i=rse[e.mastery];return n(r.dl([r.Class(`grid gap-4 rounded-xl bg-muted/50 px-4 py-3.5 text-sm sm:grid-cols-2 sm:px-5`)],[r.div([r.Class(`flex flex-col gap-1`)],[r.dt([r.Class(A8)],[`Your status`]),r.dd([r.Class(`flex flex-wrap items-center gap-x-2 gap-y-1`)],[r.span([r.Class(gq(i.tone,i.tone===`Neutral`?`border bg-background`:``))],[i.label]),i.note.length>0?r.span([r.Class(`text-muted-foreground`)],[i.note]):r.empty])]),r.div([r.Class(`flex flex-col gap-1`)],[r.dt([r.Class(A8)],[`Next review`]),r.dd([r.Class(`flex flex-wrap items-center gap-x-2 gap-y-1`)],w(e.maybeNextReviewAt,{onNone:()=>n([r.span([r.Class(`text-muted-foreground`)],[dW(e.mastery)?`Not scheduled`:`Scheduled once you pass the lesson`])],`src/page/notes.ts#onNone`),onSome:e=>n(e<=t?[r.span([r.Class(`font-medium`)],[`Due now`]),r.a([r.Href(lq()),r.Class(`font-medium text-primary underline-offset-4 hover:underline`)],[`Review it`])]:[r.time([r.Datetime(new Date(e).toISOString()),r.Class(`font-medium`)],[ise(e)]),r.span([r.Class(`text-muted-foreground`)],[ase(e,t)])],`src/page/notes.ts#onSome`)}))])]),`src/page/notes.ts#statusView`)},sse=(e,t,r)=>n(r.header([r.Class(`flex flex-col gap-5 pb-8`)],[r.div([r.Class(`flex flex-col gap-2`)],[r.p([r.Class(CK(A8,`flex items-center gap-1.5`))],[L(`fileText`,`size-3.5`,r),`Notes`]),r.h1([r.Id(`notes-title`),r.Class(`text-3xl leading-tight font-semibold tracking-tight text-balance`)],[e.concept.title]),r.p([r.Class(`text-base leading-relaxed text-muted-foreground`)],[e.concept.summary])]),ose(e,t,r)]),`src/page/notes.ts#headerView`),cse=(e,t)=>n(Ui(e,{onEmpty:()=>n(t.empty,`src/page/notes.ts#onEmpty`),onNonEmpty:e=>n(j8(`key-ideas`,`Key ideas`,[t.ol([t.Class(`flex flex-col gap-3`)],T(e,(e,r)=>n(t.li([t.Class(`flex gap-3`)],[t.span([t.AriaHidden(!0),t.Class(`mt-0.5 flex size-6 shrink-0 items-center justify-center rounded-full bg-primary/12 text-xs font-semibold text-primary tabular-nums`)],[`${r+1}`]),b6(e,`min-w-0 flex-1 prose-p:my-0`,t)]),`src/page/notes.ts#anonymous~4`)))],t),`src/page/notes.ts#onNonEmpty`)}),`src/page/notes.ts#keyIdeasView`),M8=(e,t)=>n(t.summary([t.Class(`flex cursor-pointer list-none items-center gap-1.5 text-sm font-medium text-muted-foreground select-none hover:text-foreground [&::-webkit-details-marker]:hidden`)],[L(`chevronDown`,`size-4 shrink-0 -rotate-90 transition-transform group-open:rotate-0`,t),...e]),`src/page/notes.ts#disclosureSummary`),lse=(e,t,r)=>n(r.keyed(`article`)(`chunk-${t}`,[r.Class(`flex flex-col gap-3`)],[r.h3([r.Class(`text-base font-semibold leading-snug`)],[x6(e.heading,``,r)]),b6(e.gist,`prose-sm sm:prose-base`,r),e.gist.trim()===e.body.trim()?r.empty:r.details([r.Class(`group`)],[M8([r.span([],[`The full explanation`])],r),r.div([r.Class(`mt-3 border-l-2 border-primary/25 pl-4`)],[b6(e.body,`prose-sm`,r)])])]),`src/page/notes.ts#chunkView`),use=(e,t)=>n(Ui(e,{onEmpty:()=>n(t.empty,`src/page/notes.ts#onEmpty~2`),onNonEmpty:e=>n(j8(`explained`,`Step by step`,[t.div([t.Class(`flex flex-col gap-8`)],T(e,(e,r)=>n(lse(e,r,t),`src/page/notes.ts#anonymous~5`)))],t),`src/page/notes.ts#onNonEmpty~2`)}),`src/page/notes.ts#chunksView`),dse=(e,t,r)=>n(r.keyed(`details`)(`example-${t}`,[r.Class(`group rounded-xl border px-4 py-3 open:pb-4`)],[M8([r.span([r.Class(`text-foreground`)],[`Worked example ${t+1}`])],r),r.div([r.Class(`mt-3 flex flex-col gap-3`)],[b6(e.problem,`prose-sm`,r),r.ol([r.Class(`flex list-decimal flex-col gap-1.5 pl-5 text-sm`)],T(e.steps,e=>n(r.li([r.Class(`pl-1 marker:text-muted-foreground`)],[b6(e,`prose-sm prose-p:my-0`,r)]),`src/page/notes.ts#anonymous~6`))),r.div([r.Class(`flex flex-wrap items-baseline gap-x-2 rounded-lg bg-success/8 px-3 py-2 text-sm`)],[r.span([r.Class(`font-medium text-success`)],[`Answer`]),x6(e.answer,`min-w-0`,r)])])]),`src/page/notes.ts#workedExampleView`),fse=(e,t)=>n(Ui(e,{onEmpty:()=>n(t.empty,`src/page/notes.ts#onEmpty~3`),onNonEmpty:e=>n(j8(`examples`,`Worked examples`,[t.p([t.Class(`-mt-2 text-sm text-muted-foreground`)],[`Try each one yourself before you open it.`]),t.div([t.Class(`flex flex-col gap-3`)],T(e,(e,r)=>n(dse(e,r,t),`src/page/notes.ts#anonymous~7`)))],t),`src/page/notes.ts#onNonEmpty~3`)}),`src/page/notes.ts#workedExamplesView`),pse=(e,t)=>n(Ui(e,{onEmpty:()=>n(t.empty,`src/page/notes.ts#onEmpty~4`),onNonEmpty:e=>n(j8(`traps`,`Common traps`,[t.ul([t.Class(`flex flex-col gap-3`)],T(e,e=>n(t.li([t.Class(`flex flex-col gap-2 rounded-xl border border-amber-500/30 bg-amber-500/6 p-4`)],[t.div([t.Class(`flex gap-2.5 text-sm`)],[L(`x`,`mt-0.5 size-4 shrink-0 text-amber-600 dark:text-amber-400`,t),t.div([t.Class(`min-w-0 flex-1`)],[t.span([t.Class(`sr-only`)],[`Trap: `]),x6(e.belief,`text-muted-foreground`,t)])]),t.div([t.Class(`flex gap-2.5 text-sm`)],[L(`check`,`mt-0.5 size-4 shrink-0 text-success`,t),t.div([t.Class(`min-w-0 flex-1`)],[t.span([t.Class(`sr-only`)],[`Instead: `]),x6(e.correction,``,t)])])]),`src/page/notes.ts#anonymous~8`)))],t),`src/page/notes.ts#onNonEmpty~4`)}),`src/page/notes.ts#trapsView`),N8=(e,t,r,i,a)=>n(a.div([a.Class(`flex min-w-0 flex-col gap-2`)],[a.h3([a.Class(A8)],[t]),Ui(r,{onEmpty:()=>n(a.p([a.Class(`text-sm text-muted-foreground`)],[i]),`src/page/notes.ts#onEmpty~5`),onNonEmpty:r=>n(a.ul([a.AriaLabel(t),a.Class(`flex flex-col gap-1.5`)],T(r,t=>n(a.keyed(`li`)(t.id,[a.Class(`min-w-0`)],[a.a([a.Href(sq({goalId:e,conceptId:t.id})),a.Class(`press flex min-w-0 items-center gap-2 rounded-lg border px-3 py-2 text-sm hover:border-primary/50 hover:text-primary`)],[a.span([a.AriaHidden(!0),a.Class(CK(`size-2 shrink-0 rounded-full`,dW(t.mastery)?`bg-success`:`bg-border`))]),a.span([a.Class(`min-w-0 flex-1 leading-snug break-words`)],[t.title]),dW(t.mastery)?a.span([a.Class(`sr-only`)],[`(learned)`]):a.empty])]),`src/page/notes.ts#anonymous~9`))),`src/page/notes.ts#onNonEmpty~5`)})]),`src/page/notes.ts#neighbourList`),mse=(e,t,r)=>n(j8(`map`,`Where it sits on the map`,[r.div([r.Class(`grid items-start gap-3 sm:grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)_auto_minmax(0,1fr)] sm:gap-4`)],[N8(e.goalId,`Builds on`,e.prerequisites,`Nothing: this is a starting point.`,r),L(`arrowRight`,`mx-auto size-4 rotate-90 text-muted-foreground sm:mt-9 sm:rotate-0`,r),r.div([r.Class(`flex min-w-0 flex-col gap-2`)],[r.h3([r.Class(A8)],[`This concept`]),r.p([r.AriaCurrent(`page`),r.Class(`rounded-lg border border-primary/40 bg-primary/8 px-3 py-2 text-sm font-medium`)],[e.concept.title])]),L(`arrowRight`,`mx-auto size-4 rotate-90 text-muted-foreground sm:mt-9 sm:rotate-0`,r),N8(e.goalId,`Unlocks`,e.unlocks,`Nothing further: this is where the map ends.`,r)]),w(Dr(t,e=>n(e.trim().length>0,`src/page/notes.ts#anonymous~10`)),{onNone:()=>n(r.empty,`src/page/notes.ts#onNone~2`),onSome:e=>n(b6(e,`prose-sm text-muted-foreground`,r),`src/page/notes.ts#onSome~2`)})],r),`src/page/notes.ts#mapView`),hse=(e,t)=>n(Ui(e.resources,{onEmpty:()=>n(t.empty,`src/page/notes.ts#onEmpty~6`),onNonEmpty:e=>n(j8(`deeper`,`Go deeper`,[t.p([t.Class(`-mt-2 text-sm text-muted-foreground`)],[`Picked from the sources this map was built from, the most trusted first.`]),nq(e,!1,`Resources`,t)],t),`src/page/notes.ts#onNonEmpty~6`)}),`src/page/notes.ts#resourcesView`),gse=(e,t)=>n(j8(`covers`,`What this covers`,[Ui(e.concept.objectives,{onEmpty:()=>n(t.empty,`src/page/notes.ts#onEmpty~7`),onNonEmpty:e=>n(t.ul([t.AriaLabel(`You will be able to`),t.Class(`flex flex-col gap-2 text-sm`)],T(e,e=>n(t.li([t.Class(`flex gap-2`)],[L(`target`,`mt-0.5 size-4 shrink-0 text-primary`,t),e]),`src/page/notes.ts#anonymous~11`))),`src/page/notes.ts#onNonEmpty~7`)}),t.div([t.Class(`flex flex-col items-start gap-3 rounded-xl border border-dashed p-5`)],[t.p([t.Class(`text-sm text-muted-foreground`)],[`No lesson yet. Once you take it, these notes fill in with its key ideas, worked examples and common traps.`]),t.a([t.Href(oq({goalId:e.goalId,conceptId:e.concept.id})),t.Class(R(`Primary`,`Medium`))],[L(`play`,`fill-current`,t),`Take the lesson`])])],t),`src/page/notes.ts#noLessonView`),_se=(e,t)=>n([cse(e.keyIdeas,t),use(e.chunks,t),fse(e.workedExamples,t),pse(e.traps,t)],`src/page/notes.ts#lessonSectionsView`),vse=(e,t,r)=>n(r.article([r.AriaLabelledBy(`notes-title`),r.Class(_q(`reveal flex flex-col px-5 py-7 sm:px-10 sm:py-10 print:border-0 print:shadow-none`))],[sse(e,t,r),...w(e.maybeLesson,{onNone:()=>n([gse(e,r)],`src/page/notes.ts#onNone~3`),onSome:e=>n(_se(e,r),`src/page/notes.ts#onSome~3`)}),mse(e,xr(e.maybeLesson,e=>n(e.connection,`src/page/notes.ts#anonymous~12`)),r),hse(e,r)]),`src/page/notes.ts#readyView`),yse=e=>n(e.div([e.Role(`status`),e.AriaLabel(`Loading the notes`),e.Class(_q(`flex flex-col gap-6 px-5 py-7 sm:px-10 sm:py-10`))],[e.div([e.Class(`h-4 w-20 animate-pulse rounded bg-muted`)]),e.div([e.Class(`h-9 w-2/3 animate-pulse rounded-lg bg-muted`)]),e.div([e.Class(`h-16 animate-pulse rounded-xl bg-muted/60`)]),e.div([e.Class(`h-40 animate-pulse rounded-xl bg-muted/60`)]),e.div([e.Class(`h-40 animate-pulse rounded-xl bg-muted/60`)])]),`src/page/notes.ts#loadingView`),bse=(e,t)=>n(t.div([t.Role(`alert`),t.Class(_q(`flex flex-col items-start gap-3 p-6`))],[t.p([t.Class(`font-medium`)],[`These notes didn’t load`]),t.p([t.Class(`text-sm text-muted-foreground`)],[e]),t.button([t.Type(`button`),t.OnClick(O8.ClickedRetry()),t.Class(R(`Outline`,`Small`))],[L(`refresh`,``,t),`Try again`])]),`src/page/notes.ts#failedView`),xse=(e,t)=>{let r=D8.match(e.load,{Loading:()=>n(x(),`src/page/notes.ts#Loading`),Failed:()=>n(x(),`src/page/notes.ts#Failed`),Ready:({notes:e})=>n(S(e),`src/page/notes.ts#Ready`)});return n(t.nav([t.AriaLabel(`Notes`),t.Class(`flex flex-wrap items-center justify-between gap-2 print:hidden`)],[t.a([t.Href(aq({goalId:e.goalId})),t.Class(R(`Ghost`,`Small`,`-ml-3 max-w-full text-muted-foreground`))],[L(`arrowLeft`,``,t),t.span([t.Class(`truncate`)],[w(r,{onNone:()=>n(`Back to the map`,`src/page/notes.ts#onNone~4`),onSome:e=>n(e.goalTitle,`src/page/notes.ts#onSome~4`)})])]),w(Dr(r,e=>n(C(e.maybeLesson),`src/page/notes.ts#anonymous~13`)),{onNone:()=>n(t.empty,`src/page/notes.ts#onNone~5`),onSome:e=>n(t.a([t.Href(oq({goalId:e.goalId,conceptId:e.concept.id})),t.Class(R(`Outline`,`Small`))],[L(`play`,`size-3.5 fill-current`,t),`Open the lesson`]),`src/page/notes.ts#onSome~5`)})]),`src/page/notes.ts#topBarView`)},Sse=hM((e,t)=>n(t.div([t.Class(`mx-auto flex w-full max-w-3xl flex-col gap-4 px-4 pt-6 pb-24 sm:px-5 sm:pt-8`)],[xse(e,t),D8.match(e.load,{Loading:()=>n(yse(t),`src/page/notes.ts#Loading~2`),Failed:({error:e})=>n(bse(e,t),`src/page/notes.ts#Failed~2`),Ready:({notes:e,fetchedAt:r})=>n(vse(e,r,t),`src/page/notes.ts#Ready~2`)})]),`src/page/notes.ts#anonymous~14`)),Cse=e=>n(D8.match(e.load,{Loading:()=>n(`Notes · BaviTutor`,`src/page/notes.ts#Loading~3`),Failed:()=>n(`Notes · BaviTutor`,`src/page/notes.ts#Failed~3`),Ready:({notes:e})=>n(`${e.concept.title} · Notes · BaviTutor`,`src/page/notes.ts#Ready~3`)}),`src/page/notes.ts#pageTitle`),P8=rO({Loading:{},Failed:{error:A},Ready:{view:vG}}),wse=M({goalId:A,load:P8,maybeDetail:CC(tG),selfDescription:A,isWorking:RS,maybeQuiz:CC(C6),questionShownAt:j,overrides:N(yG),isReviewOpen:RS,maybeError:CC(A)}),F8=nO({SucceededFetchDetail:{detail:tG},FailedFetchDetail:{error:A},SucceededPlacementAction:{view:vG},FailedPlacementAction:{error:A},TickedPoll:{},UpdatedSelfDescription:{value:A},ClickedStart:{},ClickedStartFromScratch:{},GotQuizMessage:{message:w6},CompletedMarkQuestionShown:{at:j},ClickedSkip:{},ClickedFinishEarly:{},ClickedToggleConcept:{conceptId:A},ClickedToggleReview:{},ClickedConfirm:{},ClickedRestart:{}}),I8=nO({FinishedPlacement:{}}),L8=e=>n({params:{goalId:rW.make(e)}},`src/page/placement.ts#goalParams`),R8=Vp(e=>n(F8.SucceededPlacementAction({view:e}),`src/page/placement.ts#anonymous`)),z8=Wp(e=>n(E(F8.FailedPlacementAction({error:xK(e)})),`src/page/placement.ts#anonymous~2`)),Tse=F(`FetchDetail`,{args:{goalId:A},messages:[F8.SucceededFetchDetail,F8.FailedFetchDetail],execute:({goalId:e})=>n(O(function*(){let t=yield*(yield*yK).goals.get(L8(e));return n(F8.SucceededFetchDetail({detail:t}),`src/page/placement.ts#anonymous~3`)}).pipe(Wp(e=>n(E(F8.FailedFetchDetail({error:xK(e)})),`src/page/placement.ts#anonymous~4`))),`src/page/placement.ts#execute`)}),B8=F(`FetchPlacement`,{args:{goalId:A},messages:[F8.SucceededPlacementAction,F8.FailedPlacementAction],execute:({goalId:e})=>n(yK.pipe(k(t=>n(t.placement.view(L8(e)),`src/page/placement.ts#anonymous~5`)),R8,z8),`src/page/placement.ts#execute~2`)}),Ese=F(`StartPlacement`,{args:{goalId:A,selfDescription:A},messages:[F8.SucceededPlacementAction,F8.FailedPlacementAction],execute:({goalId:e,selfDescription:t})=>n(yK.pipe(k(r=>n(r.placement.start({...L8(e),payload:{selfDescription:t}}),`src/page/placement.ts#anonymous~6`)),R8,z8),`src/page/placement.ts#execute~3`)}),Dse=F(`AnswerPlacement`,{args:{goalId:A,questionId:A,response:EW,note:A,maybeConfidence:CC(lG),shownAt:j},messages:[F8.SucceededPlacementAction,F8.FailedPlacementAction],execute:e=>n(O(function*(){let t=yield*yK,r=yield*Gf;return n(yield*t.placement.answer({...L8(e.goalId),payload:{answer:{questionId:xW.make(e.questionId),response:e.response,note:e.note,maybeConfidence:e.maybeConfidence,latencyMs:Math.max(0,r-e.shownAt),hintLevel:0}}}),`src/page/placement.ts#anonymous~7`)}).pipe(R8,z8),`src/page/placement.ts#execute~4`)}),Ose=F(`SkipQuestion`,{args:{goalId:A},messages:[F8.SucceededPlacementAction,F8.FailedPlacementAction],execute:({goalId:e})=>n(yK.pipe(k(t=>n(t.placement.skip(L8(e)),`src/page/placement.ts#anonymous~8`)),R8,z8),`src/page/placement.ts#execute~5`)}),kse=F(`FinishPlacement`,{args:{goalId:A},messages:[F8.SucceededPlacementAction,F8.FailedPlacementAction],execute:({goalId:e})=>n(yK.pipe(k(t=>n(t.placement.finish(L8(e)),`src/page/placement.ts#anonymous~9`)),R8,z8),`src/page/placement.ts#execute~6`)}),Ase=F(`ApplyPlacement`,{args:{goalId:A,overrides:N(yG)},messages:[F8.SucceededPlacementAction,F8.FailedPlacementAction],execute:({goalId:e,overrides:t})=>n(yK.pipe(k(r=>n(r.placement.apply({...L8(e),payload:{overrides:t}}),`src/page/placement.ts#anonymous~10`)),R8,z8),`src/page/placement.ts#execute~7`)}),jse=F(`ResetPlacement`,{args:{goalId:A},messages:[F8.SucceededPlacementAction,F8.FailedPlacementAction],execute:({goalId:e})=>n(yK.pipe(k(t=>n(t.placement.reset(L8(e)),`src/page/placement.ts#anonymous~11`)),R8,z8),`src/page/placement.ts#execute~8`)}),Mse=F(`MarkQuestionShown`,{messages:[F8.CompletedMarkQuestionShown],execute:Gf.pipe(Vp(e=>n(F8.CompletedMarkQuestionShown({at:e}),`src/page/placement.ts#anonymous~12`)))}),Nse=e=>n({model:{goalId:e,load:P8.Loading(),maybeDetail:x(),selfDescription:``,isWorking:!1,maybeQuiz:x(),questionShownAt:0,overrides:[],isReviewOpen:!1,maybeError:x()},commands:[B8({goalId:e}),Tse({goalId:e})]},`src/page/placement.ts#init`),Pse=(e,t)=>{let r=I(e,{load:()=>n(P8.Ready({view:t}),`src/page/placement.ts#load`),isWorking:()=>n(!1,`src/page/placement.ts#isWorking`),maybeError:()=>n(x(),`src/page/placement.ts#maybeError`)});return n(gD(t).pipe(vD(),SD(`Asking`,({question:t})=>n(w(e.maybeQuiz,{onNone:()=>n(!1,`src/page/placement.ts#onNone`),onSome:e=>n(e.question.id===t.id,`src/page/placement.ts#onSome`)})?{model:r}:{model:I(r,{maybeQuiz:()=>n(S(E6(t)),`src/page/placement.ts#maybeQuiz`)}),commands:[Mse()]},`src/page/placement.ts#anonymous~13`)),SD(`Applied`,()=>n({model:I(r,{maybeQuiz:()=>n(x(),`src/page/placement.ts#maybeQuiz~2`)}),outMessage:I8.FinishedPlacement()},`src/page/placement.ts#anonymous~14`)),wD(()=>n({model:I(r,{maybeQuiz:()=>n(x(),`src/page/placement.ts#maybeQuiz~3`)})},`src/page/placement.ts#anonymous~15`))),`src/page/placement.ts#receiveView`)},Fse=RV({update:M6,read:e=>n(e.maybeQuiz,`src/page/placement.ts#read`),write:(e,t)=>n(I(e,{maybeQuiz:()=>n(S(t),`src/page/placement.ts#maybeQuiz~4`)}),`src/page/placement.ts#write`),toParentMessage:e=>n(F8.GotQuizMessage({message:e}),`src/page/placement.ts#toParentMessage`),foldOutMessage:T6.match({SubmittedAnswer:({response:e,note:t,maybeConfidence:r})=>n((i=>n({model:I(i,{isWorking:()=>n(!0,`src/page/placement.ts#isWorking~2`)}),commands:Hi(xr(i.maybeQuiz,a=>n(Dse({goalId:i.goalId,questionId:a.question.id,response:e,note:t,maybeConfidence:r,shownAt:i.questionShownAt}),`src/page/placement.ts#anonymous~17`)))},`src/page/placement.ts#anonymous~16`)),`src/page/placement.ts#SubmittedAnswer`),ContinuedAfterFeedback:()=>n((e=>n({model:e},`src/page/placement.ts#anonymous~18`)),`src/page/placement.ts#ContinuedAfterFeedback`)})}),Ise=(e,t)=>n(w(e.maybeDetail,{onNone:()=>n(e,`src/page/placement.ts#onNone~2`),onSome:r=>{let{index:i}=Rq(r.graph),a=V8(e,t)===`Known`?`Unknown`:`Known`,o=a===`Known`?DK(i,[t]):OK(i,[t]),s=ja(e.overrides,e=>n(!o.has(e.conceptId),`src/page/placement.ts#anonymous~19`)),c=T([...o],e=>n(yG.make({conceptId:iW.make(e),choice:a}),`src/page/placement.ts#anonymous~20`));return n(I(e,{overrides:()=>n([...s,...c],`src/page/placement.ts#overrides`)}),`src/page/placement.ts#onSome~2`)}}),`src/page/placement.ts#toggleConcept`),Lse=(e,t)=>n(F8.match(t,{SucceededFetchDetail:({detail:t})=>n({model:I(e,{maybeDetail:()=>n(S(t),`src/page/placement.ts#maybeDetail`)})},`src/page/placement.ts#SucceededFetchDetail`),FailedFetchDetail:({error:t})=>n({model:I(e,{maybeError:()=>n(S(t),`src/page/placement.ts#maybeError~2`)})},`src/page/placement.ts#FailedFetchDetail`),SucceededPlacementAction:({view:t})=>n(Pse(e,t),`src/page/placement.ts#SucceededPlacementAction`),FailedPlacementAction:({error:t})=>n({model:I(e,{isWorking:()=>n(!1,`src/page/placement.ts#isWorking~3`),maybeQuiz:xr(O6),maybeError:()=>n(S(t),`src/page/placement.ts#maybeError~3`),load:e=>n(e._tag===`Loading`?P8.Failed({error:t}):e,`src/page/placement.ts#load~2`)})},`src/page/placement.ts#FailedPlacementAction`),TickedPoll:()=>n({model:e,commands:[B8({goalId:e.goalId})]},`src/page/placement.ts#TickedPoll`),UpdatedSelfDescription:({value:t})=>n({model:I(e,{selfDescription:()=>n(t,`src/page/placement.ts#selfDescription`)})},`src/page/placement.ts#UpdatedSelfDescription`),ClickedStart:()=>n({model:I(e,{isWorking:()=>n(!0,`src/page/placement.ts#isWorking~4`)}),commands:[Ese({goalId:e.goalId,selfDescription:e.selfDescription})]},`src/page/placement.ts#ClickedStart`),ClickedStartFromScratch:()=>n({model:e,outMessage:I8.FinishedPlacement()},`src/page/placement.ts#ClickedStartFromScratch`),GotQuizMessage:({message:t})=>n(Fse(e,t),`src/page/placement.ts#GotQuizMessage`),CompletedMarkQuestionShown:({at:t})=>n({model:I(e,{questionShownAt:()=>n(t,`src/page/placement.ts#questionShownAt`)})},`src/page/placement.ts#CompletedMarkQuestionShown`),ClickedSkip:()=>n({model:I(e,{isWorking:()=>n(!0,`src/page/placement.ts#isWorking~5`)}),commands:[Ose({goalId:e.goalId})]},`src/page/placement.ts#ClickedSkip`),ClickedFinishEarly:()=>n({model:I(e,{isWorking:()=>n(!0,`src/page/placement.ts#isWorking~6`)}),commands:[kse({goalId:e.goalId})]},`src/page/placement.ts#ClickedFinishEarly`),ClickedToggleConcept:({conceptId:t})=>n({model:Ise(e,t)},`src/page/placement.ts#ClickedToggleConcept`),ClickedToggleReview:()=>n({model:I(e,{isReviewOpen:e=>n(!e,`src/page/placement.ts#isReviewOpen`)})},`src/page/placement.ts#ClickedToggleReview`),ClickedConfirm:()=>n({model:I(e,{isWorking:()=>n(!0,`src/page/placement.ts#isWorking~7`)}),commands:[Ase({goalId:e.goalId,overrides:e.overrides})]},`src/page/placement.ts#ClickedConfirm`),ClickedRestart:()=>n({model:I(e,{isWorking:()=>n(!0,`src/page/placement.ts#isWorking~8`),overrides:()=>n([],`src/page/placement.ts#overrides~2`)}),commands:[jse({goalId:e.goalId})]},`src/page/placement.ts#ClickedRestart`)}),`src/page/placement.ts#update`),Rse=uR(N6)({read:e=>n(e.maybeQuiz,`src/page/placement.ts#read~2`),toParentMessage:e=>n(F8.GotQuizMessage({message:e}),`src/page/placement.ts#toParentMessage~2`)}),zse=aR(rR()(e=>n({pollWhilePreparing:e({isPreparing:RS},{modelToDependencies:e=>n({isPreparing:e.load._tag===`Ready`&&e.load.view._tag===`Preparing`},`src/page/placement.ts#modelToDependencies`),dependenciesToStream:({isPreparing:e})=>n(e?hE(co(3)).pipe(LE(1),kE(()=>n(F8.TickedPoll(),`src/page/placement.ts#anonymous~22`))):yE,`src/page/placement.ts#dependenciesToStream`)})},`src/page/placement.ts#anonymous~21`)),{placementQuizKeyboard:Rse.keyboard}),Bse=e=>n(e.load._tag===`Ready`&&e.load.view._tag===`Summary`?e.load.view.beliefs:[],`src/page/placement.ts#beliefsOf`),V8=(e,t)=>n(w(iee(e.overrides,e=>n(e.conceptId===t,`src/page/placement.ts#anonymous~23`)),{onSome:e=>n(e.choice===`Known`?`Known`:`ToLearn`,`src/page/placement.ts#onSome~3`),onNone:()=>n(w(_a(Bse(e),e=>n(e.conceptId===t,`src/page/placement.ts#anonymous~24`)),{onNone:()=>n(`ToLearn`,`src/page/placement.ts#onNone~4`),onSome:e=>n(e.status,`src/page/placement.ts#onSome~4`)}),`src/page/placement.ts#onNone~3`)}),`src/page/placement.ts#effectiveStatus`),Vse=(e,t)=>n(t.div([t.Class(`flex flex-col gap-6`)],[t.div([t.Class(`reveal flex flex-col gap-2 text-center`)],[t.h1([t.Class(`text-3xl font-semibold tracking-tight`)],[`Where should you start?`]),t.p([t.Class(`mx-auto max-w-xl text-muted-foreground`)],[`A short adaptive quiz finds what you already know, so your path skips it. It jumps up after a right answer and narrows in after a miss, like a binary search over the map.`])]),t.div([t.Class(_q(`reveal stagger-1 flex flex-col gap-4 p-6`))],[t.div([t.Class(`flex items-start gap-3`)],[t.span([t.Class(`flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/12 text-primary`)],[L(`target`,`size-5`,t)]),t.div([],[t.p([t.Class(`font-semibold`)],[`Find my starting point`]),t.p([t.Class(`text-sm text-muted-foreground`)],[`Usually 6–10 questions, 2–3 minutes. “I don’t know” is always fine.`])])]),t.textarea([t.Value(e.selfDescription),t.Rows(2),t.Placeholder(`Optional: tell me what you already know (e.g. “did algebra in school, rusty on equations”)`),t.OnInput(e=>n(F8.UpdatedSelfDescription({value:e}),`src/page/placement.ts#anonymous~25`)),t.Class(vq(`resize-none text-sm`))]),t.div([t.Class(`flex justify-end`)],[t.button([t.Type(`button`),t.Disabled(e.isWorking),t.OnClick(F8.ClickedStart()),t.Class(R(`Primary`,`Large`))],[e.isWorking?L(`refresh`,`spinner`,t):t.empty,`Start the quiz`,L(`arrowRight`,``,t)])])]),t.button([t.Type(`button`),t.OnClick(F8.ClickedStartFromScratch()),t.Class(`reveal stagger-2 press mx-auto text-sm text-muted-foreground underline-offset-4 hover:text-foreground hover:underline`)],[`Skip it and start from scratch`])]),`src/page/placement.ts#choiceView`),Hse=(e,t,r)=>n(r.div([r.Class(_q(`flex flex-col items-center gap-4 p-10 text-center`))],[r.p([r.Class(`shimmer-text text-lg font-medium`)],[`Writing your diagnostic questions…`]),r.div([r.Class(`h-1.5 w-64 overflow-hidden rounded-full bg-muted`)],[r.div([r.Class(`h-full rounded-full bg-primary transition-[width] duration-700`),r.Style({width:`${t===0?0:Math.round(e/t*100)}%`})])]),r.p([r.Class(`text-sm text-muted-foreground`)],[`${e} of ${t} concepts ready. One question per concept, each with misconception-based options.`])]),`src/page/placement.ts#preparingView`),Use=(e,t,r)=>{let i=t.number-1,a=i+t.questionsLeft,o=a===0?0:Math.round(i/a*100);return n(r.div([r.Class(`flex flex-col gap-4`)],[r.div([r.Class(`flex flex-col gap-2`)],[r.div([r.Class(`flex items-center justify-between text-sm`)],[r.span([r.Class(`font-medium`)],[`${t.conceptTitle} · Question ${t.number}`]),r.span([r.Class(`text-muted-foreground`)],[`about ${t.questionsLeft} left`])]),r.div([r.Class(`h-1 overflow-hidden rounded-full bg-muted`)],[r.div([r.Class(`h-full rounded-full bg-primary transition-[width] duration-500`),r.Style({width:`${o}%`})])]),t.isWarmup?r.p([r.Class(`text-sm text-muted-foreground`)],[`A warm-up to start. There are no timers, and answers aren’t revealed until the end.`]):r.empty]),w(e.maybeQuiz,{onNone:()=>n(r.empty,`src/page/placement.ts#onNone~5`),onSome:e=>n(r.submodel({slotId:`placement-${e.question.id}`,model:e,view:F6(`Next`),toParentMessage:e=>n(F8.GotQuizMessage({message:e}),`src/page/placement.ts#toParentMessage~3`)}),`src/page/placement.ts#onSome~5`)}),r.div([r.Class(`flex items-center justify-between`)],[r.button([r.Type(`button`),r.Disabled(e.isWorking),r.OnClick(F8.ClickedSkip()),r.Class(R(`Ghost`,`Small`,`text-muted-foreground`))],[`Skip this one`]),t.canFinishEarly?r.button([r.Type(`button`),r.Disabled(e.isWorking),r.OnClick(F8.ClickedFinishEarly()),r.Class(R(`Outline`,`Small`))],[`Finish now`]):r.empty])]),`src/page/placement.ts#askingView`)},Wse={Known:{title:`You already know`,hint:`Skipped. Click one if that’s wrong.`,chip:`border-success/40 bg-success/8 hover:border-success`,dot:`bg-success`},QuickCheck:{title:`Quick check first`,hint:`The lesson opens with a 1-minute pretest; pass it and you skip ahead.`,chip:`border-amber-500/40 bg-amber-500/8 hover:border-amber-500`,dot:`bg-amber-500`},ToLearn:{title:`To learn`,hint:`Full lessons. Click one you already know.`,chip:`border-border bg-card hover:border-primary/50`,dot:`bg-muted-foreground/50`}},Gse=(e,t,r)=>{let i=yr(e.maybeDetail),a=e=>n(i?.graph.concepts.find(t=>n(t.id===e,`src/page/placement.ts#anonymous~26`))?.title??e,`src/page/placement.ts#titleOf`),o=e=>n(i?.graph.concepts.find(t=>n(t.id===e,`src/page/placement.ts#anonymous~27`))?.depth??0,`src/page/placement.ts#depthOf`),s=[...t.beliefs].sort((e,t)=>n(o(e.conceptId)-o(t.conceptId),`src/page/placement.ts#anonymous~28`)),c=t=>n(ja(s,r=>n(V8(e,r.conceptId)===t,`src/page/placement.ts#anonymous~29`)),`src/page/placement.ts#byStatus`),l=c(`Known`),u=c(`QuickCheck`),d=c(`ToLearn`);return n(r.div([r.Class(`flex flex-col gap-6`)],[r.div([r.Class(`reveal flex flex-col gap-2`)],[r.h1([r.Class(`text-3xl font-semibold tracking-tight`)],[`Here’s where you stand`]),r.p([r.Class(`text-muted-foreground`)],[`After ${t.questionsAsked} questions: you can skip ${l.length} of ${s.length} concepts, ${u.length} start with a quick check, and your path has ${d.length+u.length} lessons. Adjust anything that looks wrong, then confirm.`])]),r.div([r.Class(`grid gap-4 lg:grid-cols-3`)],T([`Known`,`QuickCheck`,`ToLearn`],e=>{let t=Wse[e],i=c(e);return n(r.keyed(`section`)(e,[r.Class(_q(`reveal flex flex-col gap-3 p-4`))],[r.div([r.Class(`flex items-center justify-between`)],[r.h2([r.Class(`flex items-center gap-2 font-semibold`)],[r.span([r.Class(CK(`size-2.5 rounded-full`,t.dot))]),t.title]),r.span([r.Class(gq(`Neutral`))],[`${i.length}`])]),r.p([r.Class(`text-xs text-muted-foreground`)],[t.hint]),r.div([r.Class(`flex max-h-80 flex-wrap content-start gap-1.5 overflow-y-auto pr-1`)],T(i,e=>n(r.keyed(`button`)(e.conceptId,[r.Type(`button`),r.Title(`P(known) ≈ ${Math.round(e.pKnown*100)}%${e.wasAsked?` · you answered this one`:``}`),r.OnClick(F8.ClickedToggleConcept({conceptId:e.conceptId})),r.Class(CK(`press rounded-md border px-2 py-1 text-left text-xs transition-colors`,t.chip))],[e.wasAsked?`● `:``,a(e.conceptId)]),`src/page/placement.ts#anonymous~31`)))]),`src/page/placement.ts#anonymous~30`)})),r.div([r.Class(_q(`p-4`))],[r.button([r.Type(`button`),r.OnClick(F8.ClickedToggleReview()),r.Class(`flex w-full items-center justify-between text-sm font-medium`)],[`Review your ${t.answers.length} answers`,L(e.isReviewOpen?`minus`:`plus`,`size-4`,r)]),e.isReviewOpen?r.ol([r.Class(`mt-4 flex flex-col gap-4`)],T(t.answers,(e,t)=>n(r.keyed(`li`)(`${t}`,[r.Class(`flex flex-col gap-1.5 border-t pt-4 text-sm`)],[r.div([r.Class(`flex items-center gap-2`)],[r.span([r.Class(gq(e.verdict===`Correct`?`Success`:e.verdict===`DontKnow`||e.verdict===`Skipped`?`Neutral`:`Destructive`))],[e.verdict===`DontKnow`?`Didn’t know`:e.verdict]),r.span([r.Class(`text-muted-foreground`)],[a(e.conceptId)])]),b6(e.prompt,`prose-sm`,r),b6(`**Answer:** ${e.correctAnswer}`,`prose-sm`,r),b6(e.explanation,`prose-sm text-muted-foreground`,r)]),`src/page/placement.ts#anonymous~32`))):r.empty]),r.div([r.Class(`flex items-center justify-between gap-3`)],[r.button([r.Type(`button`),r.Disabled(e.isWorking),r.OnClick(F8.ClickedRestart()),r.Class(R(`Ghost`,`Medium`,`text-muted-foreground`))],[L(`refresh`,``,r),`Retake`]),r.button([r.Type(`button`),r.Disabled(e.isWorking),r.OnClick(F8.ClickedConfirm()),r.Class(R(`Primary`,`Large`))],[e.isWorking?L(`refresh`,`spinner`,r):L(`check`,``,r),`Confirm and build my path`])])]),`src/page/placement.ts#summaryView`)},Kse=hM((e,t)=>n(t.div([t.Class(`mx-auto flex w-full max-w-4xl flex-col gap-5 px-5 pt-6 pb-24`)],[t.a([t.Href(aq({goalId:e.goalId})),t.Class(`inline-flex items-center gap-1.5 self-start text-sm text-muted-foreground hover:text-foreground`)],[L(`arrowLeft`,`size-4`,t),w(e.maybeDetail,{onNone:()=>n(`Map`,`src/page/placement.ts#onNone~6`),onSome:e=>n(e.goal.title,`src/page/placement.ts#onSome~6`)})]),w(e.maybeError,{onNone:()=>n(t.empty,`src/page/placement.ts#onNone~7`),onSome:e=>n(t.p([t.Role(`alert`),t.Class(`text-sm text-destructive`)],[e]),`src/page/placement.ts#onSome~7`)}),P8.match(e.load,{Loading:()=>n(t.div([t.Class(`h-64 animate-pulse rounded-xl bg-muted/60`)]),`src/page/placement.ts#Loading`),Failed:({error:e})=>n(t.p([t.Class(`text-sm text-destructive`)],[e]),`src/page/placement.ts#Failed`),Ready:({view:r})=>n(gD(r).pipe(vD(),SD(`NotStarted`,()=>n(t.div([t.Class(`mx-auto w-full max-w-2xl`)],[Vse(e,t)]),`src/page/placement.ts#anonymous~34`)),SD(`Preparing`,({ready:e,total:r})=>n(Hse(e,r,t),`src/page/placement.ts#anonymous~35`)),SD(`Asking`,r=>n(t.div([t.Class(`mx-auto w-full max-w-2xl`)],[Use(e,r,t)]),`src/page/placement.ts#anonymous~36`)),SD(`Summary`,r=>n(Gse(e,r,t),`src/page/placement.ts#anonymous~37`)),SD(`Applied`,()=>n(t.p([t.Class(`shimmer-text`)],[`Building your path…`]),`src/page/placement.ts#anonymous~38`)),TD),`src/page/placement.ts#Ready`)})]),`src/page/placement.ts#anonymous~33`)),H8=rO({Loading:{},Failed:{error:A},Ready:{report:kG}}),qse=M({load:H8}),U8=nO({SucceededFetchReport:{report:kG},FailedFetchReport:{error:A},ClickedRetry:{}}),W8=F(`FetchReport`,{messages:[U8.SucceededFetchReport,U8.FailedFetchReport],execute:O(function*(){let e=yield*(yield*yK).progress.report();return n(U8.SucceededFetchReport({report:e}),`src/page/progress.ts#anonymous`)}).pipe(Wp(e=>n(E(U8.FailedFetchReport({error:xK(e)})),`src/page/progress.ts#anonymous~2`)))}),Jse=()=>n({model:{load:H8.Loading()},commands:[W8()]},`src/page/progress.ts#init`),Yse=(e,t)=>n(U8.match(t,{SucceededFetchReport:({report:t})=>n({model:I(e,{load:()=>n(H8.Ready({report:t}),`src/page/progress.ts#load`)})},`src/page/progress.ts#SucceededFetchReport`),FailedFetchReport:({error:t})=>n({model:I(e,{load:()=>n(H8.Failed({error:t}),`src/page/progress.ts#load~2`)})},`src/page/progress.ts#FailedFetchReport`),ClickedRetry:()=>n({model:I(e,{load:()=>n(H8.Loading(),`src/page/progress.ts#load~3`)}),commands:[W8()]},`src/page/progress.ts#ClickedRetry`)}),`src/page/progress.ts#update`),G8=10,Xse=5,K8=[{part:`durable`,label:`Durable`,swatch:`bg-[oklch(0.52_0.16_40)] dark:bg-[oklch(0.82_0.14_60)]`},{part:`mastered`,label:`Mastered`,swatch:`bg-primary`},{part:`learning`,label:`Being learned`,swatch:`bg-[oklch(0.78_0.12_55)] dark:bg-[oklch(0.55_0.13_45)]`},{part:`knownBefore`,label:`Known before`,swatch:`bg-[oklch(0.72_0.015_70)] dark:bg-[oklch(0.5_0.012_70)]`},{part:`notYet`,label:`Not yet`,swatch:`bg-[oklch(0.93_0.006_75)] dark:bg-[oklch(0.28_0.008_60)]`}],q8=[`bg-[oklch(0.93_0.006_75)] dark:bg-[oklch(0.28_0.008_60)]`,`bg-[oklch(0.85_0.09_60)] dark:bg-[oklch(0.42_0.09_45)]`,`bg-[oklch(0.76_0.13_52)] dark:bg-[oklch(0.53_0.12_45)]`,`bg-[oklch(0.65_0.18_43)] dark:bg-[oklch(0.65_0.16_47)]`,`bg-[oklch(0.52_0.16_38)] dark:bg-[oklch(0.8_0.15_58)]`],Zse={Sure:`Sure`,Unsure:`Unsure`,Guess:`Guess`},J8=e=>n(`${Math.round(e*100)}%`,`src/page/progress.ts#percent`),Y8=(e,t)=>n(t===0?0:e/t,`src/page/progress.ts#ratio`),X8=(e,t,r=`${t}s`)=>n(`${e} ${e===1?t:r}`,`src/page/progress.ts#plural`),Qse=e=>n(new Date(`${e}T00:00:00Z`),`src/page/progress.ts#calendarDate`),Z8=(e,t)=>n(Qse(e).toLocaleDateString(`en-US`,{...t,timeZone:`UTC`}),`src/page/progress.ts#formatDate`),Q8=e=>n(Z8(e,{weekday:`short`,month:`short`,day:`numeric`}),`src/page/progress.ts#longDate`),$8=(e,t,r,i,a,o)=>n(a.section([a.AriaLabelledBy(`${e}-title`),a.Class(_q(CK(`flex flex-col gap-6 p-5 sm:p-6`,o)))],[a.div([a.Class(`flex flex-col gap-1`)],[a.h2([a.Id(`${e}-title`),a.Class(`text-base font-semibold tracking-tight`)],[t]),a.p([a.Class(`text-sm text-muted-foreground`)],[r])]),...i]),`src/page/progress.ts#sectionView`),e5=(e,t,r,i)=>n(i.div([i.Class(`flex flex-col gap-0.5`)],[i.dt([i.Class(`text-xs text-muted-foreground`)],[e]),i.dd([i.Class(`text-2xl font-semibold tracking-tight`)],[t]),w(r,{onNone:()=>n(i.empty,`src/page/progress.ts#onNone`),onSome:e=>n(i.dd([i.Class(`text-xs text-muted-foreground`)],[e]),`src/page/progress.ts#onSome`)})]),`src/page/progress.ts#statView`),t5=(e,t)=>n(t.p([t.Class(`rounded-lg border border-dashed px-4 py-6 text-center text-sm text-muted-foreground`)],[e]),`src/page/progress.ts#emptyNote`),$se=e=>n(e.ul([e.AriaLabel(`Legend`),e.Class(`flex flex-wrap items-center gap-x-4 gap-y-1.5 text-xs text-muted-foreground`)],T(K8,({label:t,swatch:r})=>n(e.li([e.Class(`flex items-center gap-1.5`)],[e.span([e.Class(CK(`size-2.5 rounded-[3px]`,r))]),t]),`src/page/progress.ts#anonymous~3`))),`src/page/progress.ts#legendView`),ece=e=>n(T(K8,({part:t,label:r})=>n(`${e[t]} ${r.toLowerCase()}`,`src/page/progress.ts#anonymous~4`)).join(`, `),`src/page/progress.ts#breakdownText`),tce=(e,t,r,i)=>n(i.div([i.Role(`img`),i.AriaLabel(`${r}: ${ece(e)}`),i.Class(`flex h-2.5 w-full gap-[2px]`)],T(ja(K8,({part:t})=>n(e[t]>0,`src/page/progress.ts#anonymous~5`)),({part:r,label:a,swatch:o})=>n(i.div([i.Title(`${a}: ${e[r]} of ${X8(t,`concept`)}`),i.Class(CK(`h-full min-w-1 rounded-[3px]`,o)),i.Style({flex:`${e[r]} 1 0%`})]),`src/page/progress.ts#anonymous~6`))),`src/page/progress.ts#stackedBar`),nce=(e,t)=>{let r=e.breakdown.durable+e.breakdown.mastered;return n(t.keyed(`li`)(e.goalId,[t.Class(`flex flex-col gap-2`)],[t.div([t.Class(`flex flex-col gap-0.5 text-sm sm:flex-row sm:items-baseline sm:justify-between sm:gap-4`)],[t.a([t.Href(aq({goalId:e.goalId})),t.Class(`group inline-flex min-w-0 items-center gap-1 font-medium hover:text-primary`)],[t.span([t.Class(`truncate`)],[e.title]),L(`arrowRight`,`size-3.5 shrink-0 opacity-0 transition-opacity group-hover:opacity-100`,t)]),t.span([t.Class(`text-xs text-muted-foreground tabular-nums sm:shrink-0`)],[`${r} of ${X8(e.conceptCount,`concept`)} mastered`,e.breakdown.learning>0?` · ${e.breakdown.learning} being learned`:``])]),tce(e.breakdown,e.conceptCount,e.title,t)]),`src/page/progress.ts#goalRow`)},rce=e=>{let t=e.durable+e.mastered;return t===0&&e.learning===0?n(`Nothing studied here yet. Concepts count as mastered once you recall them on two later days after their lesson.`,`src/page/progress.ts#headlineSentence`):n(t===0?`Nothing mastered yet: a concept counts once you recall it on two later days after its lesson. ${X8(e.learning,`concept is`,`concepts are`)} on the way.`:`Mastered means recalled on two later days after the lesson. ${e.durable===0?`None is durable yet: that takes a memory the model expects to hold for a month without review.`:`${e.durable} ${e.durable===1?`is`:`are`} durable: the memory model expects ${e.durable===1?`it`:`them`} to hold for a month without review.`}`,`src/page/progress.ts#headlineSentence`)},ice=(e,t,r)=>n($8(`knowledge`,`Durable knowledge`,`What you can still recall days and weeks later, not how a single session went.`,[r.div([r.Class(`flex flex-col gap-6 lg:flex-row lg:items-end`)],[r.div([r.Class(`flex flex-1 items-end gap-4`)],[r.p([r.Class(`text-6xl leading-none font-semibold tracking-tight`)],[`${e.durable+e.mastered}`]),r.p([r.Class(`max-w-sm pb-1 text-sm text-muted-foreground`)],[r.span([r.Class(`block font-medium text-foreground`)],[e.durable+e.mastered===1?`concept mastered`:`concepts mastered`]),rce(e)])]),r.dl([r.Class(`grid grid-cols-3 gap-6 lg:gap-8`)],[e5(`Durable`,`${e.durable}`,x(),r),e5(`Being learned`,`${e.learning}`,x(),r),e5(`Known before`,`${e.knownBefore}`,x(),r)])]),Ui(t,{onEmpty:()=>n(r.p([r.Class(`text-sm text-muted-foreground`)],[`No mapped subjects yet. `,r.a([r.Href(iq()),r.Class(`font-medium text-primary`)],[`Describe what you want to learn`]),` and the map shows up here.`]),`src/page/progress.ts#onEmpty`),onNonEmpty:e=>n(r.div([r.Class(`flex flex-col gap-4 border-t pt-5`)],[$se(r),r.ul([r.AriaLabel(`By subject`),r.Class(`flex flex-col gap-5`)],T(e,e=>n(nce(e,r),`src/page/progress.ts#anonymous~7`)))]),`src/page/progress.ts#onNonEmpty`)})],r),`src/page/progress.ts#knowledgeView`),n5=(e,t)=>n(mr(ea(e.projection,t),()=>n(0,`src/page/progress.ts#anonymous~8`)),`src/page/progress.ts#projectionAt`),ace=e=>n(Math.min(.8,Math.max(0,Math.floor((Math.min(e.targetRetention,...e.projection)-.05)*10)/10)),`src/page/progress.ts#projectionFloor`),r5=(e,t,r,i)=>n(i.line([i.X1(`0`),i.X2(`${t}`),i.Y1(`${e}`),i.Y2(`${e}`),i.Attribute(`vector-effect`,`non-scaling-stroke`),i.StrokeWidth(`1`),i.Class(r)]),`src/page/progress.ts#hairline`),i5=(e,t,r)=>n(r.span([r.Class(`absolute left-full ml-2 -translate-y-1/2 text-[11px] whitespace-nowrap text-muted-foreground tabular-nums`),r.Style({top:`${e}%`})],[t]),`src/page/progress.ts#axisLabel`),oce=(e,t)=>{let r=Math.max(1,e.projection.length-1),i=ace(e),a=e=>n((1-e)/(1-i)*100,`src/page/progress.ts#toY`),o=T(e.projection,(e,t)=>n(`${t},${a(e)}`,`src/page/progress.ts#anonymous~9`)),s=ja([0,7,r],t=>n(t<e.projection.length,`src/page/progress.ts#anonymous~10`)),c=a(e.targetRetention);return n(t.figure([t.Class(`flex flex-col gap-2`)],[t.div([t.AriaHidden(!0),t.Class(`relative mr-20 h-36`)],[t.svg([t.ViewBox(`0 0 ${r} 100`),t.PreserveAspectRatio(`none`),t.Class(`absolute inset-0 size-full overflow-visible`)],[r5(0,r,`stroke-border`,t),r5(100,r,`stroke-border`,t),r5(c,r,`stroke-muted-foreground/60`,t),t.polyline([t.Points(o.join(` `)),t.Fill(`none`),t.StrokeWidth(`2`),t.StrokeLinejoin(`round`),t.StrokeLinecap(`round`),t.Attribute(`vector-effect`,`non-scaling-stroke`),t.Class(`stroke-primary`)])]),i5(0,`100%`,t),i5(c,`${J8(e.targetRetention)} target`,t),i5(100,J8(i),t),...T(s,i=>n(t.span([t.Class(`absolute size-2.5 -translate-1/2 rounded-full bg-primary ring-2 ring-card`),t.Style({left:`${i/r*100}%`,top:`${a(n5(e,i))}%`})]),`src/page/progress.ts#anonymous~11`))]),t.div([t.AriaHidden(!0),t.Class(`relative mr-20 h-4 text-[11px] text-muted-foreground tabular-nums`)],T([{day:0,label:`Today`},{day:7,label:`1 week`},{day:14,label:`2 weeks`},{day:r,label:`${r} days`}],({day:e,label:i})=>n(t.span([t.Class(CK(`absolute whitespace-nowrap`,e===0?``:e===r?`-translate-x-full`:`-translate-x-1/2`)),t.Style({left:`${e/r*100}%`})],[i]),`src/page/progress.ts#anonymous~12`))),t.figcaption([t.Class(`sr-only`)],[`Average predicted recall if you stop reviewing: ${J8(n5(e,0))} today, ${J8(n5(e,7))} in a week, ${J8(n5(e,14))} in two weeks, ${J8(n5(e,r))} in ${r} days. Target ${J8(e.targetRetention)}.`])]),`src/page/progress.ts#projectionChart`)},sce=e=>{let{reviewed:t,remembered:r,windowDays:i}=e.retention,a=Y8(r,t),o=J8(e.targetRetention),s=`You remembered ${r} of ${X8(t,`scheduled review`)} in the last ${i} days, counting your first try each day.`;return t<G8?n(`${s} That is too few to compare with the ${o} target yet.`,`src/page/progress.ts#retentionSentence`):a>=e.targetRetention+.05?n(`${s} That is above the ${o} target: what you review is sticking, so some reviews come a little earlier than they need to.`,`src/page/progress.ts#retentionSentence`):a>=e.targetRetention-.05?n(`${s} That is on the ${o} target: reviews arrive about when memories start to fade, which is when they strengthen them most.`,`src/page/progress.ts#retentionSentence`):n(`${s} That is below the ${o} target: more slips between reviews than the schedule assumes. Reviewing on the day things are due helps most.`,`src/page/progress.ts#retentionSentence`)},cce=(e,t)=>{let{reviewed:r,remembered:i}=e.retention,a=r>=G8,o=Y8(i,r);return n(t.div([t.Class(`flex flex-col gap-4`)],[t.h3([t.Class(`text-sm font-medium`)],[`Measured retention`]),r===0?t5(`No scheduled reviews in the last ${e.retention.windowDays} days yet. Once concepts come due, this shows how often you actually remember them.`,t):t.div([t.Class(`flex flex-col gap-4`)],[t.p([t.Class(`text-4xl font-semibold tracking-tight`)],[a?J8(o):`${i} of ${r}`,t.span([t.Class(`ml-2 text-sm font-normal tracking-normal text-muted-foreground`)],[a?`remembered`:`remembered so far`])]),a?t.div([t.Role(`img`),t.AriaLabel(`${J8(o)} remembered against a ${J8(e.targetRetention)} target`),t.Class(`relative pb-5`)],[t.div([t.Class(`h-2 overflow-hidden rounded-full bg-muted`)],[t.div([t.Class(`h-full rounded-full bg-primary`),t.Style({width:J8(o)})])]),t.span([t.Class(`absolute -top-1 h-4 w-px -translate-x-1/2 bg-foreground/70`),t.Style({left:J8(e.targetRetention)})]),t.span([t.Class(`absolute top-4 -translate-x-1/2 text-[11px] whitespace-nowrap text-muted-foreground`),t.Style({left:J8(e.targetRetention)})],[`${J8(e.targetRetention)} target`])]):t.empty,t.p([t.Class(`text-sm text-muted-foreground`)],[sce(e)])])]),`src/page/progress.ts#retentionView`)},lce=(e,t)=>n($8(`memory`,`Memory health`,`How likely you are to recall what you studied, as the memory model predicts it and as your reviews measure it.`,[e.cardCount===0?t5(`Nothing to remember yet. A concept joins your memory model when you finish its lesson.`,t):t.div([t.Class(`grid gap-8 lg:grid-cols-[3fr_2fr] lg:gap-10`)],[t.div([t.Class(`flex flex-col gap-4`)],[t.h3([t.Class(`text-sm font-medium`)],[`Predicted recall`]),t.dl([t.Class(`grid grid-cols-3 gap-4`)],[e5(`Right now`,J8(n5(e,0)),x(),t),e5(`In 7 days`,J8(n5(e,7)),S(`without reviews`),t),e5(`In 30 days`,J8(n5(e,30)),S(`without reviews`),t)]),oce(e,t),t.p([t.Class(`text-xs text-muted-foreground`)],[`Average over the ${X8(e.cardCount,`concept`)} in your reviews. Each review lifts a concept back up, so it is scheduled for about when its recall would fall to the target.`])]),t.div([t.Class(`border-t pt-6 lg:border-t-0 lg:border-l lg:pt-0 lg:pl-10`)],[cce(e,t)])])],t),`src/page/progress.ts#memoryView`),a5=(e,t)=>n(_a(e.readings,e=>n(e.confidence===t,`src/page/progress.ts#anonymous~13`)),`src/page/progress.ts#readingFor`),uce=e=>n(w(a5(e,`Sure`),{onNone:()=>n(`Not enough confident answers yet. Once you have marked ${e.minimumAnswers} answers as sure, this shows how often they were right.`,`src/page/progress.ts#onNone~2`),onSome:e=>n(`${e.window===`LastWeek`?`In the last 7 days, when`:`When`} you were sure, you were right ${J8(Y8(e.correct,e.answered))} of the time (${X8(e.answered,`answer`)}).`,`src/page/progress.ts#onSome~2`)}),`src/page/progress.ts#leadSentence`),o5=(e,t,r,i)=>n(i.div([i.Class(CK(`flex gap-3 rounded-lg p-4 text-sm`,e===`Warning`?`bg-amber-500/8 dark:bg-amber-400/8`:`bg-success/8`))],[L(e===`Warning`?`alert`:`check`,CK(`mt-0.5 size-4 shrink-0`,e===`Warning`?`text-amber-600 dark:text-amber-400`:`text-success`),i),i.div([i.Class(`flex flex-col gap-1`)],[i.p([i.Class(`font-medium`)],[t]),i.p([i.Class(`text-muted-foreground`)],[r])])]),`src/page/progress.ts#calloutView`),dce=(e,t)=>{let r=e.isOverconfident?[o5(`Warning`,`Sure answers miss more often than they should`,`Feeling sure is sometimes familiarity rather than memory. Before choosing Sure, check that you could say why the answer is right. When a sure answer turns out wrong, read the explanation closely: confident mistakes are the ones that stick best once corrected.`,t)]:[],i=e.isUnderconfident?w(a5(e,`Guess`),{onNone:()=>n([],`src/page/progress.ts#onNone~3`),onSome:e=>n([o5(`Warning`,`You know more than you think`,`Your guesses were right ${J8(Y8(e.correct,e.answered))} of the time (${X8(e.answered,`answer`)}). When an answer feels familiar and you can say why, Unsure or Sure is the honest choice.`,t)],`src/page/progress.ts#onSome~3`)}):[],a=!e.isOverconfident&&!e.isUnderconfident&&C(a5(e,`Sure`))?[o5(`Success`,`Your confidence is a good guide`,`How sure you feel matches how often you are right, so your own sense of what you know is worth trusting when you choose what to revisit.`,t)]:[];return n([...r,...i,...a],`src/page/progress.ts#calibrationNotes`)},s5=(e,t,r)=>n(r.td([r.Class(`py-3 pr-2`)],[e.answered<t?r.span([r.Class(`text-xs text-muted-foreground`)],[e.answered===0?`No answers`:`Too few (${e.answered})`]):r.div([r.Class(`flex items-center gap-3`)],[r.div([r.AriaHidden(!0),r.Class(`hidden h-1.5 w-20 overflow-hidden rounded-full bg-muted sm:block`)],[r.div([r.Class(`h-full rounded-full bg-primary`),r.Style({width:J8(Y8(e.correct,e.answered))})])]),r.span([r.Class(`font-medium tabular-nums`)],[J8(Y8(e.correct,e.answered))]),r.span([r.Class(`text-xs text-muted-foreground tabular-nums`)],[`of ${e.answered}`])])]),`src/page/progress.ts#bucketCell`),fce=(e,t)=>n(t.table([t.Class(`w-full text-left text-sm`)],[t.caption([t.Class(`sr-only`)],[`Share of answers that were right, by how sure you said you were`]),t.thead([],[t.tr([t.Class(`border-b text-xs text-muted-foreground`)],[t.th([t.Scope(`col`),t.Class(`pb-2 font-normal`)],[`You said`]),t.th([t.Scope(`col`),t.Class(`pb-2 font-normal`)],[`Last 7 days`]),t.th([t.Scope(`col`),t.Class(`pb-2 font-normal`)],[`All time`])])]),t.tbody([t.Class(`divide-y`)],T(e.allTime,r=>n(t.tr([],[t.th([t.Scope(`row`),t.Class(`py-3 pr-4 font-medium`)],[Zse[r.confidence]]),s5(mr(_a(e.lastWeek,e=>n(e.confidence===r.confidence,`src/page/progress.ts#anonymous~15`)),()=>n({...r,answered:0,correct:0},`src/page/progress.ts#anonymous~16`)),e.minimumAnswers,t),s5(r,e.minimumAnswers,t)]),`src/page/progress.ts#anonymous~14`)))]),`src/page/progress.ts#calibrationTable`),pce=(e,t)=>n($8(`calibration`,`Calibration`,`How well your confidence predicts being right. Knowing when you don’t know is a skill of its own.`,[t.div([t.Class(`grid gap-8 lg:grid-cols-2 lg:gap-10`)],[t.div([t.Class(`flex flex-col gap-4`)],[t.p([t.Class(`text-lg leading-snug font-medium text-balance`)],[uce(e)]),...dce(e,t)]),t.div([t.Class(`flex flex-col gap-3`)],[fce(e,t),t.p([t.Class(`text-xs text-muted-foreground`)],[`Every answer you rated, in placement, lessons and reviews. Partly correct counts as not right. Under ${e.minimumAnswers} answers is too few to read.`])])])],t),`src/page/progress.ts#calibrationView`),mce=(e,t)=>n(e===0?0:Math.min(4,Math.max(1,Math.ceil(e/t*4))),`src/page/progress.ts#heatLevel`),c5=e=>n(e.lessons+e.reviews,`src/page/progress.ts#dayTotal`),l5=e=>n(c5(e)===0?`${Q8(e.date)}: nothing`:`${Q8(e.date)}: ${[e.lessons>0?X8(e.lessons,`lesson`):``,e.reviews>0?X8(e.reviews,`review`):``].filter(e=>n(e.length>0,`src/page/progress.ts#anonymous~17`)).join(`, `)}`,`src/page/progress.ts#dayDescription`),hce=e=>{let t=t=>n(w(Cr(ea(e,t),e=>n(na(e),`src/page/progress.ts#anonymous~18`)),{onNone:()=>n(``,`src/page/progress.ts#onNone~4`),onSome:e=>n(Z8(e.date,{month:`short`}),`src/page/progress.ts#onSome~4`)}),`src/page/progress.ts#monthOf`);return n(T(e,(e,r)=>{let i=t(r),a=r===0||i!==t(r-1),o=r===0&&t(1)!==i;return n(a&&!o?i:``,`src/page/progress.ts#anonymous~19`)}),`src/page/progress.ts#monthLabels`)},gce=(e,t)=>{let r=Math.max(1,...T(e.days,c5)),i=Ta(e.days,7),a=ia(e.days),o=ja(e.days,e=>n(c5(e)>0,`src/page/progress.ts#anonymous~20`));return n(t.figure([t.Class(`flex flex-col gap-2`)],[t.div([t.AriaHidden(!0),t.Class(`flex gap-2`)],[t.div([t.Class(`mt-6 grid grid-rows-7 gap-1 text-[10px] leading-5 text-muted-foreground`)],T([``,`Mon`,``,`Wed`,``,`Fri`,``],e=>n(t.span([t.Class(`h-5`)],[e]),`src/page/progress.ts#anonymous~21`))),t.div([t.Class(`flex flex-col gap-1`)],[t.div([t.Class(`grid auto-cols-[20px] grid-flow-col gap-1 text-[10px] leading-5 text-muted-foreground`)],T(hce(i),e=>n(t.span([t.Class(`overflow-visible whitespace-nowrap`)],[e]),`src/page/progress.ts#anonymous~22`))),t.div([t.Class(`grid auto-cols-[20px] grid-flow-col grid-rows-7 gap-1`)],T(e.days,e=>n(t.div([t.Title(l5(e)),t.Class(CK(`size-5 rounded-[4px]`,q8[mce(c5(e),r)],jr(a,t=>n(t.date===e.date,`src/page/progress.ts#anonymous~24`))&&`ring-1 ring-foreground/50 ring-offset-1 ring-offset-card`))]),`src/page/progress.ts#anonymous~23`)))])]),t.div([t.AriaHidden(!0),t.Class(`flex items-center gap-1 pl-9 text-[10px] text-muted-foreground`)],[`Less`,...T(q8,e=>n(t.span([t.Class(CK(`size-2.5 rounded-[3px]`,e))]),`src/page/progress.ts#anonymous~25`)),`More`]),t.figcaption([t.Class(`sr-only`)],[Ui(o,{onEmpty:()=>n(`No lessons or reviews in the last 12 weeks.`,`src/page/progress.ts#onEmpty~2`),onNonEmpty:e=>n(`Active on ${X8(e.length,`day`)} in the last 12 weeks: ${T(e,l5).join(`; `)}.`,`src/page/progress.ts#onNonEmpty~2`)})])]),`src/page/progress.ts#heatmapView`)},_ce=(e,t)=>n($8(`activity`,`Activity`,`Lessons finished and reviews answered per day, over the last 12 weeks.`,[gce(e,t),t.dl([t.Class(`grid grid-cols-3 gap-4 border-t pt-5`)],[e5(`Current streak`,X8(e.streakDays,`day`),S(e.streakDays===0?`starts with your next session`:`in a row`),t),e5(`Active days`,`${e.activeDays}`,S(`in 12 weeks`),t),e5(`Effortful work`,`${e.effortMinutes} min`,S(`${e.effortMinutesLastWeek} min this week`),t)]),t.p([t.Class(`text-xs text-muted-foreground`)],[`Effortful work is time spent answering from memory, with any single answer capped at 10 minutes.`])],t),`src/page/progress.ts#activityView`),vce=(e,t,r)=>n([r.span([r.Class(`sm:hidden`)],[Z8(e.date,{weekday:`narrow`})]),r.span([r.Class(`hidden sm:inline`)],[t===0?`Today`:Z8(e.date,{weekday:`short`})])],`src/page/progress.ts#forecastLabel`),yce=(e,t)=>{let r=Math.max(Xse,...T(e.days,e=>n(e.due,`src/page/progress.ts#anonymous~26`))),i=Ma(e.days,0,(e,t)=>n(e+t.due,`src/page/progress.ts#anonymous~27`)),a=w(na(e.days),{onNone:()=>n(0,`src/page/progress.ts#onNone~5`),onSome:e=>n(e.overdue,`src/page/progress.ts#onSome~5`)}),o=w(na(e.days),{onNone:()=>n(0,`src/page/progress.ts#onNone~6`),onSome:e=>n(e.due,`src/page/progress.ts#onSome~6`)});return n($8(`forecast`,`Upcoming reviews`,`Concepts coming due over the next two weeks if you keep up. Anything already due is counted today.`,[i===0&&e.later===0?t5(`Nothing scheduled yet. When you finish a lesson, its first review shows up here.`,t):t.figure([t.Class(`flex flex-col gap-4`)],[t.div([t.AriaHidden(!0),t.Class(`grid h-52 grid-cols-14 items-end gap-1`)],T(e.days,(e,i)=>n(t.div([t.Title(`${Q8(e.date)}: ${X8(e.due,`review`)}`),t.Class(`flex h-full flex-col items-center gap-1`)],[t.div([t.Class(`flex w-full flex-1 flex-col items-center justify-end gap-1`)],[e.due>0?t.span([t.Class(`text-[11px] font-medium tabular-nums`)],[`${e.due}`]):t.empty,t.div([t.Class(CK(`w-full max-w-6 rounded-t-[4px]`,e.due>0?`bg-primary`:`bg-border`)),t.Style({height:e.due>0?`${Math.max(4,e.due/r*100)}%`:`2px`})])]),t.span([t.Class(CK(`text-[10px] leading-3 whitespace-nowrap`,i===0?`font-medium text-foreground`:`text-muted-foreground`))],vce(e,i,t)),t.span([t.Class(`text-[10px] leading-3 text-muted-foreground tabular-nums`)],[Z8(e.date,{day:`numeric`})])]),`src/page/progress.ts#anonymous~28`))),t.figcaption([t.Class(`sr-only`)],[`${X8(i,`review`)} in the next 14 days, ${e.later} after that.`]),t.table([t.Class(`sr-only`)],[t.caption([],[`Reviews due per day`]),t.tbody([],T(e.days,e=>n(t.tr([],[t.th([t.Scope(`row`)],[Q8(e.date)]),t.td([],[X8(e.due,`review`)])]),`src/page/progress.ts#anonymous~29`)))])]),i===0&&e.later===0?t.empty:t.dl([t.Class(`grid grid-cols-3 gap-4 border-t pt-5`)],[e5(`Due today`,`${o}`,S(a>0?`${a} due now`:`none due yet`),t),e5(`Next 14 days`,`${i}`,S(`including today`),t),e5(`Later`,`${e.later}`,S(`after two weeks`),t)]),a>0?t.a([t.Href(lq()),t.Class(R(`Outline`,`Small`,`self-start`))],[L(`brain`,``,t),`Review the ${a} due now`]):t.empty],t),`src/page/progress.ts#forecastView`)},bce=(e,t)=>n(t.div([t.Class(`flex flex-col gap-5`)],[t.div([t.Class(`reveal`)],[ice(e.totals,e.goals,t)]),t.div([t.Class(`reveal stagger-1`)],[lce(e.memory,t)]),t.div([t.Class(`reveal stagger-2`)],[pce(e.calibration,t)]),t.div([t.Class(`reveal stagger-3 grid gap-5 lg:grid-cols-2`)],[_ce(e.activity,t),yce(e.forecast,t)])]),`src/page/progress.ts#reportView`),xce=e=>n(e.div([e.Role(`status`),e.AriaLabel(`Loading your progress`),e.Class(`flex flex-col gap-5`)],[e.div([e.Class(`h-72 animate-pulse rounded-xl bg-muted/60`)]),e.div([e.Class(`h-64 animate-pulse rounded-xl bg-muted/60`)]),e.div([e.Class(`grid gap-5 lg:grid-cols-2`)],[e.div([e.Class(`h-56 animate-pulse rounded-xl bg-muted/60`)]),e.div([e.Class(`h-56 animate-pulse rounded-xl bg-muted/60`)])])]),`src/page/progress.ts#loadingView`),Sce=(e,t)=>n(t.div([t.Role(`alert`),t.Class(_q(`flex flex-col items-start gap-3 p-6`))],[t.p([t.Class(`font-medium`)],[`Your progress didn’t load`]),t.p([t.Class(`text-sm text-muted-foreground`)],[e]),t.button([t.Type(`button`),t.OnClick(U8.ClickedRetry()),t.Class(R(`Outline`,`Small`))],[L(`refresh`,``,t),`Try again`])]),`src/page/progress.ts#failedView`),Cce=hM((e,t)=>n(t.div([t.Class(`mx-auto flex w-full max-w-5xl flex-col gap-6 px-5 pt-8 pb-24`)],[t.div([t.Class(`flex flex-col gap-1`)],[t.h1([t.Class(`text-3xl font-semibold tracking-tight`)],[`Progress`]),t.p([t.Class(`text-muted-foreground`)],[`Progress here means knowledge that lasts. Everything below comes from your own reviews and answers.`])]),H8.match(e.load,{Loading:()=>n(xce(t),`src/page/progress.ts#Loading`),Failed:({error:e})=>n(Sce(e,t),`src/page/progress.ts#Failed`),Ready:({report:e})=>n(bce(e,t),`src/page/progress.ts#Ready`)})]),`src/page/progress.ts#anonymous~30`)),u5=M({key:A,item:NW,attempt:j}),wce=M({conceptTitle:A,goalTitle:A,result:LW}),d5=rO({Loading:{},Failed:{error:A},Ready:{session:IW}}),f5=rO({Off:{},Offered:{offer:FW},Running:{answered:N(RW),budget:j},Done:{summary:zW}}),Tce=M({load:d5,queue:N(u5),maybeCurrent:CC(u5),maybeQuiz:CC(C6),questionShownAt:j,outcomes:N(wce),maybeLastResult:CC(LW),maybeError:CC(A),checkIn:f5,isLeechActionBusy:RS,checkedBasics:N(A)}),p5=nO({SucceededFetchSession:{session:IW},FailedFetchSession:{error:A},GotQuizMessage:{message:w6},CompletedMarkQuestionShown:{at:j},SucceededSubmitReview:{result:LW},FailedSubmitReview:{error:A},ClickedReload:{},ClickedJustFive:{},ClickedStartCheckIn:{},ClickedSkipCheckIn:{},SucceededFetchCheckInStep:{step:BW},FailedFetchCheckInStep:{error:A},ClickedCheckBasics:{goalId:A,conceptId:A},SucceededFetchLeechProbes:{conceptId:A,probes:N(NW)},FailedFetchLeechProbes:{error:A},ClickedFreshLesson:{goalId:A,conceptId:A},SucceededStartFreshLesson:{},FailedStartFreshLesson:{error:A}}),Ece=2,Dce=2,m5=F(`FetchSession`,{messages:[p5.SucceededFetchSession,p5.FailedFetchSession],execute:O(function*(){let e=yield*(yield*yK).reviews.session();return n(p5.SucceededFetchSession({session:e}),`src/page/review.ts#anonymous`)}).pipe(Wp(e=>n(E(p5.FailedFetchSession({error:xK(e)})),`src/page/review.ts#anonymous~2`)))}),h5=F(`MarkQuestionShown`,{messages:[p5.CompletedMarkQuestionShown],execute:Gf.pipe(Vp(e=>n(p5.CompletedMarkQuestionShown({at:e}),`src/page/review.ts#anonymous~3`)))}),Oce=F(`SubmitReview`,{args:{goalId:A,conceptId:A,questionId:A,response:EW,note:A,maybeConfidence:CC(lG),hintLevel:j,shownAt:j},messages:[p5.SucceededSubmitReview,p5.FailedSubmitReview],execute:e=>n(O(function*(){let t=yield*yK,r=yield*Gf,i=yield*t.reviews.answer({payload:{goalId:rW.make(e.goalId),conceptId:iW.make(e.conceptId),answer:{questionId:xW.make(e.questionId),response:e.response,note:e.note,maybeConfidence:e.maybeConfidence,latencyMs:Math.max(0,r-e.shownAt),hintLevel:e.hintLevel}}});return n(p5.SucceededSubmitReview({result:i}),`src/page/review.ts#anonymous~4`)}).pipe(Wp(e=>n(E(p5.FailedSubmitReview({error:xK(e)})),`src/page/review.ts#anonymous~5`))),`src/page/review.ts#execute`)}),g5=F(`FetchCheckInStep`,{args:{answered:N(RW)},messages:[p5.SucceededFetchCheckInStep,p5.FailedFetchCheckInStep],execute:({answered:e})=>n(O(function*(){let t=yield*(yield*yK).reviews.replacementNext({payload:{answered:e}});return n(p5.SucceededFetchCheckInStep({step:t}),`src/page/review.ts#anonymous~6`)}).pipe(Wp(e=>n(E(p5.FailedFetchCheckInStep({error:xK(e)})),`src/page/review.ts#anonymous~7`))),`src/page/review.ts#execute~2`)}),kce=F(`FetchLeechProbes`,{args:{goalId:A,conceptId:A},messages:[p5.SucceededFetchLeechProbes,p5.FailedFetchLeechProbes],execute:({goalId:e,conceptId:t})=>n(Sq(e,t).pipe(Vp(e=>n(p5.SucceededFetchLeechProbes({conceptId:t,probes:e}),`src/page/review.ts#anonymous~8`)),Wp(e=>n(E(p5.FailedFetchLeechProbes({error:xK(e)})),`src/page/review.ts#anonymous~9`))),`src/page/review.ts#execute~3`)}),Ace=F(`StartFreshLesson`,{args:{goalId:A,conceptId:A},messages:[p5.SucceededStartFreshLesson,p5.FailedStartFreshLesson],execute:({goalId:e,conceptId:t})=>n(Cq(e,t).pipe(Hp(p5.SucceededStartFreshLesson()),Wp(e=>n(E(p5.FailedStartFreshLesson({error:xK(e)})),`src/page/review.ts#anonymous~10`))),`src/page/review.ts#execute~4`)}),jce=()=>n({model:{load:d5.Loading(),queue:[],maybeCurrent:x(),maybeQuiz:x(),questionShownAt:0,outcomes:[],maybeLastResult:x(),maybeError:x(),checkIn:f5.Off(),isLeechActionBusy:!1,checkedBasics:[]},commands:[m5()]},`src/page/review.ts#init`),_5=e=>n(Ui(e.queue,{onEmpty:()=>n({model:I(e,{maybeCurrent:()=>n(x(),`src/page/review.ts#maybeCurrent`),maybeQuiz:()=>n(x(),`src/page/review.ts#maybeQuiz`)})},`src/page/review.ts#onEmpty`),onNonEmpty:([t,...r])=>n({model:I(e,{maybeCurrent:()=>n(S(t),`src/page/review.ts#maybeCurrent~2`),queue:()=>n(r,`src/page/review.ts#queue`),maybeQuiz:()=>n(S(E6(t.item.question,{canHint:!0})),`src/page/review.ts#maybeQuiz~2`),maybeLastResult:()=>n(x(),`src/page/review.ts#maybeLastResult`)}),commands:[h5()]},`src/page/review.ts#onNonEmpty`)}),`src/page/review.ts#enterNext`),v5=(e,t,r)=>{let i=new Set(T(e.queue,e=>n(e.item.conceptId,`src/page/review.ts#anonymous~11`)));return n(Ui(ja(t,e=>n(!i.has(e.conceptId),`src/page/review.ts#anonymous~12`)),{onEmpty:()=>n(e,`src/page/review.ts#onEmpty~2`),onNonEmpty:t=>n(I(e,{queue:e=>n([...T(t,(t,i)=>n({key:`${r}:${t.conceptId}:${e.length}:${i}`,item:t,attempt:0},`src/page/review.ts#anonymous~13`)),...e],`src/page/review.ts#queue~2`)}),`src/page/review.ts#onNonEmpty~2`)}),`src/page/review.ts#queueNext`)},Mce=(e,t)=>n(v5(v5(e,w(e.maybeCurrent,{onNone:()=>n([],`src/page/review.ts#onNone`),onSome:e=>n(wq(e.item,t.creditedConcepts),`src/page/review.ts#onSome`)}),`covered`),t.probes,`probe`),`src/page/review.ts#queueFollowUps`),Nce=(e,t)=>n(w(e.maybeCurrent,{onNone:()=>n(e,`src/page/review.ts#onNone~2`),onSome:r=>n(t.grading!==`Again`||r.attempt+1>=Ece?e:I(e,{queue:e=>n(mr(va(e,Math.min(Dce,e.length),{key:`${r.key}:again`,item:r.item,attempt:r.attempt+1}),()=>n(Ki(e,{key:`${r.key}:again`,item:r.item,attempt:r.attempt+1}),`src/page/review.ts#anonymous~14`)),`src/page/review.ts#queue~3`)}),`src/page/review.ts#onSome~2`)}),`src/page/review.ts#requeueLapse`),y5=e=>n(e.checkIn._tag===`Running`,`src/page/review.ts#isCheckingIn`),Pce=e=>n(f5.match(e.checkIn,{Off:()=>n([],`src/page/review.ts#Off`),Offered:()=>n([],`src/page/review.ts#Offered`),Running:({answered:e})=>n(e,`src/page/review.ts#Running`),Done:()=>n([],`src/page/review.ts#Done`)}),`src/page/review.ts#answeredSoFar`),Fce=e=>n(y5(e)?{model:I(e,{maybeCurrent:()=>n(x(),`src/page/review.ts#maybeCurrent~3`),maybeQuiz:()=>n(x(),`src/page/review.ts#maybeQuiz~3`),maybeLastResult:()=>n(x(),`src/page/review.ts#maybeLastResult~2`)}),commands:[g5({answered:Pce(e)})]}:_5(e),`src/page/review.ts#continueAfterFeedback`),Ice=RV({update:M6,read:e=>n(e.maybeQuiz,`src/page/review.ts#read`),write:(e,t)=>n(I(e,{maybeQuiz:()=>n(S(t),`src/page/review.ts#maybeQuiz~4`)}),`src/page/review.ts#write`),toParentMessage:e=>n(p5.GotQuizMessage({message:e}),`src/page/review.ts#toParentMessage`),foldOutMessage:T6.match({SubmittedAnswer:({response:e,note:t,maybeConfidence:r,hintLevel:i})=>n((a=>n({model:a,commands:Hi(xr(a.maybeCurrent,o=>n(Oce({goalId:o.item.goalId,conceptId:o.item.conceptId,questionId:o.item.question.id,response:e,note:t,maybeConfidence:r,hintLevel:i,shownAt:a.questionShownAt}),`src/page/review.ts#anonymous~16`)))},`src/page/review.ts#anonymous~15`)),`src/page/review.ts#SubmittedAnswer`),ContinuedAfterFeedback:()=>n(Fce,`src/page/review.ts#ContinuedAfterFeedback`)})}),Lce=(e,t)=>n(f5.match(e.checkIn,{Off:()=>n(e,`src/page/review.ts#Off~2`),Offered:()=>n(e,`src/page/review.ts#Offered~2`),Done:()=>n(e,`src/page/review.ts#Done~2`),Running:({answered:r,budget:i})=>n(w(e.maybeCurrent,{onNone:()=>n(e,`src/page/review.ts#onNone~3`),onSome:a=>n(I(e,{checkIn:()=>n(f5.Running({budget:i,answered:Ki(r,{goalId:a.item.goalId,conceptId:a.item.conceptId,verdict:t.feedback.verdict,isMultipleChoice:a.item.question.kind===`MultipleChoice`})}),`src/page/review.ts#checkIn`)}),`src/page/review.ts#onSome~3`)}),`src/page/review.ts#Running~2`)}),`src/page/review.ts#recordCheckInAnswer`),b5=(e,t)=>n(I(e,{maybeQuiz:xr(e=>n(D6(e,t.feedback),`src/page/review.ts#anonymous~17`)),maybeLastResult:()=>n(S(t),`src/page/review.ts#maybeLastResult~3`),outcomes:r=>n(w(e.maybeCurrent,{onNone:()=>n(r,`src/page/review.ts#onNone~4`),onSome:e=>n(e.attempt===0?Ki(r,{conceptTitle:e.item.conceptTitle,goalTitle:e.item.goalTitle,result:t}):r,`src/page/review.ts#onSome~4`)}),`src/page/review.ts#outcomes`)}),`src/page/review.ts#withResult`),Rce=(e,t)=>n(p5.match(t,{SucceededFetchSession:({session:t})=>{let r=I(e,{load:()=>n(d5.Ready({session:t}),`src/page/review.ts#load`),queue:()=>n(T(t.items,(e,t)=>n({key:`${t}:${e.conceptId}`,item:e,attempt:0},`src/page/review.ts#anonymous~18`)),`src/page/review.ts#queue~4`),outcomes:()=>n([],`src/page/review.ts#outcomes~2`),maybeCurrent:()=>n(x(),`src/page/review.ts#maybeCurrent~4`),maybeQuiz:()=>n(x(),`src/page/review.ts#maybeQuiz~5`),maybeLastResult:()=>n(x(),`src/page/review.ts#maybeLastResult~4`),checkIn:()=>n(w(t.maybeReplacement,{onNone:()=>n(f5.Off(),`src/page/review.ts#onNone~5`),onSome:e=>n(f5.Offered({offer:e}),`src/page/review.ts#onSome~5`)}),`src/page/review.ts#checkIn~2`)});return n(C(t.maybeReplacement)?{model:r}:_5(r),`src/page/review.ts#SucceededFetchSession`)},FailedFetchSession:({error:t})=>n({model:I(e,{load:()=>n(d5.Failed({error:t}),`src/page/review.ts#load~2`)})},`src/page/review.ts#FailedFetchSession`),GotQuizMessage:({message:t})=>n(Ice(e,t),`src/page/review.ts#GotQuizMessage`),CompletedMarkQuestionShown:({at:t})=>n({model:I(e,{questionShownAt:()=>n(t,`src/page/review.ts#questionShownAt`)})},`src/page/review.ts#CompletedMarkQuestionShown`),SucceededSubmitReview:({result:t})=>n({model:y5(e)?b5(Lce(e,t),t):Mce(Nce(b5(e,t),t),t)},`src/page/review.ts#SucceededSubmitReview`),FailedSubmitReview:({error:t})=>n({model:I(e,{maybeQuiz:xr(O6),maybeError:()=>n(S(t),`src/page/review.ts#maybeError`)})},`src/page/review.ts#FailedSubmitReview`),ClickedJustFive:()=>n({model:S5(e)?I(e,{queue:e=>n(la(e,4),`src/page/review.ts#queue~5`)}):e},`src/page/review.ts#ClickedJustFive`),ClickedReload:()=>n({model:I(e,{load:()=>n(d5.Loading(),`src/page/review.ts#load~3`),checkIn:()=>n(f5.Off(),`src/page/review.ts#checkIn~3`)}),commands:[m5()]},`src/page/review.ts#ClickedReload`),ClickedStartCheckIn:()=>n(f5.match(e.checkIn,{Off:()=>n({model:e},`src/page/review.ts#Off~3`),Running:()=>n({model:e},`src/page/review.ts#Running~3`),Done:()=>n({model:e},`src/page/review.ts#Done~3`),Offered:({offer:t})=>n({model:I(e,{checkIn:()=>n(f5.Running({answered:[],budget:t.questionBudget}),`src/page/review.ts#checkIn~4`)}),commands:[g5({answered:[]})]},`src/page/review.ts#Offered~3`)}),`src/page/review.ts#ClickedStartCheckIn`),ClickedSkipCheckIn:()=>n(_5(I(e,{checkIn:()=>n(f5.Off(),`src/page/review.ts#checkIn~5`)})),`src/page/review.ts#ClickedSkipCheckIn`),SucceededFetchCheckInStep:({step:t})=>n(w(t.maybeItem,{onNone:()=>n({model:I(e,{checkIn:()=>n(f5.Done({summary:t.summary}),`src/page/review.ts#checkIn~6`),maybeCurrent:()=>n(x(),`src/page/review.ts#maybeCurrent~5`),maybeQuiz:()=>n(x(),`src/page/review.ts#maybeQuiz~6`),maybeLastResult:()=>n(x(),`src/page/review.ts#maybeLastResult~5`)})},`src/page/review.ts#onNone~6`),onSome:r=>n({model:I(e,{maybeCurrent:()=>n(S({key:`check-in:${t.asked}:${r.conceptId}`,item:r,attempt:0}),`src/page/review.ts#maybeCurrent~6`),maybeQuiz:()=>n(S(E6(r.question)),`src/page/review.ts#maybeQuiz~7`),maybeLastResult:()=>n(x(),`src/page/review.ts#maybeLastResult~6`),checkIn:e=>n(f5.match(e,{Off:()=>n(e,`src/page/review.ts#Off~4`),Offered:()=>n(e,`src/page/review.ts#Offered~4`),Done:()=>n(e,`src/page/review.ts#Done~4`),Running:({answered:e})=>n(f5.Running({answered:e,budget:t.budget}),`src/page/review.ts#Running~4`)}),`src/page/review.ts#checkIn~7`)}),commands:[h5()]},`src/page/review.ts#onSome~6`)}),`src/page/review.ts#SucceededFetchCheckInStep`),FailedFetchCheckInStep:({error:t})=>n({model:I(e,{maybeError:()=>n(S(t),`src/page/review.ts#maybeError~2`)})},`src/page/review.ts#FailedFetchCheckInStep`),ClickedCheckBasics:({goalId:t,conceptId:r})=>n({model:I(e,{isLeechActionBusy:()=>n(!0,`src/page/review.ts#isLeechActionBusy`)}),commands:[kce({goalId:t,conceptId:r})]},`src/page/review.ts#ClickedCheckBasics`),SucceededFetchLeechProbes:({conceptId:t,probes:r})=>n({model:v5(I(e,{isLeechActionBusy:()=>n(!1,`src/page/review.ts#isLeechActionBusy~2`),checkedBasics:Ki(t)}),r,`basics`)},`src/page/review.ts#SucceededFetchLeechProbes`),FailedFetchLeechProbes:({error:t})=>n({model:I(e,{isLeechActionBusy:()=>n(!1,`src/page/review.ts#isLeechActionBusy~3`),maybeError:()=>n(S(t),`src/page/review.ts#maybeError~3`)})},`src/page/review.ts#FailedFetchLeechProbes`),ClickedFreshLesson:({goalId:t,conceptId:r})=>n({model:I(e,{isLeechActionBusy:()=>n(!0,`src/page/review.ts#isLeechActionBusy~4`)}),commands:[Ace({goalId:t,conceptId:r})]},`src/page/review.ts#ClickedFreshLesson`),SucceededStartFreshLesson:()=>n({model:I(e,{isLeechActionBusy:()=>n(!1,`src/page/review.ts#isLeechActionBusy~5`)})},`src/page/review.ts#SucceededStartFreshLesson`),FailedStartFreshLesson:({error:t})=>n({model:I(e,{isLeechActionBusy:()=>n(!1,`src/page/review.ts#isLeechActionBusy~6`),maybeError:()=>n(S(t),`src/page/review.ts#maybeError~4`)})},`src/page/review.ts#FailedStartFreshLesson`)}),`src/page/review.ts#update`),zce={reviewQuizKeyboard:uR(N6)({read:e=>n(e.maybeQuiz,`src/page/review.ts#read~2`),toParentMessage:e=>n(p5.GotQuizMessage({message:e}),`src/page/review.ts#toParentMessage~2`)}).keyboard},Bce=e=>{if(e<1)return n(`in under an hour`,`src/page/review.ts#formatHoursAway`);if(e<36)return n(`in about ${Math.round(e)} hours`,`src/page/review.ts#formatHoursAway`);let t=Math.round(e/24);return n(t<60?`in ${t} days`:`in about ${Math.round(t/30)} months`,`src/page/review.ts#formatHoursAway`)},Vce={Again:{label:`Again`,tone:`Destructive`},Hard:{label:`Hard`,tone:`Warning`},Good:{label:`Good`,tone:`Success`},Easy:{label:`Easy`,tone:`Primary`}},Hce=(e,t,r)=>{let i=ja(wq(t,e.creditedConcepts),t=>n(!Pa(e.probes,e=>n(e.conceptId===t.conceptId,`src/page/review.ts#anonymous~20`)),`src/page/review.ts#anonymous~19`));return n(r.div([r.Class(`pop-in flex flex-wrap items-center gap-2 text-sm text-muted-foreground`)],[L(`clock`,`size-4`,r),e.counted?`Next review of “${t.conceptTitle}” ${Bce(e.nextDueInHours)}`:`Already reviewed today, so this one doesn’t change the schedule.`,Ui(e.probes,{onEmpty:()=>n(r.empty,`src/page/review.ts#onEmpty~3`),onNonEmpty:e=>n(r.span([r.Class(gq(`Warning`))],[`Checking ${e.length} prerequisite${e.length===1?``:`s`} next`]),`src/page/review.ts#onNonEmpty~3`)}),Ui(e.creditedConcepts,{onEmpty:()=>n(r.empty,`src/page/review.ts#onEmpty~4`),onNonEmpty:e=>n(r.span([r.Class(gq(`Info`))],[`Also refreshed ${e.length} prerequisite${e.length===1?``:`s`}`]),`src/page/review.ts#onNonEmpty~4`)}),Ui(i,{onEmpty:()=>n(r.empty,`src/page/review.ts#onEmpty~5`),onNonEmpty:e=>n(r.span([r.Class(gq(`Neutral`))],[`${e.length===1?e[0]?.conceptTitle??``:`${e.length} others`} get${e.length===1?`s`:``} a quick question of ${e.length===1?`its`:`their`} own`]),`src/page/review.ts#onNonEmpty~5`)})]),`src/page/review.ts#scheduleNote`)},Uce=(e,t)=>{let r=e.outcomes.length,i=f5.match(e.checkIn,{Off:()=>n(r+e.queue.length+(C(e.maybeCurrent)&&pr(e.maybeLastResult)?1:0),`src/page/review.ts#Off~5`),Offered:()=>n(r+e.queue.length,`src/page/review.ts#Offered~5`),Running:({budget:e})=>n(Math.max(e,r),`src/page/review.ts#Running~5`),Done:()=>n(r,`src/page/review.ts#Done~5`)}),a=i===0?100:Math.round(r/i*100);return n(t.div([t.Class(`h-1 overflow-hidden rounded-full bg-muted`)],[t.div([t.Class(`h-full rounded-full bg-primary transition-[width] duration-500`),t.Style({width:`${a}%`})])]),`src/page/review.ts#progressView`)},Wce=(e,t,r)=>{let i=t=>n(e.outcomes.filter(e=>n(e.result.grading===t,`src/page/review.ts#anonymous~21`)).length,`src/page/review.ts#count`);return n(r.div([r.Class(_q(`reveal flex flex-col gap-5 p-6 sm:p-8`))],[r.div([r.Class(`flex items-center gap-3`)],[r.span([r.Class(`flex size-10 items-center justify-center rounded-xl bg-success/12 text-success`)],[L(`check`,`size-5`,r)]),r.div([],[r.h2([r.Class(`text-xl font-semibold`)],[Yi(e.outcomes)?`Nothing due right now`:`Review done`]),r.p([r.Class(`text-sm text-muted-foreground`)],[Yi(e.outcomes)?`Your memory model says everything you studied is still fresh. Come back when it starts to fade.`:`You retrieved ${e.outcomes.length} concept${e.outcomes.length===1?``:`s`} from memory. Each one is now scheduled just before you’d forget it.`])])]),Yi(e.outcomes)?r.empty:r.div([r.Class(`grid grid-cols-4 gap-2 text-center`)],T([`Again`,`Hard`,`Good`,`Easy`],e=>n(r.div([r.Class(`rounded-xl bg-muted/50 p-3`)],[r.p([r.Class(`text-2xl font-semibold tabular-nums`)],[`${i(e)}`]),r.p([r.Class(`text-xs text-muted-foreground`)],[Vce[e].label])]),`src/page/review.ts#anonymous~22`))),i(`Again`)+i(`Hard`)>0?r.p([r.Class(`rounded-lg bg-muted/50 px-4 py-3 text-sm text-muted-foreground`)],[`Some of those felt hard. That is the point: effortful recall is what makes a memory last, and the ones you missed come back sooner. `,r.a([r.Href(dq()),r.Class(`font-medium text-foreground underline-offset-4 hover:underline`)],[`See how much you actually retain`])]):r.empty,r.p([r.Class(`text-sm text-muted-foreground`)],[`Coming up: ${t.dueTomorrow} in the next 24 hours, ${t.dueThisWeek} this week.`]),r.div([r.Class(`flex justify-end gap-2`)],[r.button([r.Type(`button`),r.OnClick(p5.ClickedReload()),r.Class(R(`Ghost`,`Medium`))],[L(`refresh`,``,r),`Check again`]),r.a([r.Href(iq()),r.Class(R(`Primary`,`Medium`))],[`Learn something new`,L(`arrowRight`,``,r)])])]),`src/page/review.ts#summaryView`)},Gce=(e,t)=>n(t.div([t.Class(_q(`reveal flex flex-col gap-4 p-6 sm:p-8`))],[t.div([t.Class(`flex items-center gap-3`)],[t.span([t.Class(`flex size-10 items-center justify-center rounded-xl bg-success/12 text-success`)],[L(`check`,`size-5`,t)]),t.h2([t.Class(`text-xl font-semibold`)],[`Check-in done`])]),t.p([t.Class(`text-sm leading-relaxed text-muted-foreground`)],[Mq(e)]),t.div([t.Class(`flex flex-wrap justify-end gap-2`)],[t.a([t.Href(iq()),t.Class(R(`Ghost`,`Medium`))],[`Back to today`]),t.button([t.Type(`button`),t.OnClick(p5.ClickedReload()),t.Class(R(`Primary`,`Medium`))],[`Continue with reviews`,L(`arrowRight`,``,t)])])]),`src/page/review.ts#checkInDoneView`),Kce=(e,t,r)=>n(w(Cr(e.maybeLastResult,e=>n(hr(e.maybeLeech,()=>n(t.item.maybeLeech,`src/page/review.ts#anonymous~24`)),`src/page/review.ts#anonymous~23`)),{onNone:()=>n(r.empty,`src/page/review.ts#onNone~7`),onSome:t=>n(Dq(t,{maybeCheckBasics:y5(e)?x():S(p5.ClickedCheckBasics({goalId:t.goalId,conceptId:t.conceptId})),freshLesson:p5.ClickedFreshLesson({goalId:t.goalId,conceptId:t.conceptId}),isBusy:e.isLeechActionBusy,isChecked:e.checkedBasics.includes(t.conceptId)},r),`src/page/review.ts#onSome~7`)}),`src/page/review.ts#leechView`),x5=(e,t,r)=>n(r.div([r.Class(`flex flex-col gap-3`)],[r.div([r.Class(`flex flex-wrap items-center gap-2 text-sm`)],[r.span([r.Class(`font-medium`)],[t.item.conceptTitle]),r.span([r.Class(`text-muted-foreground`)],[`· ${t.item.goalTitle}`]),r.span([r.Class(gq(`Neutral`))],[`Level ${t.item.level}`]),t.attempt>0?r.span([r.Class(gq(`Warning`))],[`Second try`]):r.empty,C(t.item.maybeLeech)?r.span([r.Class(gq(`Warning`))],[`Keeps slipping`]):r.empty,r.span([r.Class(CK(`ml-auto text-xs text-muted-foreground`))],[`Memory strength ${Math.round(t.item.retrievability*100)}%`])]),Tq(t.item,r),w(e.maybeQuiz,{onNone:()=>n(r.empty,`src/page/review.ts#onNone~8`),onSome:i=>n(r.submodel({slotId:`review-${t.key}`,model:i,view:F6(y5(e)||!Yi(e.queue)?`Next`:`Finish`,S(sq({goalId:t.item.goalId,conceptId:t.item.conceptId}))),toParentMessage:e=>n(p5.GotQuizMessage({message:e}),`src/page/review.ts#toParentMessage~3`)}),`src/page/review.ts#onSome~8`)}),w(e.maybeLastResult,{onNone:()=>n(r.empty,`src/page/review.ts#onNone~9`),onSome:e=>n(Hce(e,t.item,r),`src/page/review.ts#onSome~9`)}),Kce(e,t,r)]),`src/page/review.ts#currentView`),qce=(e,t)=>n(f5.match(e.checkIn,{Off:()=>n(t.empty,`src/page/review.ts#Off~6`),Offered:()=>n(t.empty,`src/page/review.ts#Offered~6`),Done:()=>n(t.empty,`src/page/review.ts#Done~6`),Running:({answered:r,budget:i})=>n(t.p([t.Class(`flex items-center gap-2 text-sm text-muted-foreground`)],[L(`sparkles`,`size-4 text-primary`,t),`Welcome-back check-in · question ${Math.min(i,r.length+ +!C(e.maybeLastResult))} of up to ${i}`]),`src/page/review.ts#Running~6`)}),`src/page/review.ts#checkInHeader`),Jce=(e,t,r)=>n(r.div([r.Class(`flex flex-col gap-4`)],[e.checkIn._tag===`Off`?w(t.maybeCatchUp,{onNone:()=>n(r.empty,`src/page/review.ts#onNone~10`),onSome:e=>n(kq(e,r),`src/page/review.ts#onSome~10`)}):r.empty,Uce(e,r),qce(e,r),f5.match(e.checkIn,{Offered:({offer:e})=>n(jq(e,{start:p5.ClickedStartCheckIn(),skip:p5.ClickedSkipCheckIn()},r),`src/page/review.ts#Offered~7`),Done:({summary:e})=>n(Gce(e,r),`src/page/review.ts#Done~7`),Running:()=>n(w(e.maybeCurrent,{onNone:()=>n(r.div([r.Class(`h-64 animate-pulse rounded-xl bg-muted/60`)]),`src/page/review.ts#onNone~11`),onSome:t=>n(r.keyed(`div`)(t.key,[],[x5(e,t,r)]),`src/page/review.ts#onSome~11`)}),`src/page/review.ts#Running~7`),Off:()=>n(w(e.maybeCurrent,{onNone:()=>n(Wce(e,t,r),`src/page/review.ts#onNone~12`),onSome:t=>n(r.keyed(`div`)(t.key,[],[x5(e,t,r)]),`src/page/review.ts#onSome~12`)}),`src/page/review.ts#Off~7`)})]),`src/page/review.ts#readyView`),S5=e=>n(!y5(e)&&Yi(e.outcomes)&&e.queue.length>=5,`src/page/review.ts#canShortenSession`),Yce=(e,t)=>n(S5(e)?t.div([t.Class(`flex flex-wrap items-center justify-between gap-2 text-sm text-muted-foreground`)],[t.span([],[`${e.queue.length+1} items in this session`]),t.button([t.Type(`button`),t.OnClick(p5.ClickedJustFive()),t.Class(R(`Ghost`,`Small`,`text-muted-foreground`))],[L(`clock`,``,t),`Just 5 for now`])]):t.empty,`src/page/review.ts#justFiveView`),Xce=hM((e,t)=>n(t.div([t.Class(`mx-auto flex w-full max-w-2xl flex-col gap-5 px-5 pt-8 pb-24`)],[t.div([t.Class(`flex flex-col gap-1`)],[t.h1([t.Class(`text-3xl font-semibold tracking-tight`)],[`Review`]),t.p([t.Class(`text-muted-foreground`)],[`Spaced retrieval: each concept comes back right before you’d forget it, mixed across subjects. Answer from memory before peeking.`])]),w(e.maybeError,{onNone:()=>n(t.empty,`src/page/review.ts#onNone~13`),onSome:e=>n(t.p([t.Role(`alert`),t.Class(`text-sm text-destructive`)],[e]),`src/page/review.ts#onSome~13`)}),Yce(e,t),d5.match(e.load,{Loading:()=>n(t.div([t.Class(`h-64 animate-pulse rounded-xl bg-muted/60`)]),`src/page/review.ts#Loading`),Failed:({error:e})=>n(t.p([t.Class(`text-sm text-destructive`)],[e]),`src/page/review.ts#Failed`),Ready:({session:r})=>n(Jce(e,r,t),`src/page/review.ts#Ready`)})]),`src/page/review.ts#anonymous~25`)),C5=Math.min,w5=Math.max,T5=Math.round,E5=Math.floor,D5=e=>({x:e,y:e}),Zce={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function O5(e,t,n){return w5(e,C5(t,n))}function k5(e,t){return typeof e==`function`?e(t):e}function A5(e){return e.split(`-`)[0]}function j5(e){return e.split(`-`)[1]}function M5(e){return e===`x`?`y`:`x`}function N5(e){return e===`y`?`height`:`width`}function P5(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function F5(e){return M5(P5(e))}function Qce(e,t,n){n===void 0&&(n=!1);let r=j5(e),i=F5(e),a=N5(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=z5(o)),[o,z5(o)]}function $ce(e){let t=z5(e);return[I5(e),t,I5(t)]}function I5(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var L5=[`left`,`right`],R5=[`right`,`left`],ele=[`top`,`bottom`],tle=[`bottom`,`top`];function nle(e,t,n){switch(e){case`top`:case`bottom`:return n?t?R5:L5:t?L5:R5;case`left`:case`right`:return t?ele:tle;default:return[]}}function rle(e,t,n,r){let i=j5(e),a=nle(A5(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(I5)))),a}function z5(e){let t=A5(e);return Zce[t]+e.slice(t.length)}function ile(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function B5(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:ile(e)}function V5(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function H5(e,t,n){let{reference:r,floating:i}=e,a=P5(t),o=F5(t),s=N5(o),c=A5(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=j5(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function ale(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=k5(t,e),p=B5(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=V5(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=V5(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var ole=50,sle=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:ale},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=H5(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:ee,reset:te}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...ee},te&&p<ole&&(p++,typeof te==`object`&&(te.placement&&(f=te.placement),te.rects&&(l=te.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):te.rects),{x:u,y:d}=H5(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},cle=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=k5(e,t)||{};if(l==null)return{};let d=B5(u),f={x:n,y:r},p=F5(i),m=N5(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,ee=a.reference[m]+a.reference[p]-f[p]-a.floating[m],te=f[p]-a.reference[p],ne=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),b=ne?ne[y]:0;(!b||!await(o.isElement==null?void 0:o.isElement(ne)))&&(b=s.floating[y]||a.floating[m]);let re=ee/2-te/2,ie=b/2-h[m]/2-1,ae=C5(d[_],ie),oe=C5(d[v],ie),se=b-h[m]-oe,ce=b/2-h[m]/2+re,le=O5(ae,ce,se),ue=!c.arrow&&j5(i)!=null&&ce!==le&&a.reference[m]/2-(ce<ae?ae:oe)-h[m]/2<0,de=ue?ce<ae?ce-ae:ce-se:0;return{[p]:f[p]+de,data:{[p]:le,centerOffset:ce-le-de,...ue&&{alignmentOffset:de}},reset:ue}}}),lle=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=k5(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=A5(r),_=P5(o),v=A5(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),ee=d||(v||!m?[z5(o)]:$ce(o)),te=p!==`none`;!d&&te&&ee.push(...rle(o,m,p,y));let ne=[o,...ee],b=await s.detectOverflow(t,h),re=[],ie=i.flip?.overflows||[];if(l&&re.push(b[g]),u){let e=Qce(r,a,y);re.push(b[e[0]],b[e[1]])}if(ie=[...ie,{placement:r,overflows:re}],!re.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=ne[e];if(t&&(u!==`alignment`||_===P5(t)||ie.every(e=>P5(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:ie},reset:{placement:t}};let n=ie.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=ie.filter(e=>{if(te){let t=P5(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}},ule=new Set([`left`,`top`]);async function dle(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=A5(n),s=j5(n),c=P5(n)===`y`,l=ule.has(o)?-1:1,u=a&&c?-1:1,d=k5(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var fle=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await dle(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},ple=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=k5(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=P5(i),p=M5(f),m=u[p],h=u[f],g=(e,t)=>O5(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},mle=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){let{placement:n,rects:r,platform:i,elements:a}=t,{apply:o=()=>{},...s}=k5(e,t),c=await i.detectOverflow(t,s),l=A5(n),u=j5(n),d=P5(n)===`y`,{width:f,height:p}=r.floating,m,h;l===`top`||l===`bottom`?(m=l,h=u===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?`start`:`end`)?`left`:`right`):(h=l,m=u===`end`?`top`:`bottom`);let g=p-c.top-c.bottom,_=f-c.left-c.right,v=C5(p-c[m],g),y=C5(f-c[h],_),ee=t.middlewareData.shift,te=!ee,ne=v,b=y;ee!=null&&ee.enabled.x&&(b=_),ee!=null&&ee.enabled.y&&(ne=g),te&&!u&&(d?b=f-2*w5(c.left,c.right):ne=p-2*w5(c.top,c.bottom)),await o({...t,availableWidth:b,availableHeight:ne});let re=await i.getDimensions(a.floating);return f!==re.width||p!==re.height?{reset:{rects:!0}}:{}}}};function U5(){return typeof window<`u`}function W5(e){return q5(e)?(e.nodeName||``).toLowerCase():`#document`}function G5(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function K5(e){return((q5(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function q5(e){return U5()?e instanceof Node||e instanceof G5(e).Node:!1}function J5(e){return U5()?e instanceof Element||e instanceof G5(e).Element:!1}function Y5(e){return U5()?e instanceof HTMLElement||e instanceof G5(e).HTMLElement:!1}function X5(e){return!U5()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof G5(e).ShadowRoot}function Z5(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=i7(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function hle(e){return/^(table|td|th)$/.test(W5(e))}function Q5(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var gle=/transform|translate|scale|rotate|perspective|filter/,_le=/paint|layout|strict|content/,$5=e=>!!e&&e!==`none`,e7;function t7(e){let t=J5(e)?i7(e):e;return $5(t.transform)||$5(t.translate)||$5(t.scale)||$5(t.rotate)||$5(t.perspective)||!n7()&&($5(t.backdropFilter)||$5(t.filter))||gle.test(t.willChange||``)||_le.test(t.contain||``)}function vle(e){let t=o7(e);for(;Y5(t)&&!r7(t);){if(t7(t))return t;if(Q5(t))return null;t=o7(t)}return null}function n7(){return e7??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),e7}function r7(e){return/^(html|body|#document)$/.test(W5(e))}function i7(e){return G5(e).getComputedStyle(e)}function a7(e){return J5(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function o7(e){if(W5(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||X5(e)&&e.host||K5(e);return X5(t)?t.host:t}function s7(e){let t=o7(e);return r7(t)?(e.ownerDocument||e).body:Y5(t)&&Z5(t)?t:s7(t)}function c7(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=s7(e),i=r===e.ownerDocument?.body,a=G5(r);if(i){let e=l7(a);return t.concat(a,a.visualViewport||[],Z5(r)?r:[],e&&n?c7(e):[])}return t.concat(r,c7(r,[],n))}function l7(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function u7(e){let t=i7(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Y5(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=T5(n)!==a||T5(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function d7(e){return J5(e)?e:e.contextElement}function f7(e){let t=d7(e);if(!Y5(t))return D5(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=u7(t),o=(a?T5(n.width):n.width)/r,s=(a?T5(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var yle=D5(0);function p7(e){let t=G5(e);return!n7()||!t.visualViewport?yle:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function ble(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===G5(e)}function m7(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=d7(e),o=D5(1);t&&(r?J5(r)&&(o=f7(r)):o=f7(e));let s=ble(a,n,r)?p7(a):D5(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a&&r){let e=G5(a),t=J5(r)?G5(r):r,n=e,i=l7(n);for(;i&&t!==n;){let e=f7(i),t=i.getBoundingClientRect(),r=i7(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=G5(i),i=l7(n)}}return V5({width:u,height:d,x:c,y:l})}function h7(e,t){let n=a7(e).scrollLeft;return t?t.left+n:m7(K5(e)).left+n}function g7(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-h7(e,n),y:n.top+t.scrollTop}}function xle(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=K5(r),s=t?Q5(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=D5(1),u=D5(0),d=Y5(r);if((d||!a)&&((W5(r)!==`body`||Z5(o))&&(c=a7(r)),d)){let e=m7(r);l=f7(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?g7(o,c):D5(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function Sle(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function Cle(e){let t=a7(e),n=e.ownerDocument.body,r=w5(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=w5(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+h7(e),o=-t.scrollTop;return i7(n).direction===`rtl`&&(a+=w5(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}var wle=25;function Tle(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=G5(e),a=K5(e),o=i.visualViewport,s=a.clientWidth,c=a.clientHeight,l=0,u=0;if(o){let e=!n7()||t===`fixed`;r?e||(l=-o.offsetLeft,u=-o.offsetTop):(s=o.width,c=o.height,e&&(l=o.offsetLeft,u=o.offsetTop))}if(h7(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=wle&&(s-=o)}return{width:s,height:c,x:l,y:u}}function Ele(e,t){let n=m7(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=f7(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function _7(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=Tle(e,n,t);else if(t===`document`)r=Cle(K5(e));else if(J5(t))r=Ele(t,n);else{let n=p7(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return V5(r)}function Dle(e,t){let n=t.get(e);if(n)return n;let r=c7(e,[],!1).filter(e=>J5(e)&&W5(e)!==`body`),i=null,a=i7(e).position===`fixed`,o=a?o7(e):e;for(;J5(o)&&!r7(o);){let e=i7(o),t=t7(o),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==o):i=e,o=o7(o)}return t.set(e,r),r}function Ole(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Q5(t)?[]:Dle(t,this._c):[].concat(n),r],o=_7(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=_7(t,a[e],i);s=w5(n.top,s),c=C5(n.right,c),l=C5(n.bottom,l),u=w5(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function kle(e){let{width:t,height:n}=u7(e);return{width:t,height:n}}function Ale(e,t,n){let r=Y5(t),i=K5(t),a=n===`fixed`,o=m7(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=D5(0);if((r||!a)&&((W5(t)!==`body`||Z5(i))&&(s=a7(t)),r)){let e=m7(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}!r&&i&&(c.x=h7(i));let l=i&&!r&&!a?g7(i,s):D5(0);return{x:o.left+s.scrollLeft-c.x-l.x,y:o.top+s.scrollTop-c.y-l.y,width:o.width,height:o.height}}function v7(e){return i7(e).position===`static`}function y7(e,t){if(!Y5(e)||i7(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return K5(e)===n&&(n=n.ownerDocument.body),n}function b7(e,t){let n=G5(e);if(Q5(e))return n;if(!Y5(e)){let t=o7(e);for(;t&&!r7(t);){if(J5(t)&&!v7(t))return t;t=o7(t)}return n}let r=y7(e,t);for(;r&&hle(r)&&v7(r);)r=y7(r,t);return r&&r7(r)&&v7(r)&&!t7(r)?n:r||vle(e)||n}var jle=async function(e){let t=this.getOffsetParent||b7,n=this.getDimensions,r=await n(e.floating);return{reference:Ale(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Mle(e){return i7(e).direction===`rtl`}var Nle={convertOffsetParentRelativeRectToViewportRelativeRect:xle,getDocumentElement:K5,getClippingRect:Ole,getOffsetParent:b7,getElementRects:jle,getClientRects:Sle,getDimensions:kle,getScale:f7,isElement:J5,isRTL:Mle};function x7(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Ple(e,t,n){let r=null,i,a=K5(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function s(n,c){n===void 0&&(n=!1),c===void 0&&(c=1),o();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(n||t(),!f||!p)return;let m=E5(d),h=E5(a.clientWidth-(u+f)),g=E5(a.clientHeight-(d+p)),_=E5(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:w5(0,C5(1,c))||1},y=!0;function ee(t){let n=t[0].intersectionRatio;if(!x7(l,e.getBoundingClientRect()))return s();if(n!==c){if(!y)return s();n?s(!1,n):i=setTimeout(()=>{s(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(ee,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(ee,v)}r.observe(e)}let c=G5(e),l=()=>s(n);return c.addEventListener(`resize`,l),s(!0),()=>{c.removeEventListener(`resize`,l),o()}}function Fle(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=d7(e),u=i||a?[...l?c7(l):[],...t?c7(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?Ple(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?m7(e):null;c&&g();function g(){let t=m7(e);h&&!x7(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Ile=fle,Lle=ple,Rle=lle,zle=mle,Ble=cle,Vle=(e,t,n)=>{let r=new Map,i=n??{},a={...Nle,...i.platform,_c:r};return sle(e,t,{...i,platform:a})},Hle=qS([`top`,`right`,`bottom`,`left`,`top-start`,`top-end`,`right-start`,`right-end`,`bottom-start`,`bottom-end`,`left-start`,`left-end`]),Ule=KS([j,M({top:AS(j),right:AS(j),bottom:AS(j),left:AS(j)})]),Wle=M({placement:jS(Hle),gap:jS(j),offset:jS(j),padding:jS(Ule),portal:jS(RS),isPlacementLocked:jS(RS)}),S7=`foldkit-portal-root`,C7=`data-foldkit-portal-root`,Gle=e=>{let t=e.getRootNode(),r=t instanceof ShadowRoot,i=r?t:document,a=r?t:document.body,o=i.getElementById(S7);if(o)return n(o,`@foldkit/ui/anchor/anchor.js#getOrCreateContainingRootPortalRoot`);let s=document.createElement(`div`);return s.id=S7,a.prepend(s),n(s,`@foldkit/ui/anchor/anchor.js#getOrCreateContainingRootPortalRoot`)},Kle=e=>{let t=e.querySelector(`:scope > [${C7}]`);if(t instanceof HTMLElement)return n(t,`@foldkit/ui/anchor/anchor.js#getOrCreateDialogPortalRoot`);let r=document.createElement(`div`);return r.setAttribute(C7,``),e.append(r),n(r,`@foldkit/ui/anchor/anchor.js#getOrCreateDialogPortalRoot`)},qle=e=>n(e.hasAttribute(C7),`@foldkit/ui/anchor/anchor.js#isDialogPortalRoot`),Jle=e=>n(w(gr(e.closest(`dialog`)),{onNone:()=>n(Gle(e),`@foldkit/ui/anchor/anchor.js#onNone`),onSome:Kle}),`@foldkit/ui/anchor/anchor.js#getOrCreatePortalRoot`),w7=e=>{let t=Jle(e);return t.appendChild(e),n((()=>{try{e.remove()}catch{}qle(t)&&!t.hasChildNodes()&&t.remove()}),`@foldkit/ui/anchor/anchor.js#portalToContainingRoot`)},Yle=e=>{let t=e.closest(`dialog`);return n(m(gr(e.parentElement),Dr(e=>n(t!==null&&e!==t,`@foldkit/ui/anchor/anchor.js#anonymous~2`))),`@foldkit/ui/anchor/anchor.js#findWrapperInsideDialog`)},Xle=e=>n(w(Yle(e),{onNone:()=>n(w7(e),`@foldkit/ui/anchor/anchor.js#onNone~2`),onSome:t=>(t.before(e),n((()=>n(e.remove(),`@foldkit/ui/anchor/anchor.js#anonymous~3`)),`@foldkit/ui/anchor/anchor.js#onSome`))}),`@foldkit/ui/anchor/anchor.js#portalBackdrop`),T7=e=>n(e!==null&&(getComputedStyle(e).position===`fixed`||T7(e.parentElement)),`@foldkit/ui/anchor/anchor.js#isInsideFixedContainer`),Zle=e=>n(m(e,sp(`-`),ra),`@foldkit/ui/anchor/anchor.js#toSide`),E7=(e,t,n)=>{n===void 0?e.style.setProperty(t,`initial`):e.style.setProperty(t,`${n}px`)},Qle=(e,t)=>{let r=e.getRootNode(),i=r instanceof ShadowRoot,a=i?r:document;if(!(e instanceof HTMLElement))return console.error(`[@foldkit/ui] anchorSetup requires an HTML panel. The panel will not be positioned.`),n(p,`@foldkit/ui/anchor/anchor.js#anchorSetup`);let o=a.getElementById(t.buttonId);if(o===null)return console.error(`[@foldkit/ui] anchorSetup could not find a trigger with id "${t.buttonId}". The panel will not be positioned.`),n(p,`@foldkit/ui/anchor/anchor.js#anchorSetup`);if(!(o instanceof HTMLElement))return console.error(`[@foldkit/ui] anchorSetup requires an HTML trigger with id "${t.buttonId}". The panel will not be positioned.`),n(p,`@foldkit/ui/anchor/anchor.js#anchorSetup`);let s=t.anchor.portal??!0,c=s?w7(e):void 0,l=s&&T7(o),u=i||l?`fixed`:`absolute`;u===`fixed`&&(e.style.position=`fixed`);let d=m(gr(t.arrowId),wr(e=>n(a.getElementById(e),`@foldkit/ui/anchor/anchor.js#anonymous~4`)),Dr(t=>n(e.contains(t),`@foldkit/ui/anchor/anchor.js#anonymous~5`))),f=w(d,{onNone:()=>n([],`@foldkit/ui/anchor/anchor.js#onNone~3`),onSome:e=>n([Ble({element:e,padding:t.arrowPadding??0})],`@foldkit/ui/anchor/anchor.js#onSome~2`)}),{placement:h,gap:g,offset:_,padding:v,isPlacementLocked:y}=t.anchor,ee=t.interceptTab??!0,te=y??!1,ne=!0,b=!0,re=!1,ie=!1,ae=!1,oe,se=()=>{if(!b)return;if(re){ie=!0;return}let n=te&&oe!==void 0,r=Vle(o,e,{placement:oe??h??`bottom-start`,strategy:u,middleware:[Ile({mainAxis:g??0,crossAxis:_??0}),...n?[]:[Rle({padding:v??0})],Lle({padding:v??0}),zle({padding:v??0,apply({rects:t,availableHeight:n}){b&&(e.style.setProperty(`--button-width`,`${t.reference.width}px`),e.style.maxHeight=`${Math.max(0,n)}px`,pr(d)&&(e.style.overflowY=`auto`,e.style.overscrollBehavior=`none`))}}),...f]});re=!0,r.then(({x:n,y:r,placement:i,middlewareData:o})=>{if(ae=!1,b){if(e.style.left=`${n}px`,e.style.top=`${r}px`,te&&(oe??=i),e.setAttribute(`data-placement`,Zle(oe??i)),C(d)){let{x:t,y:n}=o.arrow??{};E7(e,`--arrow-x`,t),E7(e,`--arrow-y`,n)}ne&&(ne=!1,e.style.visibility=``,(t.focusAfterPosition??!1)&&requestAnimationFrame(()=>{if(!b)return;let n=t.focusSelector?a.querySelector(t.focusSelector):e;n instanceof HTMLElement&&n.focus({preventScroll:!0})}))}},e=>{ae||(ae=!0,console.error(`[@foldkit/ui] anchorSetup could not position the panel. It keeps the visibility its caller rendered until positioning succeeds.`,e))}).finally(()=>{re=!1,b&&ie&&(ie=!1,se())})},ce=Fle(o,e,se),le=e=>{e instanceof KeyboardEvent&&e.key===`Tab`&&o.focus()},ue=s&&ee;return ue&&e.addEventListener(`keydown`,le),n((()=>{b=!1,ie=!1,ce(),ue&&e.removeEventListener(`keydown`,le),e.removeAttribute(`data-placement`),e.style.removeProperty(`overflow-y`),e.style.removeProperty(`overscroll-behavior`),e.style.removeProperty(`--arrow-x`),e.style.removeProperty(`--arrow-y`),c?.()}),`@foldkit/ui/anchor/anchor.js#anchorSetup`)},$le=M({id:A,isShowing:RS,transitionState:qS([`Idle`,`EnterStart`,`EnterAnimating`,`LeaveStart`,`LeaveAnimating`]),transitionGeneration:j}),D7=nO({Showed:{},Hid:{},CompletedWaitForPaint:{generation:j},EndedAnimation:{generation:j}}),O7=nO({StartedLeaveAnimating:{generation:j},TransitionedOut:{}}),eue=e=>n({id:e.id,isShowing:e.isShowing??!1,transitionState:`Idle`,transitionGeneration:0},`@foldkit/ui/animation/schema.js#init`),tue=0,nue=`�`,rue=127,iue=31,aue=48,oue=57,k7=45,sue=95,cue=65,lue=90,uue=97,due=122,fue=128,A7=e=>n(e>=aue&&e<=oue,`@foldkit/ui/internal/selectors.js#isDigitCode`),pue=e=>n(e>=fue||A7(e)||e===k7||e===sue||e>=cue&&e<=lue||e>=uue&&e<=due,`@foldkit/ui/internal/selectors.js#isIdentifierCode`),mue=e=>{let t=e.charCodeAt(0),r=``;for(let n=0;n<e.length;n++){let i=e.charCodeAt(n),a=e.charAt(n);i===tue?r+=nue:i>=1&&i<=iue||i===rue||A7(i)&&(n===0||n===1&&t===k7)?r+=`\\${i.toString(16)} `:n===0&&i===k7&&e.length===1?r+=`\\${a}`:pue(i)?r+=a:r+=`\\${a}`}return n(r,`@foldkit/ui/internal/selectors.js#escapeCssIdentifier`)},j7=e=>n(`#${mue(e)}`,`@foldkit/ui/internal/selectors.js#idSelector`),hue=e=>n(j7(e),`@foldkit/ui/animation/update.js#elementSelector`),M7=vD(),N7=F(`WaitForPaint`,{args:{generation:j},messages:[D7.CompletedWaitForPaint],execute:({generation:e})=>n(uF.pipe(Hp(D7.CompletedWaitForPaint({generation:e}))),`@foldkit/ui/animation/update.js#execute`)}),gue=F(`WaitForAnimationSettled`,{args:{id:A,generation:j},messages:[D7.EndedAnimation],execute:({id:e,generation:t})=>n(sI(hue(e)).pipe(Hp(D7.EndedAnimation({generation:t}))),`@foldkit/ui/animation/update.js#execute~2`)});function P7(e,t){return n(D7.match(t,{Showed:()=>{if(e.isShowing)return n({model:e},`@foldkit/ui/animation/update.js#Showed`);let t=Zf(e.transitionGeneration);return n({model:I(e,{isShowing:()=>n(!0,`@foldkit/ui/animation/update.js#isShowing`),transitionState:()=>n(`EnterStart`,`@foldkit/ui/animation/update.js#transitionState`),transitionGeneration:()=>n(t,`@foldkit/ui/animation/update.js#transitionGeneration`)}),commands:[N7({generation:t})]},`@foldkit/ui/animation/update.js#Showed`)},Hid:()=>{if(e.transitionState===`LeaveStart`||e.transitionState===`LeaveAnimating`||!e.isShowing)return n({model:e},`@foldkit/ui/animation/update.js#Hid`);let t=Zf(e.transitionGeneration);return n({model:I(e,{isShowing:()=>n(!1,`@foldkit/ui/animation/update.js#isShowing~2`),transitionState:()=>n(`LeaveStart`,`@foldkit/ui/animation/update.js#transitionState~2`),transitionGeneration:()=>n(t,`@foldkit/ui/animation/update.js#transitionGeneration~2`)}),commands:[N7({generation:t})]},`@foldkit/ui/animation/update.js#Hid`)},CompletedWaitForPaint:({generation:t})=>t===e.transitionGeneration?n(gD(e.transitionState).pipe(M7,yD(`EnterStart`,()=>n({model:I(e,{transitionState:()=>n(`EnterAnimating`,`@foldkit/ui/animation/update.js#transitionState~3`)}),commands:[gue({id:e.id,generation:e.transitionGeneration})]},`@foldkit/ui/animation/update.js#anonymous`)),yD(`LeaveStart`,()=>n({model:I(e,{transitionState:()=>n(`LeaveAnimating`,`@foldkit/ui/animation/update.js#transitionState~4`)}),outMessage:O7.StartedLeaveAnimating({generation:e.transitionGeneration})},`@foldkit/ui/animation/update.js#anonymous~2`)),wD(()=>n({model:e},`@foldkit/ui/animation/update.js#anonymous~3`))),`@foldkit/ui/animation/update.js#CompletedWaitForPaint`):n({model:e},`@foldkit/ui/animation/update.js#CompletedWaitForPaint`),EndedAnimation:({generation:t})=>t===e.transitionGeneration?n(gD(e.transitionState).pipe(M7,yD(`EnterAnimating`,()=>n({model:I(e,{transitionState:()=>n(`Idle`,`@foldkit/ui/animation/update.js#transitionState~5`)})},`@foldkit/ui/animation/update.js#anonymous~4`)),yD(`LeaveAnimating`,()=>n({model:I(e,{transitionState:()=>n(`Idle`,`@foldkit/ui/animation/update.js#transitionState~6`)}),outMessage:O7.TransitionedOut()},`@foldkit/ui/animation/update.js#anonymous~5`)),wD(()=>n({model:e},`@foldkit/ui/animation/update.js#anonymous~6`))),`@foldkit/ui/animation/update.js#EndedAnimation`):n({model:e},`@foldkit/ui/animation/update.js#EndedAnimation`)}),`@foldkit/ui/animation/update.js#update`)}var _ue=e=>n(P7(e,D7.Showed()),`@foldkit/ui/animation/update.js#show`),vue=e=>n(P7(e,D7.Hid()),`@foldkit/ui/animation/update.js#hide`),F7=o(2,(e,t)=>n(kr(t,()=>n(e,`@foldkit/ui/internal/optionExtensions.js#anonymous~2`)),`@foldkit/ui/internal/optionExtensions.js#anonymous`)),yue=(e,t)=>n(xa(T(e,(e,r)=>n({key:t(e,r),item:e},`@foldkit/ui/group.js#anonymous`)),e=>{let t=ra(e).key,[r,i]=fa(e,e=>n(e.key===t,`@foldkit/ui/group.js#anonymous~3`));return n([{key:t,items:T(r,({item:e})=>n(e,`@foldkit/ui/group.js#anonymous~4`))},i],`@foldkit/ui/group.js#anonymous~2`)}),`@foldkit/ui/group.js#groupContiguous`),bue=e=>n(e.length===1,`@foldkit/ui/keyboard.js#isPrintableKey`),I7=(e,t)=>n((e%t+t)%t,`@foldkit/ui/keyboard.js#wrapIndex`),L7=(e,t,r)=>n(((i,a)=>n(m(e,Ri(t=>n(I7(i+t*a,e),`@foldkit/ui/keyboard.js#anonymous~2`)),_a(xe(r)),mr(()=>n(t,`@foldkit/ui/keyboard.js#anonymous~3`))),`@foldkit/ui/keyboard.js#anonymous`)),`@foldkit/ui/keyboard.js#findFirstEnabledIndex`),xue=(e,t,r,i,a)=>{let o=L7(r,i,a);return n((a=>n(gD(a).pipe(yD(e,()=>n(o(i+1,1),`@foldkit/ui/keyboard.js#anonymous~5`)),yD(t,()=>n(o(i-1,-1),`@foldkit/ui/keyboard.js#anonymous~6`)),bD(`Home`,`PageUp`,()=>n(o(0,1),`@foldkit/ui/keyboard.js#anonymous~7`)),bD(`End`,`PageDown`,()=>n(o(r-1,-1),`@foldkit/ui/keyboard.js#anonymous~8`)),wD(()=>n(i,`@foldkit/ui/keyboard.js#anonymous~9`))),`@foldkit/ui/keyboard.js#anonymous~4`)),`@foldkit/ui/keyboard.js#keyToIndex`)},Sue=(e,t,r,i,a,o)=>{let s=np(t),c=+!o,l=w(r,{onNone:()=>n(0,`@foldkit/ui/typeahead.js#onNone`),onSome:e=>n(e+c,`@foldkit/ui/typeahead.js#onSome`)});return n(m(e,Qi,Ri(t=>n(I7(l+t,e.length),`@foldkit/ui/typeahead.js#anonymous~2`)),_a(t=>n(!i(t)&&m(e,ea(t),jr(e=>n(m(a(e,t),np,cp(s)),`@foldkit/ui/typeahead.js#anonymous`))),`@foldkit/ui/typeahead.js#isEnabledMatch`))),`@foldkit/ui/typeahead.js#resolveTypeaheadMatch`)},R7=qS([`Pointer`,`Keyboard`]),Cue=M({id:A,isOpen:RS,isAnimated:RS,isModal:RS,orientation:qS([`Vertical`,`Horizontal`]),animation:$le,maybeActiveItemIndex:CC(j),activationTrigger:R7,searchQuery:A,searchVersion:j,maybeLastPointerPosition:CC(M({screenX:j,screenY:j})),maybeLastButtonPointerType:CC(A)}),wue=e=>n({id:e.id,isOpen:!1,isAnimated:e.isAnimated??!1,isModal:e.isModal??!1,orientation:e.orientation??`Vertical`,animation:eue({id:`${e.id}-listbox`}),maybeActiveItemIndex:x(),activationTrigger:`Keyboard`,searchQuery:``,searchVersion:0,maybeLastPointerPosition:x(),maybeLastButtonPointerType:x()},`@foldkit/ui/listbox/shared.js#baseInit`),z7=nO({Opened:{maybeActiveItemIndex:CC(j)},Closed:{},BlurredItems:{},ActivatedItem:{index:j,activationTrigger:R7},DeactivatedItem:{},SelectedItem:{item:A},MovedPointerOverItem:{index:j,screenX:j,screenY:j},RequestedItemClick:{index:j},Searched:{key:A,maybeTargetIndex:CC(j)},CompletedDelayClearSearch:{version:j},CompletedLockScroll:{},CompletedUnlockScroll:{},CompletedInertOthers:{},CompletedRestoreInert:{},CompletedFocusButton:{},CompletedFocusItems:{},CompletedScrollIntoView:{},CompletedClickItem:{},IgnoredMouseClick:{},SuppressedSpaceScroll:{},SuppressedItemCommit:{},CompletedAnchorListbox:{},CompletedPortalListboxBackdrop:{},GotAnimationMessage:{message:D7},PressedPointerOnButton:{pointerType:A,button:j}}),B7=nO({Selected:{value:A}}),V7=e=>n(j7(`${e}-button`),`@foldkit/ui/listbox/shared.js#buttonSelector`),H7=e=>n(j7(`${e}-items`),`@foldkit/ui/listbox/shared.js#itemsSelector`),U7=(e,t)=>n(j7(`${e}-item-${t}`),`@foldkit/ui/listbox/shared.js#itemSelector`),W7=(e,t)=>n(`${e}-item-${t}`,`@foldkit/ui/listbox/shared.js#itemId`),G7=nz(),Tue=e=>n(G7(e,{isOpen:()=>n(!1,`@foldkit/ui/listbox/shared.js#isOpen`),maybeActiveItemIndex:()=>n(x(),`@foldkit/ui/listbox/shared.js#maybeActiveItemIndex`),searchQuery:()=>n(``,`@foldkit/ui/listbox/shared.js#searchQuery`),searchVersion:()=>n(0,`@foldkit/ui/listbox/shared.js#searchVersion`),maybeLastPointerPosition:()=>n(x(),`@foldkit/ui/listbox/shared.js#maybeLastPointerPosition`),maybeLastButtonPointerType:()=>n(x(),`@foldkit/ui/listbox/shared.js#maybeLastButtonPointerType`)}),`@foldkit/ui/listbox/shared.js#closedModel`),Eue=F(`LockScroll`,{messages:[z7.CompletedLockScroll],execute:AF.pipe(Hp(z7.CompletedLockScroll()))}),Due=F(`UnlockScroll`,{messages:[z7.CompletedUnlockScroll],execute:jF.pipe(Hp(z7.CompletedUnlockScroll()))}),Oue=F(`InertOthers`,{args:{id:A},messages:[z7.CompletedInertOthers],execute:({id:e})=>n(SF(e,[V7(e),H7(e)]).pipe(Hp(z7.CompletedInertOthers())),`@foldkit/ui/listbox/shared.js#execute`)}),kue=F(`RestoreInert`,{args:{id:A},messages:[z7.CompletedRestoreInert],execute:({id:e})=>n(CF(e).pipe(Hp(z7.CompletedRestoreInert())),`@foldkit/ui/listbox/shared.js#execute~2`)}),Aue=F(`FocusButton`,{args:{id:A},messages:[z7.CompletedFocusButton],execute:({id:e})=>n(ZF(V7(e)).pipe(Yp,Hp(z7.CompletedFocusButton())),`@foldkit/ui/listbox/shared.js#execute~3`)}),jue=F(`FocusItems`,{args:{id:A},messages:[z7.CompletedFocusItems],execute:({id:e})=>n(ZF(H7(e)).pipe(Yp,Hp(z7.CompletedFocusItems())),`@foldkit/ui/listbox/shared.js#execute~4`)}),Mue=F(`ScrollIntoView`,{args:{id:A,index:j},messages:[z7.CompletedScrollIntoView],execute:({id:e,index:t})=>n(tI(U7(e,t)).pipe(Yp,Hp(z7.CompletedScrollIntoView())),`@foldkit/ui/listbox/shared.js#execute~5`)}),Nue=F(`ClickItem`,{args:{id:A,index:j},messages:[z7.CompletedClickItem],execute:({id:e,index:t})=>n(eI(U7(e,t)).pipe(Yp,Hp(z7.CompletedClickItem())),`@foldkit/ui/listbox/shared.js#execute~6`)}),Pue=F(`DelayClearSearch`,{args:{version:j},messages:[z7.CompletedDelayClearSearch],execute:({version:e})=>n(Qp(350).pipe(Hp(z7.CompletedDelayClearSearch({version:e}))),`@foldkit/ui/listbox/shared.js#execute~7`)}),Fue=F(`DetectMovementOrAnimationEnd`,{args:{id:A,generation:j},messages:[z7.GotAnimationMessage],execute:({id:e,generation:t})=>n($p(rI(V7(e)).pipe(Hp(z7.GotAnimationMessage({message:D7.EndedAnimation({generation:t})}))),sI(H7(e)).pipe(Hp(z7.GotAnimationMessage({message:D7.EndedAnimation({generation:t})})))),`@foldkit/ui/listbox/shared.js#execute~8`)}),Iue=e=>{let t=RV({update:P7,read:e=>n(S(e.animation),`@foldkit/ui/listbox/shared.js#read`),write:(e,t)=>n(G7(e,{animation:()=>n(t,`@foldkit/ui/listbox/shared.js#animation`)}),`@foldkit/ui/listbox/shared.js#write`),toParentMessage:e=>n(z7.GotAnimationMessage({message:e}),`@foldkit/ui/listbox/shared.js#toParentMessage`),foldOutMessage:O7.match({StartedLeaveAnimating:({generation:e})=>n((t=>n({model:t,commands:[Fue({id:t.id,generation:e})]},`@foldkit/ui/listbox/shared.js#anonymous`)),`@foldkit/ui/listbox/shared.js#StartedLeaveAnimating`),TransitionedOut:()=>n((e=>n({model:e},`@foldkit/ui/listbox/shared.js#anonymous~2`)),`@foldkit/ui/listbox/shared.js#TransitionedOut`)})}),r=HV({update:_ue,read:e=>n(S(e.animation),`@foldkit/ui/listbox/shared.js#read~2`),write:(e,t)=>n(G7(e,{animation:()=>n(t,`@foldkit/ui/listbox/shared.js#animation~2`)}),`@foldkit/ui/listbox/shared.js#write~2`),toParentMessage:e=>n(z7.GotAnimationMessage({message:e}),`@foldkit/ui/listbox/shared.js#toParentMessage~2`)}),i=HV({update:vue,read:e=>n(S(e.animation),`@foldkit/ui/listbox/shared.js#read~3`),write:(e,t)=>n(G7(e,{animation:()=>n(t,`@foldkit/ui/listbox/shared.js#animation~3`)}),`@foldkit/ui/listbox/shared.js#write~3`),toParentMessage:e=>n(z7.GotAnimationMessage({message:e}),`@foldkit/ui/listbox/shared.js#toParentMessage~3`)}),a=(e,t)=>e.isAnimated?n(LV(e,[e=>n({model:e,commands:t},`@foldkit/ui/listbox/shared.js#anonymous~3`),r,e=>n({model:G7(e,{isOpen:()=>n(!0,`@foldkit/ui/listbox/shared.js#isOpen~2`)})},`@foldkit/ui/listbox/shared.js#anonymous~4`)]),`@foldkit/ui/listbox/shared.js#openListbox`):n({model:G7(e,{isOpen:()=>n(!0,`@foldkit/ui/listbox/shared.js#isOpen~3`)}),commands:t},`@foldkit/ui/listbox/shared.js#openListbox`),o=(e,t)=>{if(!e.isOpen)return n({model:e},`@foldkit/ui/listbox/shared.js#closeListbox`);let r=Tue(e);return e.isAnimated?n(LV(r,[e=>n({model:e,commands:t},`@foldkit/ui/listbox/shared.js#anonymous~5`),i]),`@foldkit/ui/listbox/shared.js#closeListbox`):n({model:r,commands:t},`@foldkit/ui/listbox/shared.js#closeListbox`)};return n((r,i)=>{let s=F7(r.isModal,Eue()),c=F7(r.isModal,Due()),l=F7(r.isModal,Oue({id:r.id})),u=F7(r.isModal,kue({id:r.id})),d=Aue({id:r.id}),f=jue({id:r.id}),p=[...ka([s,l]),f],h=[d,...ka([c,u])],g=ka([c,u]);return n(z7.match(i,{CompletedLockScroll:()=>n({model:r},`@foldkit/ui/listbox/shared.js#CompletedLockScroll`),CompletedUnlockScroll:()=>n({model:r},`@foldkit/ui/listbox/shared.js#CompletedUnlockScroll`),CompletedInertOthers:()=>n({model:r},`@foldkit/ui/listbox/shared.js#CompletedInertOthers`),CompletedRestoreInert:()=>n({model:r},`@foldkit/ui/listbox/shared.js#CompletedRestoreInert`),CompletedFocusButton:()=>n({model:r},`@foldkit/ui/listbox/shared.js#CompletedFocusButton`),CompletedFocusItems:()=>n({model:r},`@foldkit/ui/listbox/shared.js#CompletedFocusItems`),CompletedScrollIntoView:()=>n({model:r},`@foldkit/ui/listbox/shared.js#CompletedScrollIntoView`),CompletedClickItem:()=>n({model:r},`@foldkit/ui/listbox/shared.js#CompletedClickItem`),SuppressedSpaceScroll:()=>n({model:r},`@foldkit/ui/listbox/shared.js#SuppressedSpaceScroll`),SuppressedItemCommit:()=>n({model:r},`@foldkit/ui/listbox/shared.js#SuppressedItemCommit`),CompletedAnchorListbox:()=>n({model:r},`@foldkit/ui/listbox/shared.js#CompletedAnchorListbox`),CompletedPortalListboxBackdrop:()=>n({model:r},`@foldkit/ui/listbox/shared.js#CompletedPortalListboxBackdrop`),Opened:({maybeActiveItemIndex:e})=>n(a(G7(r,{maybeActiveItemIndex:()=>n(e,`@foldkit/ui/listbox/shared.js#maybeActiveItemIndex~2`),activationTrigger:()=>n(w(e,{onNone:()=>n(`Pointer`,`@foldkit/ui/listbox/shared.js#onNone`),onSome:()=>n(`Keyboard`,`@foldkit/ui/listbox/shared.js#onSome`)}),`@foldkit/ui/listbox/shared.js#activationTrigger`),searchQuery:()=>n(``,`@foldkit/ui/listbox/shared.js#searchQuery~2`),searchVersion:()=>n(0,`@foldkit/ui/listbox/shared.js#searchVersion~2`),maybeLastPointerPosition:()=>n(x(),`@foldkit/ui/listbox/shared.js#maybeLastPointerPosition~2`)}),p),`@foldkit/ui/listbox/shared.js#Opened`),Closed:()=>n(o(r,h),`@foldkit/ui/listbox/shared.js#Closed`),BlurredItems:()=>jr(r.maybeLastButtonPointerType,He(`mouse`))?n({model:r},`@foldkit/ui/listbox/shared.js#BlurredItems`):n(o(r,g),`@foldkit/ui/listbox/shared.js#BlurredItems`),ActivatedItem:({index:e,activationTrigger:t})=>n({model:G7(r,{maybeActiveItemIndex:()=>n(S(e),`@foldkit/ui/listbox/shared.js#maybeActiveItemIndex~3`),activationTrigger:()=>n(t,`@foldkit/ui/listbox/shared.js#activationTrigger~2`)}),commands:t===`Keyboard`?[Mue({id:r.id,index:e})]:[]},`@foldkit/ui/listbox/shared.js#ActivatedItem`),MovedPointerOverItem:({index:e,screenX:t,screenY:i})=>jr(r.maybeLastPointerPosition,e=>n(e.screenX===t&&e.screenY===i,`@foldkit/ui/listbox/shared.js#anonymous~6`))?n({model:r},`@foldkit/ui/listbox/shared.js#MovedPointerOverItem`):n({model:G7(r,{maybeActiveItemIndex:()=>n(S(e),`@foldkit/ui/listbox/shared.js#maybeActiveItemIndex~4`),activationTrigger:()=>n(`Pointer`,`@foldkit/ui/listbox/shared.js#activationTrigger~3`),maybeLastPointerPosition:()=>n(S({screenX:t,screenY:i}),`@foldkit/ui/listbox/shared.js#maybeLastPointerPosition~3`)})},`@foldkit/ui/listbox/shared.js#MovedPointerOverItem`),DeactivatedItem:()=>n(r.activationTrigger===`Pointer`?{model:G7(r,{maybeActiveItemIndex:()=>n(x(),`@foldkit/ui/listbox/shared.js#maybeActiveItemIndex~5`)})}:{model:r},`@foldkit/ui/listbox/shared.js#DeactivatedItem`),SelectedItem:({item:t})=>n(e(r,t,{closeWithFocus:(e,t)=>n(m(o(e,h),IV(t)),`@foldkit/ui/listbox/shared.js#closeWithFocus`),closeWithoutFocus:(e,t)=>n(m(o(e,g),IV(t)),`@foldkit/ui/listbox/shared.js#closeWithoutFocus`)}),`@foldkit/ui/listbox/shared.js#SelectedItem`),RequestedItemClick:({index:e})=>n({model:r,commands:[Nue({id:r.id,index:e})]},`@foldkit/ui/listbox/shared.js#RequestedItemClick`),Searched:({key:e,maybeTargetIndex:t})=>{let i=r.searchQuery+e,a=Zf(r.searchVersion);return n({model:G7(r,{searchQuery:()=>n(i,`@foldkit/ui/listbox/shared.js#searchQuery~3`),searchVersion:()=>n(a,`@foldkit/ui/listbox/shared.js#searchVersion~3`),maybeActiveItemIndex:()=>n(hr(t,()=>n(r.maybeActiveItemIndex,`@foldkit/ui/listbox/shared.js#anonymous~7`)),`@foldkit/ui/listbox/shared.js#maybeActiveItemIndex~6`)}),commands:[Pue({version:a})]},`@foldkit/ui/listbox/shared.js#Searched`)},CompletedDelayClearSearch:({version:e})=>e===r.searchVersion?n({model:G7(r,{searchQuery:()=>n(``,`@foldkit/ui/listbox/shared.js#searchQuery~4`)})},`@foldkit/ui/listbox/shared.js#CompletedDelayClearSearch`):n({model:r},`@foldkit/ui/listbox/shared.js#CompletedDelayClearSearch`),GotAnimationMessage:({message:e})=>n(t(r,e),`@foldkit/ui/listbox/shared.js#GotAnimationMessage`),PressedPointerOnButton:({pointerType:e,button:t})=>{let i=G7(r,{maybeLastButtonPointerType:()=>n(S(e),`@foldkit/ui/listbox/shared.js#maybeLastButtonPointerType~2`)});return e!==`mouse`||t!==0?n({model:i},`@foldkit/ui/listbox/shared.js#PressedPointerOnButton`):r.isOpen?n(LV(i,[e=>n(o(e,h),`@foldkit/ui/listbox/shared.js#anonymous~8`),t=>n({model:G7(t,{maybeLastButtonPointerType:()=>n(S(e),`@foldkit/ui/listbox/shared.js#maybeLastButtonPointerType~3`)})},`@foldkit/ui/listbox/shared.js#anonymous~9`)]),`@foldkit/ui/listbox/shared.js#PressedPointerOnButton`):n(a(G7(i,{maybeActiveItemIndex:()=>n(x(),`@foldkit/ui/listbox/shared.js#maybeActiveItemIndex~7`),activationTrigger:()=>n(`Pointer`,`@foldkit/ui/listbox/shared.js#activationTrigger~4`),searchQuery:()=>n(``,`@foldkit/ui/listbox/shared.js#searchQuery~5`),searchVersion:()=>n(0,`@foldkit/ui/listbox/shared.js#searchVersion~4`),maybeLastPointerPosition:()=>n(x(),`@foldkit/ui/listbox/shared.js#maybeLastPointerPosition~4`)}),p),`@foldkit/ui/listbox/shared.js#PressedPointerOnButton`)},IgnoredMouseClick:()=>n({model:G7(r,{maybeLastButtonPointerType:()=>n(x(),`@foldkit/ui/listbox/shared.js#maybeLastButtonPointerType~4`)})},`@foldkit/ui/listbox/shared.js#IgnoredMouseClick`)}),`@foldkit/ui/listbox/shared.js#internalUpdate`)},`@foldkit/ui/listbox/shared.js#makeUpdate`)},Lue=xk(`AnchorListbox`,{args:{buttonId:A,anchor:Wle},messages:[z7.CompletedAnchorListbox],execute:({element:e,buttonId:t,anchor:r})=>n(O(function*(){return yield*dm(D(()=>n(Qle(e,{buttonId:t,anchor:r,focusAfterPosition:!0}),`@foldkit/ui/listbox/shared.js#anonymous~11`)),e=>n(D(e),`@foldkit/ui/listbox/shared.js#anonymous~12`)),n(z7.CompletedAnchorListbox(),`@foldkit/ui/listbox/shared.js#anonymous~10`)}),`@foldkit/ui/listbox/shared.js#execute~9`)}),Rue=xk(`PortalListboxBackdrop`,{messages:[z7.CompletedPortalListboxBackdrop],execute:({element:e})=>n(O(function*(){return yield*dm(D(()=>n(Xle(e),`@foldkit/ui/listbox/shared.js#anonymous~14`)),e=>n(D(e),`@foldkit/ui/listbox/shared.js#anonymous~15`)),n(z7.CompletedPortalListboxBackdrop(),`@foldkit/ui/listbox/shared.js#anonymous~13`)}),`@foldkit/ui/listbox/shared.js#execute~10`)}),zue=e=>{let t=hM((t,r,i)=>{let{id:a,isOpen:o,orientation:s,animation:{transitionState:c},maybeActiveItemIndex:l,searchQuery:u,maybeLastButtonPointerType:d}=t,{items:f,itemToConfig:p,isItemDisabled:h,isButtonDisabled:g,buttonContent:_,buttonClassName:v,buttonAttributes:y=[],itemsClassName:ee,itemsAttributes:te=[],itemsScrollClassName:ne,itemsScrollAttributes:b=[],backdropClassName:re,backdropAttributes:ie=[],className:ae,attributes:oe=[],itemGroupKey:se,groupToHeading:ce,groupClassName:ue,groupAttributes:de=[],separatorClassName:fe,separatorAttributes:pe=[],anchor:me={},name:he,form:ge,isDisabled:_e,isReadOnly:ve=!1,isInvalid:ye,ariaLabel:be,ariaLabelledBy:xe,selectedValues:Se}=r,Ce=r.itemToValue??(e=>n(globalThis.String(e),`@foldkit/ui/listbox/shared.js#anonymous~17`)),we=e=>n(ba(Se,e),`@foldkit/ui/listbox/shared.js#isValueSelected`),Te=r.itemToSearchText??(e=>n(Ce(e),`@foldkit/ui/listbox/shared.js#anonymous~18`)),Ee=c===`LeaveStart`||c===`LeaveAnimating`,De=o||Ee,Oe=gD(c).pipe(yD(`EnterStart`,()=>n([i.DataAttribute(`closed`,``),i.DataAttribute(`enter`,``),i.DataAttribute(`transition`,``)],`@foldkit/ui/listbox/shared.js#anonymous~19`)),yD(`EnterAnimating`,()=>n([i.DataAttribute(`enter`,``),i.DataAttribute(`transition`,``)],`@foldkit/ui/listbox/shared.js#anonymous~20`)),yD(`LeaveStart`,()=>n([i.DataAttribute(`leave`,``),i.DataAttribute(`transition`,``)],`@foldkit/ui/listbox/shared.js#anonymous~21`)),yD(`LeaveAnimating`,()=>n([i.DataAttribute(`closed`,``),i.DataAttribute(`leave`,``),i.DataAttribute(`transition`,``)],`@foldkit/ui/listbox/shared.js#anonymous~22`)),wD(()=>n([],`@foldkit/ui/listbox/shared.js#anonymous~23`))),ke=e=>n(le(h)&&m(f,ea(e),jr(t=>n(h(t,e),`@foldkit/ui/listbox/shared.js#anonymous~24`))),`@foldkit/ui/listbox/shared.js#isItemDisabledByIndex`),Ae=_e||g,je=s===`Horizontal`?`ArrowRight`:`ArrowDown`,Me=s===`Horizontal`?`ArrowLeft`:`ArrowUp`,Ne=[je,Me,`Home`,`End`,`PageUp`,`PageDown`],Pe=e=>n(ba(Ne,e),`@foldkit/ui/listbox/shared.js#isNavigationKey`),Fe=L7(f.length,0,ke)(0,1),Ie=L7(f.length,0,ke)(f.length-1,-1),Le=m(Se,na,Cr(e=>n(ha(f,t=>n(Ce(t)===e,`@foldkit/ui/listbox/shared.js#anonymous~26`)),`@foldkit/ui/listbox/shared.js#anonymous~25`))),Re=e=>n(o?Ge(e):gD(e).pipe(bD(`Enter`,` `,`ArrowDown`,()=>n(S(z7.Opened({maybeActiveItemIndex:hr(Le,()=>n(S(Fe),`@foldkit/ui/listbox/shared.js#anonymous~28`))})),`@foldkit/ui/listbox/shared.js#anonymous~27`)),yD(`ArrowUp`,()=>n(S(z7.Opened({maybeActiveItemIndex:hr(Le,()=>n(S(Ie),`@foldkit/ui/listbox/shared.js#anonymous~30`))})),`@foldkit/ui/listbox/shared.js#anonymous~29`)),wD(()=>n(x(),`@foldkit/ui/listbox/shared.js#anonymous~31`))),`@foldkit/ui/listbox/shared.js#handleButtonKeyDown`),ze=(e,t)=>n(S(z7.PressedPointerOnButton({pointerType:e,button:t})),`@foldkit/ui/listbox/shared.js#handleButtonPointerDown`),Be=()=>jr(d,e=>n(e===`mouse`,`@foldkit/ui/listbox/shared.js#anonymous~32`))?n(z7.IgnoredMouseClick(),`@foldkit/ui/listbox/shared.js#handleButtonClick`):n(o?z7.Closed():z7.Opened({maybeActiveItemIndex:x()}),`@foldkit/ui/listbox/shared.js#handleButtonClick`),Ve=e=>n(F7(e===` `,z7.SuppressedSpaceScroll()),`@foldkit/ui/listbox/shared.js#handleSpaceKeyUp`),He=e=>n(w(l,{onNone:()=>n(gD(e).pipe(bD(Me,`End`,`PageDown`,()=>n(Ie,`@foldkit/ui/listbox/shared.js#anonymous~33`)),wD(()=>n(Fe,`@foldkit/ui/listbox/shared.js#anonymous~34`))),`@foldkit/ui/listbox/shared.js#onNone~2`),onSome:t=>n(xue(je,Me,f.length,t,ke)(e),`@foldkit/ui/listbox/shared.js#onSome~2`)}),`@foldkit/ui/listbox/shared.js#resolveActiveIndex`),Ue=e=>{let t=u+e,r=Sue(f,t,l,ke,Te,op(u));return n(S(z7.Searched({key:e,maybeTargetIndex:r})),`@foldkit/ui/listbox/shared.js#searchForKey`)},We=()=>n(ve?Sr(l,z7.SuppressedItemCommit()):xr(l,e=>n(z7.RequestedItemClick({index:e}),`@foldkit/ui/listbox/shared.js#anonymous~35`)),`@foldkit/ui/listbox/shared.js#resolveCommitMessage`),Ge=e=>n(gD(e).pipe(yD(`Escape`,()=>n(S(z7.Closed()),`@foldkit/ui/listbox/shared.js#anonymous~36`)),yD(`Enter`,We),yD(` `,()=>n(op(u)?Ue(` `):We(),`@foldkit/ui/listbox/shared.js#anonymous~37`)),yD(Pe,()=>n(S(z7.ActivatedItem({index:He(e),activationTrigger:`Keyboard`})),`@foldkit/ui/listbox/shared.js#anonymous~38`)),yD(bue,()=>n(Ue(e),`@foldkit/ui/listbox/shared.js#anonymous~39`)),wD(()=>n(x(),`@foldkit/ui/listbox/shared.js#anonymous~40`))),`@foldkit/ui/listbox/shared.js#handleItemsKeyDown`),Ke=le(be)?n([i.AriaLabel(be)],`@foldkit/ui/listbox/shared.js#resolveButtonLabel`):le(xe)?n([i.AriaLabelledBy(xe)],`@foldkit/ui/listbox/shared.js#resolveButtonLabel`):n([],`@foldkit/ui/listbox/shared.js#resolveButtonLabel`),qe=[i.Id(`${a}-button`),i.Type(`button`),i.AriaHasPopup(`listbox`),i.AriaExpanded(De),...De?[i.AriaControls(`${a}-items`)]:[],...Ke,...Ae?[i.AriaDisabled(!0),i.DataAttribute(`disabled`,``)]:[i.OnPointerDown(ze),i.OnKeyDownPreventDefault(Re),i.OnKeyUpPreventDefault(Ve),i.OnClick(Be())],...De?[i.DataAttribute(`open`,``),i.Style({position:`relative`,zIndex:`1`})]:[],...ve?[i.DataAttribute(`readonly`,``)]:[],...ye?[i.DataAttribute(`invalid`,``)]:[],...v?[i.Class(v)]:[],...y],Je=w(l,{onNone:()=>n([],`@foldkit/ui/listbox/shared.js#onNone~3`),onSome:e=>n([i.AriaActiveDescendant(W7(a,e))],`@foldkit/ui/listbox/shared.js#onSome~3`)}),Ye=[i.Style({position:`absolute`,margin:`0`,visibility:`hidden`}),i.OnMount(Lue({buttonId:`${a}-button`,anchor:me}))],Xe=[i.Id(`${a}-items`),i.Role(`listbox`),i.AriaOrientation(np(s)),...e.ariaMultiSelectable?[i.AriaMultiSelectable(!0)]:[],...ve?[i.AriaReadonly(!0),i.DataAttribute(`readonly`,``)]:[],i.AriaLabelledBy(`${a}-button`),...Je,i.Tabindex(-1),...Ye,...Oe,...Ee?[]:[i.OnKeyDownPreventDefault(Ge),i.OnKeyUpPreventDefault(Ve),i.OnBlur(z7.BlurredItems())],...ee?[i.Class(ee)]:[],...te],Ze=T(f,(e,t)=>{let r=jr(l,e=>n(e===t,`@foldkit/ui/listbox/shared.js#anonymous~42`)),o=ke(t),s=we(Ce(e)),c=p(e,{isActive:r,isDisabled:o,isReadOnly:ve,isSelected:s}),u=!o&&!Ee,d=u&&!ve;return n(i.keyed(`div`)(W7(a,t),[i.Id(W7(a,t)),i.Role(`option`),i.AriaSelected(s),...r?[i.DataAttribute(`active`,``)]:[],...s?[i.DataAttribute(`selected`,``)]:[],...o?[i.AriaDisabled(!0),i.DataAttribute(`disabled`,``)]:[],...ve?[i.DataAttribute(`readonly`,``)]:[],...d?[i.OnClick(z7.SelectedItem({item:Ce(e)}))]:[],...u?[...r?[]:[i.OnPointerMove((e,r,i)=>n(F7(i!==`touch`,z7.MovedPointerOverItem({index:t,screenX:e,screenY:r})),`@foldkit/ui/listbox/shared.js#anonymous~43`))],i.OnPointerLeave(e=>n(F7(e!==`touch`,z7.DeactivatedItem()),`@foldkit/ui/listbox/shared.js#anonymous~44`))]:[],...c.className?[i.Class(c.className)]:[]],[c.content]),`@foldkit/ui/listbox/shared.js#anonymous~41`)}),Qe=()=>n(se?Oa(yue(Ze,(e,t)=>n(ea(f,t).pipe(w({onNone:()=>n(``,`@foldkit/ui/listbox/shared.js#onNone~4`),onSome:e=>n(se(e,t),`@foldkit/ui/listbox/shared.js#onSome~4`)})),`@foldkit/ui/listbox/shared.js#anonymous~45`)),(e,t)=>{let r=gr(ce?.(e.key)),o=`${a}-heading-${e.key}`,s=[...w(r,{onNone:()=>n([],`@foldkit/ui/listbox/shared.js#onNone~5`),onSome:e=>n([i.keyed(`div`)(o,[i.Id(o),i.Role(`presentation`),...e.className?[i.Class(e.className)]:[]],[e.content])],`@foldkit/ui/listbox/shared.js#onSome~5`)}),...e.items],c=i.keyed(`div`)(`${a}-group-${e.key}`,[i.Role(`group`),...C(r)?[i.AriaLabelledBy(o)]:[],...ue?[i.Class(ue)]:[],...de],s);return n([...t>0&&(fe||Zi(pe))?[i.keyed(`div`)(`${a}-separator-${t}`,[i.Role(`separator`),...fe?[i.Class(fe)]:[],...pe])]:[],c],`@foldkit/ui/listbox/shared.js#anonymous~46`)}):Ze,`@foldkit/ui/listbox/shared.js#renderGroupedItems`),$e=i.keyed(`div`)(`${a}-backdrop`,[i.OnMount(Rue()),...Ee?[]:[i.OnClick(z7.Closed())],...re?[i.Class(re)]:[],...ie]),et=Qe(),tt=ne||Zi(b)?[i.div([...ne?[i.Class(ne)]:[],...b],et)]:et,nt=[$e,i.keyed(`div`)(`${a}-items-container`,Xe,tt)],rt=ge?[i.Attribute(`form`,ge)]:[],it=he?Ui(Se,{onEmpty:()=>n([i.input([i.Type(`hidden`),i.Name(he),...rt])],`@foldkit/ui/listbox/shared.js#onEmpty`),onNonEmpty:T(e=>n(i.input([i.Type(`hidden`),i.Name(he),i.Value(e),...rt]),`@foldkit/ui/listbox/shared.js#anonymous~47`))}):[],at=[...ae?[i.Class(ae)]:[],...oe,...De?[i.DataAttribute(`open`,``)]:[],..._e?[i.DataAttribute(`disabled`,``)]:[],...ve?[i.DataAttribute(`readonly`,``)]:[],...ye?[i.DataAttribute(`invalid`,``)]:[]];return n(i.div(at,[i.keyed(`button`)(`${a}-button`,qe,[_]),...it,...De?nt:[]]),`@foldkit/ui/listbox/shared.js#anonymous~16`)});return n((()=>n(t,`@foldkit/ui/listbox/shared.js#anonymous~48`)),`@foldkit/ui/listbox/shared.js#makeView`)},K7=M({...Cue.fields}),q7=e=>n(wue(e),`@foldkit/ui/listbox/single.js#init`),Bue=Iue((e,t,r)=>n(r.closeWithFocus(e,B7.Selected({value:t})),`@foldkit/ui/listbox/single.js#anonymous`)),Vue=zue({ariaMultiSelectable:!1})(),Hue=hM((e,{maybeSelectedValue:t,...r},i)=>n(Vue(e,{...r,selectedValues:Er(t)},i),`@foldkit/ui/listbox/single.js#anonymous~2`)),J7=()=>{let e=Bue;return n({view:Hue,update:e,selectItem:(t,r)=>n(e(t,z7.SelectedItem({item:r})),`@foldkit/ui/listbox/single.js#selectItem~2`),open:t=>n(e(t,z7.Opened({maybeActiveItemIndex:x()})),`@foldkit/ui/listbox/single.js#open~2`),close:t=>n(e(t,z7.Closed()),`@foldkit/ui/listbox/single.js#close~2`)},`@foldkit/ui/listbox/single.js#create`)},Y7=rO({Loading:{},Failed:{error:A},Ready:{settings:VG}}),X7=rO({Idle:{},Saving:{},Saved:{},Failed:{error:A}}),Z7=rO({Loading:{},Failed:{error:A},Ready:{options:N(LG)}}),Q7=M({deep:K7,smart:K7,fast:K7}),Uue=M({load:Y7,draftRetention:j,save:X7,notificationPermission:A,defaults:VG,models:Z7,modelListboxes:Q7,reasoningListboxes:Q7}),Wue=qS([`dailyMinutes`,`desiredRetention`,`maxNewLessonsPerDay`,`showVisuals`,`reminder`]),$7=nO({SucceededFetchSettings:{settings:VG,defaults:VG},FailedFetchSettings:{error:A},ClickedRetry:{},ClickedDailyMinutes:{minutes:jG},ClickedNewLessonCap:{count:j},MovedRetention:{value:A},ReleasedRetention:{value:A},ToggledVisuals:{},ToggledReminder:{},ChangedReminderTime:{value:A},CompletedRequestNotifications:{permission:A},SucceededSaveSettings:{settings:VG},FailedSaveSettings:{error:A},SucceededFetchModels:{options:N(LG)},FailedFetchModels:{error:A},GotModelListboxMessage:{tier:PG,message:z7},GotReasoningListboxMessage:{tier:PG,message:z7},ToggledFastMode:{tier:PG},ClickedResetPreference:{preference:Wue},ClickedResetPreferences:{},ClickedResetTier:{tier:PG},ClickedResetModels:{}}),e9=F(`FetchSettings`,{messages:[$7.SucceededFetchSettings,$7.FailedFetchSettings],execute:O(function*(){let e=yield*yK,[t,r]=yield*yp([e.settings.get(),e.settings.defaults()],{concurrency:2});return n($7.SucceededFetchSettings({settings:t,defaults:r}),`src/page/settings.ts#anonymous`)}).pipe(Wp(e=>n(E($7.FailedFetchSettings({error:xK(e)})),`src/page/settings.ts#anonymous~2`)))}),Gue=F(`FetchModels`,{messages:[$7.SucceededFetchModels,$7.FailedFetchModels],execute:O(function*(){let e=yield*(yield*yK).settings.models();return n($7.SucceededFetchModels({options:e}),`src/page/settings.ts#anonymous~3`)}).pipe(Wp(e=>n(E($7.FailedFetchModels({error:xK(e)})),`src/page/settings.ts#anonymous~4`)))}),Kue=F(`RequestNotifications`,{messages:[$7.CompletedRequestNotifications],execute:Cp(()=>n(`Notification`in globalThis?globalThis.Notification.requestPermission():Promise.resolve(`unsupported`),`src/page/settings.ts#anonymous~5`)).pipe(Vp(e=>n($7.CompletedRequestNotifications({permission:e}),`src/page/settings.ts#anonymous~6`)),Wp(()=>n(E($7.CompletedRequestNotifications({permission:`unsupported`})),`src/page/settings.ts#anonymous~7`)))}),que=F(`SaveSettings`,{args:{settings:VG},messages:[$7.SucceededSaveSettings,$7.FailedSaveSettings],execute:({settings:e})=>n(O(function*(){let t=yield*(yield*yK).settings.set({payload:e});return n($7.SucceededSaveSettings({settings:t}),`src/page/settings.ts#anonymous~8`)}).pipe(Wp(e=>n(E($7.FailedSaveSettings({error:xK(e)})),`src/page/settings.ts#anonymous~9`))),`src/page/settings.ts#execute`)}),t9=e=>n({deep:q7({id:`${e}-deep`}),smart:q7({id:`${e}-smart`}),fast:q7({id:`${e}-fast`})},`src/page/settings.ts#tierListboxes`),Jue=()=>n({model:{load:Y7.Loading(),draftRetention:.9,save:X7.Idle(),notificationPermission:`unknown`,defaults:HG,models:Z7.Loading(),modelListboxes:t9(`model`),reasoningListboxes:t9(`reasoning`)},commands:[e9(),Gue()]},`src/page/settings.ts#init`),n9=e=>n(tp(globalThis.Number(e)/100,{minimum:zG,maximum:BG}),`src/page/settings.ts#parseRetention`),r9=e=>n((t=>n(Y7.match(e.load,{Loading:()=>n({model:e},`src/page/settings.ts#Loading`),Failed:()=>n({model:e},`src/page/settings.ts#Failed`),Ready:({settings:r})=>{let i=t(r);return n({model:I(e,{load:()=>n(Y7.Ready({settings:i}),`src/page/settings.ts#load`),draftRetention:()=>n(i.desiredRetention,`src/page/settings.ts#draftRetention`),save:()=>n(X7.Saving(),`src/page/settings.ts#save`)}),commands:[que({settings:i})]},`src/page/settings.ts#Ready`)}}),`src/page/settings.ts#anonymous~10`)),`src/page/settings.ts#change`),i9=(e,t,r)=>n({deep:t===`deep`?r:e.deep,smart:t===`smart`?r:e.smart,fast:t===`fast`?r:e.fast},`src/page/settings.ts#withTier`),a9=e=>n(Z7.match(e.models,{Loading:()=>n([],`src/page/settings.ts#Loading~2`),Failed:()=>n([],`src/page/settings.ts#Failed~2`),Ready:({options:e})=>n(e,`src/page/settings.ts#Ready~2`)}),`src/page/settings.ts#modelOptions`),o9=(e,t)=>n((r=>n(r9(r)(i=>n({...i,models:i9(i.models,e,UG(t(i.models[e]),a9(r)))},`src/page/settings.ts#anonymous~12`)),`src/page/settings.ts#anonymous~11`)),`src/page/settings.ts#changeChoice`),s9={dailyMinutes:(e,t)=>n({...e,dailyMinutes:t.dailyMinutes},`src/page/settings.ts#dailyMinutes`),desiredRetention:(e,t)=>n({...e,desiredRetention:t.desiredRetention},`src/page/settings.ts#desiredRetention`),maxNewLessonsPerDay:(e,t)=>n({...e,maxNewLessonsPerDay:t.maxNewLessonsPerDay},`src/page/settings.ts#maxNewLessonsPerDay`),showVisuals:(e,t)=>n({...e,showVisuals:t.showVisuals},`src/page/settings.ts#showVisuals`),reminder:(e,t)=>n({...e,reminder:t.reminder},`src/page/settings.ts#reminder`)},c9=[`dailyMinutes`,`desiredRetention`,`maxNewLessonsPerDay`,`showVisuals`,`reminder`],l9=(e,t,r)=>n(r===`desiredRetention`?Math.round(e.desiredRetention*100)!==Math.round(t.desiredRetention*100):r===`reminder`?e.reminder.isOn!==t.reminder.isOn||e.reminder.time!==t.reminder.time:e[r]!==t[r],`src/page/settings.ts#isPreferenceChanged`),u9=(e,t,r)=>{let i=e.models[r],a=t.models[r];return n(i.model!==a.model||i.reasoning!==a.reasoning||i.fastMode!==a.fastMode,`src/page/settings.ts#isTierChanged`)},d9=J7(),f9=J7(),p9=e=>n(RV({update:d9.update,read:t=>n(S(t.modelListboxes[e]),`src/page/settings.ts#read`),write:(t,r)=>n(I(t,{modelListboxes:t=>n(i9(t,e,r),`src/page/settings.ts#modelListboxes`)}),`src/page/settings.ts#write`),toParentMessage:t=>n($7.GotModelListboxMessage({tier:e,message:t}),`src/page/settings.ts#toParentMessage`),foldOutMessage:B7.match({Selected:({value:t})=>n((r=>n(o9(e,e=>n({...e,model:t},`src/page/settings.ts#anonymous~14`))(r),`src/page/settings.ts#anonymous~13`)),`src/page/settings.ts#Selected`)})}),`src/page/settings.ts#foldModelListbox`),m9=e=>n(RV({update:f9.update,read:t=>n(S(t.reasoningListboxes[e]),`src/page/settings.ts#read~2`),write:(t,r)=>n(I(t,{reasoningListboxes:t=>n(i9(t,e,r),`src/page/settings.ts#reasoningListboxes`)}),`src/page/settings.ts#write~2`),toParentMessage:t=>n($7.GotReasoningListboxMessage({tier:e,message:t}),`src/page/settings.ts#toParentMessage~2`),foldOutMessage:B7.match({Selected:({value:t})=>n((r=>n(o9(e,e=>n({...e,reasoning:t},`src/page/settings.ts#anonymous~16`))(r),`src/page/settings.ts#anonymous~15`)),`src/page/settings.ts#Selected~2`)})}),`src/page/settings.ts#foldReasoningListbox`),Yue={deep:p9(`deep`),smart:p9(`smart`),fast:p9(`fast`)},Xue={deep:m9(`deep`),smart:m9(`smart`),fast:m9(`fast`)},Zue=(e,t)=>n($7.match(t,{SucceededFetchSettings:({settings:t,defaults:r})=>n({model:I(e,{load:()=>n(Y7.Ready({settings:t}),`src/page/settings.ts#load~2`),defaults:()=>n(r,`src/page/settings.ts#defaults`),draftRetention:()=>n(t.desiredRetention,`src/page/settings.ts#draftRetention~2`)})},`src/page/settings.ts#SucceededFetchSettings`),ClickedResetPreference:({preference:t})=>n(r9(e)(r=>n(s9[t](r,e.defaults),`src/page/settings.ts#anonymous~17`)),`src/page/settings.ts#ClickedResetPreference`),ClickedResetPreferences:()=>n(r9(e)(t=>n(c9.reduce((t,r)=>n(s9[r](t,e.defaults),`src/page/settings.ts#anonymous~19`),t),`src/page/settings.ts#anonymous~18`)),`src/page/settings.ts#ClickedResetPreferences`),ClickedResetTier:({tier:t})=>n(o9(t,()=>n(e.defaults.models[t],`src/page/settings.ts#anonymous~20`))(e),`src/page/settings.ts#ClickedResetTier`),ClickedResetModels:()=>n(r9(e)(t=>n({...t,models:e.defaults.models},`src/page/settings.ts#anonymous~21`)),`src/page/settings.ts#ClickedResetModels`),FailedFetchSettings:({error:t})=>n({model:I(e,{load:()=>n(Y7.Failed({error:t}),`src/page/settings.ts#load~3`)})},`src/page/settings.ts#FailedFetchSettings`),ClickedRetry:()=>n({model:I(e,{load:()=>n(Y7.Loading(),`src/page/settings.ts#load~4`)}),commands:[e9()]},`src/page/settings.ts#ClickedRetry`),ClickedDailyMinutes:({minutes:t})=>n(r9(e)(e=>n({...e,dailyMinutes:t},`src/page/settings.ts#anonymous~22`)),`src/page/settings.ts#ClickedDailyMinutes`),ClickedNewLessonCap:({count:t})=>n(r9(e)(e=>n({...e,maxNewLessonsPerDay:t},`src/page/settings.ts#anonymous~23`)),`src/page/settings.ts#ClickedNewLessonCap`),MovedRetention:({value:t})=>n({model:I(e,{draftRetention:()=>n(n9(t),`src/page/settings.ts#draftRetention~3`)})},`src/page/settings.ts#MovedRetention`),ReleasedRetention:({value:t})=>n(r9(e)(e=>n({...e,desiredRetention:n9(t)},`src/page/settings.ts#anonymous~24`)),`src/page/settings.ts#ReleasedRetention`),ToggledVisuals:()=>n(r9(e)(e=>n({...e,showVisuals:!e.showVisuals},`src/page/settings.ts#anonymous~25`)),`src/page/settings.ts#ToggledVisuals`),ToggledReminder:()=>{let t=r9(e)(e=>n({...e,reminder:{...e.reminder,isOn:!e.reminder.isOn}},`src/page/settings.ts#anonymous~26`));return n(Y7.match(e.load,{Loading:()=>n(!1,`src/page/settings.ts#Loading~3`),Failed:()=>n(!1,`src/page/settings.ts#Failed~3`),Ready:({settings:e})=>n(!e.reminder.isOn,`src/page/settings.ts#Ready~3`)})?{model:t.model,commands:[...t.commands??[],Kue()]}:t,`src/page/settings.ts#ToggledReminder`)},ChangedReminderTime:({value:t})=>n(/^\d{2}:\d{2}$/.test(t)?r9(e)(e=>n({...e,reminder:{...e.reminder,time:t}},`src/page/settings.ts#anonymous~27`)):{model:e},`src/page/settings.ts#ChangedReminderTime`),CompletedRequestNotifications:({permission:t})=>n({model:I(e,{notificationPermission:()=>n(t,`src/page/settings.ts#notificationPermission`)})},`src/page/settings.ts#CompletedRequestNotifications`),SucceededSaveSettings:({settings:t})=>n({model:I(e,{load:()=>n(Y7.Ready({settings:t}),`src/page/settings.ts#load~5`),draftRetention:()=>n(t.desiredRetention,`src/page/settings.ts#draftRetention~4`),save:()=>n(X7.Saved(),`src/page/settings.ts#save~2`)})},`src/page/settings.ts#SucceededSaveSettings`),FailedSaveSettings:({error:t})=>n({model:I(e,{save:()=>n(X7.Failed({error:t}),`src/page/settings.ts#save~3`)})},`src/page/settings.ts#FailedSaveSettings`),SucceededFetchModels:({options:t})=>n({model:I(e,{models:()=>n(Z7.Ready({options:t}),`src/page/settings.ts#models`)})},`src/page/settings.ts#SucceededFetchModels`),FailedFetchModels:({error:t})=>n({model:I(e,{models:()=>n(Z7.Failed({error:t}),`src/page/settings.ts#models~2`)})},`src/page/settings.ts#FailedFetchModels`),GotModelListboxMessage:({tier:t,message:r})=>n(Yue[t](e,r),`src/page/settings.ts#GotModelListboxMessage`),GotReasoningListboxMessage:({tier:t,message:r})=>n(Xue[t](e,r),`src/page/settings.ts#GotReasoningListboxMessage`),ToggledFastMode:({tier:t})=>n(o9(t,e=>n({...e,fastMode:!e.fastMode},`src/page/settings.ts#anonymous~28`))(e),`src/page/settings.ts#ToggledFastMode`)}),`src/page/settings.ts#update`),Que=[10,20,30,45],$ue=[1,2,3,4,5],h9=e=>n(`${Math.round(e*100)}%`,`src/page/settings.ts#percent`),ede=e=>{let t=YK(e),r=100-Math.round(e*100);return Math.abs(e-.9)<.005?n(`The recommended balance: you remember about 9 in 10 things when they come up, for a moderate number of reviews.`,`src/page/settings.ts#retentionPreview`):n(e<.9?`Reviews come about ${t.toFixed(1)}× further apart than at 90%. Less work, but expect to have forgotten about ${r} in 100 things by the time they come up.`:`Reviews come about ${(1/t).toFixed(1)}× as often as at 90%. More work, for remembering ${100-r} in 100 things. Worth it before an exam.`,`src/page/settings.ts#retentionPreview`)},g9=(e,t,r,i,a,o)=>n(o.div([o.Role(`radiogroup`),o.AriaLabel(a),o.Class(`inline-flex w-fit rounded-lg bg-muted p-1`)],T(e,e=>n(o.button([o.Type(`button`),o.Role(`radio`),o.AriaChecked(t(e)),o.OnClick(i(e)),o.Class(CK(`press h-8 min-w-12 rounded-md px-3 text-sm font-medium tabular-nums transition-colors`,t(e)?`bg-background text-foreground shadow-sm dark:bg-input/40`:`text-muted-foreground hover:text-foreground`))],[r(e)]),`src/page/settings.ts#anonymous~29`))),`src/page/settings.ts#segmented`),tde=(e,t,r)=>n(r.button([r.Type(`button`),r.AriaLabel(e),r.Title(e),r.OnClick(t),r.Class(`press pop-in inline-flex size-7 shrink-0 items-center justify-center rounded-md text-muted-foreground outline-none hover:bg-accent hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50`)],[L(`undo`,`size-3.5`,r)]),`src/page/settings.ts#undoButton`),_9=(e,t,r)=>n(r.button([r.Type(`button`),r.AriaLabel(e),r.Title(e),r.OnClick(t),r.Class(R(`Ghost`,`Small`,`pop-in shrink-0 text-muted-foreground`))],[L(`undo`,``,r),`Reset all`]),`src/page/settings.ts#resetAllButton`),v9=(e,t,r,i)=>n(i.div([i.Class(`flex items-start justify-between gap-4 p-5 sm:p-6`)],[i.div([i.Class(`flex flex-col gap-1`)],[i.h2([i.Class(`font-semibold`)],[e]),i.p([i.Class(`text-sm text-muted-foreground`)],[t])]),r]),`src/page/settings.ts#cardHeader`),y9=(e,t,r,i,a)=>n(a.div([a.Class(`flex min-h-7 items-center gap-1`)],[a.h3([a.Class(`font-medium`)],[e]),t?tde(r,i,a):a.empty]),`src/page/settings.ts#rowTitle`),b9=(e,t,r,i,a,o)=>n(y9(e,l9(i,a,t),`Reset ${e.toLowerCase()} to ${r}`,$7.ClickedResetPreference({preference:t}),o),`src/page/settings.ts#preferenceTitle`),x9=(e,t,r,i)=>n(i.div([i.Class(`flex flex-col gap-3 p-5 sm:p-6`)],[i.div([i.Class(`flex flex-col gap-1`)],[e,i.p([i.Class(`text-sm text-muted-foreground`)],[t])]),r]),`src/page/settings.ts#row`),nde=(e,t)=>n(t.div([t.Class(`flex flex-col gap-3`)],[t.div([t.Class(`flex items-center gap-4`)],[t.span([t.Class(`text-xs text-muted-foreground`)],[`85%`]),t.input([t.Type(`range`),t.Min(`85`),t.Max(`95`),t.Step(`1`),t.Value(`${Math.round(e.draftRetention*100)}`),t.AriaLabel(`Desired retention, in percent`),t.OnInput(e=>n($7.MovedRetention({value:e}),`src/page/settings.ts#anonymous~30`)),t.OnChange(e=>n($7.ReleasedRetention({value:e}),`src/page/settings.ts#anonymous~31`)),t.Class(`h-2 flex-1 cursor-pointer accent-primary`)]),t.span([t.Class(`text-xs text-muted-foreground`)],[`95%`]),t.span([t.Class(`w-12 text-right text-lg font-semibold text-primary tabular-nums`)],[h9(e.draftRetention)])]),t.p([t.AriaLive(`polite`),t.Class(`text-sm text-muted-foreground`)],[ede(e.draftRetention)])]),`src/page/settings.ts#retentionControl`),S9=(e,t,r,i)=>n(i.button([i.Type(`button`),i.Role(`switch`),i.AriaChecked(e),i.AriaLabel(t),i.OnClick(r),i.Class(CK(`press relative inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full transition-colors focus-visible:ring-[3px] focus-visible:ring-ring/50 outline-none`,e?`bg-primary`:`bg-input dark:bg-input/80`))],[i.span([i.Class(CK(`inline-block size-5 rounded-full bg-background shadow-sm transition-transform`,e?`translate-x-5.5`:`translate-x-0.5`))],[])]),`src/page/settings.ts#switchButton`),C9=[{tier:`deep`,title:`Knowledge maps`,description:`Merges every source into your concept map and double-checks it. Runs once per subject, so a stronger model is worth it here.`},{tier:`smart`,title:`Research and teaching`,description:`Plans and runs the source research, writes lessons, review questions and visuals, and answers tutor questions.`},{tier:`fast`,title:`Quick grading`,description:`Grades written answers and makes the placement quiz’s first guess. Speed matters most here.`}],w9={auto:`Auto`,low:`Low`,medium:`Medium`,high:`High`,xhigh:`Extra high`,max:`Max`},T9=`press inline-flex h-9 w-full items-center rounded-lg border border-input bg-background px-3 text-left text-sm shadow-xs outline-none hover:bg-accent focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:opacity-50 data-[disabled]:cursor-not-allowed data-[disabled]:opacity-60 dark:bg-input/30`,E9=`z-50 max-h-96 overflow-y-auto rounded-xl border bg-popover p-1 text-popover-foreground shadow-lg outline-none`,D9={placement:`bottom-start`,gap:6,padding:8},O9=(e,t)=>n(t.span([t.Class(`flex w-full items-center justify-between gap-2`)],[t.span([t.Class(`truncate`)],[e]),L(`chevronDown`,`size-4 shrink-0 opacity-60`,t)]),`src/page/settings.ts#triggerContent`),k9=e=>n(CK(`cursor-pointer rounded-lg`,e&&`bg-accent text-accent-foreground`),`src/page/settings.ts#itemClass`),rde=(e,t,r)=>n(r.div([r.Class(`flex items-start gap-2 px-3 py-2`)],[r.div([r.Class(`flex min-w-0 flex-1 flex-col gap-0.5`)],[r.span([r.Class(`flex items-center gap-1.5 text-sm font-medium`)],[e.displayName,e.supportsFastMode?L(`zap`,`size-3 text-primary`,r):r.empty]),r.span([r.Class(`text-xs text-muted-foreground`)],[e.description])]),t?L(`check`,`mt-0.5 size-4 text-primary`,r):r.empty]),`src/page/settings.ts#modelItem`),ide=(e,t)=>{let r=e.defaults.models[t];return n(`${w(_a(a9(e),e=>n(e.value===r.model,`src/page/settings.ts#anonymous~32`)),{onNone:()=>n(r.model,`src/page/settings.ts#onNone`),onSome:e=>n(e.displayName,`src/page/settings.ts#onSome`)})}, ${w9[r.reasoning]} reasoning${r.fastMode?`, fast mode`:``}`,`src/page/settings.ts#defaultChoiceLabel`)},ade=(e,t,r,i)=>{let a=t.models[r.tier],o=a9(e),s=_a(o,e=>n(e.value===a.model,`src/page/settings.ts#anonymous~33`)),c=[`auto`,...w(s,{onNone:()=>n([],`src/page/settings.ts#onNone~2`),onSome:e=>n(e.reasoningLevels,`src/page/settings.ts#onSome~2`)})],l=e.models._tag!==`Ready`;return n(i.div([i.Class(`flex flex-col gap-3 p-5 sm:p-6`)],[i.div([i.Class(`flex flex-col gap-1`)],[y9(r.title,u9(t,e.defaults,r.tier),`Reset ${r.title.toLowerCase()} to ${ide(e,r.tier)}`,$7.ClickedResetTier({tier:r.tier}),i),i.p([i.Class(`text-sm text-muted-foreground`)],[r.description])]),i.div([i.Class(`flex flex-wrap items-center gap-2`)],[i.div([i.Class(`w-full sm:w-64`)],[i.submodel({slotId:`model-${r.tier}`,model:e.modelListboxes[r.tier],view:d9.view,viewInputs:{items:o,itemToValue:e=>n(e.value,`src/page/settings.ts#itemToValue`),maybeSelectedValue:S(a.model),isDisabled:l,ariaLabel:`${r.title} model`,buttonContent:O9(w(s,{onNone:()=>n(a.model,`src/page/settings.ts#onNone~3`),onSome:e=>n(e.displayName,`src/page/settings.ts#onSome~3`)}),i),buttonClassName:T9,itemsClassName:CK(E9,`w-80`),backdropClassName:`fixed inset-0 z-40`,anchor:D9,itemGroupKey:e=>n(e.isLatest?`latest`:`pinned`,`src/page/settings.ts#itemGroupKey`),groupToHeading:e=>n({content:i.span([],[e===`latest`?`Latest · moves to new versions`:`Pinned versions`]),className:`px-3 pt-2 pb-1 text-[11px] font-medium tracking-wide text-muted-foreground uppercase`},`src/page/settings.ts#groupToHeading`),itemToSearchText:e=>n(e.displayName,`src/page/settings.ts#itemToSearchText`),itemToConfig:(e,{isActive:t,isSelected:r})=>n({className:k9(t),content:rde(e,r,i)},`src/page/settings.ts#itemToConfig`)},toParentMessage:e=>n($7.GotModelListboxMessage({tier:r.tier,message:e}),`src/page/settings.ts#toParentMessage~3`)})]),i.div([i.Class(`w-40`)],[i.submodel({slotId:`reasoning-${r.tier}`,model:e.reasoningListboxes[r.tier],view:f9.view,viewInputs:{items:c,maybeSelectedValue:S(a.reasoning),isDisabled:l||c.length===1,ariaLabel:`${r.title} reasoning`,buttonContent:O9(`${w9[a.reasoning]} reasoning`,i),buttonClassName:T9,itemsClassName:CK(E9,`w-56`),backdropClassName:`fixed inset-0 z-40`,anchor:D9,itemToConfig:(e,{isActive:t,isSelected:r})=>n({className:k9(t),content:i.div([i.Class(`flex items-start gap-2 px-3 py-2`)],[i.div([i.Class(`flex flex-1 flex-col gap-0.5`)],[i.span([i.Class(`text-sm font-medium`)],[w9[e]]),e===`auto`?i.span([i.Class(`text-xs text-muted-foreground`)],[`Tuned per step: quick where it can be`]):i.empty]),r?L(`check`,`mt-0.5 size-4 text-primary`,i):i.empty])},`src/page/settings.ts#itemToConfig~2`)},toParentMessage:e=>n($7.GotReasoningListboxMessage({tier:r.tier,message:e}),`src/page/settings.ts#toParentMessage~4`)})]),jr(s,e=>n(e.supportsFastMode,`src/page/settings.ts#anonymous~34`))?i.button([i.Type(`button`),i.Role(`switch`),i.AriaChecked(a.fastMode),i.Title(`Faster responses from the same model. It draws on your plan’s usage at a higher rate.`),i.OnClick($7.ToggledFastMode({tier:r.tier})),i.Class(CK(`press inline-flex h-9 items-center gap-1.5 rounded-lg border px-3 text-sm outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50`,a.fastMode?`border-primary/50 bg-primary/10 text-primary`:`border-input text-muted-foreground hover:bg-accent`))],[L(`zap`,`size-3.5`,i),`Fast mode`]):i.empty])]),`src/page/settings.ts#tierRow`)},A9=4,j9=e=>n(Math.round(A9*Math.max(XG(e.models.smart,`smart`,`medium`),XG(e.models.deep,`deep`,`low`))),`src/page/settings.ts#researchMinutes`),ode=(e,t)=>n(j9(e)>=A9*1.5?t.p([t.Class(`mx-5 mb-4 flex items-start gap-2 rounded-lg bg-amber-500/10 px-3 py-2 text-sm text-amber-700 sm:mx-6 dark:text-amber-300`)],[L(`clock`,`mt-0.5 size-4 shrink-0`,t),`With these choices, researching a new subject takes about ${j9(e)} minutes instead of ${A9}, and lessons take longer to write. BaviTutor allows them the extra time.`]):t.empty,`src/page/settings.ts#researchTimeNote`),sde=(e,t,r)=>n(r.section([r.Class(_q(`reveal divide-y`))],[v9(`AI models`,`Which Claude models do the work, through your Claude login. Bigger models and more reasoning take longer and use more of your plan’s allowance.`,Pa(C9,r=>n(u9(t,e.defaults,r.tier),`src/page/settings.ts#anonymous~35`))?_9(`Reset every AI model setting to its default`,$7.ClickedResetModels(),r):r.empty,r),ode(t,r),Z7.match(e.models,{Loading:()=>n(r.empty,`src/page/settings.ts#Loading~4`),Ready:()=>n(r.empty,`src/page/settings.ts#Ready~4`),Failed:({error:e})=>n(r.p([r.Class(`px-5 pb-4 text-sm text-destructive sm:px-6`)],[`Could not list models: ${e}`]),`src/page/settings.ts#Failed~4`)}),...T(C9,i=>n(ade(e,t,i,r),`src/page/settings.ts#anonymous~36`))]),`src/page/settings.ts#modelsCard`),cde=(e,t)=>n(X7.match(e,{Idle:()=>n(t.empty,`src/page/settings.ts#Idle`),Saving:()=>n(t.span([t.Class(gq(`Neutral`))],[L(`refresh`,`spinner`,t),`Saving`]),`src/page/settings.ts#Saving`),Saved:()=>n(t.span([t.Class(gq(`Success`))],[L(`check`,``,t),`Saved`]),`src/page/settings.ts#Saved`),Failed:({error:e})=>n(t.span([t.Class(gq(`Destructive`)),t.Title(e)],[L(`alert`,``,t),`Not saved`]),`src/page/settings.ts#Failed~5`)}),`src/page/settings.ts#saveStatus`),lde=(e,t,r)=>n(r.section([r.Class(_q(`reveal divide-y`))],[v9(`Your learning`,`Time, memory and pace. BaviTutor plans every day around these.`,Pa(c9,r=>n(l9(t,e.defaults,r),`src/page/settings.ts#anonymous~37`))?_9(`Reset every learning setting to its default`,$7.ClickedResetPreferences(),r):r.empty,r),x9(b9(`Daily time`,`dailyMinutes`,`${e.defaults.dailyMinutes} min`,t,e.defaults,r),`Reviews come first; new lessons fill whatever is left. You can always keep going.`,g9(Que,e=>n(e===t.dailyMinutes,`src/page/settings.ts#anonymous~38`),e=>n(`${e} min`,`src/page/settings.ts#anonymous~39`),e=>n($7.ClickedDailyMinutes({minutes:e}),`src/page/settings.ts#anonymous~40`),`Daily time`,r),r),x9(b9(`How much to remember`,`desiredRetention`,h9(e.defaults.desiredRetention),t,e.defaults,r),`Your target chance of recalling something when its review comes up. Higher means more reviews.`,nde(e,r),r),x9(b9(`New concepts per day`,`maxNewLessonsPerDay`,`${e.defaults.maxNewLessonsPerDay}`,t,e.defaults,r),`A cap on brand-new concepts keeps the coming reviews manageable. 3 is a steady pace; 5 is intensive.`,g9($ue,e=>n(e===t.maxNewLessonsPerDay,`src/page/settings.ts#anonymous~41`),e=>n(`${e}`,`src/page/settings.ts#anonymous~42`),e=>n($7.ClickedNewLessonCap({count:e}),`src/page/settings.ts#anonymous~43`),`New concepts per day`,r),r),r.div([r.Class(`flex items-center justify-between gap-6 p-5 sm:p-6`)],[r.div([r.Class(`flex flex-col gap-1`)],[b9(`Visual explanations`,`showVisuals`,e.defaults.showVisuals?`on`:`off`,t,e.defaults,r),r.p([r.Class(`text-sm text-muted-foreground`)],[`Animated, step-by-step diagrams inside lessons. Off means text-only lessons that load faster.`])]),S9(t.showVisuals,`Visual explanations`,$7.ToggledVisuals(),r)]),ude(e,t,r)]),`src/page/settings.ts#settingsView`),ude=(e,t,r)=>n(r.div([r.Class(`flex flex-col gap-3 p-5 sm:p-6`)],[r.div([r.Class(`flex items-start justify-between gap-6`)],[r.div([r.Class(`flex flex-col gap-1`)],[b9(`Daily reminder`,`reminder`,e.defaults.reminder.isOn?e.defaults.reminder.time:`off`,t,e.defaults,r),r.p([r.Class(`text-sm text-muted-foreground`)],[`A nudge at the same time each day helps the habit stick. It appears as a notification while BaviTutor is open in a browser tab, so pin the tab, and only when something is due.`])]),S9(t.reminder.isOn,`Daily reminder`,$7.ToggledReminder(),r)]),t.reminder.isOn?r.div([r.Class(`reveal flex flex-wrap items-center gap-3 text-sm`)],[r.label([r.For(`reminder-time`),r.Class(`text-muted-foreground`)],[`Remind me at`]),r.input([r.Id(`reminder-time`),r.Type(`time`),r.Value(t.reminder.time),r.OnChange(e=>n($7.ChangedReminderTime({value:e}),`src/page/settings.ts#anonymous~44`)),r.Class(`h-8 rounded-md border border-input bg-transparent px-2 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 dark:bg-input/30 dark:[color-scheme:dark]`)]),e.notificationPermission===`denied`?r.span([r.Class(`text-destructive`)],[`Notifications are blocked for this site. Allow them in the browser’s site settings.`]):e.notificationPermission===`unsupported`?r.span([r.Class(`text-destructive`)],[`This browser cannot show notifications.`]):r.empty]):r.empty]),`src/page/settings.ts#reminderRow`),dde=hM((e,t)=>n(t.div([t.Class(`mx-auto flex w-full max-w-2xl flex-col gap-6 px-5 py-10`)],[t.div([t.Class(`flex items-end justify-between gap-4`)],[t.div([t.Class(`flex flex-col gap-1`)],[t.h1([t.Class(`text-2xl font-semibold tracking-tight`)],[`Settings`]),t.p([t.Class(`text-sm text-muted-foreground`)],[`Shape BaviTutor around your day. Changes save as you go.`])]),cde(e.save,t)]),Y7.match(e.load,{Loading:()=>n(t.div([t.Class(_q(`h-96 animate-pulse bg-muted/40`))],[]),`src/page/settings.ts#Loading~5`),Failed:({error:e})=>n(t.div([t.Class(_q(`flex flex-col items-start gap-3 p-6`))],[t.p([t.Class(`text-sm text-destructive`)],[e]),t.button([t.Type(`button`),t.OnClick($7.ClickedRetry()),t.Class(R(`Outline`,`Small`))],[L(`refresh`,``,t),`Try again`])]),`src/page/settings.ts#Failed~6`),Ready:({settings:r})=>n(t.div([t.Class(`flex flex-col gap-6`)],[lde(e,r,t),sde(e,r,t)]),`src/page/settings.ts#Ready~5`)})]),`src/page/settings.ts#anonymous~45`)),fde=`Settings · BaviTutor`,M9=fO(N(nK),A),N9=rO({Nothing:{},Example:{exampleId:A},Generated:{visualId:A}}),P9=rO({Idle:{},Submitting:{},Failed:{error:A}}),pde=M({brief:A,conceptTitle:A,context:A,submission:P9,history:M9.schema,selection:N9,maybeFrame:CC(W6)}),F9=nO({UpdatedBrief:{value:A},UpdatedConceptTitle:{value:A},UpdatedContext:{value:A},ClickedPreset:{brief:A},SubmittedBrief:{},SucceededGenerateVisual:{visual:nK},FailedGenerateVisual:{error:A},SucceededFetchHistory:{visuals:N(nK)},FailedFetchHistory:{error:A},TickedRefresh:{},SelectedExample:{exampleId:A},SelectedVisual:{visualId:A},GotVizFrameMessage:{message:K6}}),mde=[`show that a fraction a/b is a parts of b equal pieces using a pie`,`show why the slope of a line is constant: rise over run on two different triangles`,`binary search halving an array`],hde=co(4),I9=F(`FetchHistory`,{messages:[F9.SucceededFetchHistory,F9.FailedFetchHistory],execute:O(function*(){let e=yield*(yield*yK).visuals.listDev();return n(F9.SucceededFetchHistory({visuals:e}),`src/page/devVisuals.ts#anonymous`)}).pipe(Wp(e=>n(E(F9.FailedFetchHistory({error:xK(e)})),`src/page/devVisuals.ts#anonymous~2`)))}),gde=F(`GenerateVisual`,{args:{brief:A,conceptTitle:A,context:A},messages:[F9.SucceededGenerateVisual,F9.FailedGenerateVisual],execute:e=>n(O(function*(){let t=yield*(yield*yK).visuals.generateDev({payload:e});return n(F9.SucceededGenerateVisual({visual:t}),`src/page/devVisuals.ts#anonymous~3`)}).pipe(Wp(e=>n(E(F9.FailedGenerateVisual({error:xK(e)})),`src/page/devVisuals.ts#anonymous~4`))),`src/page/devVisuals.ts#execute`)}),_de=()=>n({model:{brief:``,conceptTitle:``,context:``,submission:P9.Idle(),history:M9.Loading(),selection:N9.Nothing(),maybeFrame:x()},commands:[I9()]},`src/page/devVisuals.ts#init`),L9=e=>n(F9.GotVizFrameMessage({message:e}),`src/page/devVisuals.ts#toFrameMessage`),vde=RV({update:e8,read:e=>n(e.maybeFrame,`src/page/devVisuals.ts#read`),write:(e,t)=>n(I(e,{maybeFrame:()=>n(S(t),`src/page/devVisuals.ts#maybeFrame`)}),`src/page/devVisuals.ts#write`),toParentMessage:L9,foldOutMessage:q6.match({ReachedLastStep:()=>n((e=>n({model:e},`src/page/devVisuals.ts#anonymous~5`)),`src/page/devVisuals.ts#ReachedLastStep`),BecameUnavailable:()=>n((e=>n({model:e,commands:[I9()]},`src/page/devVisuals.ts#anonymous~6`)),`src/page/devVisuals.ts#BecameUnavailable`)})}),R9=(e,t)=>n(WV(Z6({goalId:eK,visualId:t}),{toParentModel:r=>n(I(e,{selection:()=>n(N9.Generated({visualId:t}),`src/page/devVisuals.ts#selection`),maybeFrame:()=>n(S(r),`src/page/devVisuals.ts#maybeFrame~2`)}),`src/page/devVisuals.ts#toParentModel`),toParentMessage:L9}),`src/page/devVisuals.ts#showGenerated`),yde=(e,t)=>n(w(_a(R6,e=>n(e.id===t,`src/page/devVisuals.ts#anonymous~7`)),{onNone:()=>n({model:e},`src/page/devVisuals.ts#onNone`),onSome:r=>n({model:I(e,{selection:()=>n(N9.Example({exampleId:t}),`src/page/devVisuals.ts#selection~2`),maybeFrame:()=>n(S(Xae({key:r.id,code:r.code,title:r.title})),`src/page/devVisuals.ts#maybeFrame~3`)})},`src/page/devVisuals.ts#onSome`)}),`src/page/devVisuals.ts#showExample`),bde=(e,t)=>n(F9.match(t,{UpdatedBrief:({value:t})=>n({model:I(e,{brief:()=>n(t,`src/page/devVisuals.ts#brief`)})},`src/page/devVisuals.ts#UpdatedBrief`),UpdatedConceptTitle:({value:t})=>n({model:I(e,{conceptTitle:()=>n(t,`src/page/devVisuals.ts#conceptTitle`)})},`src/page/devVisuals.ts#UpdatedConceptTitle`),UpdatedContext:({value:t})=>n({model:I(e,{context:()=>n(t,`src/page/devVisuals.ts#context`)})},`src/page/devVisuals.ts#UpdatedContext`),ClickedPreset:({brief:t})=>n({model:I(e,{brief:()=>n(t,`src/page/devVisuals.ts#brief~2`)})},`src/page/devVisuals.ts#ClickedPreset`),SubmittedBrief:()=>{let t=rp(e.brief);return n(t.length===0||e.submission._tag===`Submitting`?{model:e}:{model:I(e,{submission:()=>n(P9.Submitting(),`src/page/devVisuals.ts#submission`)}),commands:[gde({brief:t,conceptTitle:rp(e.conceptTitle),context:rp(e.context)})]},`src/page/devVisuals.ts#SubmittedBrief`)},SucceededGenerateVisual:({visual:t})=>{let r=R9(I(e,{submission:()=>n(P9.Idle(),`src/page/devVisuals.ts#submission~2`)}),t.visualId);return n({model:r.model,commands:[...r.commands??[],I9()]},`src/page/devVisuals.ts#SucceededGenerateVisual`)},FailedGenerateVisual:({error:t})=>n({model:I(e,{submission:()=>n(P9.Failed({error:t}),`src/page/devVisuals.ts#submission~3`)})},`src/page/devVisuals.ts#FailedGenerateVisual`),SucceededFetchHistory:({visuals:t})=>n({model:I(e,{history:()=>n(M9.Success({data:t}),`src/page/devVisuals.ts#history`)})},`src/page/devVisuals.ts#SucceededFetchHistory`),FailedFetchHistory:({error:t})=>n({model:I(e,{history:()=>n(M9.Failure({error:t}),`src/page/devVisuals.ts#history~2`)})},`src/page/devVisuals.ts#FailedFetchHistory`),TickedRefresh:()=>n({model:e,commands:[I9()]},`src/page/devVisuals.ts#TickedRefresh`),SelectedExample:({exampleId:t})=>n(yde(e,t),`src/page/devVisuals.ts#SelectedExample`),SelectedVisual:({visualId:t})=>n(R9(e,t),`src/page/devVisuals.ts#SelectedVisual`),GotVizFrameMessage:({message:t})=>n(vde(e,t),`src/page/devVisuals.ts#GotVizFrameMessage`)}),`src/page/devVisuals.ts#update`),xde=e=>n(w(hO(e.history),{onNone:()=>n(!1,`src/page/devVisuals.ts#onNone~2`),onSome:e=>n(Pa(e,e=>n(e.status===`Generating`,`src/page/devVisuals.ts#anonymous~8`)),`src/page/devVisuals.ts#onSome~2`)}),`src/page/devVisuals.ts#isAnyGenerating`),Sde=aR(rR()(e=>n({refreshWhileGenerating:e({isPolling:RS},{modelToDependencies:e=>n({isPolling:xde(e)},`src/page/devVisuals.ts#modelToDependencies`),dependenciesToStream:({isPolling:e})=>n(e?hE(hde).pipe(LE(1),kE(()=>n(F9.TickedRefresh(),`src/page/devVisuals.ts#anonymous~10`))):yE,`src/page/devVisuals.ts#dependenciesToStream`)})},`src/page/devVisuals.ts#anonymous~9`)),uR(t8)({read:e=>n(e.maybeFrame,`src/page/devVisuals.ts#read~2`),toParentMessage:L9})),Cde=a8({showDetails:!0}),z9={Generating:`Info`,Ready:`Success`,Failed:`Destructive`,Skipped:`Neutral`},B9=(e,t)=>n(t.h2([t.Class(`text-xs font-semibold tracking-wide text-muted-foreground uppercase`)],[e]),`src/page/devVisuals.ts#sectionTitle`),wde=e=>n(N9.matchOrElse(e.selection,{Generated:({visualId:t})=>n(Cr(hO(e.history),e=>n(_a(e,e=>n(e.visualId===t,`src/page/devVisuals.ts#anonymous~12`)),`src/page/devVisuals.ts#anonymous~11`)),`src/page/devVisuals.ts#Generated`)},()=>n(x(),`src/page/devVisuals.ts#anonymous~13`)),`src/page/devVisuals.ts#selectedVisual`),Tde=(e,t)=>n(w(wde(e),{onNone:()=>n(t.empty,`src/page/devVisuals.ts#onNone~3`),onSome:e=>n(t.div([t.Class(_q(`flex flex-col gap-2 p-4 text-sm`))],[t.div([t.Class(`flex flex-wrap items-center gap-2`)],[t.span([t.Class(gq(z9[e.status]))],[e.status]),t.span([t.Class(`text-muted-foreground`)],[`${e.attempts} attempt${e.attempts===1?``:`s`}`]),t.code([t.Class(`ml-auto text-xs text-muted-foreground`)],[e.visualId])]),t.p([t.Class(`font-medium`)],[e.brief]),e.reviewNote.length>0?t.p([t.Class(`text-muted-foreground`)],[t.span([t.Class(`font-medium text-foreground`)],[`Review: `]),e.reviewNote]):t.empty]),`src/page/devVisuals.ts#onSome~3`)}),`src/page/devVisuals.ts#detailsView`),Ede=(e,t)=>n(t.div([t.Class(`flex min-w-0 flex-col gap-4`)],[w(e.maybeFrame,{onNone:()=>n(t.div([t.Class(_q(`flex aspect-[16/10] flex-col items-center justify-center gap-2 p-6 text-center text-sm text-muted-foreground`))],[L(`sparkles`,`size-5`,t),`Pick an example, or generate a visual from a brief.`]),`src/page/devVisuals.ts#onNone~4`),onSome:e=>n(t.keyed(`div`)(e.frameId,[],[t.submodel({slotId:`viz-frame`,model:e,view:Cde,toParentMessage:L9})]),`src/page/devVisuals.ts#onSome~4`)}),Tde(e,t)]),`src/page/devVisuals.ts#stageView`),V9=e=>n(CK(`press flex w-full items-center gap-2 rounded-lg border px-3 py-2 text-left text-sm transition-colors`,{"border-primary bg-primary/8":e,"hover:bg-accent/50":!e}),`src/page/devVisuals.ts#listButtonClass`),Dde=(e,t)=>n(t.section([t.Class(`flex flex-col gap-2`)],[B9(`Examples`,t),...T(R6,r=>n(t.keyed(`button`)(r.id,[t.Type(`button`),t.OnClick(F9.SelectedExample({exampleId:r.id})),t.Class(V9(N9.matchOrElse(e.selection,{Example:({exampleId:e})=>n(e===r.id,`src/page/devVisuals.ts#Example`)},()=>n(!1,`src/page/devVisuals.ts#anonymous~15`))))],[L(`play`,`size-3.5 text-primary`,t),r.title]),`src/page/devVisuals.ts#anonymous~14`))]),`src/page/devVisuals.ts#examplesView`),Ode=(e,t)=>{let r=e.submission._tag===`Submitting`;return n(t.form([t.OnSubmit(F9.SubmittedBrief()),t.Class(`flex flex-col gap-2`)],[B9(`Generate from a brief`,t),t.textarea([t.Value(e.brief),t.Rows(4),t.AriaLabel(`Visual brief`),t.Placeholder(`One idea, the concrete labelled elements, and the insight to make visible…`),t.OnInput(e=>n(F9.UpdatedBrief({value:e}),`src/page/devVisuals.ts#anonymous~16`)),t.Class(vq(`resize-y text-sm`))]),t.div([t.Class(`flex flex-wrap gap-1.5`)],T(mde,e=>n(t.keyed(`button`)(e,[t.Type(`button`),t.Title(e),t.OnClick(F9.ClickedPreset({brief:e})),t.Class(gq(`Neutral`,`press max-w-full cursor-pointer truncate hover:bg-accent`))],[e]),`src/page/devVisuals.ts#anonymous~17`))),t.input([t.Value(e.conceptTitle),t.AriaLabel(`Concept title (optional)`),t.Placeholder(`Concept title (optional)`),t.OnInput(e=>n(F9.UpdatedConceptTitle({value:e}),`src/page/devVisuals.ts#anonymous~18`)),t.Class(vq(`text-sm`))]),t.textarea([t.Value(e.context),t.Rows(2),t.AriaLabel(`Lesson text (optional)`),t.Placeholder(`Lesson text the visual sits next to (optional)`),t.OnInput(e=>n(F9.UpdatedContext({value:e}),`src/page/devVisuals.ts#anonymous~19`)),t.Class(vq(`resize-y text-sm`))]),t.button([t.Type(`submit`),t.Disabled(r||rp(e.brief).length===0),t.Class(R(`Primary`,`Medium`))],[r?L(`refresh`,`spinner`,t):L(`sparkles`,``,t),r?`Starting…`:`Generate`]),P9.matchOrElse(e.submission,{Failed:({error:e})=>n(t.p([t.Class(`text-sm text-destructive`)],[e]),`src/page/devVisuals.ts#Failed`)},()=>n(t.empty,`src/page/devVisuals.ts#anonymous~20`))]),`src/page/devVisuals.ts#formView`)},kde=(e,t,r)=>n(r.keyed(`button`)(t.visualId,[r.Type(`button`),r.OnClick(F9.SelectedVisual({visualId:t.visualId})),r.Class(V9(N9.matchOrElse(e.selection,{Generated:({visualId:e})=>n(e===t.visualId,`src/page/devVisuals.ts#Generated~2`)},()=>n(!1,`src/page/devVisuals.ts#anonymous~21`))))],[r.span([r.Class(gq(z9[t.status]))],[t.status===`Generating`?L(`refresh`,`spinner`,r):r.empty,t.status]),r.span([r.Class(`min-w-0 flex-1 truncate`)],[t.brief])]),`src/page/devVisuals.ts#historyItemView`),Ade=(e,t)=>n(t.section([t.Class(`flex flex-col gap-2`)],[B9(`Recent`,t),pO(e.history,{onIdle:()=>n(t.empty,`src/page/devVisuals.ts#onIdle`),onLoading:()=>n(t.p([t.Class(`text-sm text-muted-foreground`)],[`Loading…`]),`src/page/devVisuals.ts#onLoading`),onRefreshing:r=>n(H9(e,r,t),`src/page/devVisuals.ts#onRefreshing`),onFailure:e=>n(t.p([t.Class(`text-sm text-destructive`)],[e]),`src/page/devVisuals.ts#onFailure`),onStale:({data:r})=>n(H9(e,r,t),`src/page/devVisuals.ts#onStale`),onSuccess:r=>n(H9(e,r,t),`src/page/devVisuals.ts#onSuccess`)})]),`src/page/devVisuals.ts#historyView`),H9=(e,t,r)=>n(Ui(t,{onEmpty:()=>n(r.p([r.Class(`text-sm text-muted-foreground`)],[`Nothing yet.`]),`src/page/devVisuals.ts#onEmpty`),onNonEmpty:t=>n(r.div([r.Class(`flex flex-col gap-1.5`)],T(t,t=>n(kde(e,t,r),`src/page/devVisuals.ts#anonymous~22`))),`src/page/devVisuals.ts#onNonEmpty`)}),`src/page/devVisuals.ts#historyListView`),jde=hM((e,t)=>n(t.div([t.Class(`mx-auto flex w-full max-w-7xl flex-col gap-6 px-5 py-8`)],[t.header([t.Class(`flex flex-col gap-1`)],[t.div([t.Class(`flex items-center gap-2`)],[t.h1([t.Class(`text-2xl font-semibold tracking-tight`)],[`Visual explanations`]),t.span([t.Class(gq(`Warning`))],[`dev`])]),t.p([t.Class(`max-w-3xl text-sm text-muted-foreground`)],[`Preview the hand-written bv scenes, or type a brief and watch it go through generate → render → check → screenshot review → repair, the same pipeline lesson visuals use.`])]),t.div([t.Class(`grid gap-6 lg:grid-cols-[minmax(0,1fr)_22rem]`)],[Ede(e,t),t.aside([t.Class(`flex flex-col gap-6`)],[Dde(e,t),Ode(e,t),Ade(e,t)])])]),`src/page/devVisuals.ts#anonymous~23`)),Mde=M({route:rq,home:hY,maybeGoal:CC(fJ),maybeLesson:CC(uoe),maybeNotes:CC($oe),maybePlacement:CC(wse),maybeReview:CC(Tce),maybeSettings:CC(Uue),maybeProgress:CC(qse),maybeToday:CC(WW),isDark:RS,studyMinutes:j,nextBreakAt:j,maybeReminder:CC(RG),maybeDevVisuals:CC(pde)}),Nde=M({isDark:RS}),$=nO({ClickedLink:{request:eR},ChangedUrl:{url:qL},CompletedNavigateInternal:{},CompletedLoadExternal:{},ToggledTheme:{},TickedStudyMinute:{},SucceededFetchReminder:{reminder:RG},FailedFetchReminder:{},TickedReminderClock:{},CompletedReminderCheck:{},ClickedTakeBreak:{},ClickedKeepStudying:{},CompletedApplyTheme:{},GotHomeMessage:{message:gY},GotGoalMessage:{message:pJ},GotLessonMessage:{message:u8},GotNotesMessage:{message:O8},GotPlacementMessage:{message:F8},GotReviewMessage:{message:p5},GotSettingsMessage:{message:$7},GotProgressMessage:{message:U8},SucceededFetchToday:{today:WW},FailedFetchToday:{},GotDevVisualsMessage:{message:F9}}),U9=F(`NavigateInternal`,{args:{url:A},messages:[$.CompletedNavigateInternal],execute:({url:e})=>n(tR(e).pipe(Hp($.CompletedNavigateInternal())),`src/main.ts#execute`)}),Pde=F(`LoadExternal`,{args:{href:A},messages:[$.CompletedLoadExternal],execute:({href:e})=>n(nR(e).pipe(Hp($.CompletedLoadExternal())),`src/main.ts#execute~2`)}),Fde=F(`ApplyTheme`,{args:{isDark:RS},messages:[$.CompletedApplyTheme],execute:({isDark:e})=>n(D(()=>{globalThis.document.documentElement.classList.toggle(`dark`,e),globalThis.localStorage.setItem(`bavi-theme`,e?`dark`:`light`)}).pipe(Yp,Hp($.CompletedApplyTheme())),`src/main.ts#execute~3`)}),W9=F(`FetchToday`,{messages:[$.SucceededFetchToday,$.FailedFetchToday],execute:O(function*(){let e=yield*(yield*yK).reviews.today();return n($.SucceededFetchToday({today:e}),`src/main.ts#anonymous~2`)}).pipe(Wp(()=>n(E($.FailedFetchToday()),`src/main.ts#anonymous~3`)))}),G9=F(`FetchReminder`,{messages:[$.SucceededFetchReminder,$.FailedFetchReminder],execute:O(function*(){let e=yield*(yield*yK).settings.get();return n($.SucceededFetchReminder({reminder:e.reminder}),`src/main.ts#anonymous~4`)}).pipe(Wp(()=>n(E($.FailedFetchReminder()),`src/main.ts#anonymous~5`)))}),K9=e=>n(`${e}`.padStart(2,`0`),`src/main.ts#pad`),q9=`bavi-reminded-day`,Ide=F(`CheckReminder`,{args:{time:A},messages:[$.CompletedReminderCheck],execute:({time:e})=>n(O(function*(){let t=new Date,r=`${K9(t.getHours())}:${K9(t.getMinutes())}`,i=`${t.getFullYear()}-${K9(t.getMonth()+1)}-${K9(t.getDate())}`,a=globalThis.localStorage;if(r<e||a.getItem(q9)===i||(a.setItem(q9,i),!(`Notification`in globalThis&&globalThis.Notification.permission===`granted`&&globalThis.document.visibilityState!==`visible`)))return n($.CompletedReminderCheck(),`src/main.ts#anonymous~6`);let o=yield*(yield*yK).reviews.today(),s=o.nextLessons[0],c=[...o.dueCount>0?[`${o.dueCount} review${o.dueCount===1?``:`s`} due, about ${o.estimatedReviewMinutes} min`]:[],...o.plan.newLessonSlots>0&&s!==void 0?[`Next up: ${s.conceptTitle}`]:[]];if(c.length>0){let e=new globalThis.Notification(`BaviTutor`,{body:c.join(` · `),icon:`/icon.svg`,tag:`bavitutor-daily`});e.onclick=()=>{globalThis.focus(),globalThis.location.assign(o.dueCount>0?`/review`:`/`)}}return n($.CompletedReminderCheck(),`src/main.ts#anonymous~6`)}).pipe(Wp(()=>n(E($.CompletedReminderCheck()),`src/main.ts#anonymous~7`))),`src/main.ts#execute~4`)}),Lde=D(()=>{let e=globalThis.localStorage.getItem(`bavi-theme`);return n({isDark:e===null?globalThis.matchMedia(`(prefers-color-scheme: dark)`).matches:e===`dark`},`src/main.ts#anonymous~8`)}).pipe(Wp(()=>n(E({isDark:!1}),`src/main.ts#anonymous~9`))),Rde=RV({update:DY,read:e=>n(S(e.home),`src/main.ts#read`),write:(e,t)=>n(I(e,{home:()=>n(t,`src/main.ts#home`)}),`src/main.ts#write`),toParentMessage:e=>n($.GotHomeMessage({message:e}),`src/main.ts#toParentMessage`),foldOutMessage:_Y.match({CreatedGoal:({goalId:e})=>n((t=>n({model:t,commands:[U9({url:aq({goalId:e})})]},`src/main.ts#anonymous~10`)),`src/main.ts#CreatedGoal`)})}),zde=RV({update:BJ,read:e=>n(e.maybeGoal,`src/main.ts#read~2`),write:(e,t)=>n(I(e,{maybeGoal:()=>n(S(t),`src/main.ts#maybeGoal`)}),`src/main.ts#write~2`),toParentMessage:e=>n($.GotGoalMessage({message:e}),`src/main.ts#toParentMessage~2`),foldOutMessage:mJ.match({DeletedGoal:()=>n((e=>n({model:I(e,{maybeGoal:()=>n(x(),`src/main.ts#maybeGoal~2`)}),commands:[U9({url:iq()})]},`src/main.ts#anonymous~11`)),`src/main.ts#DeletedGoal`)})}),Bde=RV({update:Aoe,read:e=>n(e.maybeLesson,`src/main.ts#read~3`),write:(e,t)=>n(I(e,{maybeLesson:()=>n(S(t),`src/main.ts#maybeLesson`)}),`src/main.ts#write~3`),toParentMessage:e=>n($.GotLessonMessage({message:e}),`src/main.ts#toParentMessage~3`)}),Vde=RV({update:tse,read:e=>n(e.maybeNotes,`src/main.ts#read~4`),write:(e,t)=>n(I(e,{maybeNotes:()=>n(S(t),`src/main.ts#maybeNotes`)}),`src/main.ts#write~4`),toParentMessage:e=>n($.GotNotesMessage({message:e}),`src/main.ts#toParentMessage~4`)}),Hde=RV({update:Lse,read:e=>n(e.maybePlacement,`src/main.ts#read~5`),write:(e,t)=>n(I(e,{maybePlacement:()=>n(S(t),`src/main.ts#maybePlacement`)}),`src/main.ts#write~5`),toParentMessage:e=>n($.GotPlacementMessage({message:e}),`src/main.ts#toParentMessage~5`),foldOutMessage:I8.match({FinishedPlacement:()=>n((e=>n({model:e,commands:Hi(xr(e.maybePlacement,e=>n(U9({url:aq({goalId:e.goalId})}),`src/main.ts#anonymous~13`)))},`src/main.ts#anonymous~12`)),`src/main.ts#FinishedPlacement`)})}),Ude=RV({update:Rce,read:e=>n(e.maybeReview,`src/main.ts#read~6`),write:(e,t)=>n(I(e,{maybeReview:()=>n(S(t),`src/main.ts#maybeReview`)}),`src/main.ts#write~6`),toParentMessage:e=>n($.GotReviewMessage({message:e}),`src/main.ts#toParentMessage~6`)}),Wde=RV({update:Zue,read:e=>n(e.maybeSettings,`src/main.ts#read~7`),write:(e,t)=>n(I(e,{maybeSettings:()=>n(S(t),`src/main.ts#maybeSettings`)}),`src/main.ts#write~7`),toParentMessage:e=>n($.GotSettingsMessage({message:e}),`src/main.ts#toParentMessage~7`)}),Gde=RV({update:Yse,read:e=>n(e.maybeProgress,`src/main.ts#read~8`),write:(e,t)=>n(I(e,{maybeProgress:()=>n(S(t),`src/main.ts#maybeProgress`)}),`src/main.ts#write~8`),toParentMessage:e=>n($.GotProgressMessage({message:e}),`src/main.ts#toParentMessage~8`)}),Kde=RV({update:bde,read:e=>n(e.maybeDevVisuals,`src/main.ts#read~9`),write:(e,t)=>n(I(e,{maybeDevVisuals:()=>n(S(t),`src/main.ts#maybeDevVisuals`)}),`src/main.ts#write~9`),toParentMessage:e=>n($.GotDevVisualsMessage({message:e}),`src/main.ts#toParentMessage~9`)}),J9=e=>n(C(e.maybeDevVisuals)?{model:e}:WV(_de(),{toParentModel:t=>n(I(e,{maybeDevVisuals:()=>n(S(t),`src/main.ts#maybeDevVisuals~2`)}),`src/main.ts#toParentModel`),toParentMessage:e=>n($.GotDevVisualsMessage({message:e}),`src/main.ts#toParentMessage~10`)}),`src/main.ts#enterDevVisuals`),Y9=(e,t)=>n(rq.match(t,{Home:()=>n(HV({update:TY,read:e=>n(S(e.home),`src/main.ts#read~10`),write:(e,t)=>n(I(e,{home:()=>n(t,`src/main.ts#home~2`)}),`src/main.ts#write~10`),toParentMessage:e=>n($.GotHomeMessage({message:e}),`src/main.ts#toParentMessage~11`)})(I(e,{maybeGoal:()=>n(x(),`src/main.ts#maybeGoal~3`)})),`src/main.ts#Home`),Goal:({goalId:t})=>{let r=w(e.maybeGoal,{onNone:()=>n(!1,`src/main.ts#onNone`),onSome:e=>n(e.goalId===t,`src/main.ts#onSome`)}),i=I(e,{maybeLesson:()=>n(x(),`src/main.ts#maybeLesson~2`)});return n(r?HV({update:PJ,read:e=>n(e.maybeGoal,`src/main.ts#read~11`),write:(e,t)=>n(I(e,{maybeGoal:()=>n(S(t),`src/main.ts#maybeGoal~4`)}),`src/main.ts#write~11`),toParentMessage:e=>n($.GotGoalMessage({message:e}),`src/main.ts#toParentMessage~12`)})(i):WV(FJ(t),{toParentModel:e=>n(I(i,{maybeGoal:()=>n(S(e),`src/main.ts#maybeGoal~5`)}),`src/main.ts#toParentModel~2`),toParentMessage:e=>n($.GotGoalMessage({message:e}),`src/main.ts#toParentMessage~13`)}),`src/main.ts#Goal`)},Review:()=>n(WV(jce(),{toParentModel:t=>n(I(e,{maybeReview:()=>n(S(t),`src/main.ts#maybeReview~2`)}),`src/main.ts#toParentModel~3`),toParentMessage:e=>n($.GotReviewMessage({message:e}),`src/main.ts#toParentMessage~14`)}),`src/main.ts#Review`),Settings:()=>n(WV(Jue(),{toParentModel:t=>n(I(e,{maybeSettings:()=>n(S(t),`src/main.ts#maybeSettings~2`)}),`src/main.ts#toParentModel~4`),toParentMessage:e=>n($.GotSettingsMessage({message:e}),`src/main.ts#toParentMessage~15`)}),`src/main.ts#Settings`),Progress:()=>n(WV(Jse(),{toParentModel:t=>n(I(e,{maybeProgress:()=>n(S(t),`src/main.ts#maybeProgress~2`)}),`src/main.ts#toParentModel~5`),toParentMessage:e=>n($.GotProgressMessage({message:e}),`src/main.ts#toParentMessage~16`)}),`src/main.ts#Progress`),Placement:({goalId:t})=>n(WV(Nse(t),{toParentModel:t=>n(I(e,{maybePlacement:()=>n(S(t),`src/main.ts#maybePlacement~2`)}),`src/main.ts#toParentModel~6`),toParentMessage:e=>n($.GotPlacementMessage({message:e}),`src/main.ts#toParentMessage~17`)}),`src/main.ts#Placement`),Lesson:({goalId:t,conceptId:r})=>w(e.maybeLesson,{onNone:()=>n(!1,`src/main.ts#onNone~2`),onSome:e=>n(e.goalId===t&&e.conceptId===r,`src/main.ts#onSome~2`)})?n({model:e},`src/main.ts#Lesson`):n(WV(xoe(t,r),{toParentModel:t=>n(I(e,{maybeLesson:()=>n(S(t),`src/main.ts#maybeLesson~3`)}),`src/main.ts#toParentModel~7`),toParentMessage:e=>n($.GotLessonMessage({message:e}),`src/main.ts#toParentMessage~18`)}),`src/main.ts#Lesson`),Notes:({goalId:t,conceptId:r})=>n(WV(ese(t,r),{toParentModel:t=>n(I(e,{maybeNotes:()=>n(S(t),`src/main.ts#maybeNotes~2`)}),`src/main.ts#toParentModel~8`),toParentMessage:e=>n($.GotNotesMessage({message:e}),`src/main.ts#toParentMessage~19`)}),`src/main.ts#Notes`),NotFound:()=>n({model:e},`src/main.ts#NotFound`),DevVisuals:()=>n(J9(e),`src/main.ts#DevVisuals`)}),`src/main.ts#enterRoute`),qde=(e,t)=>n($.match(t,{ClickedLink:({request:t})=>n(eR.match(t,{Internal:({url:t})=>n({model:e,commands:[U9({url:$L(t)})]},`src/main.ts#Internal`),External:({href:t})=>n({model:e,commands:[Pde({href:t})]},`src/main.ts#External`)}),`src/main.ts#ClickedLink`),ChangedUrl:({url:t})=>{let r=fq(t),i=Y9(I(e,{route:()=>n(r,`src/main.ts#route`)}),r);return n({model:i.model,commands:[...i.commands??[],W9(),G9()]},`src/main.ts#ChangedUrl`)},CompletedNavigateInternal:()=>n({model:e},`src/main.ts#CompletedNavigateInternal`),CompletedLoadExternal:()=>n({model:e},`src/main.ts#CompletedLoadExternal`),ToggledTheme:()=>{let t=!e.isDark;return n({model:I(e,{isDark:()=>n(t,`src/main.ts#isDark`)}),commands:[Fde({isDark:t})]},`src/main.ts#ToggledTheme`)},CompletedApplyTheme:()=>n({model:e},`src/main.ts#CompletedApplyTheme`),SucceededFetchReminder:({reminder:t})=>n({model:I(e,{maybeReminder:()=>n(S(t),`src/main.ts#maybeReminder`)})},`src/main.ts#SucceededFetchReminder`),FailedFetchReminder:()=>n({model:e},`src/main.ts#FailedFetchReminder`),TickedReminderClock:()=>n(w(e.maybeReminder,{onNone:()=>n({model:e},`src/main.ts#onNone~3`),onSome:t=>n(t.isOn?{model:e,commands:[Ide({time:t.time})]}:{model:e},`src/main.ts#onSome~3`)}),`src/main.ts#TickedReminderClock`),CompletedReminderCheck:()=>n({model:e},`src/main.ts#CompletedReminderCheck`),TickedStudyMinute:()=>n({model:I(e,{studyMinutes:e=>n(e+1,`src/main.ts#studyMinutes`)})},`src/main.ts#TickedStudyMinute`),ClickedTakeBreak:()=>n({model:I(e,{studyMinutes:()=>n(0,`src/main.ts#studyMinutes~2`),nextBreakAt:()=>n(Z9,`src/main.ts#nextBreakAt`)})},`src/main.ts#ClickedTakeBreak`),ClickedKeepStudying:()=>n({model:I(e,{nextBreakAt:()=>n(e.studyMinutes+Yde,`src/main.ts#nextBreakAt~2`)})},`src/main.ts#ClickedKeepStudying`),GotHomeMessage:({message:t})=>n(Rde(e,t),`src/main.ts#GotHomeMessage`),GotGoalMessage:({message:t})=>n(zde(e,t),`src/main.ts#GotGoalMessage`),GotLessonMessage:({message:t})=>n(Bde(e,t),`src/main.ts#GotLessonMessage`),GotNotesMessage:({message:t})=>n(Vde(e,t),`src/main.ts#GotNotesMessage`),GotPlacementMessage:({message:t})=>n(Hde(e,t),`src/main.ts#GotPlacementMessage`),GotReviewMessage:({message:t})=>n(Ude(e,t),`src/main.ts#GotReviewMessage`),GotSettingsMessage:({message:t})=>n(Wde(e,t),`src/main.ts#GotSettingsMessage`),GotProgressMessage:({message:t})=>n(Gde(e,t),`src/main.ts#GotProgressMessage`),SucceededFetchToday:({today:t})=>n({model:I(e,{maybeToday:()=>n(S(t),`src/main.ts#maybeToday`)})},`src/main.ts#SucceededFetchToday`),FailedFetchToday:()=>n({model:e},`src/main.ts#FailedFetchToday`),GotDevVisualsMessage:({message:t})=>n(Kde(e,t),`src/main.ts#GotDevVisualsMessage`)}),`src/main.ts#update`),X9=(e,t)=>{let r=Y9(e.model,t);return n({model:r.model,commands:[...e.commands??[],...r.commands??[],W9(),G9()]},`src/main.ts#withRoute`)},Jde=(e,t)=>{let r=fq(t),i=WV(wY(),{toParentModel:t=>n({route:r,home:t,maybeGoal:x(),maybeLesson:x(),maybeNotes:x(),maybePlacement:x(),maybeReview:x(),maybeSettings:x(),maybeProgress:x(),maybeToday:x(),isDark:e.isDark,maybeDevVisuals:x(),studyMinutes:0,nextBreakAt:Z9,maybeReminder:x()},`src/main.ts#toParentModel~9`),toParentMessage:e=>n($.GotHomeMessage({message:e}),`src/main.ts#toParentMessage~20`)});return n(rq.match(r,{Home:()=>n({model:i.model,commands:[...i.commands??[],W9(),G9()]},`src/main.ts#Home~2`),Goal:()=>n(X9(i,r),`src/main.ts#Goal~2`),Lesson:()=>n(X9(i,r),`src/main.ts#Lesson~2`),Notes:()=>n(X9(i,r),`src/main.ts#Notes~2`),Placement:()=>n(X9(i,r),`src/main.ts#Placement~2`),Review:()=>n(X9(i,r),`src/main.ts#Review~2`),Settings:()=>n(X9(i,r),`src/main.ts#Settings~2`),Progress:()=>n(X9(i,r),`src/main.ts#Progress~2`),NotFound:()=>n(i,`src/main.ts#NotFound~2`),DevVisuals:()=>{let e=J9(i.model);return n({model:e.model,commands:[...i.commands??[],...e.commands??[]]},`src/main.ts#DevVisuals~2`)}}),`src/main.ts#init`)},Z9=25,Yde=15,Q9=e=>n(e._tag===`Lesson`||e._tag===`Review`||e._tag===`Placement`,`src/main.ts#isStudyRoute`),Xde=rR()(e=>n({reminderClock:e({isOn:RS},{modelToDependencies:e=>n({isOn:jr(e.maybeReminder,e=>n(e.isOn,`src/main.ts#anonymous~15`))},`src/main.ts#modelToDependencies`),dependenciesToStream:({isOn:e})=>n(e?hE(co(30)).pipe(kE(()=>n($.TickedReminderClock(),`src/main.ts#anonymous~16`))):yE,`src/main.ts#dependenciesToStream`)}),studyClock:e({isStudying:RS},{modelToDependencies:e=>n({isStudying:Q9(e.route)},`src/main.ts#modelToDependencies~2`),dependenciesToStream:({isStudying:e})=>n(e?hE(lo(1)).pipe(LE(1),kE(()=>n($.TickedStudyMinute(),`src/main.ts#anonymous~17`))):yE,`src/main.ts#dependenciesToStream~2`)})},`src/main.ts#anonymous~14`)),Zde=uR(AY)({read:e=>n(S(e.home),`src/main.ts#read~12`),toParentMessage:e=>n($.GotHomeMessage({message:e}),`src/main.ts#toParentMessage~21`),when:({route:e})=>n(e._tag===`Home`,`src/main.ts#when`)}),Qde=uR(UJ)({read:e=>n(e.maybeGoal,`src/main.ts#read~13`),toParentMessage:e=>n($.GotGoalMessage({message:e}),`src/main.ts#toParentMessage~22`),when:({route:e})=>n(e._tag===`Goal`,`src/main.ts#when~2`)}),$de=uR(Foe)({read:e=>n(e.maybeLesson,`src/main.ts#read~14`),toParentMessage:e=>n($.GotLessonMessage({message:e}),`src/main.ts#toParentMessage~23`),when:({route:e})=>n(e._tag===`Lesson`,`src/main.ts#when~3`)}),efe=uR(zse)({read:e=>n(e.maybePlacement,`src/main.ts#read~15`),toParentMessage:e=>n($.GotPlacementMessage({message:e}),`src/main.ts#toParentMessage~24`),when:({route:e})=>n(e._tag===`Placement`,`src/main.ts#when~4`)}),tfe=aR(Xde,uR(zce)({read:e=>n(e.maybeReview,`src/main.ts#read~16`),toParentMessage:e=>n($.GotReviewMessage({message:e}),`src/main.ts#toParentMessage~25`),when:({route:e})=>n(e._tag===`Review`,`src/main.ts#when~5`)}),Zde,Qde,$de,efe,uR(Sde)({read:e=>n(e.maybeDevVisuals,`src/main.ts#read~17`),toParentMessage:e=>n($.GotDevVisualsMessage({message:e}),`src/main.ts#toParentMessage~26`),when:({route:e})=>n(e._tag===`DevVisuals`,`src/main.ts#when~6`)})),nfe=(e,t)=>n(t.header([t.Class(`sticky top-0 z-20 border-b border-transparent bg-background/80 backdrop-blur-md supports-[backdrop-filter]:bg-background/60`)],[t.div([t.Class(`mx-auto flex h-14 w-full max-w-7xl items-center justify-between px-5`)],[t.a([t.Href(iq()),t.Class(`press flex items-center gap-2 font-semibold tracking-tight`)],[t.img([t.Src(`/icon.svg`),t.Alt(``),t.Class(`size-7 rounded-lg`)]),`BaviTutor`]),t.div([t.Class(`flex items-center gap-1`)],[ife(e,t),rfe(e,t),t.a([t.Href(uq()),t.AriaLabel(`Settings`),t.Title(`Settings`),t.Class(R(`Ghost`,`Icon`,e.route._tag===`Settings`?`bg-accent text-accent-foreground`:``))],[L(`sliders`,``,t)]),t.button([t.Type(`button`),t.AriaLabel(e.isDark?`Switch to light theme`:`Switch to dark theme`),t.OnClick($.ToggledTheme()),t.Class(R(`Ghost`,`Icon`))],[e.isDark?L(`sun`,``,t):L(`moon`,``,t)])])])]),`src/main.ts#navView`),rfe=(e,t)=>{let r=w(e.maybeToday,{onNone:()=>n(0,`src/main.ts#onNone~4`),onSome:e=>n(e.dueCount,`src/main.ts#onSome~4`)});return n(t.a([t.Href(lq()),t.Class(R(`Ghost`,`Medium`,CK(`max-sm:px-2.5`,e.route._tag===`Review`&&`bg-accent text-accent-foreground`)))],[L(`brain`,``,t),$9(`Review`,t),r>0?t.span([t.Class(`pulse-ring ml-0.5 inline-flex min-w-5 items-center justify-center rounded-full bg-primary px-1.5 text-[11px] font-semibold text-primary-foreground tabular-nums`)],[`${r}`]):t.empty]),`src/main.ts#reviewLink`)},ife=(e,t)=>n(t.a([t.Href(dq()),t.Class(R(`Ghost`,`Medium`,CK(`max-sm:px-2.5`,e.route._tag===`Progress`&&`bg-accent text-accent-foreground`)))],[L(`chart`,``,t),$9(`Progress`,t)]),`src/main.ts#progressLink`),$9=(e,t)=>n(t.span([t.Class(`sr-only sm:not-sr-only`)],[e]),`src/main.ts#navLabel`),afe=(e,t)=>n(Q9(e.route)&&e.studyMinutes>=e.nextBreakAt?t.div([t.Role(`status`),t.Class(`pop-in fixed inset-x-4 bottom-4 z-30 mx-auto flex max-w-xl flex-col gap-3 rounded-2xl border bg-popover p-4 text-popover-foreground shadow-lg sm:flex-row sm:items-center`)],[t.div([t.Class(`flex flex-1 items-start gap-3`)],[L(`clock`,`mt-0.5 size-5 shrink-0 text-primary`,t),t.div([t.Class(`flex flex-col gap-0.5`)],[t.p([t.Class(`font-medium`)],[`${e.studyMinutes} minutes of focused work`]),t.p([t.Class(`text-sm text-muted-foreground`)],[`A 3–5 minute break helps it settle: stand up, look away from the screen, get some water. Your place is saved.`])])]),t.div([t.Class(`flex shrink-0 gap-2 sm:flex-col`)],[t.button([t.Type(`button`),t.OnClick($.ClickedTakeBreak()),t.Class(R(`Primary`,`Small`))],[`Taking a break`]),t.button([t.Type(`button`),t.OnClick($.ClickedKeepStudying()),t.Class(R(`Ghost`,`Small`))],[`15 more minutes`])])]):t.empty,`src/main.ts#breakPromptView`),ofe=(e,t)=>n(t.div([t.Class(`mx-auto flex max-w-md flex-col items-center gap-4 px-5 pt-24 text-center`)],[t.p([t.Class(`text-5xl font-semibold`)],[`404`]),t.p([t.Class(`text-muted-foreground`)],[`Nothing lives at “${e}”.`]),t.a([t.Href(iq()),t.Class(R(`Outline`))],[`Go home`])]),`src/main.ts#notFoundView`);FV(DV({Model:Mde,Flags:Nde,init:Jde,update:qde,view:(e,t)=>{let r=rq.match(e.route,{Home:()=>n(t.submodel({slotId:`home`,model:e.home,view:UY,toParentMessage:e=>n($.GotHomeMessage({message:e}),`src/main.ts#toParentMessage~27`)}),`src/main.ts#Home~3`),Goal:()=>n(w(e.maybeGoal,{onNone:()=>n(t.empty,`src/main.ts#onNone~5`),onSome:e=>n(t.submodel({slotId:`goal`,model:e,view:dY,toParentMessage:e=>n($.GotGoalMessage({message:e}),`src/main.ts#toParentMessage~28`)}),`src/main.ts#onSome~5`)}),`src/main.ts#Goal~3`),Review:()=>n(w(e.maybeReview,{onNone:()=>n(t.empty,`src/main.ts#onNone~6`),onSome:e=>n(t.submodel({slotId:`review`,model:e,view:Xce,toParentMessage:e=>n($.GotReviewMessage({message:e}),`src/main.ts#toParentMessage~29`)}),`src/main.ts#onSome~6`)}),`src/main.ts#Review~3`),Progress:()=>n(w(e.maybeProgress,{onNone:()=>n(t.empty,`src/main.ts#onNone~7`),onSome:e=>n(t.submodel({slotId:`progress`,model:e,view:Cce,toParentMessage:e=>n($.GotProgressMessage({message:e}),`src/main.ts#toParentMessage~30`)}),`src/main.ts#onSome~7`)}),`src/main.ts#Progress~3`),Placement:()=>n(w(e.maybePlacement,{onNone:()=>n(t.empty,`src/main.ts#onNone~8`),onSome:e=>n(t.submodel({slotId:`placement`,model:e,view:Kse,toParentMessage:e=>n($.GotPlacementMessage({message:e}),`src/main.ts#toParentMessage~31`)}),`src/main.ts#onSome~8`)}),`src/main.ts#Placement~3`),Lesson:()=>n(w(e.maybeLesson,{onNone:()=>n(t.empty,`src/main.ts#onNone~9`),onSome:e=>n(t.submodel({slotId:`lesson`,model:e,view:Zoe,toParentMessage:e=>n($.GotLessonMessage({message:e}),`src/main.ts#toParentMessage~32`)}),`src/main.ts#onSome~9`)}),`src/main.ts#Lesson~3`),Notes:()=>n(w(e.maybeNotes,{onNone:()=>n(t.empty,`src/main.ts#onNone~10`),onSome:e=>n(t.submodel({slotId:`notes`,model:e,view:Sse,toParentMessage:e=>n($.GotNotesMessage({message:e}),`src/main.ts#toParentMessage~33`)}),`src/main.ts#onSome~10`)}),`src/main.ts#Notes~3`),Settings:()=>n(w(e.maybeSettings,{onNone:()=>n(t.empty,`src/main.ts#onNone~11`),onSome:e=>n(t.submodel({slotId:`settings`,model:e,view:dde,toParentMessage:e=>n($.GotSettingsMessage({message:e}),`src/main.ts#toParentMessage~34`)}),`src/main.ts#onSome~11`)}),`src/main.ts#Settings~3`),NotFound:({path:e})=>n(ofe(e,t),`src/main.ts#NotFound~3`),DevVisuals:()=>n(w(e.maybeDevVisuals,{onNone:()=>n(t.empty,`src/main.ts#onNone~12`),onSome:e=>n(t.submodel({slotId:`dev-visuals`,model:e,view:jde,toParentMessage:e=>n($.GotDevVisualsMessage({message:e}),`src/main.ts#toParentMessage~35`)}),`src/main.ts#onSome~12`)}),`src/main.ts#DevVisuals~3`)});return n({title:gD(e.route).pipe(SD(`Goal`,()=>n(w(e.maybeGoal,{onNone:()=>n(`BaviTutor`,`src/main.ts#onNone~13`),onSome:fY}),`src/main.ts#anonymous~18`)),SD(`Placement`,()=>n(`Placement quiz · BaviTutor`,`src/main.ts#anonymous~19`)),SD(`Review`,()=>n(`Review · BaviTutor`,`src/main.ts#anonymous~20`)),SD(`Settings`,()=>n(fde,`src/main.ts#anonymous~21`)),SD(`Progress`,()=>n(`Progress · BaviTutor`,`src/main.ts#anonymous~22`)),SD(`Notes`,()=>n(w(e.maybeNotes,{onNone:()=>n(`Notes · BaviTutor`,`src/main.ts#onNone~14`),onSome:Cse}),`src/main.ts#anonymous~23`)),SD(`Lesson`,()=>n(w(e.maybeLesson,{onNone:()=>n(`Lesson · BaviTutor`,`src/main.ts#onNone~15`),onSome:Qoe}),`src/main.ts#anonymous~24`)),wD(()=>n(`BaviTutor · learn anything`,`src/main.ts#anonymous~25`))),body:t.div([t.Class(`flex min-h-dvh flex-col`)],[nfe(e,t),t.main([t.Class(`flex-1`)],[r]),afe(e,t)])},`src/main.ts#view`)},subscriptions:tfe,resources:bK,container:document.getElementById(`root`),routing:{onUrlRequest:e=>n($.ClickedLink({request:e}),`src/entry.ts#onUrlRequest`),onUrlChange:e=>n($.ChangedUrl({url:e}),`src/entry.ts#onUrlChange`)},devTools:{Message:$}}),{flags:Lde});