"use strict";var HearthCoherence=(()=>{var pe=Object.defineProperty;var Ke=Object.getOwnPropertyDescriptor;var Je=Object.getOwnPropertyNames;var qe=Object.prototype.hasOwnProperty;var Xe=(t,e)=>{for(var r in e)pe(t,r,{get:e[r],enumerable:!0})},Ye=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Je(e))!qe.call(t,i)&&i!==r&&pe(t,i,{get:()=>e[i],enumerable:!(n=Ke(e,i))||n.enumerable});return t};var Ge=t=>Ye(pe({},"__esModule",{value:!0}),t);var wt={};Xe(wt,{execute:()=>gt,executeAsync:()=>mt,setServerUsizeBits:()=>we});var Qe=null;function W(t){let e=t,r=new Set,n=()=>(Qe?.track(r),e);return n.set=i=>{let s=typeof i=="function"?i(e):i;if(e!==s){e=s;for(let o of r)o.schedule()}return e},n}var q=class{signals=new Map;has(e){return this.signals.has(e)}get(e){return this.signals.get(e)}insert(e,r){return this.signals.has(e)?!1:(this.signals.set(e,W(r)),!0)}delete(e){this.signals.delete(e)}handle(e){let r=this.signals.get(e);if(!r)throw new Error(`Unknown signal id: ${e}`);return r}read(e){return this.handle(e)()}};var b=class extends Error{constructor(e){super(e),this.name="Panic"}};var Ze=[];var et=new Map,Te=new Map;function Ee(t,e){let r=t;if(r.startsWith("@")){let u=Ze[Number(r.slice(1))];if(u===void 0)throw new Error(`Unknown JS reference ${r} in ${e}`);r=u}let n=/^#([a-f0-9]{64}):([\s\S]*)$/.exec(r);if(!n)throw new Error(`Invalid expression reference in ${e}`);let i=et.get(n[1]);if(!i)throw new Error(`Expression not loaded in ${e}: ${n[1]}`);let s=Te.get(r);if(s)return s;let o=JSON.parse(n[2]),a=u=>i(u,o);return Te.set(r,a),a}function E(t){if(t==null)return null;if(typeof t=="string"||typeof t=="number"||typeof t=="boolean")return t;if(typeof t=="object"){let e=t;if(typeof e.dehydrate=="function")return e.dehydrate()}throw new Error("Value cannot be serialized for the server")}var _=class t{constructor(e){for(let[r,n]of e)Object.defineProperty(this,r,{value:n,enumerable:!0})}clone(){return new t(Object.entries(this).map(([e,r])=>[e,A(r)]))}dehydrate(){return{t:"Record",v:Object.fromEntries(Object.entries(this).map(([e,r])=>[e,E(r)]))}}};function fe(t){return t!==null&&typeof t=="object"&&typeof t.isAttributePresent=="function"&&typeof t.toAttributeValue=="function"}function Re(t){return t!==null&&typeof t=="object"&&typeof t.toNodeText=="function"}var M=class t{constructor(e){this.items=e;Object.assign(this,e)}items;isIndex(e){return Number.isInteger(e)&&e>=0&&e<this.items.length}[Symbol.iterator](){return this.items[Symbol.iterator]()}clone(){return new t(this.items.map(A))}isAttributePresent(){return this.items.some(e=>fe(e)&&e.isAttributePresent())}toAttributeValue(){let e="";for(let r of this.items)fe(r)&&r.isAttributePresent()&&(e+=r.toAttributeValue());return e}toNodeText(){let e="";for(let r of this.items)Re(r)&&(e+=r.toNodeText());return e}dehydrate(){return this.items.map(E)}toString(){let e=this.items.map(r=>globalThis.String(r));return e.length===1?`(${e[0]},)`:`(${e.join(", ")})`}};var F=class t{constructor(e,r){this.read=e;this.write=r;return new Proxy(this,{get(n,i,s){if(i==="deref"||i==="deref_mut"||i==="dehydrate")return n[i].bind(n);let o=n.read();if(o instanceof M&&typeof i=="string"){let u=Number(i);if(String(u)===i&&o.isIndex(u))return t.shared(()=>n.read()[u])}if(o instanceof _&&typeof i=="string"&&Object.hasOwn(o,i))return t.shared(()=>n.read()[i]);if(i==="clone"&&o instanceof t)return()=>o;let a=Reflect.get(Object(o),i);return i==="clone"&&a===void 0?()=>s:typeof a=="function"?a.bind(o):a}})}read;write;static shared(e){return new t(e)}deref(){return this.read()}deref_mut(){if(!this.write)throw new Error("Cannot mutably dereference a shared Ref");this.write(this.read())}dehydrate(){throw new Error("Ref<T> cannot be dehydrated")}};function A(t){if(t instanceof F)return t;let e=t;return typeof e?.clone=="function"?e.clone():t}var c=class t{constructor(e){this.value=e}value;static some(e){return new t(e)}static none(){return new t(void 0)}is_some(){return new l(this.value!==void 0)}is_none(){return new l(this.value===void 0)}unwrap(){if(this.value===void 0)throw new b("called `Option.unwrap()` on a `None` value");return this.value}unwrap_or(e){return this.value===void 0?e:this.value}expect(e){if(this.value===void 0)throw new b(e.toString());return this.value}clone(){return this.value===void 0?t.none():t.some(A(this.value))}isAttributePresent(){return this.value===void 0?!1:this.value.isAttributePresent()}toAttributeValue(){return this.value.toAttributeValue()}toNodeText(){return this.value===void 0?"":this.value.toNodeText()}dehydrate(){return{t:"Option",v:E(this.value)}}};var l=class t{constructor(e){this.v=e}v;clone(){return new t(this.v)}not(){return new t(!this.v)}eq(e){return new t(this.v===e.v)}ne(e){return new t(this.v!==e.v)}then_(e){return this.v?c.some(e()):c.none()}then_some(e){return this.v?c.some(e):c.none()}isAttributePresent(){return this.v}toAttributeValue(){return"true"}toNodeText(){return this.v.toString()}dehydrate(){return this.v}toString(){return this.v.toString()}};var Ie=new DataView(new ArrayBuffer(8));function tt(t){Ie.setFloat64(0,Math.abs(t));let e=Ie.getBigUint64(0),r=Number(e>>52n&0x7ffn),n=e&0xfffffffffffffn;return r===0?{mantissa:n,exponent:-1074}:{mantissa:n|0x10000000000000n,exponent:r-1075}}function rt(t,e,r){if(Number(e[e.length-1])%2!==0)return!1;let{mantissa:n,exponent:i}=tt(t),s=i<0?-i:0,o=r<0?-r:0,a=2n*n*2n**BigInt(i+s)*10n**BigInt(o),u=(2n*BigInt(e)+1n)*10n**BigInt(r+o)*2n**BigInt(s);return a===u}function ge(t){if(Number.isNaN(t))return"NaN";if(t===Number.POSITIVE_INFINITY)return"inf";if(t===Number.NEGATIVE_INFINITY)return"-inf";if(t===0)return Object.is(t,-0)?"-0":"0";let e=t.toExponential(),r=e.indexOf("e"),n=e.slice(0,r),i=n.startsWith("-")?"-":"",s=(i===""?n:n.slice(1)).replace(".",""),o=Number(e.slice(r+1))-(s.length-1);rt(t,s,o)&&(s=(BigInt(s)+1n).toString());let a=s.length+o;return a<=0?`${i}0.${"0".repeat(-a)}${s}`:a>=s.length?i+s+"0".repeat(a-s.length):`${i}${s.slice(0,a)}.${s.slice(a)}`}var V=class t{constructor(e){this.v=e}v;add(e){return new t(this.v+e.v)}sub(e){return new t(this.v-e.v)}mul(e){return new t(this.v*e.v)}div(e){return new t(this.v/e.v)}neg(){return new t(-this.v)}eq(e){return new l(this.v===e.v)}ne(e){return new l(this.v!==e.v)}gt(e){return new l(this.v>e.v)}lt(e){return new l(this.v<e.v)}ge(e){return new l(this.v>=e.v)}le(e){return new l(this.v<=e.v)}clone(){return new t(this.v)}isAttributePresent(){return!0}toAttributeValue(){return ge(this.v)}toNodeText(){return ge(this.v)}dehydrate(){return this.v}toString(){return ge(this.v)}};function K(t,e){if(!/^[iu](8|16|32|64|128|size)$/.test(t))throw new Error("Unknown integer type");let r=t.endsWith("size");if(r&&![16,32,64].includes(e)||!r&&e!==Number(t.slice(1)))throw new Error("Invalid integer width");let n=t.startsWith("i"),i=1n<<BigInt(e-Number(n));return Object.freeze({kind:t,bits:e,signed:n,min:n?-i:0n,max:i-1n})}var me;function we(t){me=K("usize",t)}function Pe(){if(me===void 0){let t=typeof document>"u"?void 0:document.querySelector("script[data-hearth-usize-bits]")?.dataset.hearthUsizeBits;if(t===void 0)throw new Error("The server's usize width is unknown; load the runtime with hearth::runtime::script()");we(Number(t))}return me}var k=class t{constructor(e,r){this.v=e;this.type=r;if(e<r.min||e>r.max)throw new b("integer overflow")}v;type;static hydrate(e){let r=K(e.t,e.bits);if(typeof e.v!="string"||e.v.length>40||!/^(0|-?[1-9][0-9]*)$/.test(e.v))throw new Error("Expected a canonical decimal integer");return new t(BigInt(e.v),r)}operand(e){if(this.type.kind!==e.type.kind||this.type.bits!==e.type.bits)throw new Error("Integer types do not match");return e.v}add(e){return new t(this.v+this.operand(e),this.type)}sub(e){return new t(this.v-this.operand(e),this.type)}mul(e){return new t(this.v*this.operand(e),this.type)}divisor(e){let r=this.operand(e);if(r===0n||this.v===this.type.min&&r===-1n)throw new b("invalid integer division or remainder");return r}div(e){return new t(this.v/this.divisor(e),this.type)}rem(e){return new t(this.v%this.divisor(e),this.type)}neg(){if(!this.type.signed)throw new Error("Cannot negate an unsigned integer");return new t(-this.v,this.type)}increment(){return new t(this.v+1n,this.type)}decrement(){return new t(this.v-1n,this.type)}eq(e){return new l(this.v===this.operand(e))}ne(e){return new l(this.v!==this.operand(e))}gt(e){return new l(this.v>this.operand(e))}lt(e){return new l(this.v<this.operand(e))}ge(e){return new l(this.v>=this.operand(e))}le(e){return new l(this.v<=this.operand(e))}clone(){return new t(this.v,this.type)}toIndex(e,r){if(this.type.kind!=="usize"||this.type.bits!==r)throw new Error("Index must be a usize with the collection's target width");return this.v<BigInt(e)?Number(this.v):void 0}isAttributePresent(){return!0}toAttributeValue(){return this.v.toString()}to_text(){return new S(this.v.toString())}toNodeText(){return this.v.toString()}toString(){return this.v.toString()}dehydrate(){return{t:this.type.kind,bits:this.type.bits,v:this.v.toString()}}};var nt=new TextEncoder,Fe="\\t\\n\\v\\f\\r \\u0085\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000",Ne=new RegExp(`^[${Fe}]+`,"u"),Ae=new RegExp(`[${Fe}]+$`,"u");function te(t,e){let r=t[Symbol.iterator](),n=e[Symbol.iterator]();for(;;){let i=r.next(),s=n.next();if(i.done||s.done)return Number(s.done)-Number(i.done);if(i.value!==s.value)return i.value.codePointAt(0)-s.value.codePointAt(0)}}var D=class t{constructor(e){this.v=e}v;eq(e){return new l(this.v===e.v)}ne(e){return new l(this.v!==e.v)}gt(e){return new l(te(this.v,e.v)>0)}lt(e){return new l(te(this.v,e.v)<0)}ge(e){return new l(te(this.v,e.v)>=0)}le(e){return new l(te(this.v,e.v)<=0)}to_owned(){return new S(this.v)}add(e){return new S(this.v+e.v)}parse_i64(){let e=this.v;if(!/^[+-]?[0-9]+$/.test(e))return c.none();let r=BigInt(e);return r<-(2n**63n)||r>2n**63n-1n?c.none():c.some(new k(r,K("i64",64)))}is_empty(){return new l(this.v.length===0)}len(){return new k(BigInt(nt.encode(this.v).length),Pe())}trim(){return new t(this.v.replace(Ne,"").replace(Ae,""))}trim_start(){return new t(this.v.replace(Ne,""))}trim_end(){return new t(this.v.replace(Ae,""))}starts_with(e){return new l(this.v.startsWith(e.v))}ends_with(e){return new l(this.v.endsWith(e.v))}contains(e){return new l(this.v.includes(e.v))}isAttributePresent(){return!0}toAttributeValue(){return this.v}toNodeText(){return this.v}dehydrate(){return this.v}toString(){return this.v.toString()}},S=class t extends D{deref(){return new D(this.v)}clone(){return new t(this.v)}dehydrate(){return this.v}};var vr=1024*1024,st="hearth:invalidate-prefetches";function _e(){typeof window>"u"||window.dispatchEvent(new Event(st))}var J=class{constructor(e){this.v=e}v;then(e,r){let n=this.v();return this.v=()=>n,n.then(e,r)}};var re=class{constructor(e,r){this.cx=e;this.path=r}cx;path;call(...e){return new J(async()=>{let r=await fetch(this.path,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e.map(E))}).finally(_e);if(!r.ok)throw new Error(`Procedure call failed: ${r.status} ${r.statusText}`);return this.cx.hydrate(await r.json())})}dehydrate(){return{t:"Procedure",path:this.path}}};var C=class t{constructor(e,r){this.kind=e;this.value=r}kind;value;static from_ok(e){return new t("ok",e)}static from_err(e){return new t("err",e)}is_ok(){return new l(this.kind==="ok")}is_err(){return new l(this.kind==="err")}ok(){return this.kind==="ok"?c.some(this.value):c.none()}err(){return this.kind==="err"?c.some(this.value):c.none()}unwrap(){if(this.kind==="err")throw new b(`called \`Result.unwrap()\` on an \`Err\` value: ${ne(this.value)}`);return this.value}expect(e){if(this.kind==="err")throw new b(`${e.toString()}: ${ne(this.value)}`);return this.value}unwrap_err(){if(this.kind==="ok")throw new b(`called \`Result.unwrap_err()\` on an \`Ok\` value: ${ne(this.value)}`);return this.value}expect_err(e){if(this.kind==="ok")throw new b(`${e.toString()}: ${ne(this.value)}`);return this.value}clone(){let e=A(this.value);return this.kind==="ok"?t.from_ok(e):t.from_err(e)}dehydrate(){let e=E(this.value);return this.kind==="ok"?{t:"Result",ok:e}:{t:"Result",err:e}}};function ne(t){if(typeof t=="string")return JSON.stringify(t);if(t!=null){let r=t.toString;if(typeof r=="function"&&r!==Object.prototype.toString)return r.call(t)}let e=JSON.stringify(t);return e===void 0?globalThis.String(t):e}var $=class{constructor(e,r,n=0,i=e.length){this.items=e;this.usizeType=r;this.start=n;this.end=i;if(r.kind!=="usize"||!Number.isInteger(n)||!Number.isInteger(i)||n<0||i<n||i>e.length)throw new Error("Invalid slice");this.len()}items;usizeType;start;end;len(){return new k(BigInt(this.end-this.start),this.usizeType)}is_empty(){return new l(this.start===this.end)}get(e){let r=e.toIndex(this.end-this.start,this.usizeType.bits);return r===void 0?c.none():c.some(F.shared(()=>this.items[this.start+r]))}first(){return this.get(new k(0n,this.usizeType))}index(e){return this.get(e).unwrap()}last(){return this.start===this.end?c.none():this.get(new k(BigInt(this.end-this.start-1),this.usizeType))}to_vec(){return new X(this.items.slice(this.start,this.end).map(A),this.usizeType)}to_owned(){return this.to_vec()}},X=class extends ${constructor(e,r){super(e,r)}as_slice(){let e=this.deref();return F.shared(()=>e)}deref(){return new $(this.items,this.usizeType,this.start,this.end)}clone(){return this.to_vec()}dehydrate(){return{t:"Vec",bits:this.usizeType.bits,v:this.items.map(E)}}},ie=class t extends ${constructor(e,r){super(e,r)}as_slice(){let e=this.deref();return F.shared(()=>e)}deref(){return new $(this.items,this.usizeType,this.start,this.end)}clone(){return new t(this.items.map(A),this.usizeType)}to_owned(){return this.clone()}dehydrate(){return{t:"Array",bits:this.usizeType.bits,v:this.items.map(E)}}};var se=class{constructor(e,r){this.id=e;this.inner=r}id;inner;read(){return new F(()=>this.inner(),e=>this.inner.set(e))}get(){return A(this.read().deref())}set(e){this.inner.set(e)}toggle(){this.inner.set(e=>e.not())}increment(){this.inner.set(e=>e instanceof k?e.increment():e.add(new V(1)))}decrement(){this.inner.set(e=>e instanceof k?e.decrement():e.sub(new V(1)))}push_str(e){this.inner.set(r=>new S(`${r}${e}`))}dehydrate(){return{t:"Signal",id:this.id,v:E(this.inner())}}};function j(t,e){if(t!==null)switch(typeof t){case"string":return new S(t);case"number":return new V(t);case"boolean":return new l(t);case"bigint":case"symbol":case"undefined":case"function":throw new Error(`Unknown surrogate type: ${typeof t}`);case"object":if(Array.isArray(t))return new M(t.map(r=>j(r,e)));switch(t.t){case"u8":case"u16":case"u32":case"u64":case"u128":case"usize":case"i8":case"i16":case"i32":case"i64":case"i128":case"isize":return k.hydrate(t);case"str":return new D(t.v);case"Option":return t.v===null?c.none():c.some(j(t.v,e));case"Result":return"ok"in t?C.from_ok(j(t.ok,e)):C.from_err(j(t.err,e));case"Vec":case"Array":case"Slice":{if(!Array.isArray(t.v)||Object.keys(t).some(s=>!["t","bits","v"].includes(s)))throw new Error("Invalid collection payload");let r=K("usize",t.bits),n=t.v.map(s=>j(s,e));if(t.t==="Vec")return new X(n,r);if(t.t==="Array")return new ie(n,r);let i=new $(n,r);return F.shared(()=>i)}case"Record":{if(typeof t.v!="object"||t.v===null||Array.isArray(t.v)||Object.keys(t).some(r=>!["t","v"].includes(r)))throw new Error("Invalid record payload");return new _(Object.entries(t.v).map(([r,n])=>[r,j(n,e)]))}case"Signal":return e.signal(t.id);case"Procedure":return new re(e,t.path);default:throw new Error(`Unknown surrogate type: ${t.t}`)}}}var ye=0,oe=class{constructor(e,r){this.name=e;this.keyField=r}name;keyField;rows=new Map;shadow=new Map;writes=new Map;listeners=new Set;ready=!1;readyCbs=[];sorted=new Map;hashes=new Map;get size(){return this.rows.size}get(e){return this.rows.get(e)}has(e){return this.rows.has(e)}values(){return this.rows.values()}get pendingCount(){return this.writes.size}isReady(){return this.ready}markReady(){if(this.ready)return;this.ready=!0;let e=this.readyCbs;this.readyCbs=[];for(let r of e)r()}onFirstReady(e){return this.ready?(e(),()=>{}):(this.readyCbs.push(e),()=>{this.readyCbs=this.readyCbs.filter(r=>r!==e)})}listen(e){return this.listeners.add(e),()=>this.listeners.delete(e)}serverGet(e){return this.shadow.has(e)?this.shadow.get(e):this.rows.get(e)}serverKeys(){let e=[];for(let r of this.rows.keys())this.shadow.has(r)||e.push(r);for(let[r,n]of this.shadow)n!==void 0&&e.push(r);return e}applyServer(e,r=[],n=!0){let i=e.length>64,s=!1;for(let o of e){let a=String(o[this.keyField]);if(this.writes.has(a)){let x=this.shadow.get(a);if(x&&Y(x,o))continue;this.shadow.set(a,o),s=this.recompute(a,i)||s;continue}let u=this.rows.get(a);u&&Y(u,o)||(this.setVisible(a,u,o,i),s=!0)}for(let o of r){if(this.writes.has(o)){if(this.shadow.get(o)===void 0)continue;this.shadow.set(o,void 0),s=this.recompute(o,!1)||s;continue}let a=this.rows.get(o);a&&(this.setVisible(o,a,void 0,!1),s=!0)}return s&&n&&this.emit(),s}insert(e,r){let n=String(e[this.keyField]);if(n==="undefined"||n==="null")throw new Error(`[hearth] ${this.name}: row has no key`);if(this.rows.has(n))throw new Error(`[hearth] ${this.name}: duplicate key ${n}`);return this.write({id:++ye,type:"insert",key:n,value:e},r)}update(e,r,n){if(!this.rows.has(e))throw new Error(`[hearth] ${this.name}: no row ${e}`);if(this.keyField in r&&String(r[this.keyField])!==e)throw new Error(`[hearth] ${this.name}: cannot change a row's key`);let i=this.rows.get(e),s={};for(let a in r)Object.is(i[a],r[a])||(s[a]=r[a]);if(Object.keys(s).length===0)return Promise.resolve();r=s;let o={...i,...r};return this.write({id:++ye,type:"update",key:e,changes:r,value:o},n)}delete(e,r){if(!this.rows.has(e))throw new Error(`[hearth] ${this.name}: no row ${e}`);return this.write({id:++ye,type:"delete",key:e},r)}write(e,r){let n=e.key,i=this.writes.get(n);i||(this.shadow.set(n,this.rows.get(n)),this.writes.set(n,i=[])),i.push(e),this.recompute(n,!1)&&this.emit();let s=o=>{let a=this.writes.get(n);if(!a)return;let u=o,x=!1;(u?.rows||u?.deleted)&&(x=this.applyServer(u.rows??[],u.deleted??[],!1));let O=a.indexOf(e);O>=0&&a.splice(O,1);let N;if(a.length===0){let H=this.shadow.get(n);this.writes.delete(n),this.shadow.delete(n),N=this.setVisible(n,this.rows.get(n),H,!1)}else N=this.recompute(n,!1);(N||x)&&this.emit()};return Promise.resolve().then(()=>r(e)).then(o=>s(o),o=>{throw s(),o})}recompute(e,r){let n=this.writes.get(e),i=n?.[n.length-1],s=i?i.type==="delete"?void 0:i.value:this.shadow.get(e);return this.setVisible(e,this.rows.get(e),s,r)}setVisible(e,r,n,i){return r===n||r&&n&&Y(r,n)?!1:(r&&this.unindex(r),n?(this.rows.set(e,n),this.index(n,i)):this.rows.delete(e),!0)}notify(){this.emit()}emit(){for(let e of this.listeners)e()}comparator(e){let r=this.keyField;return(n,i)=>{for(let{col:a,desc:u}of e){let x=G(n[a],i[a]);if(x!==0)return u?-x:x}let s=String(n[r]),o=String(i[r]);return s<o?-1:s>o?1:0}}sortedIndex(e,r){let n=this.sorted.get(e);return n||(n={spec:r,cmp:this.comparator(r),arr:null,pending:[]},this.sorted.set(e,n)),n.arr?n.pending.length&&Ce(n):(n.arr=[...this.rows.values()].sort(n.cmp),n.pending=[]),n.arr}lookup(e,r){if(e===this.keyField){let n=this.rows.get(String(r));return n?[n]:Ve}return this.hashIndex(e).get(r)??Ve}hashIndex(e){let r=this.hashes.get(e);if(!r){r=new Map;for(let n of this.rows.values())Be(r,n[e],n);this.hashes.set(e,r)}return r}index(e,r){for(let[n,i]of this.hashes)i&&Be(i,e[n],e);for(let n of this.sorted.values())if(n.arr){if(r){n.pending.push(e);continue}Ce(n),n.arr.splice(Me(n.arr,e,n.cmp),0,e)}}unindex(e){for(let[r,n]of this.hashes){let i=n?.get(e[r]);i&&(i.delete(e),i.size===0&&n.delete(e[r]))}for(let r of this.sorted.values()){if(!r.arr)continue;let n=r.pending.indexOf(e);if(n>=0){r.pending.splice(n,1);continue}let i=Me(r.arr,e,r.cmp);r.arr[i]!==e&&(i=r.arr.indexOf(e)),i>=0&&r.arr.splice(i,1)}}};function G(t,e){return t===e?0:t==null?e==null?0:-1:e==null?1:typeof t=="number"&&typeof e=="number"||typeof t=="string"&&typeof e=="string"?t<e?-1:t>e?1:0:typeof t=="boolean"&&typeof e=="boolean"?t===e?0:t?1:-1:0}function Y(t,e){for(let r in t)if(t[r]!==e[r])return!1;for(let r in e)if(!(r in t))return!1;return!0}var Ve=[];function Be(t,e,r){let n=t.get(e);n||t.set(e,n=new Set),n.add(r)}function Me(t,e,r){let n=0,i=t.length;for(;n<i;){let s=n+i>>>1;r(t[s],e)<0?n=s+1:i=s}return n}function Ce(t){if(!t.arr||!t.pending.length)return;let e=t.pending.sort(t.cmp),r=t.arr,n=new Array(r.length+e.length),i=0,s=0,o=0;for(;i<r.length&&s<e.length;)n[o++]=t.cmp(r[i],e[s])<=0?r[i++]:e[s++];for(;i<r.length;)n[o++]=r[i++];for(;s<e.length;)n[o++]=e[s++];t.arr=n,t.pending=[]}function L(t){return t==null?!1:typeof t=="boolean"?t:typeof t=="string"?t.length>0:typeof t=="number"?t!==0:!0}function g(t,e){if("col"in t){let[r,n]=t.col;return i=>{let s=i[r]?.[n];return s===void 0?null:s}}if("lit"in t){let r=t.lit;return()=>r}if("param"in t){let r=R(e[t.param]);return()=>r}switch(t.op){case"eq":case"ne":{let r=g(t.l,e),n=g(t.r,e),i=t.op==="ne";return s=>{let o=r(s),a=n(s);return(G(o,a)===0&&ot(o,a))!==i}}case"lt":case"lte":case"gt":case"gte":{let r=g(t.l,e),n=g(t.r,e),i=t.op;return s=>{let o=G(r(s),n(s));return i==="lt"?o<0:i==="lte"?o<=0:i==="gt"?o>0:o>=0}}case"contains":{let r=g(t.l,e),n=g(t.r,e),i="param"in t.r||"lit"in t.r,s=i?String(n({})??"").toLowerCase():"";return o=>{let a=r(o);if(typeof a!="string")return!1;let u=i?s:String(n(o)??"").toLowerCase();return at(a).includes(u)}}case"ilike":{let r=g(t.l,e),n=g(t.r,e);return i=>{let s=r(i),o=n(i);return typeof s=="string"&&typeof o=="string"&<(o).test(s)}}case"in":{let r=g(t.l,e),n=g(t.r,e);return i=>{let s=n(i);return Array.isArray(s)&&s.includes(r(i))}}case"and":{let r=t.args.map(n=>g(n,e));return n=>r.every(i=>L(i(n)))}case"or":{let r=t.args.map(n=>g(n,e));return n=>r.some(i=>L(i(n)))}case"not":{let r=g(t.arg,e);return n=>!L(r(n))}case"if":{let r=g(t.cond,e),n=g(t.then,e);return i=>L(r(i))?n(i):!0}}}function ot(t,e){return t==null||e==null?t==e:typeof t==typeof e}var ae=new Map;function at(t){let e=ae.get(t);return e===void 0&&(ae.size>2e5&&ae.clear(),e=t.toLowerCase(),ae.set(t,e)),e}var $e=new Map;function lt(t){let e=$e.get(t);if(!e){let r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,".");e=new RegExp(`^${r}$`,"is"),$e.set(t,e)}return e}function U(t,e=new Set){if(!t)return e;if("col"in t)e.add(t.col[0]);else{if("lit"in t||"param"in t)return e;"args"in t?t.args.forEach(r=>U(r,e)):"arg"in t?U(t.arg,e):"cond"in t?(U(t.cond,e),U(t.then,e)):(U(t.l,e),U(t.r,e))}return e}function ve(t,e,r){if(!t||"col"in t||"lit"in t||"param"in t)return[];if(t.op==="and")return t.args.flatMap(i=>ve(i,e,r));if(t.op!=="eq")return[];let n=(i,s)=>"col"in i&&i.col[0]===e&&("param"in s||"lit"in s)?[{col:i.col[1],v:"param"in s?R(r[s.param]):s.lit}]:[];return[...n(t.l,t.r),...n(t.r,t.l)]}function ze(t,e){let r=e(t.table);if(t.key!==r.keyField)throw new Error(`[hearth] key mismatch for ${t.table}: IR ${t.key}, store ${r.keyField}`);return r}function ut(t,e,r){let n=ze(t.from,r),i=t.from.alias,s=ue(t.where,e),o=s?g(s,e):null,a=d=>[...U(d)].every(p=>p===i),u=t.joins.length===0||a(s)&&t.order.every(d=>a(d.expr)),x=t.order.map(d=>({f:g(d.expr,e),desc:d.desc})),O=n.keyField,N=d=>d.sort((p,m)=>{for(let{f:B,desc:y}of x){let h=G(B(p),B(m));if(h!==0)return y?-h:h}let w=String(p[i]?.[O]),P=String(m[i]?.[O]);return w<P?-1:w>P?1:0}),H=t.joins.map(d=>{let p=ze(d,r),[m,w]=d.on;"col"in w&&w.col[0]===d.alias||([m,w]=[w,m]);let P=g(m,e),B="col"in w&&w.col[0]===d.alias?w.col[1]:null,y=g({op:"eq",l:d.on[0],r:d.on[1]},e);return{j:d,m:p,probeFn:P,byCol:B,onFn:y}}),ee=d=>{for(let{j:p,m,probeFn:w,byCol:P,onFn:B}of H){let y=[];for(let h of d){let v=!1;if(P!==null){let f=w(h);if(f!=null)for(let T of m.lookup(P,f))y.push({...h,[p.alias]:T}),v=!0}else for(let f of m.rows.values()){let T={...h,[p.alias]:f};L(B(T))&&(y.push(T),v=!0)}!v&&p.kind!=="inner"&&y.push(h)}d=y}return d},I;if(u){let d={},p=h=>o?(d[i]=h,L(o(d))):!0,m=t.limit,w=null,P=1/0;for(let{col:h,v}of ve(s,i,e)){let f=n.lookup(h,v),T=Array.isArray(f)?f.length:f.size;T<P&&(w=f,P=T)}let B=t.order.every(h=>"col"in h.expr&&h.expr.col[0]===i),y;if(t.order.length&&B&&m!=null&&P>m*8){let h=t.order.map(f=>({col:f.expr.col[1],desc:f.desc})),v=n.sortedIndex(JSON.stringify(h),h);y=[];for(let f=0;f<v.length&&y.length<m;f++){let T=v[f];p(T)&&y.push(T)}I=y.map(f=>({[i]:f}))}else{y=[];for(let h of w??n.rows.values())p(h)&&y.push(h);I=y.map(h=>({[i]:h})),t.order.length&&N(I),m!=null&&(I.length=Math.min(I.length,m))}I=ee(I)}else{let d=s&&!("col"in s)&&!("lit"in s)&&!("param"in s)&&s.op==="and"?s.args:s?[s]:[],p=d.filter(v=>a(v)),m=d.filter(v=>!a(v)),w=p.length?g({op:"and",args:p},e):null,P=m.length?g({op:"and",args:m},e):null,B=n.rows.values(),y=1/0;for(let{col:v,v:f}of ve(p.length?{op:"and",args:p}:null,i,e)){let T=n.lookup(v,f),xe=Array.isArray(T)?T.length:T.size;xe<y&&(B=T,y=xe)}let h=[];for(let v of B){let f={[i]:v};(!w||L(w(f)))&&h.push(f)}I=ee(h),P&&(I=I.filter(v=>L(P(v)))),t.order.length&&N(I),t.limit!=null&&(I.length=Math.min(I.length,t.limit))}let We=Object.entries(t.select).map(([d,p])=>[d,g(p,e)]);return I.map(d=>{let p={};for(let[m,w]of We)p[m]=w(d);return p})}var le=class{constructor(e,r,n){this.query=e;this.params=r;this.tables=n;let i=new Set([e.from.table,...e.joins.map(s=>s.table)]);this.mirrors=[...i].map(s=>n(s));for(let s of this.mirrors)this.unlisten.push(s.listen(()=>this.changed()))}query;params;tables;planned=void 0;result=[];dirty=!0;scheduled=!1;subs=new Set;unlisten=[];mirrors;prevByKey=new Map;isReady(){return this.mirrors.every(e=>e.isReady())}onFirstReady(e){if(this.isReady()){e();return}let r=this.mirrors.filter(n=>!n.isReady()).length;for(let n of this.mirrors)n.isReady()||n.onFirstReady(()=>{--r===0&&(this.dirty=!0,e())})}get toArray(){return this.dirty&&this.recompute(),this.result}get size(){return this.toArray.length}subscribeChanges(e){return this.subs.add(e),{unsubscribe:()=>this.subs.delete(e)}}cleanup(){for(let e of this.unlisten)e();this.unlisten=[],this.subs.clear()}changed(){this.dirty=!0,!(this.subs.size===0||this.scheduled)&&(this.scheduled=!0,queueMicrotask(()=>{if(this.scheduled=!1,!!this.dirty&&this.recompute())for(let e of this.subs)e()}))}recompute(){this.dirty=!1;let e=performance.now(),r=ut(this.query,this.params,this.tables);globalThis.__hearthRunMs=performance.now()-e;let n=this.query.key,i=this.prevByKey,s=new Map,o=r.length!==this.result.length;for(let a=0;a<r.length;a++){let u=r[a],x=String(u[n]),O=i.get(x);O&&Y(O,u)&&(r[a]=O),s.set(x,r[a]),r[a]!==this.result[a]&&(o=!0)}return this.prevByKey=s,this.result=r,o}};var Se=class{tables=new Map;desc=new Map;version=W(0);schema=null;seeds={};backfillScheduled=!1;init(e,r){this.schema=e;for(let[n,i]of Object.entries(r))this.seed(n,i)}seed(e,r){if(r.length!==0){if(this.tables.has(e)){this.apply(e,r,!1);return}(this.seeds[e]??=[]).push(...r)}}ensure(e){if(this.tables.has(e))return;let r=this.schema?.tables.find(i=>i.name===e);if(!r)throw new Error(`[hearth] unknown table ${e}`);let n=this.seeds[e];this.createTable(r,n),delete this.seeds[e],this.backfillStarted&&n&&this.syncTable(r).catch(i=>ke(e,i)),this.backfillScheduled||(this.backfillScheduled=!0,setTimeout(()=>this.backfill().then(()=>window.__hearthBackfilled=performance.now()),0),this.watchFreshness())}createTable(e,r){this.desc.set(e.name,e);let n=new oe(e.name,e.key);this.tables.set(e.name,n),r&&r.length>0?(n.applyServer(r),n.markReady()):this.syncTable(e).catch(i=>ke(e.name,i))}persistence=null;cache(){return this.persistence??=(async()=>{let e=document.querySelector("script[data-hearth-persistence]")?.dataset.hearthPersistence;if(!e||!this.schema||!globalThis.indexedDB)return null;let{Persistence:r}=await import(e);return r.open(JSON.stringify([this.schema.version,this.schema.scope]))})().catch(()=>null),this.persistence}cursors=new Map;restored=new Set;inflight=new Map;mutationEpoch=new Map;pending=new Map;syncTable(e){let r=this.inflight.get(e.name);return r||(r=this.sync(e).finally(()=>this.inflight.delete(e.name)),this.inflight.set(e.name,r)),r}async sync(e){let r=await this.cache();if(!this.restored.has(e.name)){this.restored.add(e.name);try{let n=this.mutationEpoch.get(e.name)??0,i=this.tables.get(e.name),s=new Set(i.serverKeys()),o=await r?.restore(e.name,a=>{n===(this.mutationEpoch.get(e.name)??0)&&i.applyServer(a.filter(u=>!s.has(String(u[e.key]))),[],!1)});this.tables.get(e.name).notify(),o&&n===(this.mutationEpoch.get(e.name)??0)&&(this.cursors.set(e.name,o),this.tables.get(e.name).markReady(),performance.mark(`hearth:restored:${e.name}`))}catch{r=null}}for(;;){await Promise.allSettled([...this.pending.get(e.name)??[]]);let n=this.mutationEpoch.get(e.name)??0,i=this.cursors.get(e.name),s=e.load+(e.load.includes("?")?"&":"?")+(i?"since="+encodeURIComponent(i):"sync=1"),o=await ht(s,this.schema?.on_unauthorized);if(n!==(this.mutationEpoch.get(e.name)??0)||this.pending.get(e.name)?.size)continue;let a=Array.isArray(o)?{rows:o,deleted:[],full:!0,cursor:""}:o;if(await this.applyChunked(e.name,a.rows,a.full,a.deleted,()=>n===(this.mutationEpoch.get(e.name)??0)),!(n!==(this.mutationEpoch.get(e.name)??0)||this.pending.get(e.name)?.size)){if(this.tables.get(e.name).markReady(),performance.mark(`hearth:synced:${e.name}`),a.cursor){this.cursors.set(e.name,a.cursor);try{await r?.save(e.name,e.key,a,i)}catch{this.persistence=Promise.resolve(null)}}return}}}apply(e,r,n,i=[]){let s=this.tables.get(e);if(!s)return;let o=i;if(n){let a=new Set(r.map(u=>String(u[s.keyField])));o=s.serverKeys().filter(u=>!a.has(u))}s.applyServer(r,o)&&this.version.set(a=>a+1)}watchFreshness(){let e=Date.now(),r=()=>{Date.now()-e<5e3||(e=Date.now(),this.backfill())};addEventListener("focus",r),addEventListener("online",r),document.addEventListener("visibilitychange",()=>document.visibilityState==="visible"&&r())}backfillStarted=!1;async backfill(){this.backfillStarted=!0;let e=[...this.desc.values()];await Promise.all(e.map(async r=>{try{await this.syncTable(r)}catch(n){ke(r.name,n)}}))}async applyChunked(e,r,n=!0,i=[],s=()=>!0){if(r.length<=1e3){this.apply(e,r,n,i);return}let a=this.desc.get(e).key,u=new Set;for(let N=0;N<r.length;N+=1e3){if(!s())return;let H=r.slice(N,N+1e3);for(let ee of H)u.add(String(ee[a]));this.apply(e,H,!1),await ft()}if(!s())return;let x=this.tables.get(e),O=n&&x?x.serverKeys().filter(N=>!u.has(N)):i;O.length&&this.apply(e,[],!1,O)}table_=e=>(this.ensure(e),this.tables.get(e));live(e,r){return new le(e,r,this.table_)}surrogate(e,r){return new _(Object.entries(r).map(([n,i])=>[dt(n),Le(e[n],i)]))}update(e,r,n){this.ensure(e);let i=this.desc.get(e),s=String(R(r));this.track(e,this.tables.get(e).update(s,n,async o=>({rows:[await be(i.mutate,{op:"update",key:o.key,changes:o.changes},this.schema?.on_unauthorized)]})))}insert(e,r){this.ensure(e);let n=this.desc.get(e);(r[n.key]==null||r[n.key]==="")&&(r[n.key]=crypto.randomUUID()),this.track(e,this.tables.get(e).insert(r,async i=>({rows:[await be(n.mutate,{op:"insert",row:i.value},this.schema?.on_unauthorized)]})))}delete(e,r){this.ensure(e);let n=this.desc.get(e);this.track(e,this.tables.get(e).delete(String(R(r)),async i=>(await be(n.mutate,{op:"delete",key:i.key},this.schema?.on_unauthorized),{deleted:[i.key]})))}track(e,r){this.mutationEpoch.set(e,(this.mutationEpoch.get(e)??0)+1);let n=this.pending.get(e);n||this.pending.set(e,n=new Set),n.add(r),r.catch(i=>pt(`Rolled back: ${i.message}`)).finally(()=>n.delete(r))}table(e){return{set:(r,n,i)=>this.update(e,r,{[String(R(n))]:R(i)}),insert:(...r)=>{let n={};for(let i=0;i+1<r.length;i+=2)n[String(R(r[i]))]=R(r[i+1]);this.insert(e,n)},remove:r=>this.delete(e,r),insert1:(...r)=>this.table(e).insert(...r),insert2:(...r)=>this.table(e).insert(...r),insert3:(...r)=>this.table(e).insert(...r),insert4:(...r)=>this.table(e).insert(...r),toggle2:(r,...n)=>this.table(e).toggle(r,...n),toggle3:(r,...n)=>this.table(e).toggle(r,...n),toggle:(r,...n)=>{let i=String(R(r));if(this.ensure(e),this.tables.get(e).has(i))this.delete(e,i);else{let s={};for(let o=0;o+1<n.length;o+=2)s[String(R(n[o]))]=R(n[o+1]);this.insert(e,s)}},dehydrate:()=>e}}get(e,r){return this.tables.get(e)?.get(String(R(r)))}},De=null;function je(){return De??=new Se,De}function ct(t,e){if("param"in t)return e[t.param];if("lit"in t)return t.lit;throw new Error("[hearth] `if` conditions must be params or literals")}function R(t){let e=t;for(let r=0;r<8&&e&&typeof e=="object";r++){let n=e;if(typeof n.deref=="function"&&!(n instanceof c)){e=n.deref();continue}if(n instanceof c)return n.is_some().dehydrate()?R(n.unwrap()):null;if(typeof n.dehydrate=="function"){let i=n.dehydrate();if(i&&typeof i=="object"&&"v"in i&&i.t!=="Record"){let s=i.v;return typeof s=="string"&&/^-?\d+$/.test(s)?Number(s):s}return i}return e}return e}function Le(t,e){switch(e){case"string":return new S(String(t??""));case"bool":return new l(!!t);case"i64":return k.hydrate({t:"i64",bits:64,v:String(Math.trunc(Number(t??0)))});case"f64":return new V(Number(t??0));case"opt_string":return t==null?c.none():c.some(new S(String(t)));case"opt_i64":return t==null?c.none():c.some(Le(t,"i64"))}}function dt(t){return t.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}function Ue(t,e={redirect:"/login"}){let r=e==="error"?void 0:e.redirect,n=!1;if(r&&t.redirected){let i=new URL(r,location.href),s=new URL(t.url);n=s.origin===i.origin&&s.pathname===i.pathname}if(!(t.status!==401&&!n))throw r&&(location.href=r),new Error("unauthorized")}async function ht(t,e){let r=await fetch(t,{headers:{accept:"application/json"}});if(Ue(r,e),!r.ok)throw new Error(`${r.status}`);return r.json()}async function be(t,e,r){let n=await fetch(t,{method:"POST",headers:{"content-type":"application/json",accept:"application/json"},body:JSON.stringify(e)});if(Ue(n,r),!n.ok)throw new Error(`${n.status} ${(await n.text()).slice(0,120)}`);let i=await n.text();return i?JSON.parse(i):null}function ke(t,e){(globalThis.__hearthErrors??=[]).push(`load ${t}: ${e?.message??e}`),console.error("[hearth] load",t,e)}function pt(t){let e=Object.assign(document.createElement("div"),{className:"hearth-toast",textContent:t});document.body.append(e),setTimeout(()=>e.remove(),3500)}function ue(t,e){if(!t||"col"in t||"lit"in t||"param"in t)return t;if(t.op==="if")return R(ct(t.cond,e))?ue(t.then,e):null;if(t.op==="and"){let r=[];for(let n of t.args){let i=ue(n,e);i&&(!("col"in i)&&!("lit"in i)&&!("param"in i)&&i.op==="and"?r.push(...i.args):r.push(i))}return r.length===0?null:r.length===1?r[0]:{...t,args:r}}return t}function ft(){let t=globalThis.scheduler;return t?.postTask?t.postTask(()=>{},{priority:"background"}):new Promise(e=>setTimeout(e,0))}var ce=null;function Q(){return ce||(ce=W(location.pathname+location.search),document.addEventListener("click",t=>{if(t.defaultPrevented||t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;let e=t.target?.closest?.("a[data-hearth-link]");e&&(t.preventDefault(),de.navigate(e.href))}),addEventListener("popstate",()=>de.navigate(location.href,!1)),history.replaceState({hearth:!0},""),ce)}var de={init:Q,path(){return new S(Q()())},segment(t){let e=Q()().split("?")[0].split("/").filter(Boolean);return new S(e[t]??"")},query(t){let e=Q()().split("?")[1]??"";return new S(new URLSearchParams(e).get(t)??"")},navigate(t,e=!0){let r=new URL(t,location.href);if(r.origin!==location.origin){location.href=t;return}e&&history.pushState({hearth:!0},"",r);let n=performance.now();Q().set(r.pathname+r.search),requestAnimationFrame(()=>window.__hearthNavMs=performance.now()-n),e&&scrollTo(0,0)}};var he=class t{constructor(e,r=new Map){this.registry=e;this.rows=r}registry;rows;withRow(e,r){let n=new Map(this.rows);return n.set(e,r),new t(this.registry,n)}row(e){let r=this.rows.get(e);if(!r)throw new Error(`cx.row(${e}) outside its client list`);return r.read()}get route(){return de}get db(){return je()}expression(e){return Ee(e,"captured expression")(this)}hydrate(e){return j(e,this)}signal(e){return new se(e,this.registry.handle(e))}some(e){return c.some(e)}none(){return c.none()}ok(e){return C.from_ok(e)}err(e){return C.from_err(e)}record(e){return new _(Object.entries(e))}tuple(e){return new M(e)}};var Z=class extends he{hydrate(e){if(e===null||typeof e!="object"||Reflect.get(e,"t")!=="CoherenceFuture")return super.hydrate(e);let r=e;if(typeof r.pending_once!="boolean"||r.completion?.kind!=="Return"&&r.completion?.kind!=="Panic"||r.completion.kind==="Panic"&&typeof r.completion.value!="string")throw new Error("Invalid coherence awaitable");return new J(async()=>{if(r.pending_once&&await Promise.resolve(),r.completion.kind==="Panic")throw new b(r.completion.value);return this.hydrate(r.completion.value)})}};function z(t){if(t===void 0)return{type:"Unit"};if(t instanceof F)return z(t.deref());if(t instanceof $){let e=Reflect.get(t,"items"),r=Reflect.get(t,"start"),n=Reflect.get(t,"end");if(!Array.isArray(e)||typeof r!="number"||typeof n!="number"||!Number.isInteger(r)||!Number.isInteger(n)||r<0||n<r||n>e.length)throw new Error("Invalid Slice storage");return{type:"Sequence",value:e.slice(r,n).map(z)}}if(t instanceof l){let e=Reflect.get(t,"v");if(typeof e!="boolean")throw new Error("Invalid Bool storage");return{type:"Bool",value:e}}if(t instanceof V){let e=Reflect.get(t,"v");if(typeof e!="number")throw new Error("Invalid F64 storage");let r=new DataView(new ArrayBuffer(8));return r.setFloat64(0,e),{type:"F64",value:Number.isNaN(e)?"nan":r.getBigUint64(0).toString(16).padStart(16,"0")}}if(t instanceof D){let e=Reflect.get(t,"v");if(typeof e!="string")throw new Error("Invalid Str storage");return{type:"String",value:e}}if(t instanceof k){let e=Reflect.get(t,"v"),r=Reflect.get(t,"type");if(typeof e!="bigint"||typeof r?.kind!="string"||typeof r?.bits!="number")throw new Error("Invalid Integer storage");return{type:"Integer",value:{kind:r.kind,bits:r.bits,digits:e.toString()}}}if(t instanceof c){let e=Reflect.get(t,"value");return e===void 0?{type:"None"}:{type:"Some",value:z(e)}}if(t instanceof C){let e=Reflect.get(t,"kind");if(e!=="ok"&&e!=="err")throw new Error("Invalid Result storage");return{type:e==="ok"?"Ok":"Err",value:z(Reflect.get(t,"value"))}}if(t instanceof M){let e=Reflect.get(t,"items");if(!Array.isArray(e))throw new Error("Invalid Tuple storage");return{type:"Tuple",value:e.map(z)}}if(t instanceof _)return{type:"Record",value:Object.fromEntries(Object.entries(t).map(([e,r])=>[e,z(r)]))};throw new Error(`Unsupported coherence value: ${Object.prototype.toString.call(t)}`)}function gt(t,e){let r=new Z(new q),n=He(t);if(typeof n=="string")return n;let i;try{if(i=n(r),e){if(typeof i!="function")throw new Error("Expected a compiled closure");i=i()}}catch(s){if(s instanceof b)return JSON.stringify({kind:"Panic",value:s.message});if(s instanceof Error)return JSON.stringify({kind:"Exception",value:s.toString()});throw s}return JSON.stringify({kind:"Return",value:z(i)})}async function mt(t){let e=new Z(new q),r=He(t);if(typeof r=="string")return r;let n;try{let i=r(e);if(typeof i!="function")throw new Error("Expected a compiled async closure");let s=i();if(!(s instanceof Promise))throw new Error("Compiled async closure must return a promise");n=await s}catch(i){if(i instanceof b)return JSON.stringify({kind:"Panic",value:i.message});if(i instanceof Error)return JSON.stringify({kind:"Exception",value:i.toString()});throw i}return JSON.stringify({kind:"Return",value:z(n)})}function He(t){try{return new Function("cx",`return (${t});`)}catch(e){if(e instanceof SyntaxError)return JSON.stringify({kind:"CompileError",value:e.toString()});throw e}}return Ge(wt);})();