(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))a(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&a(o)}).observe(document,{childList:!0,subtree:!0});function r(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function a(s){if(s.ep)return;s.ep=!0;const i=r(s);fetch(s.href,i)}})();const rs=!1;var sa=Array.isArray,pi=Array.prototype.indexOf,cn=Array.prototype.includes,_n=Array.from,ns=Object.defineProperty,mr=Object.getOwnPropertyDescriptor,as=Object.getOwnPropertyDescriptors,hi=Object.prototype,mi=Array.prototype,ia=Object.getPrototypeOf,Ma=Object.isExtensible;const Ot=()=>{};function _i(e){return e()}function dn(e){for(var t=0;t{e=a,t=s});return{promise:r,resolve:e,reject:t}}function gi(e,t){if(Array.isArray(e))return e;if(!(Symbol.iterator in e))return Array.from(e);const r=[];for(const a of e)if(r.push(a),r.length===t)break;return r}const Ze=2,br=4,Xr=8,is=1<<24,Tt=16,kt=32,Wt=64,Dn=128,bt=512,Je=1024,Ke=2048,It=4096,lt=8192,ht=16384,Mr=32768,Ln=1<<25,kr=65536,un=1<<17,bi=1<<18,zr=1<<19,ls=1<<20,zt=1<<25,ar=65536,vn=1<<21,_r=1<<22,Jt=1<<23,qt=Symbol("$state"),ki=Symbol("legacy props"),xi=Symbol(""),os=Symbol("attributes"),On=Symbol("class"),qn=Symbol("style"),Bn=Symbol("text"),nn=Symbol("form reset"),Qr=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},wi=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml");function yi(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Si(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Ti(e,t,r){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Ei(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function $i(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Ii(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Mi(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function zi(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Ai(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Pi(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Ri(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function ji(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Ci=1,Fi=2,cs=4,Ni=8,Di=16,Li=1,Oi=2,qi=4,Bi=8,Ui=16,ds=1,Wi=2,Ye=Symbol("uninitialized"),Gi="http://www.w3.org/1999/xhtml";function Ki(){console.warn("https://svelte.dev/e/derived_inert")}function Hi(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Vi(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function us(e){return e===this.v}function vs(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function fs(e){return!vs(e,this.v)}let Ar=!1,Yi=!1;function Ji(){Ar=!0}let je=null;function xr(e){je=e}function qe(e,t=!1,r){je={p:je,i:!1,c:null,e:null,s:e,x:null,r:fe,l:Ar&&!t?{s:null,u:null,$:[]}:null}}function Be(e){var t=je,r=t.e;if(r!==null){t.e=null;for(var a of r)js(a)}return t.i=!0,je=t.p,{}}function Zr(){return!Ar||je!==null&&je.l===null}let Qt=[];function ps(){var e=Qt;Qt=[],dn(e)}function Dt(e){if(Qt.length===0&&!Gr){var t=Qt;queueMicrotask(()=>{t===Qt&&ps()})}Qt.push(e)}function Xi(){for(;Qt.length>0;)ps()}function hs(e){var t=fe;if(t===null)return he.f|=Jt,e;if((t.f&Mr)===0&&(t.f&br)===0)throw e;Vt(e,t)}function Vt(e,t){if(!(t!==null&&(t.f&ht)!==0)){for(;t!==null;){if((t.f&Dn)!==0){if((t.f&Mr)===0)throw e;try{t.b.error(e);return}catch(r){e=r}}t=t.parent}throw e}}const Qi=-7169;function De(e,t){e.f=e.f&Qi|t}function la(e){(e.f&bt)!==0||e.deps===null?De(e,Je):De(e,It)}function ms(e){if(e!==null)for(const t of e)(t.f&Ze)===0||(t.f&ar)===0||(t.f^=ar,ms(t.deps))}function _s(e,t,r){(e.f&Ke)!==0?t.add(e):(e.f&It)!==0&&r.add(e),ms(e.deps),De(e,Je)}function oa(e,t,r){if(e==null)return t(void 0),r&&r(void 0),Ot;const a=oe(()=>e.subscribe(t,r));return a.unsubscribe?()=>a.unsubscribe():a}const vr=[];function Zi(e,t){return{subscribe:it(e,t).subscribe}}function it(e,t=Ot){let r=null;const a=new Set;function s(d){if(vs(e,d)&&(e=d,r)){const c=!vr.length;for(const f of a)f[1](),vr.push(f,e);if(c){for(let f=0;f{a.delete(f),a.size===0&&r&&(r(),r=null)}}return{set:s,update:i,subscribe:o}}function el(e,t,r){const a=!Array.isArray(e),s=a?[e]:e;if(!s.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const i=t.length<2;return Zi(r,(o,d)=>{let c=!1;const f=[];let h=0,g=Ot;const _=()=>{if(h)return;g();const b=t(a?f[0]:f,o,d);i?o(b):g=typeof b=="function"?b:Ot},m=s.map((b,$)=>oa(b,T=>{f[$]=T,h&=~(1<<$),c&&_()},()=>{h|=1<<$}));return c=!0,_(),function(){dn(m),g(),c=!1}})}function Le(e){let t;return oa(e,r=>t=r)(),t}let Un=!1,Lr=!1,Wn=Symbol("unmounted");function me(e,t,r){const a=r[t]??={store:null,source:$s(void 0),unsubscribe:Ot};if(a.store!==e&&!(Wn in r))if(a.unsubscribe(),a.store=e??null,e==null)a.source.v=void 0,a.unsubscribe=Ot;else{var s=!0;a.unsubscribe=oa(e,i=>{s?a.source.v=i:ge(a.source,i)}),s=!1}return e&&Wn in r?Le(e):n(a.source)}function gn(e,t){return gs(e,t),t}function mt(){const e={};function t(){bn(()=>{for(var r in e)e[r].unsubscribe();ns(e,Wn,{enumerable:!1,value:!0})})}return[e,t]}function gs(e,t){Un=!0;try{e.set(t)}finally{Un=!1}}function rt(e,t,r){return gs(e,r),t}function bs(){Lr=!0}function tl(e){var t=Lr;try{return Lr=!1,[e(),Lr]}finally{Lr=t}}let za=!1;function rl(){za||(za=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t[nn]?.()})},{capture:!0}))}function Pr(e){var t=he,r=fe;xt(null),Rt(null);try{return e()}finally{xt(t),Rt(r)}}function ca(e,t,r,a=r){e.addEventListener(t,()=>Pr(r));const s=e[nn];s?e[nn]=()=>{s(),a(!0)}:e[nn]=()=>a(!0),rl()}function nl(e){let t=0,r=sr(0),a;return()=>{pa()&&(n(r),kn(()=>(t===0&&(a=oe(()=>e(()=>Kr(r)))),t+=1,()=>{Dt(()=>{t-=1,t===0&&(a?.(),a=void 0,Kr(r))})})))}}var al=kr|zr;function sl(e,t,r,a){new il(e,t,r,a)}class il{parent;is_pending=!1;transform_error;#t;#i=null;#e;#o;#n;#s=null;#r=null;#l=null;#a=null;#h=0;#c=0;#d=!1;#v=new Set;#m=new Set;#u=null;#g=nl(()=>(this.#u=sr(this.#h),()=>{this.#u=null}));constructor(t,r,a,s){this.#t=t,this.#e=r,this.#o=i=>{var o=fe;o.b=this,o.f|=Dn,a(i)},this.parent=fe.b,this.transform_error=s??this.parent?.transform_error??(i=>i),this.#n=ha(()=>{this.#f()},al)}#_(){try{this.#s=gt(()=>this.#o(this.#t))}catch(t){this.error(t)}}#x(t){const r=this.#e.failed,{reset:a,invoke_onerror:s}=this.#b(t);Dt(s),r&&(this.#l=gt(()=>{r(this.#t,()=>t,()=>a)}))}#b(t){var r=!1,a=!1;const s=()=>{if(r){Vi();return}r=!0,a&&ji(),this.#l!==null&&tr(this.#l,()=>{this.#l=null}),this.#p(()=>{this.#f()})};return{reset:s,invoke_onerror:()=>{try{a=!0,this.#e.onerror?.(t,s),a=!1}catch(o){Vt(o,this.#n&&this.#n.parent)}}}}#w(){const t=this.#e.pending;t&&(this.is_pending=!0,this.#r=gt(()=>t(this.#t)),Dt(()=>{var r=this.#a=document.createDocumentFragment(),a=Bt();r.append(a),this.#s=this.#p(()=>gt(()=>this.#o(a))),this.#c===0&&(this.#t.before(r),this.#a=null,tr(this.#r,()=>{this.#r=null}),this.#k(ce))}))}#f(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#h=0,this.#s=gt(()=>{this.#o(this.#t)}),this.#c>0){var t=this.#a=document.createDocumentFragment();_a(this.#s,t);const r=this.#e.pending;this.#r=gt(()=>r(this.#t))}else this.#k(ce)}catch(r){this.error(r)}}#k(t){this.is_pending=!1,t.transfer_effects(this.#v,this.#m)}defer_effect(t){_s(t,this.#v,this.#m)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#e.pending}#p(t){var r=fe,a=he,s=je;Rt(this.#n),xt(this.#n),xr(this.#n.ctx);try{return Xt.ensure(),t()}catch(i){return hs(i),null}finally{Rt(r),xt(a),xr(s)}}#y(t,r){if(!this.has_pending_snippet()){this.parent&&this.parent.#y(t,r);return}this.#c+=t,this.#c===0&&(this.#k(r),this.#r&&tr(this.#r,()=>{this.#r=null}),this.#a&&(this.#t.before(this.#a),this.#a=null))}update_pending_count(t,r){this.#y(t,r),this.#h+=t,!(!this.#u||this.#d)&&(this.#d=!0,Dt(()=>{this.#d=!1,this.#u&&yr(this.#u,this.#h)}))}get_effect_pending(){return this.#g(),n(this.#u)}error(t){if(!this.#e.onerror&&!this.#e.failed)throw t;ce?.is_fork?(this.#s&&ce.skip_effect(this.#s),this.#r&&ce.skip_effect(this.#r),this.#l&&ce.skip_effect(this.#l),ce.oncommit(()=>{this.#S(t)})):this.#S(t)}#S(t){this.#s&&(ut(this.#s),this.#s=null),this.#r&&(ut(this.#r),this.#r=null),this.#l&&(ut(this.#l),this.#l=null);let r=this.#e.failed;const a=s=>{const{reset:i,invoke_onerror:o}=this.#b(s);o(),r&&(this.#l=this.#p(()=>{try{return gt(()=>{var d=fe;d.b=this,d.f|=Dn,r(this.#t,()=>s,()=>i)})}catch(d){return Vt(d,this.#n.parent),null}}))};Dt(()=>{var s;try{s=this.transform_error(t)}catch(i){Vt(i,this.#n&&this.#n.parent);return}s!==null&&typeof s=="object"&&typeof s.then=="function"?s.then(a,i=>Vt(i,this.#n&&this.#n.parent)):a(s)})}}function ll(e,t,r,a){const s=Zr()?wr:da;var i=e.filter(m=>!m.settled),o=t.map(s);if(r.length===0&&i.length===0){a(o);return}var d=fe,c=ol(),f=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(m=>m.promise)):null;function h(m){if((d.f&ht)===0){c();try{a([...o,...m])}catch(b){Vt(b,d)}fn()}}var g=ks();if(r.length===0){f.then(()=>h([])).finally(g);return}function _(){Promise.all(r.map(m=>cl(m))).then(h).catch(m=>Vt(m,d)).finally(g)}f?f.then(()=>{c(),_(),fn()}):_()}function ol(){var e=fe,t=he,r=je,a=ce;return function(i=!0){Rt(e),xt(t),xr(r),i&&(e.f&ht)===0&&(a?.activate(),a?.apply())}}function fn(e=!0){Rt(null),xt(null),xr(null),e&&ce?.deactivate()}function ks(){var e=fe,t=e.b,r=ce,a=!!t?.is_rendered();return t?.update_pending_count(1,r),r.increment(a,e),()=>{t?.update_pending_count(-1,r),r.decrement(a,e)}}function wr(e){var t=Ze|Ke;return fe!==null&&(fe.f|=zr),{ctx:je,deps:null,effects:null,equals:us,f:t,fn:e,reactions:null,rv:0,v:Ye,wv:0,parent:fe,ac:null}}const Or=Symbol("obsolete");function cl(e,t,r){let a=fe;a===null&&Si();var s=void 0,i=sr(Ye),o=!he,d=new Set;return yl(()=>{var c=fe,f=ss();s=f.promise;try{Promise.resolve(e()).then(f.resolve,m=>{m!==Qr&&f.reject(m)}).finally(fn)}catch(m){f.reject(m),fn()}var h=ce;if(o){if((c.f&Mr)!==0)var g=ks();if(a.b?.is_rendered())h.async_deriveds.get(c)?.reject(Or);else for(const m of d.values())m.reject(Or);d.add(f),h.async_deriveds.set(c,f)}const _=(m,b=void 0)=>{g?.(),d.delete(f),b!==Or&&(h.activate(),b?(i.f|=Jt,yr(i,b)):((i.f&Jt)!==0&&(i.f^=Jt),yr(i,m)),h.deactivate())};f.promise.then(_,m=>_(null,m||"unknown"))}),bn(()=>{for(const c of d)c.reject(Or)}),new Promise(c=>{function f(h){function g(){h===s?c(i):f(s)}h.then(g,g)}f(s)})}function I(e){const t=wr(e);return Os(t),t}function da(e){const t=wr(e);return t.equals=fs,t}function dl(e){var t=e.effects;if(t!==null){e.effects=null;for(var r=0;r{t.ac.abort(Qr),t.ac=null}),t.fn!==null&&(t.teardown=Ot),Yr(t,0),ma(t))}function ws(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&t.fn!==null&&Sr(t)}let zn=null,fr=null,ce=null,Gn=null,Et=null,Kn=null,Gr=!1,An=!1,pr=null,an=null;var Aa=0;let vl=1;class Xt{id=vl++;#t=!1;linked=!0;#i=null;#e=null;async_deriveds=new Map;current=new Map;previous=new Map;#o=new Set;#n=new Set;#s=0;#r=new Map;#l=null;#a=[];#h=[];#c=new Set;#d=new Set;#v=new Map;#m=new Set;is_fork=!1;#u=!1;constructor(){fr===null?zn=fr=this:(fr.#e=this,this.#i=fr),fr=this}#g(){if(this.is_fork)return!0;for(const a of this.#r.keys()){for(var t=a,r=!1;t.parent!==null;){if(this.#v.has(t)){r=!0;break}t=t.parent}if(!r)return!0}return!1}skip_effect(t){this.#v.has(t)||this.#v.set(t,{d:[],m:[]}),this.#m.delete(t)}unskip_effect(t,r=a=>this.schedule(a)){var a=this.#v.get(t);if(a){this.#v.delete(t);for(var s of a.d)De(s,Ke),r(s);for(s of a.m)De(s,It),r(s)}this.#m.add(t)}#_(){this.#t=!0,Aa++>1e3&&(this.#p(),pl());for(const c of this.#c)this.#d.delete(c),De(c,Ke),this.schedule(c);for(const c of this.#d)De(c,It),this.schedule(c);const t=this.#a;this.#a=[],this.apply();var r=pr=[],a=[],s=an=[];for(const c of t)try{this.#x(c,r,a)}catch(f){throw Ts(c),this.#g()||this.discard(),f}if(ce=null,s.length>0){var i=Xt.ensure();for(const c of s)i.schedule(c)}if(pr=null,an=null,this.#g()){this.#f(a),this.#f(r);for(const[c,f]of this.#v)Ss(c,f);s.length>0&&ce.#_();return}const o=this.#b();if(o){this.#f(a),this.#f(r),o.#w(this);return}this.#c.clear(),this.#d.clear();for(const c of this.#o)c(this);this.#o.clear(),Gn=this,Pa(a),Pa(r),Gn=null,this.#l?.resolve();var d=ce;if(this.#s===0&&(this.#a.length===0||d!==null)&&this.#p(),this.#a.length>0)if(d!==null){const c=d;c.#a.push(...this.#a.filter(f=>!c.#a.includes(f)))}else d=this;d!==null&&d.#_()}#x(t,r,a){t.f^=Je;for(var s=t.first;s!==null;){var i=s.f,o=(i&(kt|Wt))!==0,d=o&&(i&Je)!==0,c=d||(i<)!==0||this.#v.has(s);if(!c&&s.fn!==null){o?s.f^=Je:(i&br)!==0?r.push(s):tn(s)&&((i&Tt)!==0&&this.#d.add(s),Sr(s));var f=s.first;if(f!==null){s=f;continue}}for(;s!==null;){var h=s.next;if(h!==null){s=h;break}s=s.parent}}}#b(){for(var t=this.#i;t!==null;){if(!t.is_fork){for(const[r,[,a]]of this.current)if(t.current.has(r)&&!a)return t}t=t.#i}return null}#w(t){for(const[a,s]of t.current)!this.previous.has(a)&&t.previous.has(a)&&this.previous.set(a,t.previous.get(a)),this.current.set(a,s);for(const[a,s]of t.async_deriveds){const i=this.async_deriveds.get(a);i&&s.promise.then(i.resolve).catch(i.reject)}t.async_deriveds.clear(),this.transfer_effects(t.#c,t.#d);const r=a=>{var s=a.reactions;if(s!==null&&!((a.f&Ze)!==0&&(a.f&(Ke|It))===0))for(const d of s){var i=d.f;if((i&Ze)!==0)r(d);else{var o=d;i&(_r|Tt)&&!this.async_deriveds.has(o)&&(this.#d.delete(o),De(o,Ke),this.schedule(o))}}};for(const a of this.current.keys())r(a);this.oncommit(()=>t.discard()),t.#p(),ce=this,this.#_()}#f(t){for(var r=0;r!g.current.get(_)[1]);if(!(!g.#t||s.length===0)){var i=s.filter(_=>!this.current.has(_));if(i.length===0)t&&g.discard();else if(r.length>0){if(t)for(const _ of this.#m)g.unskip_effect(_,m=>{(m.f&(Tt|_r))!==0?g.schedule(m):g.#f([m])});g.activate();var o=new Set,d=new Map;for(var c of r)ys(c,i,o,d);d=new Map;var f=[...g.current].filter(([_,m])=>{const b=this.current.get(_);return b?b[0]!==m[0]||b[1]!==m[1]:!0}).map(([_])=>_);if(f.length>0)for(const _ of this.#h)(_.f&(ht|lt|un))===0&&va(_,f,d)&&((_.f&(_r|Tt))!==0?(De(_,Ke),g.schedule(_)):g.#c.add(_));if(g.#a.length>0&&!g.#u){g.apply();for(var h of g.#a)g.#x(h,[],[]);g.#a=[]}g.deactivate()}}}}increment(t,r){if(this.#s+=1,t){let a=this.#r.get(r)??0;this.#r.set(r,a+1)}}decrement(t,r){if(this.#s-=1,t){let a=this.#r.get(r)??0;a===1?this.#r.delete(r):this.#r.set(r,a-1)}this.#u||(this.#u=!0,Dt(()=>{this.#u=!1,this.linked&&this.flush()}))}transfer_effects(t,r){for(const a of t)this.#c.add(a);for(const a of r)this.#d.add(a);t.clear(),r.clear()}oncommit(t){this.#o.add(t)}ondiscard(t){this.#n.add(t)}settled(){return(this.#l??=ss()).promise}static ensure(){if(ce===null){const t=ce=new Xt;!An&&!Gr&&Dt(()=>{t.#t||t.flush()})}return ce}apply(){{Et=null;return}}schedule(t){if(Kn=t,t.b?.is_pending&&(t.f&(br|Xr|is))!==0&&(t.f&Mr)===0){t.b.defer_effect(t);return}for(var r=t;r.parent!==null;){r=r.parent;var a=r.f;if(pr!==null&&r===fe&&(he===null||(he.f&Ze)===0)&&!Un)return;if((a&(Wt|kt))!==0){if((a&Je)===0)return;r.f^=Je}}this.#a.push(r)}#p(){if(this.linked){var t=this.#i,r=this.#e;t===null?zn=r:t.#e=r,r===null?fr=t:r.#i=t,this.linked=!1}}}function fl(e){var t=Gr;Gr=!0;try{for(var r;;){if(Xi(),ce===null)return r;ce.flush()}}finally{Gr=t}}function pl(){try{Mi()}catch(e){Vt(e,Kn)}}let Ft=null;function Pa(e){var t=e.length;if(t!==0){for(var r=0;r0)){er.clear();for(const s of Ft){if((s.f&(ht|lt))!==0)continue;const i=[s];let o=s.parent;for(;o!==null;)Ft.has(o)&&(Ft.delete(o),i.push(o)),o=o.parent;for(let d=i.length-1;d>=0;d--){const c=i[d];(c.f&(ht|lt))===0&&Sr(c)}}Ft.clear()}}Ft=null}}function ys(e,t,r,a){if(!r.has(e)&&(r.add(e),e.reactions!==null))for(const s of e.reactions){const i=s.f;(i&Ze)!==0?ys(s,t,r,a):(i&(_r|Tt))!==0&&(i&Ke)===0&&va(s,t,a)&&(De(s,Ke),fa(s))}}function va(e,t,r){const a=r.get(e);if(a!==void 0)return a;if(e.deps!==null)for(const s of e.deps){if(cn.call(t,s))return!0;if((s.f&Ze)!==0&&va(s,t,r))return r.set(s,!0),!0}return r.set(e,!1),!1}function fa(e){ce.schedule(e)}function Ss(e,t){if(!((e.f&kt)!==0&&(e.f&Je)!==0)){(e.f&Ke)!==0?t.d.push(e):(e.f&It)!==0&&t.m.push(e),De(e,Je);for(var r=e.first;r!==null;)Ss(r,t),r=r.next}}function Ts(e){De(e,Je);for(var t=e.first;t!==null;)Ts(t),t=t.next}let pn=new Set;const er=new Map;let Es=!1;function sr(e,t){var r={f:0,v:e,reactions:null,equals:us,rv:0,wv:0};return r}function Pe(e,t){const r=sr(e);return Os(r),r}function $s(e,t=!1,r=!0){const a=sr(e);return t||(a.equals=fs),Ar&&r&&je!==null&&je.l!==null&&(je.l.s??=[]).push(a),a}function ge(e,t,r=!1){he!==null&&(!$t||(he.f&un)!==0)&&Zr()&&(he.f&(Ze|Tt|_r|un))!==0&&(At===null||!At.has(e))&&Ri();let a=r?hr(t):t;return yr(e,a,an)}function yr(e,t,r=null){if(!e.equals(t)){er.set(e,Gt?t:e.v);var a=Xt.ensure();if(a.capture(e,t),(e.f&Ze)!==0){const s=e;(e.f&Ke)!==0&&ua(s),Et===null&&la(s)}e.wv=Bs(),Is(e,Ke,r),Zr()&&fe!==null&&(fe.f&Je)!==0&&(fe.f&(kt|Wt))===0&&(_t===null?El([e]):_t.push(e)),!a.is_fork&&pn.size>0&&!Es&&hl()}return t}function hl(){Es=!1;for(const e of pn){(e.f&Je)!==0&&De(e,It);let t;try{t=tn(e)}catch{t=!0}t&&Sr(e)}pn.clear()}function Kr(e){ge(e,e.v+1)}function Is(e,t,r){var a=e.reactions;if(a!==null)for(var s=Zr(),i=a.length,o=0;o{if(rr===i)return d();var c=he,f=rr;xt(null),Fa(i);var h=d();return xt(c),Fa(f),h};return a&&r.set("length",Pe(e.length)),new Proxy(e,{defineProperty(d,c,f){(!("value"in f)||f.configurable===!1||f.enumerable===!1||f.writable===!1)&&Ai();var h=r.get(c);return h===void 0?o(()=>{var g=Pe(f.value);return r.set(c,g),g}):ge(h,f.value,!0),!0},deleteProperty(d,c){var f=r.get(c);if(f===void 0){if(c in d){const h=o(()=>Pe(Ye));r.set(c,h),Kr(s)}}else ge(f,Ye),Kr(s);return!0},get(d,c,f){if(c===qt)return e;var h=r.get(c),g=c in d;if(h===void 0&&(!g||mr(d,c)?.writable)&&(h=o(()=>{var m=hr(g?d[c]:Ye),b=Pe(m);return b}),r.set(c,h)),h!==void 0){var _=n(h);return _===Ye?void 0:_}return Reflect.get(d,c,f)},getOwnPropertyDescriptor(d,c){var f=Reflect.getOwnPropertyDescriptor(d,c);if(f&&"value"in f){var h=r.get(c);h&&(f.value=n(h))}else if(f===void 0){var g=r.get(c),_=g?.v;if(g!==void 0&&_!==Ye)return{enumerable:!0,configurable:!0,value:_,writable:!0}}return f},has(d,c){if(c===qt)return!0;var f=r.get(c),h=f!==void 0&&f.v!==Ye||Reflect.has(d,c);if(f!==void 0||fe!==null&&(!h||mr(d,c)?.writable)){f===void 0&&(f=o(()=>{var _=h?hr(d[c]):Ye,m=Pe(_);return m}),r.set(c,f));var g=n(f);if(g===Ye)return!1}return h},set(d,c,f,h){var g=r.get(c),_=c in d;if(a&&c==="length")for(var m=f;mPe(Ye)),r.set(m+"",b))}if(g===void 0)(!_||mr(d,c)?.writable)&&(g=o(()=>Pe(void 0)),ge(g,hr(f)),r.set(c,g));else{_=g.v!==Ye;var $=o(()=>hr(f));ge(g,$)}var T=Reflect.getOwnPropertyDescriptor(d,c);if(T?.set&&T.set.call(h,f),!_){if(a&&typeof c=="string"){var A=r.get("length"),R=Number(c);Number.isInteger(R)&&R>=A.v&&ge(A,R+1)}Kr(s)}return!0},ownKeys(d){n(s);var c=Reflect.ownKeys(d).filter(g=>{var _=r.get(g);return _===void 0||_.v!==Ye});for(var[f,h]of r)h.v!==Ye&&!(f in d)&&c.push(f);return c},setPrototypeOf(){Pi()}})}function Ra(e){try{if(e!==null&&typeof e=="object"&&qt in e)return e[qt]}catch{}return e}function ml(e,t){return Object.is(Ra(e),Ra(t))}var ja,Ms,zs,As;function _l(){if(ja===void 0){ja=window,Ms=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,r=Text.prototype;zs=mr(t,"firstChild").get,As=mr(t,"nextSibling").get,Ma(e)&&(e[On]=void 0,e[os]=null,e[qn]=void 0,e.__e=void 0),Ma(r)&&(r[Bn]=void 0)}}function Bt(e=""){return document.createTextNode(e)}function Nt(e){return zs.call(e)}function en(e){return As.call(e)}function l(e,t){return Nt(e)}function ve(e,t=!1){{var r=Nt(e);return r instanceof Comment&&r.data===""?en(r):r}}function v(e,t=1,r=!1){let a=e;for(;t--;)a=en(a);return a}function gl(e){e.textContent=""}function Ps(){return!1}function bl(e,t,r){return r?document.createElement(e,{is:r}):document.createElement(e)}function Rs(e){fe===null&&(he===null&&Ii(),$i()),Gt&&Ei()}function kl(e,t){var r=t.last;r===null?t.last=t.first=e:(r.next=e,e.prev=r,t.last=e)}function jt(e,t){var r=fe;r!==null&&(r.f<)!==0&&(e|=lt);var a={ctx:je,deps:null,nodes:null,f:e|Ke|bt,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};ce?.register_created_effect(a);var s=a;if((e&br)!==0)pr!==null?pr.push(a):Xt.ensure().schedule(a);else if(t!==null){try{Sr(a)}catch(o){throw ut(a),o}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&(s.f&zr)===0&&(s=s.first,(e&Tt)!==0&&(e&kr)!==0&&s!==null&&(s.f|=kr))}if(s!==null&&(s.parent=r,r!==null&&kl(s,r),he!==null&&(he.f&Ze)!==0&&(e&Wt)===0)){var i=he;(i.effects??=[]).push(s)}return a}function pa(){return he!==null&&!$t}function bn(e){const t=jt(Xr,null);return De(t,Je),t.teardown=e,t}function Pt(e){Rs();var t=fe.f,r=!he&&(t&kt)!==0&&je!==null&&!je.i;if(r){var a=je;(a.e??=[]).push(e)}else return js(e)}function js(e){return jt(br|ls,e)}function xl(e){return Rs(),jt(Xr|ls,e)}function wl(e){Xt.ensure();const t=jt(Wt|zr,e);return(r={})=>new Promise(a=>{r.outro?tr(t,()=>{ut(t),a(void 0)}):(ut(t),a(void 0))})}function Cs(e){return jt(br,e)}function yl(e){return jt(_r|zr,e)}function kn(e,t=0){return jt(Xr|t,e)}function w(e,t=[],r=[],a=[]){ll(a,t,r,s=>{jt(Xr,()=>{e(...s.map(n))})})}function ha(e,t=0){var r=jt(Tt|t,e);return r}function gt(e){return jt(kt|zr,e)}function Fs(e){var t=e.teardown;if(t!==null){const r=Gt,a=he;Ca(!0),xt(null);try{t.call(null)}finally{Ca(r),xt(a)}}}function ma(e,t=!1){var r=e.first;for(e.first=e.last=null;r!==null;){const s=r.ac;s!==null&&Pr(()=>{s.abort(Qr)});var a=r.next;(r.f&Wt)!==0?r.parent=null:ut(r,t),r=a}}function Sl(e){for(var t=e.first;t!==null;){var r=t.next;(t.f&kt)===0&&ut(t),t=r}}function ut(e,t=!0){var r=!1;(t||(e.f&bi)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Tl(e.nodes.start,e.nodes.end),r=!0),e.f|=Ln,ma(e,t&&!r),Yr(e,0);var a=e.nodes&&e.nodes.t;if(a!==null)for(const i of a)i.stop();Fs(e),e.f^=Ln,e.f|=ht;var s=e.parent;s!==null&&s.first!==null&&Ns(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Tl(e,t){for(;e!==null;){var r=e===t?null:en(e);e.remove(),e=r}}function Ns(e){var t=e.parent,r=e.prev,a=e.next;r!==null&&(r.next=a),a!==null&&(a.prev=r),t!==null&&(t.first===e&&(t.first=a),t.last===e&&(t.last=r))}function tr(e,t,r=!0){var a=[];Ds(e,a,!0);var s=()=>{r&&ut(e),t&&t()},i=a.length;if(i>0){var o=()=>--i||s();for(var d of a)d.out(o)}else s()}function Ds(e,t,r){if((e.f<)===0){e.f^=lt;var a=e.nodes&&e.nodes.t;if(a!==null)for(const d of a)(d.is_global||r)&&t.push(d);for(var s=e.first;s!==null;){var i=s.next;if((s.f&Wt)===0){var o=(s.f&kr)!==0||(s.f&kt)!==0&&(e.f&Tt)!==0;Ds(s,t,o?r:!1)}s=i}}}function hn(e){Ls(e,!0)}function Ls(e,t){if((e.f<)!==0){e.f^=lt,(e.f&Je)===0&&(De(e,Ke),Xt.ensure().schedule(e));for(var r=e.first;r!==null;){var a=r.next,s=(r.f&kr)!==0||(r.f&kt)!==0;Ls(r,s?t:!1),r=a}var i=e.nodes&&e.nodes.t;if(i!==null)for(const o of i)(o.is_global||t)&&o.in()}}function _a(e,t){if(e.nodes)for(var r=e.nodes.start,a=e.nodes.end;r!==null;){var s=r===a?null:en(r);t.append(r),r=s}}let sn=!1,Gt=!1;function Ca(e){Gt=e}let he=null,$t=!1;function xt(e){he=e}let fe=null;function Rt(e){fe=e}let At=null;function Os(e){he!==null&&(At??=new Set).add(e)}let dt=null,ft=0,_t=null;function El(e){_t=e}let qs=1,Zt=0,rr=Zt;function Fa(e){rr=e}function Bs(){return++qs}function tn(e){var t=e.f;if((t&Ke)!==0)return!0;if(t&Ze&&(e.f&=~ar),(t&It)!==0){for(var r=e.deps,a=r.length,s=0;se.wv)return!0}(t&bt)!==0&&Et===null&&De(e,Je)}return!1}function Us(e,t,r=!0){var a=e.reactions;if(a!==null&&!(At!==null&&At.has(e)))for(var s=0;s{e.ac.abort(Qr)}),e.ac=null);try{e.f|=vn;var h=e.fn,g=h();e.f|=Mr;var _=e.deps,m=ce?.is_fork;if(dt!==null){var b;if(m||Yr(e,ft),_!==null&&ft>0)for(_.length=ft+dt.length,b=0;b{i.ac.abort(Qr),i.ac=null,De(i,Ke)}),ul(i),Yr(i,0)}}function Yr(e,t){var r=e.deps;if(r!==null)for(var a=t;ar?.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?Dt(()=>{t.addEventListener(e,s,a)}):t.addEventListener(e,s,a),s}function Yn(e,t,r,a,s){var i={capture:a,passive:s},o=Pl(e,t,r,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&bn(()=>{t.removeEventListener(e,o,i)})}function Me(e,t,r){(t[qr]??={})[e]=r}function ot(e){for(var t=0;t{throw $});throw _}}finally{e[qr]=t,delete e.currentTarget,xt(h),Rt(g)}}}const Rl=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function jl(e){return Rl?.createHTML(e)??e}function Vs(e){var t=bl("template");return t.innerHTML=jl(e.replaceAll("","")),t.content}function Tr(e,t){var r=fe;r.nodes===null&&(r.nodes={start:e,end:t,a:null,t:null})}function S(e,t){var r=(t&ds)!==0,a=(t&Wi)!==0,s,i=!e.startsWith("");return()=>{s===void 0&&(s=Vs(i?e:""+e),r||(s=Nt(s)));var o=a||Ms?document.importNode(s,!0):s.cloneNode(!0);if(r){var d=Nt(o),c=o.lastChild;Tr(d,c)}else Tr(o,o);return o}}function Cl(e,t,r="svg"){var a=!e.startsWith(""),s=(t&ds)!==0,i=`<${r}>${a?e:""+e}`,o;return()=>{if(!o){var d=Vs(i),c=Nt(d);if(s)for(o=document.createDocumentFragment();Nt(c);)o.appendChild(Nt(c));else o=Nt(c)}var f=o.cloneNode(!0);if(s){var h=Nt(f),g=f.lastChild;Tr(h,g)}else Tr(f,f);return f}}function Ys(e,t){return Cl(e,t,"svg")}function nr(e=""){{var t=Bt(e+"");return Tr(t,t),t}}function ir(){var e=document.createDocumentFragment(),t=document.createComment(""),r=Bt();return e.append(t,r),Tr(t,r),e}function k(e,t){e!==null&&e.before(t)}function u(e,t){var r=t==null?"":typeof t=="object"?`${t}`:t;r!==(e[Bn]??=e.nodeValue)&&(e[Bn]=r,e.nodeValue=`${r}`)}function Fl(e,t){return Nl(e,t)}const rn=new Map;function Nl(e,{target:t,anchor:r,props:a={},events:s,context:i,intro:o=!0,transformError:d}){_l();var c=void 0,f=wl(()=>{var h=r??t.appendChild(Bt());sl(h,{pending:()=>{}},m=>{qe({});var b=je;i&&(b.c=i),s&&(a.$$events=s),c=e(m,a)||{},Be()},d);var g=new Set,_=m=>{for(var b=0;b{for(var m of g)for(const T of[t,document]){var b=rn.get(T),$=b.get(m);--$==0?(T.removeEventListener(m,Jn),b.delete(m),b.size===0&&rn.delete(T)):b.set(m,$)}Vn.delete(_),h!==r&&h.parentNode?.removeChild(h)}});return Dl.set(c,f),c}let Dl=new WeakMap;class Ll{anchor;#t=new Map;#i=new Map;#e=new Map;#o=new Set;#n=!0;constructor(t,r=!0){this.anchor=t,this.#n=r}#s=t=>{if(this.#t.has(t)){var r=this.#t.get(t),a=this.#i.get(r);if(a)hn(a),this.#o.delete(r);else{var s=this.#e.get(r);s&&(hn(s.effect),this.#i.set(r,s.effect),this.#e.delete(r),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),a=s.effect)}for(const[i,o]of this.#t){if(this.#t.delete(i),i===t)break;const d=this.#e.get(o);d&&(ut(d.effect),this.#e.delete(o))}for(const[i,o]of this.#i){if(i===r||this.#o.has(i))continue;const d=()=>{if(Array.from(this.#t.values()).includes(i)){var f=document.createDocumentFragment();_a(o,f),f.append(Bt()),this.#e.set(i,{effect:o,fragment:f})}else ut(o);this.#o.delete(i),this.#i.delete(i)};this.#n||!a?(this.#o.add(i),tr(o,d,!1)):d()}}};#r=t=>{this.#t.delete(t);const r=Array.from(this.#t.values());for(const[a,s]of this.#e)r.includes(a)||(ut(s.effect),this.#e.delete(a))};ensure(t,r){var a=ce,s=Ps();if(r&&!this.#i.has(t)&&!this.#e.has(t))if(s){var i=document.createDocumentFragment(),o=Bt();i.append(o),this.#e.set(t,{effect:gt(()=>r(o)),fragment:i})}else this.#i.set(t,gt(()=>r(this.anchor)));if(this.#t.set(a,t),s){for(const[d,c]of this.#i)d===t?a.unskip_effect(c):a.skip_effect(c);for(const[d,c]of this.#e)d===t?a.unskip_effect(c.effect):a.skip_effect(c.effect);a.oncommit(this.#s),a.ondiscard(this.#r)}else this.#s(a)}}function H(e,t,r=!1){var a=new Ll(e),s=r?kr:0;function i(o,d){a.ensure(o,d)}ha(()=>{var o=!1;t((d,c=0)=>{o=!0,i(c,d)}),o||i(-1,null)},s)}function Oe(e,t){return t}function Ol(e,t,r){for(var a=[],s=t.length,i,o=t.length,d=0;d{if(i){if(i.pending.delete(g),i.done.add(g),i.pending.size===0){var _=e.outrogroups;Xn(e,_n(i.done)),_.delete(i),_.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var c=a.length===0&&r!==null&&e.pending.size===0;if(c){var f=r,h=f.parentNode;gl(h),h.append(f),e.items.clear()}Xn(e,t,!c)}else i={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(i)}function Xn(e,t,r=!0){var a;if(e.pending.size>0){a=new Set;for(const o of e.pending.values())for(const d of o)a.add(e.items.get(d).e)}for(var s=0;s{var D=r();return sa(D)?D:D==null?[]:_n(D)}),_,m=new Map,b=!0;function $(D){(R.effect.f&ht)===0&&(R.pending.delete(D),R.fallback=h,ql(R,_,o,t,a),h!==null&&(_.length===0?(h.f&zt)===0?hn(h):(h.f^=zt,Br(h,null,o)):tr(h,()=>{h=null})))}function T(D){R.pending.delete(D)}var A=ha(()=>{_=n(g);for(var D=_.length,C=new Set,W=ce,se=Ps(),O=0;Oi(o)):(h=gt(()=>i(Da??=Bt())),h.f|=zt)),D>C.size&&Ti(),!b)if(m.set(W,C),se){for(const[ne,L]of d)C.has(ne)||W.skip_effect(L.e);W.oncommit($),W.ondiscard(T)}else $(W);n(g)}),R={effect:A,items:d,pending:m,outrogroups:null,fallback:h};b=!1}function Fr(e){for(;e!==null&&(e.f&kt)===0;)e=e.next;return e}function ql(e,t,r,a,s){var i=(a&Ni)!==0,o=t.length,d=e.items,c=Fr(e.effect.first),f,h=null,g,_=[],m=[],b,$,T,A;if(i)for(A=0;A0){var J=(a&cs)!==0&&o===0?r:null;if(i){for(A=0;A{if(g!==void 0)for(T of g)T.nodes?.a?.apply()})}function Bl(e,t,r,a,s,i,o,d){var c=(o&Ci)!==0?(o&Di)===0?$s(r,!1,!1):sr(r):null,f=(o&Fi)!==0?sr(s):null;return{v:c,i:f,e:gt(()=>(i(t,c??r,f??s,d),()=>{e.delete(a)}))}}function Br(e,t,r){if(e.nodes)for(var a=e.nodes.start,s=e.nodes.end,i=t&&(t.f&zt)===0?t.nodes.start:r;a!==null;){var o=en(a);if(i.before(a),a===s)return;a=o}}function Kt(e,t,r){t===null?e.effect.first=r:t.next=r,r===null?e.effect.last=t:r.prev=t}function Js(e){var t,r,a="";if(typeof e=="string"||typeof e=="number")a+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t=0;){var d=o+i;(o===0||La.includes(a[o-1]))&&(d===a.length||La.includes(a[d]))?a=(o===0?"":a.substring(0,o))+a.substring(d+1):o=d}}return a===""?null:a}function Gl(e,t){return e==null?null:String(e)}function Ie(e,t,r,a,s,i){var o=e[On];if(o!==r||o===void 0){var d=Wl(r,a,i);d==null?e.removeAttribute("class"):e.className=d,e[On]=r}else if(i&&s!==i)for(var c in i){var f=!!i[c];(s==null||f!==!!s[c])&&e.classList.toggle(c,f)}return i}function Er(e,t,r,a){var s=e[qn];if(s!==t){var i=Gl(t);i==null?e.removeAttribute("style"):e.style.cssText=i,e[qn]=t}return a}function Xs(e,t,r=!1){if(e.multiple){if(t==null)return;if(!sa(t))return Hi();for(var a of e.options)a.selected=t.includes(Hr(a));return}for(a of e.options){var s=Hr(a);if(ml(s,t)){a.selected=!0;return}}(!r||t!==void 0)&&(e.selectedIndex=-1)}function Kl(e){var t=new MutationObserver(()=>{"__value"in e&&Xs(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),bn(()=>{t.disconnect()})}function Hl(e,t,r=t){var a=new WeakSet,s=!0;ca(e,"change",i=>{var o=i?"[selected]":":checked",d;if(e.multiple)d=[].map.call(e.querySelectorAll(o),Hr);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");d=c&&Hr(c)}r(d),e.__value=d,ce!==null&&a.add(ce)}),Cs(()=>{var i=t();if(e===document.activeElement){var o=ce;if(a.has(o))return}if(Xs(e,i,s),s&&i===void 0){var d=e.querySelector(":checked");d!==null&&(i=Hr(d),r(i))}e.__value=i,s=!1}),Kl(e)}function Hr(e){return"__value"in e?e.__value:e.value}const Vl=Symbol("is custom element"),Yl=Symbol("is html"),Jl=wi?"progress":"PROGRESS";function Qs(e,t){var r=Zs(e);r.value===(r.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Jl)||(e.value=t??"")}function Se(e,t,r,a){var s=Zs(e);s[t]!==(s[t]=r)&&(t==="loading"&&(e[xi]=r),r==null?e.removeAttribute(t):typeof r!="string"&&Xl(e).includes(t)?e[t]=r:e.setAttribute(t,r))}function Zs(e){return e[os]??={[Vl]:e.nodeName.includes("-"),[Yl]:e.namespaceURI===Gi}}var Oa=new Map;function Xl(e){var t=e.getAttribute("is")||e.nodeName,r=Oa.get(t);if(r)return r;Oa.set(t,r=[]);for(var a,s=e,i=Element.prototype;i!==s;){a=as(s);for(var o in a)a[o].set&&o!=="innerHTML"&&o!=="textContent"&&o!=="innerText"&&r.push(o);s=ia(s)}return r}function Ge(e,t,r=t){var a=new WeakSet;ca(e,"input",async s=>{var i=s?e.defaultValue:e.value;if(i=Pn(e)?Rn(i):i,r(i),ce!==null&&a.add(ce),await Il(),i!==(i=t())){var o=e.selectionStart,d=e.selectionEnd,c=e.value.length;if(e.value=i??"",d!==null){var f=e.value.length;o===d&&d===c&&f>c?(e.selectionStart=f,e.selectionEnd=f):(e.selectionStart=o,e.selectionEnd=Math.min(d,f))}}}),oe(t)==null&&e.value&&(r(Pn(e)?Rn(e.value):e.value),ce!==null&&a.add(ce)),kn(()=>{var s=t();if(e===document.activeElement){var i=ce;if(a.has(i))return}Pn(e)&&s===Rn(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}function Ql(e,t,r=t){ca(e,"change",a=>{var s=a?e.defaultChecked:e.checked;r(s)}),oe(t)==null&&r(e.checked),kn(()=>{var a=t();e.checked=!!a})}function Pn(e){var t=e.type;return t==="number"||t==="range"}function Rn(e){return e===""?null:+e}function jn(e,t){return e===t||e?.[qt]===t}function ga(e={},t,r,a){var s=je.r,i=fe;return Cs(()=>{var o,d;return kn(()=>{o=d,d=[],oe(()=>{jn(r(...d),e)||(t(e,...d),o&&jn(r(...o),e)&&t(null,...o))})}),()=>{let c=i;for(;c!==s&&c.parent!==null&&c.parent.f&Ln;)c=c.parent;const f=()=>{d&&jn(r(...d),e)&&t(null,...d)},h=c.teardown;c.teardown=()=>{f(),h?.()}}}),e}function ei(e=!1){const t=je,r=t.l.u;if(!r)return;let a=()=>Ml(t.s);if(e){let s=0,i={};const o=wr(()=>{let d=!1;const c=t.s;for(const f in c)c[f]!==i[f]&&(i[f]=c[f],d=!0);return d&&s++,s});a=()=>n(o)}r.b.length&&xl(()=>{qa(t,a),dn(r.b)}),Pt(()=>{const s=oe(()=>r.m.map(_i));return()=>{for(const i of s)typeof i=="function"&&i()}}),r.a.length&&Pt(()=>{qa(t,a),dn(r.a)})}function qa(e,t){if(e.l.s)for(const r of e.l.s)n(r);t()}function Ut(e,t,r,a){var s=!Ar||(r&Oi)!==0,i=(r&Bi)!==0,o=(r&Ui)!==0,d=a,c=!0,f=void 0,h=()=>o&&s?(f??=wr(a),n(f)):(c&&(c=!1,d=o?oe(a):a),d);let g;if(i){var _=qt in e||ki in e;g=mr(e,t)?.set??(_&&t in e?C=>e[t]=C:void 0)}var m,b=!1;i?[m,b]=tl(()=>e[t]):m=e[t],m===void 0&&a!==void 0&&(m=h(),g&&(s&&zi(),g(m)));var $;if(s?$=()=>{var C=e[t];return C===void 0?h():(c=!0,C)}:$=()=>{var C=e[t];return C!==void 0&&(d=void 0),C===void 0?d:C},s&&(r&qi)===0)return $;if(g){var T=e.$$legacy;return(function(C,W){return arguments.length>0?((!s||!W||T||b)&&g(W?$():C),C):$()})}var A=!1,R=((r&Li)!==0?wr:da)(()=>(A=!1,$()));i&&n(R);var D=fe;return(function(C,W){if(arguments.length>0){const se=W?n(R):s&&i?hr(C):C;return ge(R,se),A=!0,d!==void 0&&(d=se),C}return Gt&&A||(D.f&ht)!==0?R.v:n(R)})}function Zl(e){je===null&&yi(),Ar&&je.l!==null?eo(je).m.push(e):Pt(()=>{const t=oe(e);if(typeof t=="function")return t})}function eo(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const to="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(to);Ji();const Ba="en";function ro(){return typeof navigator>"u"?Ba:navigator.language||Ba}function no(){return ro().toLowerCase().split("-")[0]}function ba(){return no()==="ko"}function ao(){return ba()?"가을과 관련된 작은 시 한편을 써줘.":"Write a short poem about autumn."}const Ua={"app.title":"LLM Text Watermark Microscope","app.intro":"Walk through three generations of text watermarking — Kirchenbauer 2023, k-SemStamp 2024, TextSeal 2026 — by setting the secrets yourself and watching each step of decoding. Every model run happens locally on your GPU via WebGPU.","app.footer":"educational re-implementations; see the README for fidelity notes. This verifies a specific watermark with a known key — it is not an AI-text detector.","model.local":"Local inference with WebGPU","model.localNote":"— your prompt and text never leave this browser.","model.label":"Model","model.load":"Download & load model","model.loading":"Loading…","model.ready":"Ready","model.device":"device","model.dtype":"dtype","model.init":"init","model.webgpuOk":"WebGPU available","model.webgpuNone":"WebGPU not available — falling back to WASM (CPU, slow)","model.failed":"Model load failed:","prompt.placeholder":"Enter a prompt. The same prompt drives the baseline and every watermark.","prompt.generate":"Generate baseline","prompt.regenerate":"Regenerate baseline","prompt.generating":"Generating baseline…","prompt.advanced":"Advanced settings","prompt.hide":"Hide","prompt.loadFirst":"Load the model first.","prompt.baselineIsControl":"The baseline is the control every watermark is compared against.","prompt.samplingLegend":"Sampling (shared by every run)","prompt.paramsLegend":"Algorithm parameters (also editable inside each stage)","prompt.temperature":"temperature","prompt.topP":"top-p","prompt.maxTokens":"max new tokens","prompt.baseSeed":"base RNG seed","baseline.title":"Baseline","baseline.noWatermark":"no watermark","baseline.show":"show","baseline.hide":"hide","baseline.mirroring":"Mirroring stage","baseline.start":"Enter a prompt above and generate the baseline to begin.","baseline.generating":"generating…","baseline.control":"Written once for this prompt and then left alone — the control the watermarked text on the right is measured against.","baseline.stage2Ksem":"The baseline wrote every sentence in one pass. Nothing was embedded, judged or thrown away — the cost the watermark on the right is paying does not exist here.","baseline.kept":"kept","baseline.stage2Dist":"The unmodified distribution at step","baseline.stage2DistTail":"— this is what the watermark on the right is transforming. Baseline sampling picked","baseline.stage3Kirch":"The same secret applied to unwatermarked text. Green appears only at the rate chance allows.","baseline.greenOf":"of","baseline.scoredGreen":"scored tokens green","baseline.expected":"expected","baseline.stage3Ksem":"Baseline sentences judged against the same valid regions.","baseline.stage3Seal":"The same key over unwatermarked text: evidence stays flat.","baseline.scoring":"scoring…","baseline.needTwo":"needs at least two sentences…","baseline.rawText":"baseline text","wm.export":"export JSON","wm.exportTitle":"Download seed, parameters, trace and scores as JSON","wm.lockedSeed":"Enter a seed in stage 1 first","wm.lockedGenerate":"Generate the watermarked text first","seed.label":"Secret seed","seed.placeholder":"type a number…","seed.random":"random","seed.hint":"Enter a seed to derive the secret key.","player.play":"play","player.pause":"pause","player.prev":"prev","player.next":"next","player.step":"step","live.sampling":"sampling","live.sampled":"sampled","live.tokens":"tokens","live.green":"green","live.retries":"sentence retries","live.follow":"follow","method.kirchenbauer.tagline":"Split the vocabulary with a secret, then nudge the green half.","method.ksemstamp.tagline":"Move the carrier from tokens to sentence meaning.","method.textseal.tagline":"Distortion-free sampling, entropy-aware and localized detection.","stage.k1":"Seed & Split","stage.k2":"Bias & Sampling","stage.k3":"Result","stage.s1":"Seed & Clusters","stage.s2":"Rejection Sampling","stage.s3":"Result","stage.t1":"Seed & R-values","stage.t2":"Gumbel Sampling","stage.t3":"Evidence & Regions","stage.edit":"Edit & Detect","kirch.split.intro":"Every decoding step splits the whole vocabulary into a green and a red list. The split is driven by a public formula plus your secret, so a detector holding the same secret can recompute it, and anyone else cannot.","kirch.split.gamma":"γ (green fraction)","kirch.split.needBaseline":"Generate the baseline first — the grid shows the tokens the model is actually considering after your prompt.","kirch.split.waiting":"Waiting for a seed. The grid below stays unsplit until then.","kirch.split.contextToken":"Context token","kirch.split.seedsStep":"seeds this step. Of the","kirch.split.mostLikely":"most likely next tokens,","kirch.split.landedGreen":"landed green","kirch.split.vocabSize":"Vocabulary size","kirch.split.howJudged":"How one token is judged","kirch.split.clickToken":"Click any token above to see the arithmetic.","kirch.split.rowContext":"context token","kirch.split.rowSeed":"PRF seed","kirch.split.rowKey":"secret key","kirch.split.rowCandidate":"candidate","kirch.split.rowU":"U = hash(seed, key, id)","kirch.split.rowVerdict":"verdict","kirch.split.next":"Next: bias the green half →","kirch.bias.intro":"The model's own probabilities are left intact until now. The watermark adds a constant +δ to every green token's logit, then samples normally. Small δ is almost invisible in the text but leaves a weak signal; large δ is easy to detect but starts to distort the writing.","kirch.bias.delta":"δ (green logit bias)","kirch.bias.replaying":"Replaying baseline step","kirch.bias.itWrote":"— it wrote","kirch.bias.entropy":"entropy","kirch.bias.nats":"nats","kirch.bias.unknownContext":"This step's context token comes from the prompt and has not been read back yet — pick another step, or regenerate the baseline.","kirch.bias.mass":"Probability mass on green tokens, among the","kirch.bias.shown":"shown:","kirch.bias.scrub":"Scrub through the steps: where the model was already certain, δ changes almost nothing; where it hesitated, the green half takes over. Each step re-splits the vocabulary from a new context token, so the green set is never the same twice.","kirch.generate":"Generate watermarked text →","kirch.regenerate":"Regenerate with these settings","kirch.result.none":"No generation yet — go back to stage 2 and press generate.","kirch.result.intro":"Each generated token is coloured by the list it belonged to at the moment it was chosen. Watermarked text over-uses green; the baseline on the left, scored with the very same secret, should sit near γ =","kirch.result.ofSampled":"of","kirch.result.wereGreen":"sampled tokens were in the green list","kirch.result.expectedNoWm":"expected {n}% without a watermark","kirch.result.replay":"Replay the decoding","kirch.result.chose":"chose","kirch.result.seed":"seed","ksem.clusters.intro":"Token-level watermarks die under paraphrasing, so this generation moves the carrier to sentence meaning. Sentences are embedded and assigned to one of K semantic clusters; your secret decides which clusters are allowed next, given the cluster of the previous sentence.","ksem.clusters.gamma":"γ (valid fraction)","ksem.clusters.accepted":"clusters accepted","ksem.clusters.of":"of","ksem.clusters.enterSeed":"Enter a seed to see which clusters become valid.","ksem.clusters.hover":"Hover a cluster to see which clusters a sentence may land in when the previous sentence belonged to it.","ksem.clusters.prevCluster":"previous sentence cluster","ksem.clusters.seed":"seed","ksem.clusters.validNext":"valid next clusters","ksem.clusters.next":"Next: reject until a sentence fits →","ksem.reject.intro":"Generation now works one sentence at a time. A candidate sentence is embedded, assigned to a cluster, and kept only if that cluster is valid and the assignment is confident enough (margin). Otherwise it is thrown away and the sentence is written again.","ksem.reject.margin":"margin m","ksem.reject.maxTrials":"max trials","ksem.reject.generate":"Generate with rejection sampling →","ksem.reject.judged":"candidates judged","ksem.reject.accepted":"accepted","ksem.reject.rejected":"rejected","ksem.reject.reached":"reached","ksem.reject.clusters":"clusters","ksem.reject.replay":"replay","ksem.reject.showAll":"show all","ksem.reject.waiting":"Candidates will appear here as they are judged.","ksem.reject.sentence":"sentence","ksem.reject.try":"try","ksem.reject.targets":"targets","ksem.reject.accept":"accept","ksem.result.none":"No generation yet — run stage 2 first.","ksem.result.tooShort":"The text was too short to score sentence-by-sentence (at least two sentences are needed).","ksem.result.intro":"Each sentence is re-embedded and checked against the valid set seeded by the sentence before it. The first sentence only seeds the chain, so it is not judged. On the left, the baseline is scored with the same secret — it should hit the valid region only by chance.","ksem.result.seed":"seed","ksem.result.valid":"valid","ksem.result.invalid":"invalid","ksem.result.margin":"margin","ksem.result.tryEdit":"Try a meaning-preserving edit in the next stage: swap a few words and watch the token-level Kirchenbauer score collapse while this sentence-level score barely moves.","seal.r.intro":"The earlier generations changed the model’s probabilities. TextSeal does not: it keeps the distribution intact and instead fixes which sample you get. For every candidate token the secret produces a uniform number R, and the token maximizing R^(1/p) wins — a rule that, over random keys, reproduces the original distribution exactly.","seal.r.contextWidth":"context width k","seal.r.dependsOn":"R depends on the previous","seal.r.tokens":"token(s)","seal.r.needBaseline":"Generate the baseline first.","seal.r.enterSeed":"Enter a seed to compute R values.","seal.r.candidate":"candidate","seal.r.pModel":"p (model)","seal.r.rValue":"R = PRF(key, context, token)","seal.r.note":"R is uniform, so a low-probability token needs an unusually high R to win — which is exactly why the winner still follows the model’s distribution.","seal.r.next":"Next: sample by Gumbel-max →","seal.gumbel.intro":"Because the choice is a deterministic function of the key and the context, the same prompt always yields the same text — which would make outputs repetitive. TextSeal keeps a second key and routes a fraction α of steps to it, restoring variety while each key on its own stays distortion-free.","seal.gumbel.alpha":"α (second-key routing)","seal.gumbel.needStage1":"Complete stage 1 and generate the baseline first.","seal.gumbel.comparing":"Comparing at baseline step","seal.gumbel.baselineDrew":"Baseline sampling drew","seal.gumbel.randomDraw":"random draw","seal.gumbel.outsideTopK":"random draw, outside the recorded top-k","seal.gumbel.key1Picks":"key₁ Gumbel-max picks, among the shown candidates","seal.gumbel.key2Used":"key₂ (used {n}% of steps)","seal.gumbel.deterministic":"deterministic","seal.gumbel.note":"Note what did not happen: no probability was raised or lowered. That is the whole point of a distortion-free watermark — the text quality is untouched, yet the sequence carries evidence. (The winners above are the argmax over this step’s recorded candidates; generation itself ranks the entire vocabulary, so it can reach further down the list.)","seal.evidence.none":"No generation yet — run stage 2 first.","seal.evidence.intro":"Detection needs no model: re-deriving R from the text and the key gives each token a score s = −ln(1−R), which runs high wherever the watermark chose the token. Darker means stronger evidence. This run routed","seal.evidence.localized":"Localized detection","seal.evidence.region":"region","seal.evidence.tokens":"tokens","seal.evidence.noRegion":"No sub-region stood out — the whole text is uniformly watermarked, so the global test already explains it. In the next stage, paste human text around this passage: the global score gets diluted while the localized scan still points at the generated span.","edit.intro":"Edit freely — all three detectors re-score as you type. This is where the generations separate: rewriting individual tokens erases token-level evidence, meaning-preserving rewrites do not touch sentence-level evidence, and cutting an excerpt out shrinks a global score while the localized scan still finds it.","edit.thisText":"this text","edit.watermarked":"WATERMARKED","edit.notDetected":"not detected","edit.inconclusive":"inconclusive","edit.detected":"detected","edit.rescoring":"re-scoring…","edit.edited":"edited from the original","edit.unchanged":"unchanged","edit.entropyWeighted":"entropy-weighted (extra model pass)","edit.needTwo":"k-SemStamp needs at least two sentences to score.","edit.regions":"Localized regions:","edit.na":"n/a","edit.threshold":"thr"},so={"app.title":"LLM 텍스트 워터마크 현미경","app.intro":"텍스트 워터마킹의 세 세대 — Kirchenbauer 2023, k-SemStamp 2024, TextSeal 2026 — 를 직접 비밀키를 정해가며 디코딩 단계마다 들여다봅니다. 모든 모델 연산은 WebGPU로 이 브라우저의 GPU에서 실행됩니다.","app.footer":"교육용 재구현입니다. 원 구현과의 차이는 README에 정리해 두었습니다. 이 도구는 알려진 키로 특정 워터마크를 검증할 뿐, AI 작성 여부를 판별하지 않습니다.","model.local":"WebGPU 로컬 추론","model.localNote":"— 입력한 프롬프트와 생성된 글은 브라우저 밖으로 나가지 않습니다.","model.label":"모델","model.load":"모델 내려받기","model.loading":"불러오는 중…","model.ready":"준비됨","model.device":"장치","model.dtype":"정밀도","model.init":"초기화","model.webgpuOk":"WebGPU 사용 가능","model.webgpuNone":"WebGPU를 쓸 수 없어 WASM(CPU)으로 대체합니다 — 느립니다","model.failed":"모델을 불러오지 못했습니다:","prompt.placeholder":"프롬프트를 입력하세요. 같은 프롬프트가 baseline과 모든 워터마크에 쓰입니다.","prompt.generate":"baseline 생성","prompt.regenerate":"baseline 다시 생성","prompt.generating":"baseline 생성 중…","prompt.advanced":"고급 설정","prompt.hide":"숨기기","prompt.loadFirst":"먼저 모델을 불러오세요.","prompt.baselineIsControl":"baseline은 모든 워터마크를 견주는 대조군입니다.","prompt.samplingLegend":"샘플링 (모든 실행에 공통)","prompt.paramsLegend":"알고리즘 파라미터 (각 단계 안에서도 조절 가능)","prompt.temperature":"temperature","prompt.topP":"top-p","prompt.maxTokens":"최대 생성 토큰","prompt.baseSeed":"기본 난수 시드","baseline.title":"Baseline","baseline.noWatermark":"워터마크 없음","baseline.show":"펼치기","baseline.hide":"접기","baseline.mirroring":"대응 단계","baseline.start":"위에 프롬프트를 입력하고 baseline을 생성하면 시작됩니다.","baseline.generating":"생성 중…","baseline.control":"이 프롬프트에 대해 한 번 생성한 뒤 그대로 둡니다 — 오른쪽 워터마크 텍스트를 재는 기준입니다.","baseline.stage2Ksem":"baseline은 모든 문장을 한 번에 썼습니다. 임베딩도, 판정도, 버려진 문장도 없습니다 — 오른쪽이 치르는 비용이 여기엔 없습니다.","baseline.kept":"유지","baseline.stage2Dist":"수정되지 않은 분포 — 스텝","baseline.stage2DistTail":". 오른쪽 워터마크가 바꾸는 대상이 바로 이것입니다. baseline은 여기서","baseline.stage3Kirch":"워터마크가 없는 글에 같은 비밀키를 적용했습니다. green은 우연이 허락하는 비율로만 나타납니다.","baseline.greenOf":"/","baseline.scoredGreen":"개 토큰이 green","baseline.expected":"기대값","baseline.stage3Ksem":"baseline 문장을 같은 유효 영역 기준으로 판정했습니다.","baseline.stage3Seal":"워터마크 없는 글에 같은 키를 적용하면 증거가 평평합니다.","baseline.scoring":"채점 중…","baseline.needTwo":"문장이 두 개 이상 필요합니다…","baseline.rawText":"baseline 텍스트","wm.export":"JSON 내보내기","wm.exportTitle":"시드·파라미터·추적 기록·점수를 JSON으로 저장","wm.lockedSeed":"1단계에서 시드를 먼저 입력하세요","wm.lockedGenerate":"워터마크 텍스트를 먼저 생성하세요","seed.label":"비밀 시드","seed.placeholder":"숫자를 입력…","seed.random":"무작위","seed.hint":"시드를 입력하면 비밀키가 만들어집니다.","player.play":"재생","player.pause":"일시정지","player.prev":"이전","player.next":"다음","player.step":"스텝","live.sampling":"샘플링 중","live.sampled":"샘플링 완료","live.tokens":"토큰","live.green":"green","live.retries":"회 문장 재시도","live.follow":"따라가기","method.kirchenbauer.tagline":"비밀키로 어휘를 둘로 가르고, green 쪽을 밀어줍니다.","method.ksemstamp.tagline":"운반체를 토큰에서 문장 의미로 옮깁니다.","method.textseal.tagline":"분포를 왜곡하지 않는 샘플링, 정보량 반영 채점과 구간 탐지.","stage.k1":"시드와 분할","stage.k2":"편향과 샘플링","stage.k3":"결과","stage.s1":"시드와 클러스터","stage.s2":"재샘플링","stage.s3":"결과","stage.t1":"시드와 R값","stage.t2":"Gumbel 샘플링","stage.t3":"증거와 구간","stage.edit":"편집과 검출","kirch.split.intro":"매 디코딩 스텝마다 어휘 전체가 green과 red 두 목록으로 갈립니다. 공개된 공식에 당신의 비밀키가 더해져 분할이 정해지므로, 같은 비밀키를 가진 검출기만 이를 다시 계산할 수 있습니다.","kirch.split.gamma":"γ (green 비율)","kirch.split.needBaseline":"먼저 baseline을 생성하세요 — 아래 격자는 모델이 프롬프트 다음에 실제로 고려하는 토큰들입니다.","kirch.split.waiting":"시드를 기다리는 중입니다. 그때까지 아래 격자는 나뉘지 않습니다.","kirch.split.contextToken":"문맥 토큰","kirch.split.seedsStep":"이 이 스텝의 시드가 됩니다. 가장 가능성 높은","kirch.split.mostLikely":"개 토큰 중","kirch.split.landedGreen":"개가 green","kirch.split.vocabSize":"어휘 크기","kirch.split.howJudged":"토큰 하나가 판정되는 과정","kirch.split.clickToken":"위에서 토큰을 클릭하면 계산 과정을 볼 수 있습니다.","kirch.split.rowContext":"문맥 토큰","kirch.split.rowSeed":"PRF 시드","kirch.split.rowKey":"비밀키","kirch.split.rowCandidate":"후보","kirch.split.rowU":"U = hash(시드, 키, id)","kirch.split.rowVerdict":"판정","kirch.split.next":"다음: green 쪽을 밀어주기 →","kirch.bias.intro":"여기까지 모델의 확률은 그대로였습니다. 워터마크는 green 토큰의 logit에 일정한 +δ를 더한 뒤 평소대로 샘플링합니다. δ가 작으면 글에서는 거의 티가 안 나지만 신호도 약하고, 크면 검출은 쉬워지지만 글이 어색해지기 시작합니다.","kirch.bias.delta":"δ (green logit 편향)","kirch.bias.replaying":"baseline 스텝","kirch.bias.itWrote":"재생 — 여기서 쓴 토큰은","kirch.bias.entropy":"엔트로피","kirch.bias.nats":"nats","kirch.bias.unknownContext":"이 스텝의 문맥 토큰은 프롬프트에 있어 아직 읽어오지 못했습니다 — 다른 스텝을 고르거나 baseline을 다시 생성하세요.","kirch.bias.mass":"green 토큰이 가진 확률 질량 (표시된","kirch.bias.shown":"개 기준):","kirch.bias.scrub":"스텝을 옮겨보세요. 모델이 이미 확신한 자리에서는 δ가 거의 아무것도 바꾸지 못하고, 망설인 자리에서는 green 쪽이 치고 들어옵니다. 매 스텝 새로운 문맥 토큰으로 다시 나누므로 green 집합은 같은 적이 없습니다.","kirch.generate":"워터마크 텍스트 생성 →","kirch.regenerate":"이 설정으로 다시 생성","kirch.result.none":"아직 생성하지 않았습니다 — 2단계로 돌아가 생성하세요.","kirch.result.intro":"생성된 각 토큰은 선택되던 그 순간에 속했던 목록의 색으로 칠했습니다. 워터마크가 있는 글은 green을 과하게 씁니다. 왼쪽 baseline은 똑같은 비밀키로 채점했으니 γ =","kirch.result.ofSampled":"/","kirch.result.wereGreen":"개 토큰이 green 목록에 있었습니다","kirch.result.expectedNoWm":"워터마크가 없다면 {n}%","kirch.result.replay":"디코딩 다시 보기","kirch.result.chose":"선택","kirch.result.seed":"시드","ksem.clusters.intro":"토큰 단위 워터마크는 문장을 바꿔 쓰면 사라집니다. 그래서 이 세대는 운반체를 문장 의미로 옮깁니다. 문장을 임베딩해 K개의 의미 클러스터 중 하나에 배정하고, 직전 문장의 클러스터를 기준으로 당신의 비밀키가 다음에 허용될 클러스터를 정합니다.","ksem.clusters.gamma":"γ (유효 비율)","ksem.clusters.accepted":"개 클러스터 허용","ksem.clusters.of":"/","ksem.clusters.enterSeed":"시드를 입력하면 어떤 클러스터가 유효해지는지 보입니다.","ksem.clusters.hover":"클러스터에 마우스를 올리면, 직전 문장이 거기 속했을 때 다음 문장이 갈 수 있는 클러스터가 표시됩니다.","ksem.clusters.prevCluster":"직전 문장의 클러스터","ksem.clusters.seed":"시드","ksem.clusters.validNext":"유효한 다음 클러스터","ksem.clusters.next":"다음: 맞는 문장이 나올 때까지 되돌리기 →","ksem.reject.intro":"이제 생성은 문장 단위로 진행됩니다. 후보 문장을 임베딩해 클러스터에 배정하고, 그 클러스터가 유효하면서 배정이 충분히 확실할 때(margin)만 채택합니다. 아니면 버리고 문장을 다시 씁니다.","ksem.reject.margin":"margin m","ksem.reject.maxTrials":"최대 시도","ksem.reject.generate":"재샘플링으로 생성 →","ksem.reject.judged":"개 후보 판정됨","ksem.reject.accepted":"개 채택","ksem.reject.rejected":"개 거절","ksem.reject.reached":"도달한 클러스터","ksem.reject.clusters":"개","ksem.reject.replay":"다시 보기","ksem.reject.showAll":"전체 보기","ksem.reject.waiting":"판정되는 대로 후보가 여기에 나타납니다.","ksem.reject.sentence":"문장","ksem.reject.try":"시도","ksem.reject.targets":"목표","ksem.reject.accept":"채택","ksem.result.none":"아직 생성하지 않았습니다 — 2단계를 먼저 실행하세요.","ksem.result.tooShort":"문장 단위로 채점하기엔 글이 너무 짧습니다 (최소 두 문장 필요).","ksem.result.intro":"각 문장을 다시 임베딩해, 직전 문장이 정한 유효 집합에 속하는지 확인합니다. 첫 문장은 사슬의 시작점이라 판정하지 않습니다. 왼쪽 baseline도 같은 비밀키로 채점했으니, 유효 영역에는 우연으로만 들어가야 합니다.","ksem.result.seed":"시작점","ksem.result.valid":"유효","ksem.result.invalid":"무효","ksem.result.margin":"margin","ksem.result.tryEdit":"다음 단계에서 의미를 유지한 채 단어 몇 개만 바꿔보세요. 토큰 단위인 Kirchenbauer 점수는 무너지는데 이 문장 단위 점수는 거의 그대로입니다.","seal.r.intro":"앞의 두 세대는 모델의 확률을 건드렸습니다. TextSeal은 그러지 않습니다. 분포는 그대로 두고 어떤 표본이 뽑힐지만 고정합니다. 후보 토큰마다 비밀키가 균등난수 R을 만들고, R^(1/p)를 최대로 하는 토큰이 이깁니다. 키를 무작위로 보면 원래 분포가 정확히 재현되는 규칙입니다.","seal.r.contextWidth":"문맥 폭 k","seal.r.dependsOn":"R은 직전","seal.r.tokens":"개 토큰에 의존합니다","seal.r.needBaseline":"먼저 baseline을 생성하세요.","seal.r.enterSeed":"시드를 입력하면 R값이 계산됩니다.","seal.r.candidate":"후보","seal.r.pModel":"p (모델)","seal.r.rValue":"R = PRF(키, 문맥, 토큰)","seal.r.note":"R이 균등분포이므로 확률이 낮은 토큰은 유난히 큰 R을 받아야 이깁니다. 승자가 여전히 모델의 분포를 따르는 이유가 바로 이것입니다.","seal.r.next":"다음: Gumbel-max로 샘플링 →","seal.gumbel.intro":"선택이 키와 문맥만으로 결정되므로 같은 프롬프트는 늘 같은 글을 냅니다. 그러면 출력이 단조로워지겠죠. TextSeal은 두 번째 키를 두고 전체 스텝의 α만큼을 그쪽으로 보내, 각 키는 그대로 분포를 왜곡하지 않으면서 다양성을 되찾습니다.","seal.gumbel.alpha":"α (두 번째 키 비율)","seal.gumbel.needStage1":"1단계를 마치고 baseline을 먼저 생성하세요.","seal.gumbel.comparing":"비교 기준: baseline 스텝","seal.gumbel.baselineDrew":"baseline이 뽑은 토큰","seal.gumbel.randomDraw":"무작위 추출","seal.gumbel.outsideTopK":"무작위 추출, 기록된 상위 후보 밖","seal.gumbel.key1Picks":"키₁의 Gumbel-max 선택 (표시된 후보 중)","seal.gumbel.key2Used":"키₂ (전체 스텝의 {n}%)","seal.gumbel.deterministic":"결정적","seal.gumbel.note":"무엇이 일어나지 않았는지 보세요. 어떤 확률도 올리거나 내리지 않았습니다. 분포를 왜곡하지 않는 워터마크의 핵심이 이것입니다. 글의 품질은 그대로인데 수열이 증거를 담습니다. (위 승자는 이 스텝에 기록된 후보들 중의 argmax입니다. 실제 생성은 어휘 전체를 순위 매기므로 더 아래까지 닿을 수 있습니다.)","seal.evidence.none":"아직 생성하지 않았습니다 — 2단계를 먼저 실행하세요.","seal.evidence.intro":"검출에 모델이 필요 없습니다. 글과 키로 R을 다시 유도하면 토큰마다 s = −ln(1−R) 점수가 나오고, 워터마크가 고른 자리일수록 값이 큽니다. 진할수록 증거가 강합니다. 이번 실행의 키 사용:","seal.evidence.localized":"구간 탐지","seal.evidence.region":"구간","seal.evidence.tokens":"토큰","seal.evidence.noRegion":"두드러지는 부분 구간이 없습니다 — 글 전체가 고르게 워터마크되어 전역 검정만으로 설명됩니다. 다음 단계에서 이 글 앞뒤에 사람이 쓴 글을 붙여보세요. 전역 점수는 희석되지만 구간 탐지는 여전히 생성된 부분을 짚습니다.","edit.intro":"자유롭게 고쳐보세요. 타이핑할 때마다 세 검출기가 모두 다시 채점합니다. 여기서 세 세대가 갈립니다. 토큰을 바꿔 쓰면 토큰 단위 증거가 지워지고, 의미를 지킨 고쳐쓰기는 문장 단위 증거를 건드리지 못하며, 일부만 발췌하면 전역 점수는 줄어도 구간 탐지는 여전히 찾아냅니다.","edit.thisText":"이 글","edit.watermarked":"워터마크 검출","edit.notDetected":"검출 안 됨","edit.inconclusive":"판단 보류","edit.detected":"검출됨","edit.rescoring":"다시 채점 중…","edit.edited":"원본에서 수정됨","edit.unchanged":"수정 없음","edit.entropyWeighted":"엔트로피 가중 (모델 연산 1회 추가)","edit.needTwo":"k-SemStamp는 채점에 문장이 두 개 이상 필요합니다.","edit.regions":"탐지된 구간:","edit.na":"해당 없음","edit.threshold":"임계값"},io=ba()?{...Ua,...so}:Ua;function p(e,t){let r=io[e]??e;if(t)for(const[a,s]of Object.entries(t))r=r.replaceAll(`{${a}}`,String(s));return r}ba();const lo={temperature:.8,topP:.95,maxNewTokens:192,baseSeed:42,secret:"microscope-demo-key"},Lt=(1n<<64n)-1n;function Qn(e){let t=e+0x9e3779b97f4a7c15n&Lt,r=t;return r=(r^r>>30n)*0xbf58476d1ce4e5b9n&Lt,r=(r^r>>27n)*0x94d049bb133111ebn&Lt,r=r^r>>31n,{state:t,out:r&Lt}}function xn(e){return Qn(e&Lt).out}function ka(...e){let t=0x517cc1b727220a95n;for(const r of e)t=xn((t^r&Lt)&Lt);return t}function xa(e){return Number((e&Lt)>>11n)/2**53}class oo{state;constructor(t){this.state=xn(BigInt(t)&Lt)}next(){const{state:t,out:r}=Qn(this.state);return this.state=t,xa(r)}nextU64(){const{state:t,out:r}=Qn(this.state);return this.state=t,r}}function co(e,t,r){const a=new oo(e),s=Array.from({length:t},(i,o)=>o);for(let i=t-1;i>0;i--){const o=Math.floor(a.next()*(i+1));[s[i],s[o]]=[s[o],s[i]]}return s.slice(0,r)}const wn=15485863n,yn=(1n<<64n)-1n;function ti(e,t=wn){return t*BigInt(e)%yn}function ri(e,t,r=0n){return xa(ka(e,r,BigInt(t)))}function Zn(e,t,r){const a=[e];for(const i of t)a.push(BigInt(i));a.push(0x746578747365616cn),a.push(BigInt(r));let s=xa(ka(...a));return s<=0&&(s=Number.MIN_VALUE),s>=1&&(s=1-Number.EPSILON),s}function Wa(e){let t=0xcbf29ce484222325n;for(let r=0;ri-o)}const po={contextWidth:3,alpha:.1};function ai(e){return{key1:Wa(e+"\0k1"),key2:Wa(e+"\0k2")}}const ho=[{id:"gemma3-1b",label:"Gemma 3 1B (q4f16, ~730MB)",repo:"onnx-community/gemma-3-1b-it-ONNX",dtype:"q4f16",approxSizeMB:730,notes:"Much stronger Korean than the Qwen models at this size."},{id:"qwen3-0.6b",label:"Qwen3-0.6B (q4f16, ~570MB)",repo:"onnx-community/Qwen3-0.6B-ONNX",dtype:"q4f16",approxSizeMB:570,chatTemplateOptions:{enable_thinking:!1}},{id:"qwen2.5-0.5b",label:"Qwen2.5-0.5B-Instruct (q4f16, ~483MB)",repo:"onnx-community/Qwen2.5-0.5B-Instruct",dtype:"q4f16",approxSizeMB:483},{id:"smollm2-360m",label:"SmolLM2-360M-Instruct (q4f16, ~273MB)",repo:"HuggingFaceTB/SmolLM2-360M-Instruct",dtype:"q4f16",approxSizeMB:273,notes:"English-centric; lightest reasonable option."}],mo="gemma3-1b",_o=["kirchenbauer","ksemstamp","textseal"],ln={kirchenbauer:{title:"Kirchenbauer",year:"2023",tagline:p("method.kirchenbauer.tagline"),stages:[p("stage.k1"),p("stage.k2"),p("stage.k3"),p("stage.edit")]},ksemstamp:{title:"k-SemStamp",year:"2024",tagline:p("method.ksemstamp.tagline"),stages:[p("stage.s1"),p("stage.s2"),p("stage.s3"),p("stage.edit")]},textseal:{title:"TextSeal",year:"2026",tagline:p("method.textseal.tagline"),stages:[p("stage.t1"),p("stage.t2"),p("stage.t3"),p("stage.edit")]}};function gr(e){return{algorithm:e,stage:1,seed:null,status:"idle",streamingText:"",tokensDone:0,retries:0,candidates:[],liveTokens:[],result:null,usedParams:null,error:null}}const Yt=it("idle"),ea=it(null),ta=it(null),si=it(null),ra=it(mo),wa=it(null),$r=it(ao()),Mt=it({...lo}),Te=it({kirchenbauer:{...uo},ksemstamp:{...vo},textseal:{...po}}),pt=it({status:"idle",streamingText:"",prompt:"",result:null,error:null,distribution:null}),st=it({kirchenbauer:gr("kirchenbauer"),ksemstamp:gr("ksemstamp"),textseal:gr("textseal")}),mn=it("kirchenbauer"),na=it(!1),Ir=it(0);function go(e){const t=e?.trace.steps??[];if(t.length===0)return 0;let r=0;for(let a=1;a(t[r].entropy??0)&&(r=a);return r}const or=it({});el([st,mn],([e,t])=>e[t]);function ii(e){return e.result?4:e.seed!==null?2:1}function Sn(e,t){st.update(r=>{const a=r[e];return t>ii(a)?r:{...r,[e]:{...a,stage:t}}})}function ya(e,t){st.update(r=>({...r,[e]:{...r[e],seed:t}}))}function bo(){return crypto.getRandomValues(new Uint32Array(1))[0]%1e6}function Vr(e){return e.seed===null?void 0:Rr(e.seed).toString()}let Nr=null,Tn=1;const Ht=new Map,Ur=new Map,Wr=new Map;let Jr=0;const En=new Map;function Dr(e){return(En.get(e)??Jr)!==Jr}function Ga(e){Ht.delete(e),En.delete(e)}function ko(){return Nr||(Nr=new Worker(new URL("/assets/inference-worker-rNjehlVS.js",import.meta.url),{type:"module"}),Nr.addEventListener("message",e=>{const t=e.data;switch(t.type){case"check-result":ea.set(t.info),Le(Yt)==="checking"&&Yt.set("idle");break;case"load-progress":ta.set(t);break;case"load-done":ea.set(t.info),si.set(t.initMs),Yt.set("ready"),ta.set(null);break;case"load-error":wa.set(t.error),Yt.set("error");break;case"distribution-done":{pt.update(r=>({...r,distribution:t.result})),Wr.get(t.requestId)?.(t.result),Wr.delete(t.requestId);break}case"distribution-error":{Wr.get(t.requestId)?.(null),Wr.delete(t.requestId);break}case"generate-progress":{const r=Ht.get(t.requestId);if(!r||Dr(t.requestId))break;r==="baseline"?pt.update(a=>({...a,streamingText:t.text||a.streamingText})):st.update(a=>({...a,[r]:{...a[r],streamingText:t.text||a[r].streamingText,tokensDone:Math.max(t.tokensDone,a[r].tokensDone),retries:Math.max(t.retries,a[r].retries)}}));break}case"token":{const r=Ht.get(t.requestId);if(!r||r==="baseline"||Dr(t.requestId))break;st.update(a=>{const s=a[r].liveTokens.filter(i=>i.index({...a,[r]:{...a[r],candidates:[...a[r].candidates,t.sentence]}}));break}case"generate-done":{const r=Ht.get(t.requestId),a=Dr(t.requestId);if(Ga(t.requestId),!r||a)break;r==="baseline"?(pt.update(s=>({...s,status:"done",result:t.result,streamingText:t.result.text})),Ir.set(go(t.result))):st.update(s=>({...s,[r]:{...s[r],status:"done",result:t.result,streamingText:t.result.text,stage:3}}));break}case"generate-error":{const r=Ht.get(t.requestId),a=Dr(t.requestId);if(Ga(t.requestId),!r||a)break;r==="baseline"?pt.update(s=>({...s,status:"error",error:t.error})):st.update(s=>({...s,[r]:{...s[r],status:"error",error:t.error}}));break}case"detect-done":{const r=Ur.get(t.requestId);if(!r)break;Ur.delete(t.requestId),or.update(a=>({...a,[r]:{running:!1,detections:t.detections,error:null}})),Ha(r);break}case"detect-error":{const r=Ur.get(t.requestId);if(!r)break;Ur.delete(t.requestId),or.update(a=>({...a,[r]:{running:!1,detections:a[r]?.detections??null,error:t.error}})),Ha(r);break}}}),Nr)}function jr(e){ko().postMessage(e)}function xo(){Yt.set("checking"),jr({type:"check"})}function wo(){Yt.set("loading"),wa.set(null),jr({type:"load",modelId:Le(ra)})}function yo(){const e=Le($r);Jr++;const t=Tn++;Ht.set(t,"baseline"),En.set(t,Jr),pt.set({status:"running",streamingText:"",prompt:e,result:null,error:null,distribution:null}),st.set({kirchenbauer:gr("kirchenbauer"),ksemstamp:gr("ksemstamp"),textseal:gr("textseal")}),or.set({}),jr({type:"generate",requestId:t,algorithm:"baseline",prompt:e,sampling:Le(Mt),params:Le(Te)}),So()}function So(e=160){const t=Tn++;return new Promise(r=>{Wr.set(t,r),jr({type:"distribution",requestId:t,prompt:Le($r),topN:e,temperature:Le(Mt).temperature})})}function Sa(e){const t=Le(st)[e];if(t.seed===null)return;const r=Tn++;Ht.set(r,e),En.set(r,Jr);const a=structuredClone(Le(Te));st.update(s=>({...s,[e]:{...s[e],status:"running",streamingText:"",tokensDone:0,retries:0,candidates:[],liveTokens:[],result:null,usedParams:a,error:null}})),jr({type:"generate",requestId:r,algorithm:e,prompt:Le(pt).prompt||Le($r),sampling:Le(Mt),params:a,secretKey:Vr(t)})}function To(){const e=Le(st),t=Le(Te);return{kirchenbauer:e.kirchenbauer.usedParams?.kirchenbauer??t.kirchenbauer,ksemstamp:e.ksemstamp.usedParams?.ksemstamp??t.ksemstamp,textseal:e.textseal.usedParams?.textseal??t.textseal}}const Ka=new Map,Ta=new Set,aa=new Map;function li(e,t,r){const a=Tn++;Ur.set(a,e),Ta.add(e);const s=Le(st);jr({type:"detect",requestId:a,text:t,sampling:Le(Mt),params:To(),keys:{kirchenbauer:Vr(s.kirchenbauer),ksemstamp:Vr(s.ksemstamp),textseal:Vr(s.textseal)},withEntropy:r})}function Ha(e){Ta.delete(e);const t=aa.get(e);t&&(aa.delete(e),or.update(r=>({...r,[e]:{running:!0,detections:r[e]?.detections??null,error:null}})),li(e,t.text,t.withEntropy))}function on(e,t,r=!1,a=350){const s=Ka.get(e);s&&clearTimeout(s),or.update(i=>({...i,[e]:{running:!0,detections:i[e]?.detections??null,error:null}})),Ka.set(e,setTimeout(()=>{if(Ta.has(e)){aa.set(e,{text:t,withEntropy:r});return}li(e,t,r)},a))}function Eo(e){const t=Le(st)[e],r=Le(pt);return{exportedAt:new Date().toISOString(),prompt:r.prompt||Le($r),sampling:Le(Mt),params:(t.usedParams??Le(Te))[e],seed:t.seed,derivedKey:Vr(t)??null,baseline:r.result?{text:r.result.text,tokenIds:r.result.tokenIds,timings:r.result.timings}:null,watermarked:t.result?{text:t.result.text,tokenIds:t.result.tokenIds,detection:t.result.detection,timings:t.result.timings,metadata:t.result.metadata,trace:t.result.trace}:null,candidates:t.candidates}}function $o(e){const t=new Blob([JSON.stringify(Eo(e),null,2)],{type:"application/json"}),r=URL.createObjectURL(t),a=document.createElement("a");a.href=r,a.download=`watermark-microscope-${e}.json`,a.click(),URL.revokeObjectURL(r)}var Va=S(' '),Io=S(' '),Mo=S(""),zo=S(''),Ao=S(' '),Po=S(' '),Ro=S(''),jo=S('

'),Co=S('
');function Fo(e,t){qe(t,!1);const r=()=>me(ea,"$deviceInfo",c),a=()=>me(ra,"$modelId",c),s=()=>me(Yt,"$modelPhase",c),i=()=>me(ta,"$loadProgress",c),o=()=>me(si,"$initMs",c),d=()=>me(wa,"$modelError",c),[c,f]=mt();Zl(()=>xo()),ei();var h=Co(),g=l(h),_=l(g),m=l(_),b=l(m),$=v(m,2),T=l($),A=v(_,2);{var R=x=>{var P=ir(),z=ve(P);{var F=X=>{var E=Va(),y=l(E),j=v(y);{var Q=te=>{var ue=nr();w(()=>u(ue,`· ${r().adapterInfo.vendor??""}${r().adapterInfo.architecture?` / ${r().adapterInfo.architecture}`:""}`)),k(te,ue)};H(j,te=>{r().adapterInfo?.vendor&&te(Q)})}w(te=>u(y,`${te??""}${r().shaderF16?" + shader-f16":""} `),[()=>p("model.webgpuOk")]),k(X,E)},K=X=>{var E=Io(),y=l(E);w(j=>u(y,j),[()=>p("model.webgpuNone")]),k(X,E)};H(z,X=>{r().webgpuSupported?X(F):X(K,-1)})}k(x,P)};H(A,x=>{r()&&x(R)})}var D=v(g,2),C=l(D),W=l(C),se=v(W);Re(se,5,()=>ho,Oe,(x,P)=>{var z=Mo(),F=l(z),K={};w(()=>{u(F,n(P).label),K!==(K=n(P).id)&&(z.value=(z.__value=n(P).id)??"")}),k(x,z)});var O=v(C,2);{var G=x=>{var P=zo(),z=l(P);w(F=>{P.disabled=s()==="checking",u(z,F)},[()=>p("model.load")]),Me("click",P,function(...F){wo?.apply(this,F)}),k(x,P)},J=x=>{var P=Po(),z=l(P),F=v(z);{var K=X=>{var E=Ao(),y=l(E);w((j,Q,te,ue)=>u(y,`${j??""} ${Q??""}% (${te??""}/${ue??""} MB)`),[()=>i().file.split("/").pop(),()=>Math.round(i().progress),()=>i().loadedMB.toFixed(0),()=>i().totalMB.toFixed(0)]),k(X,E)};H(F,X=>{i()&&X(K)})}w(X=>u(z,`${X??""} `),[()=>p("model.loading")]),k(x,P)},N=x=>{var P=Va(),z=l(P),F=v(z);{var K=X=>{var E=nr();w((y,j)=>u(E,`· ${y??""} ${j??""}s`),[()=>p("model.init"),()=>((o()??0)/1e3).toFixed(1)]),k(X,E)};H(F,X=>{o()&&X(K)})}w((X,E,y)=>u(z,`${X??""} · ${E??""} ${r()?.device??""} · ${y??""} ${r()?.dtype??""} `),[()=>p("model.ready"),()=>p("model.device"),()=>p("model.dtype")]),k(x,P)};H(O,x=>{s()==="idle"||s()==="checking"||s()==="error"?x(G):s()==="loading"?x(J,1):s()==="ready"&&x(N,2)})}var ne=v(D,2);{var L=x=>{var P=Ro();w(()=>Qs(P,i().progress)),k(x,P)};H(ne,x=>{s()==="loading"&&i()&&x(L)})}var q=v(ne,2);{var M=x=>{var P=jo(),z=l(P);w(F=>u(z,`${F??""} ${d()??""}`),[()=>p("model.failed")]),k(x,P)};H(q,x=>{d()&&x(M)})}w((x,P,z)=>{u(b,x),u(T,P),u(W,`${z??""} `),se.disabled=s()==="loading"||s()==="ready"},[()=>p("model.local"),()=>p("model.localNote"),()=>p("model.label")]),Hl(se,a,x=>gn(ra,x)),k(e,h),Be(),f()}ot(["click"]);var Ya=S(' '),No=S('
'),Do=S('
');function Lo(e,t){qe(t,!0);const r=()=>me(pt,"$baseline",d),a=()=>me($r,"$prompt",d),s=()=>me(Yt,"$modelPhase",d),i=()=>me(Mt,"$sampling",d),o=()=>me(Te,"$algoParams",d),[d,c]=mt();let f=Pe(!1);const h=I(()=>r().status==="running");var g=Do(),_=l(g),m=v(_,2),b=l(m),$=l(b),T=v(b,2),A=l(T),R=v(T,2);{var D=O=>{var G=Ya(),J=l(G);w(N=>u(J,N),[()=>p("prompt.loadFirst")]),k(O,G)},C=O=>{var G=Ya(),J=l(G);w(N=>u(J,N),[()=>p("prompt.baselineIsControl")]),k(O,G)};H(R,O=>{s()!=="ready"?O(D):!r().result&&!n(h)&&O(C,1)})}var W=v(m,2);{var se=O=>{var G=No(),J=l(G),N=l(J),ne=l(N),L=v(N,2),q=l(L),M=v(q),x=v(L,2),P=l(x),z=v(P),F=v(x,2),K=l(F),X=v(K),E=v(F,2),y=l(E),j=v(y),Q=v(J,2),te=l(Q),ue=l(te),B=v(te,2),U=v(l(B)),Z=v(B,2),ae=v(l(Z)),de=v(Z,2),V=v(l(de)),Y=v(de,2),ee=v(l(Y)),re=v(Y,2),le=v(l(re)),be=v(re,2),pe=v(l(be));w((ie,ze,ye,_e,ke,we)=>{u(ne,ie),u(q,`${ze??""} `),u(P,`${ye??""} `),u(K,`${_e??""} `),u(y,`${ke??""} `),u(ue,we)},[()=>p("prompt.samplingLegend"),()=>p("prompt.temperature"),()=>p("prompt.topP"),()=>p("prompt.maxTokens"),()=>p("prompt.baseSeed"),()=>p("prompt.paramsLegend")]),Ge(M,()=>i().temperature,ie=>rt(Mt,oe(i).temperature=ie,oe(i))),Ge(z,()=>i().topP,ie=>rt(Mt,oe(i).topP=ie,oe(i))),Ge(X,()=>i().maxNewTokens,ie=>rt(Mt,oe(i).maxNewTokens=ie,oe(i))),Ge(j,()=>i().baseSeed,ie=>rt(Mt,oe(i).baseSeed=ie,oe(i))),Ge(U,()=>o().kirchenbauer.gamma,ie=>rt(Te,oe(o).kirchenbauer.gamma=ie,oe(o))),Ge(ae,()=>o().kirchenbauer.delta,ie=>rt(Te,oe(o).kirchenbauer.delta=ie,oe(o))),Ge(V,()=>o().ksemstamp.margin,ie=>rt(Te,oe(o).ksemstamp.margin=ie,oe(o))),Ge(ee,()=>o().ksemstamp.maxTrials,ie=>rt(Te,oe(o).ksemstamp.maxTrials=ie,oe(o))),Ge(le,()=>o().textseal.contextWidth,ie=>rt(Te,oe(o).textseal.contextWidth=ie,oe(o))),Ge(pe,()=>o().textseal.alpha,ie=>rt(Te,oe(o).textseal.alpha=ie,oe(o))),k(O,G)};H(W,O=>{n(f)&&O(se)})}w((O,G,J,N)=>{Se(_,"placeholder",O),b.disabled=G,u($,J),u(A,N)},[()=>p("prompt.placeholder"),()=>s()!=="ready"||n(h)||a().trim().length===0,()=>n(h)?p("prompt.generating"):r().result?p("prompt.regenerate"):p("prompt.generate"),()=>n(f)?p("prompt.hide"):p("prompt.advanced")]),Ge(_,a,O=>gn($r,O)),Me("click",b,function(...O){yo?.apply(this,O)}),Me("click",T,()=>ge(f,!n(f))),k(e,g),Be(),c()}ot(["click"]);var Oo=S("
"),qo=S(' ',1),Bo=S('
'),Uo=S('
');function Ea(e,t){qe(t,!0);let r=Ut(t,"chosenTokenId",3,null),a=Ut(t,"showAfter",3,!0);const s=I(()=>Math.max(1e-4,...t.rows.flatMap(o=>[o.before,a()?o.after??0:0])));var i=Uo();Re(i,21,()=>t.rows,Oe,(o,d)=>{var c=Bo();let f;var h=l(c),g=l(h),_=v(h,2),m=l(_),b=v(m,2);{var $=C=>{var W=Oo();w(()=>{Ie(W,1,`bar after ${n(d).kind??"neutral"??""}`,"svelte-10iw5jf"),Er(W,`width: ${n(d).after/n(s)*100}%`)}),k(C,W)};H(b,C=>{a()&&n(d).after!==void 0&&C($)})}var T=v(_,2),A=l(T),R=v(A);{var D=C=>{var W=qo(),se=v(ve(W));w(O=>u(se,`${O??""}%`),[()=>(n(d).after*100).toFixed(1)]),k(C,W)};H(R,C=>{a()&&n(d).after!==void 0&&C(D)})}w((C,W)=>{f=Ie(c,1,"row svelte-10iw5jf",null,f,{chosen:n(d).tokenId===r()}),Se(h,"title",n(d).text),u(g,C),Ie(m,1,`bar before ${n(d).kind??"neutral"??""}`,"svelte-10iw5jf"),Er(m,`width: ${n(d).before/n(s)*100}%`),u(A,`${W??""}%`)},[()=>n(d).text.replace(/\n/g,"\\n")||"␣",()=>(n(d).before*100).toFixed(1)]),k(o,c)}),k(e,i),Be()}var Wo=S('

'),Go=S('

'),Ko=S('

'),Ho=S('

',1),Vo=S('
  • '),Yo=S('

      ',1),Jo=S('

      .

      ',1),Ja=S(" "),Xo=S('
      '),Qo=S('
      ',1),Cn=S('

      '),Xa=S('

      ',1),Zo=S("
    1. "),ec=S('
        '),tc=S('

        ',1),rc=S('
        ',1),nc=S('
        '),ac=S('
        '),sc=S('
        '),ic=S(" ",1),lc=S('

        '),oc=S('
        ',1),cc=S('
        ',1),dc=S('
        ');function uc(e,t){qe(t,!0);const r=()=>me(mn,"$activeMethod",f),a=()=>me(st,"$wizards",f),s=()=>me(pt,"$baseline",f),i=()=>me(or,"$editorDetect",f),o=()=>me(Ir,"$biasStepIndex",f),d=()=>me(na,"$baselineCollapsed",f),c=()=>me(Te,"$algoParams",f),[f,h]=mt(),g=I(r),_=I(()=>a()[n(g)]),m=I(()=>n(_).stage),b=I(()=>s().distribution),$=I(()=>s().result),T=I(()=>ln[n(g)].stages[n(m)-1]),A="baseline",R=I(()=>i()[A]?.detections??null);Pt(()=>{const j=n($)?.text;j&&n(m)>=3&&on(A,j,!1,0)});const D=I(()=>n(R)?.kirchenbauer??null),C=I(()=>n(R)?.ksemstamp??null),W=I(()=>n(R)?.textseal??null),se=I(()=>n($)?.trace.steps??[]),O=I(()=>Math.min(o(),Math.max(0,n(se).length-1))),G=I(()=>n(se)[n(O)]),J=I(()=>n(G)?n(G).topCandidates.map(j=>({tokenId:j.tokenId,text:j.tokenText,before:j.prob,kind:"neutral"})):n(b)?n(b).candidates.slice(0,12).map(j=>({tokenId:j.tokenId,text:j.text,before:j.prob,kind:"neutral"})):[]),N=I(()=>{if(n(g)!=="kirchenbauer"||!n(D))return null;const Q=(n(D).perUnit??[]).filter(ue=>!ue.skipped);return{green:Q.filter(ue=>ue.green).length,total:Q.length}});var ne=dc();let L;var q=l(ne),M=l(q),x=l(M),P=l(x),z=v(x,2),F=l(z),K=v(M,2),X=l(K),E=v(q,2);{var y=j=>{var Q=cc(),te=ve(Q),ue=l(te),B=v(te,2);{var U=V=>{var Y=Wo(),ee=l(Y);w(re=>u(ee,re),[()=>p("baseline.start")]),k(V,Y)},Z=V=>{var Y=Go(),ee=l(Y);w(re=>u(ee,re),[()=>s().streamingText||p("baseline.generating")]),k(V,Y)},ae=V=>{var Y=Ko(),ee=l(Y);w(()=>u(ee,s().error)),k(V,Y)},de=V=>{var Y=oc(),ee=ve(Y);{var re=_e=>{var ke=Ho(),we=ve(ke),Ce=l(we),Xe=v(we,2),Fe=l(Xe);w(He=>{u(Ce,He),u(Fe,n($).text)},[()=>p("baseline.control")]),k(_e,ke)},le=_e=>{var ke=ir(),we=ve(ke);{var Ce=Fe=>{var He=Yo(),wt=ve(He),yt=l(wt),Ee=v(wt,2);Re(Ee,21,()=>n($).text.split(/(?<=[.!?])\s+/).filter(Boolean),Oe,(Ae,Ue)=>{var We=Vo(),Qe=l(We),nt=l(Qe),Ve=v(Qe),xe=l(Ve);w($e=>{u(nt,$e),u(xe,n(Ue))},[()=>p("baseline.kept")]),k(Ae,We)}),w(Ae=>u(yt,Ae),[()=>p("baseline.stage2Ksem")]),k(Fe,He)},Xe=Fe=>{var He=Jo(),wt=ve(He),yt=l(wt),Ee=v(yt),Ae=l(Ee),Ue=v(wt,2);{let We=I(()=>n(G)?.chosenTokenId??null);Ea(Ue,{get rows(){return n(J)},get chosenTokenId(){return n(We)},showAfter:!1})}w((We,Qe)=>{u(yt,`${We??""} ${n(O)??""}${Qe??""} `),u(Ae,`"${n(G)?.chosenTokenText??""??""}"`)},[()=>p("baseline.stage2Dist"),()=>p("baseline.stage2DistTail")]),k(Fe,He)};H(we,Fe=>{n(g)==="ksemstamp"?Fe(Ce):Fe(Xe,-1)})}k(_e,ke)},be=_e=>{var ke=ic(),we=ve(ke);{var Ce=Ee=>{var Ae=Xa(),Ue=ve(Ae),We=l(Ue),Qe=v(Ue,2);{var nt=xe=>{var $e=Qo(),et=ve($e);Re(et,21,()=>n(D).perUnit??[],Oe,(vt,tt)=>{var at=Ja(),ct=l(at);w(()=>{Ie(at,1,lr(n(tt).skipped?"tok-skip":n(tt).green?"tok-green":"tok-red")),u(ct,n(tt).label)}),k(vt,at)});var Ne=v(et,2);{var St=vt=>{var tt=Xo(),at=l(tt),ct=v(at),Ct=l(ct),cr=v(ct);w((dr,ur,Cr,In,Mn)=>{u(at,`${n(N).green??""} ${dr??""} ${n(N).total??""}${ur??""} (`),u(Ct,`${Cr??""}%`),u(cr,`, ${In??""} ${Mn??""}%)`)},[()=>p("baseline.greenOf"),()=>p("baseline.scoredGreen"),()=>(n(N).green/Math.max(1,n(N).total)*100).toFixed(0),()=>p("baseline.expected"),()=>Math.round(c().kirchenbauer.gamma*100)]),k(vt,tt)};H(Ne,vt=>{n(N)&&vt(St)})}k(xe,$e)},Ve=xe=>{var $e=Cn(),et=l($e);w(Ne=>u(et,Ne),[()=>p("baseline.scoring")]),k(xe,$e)};H(Qe,xe=>{n(D)?xe(nt):xe(Ve,-1)})}w(xe=>u(We,xe),[()=>p("baseline.stage3Kirch")]),k(Ee,Ae)},Xe=Ee=>{var Ae=Xa(),Ue=ve(Ae),We=l(Ue),Qe=v(Ue,2);{var nt=xe=>{var $e=ec();Re($e,21,()=>n(C).perUnit??[],Oe,(et,Ne)=>{var St=Zo(),vt=l(St),tt=l(vt),at=v(vt,2),ct=l(at);w(Ct=>{Ie(St,1,lr(n(Ne).skipped?"":n(Ne).green?"valid":"invalid"),"svelte-75x49b"),Ie(vt,1,`badge ${n(Ne).skipped?"":n(Ne).green?"ok":"bad"}`),u(tt,Ct),u(ct,n(Ne).label)},[()=>n(Ne).skipped?p("ksem.result.seed"):n(Ne).green?p("ksem.result.valid"):p("ksem.result.invalid")]),k(et,St)}),k(xe,$e)},Ve=xe=>{var $e=Cn(),et=l($e);w(Ne=>u(et,Ne),[()=>p("baseline.needTwo")]),k(xe,$e)};H(Qe,xe=>{n(C)?xe(nt):xe(Ve,-1)})}w(xe=>u(We,xe),[()=>p("baseline.stage3Ksem")]),k(Ee,Ae)},Fe=Ee=>{var Ae=tc(),Ue=ve(Ae),We=l(Ue),Qe=v(Ue,2);Re(Qe,21,()=>n(W).perUnit??[],Oe,(nt,Ve)=>{const xe=I(()=>n(Ve).score??0);var $e=Ja(),et=l($e);w((Ne,St)=>{Er($e,`background: rgba(29,95,208,${Ne??""})`),Se($e,"title",St),u(et,n(Ve).label)},[()=>Math.min(.55,.05+.14*n(xe)).toFixed(2),()=>`s=${n(xe).toFixed(2)}`]),k(nt,$e)}),w(nt=>u(We,nt),[()=>p("baseline.stage3Seal")]),k(Ee,Ae)},He=Ee=>{var Ae=Cn(),Ue=l(Ae);w(We=>u(Ue,We),[()=>p("baseline.scoring")]),k(Ee,Ae)};H(we,Ee=>{n(g)==="kirchenbauer"?Ee(Ce):n(g)==="ksemstamp"?Ee(Xe,1):n(W)?Ee(Fe,2):Ee(He,-1)})}var wt=v(we,2);{var yt=Ee=>{var Ae=sc();Re(Ae,21,()=>[["Kirchenbauer",n(D)],["k-SemStamp",n(C)],["TextSeal",n(W)]],Oe,(Ue,We)=>{var Qe=I(()=>gi(n(We),2));let nt=()=>n(Qe)[0],Ve=()=>n(Qe)[1];var xe=ac(),$e=l(xe),et=l($e),Ne=v($e,2);{var St=tt=>{var at=rc(),ct=ve(at),Ct=l(ct),cr=v(ct,2),dr=l(cr);w((ur,Cr)=>{u(Ct,ur),Ie(cr,1,`badge ${Ve().inconclusive?"warn":Ve().watermarked?"ok":"bad"}`),u(dr,Cr)},[()=>Ve().statistic.toFixed(2),()=>Ve().inconclusive?p("edit.inconclusive"):Ve().watermarked?p("edit.detected"):p("edit.notDetected")]),k(tt,at)},vt=tt=>{var at=nc(),ct=l(at);w(Ct=>u(ct,Ct),[()=>p("edit.na")]),k(tt,at)};H(Ne,tt=>{Ve()?tt(St):tt(vt,-1)})}w(()=>u(et,nt())),k(Ue,xe)}),k(Ee,Ae)};H(wt,Ee=>{n(m)===4&&Ee(yt)})}k(_e,ke)};H(ee,_e=>{n(m)===1?_e(re):n(m)===2?_e(le,1):(n(m)===3||n(m)===4)&&_e(be,2)})}var pe=v(ee,2);{var ie=_e=>{var ke=lc(),we=l(ke),Ce=l(we),Xe=v(we,2),Fe=l(Xe);w(He=>{u(Ce,He),u(Fe,n($).text)},[()=>p("baseline.rawText")]),k(_e,ke)};H(pe,_e=>{n(m)===2&&_e(ie)})}var ze=v(pe,2),ye=l(ze);w((_e,ke)=>u(ye,`${n($).tokenIds.length??""} tok · ${_e??""}s · ${ke??""} tok/s`),[()=>(n($).timings.totalMs/1e3).toFixed(1),()=>n($).timings.tokensPerSec.toFixed(1)]),k(V,Y)};H(B,V=>{s().status==="idle"?V(U):s().status==="running"?V(Z,1):s().status==="error"?V(ae,2):n($)&&V(de,3)})}w(V=>u(ue,`${V??""} ${n(m)??""}: ${n(T)??""}`),[()=>p("baseline.mirroring")]),k(j,Q)};H(E,j=>{d()||j(y)})}w((j,Q,te)=>{L=Ie(ne,1,"panel base svelte-75x49b",null,L,{collapsed:d()}),u(P,j),u(F,Q),u(X,te)},[()=>p("baseline.title"),()=>p("baseline.noWatermark"),()=>d()?p("baseline.show"):p("baseline.hide")]),Me("click",K,()=>na.update(j=>!j)),k(e,ne),Be(),h()}ot(["click"]);var vc=S(' '),fc=S(' '),pc=S('
        ');function $a(e,t){qe(t,!0);let r=Ut(t,"label",19,()=>p("seed.label")),a=Ut(t,"hint",3,""),s=Pe(void 0);const i=I(()=>t.seed===null);Pt(()=>{n(i)&&n(s)&&n(s).focus()});function o(A){const R=A.target.value.trim();t.onSeed(R===""?null:Math.abs(Math.trunc(Number(R)))||0)}var d=pc(),c=l(d),f=l(c),h=v(c,2);let g;ga(h,A=>ge(s,A),()=>n(s));var _=v(h,2),m=l(_),b=v(_,2);{var $=A=>{var R=vc(),D=l(R);w(C=>u(D,C),[()=>p("seed.hint")]),k(A,R)},T=A=>{var R=fc(),D=l(R);w(()=>u(D,a())),k(A,R)};H(b,A=>{n(i)?A($):a()&&A(T,1)})}w((A,R)=>{u(f,r()),g=Ie(h,1,"mono svelte-18ltob3",null,g,{"awaiting-input":n(i)}),Se(h,"placeholder",A),Qs(h,t.seed??""),u(m,`⚄ ${R??""}`)},[()=>p("seed.placeholder"),()=>p("seed.random")]),Me("input",h,o),Me("click",_,()=>t.onSeed(bo())),k(e,d),Be()}ot(["input","click"]);var hc=S("");function Qa(e,t){qe(t,!0);let r=Ut(t,"kind",3,"neutral"),a=Ut(t,"selected",3,!1),s=Ut(t,"title",3,"");const i=I(()=>r()==="green"?"tok-green":r()==="red"?"tok-red":"tok-neutral"),o=I(()=>t.text.replace(/\n/g,"\\n").trim()||t.text||"␣");var d=hc();let c;var f=l(d);w(()=>{c=Ie(d,1,`chip mono ${n(i)??""}`,"svelte-1dspz47",c,{sel:a()}),Se(d,"title",s()),u(f,n(o))}),Me("click",d,()=>t.onclick?.()),k(e,d),Be()}ot(["click"]);var mc=S('

        '),_c=S('

        ',1),gc=S('

        '),bc=S('
        '),kc=S('
        .
        ',1),xc=S('

        ');function wc(e,t){qe(t,!0);const r=()=>me(pt,"$baseline",s),a=()=>me(Te,"$algoParams",s),[s,i]=mt();let o=Pe(null);const d=I(()=>r().distribution),c=I(()=>t.wizard.seed===null?0n:Rr(t.wizard.seed)),f=I(()=>n(d)?ti(n(d).prevTokenId):0n),h=I(()=>a().kirchenbauer.gamma),g=I(()=>n(d)&&t.wizard.seed!==null?n(d).candidates.map(L=>({...L,u:ri(n(f),L.tokenId,n(c))})):[]),_=I(()=>n(g).filter(L=>L.un(o)===null?null:n(g).find(L=>L.tokenId===n(o))??null);var b=xc(),$=l(b),T=l($),A=v($,2);{let L=I(()=>t.wizard.seed===null?"":`key = ${n(c)}`);$a(A,{get seed(){return t.wizard.seed},onSeed:q=>ya("kirchenbauer",q),get hint(){return n(L)}})}var R=v(A,2),D=l(R),C=l(D),W=v(C),se=l(W),O=v(D,2),G=v(R,2);{var J=L=>{var q=mc(),M=l(q);w(x=>u(M,x),[()=>p("kirch.split.needBaseline")]),k(L,q)},N=L=>{var q=_c(),M=ve(q),x=l(M),P=v(M,2);Re(P,21,()=>n(d).candidates.slice(0,120),Oe,(z,F)=>{{let K=I(()=>`p=${(n(F).prob*100).toFixed(2)}%`);Qa(z,{get text(){return n(F).text},kind:"neutral",get title(){return n(K)}})}}),w(z=>u(x,z),[()=>p("kirch.split.waiting")]),k(L,q)},ne=L=>{var q=kc(),M=ve(q),x=l(M),P=v(x),z=l(P),F=v(P),K=v(F),X=l(K),E=v(K),y=v(E),j=l(y),Q=v(y),te=v(Q),ue=l(te),B=v(M,2);Re(B,21,()=>n(g).slice(0,120),Oe,(be,pe)=>{{let ie=I(()=>n(pe).un(o)===n(pe).tokenId),ye=I(()=>`U=${n(pe).u.toFixed(4)} ${n(pe).uge(o,n(pe).tokenId,!0)})}});var U=v(B,2),Z=l(U),ae=l(Z),de=v(Z,2);{var V=be=>{var pe=gc(),ie=l(pe);w(ze=>u(ie,ze),[()=>p("kirch.split.clickToken")]),k(be,pe)},Y=be=>{var pe=bc(),ie=l(pe),ze=l(ie),ye=l(ze),_e=l(ye),ke=v(ye),we=l(ke),Ce=v(ze),Xe=l(Ce),Fe=l(Xe),He=v(Xe),wt=l(He),yt=v(Ce),Ee=l(yt),Ae=l(Ee),Ue=v(Ee),We=l(Ue),Qe=v(yt),nt=l(Qe),Ve=l(nt),xe=v(nt),$e=l(xe),et=v(Qe),Ne=l(et),St=l(Ne),vt=v(Ne),tt=l(vt),at=v(et),ct=l(at),Ct=l(ct),cr=v(ct),dr=l(cr),ur=v(dr),Cr=l(ur);w((In,Mn,oi,ci,di,ui,vi,fi)=>{u(_e,In),u(we,`"${n(d).prevTokenText??""}" → id ${n(d).prevTokenId??""}`),u(Fe,Mn),u(wt,`${wn??""} × ${n(d).prevTokenId??""} mod 2⁶⁴−1 = ${n(f)??""}`),u(Ae,oi),u(We,n(c)),u(Ve,ci),u($e,`"${n(m).text??""}" → id ${n(m).tokenId??""}`),u(St,di),u(tt,ui),u(Ct,vi),u(dr,`${fi??""} ${n(m).up("kirch.split.rowContext"),()=>p("kirch.split.rowSeed"),()=>p("kirch.split.rowKey"),()=>p("kirch.split.rowCandidate"),()=>p("kirch.split.rowU"),()=>n(m).u.toFixed(6),()=>p("kirch.split.rowVerdict"),()=>n(m).u.toFixed(4)]),k(be,pe)};H(de,be=>{n(m)?be(Y,-1):be(V)})}var ee=v(U,2),re=l(ee),le=l(re);w((be,pe,ie,ze,ye,_e,ke,we,Ce,Xe,Fe)=>{u(x,`${be??""} `),u(z,`"${n(d).prevTokenText??""}"`),u(F,` (id ${n(d).prevTokenId??""}) ${pe??""} ${n(g).length??""} ${ie??""} `),u(X,n(_)),u(E,`${ze??""} (`),u(j,`${ye??""}%`),u(Q,`, ${_e??""} ${ke??""}%). ${we??""} `),u(ue,Ce),u(ae,Xe),u(le,Fe)},[()=>p("kirch.split.contextToken"),()=>p("kirch.split.seedsStep"),()=>p("kirch.split.mostLikely"),()=>p("kirch.split.landedGreen"),()=>(n(_)/Math.max(1,n(g).length)*100).toFixed(0),()=>p("baseline.expected"),()=>Math.round(n(h)*100),()=>p("kirch.split.vocabSize"),()=>n(d).vocabSize.toLocaleString(),()=>p("kirch.split.howJudged"),()=>p("kirch.split.next")]),Me("click",re,()=>Sn("kirchenbauer",2)),k(L,q)};H(G,L=>{n(d)?t.wizard.seed===null?L(N,1):L(ne,-1):L(J)})}w((L,q,M)=>{u(T,L),u(C,`${q??""} `),u(se,M)},[()=>p("kirch.split.intro"),()=>p("kirch.split.gamma"),()=>n(h).toFixed(2)]),Ge(O,()=>a().kirchenbauer.gamma,L=>rt(Te,oe(a).kirchenbauer.gamma=L,oe(a))),k(e,b),Be(),i()}ot(["click"]);function yc(e,t,r,a){const s=Math.exp(r);let i=0,o=0;for(let f=0;ff*(t[h]?s:1)/c)}var Sc=S('
        ');function $n(e,t){qe(t,!0);let r=Ut(t,"index",15),a=Ut(t,"intervalMs",3,420),s=Pe(!1),i=null;function o(){i&&clearInterval(i),i=null,ge(s,!1)}function d(){if(n(s)){o();return}r()>=t.total-1&&r(0),ge(s,!0),i=setInterval(()=>{if(r()>=t.total-1){o();return}r(r()+1)},a())}Pt(()=>()=>o());var c=Sc(),f=l(c),h=l(f),g=v(f,2),_=l(g),m=v(g,2),b=l(m),$=v(m,2),T=v($,2),A=l(T);w((R,D,C,W,se)=>{f.disabled=t.total===0,u(h,R),g.disabled=r()<=0,u(_,D),m.disabled=r()>=t.total-1,u(b,C),Se($,"max",W),$.disabled=t.total===0,u(A,`${se??""} ${t.total===0?0:r()+1} / ${t.total??""}`)},[()=>n(s)?p("player.pause"):p("player.play"),()=>p("player.prev"),()=>p("player.next"),()=>Math.max(0,t.total-1),()=>p("player.step")]),Me("click",f,d),Me("click",g,()=>{o(),r(Math.max(0,r()-1))}),Me("click",m,()=>{o(),r(Math.min(t.total-1,r()+1))}),Me("input",$,o),Ge($,r),k(e,c),Be()}ot(["click","input"]);var Fn=S(' '),Tc=S(''),Ec=S(" "),$c=S('|'),Ic=S('
        ');function Ia(e,t){qe(t,!0);const r=I(()=>t.wizard.liveTokens),a=I(()=>t.wizard.status==="running"),s=I(()=>n(r).filter(m=>m.green===!0).length),i=I(()=>n(r).filter(m=>m.keyId===2).length);let o=Pe(void 0),d=Pe(!0);Pt(()=>{n(r).length,n(o)&&n(d)&&(n(o).scrollTop=n(o).scrollHeight)});function c(){n(o)&&ge(d,n(o).scrollHeight-n(o).scrollTop-n(o).clientHeight<24)}function f(m,b){return m===!0?"tok-green":m===!1?"tok-red":b===2?"key2":""}var h=ir(),g=ve(h);{var _=m=>{var b=Ic(),$=l(b),T=l($);let A;var R=l(T),D=v(T,2),C=l(D),W=v(D,2);{var se=z=>{var F=Fn(),K=l(F);w((X,E)=>u(K,`${n(s)??""} ${X??""} (${E??""}%)`),[()=>p("live.green"),()=>(n(s)/n(r).length*100).toFixed(0)]),k(z,F)};H(W,z=>{t.wizard.algorithm==="kirchenbauer"&&n(r).length>0&&z(se)})}var O=v(W,2);{var G=z=>{var F=Fn(),K=l(F);w(()=>u(K,`key₂ ×${n(i)??""}`)),k(z,F)};H(O,z=>{t.wizard.algorithm==="textseal"&&n(r).length>0&&z(G)})}var J=v(O,2);{var N=z=>{var F=Fn(),K=l(F);w(X=>u(K,`${t.wizard.retries??""}${X??""}`),[()=>p("live.retries")]),k(z,F)};H(J,z=>{t.wizard.retries>0&&z(N)})}var ne=v(J,2);{var L=z=>{var F=Tc(),K=l(F);w(X=>u(K,X),[()=>p("live.follow")]),Me("click",F,()=>{ge(d,!0),n(o)&&(n(o).scrollTop=n(o).scrollHeight)}),k(z,F)};H(ne,z=>{n(d)||z(L)})}var q=v($,2),M=l(q);Re(M,17,()=>n(r),z=>z.index,(z,F)=>{var K=Ec(),X=l(K);w((E,y)=>{Ie(K,1,E,"svelte-138554l"),Se(K,"title",y),u(X,n(F).text)},[()=>lr(f(n(F).green,n(F).keyId)),()=>`${p("player.step")} ${n(F).index}${n(F).entropy!==void 0?` · H=${n(F).entropy.toFixed(2)}`:""}${n(F).keyId?` · key${n(F).keyId}`:""}`]),k(z,K)});var x=v(M);{var P=z=>{var F=$c();k(z,F)};H(x,z=>{n(a)&&z(P)})}ga(q,z=>ge(o,z),()=>n(o)),w((z,F)=>{A=Ie(T,1,"svelte-138554l",null,A,{pulse:n(a)}),u(R,z),u(C,`${n(r).length??""} ${F??""}`)},[()=>n(a)?p("live.sampling"):p("live.sampled"),()=>p("live.tokens")]),Yn("scroll",q,c),k(m,b)};H(g,m=>{(n(a)||n(r).length>0)&&m(_)})}k(e,h),Be()}ot(["click"]);var Mc=S('

        '),zc=S('

        '),Ac=S('
        ',1),Pc=S('

        ',1),Rc=S('

        ');function jc(e,t){qe(t,!0);const r=()=>me(Te,"$algoParams",i),a=()=>me(pt,"$baseline",i),s=()=>me(Ir,"$biasStepIndex",i),[i,o]=mt(),d=I(()=>t.wizard.seed===null?0n:Rr(t.wizard.seed)),c=I(()=>r().kirchenbauer.gamma),f=I(()=>r().kirchenbauer.delta),h=I(()=>a().result?.trace.steps??[]),g=I(()=>Math.min(s(),Math.max(0,n(h).length-1))),_=I(()=>n(h)[n(g)]),m=I(()=>n(g)===0?a().distribution?.prevTokenId??null:n(h)[n(g)-1].chosenTokenId),b=I(()=>{if(!n(_)||n(m)===null)return[];const q=ti(n(m)),M=n(_).topCandidates,x=M.map(z=>ri(q,z.tokenId,n(d))z.prob),x,n(f),n(c));return M.map((z,F)=>({tokenId:z.tokenId,text:z.tokenText,before:z.prob,after:P[F],kind:x[F]?"green":"red"}))}),$=I(()=>n(b).reduce((q,M)=>q+(M.kind==="green"?M.before:0),0)),T=I(()=>n(b).reduce((q,M)=>q+(M.kind==="green"?M.after??0:0),0));var A=Rc(),R=l(A),D=l(R),C=v(R,2),W=l(C),se=l(W),O=v(se),G=l(O),J=v(W,2),N=v(C,2);{var ne=q=>{var M=Mc(),x=l(M);w(P=>u(x,P),[()=>p("seal.r.needBaseline")]),k(q,M)},L=q=>{var M=Pc(),x=ve(M),P=l(x),z=l(P),F=v(z),K=l(F),X=v(F,2);{var E=V=>{var Y=nr();w((ee,re,le)=>u(Y,`(${ee??""} ${re??""} ${le??""})`),[()=>p("kirch.bias.entropy"),()=>n(_).entropy.toFixed(2),()=>p("kirch.bias.nats")]),k(V,Y)};H(X,V=>{n(_)?.entropy!==void 0&&V(E)})}var y=v(P,2);$n(y,{get total(){return n(h).length},get index(){return bs(),s()},set index(V){gn(Ir,V)}});var j=v(x,2);{var Q=V=>{var Y=zc(),ee=l(Y);w(re=>u(ee,re),[()=>p("kirch.bias.unknownContext")]),k(V,Y)},te=V=>{var Y=Ac(),ee=ve(Y),re=l(ee),le=v(re),be=l(le),pe=v(le,4),ie=l(pe),ze=v(ee,2);{let ye=I(()=>n(_)?.chosenTokenId??null);Ea(ze,{get rows(){return n(b)},get chosenTokenId(){return n(ye)}})}w((ye,_e,ke,we)=>{u(re,`${ye??""} ${n(b).length??""}${_e??""} `),u(be,`${ke??""}%`),u(ie,`${we??""}%`)},[()=>p("kirch.bias.mass"),()=>p("kirch.bias.shown"),()=>(n($)*100).toFixed(1),()=>(n(T)*100).toFixed(1)]),k(V,Y)};H(j,V=>{n(b).length===0?V(Q):V(te,-1)})}var ue=v(j,2),B=l(ue),U=v(ue,2),Z=l(U),ae=l(Z),de=v(U,2);Ia(de,{get wizard(){return t.wizard}}),w((V,Y,ee,re)=>{u(z,`${V??""} ${n(g)??""}${Y??""} `),u(K,`"${n(_)?.chosenTokenText??""}"`),u(B,ee),Z.disabled=t.wizard.status==="running",u(ae,re)},[()=>p("kirch.bias.replaying"),()=>p("kirch.bias.itWrote"),()=>p("kirch.bias.scrub"),()=>t.wizard.result?p("kirch.regenerate"):p("kirch.generate")]),Me("click",Z,()=>Sa("kirchenbauer")),k(q,M)};H(N,q=>{n(h).length===0?q(ne):q(L,-1)})}w((q,M,x)=>{u(D,q),u(se,`${M??""} `),u(G,x)},[()=>p("kirch.bias.intro"),()=>p("kirch.bias.delta"),()=>n(f).toFixed(1)]),Ge(J,()=>r().kirchenbauer.delta,q=>rt(Te,oe(r).kirchenbauer.delta=q,oe(r))),k(e,A),Be(),o()}ot(["click"]);var Cc=S('

        '),Fc=S(" "),Nc=S('|'),Dc=S('
        ',1),Lc=S('

        ',1),Oc=S('
        ');function qc(e,t){qe(t,!0);const r=()=>me(Te,"$algoParams",a),[a,s]=mt();let i=Pe(0),o=Pe(!1),d=Pe(void 0);const c=I(()=>t.wizard.result?.trace.steps??[]),f=I(()=>n(c)[Math.min(n(i),Math.max(0,n(c).length-1))]),h=I(()=>r().kirchenbauer.gamma),g=I(()=>n(c).slice(0,n(i)+1)),_=I(()=>n(g).filter(R=>R.chosenIsGreen).length);Pt(()=>{!n(o)&&n(c).length>0&&(ge(i,n(c).length-1),ge(o,!0))}),Pt(()=>{n(i),n(d)&&(n(d).scrollTop=n(d).scrollHeight)});const m=I(()=>(n(f)?.topCandidates??[]).map(R=>({tokenId:R.tokenId,text:R.tokenText,before:R.prob,after:R.probAfter,kind:R.isGreen?"green":"red"})));var b=Oc(),$=l(b);{var T=R=>{var D=Cc(),C=l(D);w(W=>u(C,W),[()=>p("kirch.result.none")]),k(R,D)},A=R=>{var D=Lc(),C=ve(D),W=l(C),se=v(C,2),O=l(se);Re(O,17,()=>n(g),E=>E.index,(E,y)=>{var j=Fc();let Q;var te=l(j);w(ue=>{Q=Ie(j,1,lr(n(y).chosenIsGreen===!0?"tok-green":n(y).chosenIsGreen===!1?"tok-red":""),"svelte-m8p1z5",Q,{latest:n(y).index===n(i)&&n(i)`${p("player.step")} ${n(y).index}${n(y).seed?` · ${p("kirch.result.seed")} ${n(y).seed}`:""}`]),k(E,j)});var G=v(O);{var J=E=>{var y=Nc();k(E,y)};H(G,E=>{n(i)ge(d,E),()=>n(d));var N=v(se,2),ne=l(N),L=v(ne),q=l(L),M=v(L),x=v(N,2),P=l(x),z=l(P),F=v(P,2);$n(F,{get total(){return n(c).length},get index(){return n(i)},set index(E){ge(i,E,!0)}});var K=v(F,2);{var X=E=>{var y=Dc(),j=ve(y),Q=l(j),te=v(Q);{var ue=U=>{var Z=nr();w(ae=>u(Z,`· H=${ae??""} nats`),[()=>n(f).entropy.toFixed(2)]),k(U,Z)};H(te,U=>{n(f).entropy!==void 0&&U(ue)})}var B=v(j,2);Ea(B,{get rows(){return n(m)},get chosenTokenId(){return n(f).chosenTokenId}}),w((U,Z,ae)=>u(Q,`${U??""} ${n(f).index??""} · ${Z??""} "${n(f).chosenTokenText??""}" · ${ae??""} ${n(f).seed??"—"??""} `),[()=>p("player.step"),()=>p("kirch.result.chose"),()=>p("kirch.result.seed")]),k(E,y)};H(K,E=>{n(f)&&E(X)})}w((E,y,j,Q,te,ue,B)=>{u(W,`${E??""} ${y??""}%.`),u(ne,`${n(_)??""} ${j??""} ${n(g).length??""}${Q??""} (`),u(q,`${te??""}%`),u(M,`, ${ue??""}).`),u(z,B)},[()=>p("kirch.result.intro"),()=>(n(h)*100).toFixed(0),()=>p("kirch.result.ofSampled"),()=>p("kirch.result.wereGreen"),()=>(n(_)/Math.max(1,n(g).length)*100).toFixed(0),()=>p("kirch.result.expectedNoWm",{n:Math.round(n(h)*100)}),()=>p("kirch.result.replay")]),k(R,D)};H($,R=>{t.wizard.result?R(A,-1):R(T)})}k(e,b),Be(),s()}var Bc=S('

        '),Uc=Ys(''),Wc=Ys(' ',1),Gc=S('
        '),Kc=S('

        ',1),Hc=S('

        ');function Vc(e,t){qe(t,!0);const r=()=>me(Te,"$algoParams",a),[a,s]=mt(),i=I(()=>r().ksemstamp),o=I(()=>t.wizard.seed===null?0n:Rr(t.wizard.seed)),d=I(()=>n(i).k),c=I(()=>t.wizard.seed===null?[]:Array.from({length:n(d)},(M,x)=>({from:x,targets:fo(x,n(i),n(o)),seed:ni(x,n(o))})));let f=Pe(null);const h=360,g=260,_=96;function m(M){const x=2*Math.PI*M/n(d)-Math.PI/2;return[h/2+_*Math.cos(x),g/2+_*Math.sin(x)]}const b=I(()=>n(f)===null?null:n(c).find(M=>M.from===n(f)));var $=Hc(),T=l($),A=l(T),R=v(T,2);{let M=I(()=>t.wizard.seed===null?"":`key = ${n(o)}`);$a(R,{get seed(){return t.wizard.seed},onSeed:x=>ya("ksemstamp",x),get hint(){return n(M)}})}var D=v(R,2),C=l(D),W=l(C),se=v(W),O=l(se),G=v(C,2),J=v(G,2),N=l(J),ne=v(D,2);{var L=M=>{var x=Bc(),P=l(x);w(z=>u(P,z),[()=>p("ksem.clusters.enterSeed")]),k(M,x)},q=M=>{var x=Kc(),P=ve(x),z=l(P),F=v(P,2);Se(F,"viewBox","0 0 360 260"),Er(F,"max-width:360px");var K=l(F);{var X=B=>{var U=ir(),Z=ve(U);Re(Z,17,()=>n(b).targets,Oe,(ae,de,V,Y)=>{const ee=I(()=>{const[be,pe]=m(n(b).from);return{x1:be,y1:pe}}),re=I(()=>{const[be,pe]=m(n(de));return{x2:be,y2:pe}});var le=Uc();w(()=>{Se(le,"x1",n(ee).x1),Se(le,"y1",n(ee).y1),Se(le,"x2",n(re).x2),Se(le,"y2",n(re).y2)}),k(ae,le)}),k(B,U)};H(K,B=>{n(b)&&B(X)})}var E=v(K);Re(E,17,()=>Array.from({length:n(d)},(B,U)=>U),Oe,(B,U)=>{const Z=I(()=>{const[re,le]=m(n(U));return{x:re,y:le}}),ae=I(()=>n(b)?n(b).targets.includes(n(U)):!1);var de=Wc(),V=ve(de),Y=v(V),ee=l(Y);w(()=>{Se(V,"cx",n(Z).x),Se(V,"cy",n(Z).y),Se(V,"fill",n(ae)?"var(--green-bg)":"var(--panel-2)"),Se(V,"stroke",n(f)===n(U)?"var(--accent)":n(ae)?"var(--green-border)":"var(--border-strong)"),Se(V,"stroke-width",n(f)===n(U)?2:1),Se(V,"aria-label",`cluster ${n(U)}`),Se(Y,"x",n(Z).x),Se(Y,"y",n(Z).y+4),u(ee,`C${n(U)??""}`)}),Yn("mouseenter",V,()=>ge(f,n(U),!0)),Yn("focus",V,()=>ge(f,n(U),!0)),k(B,de)});var y=v(F,2);{var j=B=>{var U=Gc(),Z=l(U),ae=l(Z),de=l(ae),V=l(de),Y=v(de),ee=l(Y),re=v(ae),le=l(re),be=l(le),pe=v(le),ie=l(pe),ze=v(re),ye=l(ze),_e=l(ye),ke=v(ye),we=l(ke);w((Ce,Xe,Fe,He)=>{u(V,Ce),u(ee,`C${n(b).from??""}`),u(be,Xe),u(ie,`hash(${wn??""} × ${n(b).from+1}, key) = ${n(b).seed??""}`),u(_e,Fe),u(we,He)},[()=>p("ksem.clusters.prevCluster"),()=>p("ksem.clusters.seed"),()=>p("ksem.clusters.validNext"),()=>n(b).targets.map(Ce=>`C${Ce}`).join(", ")]),k(B,U)};H(y,B=>{n(b)&&B(j)})}var Q=v(y,2),te=l(Q),ue=l(te);w((B,U)=>{u(z,B),u(ue,U)},[()=>p("ksem.clusters.hover"),()=>p("ksem.clusters.next")]),Me("click",te,()=>Sn("ksemstamp",2)),k(M,x)};H(ne,M=>{t.wizard.seed===null?M(L):M(q,-1)})}w((M,x,P,z,F,K)=>{u(A,M),u(W,`${x??""} `),u(O,P),u(N,`${z??""} ${F??""} ${n(d)??""}${K??""}`)},[()=>p("ksem.clusters.intro"),()=>p("ksem.clusters.gamma"),()=>n(i).gamma.toFixed(3),()=>Math.max(1,Math.round(n(d)*n(i).gamma)),()=>p("ksem.clusters.of"),()=>p("ksem.clusters.accepted")]),Ge(G,()=>r().ksemstamp.gamma,M=>rt(Te,oe(r).ksemstamp.gamma=M,oe(r))),k(e,$),Be(),s()}ot(["click"]);var Yc=S(' '),Jc=S(' ',1),Xc=S('

        within one domain, where every cluster is a plausible next sentence.

        '),Qc=S('
      1. '),Zc=S('
          '),ed=S('

          '),td=S('

          ');function rd(e,t){qe(t,!0);const r=()=>me(Te,"$algoParams",a),[a,s]=mt(),i=I(()=>r().ksemstamp),o=I(()=>t.wizard.status==="running"?t.wizard.candidates:t.wizard.result?.trace.sentences??t.wizard.candidates);let d=Pe(0),c=Pe(!1);const f=I(()=>n(c)?n(o).slice(0,n(d)+1):n(o)),h=I(()=>n(o).filter(B=>B.accepted).length),g=I(()=>n(o).length-n(h)),_=I(()=>new Set(n(o).map(B=>B.clusterId)).size),m=I(()=>n(o).filter(B=>B.rejectionReason==="maxTrials").length),b=I(()=>r().ksemstamp.k);var $=td(),T=l($),A=l(T),R=v(T,2),D=l(R),C=l(D),W=v(C),se=l(W),O=v(W,2),G=v(D,2),J=l(G),N=v(J),ne=l(N),L=v(N,2),q=v(R,2),M=l(q),x=l(M),P=v(M,2);{var z=B=>{var U=Yc(),Z=l(U);w(ae=>u(Z,`${n(o).length??""}${ae??""}`),[()=>p("ksem.reject.judged")]),k(B,U)},F=B=>{var U=Jc(),Z=ve(U),ae=l(Z),de=v(Z,2),V=l(de);w((Y,ee,re,le)=>{u(ae,`${n(h)??""}${Y??""} · ${n(g)??""}${ee??""} · ${re??""} ${n(_)??""}/${n(b)??""}`),u(V,le)},[()=>p("ksem.reject.accepted"),()=>p("ksem.reject.rejected"),()=>p("ksem.reject.reached"),()=>n(c)?p("ksem.reject.showAll"):p("ksem.reject.replay")]),Me("click",de,()=>{ge(c,!n(c)),ge(d,0)}),k(B,U)};H(P,B=>{t.wizard.status==="running"?B(z):n(o).length>0&&B(F,1)})}var K=v(q,2);{var X=B=>{$n(B,{get total(){return n(o).length},intervalMs:550,get index(){return n(d)},set index(U){ge(d,U,!0)}})};H(K,B=>{n(c)&&B(X)})}var E=v(K,2);Ia(E,{get wizard(){return t.wizard}});var y=v(E,2);{var j=B=>{var U=Xc(),Z=l(U);w(()=>u(Z,`${n(m)??""} sentence(s) ran out of tries and were kept unwatermarked. Every rewrite landed in the same ${n(_)===1?"cluster":`${n(_)} clusters`}, and none of them was in the valid set. This is the method's real constraint: the clusters here are drawn over a broad corpus, so one answer only occupies a corner of the space, and a narrow valid set can sit entirely outside the corner it can reach. Raising γ widens the valid set — at the cost of less evidence per sentence. The paper avoids the problem by clustering `)),k(B,U)};H(y,B=>{n(m)>0&&B(j)})}var Q=v(y,2);{var te=B=>{var U=Zc();Re(U,21,()=>n(f),Oe,(Z,ae)=>{var de=Qc();let V;var Y=l(de),ee=l(Y),re=v(ee),le=l(re),be=v(Y,2),pe=l(be);w((ie,ze,ye,_e,ke,we)=>{V=Ie(de,1,"svelte-1uguwxh",null,V,{acc:n(ae).accepted}),u(ee,`${ie??""} ${n(ae).sentenceIndex??""} · ${ze??""} ${n(ae).attempt??""} · C${n(ae).clusterId??""} · ${ye??""} ${_e??""} · margin ${ke??""} `),Ie(re,1,`badge ${n(ae).accepted?"ok":"bad"}`),u(le,we),u(pe,n(ae).text)},[()=>p("ksem.reject.sentence"),()=>p("ksem.reject.try"),()=>p("ksem.reject.targets"),()=>n(ae).targetClusters.map(ie=>`C${ie}`).join(" "),()=>n(ae).margin.toFixed(3),()=>n(ae).accepted?p("ksem.reject.accept"):n(ae).rejectionReason??"reject"]),k(Z,de)}),k(B,U)},ue=B=>{var U=ed(),Z=l(U);w(ae=>u(Z,ae),[()=>p("ksem.reject.waiting")]),k(B,U)};H(Q,B=>{n(f).length>0?B(te):B(ue,-1)})}w((B,U,Z,ae,de)=>{u(A,B),u(C,`${U??""} `),u(se,Z),u(J,`${ae??""} `),u(ne,n(i).maxTrials),M.disabled=t.wizard.status==="running",u(x,de)},[()=>p("ksem.reject.intro"),()=>p("ksem.reject.margin"),()=>n(i).margin.toFixed(3),()=>p("ksem.reject.maxTrials"),()=>t.wizard.result?p("kirch.regenerate"):p("ksem.reject.generate")]),Ge(O,()=>r().ksemstamp.margin,B=>rt(Te,oe(r).ksemstamp.margin=B,oe(r))),Ge(L,()=>r().ksemstamp.maxTrials,B=>rt(Te,oe(r).ksemstamp.maxTrials=B,oe(r))),Me("click",M,()=>{ge(c,!1),Sa("ksemstamp")}),k(e,$),Be(),s()}ot(["click"]);var nd=S('

          '),ad=S('

          ',1),sd=S(' '),id=S('
        1. '),ld=S('

            ',1),od=S('
            ');function cd(e,t){qe(t,!0);const r=I(()=>t.wizard.result?.detection??null),a=I(()=>n(r)?.unitName==="sentences"?n(r).perUnit??[]:[]);var s=od(),i=l(s);{var o=f=>{var h=nd(),g=l(h);w(_=>u(g,_),[()=>p("ksem.result.none")]),k(f,h)},d=f=>{var h=ad(),g=ve(h),_=l(g),m=v(g,2),b=l(m);w($=>{u(_,$),u(b,t.wizard.result.text)},[()=>p("ksem.result.tooShort")]),k(f,h)},c=f=>{var h=ld(),g=ve(h),_=l(g),m=v(g,2);Re(m,21,()=>n(a),Oe,(T,A)=>{var R=id(),D=l(R),C=l(D),W=v(D,2),se=l(W),O=v(W,2);{var G=J=>{var N=sd(),ne=l(N);w((L,q)=>u(ne,`${L??""} ${q??""}`),[()=>p("ksem.result.margin"),()=>(n(A).score??0).toFixed(3)]),k(J,N)};H(O,J=>{n(A).skipped||J(G)})}w(J=>{Ie(R,1,lr(n(A).skipped?"seed":n(A).green?"valid":"invalid"),"svelte-mw52jh"),Ie(D,1,`badge ${n(A).skipped?"":n(A).green?"ok":"bad"}`),u(C,J),u(se,n(A).label)},[()=>n(A).skipped?p("ksem.result.seed"):n(A).green?p("ksem.result.valid"):p("ksem.result.invalid")]),k(T,R)});var b=v(m,2),$=l(b);w((T,A)=>{u(_,T),u($,A)},[()=>p("ksem.result.intro"),()=>p("ksem.result.tryEdit")]),k(f,h)};H(i,f=>{t.wizard.result?n(a).length===0?f(d,1):f(c,-1):f(o)})}k(e,s),Be()}var Za=S('

            '),dd=S(' '),ud=S('
            log R / p

            ',1),vd=S('

            ');function fd(e,t){qe(t,!0);const r=()=>me(Te,"$algoParams",s),a=()=>me(pt,"$baseline",s),[s,i]=mt(),o=I(()=>r().textseal),d=I(()=>a().distribution),c=I(()=>t.wizard.seed===null?null:ai(String(Rr(t.wizard.seed)))),f=I(()=>{if(!n(d)||!n(c))return[];const N=n(d).prevTokenIds.slice(-n(o).contextWidth);return n(d).candidates.slice(0,14).map(ne=>{const L=Zn(n(c).key1,N,ne.tokenId);return{...ne,r:L,score:Math.log(L)/Math.max(ne.prob,1e-9)}})});var h=vd(),g=l(h),_=l(g),m=v(g,2);{let N=I(()=>t.wizard.seed===null?"":`key₁ = ${n(c)?.key1}`);$a(m,{get seed(){return t.wizard.seed},onSeed:ne=>ya("textseal",ne),get hint(){return n(N)}})}var b=v(m,2),$=l(b),T=l($),A=v(T),R=l(A),D=v($,2),C=v(D,2),W=l(C),se=v(b,2);{var O=N=>{var ne=Za(),L=l(ne);w(q=>u(L,q),[()=>p("seal.r.needBaseline")]),k(N,ne)},G=N=>{var ne=Za(),L=l(ne);w(q=>u(L,q),[()=>p("seal.r.enterSeed")]),k(N,ne)},J=N=>{var ne=ud(),L=ve(ne),q=l(L),M=l(q),x=l(M),P=l(x),z=v(x),F=l(z),K=v(z),X=l(K),E=v(q);Re(E,21,()=>n(f),Oe,(B,U,Z)=>{var ae=dd();Ie(ae,1,"",null,{},{hl:Z===0});var de=l(ae),V=l(de),Y=v(de),ee=l(Y),re=v(Y),le=l(re),be=v(re),pe=l(be);w((ie,ze,ye,_e)=>{u(V,`"${ie??""}"`),u(ee,`${ze??""}%`),u(le,ye),u(pe,_e)},[()=>n(U).text.replace(/\n/g,"\\n"),()=>(n(U).prob*100).toFixed(2),()=>n(U).r.toFixed(5),()=>n(U).score.toFixed(2)]),k(B,ae)});var y=v(L,2),j=l(y),Q=v(y,2),te=l(Q),ue=l(te);w((B,U,Z,ae,de)=>{u(P,B),u(F,U),u(X,Z),u(j,ae),u(ue,de)},[()=>p("seal.r.candidate"),()=>p("seal.r.pModel"),()=>p("seal.r.rValue"),()=>p("seal.r.note"),()=>p("seal.r.next")]),Me("click",te,()=>Sn("textseal",2)),k(N,ne)};H(se,N=>{n(d)?t.wizard.seed===null?N(G,1):N(J,-1):N(O)})}w((N,ne,L,q)=>{u(_,N),u(T,`${ne??""} `),u(R,n(o).contextWidth),u(W,`${L??""} ${n(o).contextWidth??""}${q??""}`)},[()=>p("seal.r.intro"),()=>p("seal.r.contextWidth"),()=>p("seal.r.dependsOn"),()=>p("seal.r.tokens")]),Ge(D,()=>r().textseal.contextWidth,N=>rt(Te,oe(r).textseal.contextWidth=N,oe(r))),k(e,h),Be(),i()}ot(["click"]);var pd=S('

            '),hd=S('

            ',1),md=S('

            ');function _d(e,t){qe(t,!0);const r=()=>me(Te,"$algoParams",i),a=()=>me(pt,"$baseline",i),s=()=>me(Ir,"$biasStepIndex",i),[i,o]=mt(),d=I(()=>r().textseal),c=I(()=>a().distribution),f=I(()=>t.wizard.seed===null?null:ai(String(Rr(t.wizard.seed)))),h=I(()=>a().result?.trace.steps??[]),g=I(()=>Math.min(s(),Math.max(0,n(h).length-1))),_=I(()=>n(h)[n(g)]),m=I(()=>{const M=[];for(let x=Math.max(0,n(g)-n(d).contextWidth);x!n(_)||!n(f)?[]:n(_).topCandidates.map(M=>{const x=Zn(n(f).key1,n(m),M.tokenId),P=Zn(n(f).key2,n(m),M.tokenId);return{tokenId:M.tokenId,text:M.tokenText,prob:M.prob,s1:Math.log(x)/Math.max(M.prob,1e-9),s2:Math.log(P)/Math.max(M.prob,1e-9)}})),$=I(()=>n(b).length?n(b).reduce((M,x)=>x.s1>M.s1?x:M):null),T=I(()=>n(b).length?n(b).reduce((M,x)=>x.s2>M.s2?x:M):null),A=I(()=>n(_)?n(_).topCandidates.find(M=>M.tokenId===n(_).chosenTokenId)??null:null);var R=md(),D=l(R),C=l(D),W=v(D,2),se=l(W),O=l(se),G=v(O),J=l(G),N=v(se,2),ne=v(W,2);{var L=M=>{var x=pd(),P=l(x);w(z=>u(P,z),[()=>p("seal.gumbel.needStage1")]),k(M,x)},q=M=>{var x=hd(),P=ve(x),z=l(P),F=l(z),K=v(z,2);$n(K,{get total(){return n(h).length},get index(){return bs(),s()},set index(He){gn(Ir,He)}});var X=v(P,2),E=l(X),y=l(E),j=l(y),Q=v(y,2),te=l(Q),ue=v(Q,2),B=l(ue),U=v(E,2),Z=l(U),ae=l(Z),de=v(Z,2),V=l(de),Y=v(de,2),ee=l(Y),re=v(U,2),le=l(re),be=l(le),pe=v(le,2),ie=l(pe),ze=v(pe,2),ye=l(ze),_e=v(X,2),ke=l(_e),we=v(_e,2),Ce=l(we),Xe=l(Ce),Fe=v(we,2);Ia(Fe,{get wizard(){return t.wizard}}),w((He,wt,yt,Ee,Ae,Ue,We,Qe,nt,Ve,xe,$e,et,Ne)=>{u(F,`${He??""} ${n(g)??""}`),u(j,wt),u(te,`"${yt??""}"`),u(B,Ee),u(ae,Ae),u(V,`"${Ue??""}"`),u(ee,`${We??""}, p = ${Qe??""}%`),u(be,nt),u(ie,`"${Ve??""}"`),u(ye,`${xe??""}, p = ${$e??""}%`),u(ke,et),Ce.disabled=t.wizard.status==="running",u(Xe,Ne)},[()=>p("seal.gumbel.comparing"),()=>p("seal.gumbel.baselineDrew"),()=>(n(A)?.tokenText??n(_)?.chosenTokenText??"").replace(/\n/g,"\\n"),()=>n(A)?`p = ${(n(A).prob*100).toFixed(1)}% (${p("seal.gumbel.randomDraw")})`:p("seal.gumbel.outsideTopK"),()=>p("seal.gumbel.key1Picks"),()=>n($)?.text.replace(/\n/g,"\\n"),()=>p("seal.gumbel.deterministic"),()=>((n($)?.prob??0)*100).toFixed(1),()=>p("seal.gumbel.key2Used",{n:(n(d).alpha*100).toFixed(0)}),()=>n(T)?.text.replace(/\n/g,"\\n"),()=>p("seal.gumbel.deterministic"),()=>((n(T)?.prob??0)*100).toFixed(1),()=>p("seal.gumbel.note"),()=>t.wizard.result?p("kirch.regenerate"):p("kirch.generate")]),Me("click",Ce,()=>Sa("textseal")),k(M,x)};H(ne,M=>{!n(f)||n(h).length===0?M(L):M(q,-1)})}w((M,x,P)=>{u(C,M),u(O,`${x??""} `),u(J,P)},[()=>p("seal.gumbel.intro"),()=>p("seal.gumbel.alpha"),()=>n(d).alpha.toFixed(2)]),Ge(N,()=>r().textseal.alpha,M=>rt(Te,oe(r).textseal.alpha=M,oe(r))),k(e,R),Be(),o()}ot(["click"]);var gd=S('

            '),bd=S(' '),kd=S('
            '),xd=S("
            ",1),wd=S('
            ',1),yd=S('

            '),Sd=S('

            ',1),Td=S('
            ');function Ed(e,t){qe(t,!0);const r=I(()=>t.wizard.result?.detection??null),a=I(()=>n(r)?.perUnit??[]),s=I(()=>n(r)?.regions??[]),i=I(()=>Math.max(1,...n(a).map(_=>_.score??0)));function o(_){return`rgba(29, 95, 208, ${(.05+.55*Math.min(1,_/Math.min(4,n(i)))).toFixed(2)})`}const d=I(()=>{let _=0,m=0;for(const b of t.wizard.result?.trace.steps??[])b.keyId===2?m++:b.keyId===1&&_++;return{k1:_,k2:m}});var c=Td(),f=l(c);{var h=_=>{var m=gd(),b=l(m);w($=>u(b,$),[()=>p("seal.evidence.none")]),k(_,m)},g=_=>{var m=Sd(),b=ve(m),$=l(b),T=v(b,2);Re(T,21,()=>n(a),Oe,(O,G)=>{var J=bd(),N=l(J);w((ne,L)=>{Er(J,`background: ${ne??""}`),Se(J,"title",L),u(N,n(G).label||"·")},[()=>o(n(G).score??0),()=>`s=${(n(G).score??0).toFixed(2)}${n(G).weight!==void 0&&n(G).weight!==1?` w=${n(G).weight.toFixed(2)}`:""}`]),k(O,J)});var A=v(T,2),R=l(A),D=l(R),C=v(R,2);{var W=O=>{var G=wd(),J=ve(G);Re(J,21,()=>n(s),Oe,(ne,L)=>{var q=kd();w((M,x,P)=>{Er(q,`left: ${M??""}%; width: ${x??""}%`),Se(q,"title",P)},[()=>n(L).startToken/Math.max(1,n(r)?.unitsScored??1)*100,()=>(n(L).endToken-n(L).startToken)/Math.max(1,n(r)?.unitsScored??1)*100,()=>`tokens [${n(L).startToken}, ${n(L).endToken}) p=${n(L).pValue.toExponential(2)}`]),k(ne,q)});var N=v(J,2);Re(N,21,()=>n(s),Oe,(ne,L,q)=>{var M=xd(),x=ve(M);w((P,z,F)=>u(x,`${P??""} ${q+1}: ${z??""} [${n(L).startToken??""}–${n(L).endToken??""}) · p = ${F??""}`),[()=>p("seal.evidence.region"),()=>p("seal.evidence.tokens"),()=>n(L).pValue.toExponential(2)]),k(ne,M)}),k(O,G)},se=O=>{var G=yd(),J=l(G);w(N=>u(J,N),[()=>p("seal.evidence.noRegion")]),k(O,G)};H(C,O=>{n(s).length>0?O(W):O(se,-1)})}w((O,G)=>{u($,`${O??""} key₁ ×${n(d).k1??""}, key₂ ×${n(d).k2??""}.`),u(D,G)},[()=>p("seal.evidence.intro"),()=>p("seal.evidence.localized")]),k(_,m)};H(f,_=>{t.wizard.result?_(g,-1):_(h)})}k(e,c),Be()}var $d=S(' '),es=S('
            '),Id=S('
            ',1),Md=S(''),zd=S(''),Ad=S('
            '),ts=S(" "),Pd=S(' '),Rd=S('
            '),jd=S('
            ',1),Cd=S('

            ');function Nn(e,t){qe(t,!0);const r=()=>me(or,"$editorDetect",a),[a,s]=mt(),i=I(()=>t.wizard.algorithm);let o=Pe(""),d=Pe(null),c=Pe(!1),f=Pe(null);const h=I(()=>n(f)??t.wizard.algorithm);Pt(()=>{const E=t.wizard.result?.text??"";E&&n(d)!==E&&(ge(o,E,!0),ge(d,E,!0),on(n(i),E,n(c),0))});const g=I(()=>r()[n(i)]),_=I(()=>n(g)?.detections??null),m=I(()=>n(o)!==(t.wizard.result?.text??""));function b(E,y){return E?y==="kirchenbauer"?E.kirchenbauer:y==="textseal"?E.textseal:E.ksemstamp:null}const $=I(()=>b(n(_),n(h)));function T(){on(n(i),n(o),n(c))}function A(E){if(E.skipped)return"tok-skip";if(n(h)==="textseal"){const y=E.score??0;return y>2.5?"heat3":y>1.5?"heat2":y>.8?"heat1":""}return E.green===!0?"tok-green":E.green===!1?"tok-red":""}function R(E,y){const j=[];let Q=0;for(const te of(E.perUnit??[]).filter(ue=>ue.end<=y.length))te.start>Q&&j.push({text:y.slice(Q,te.start),cls:"",tip:""}),j.push({text:y.slice(te.start,te.end),cls:A(te),tip:n(h)==="textseal"?`s=${(te.score??0).toFixed(2)}`:te.skipped?"not scored":te.green?"green / valid":"red / invalid"}),Q=Math.max(Q,te.end);return Q["kirchenbauer","ksemstamp","textseal"],Oe,(E,y)=>{const j=I(()=>b(n(_),y));var Q=Md();let te;var ue=l(Q),B=l(ue),U=v(B);{var Z=Y=>{var ee=$d(),re=l(ee);w(le=>u(re,le),[()=>p("edit.thisText")]),k(Y,ee)};H(U,Y=>{y===t.wizard.algorithm&&Y(Z)})}var ae=v(ue,2);{var de=Y=>{var ee=es(),re=l(ee);w(le=>u(re,le),[()=>p("edit.na")]),k(Y,ee)},V=Y=>{var ee=Id(),re=ve(ee),le=l(re),be=v(le),pe=l(be),ie=v(re,2),ze=l(ie),ye=v(ie,2),_e=l(ye);w((ke,we,Ce,Xe,Fe)=>{u(le,`${ke??""} `),u(pe,n(j).statisticName),u(ze,`${we??""} ${Ce??""} · ${Xe??""}`),Ie(ye,1,`badge ${n(j).inconclusive?"warn":n(j).watermarked?"ok":"bad"}`),u(_e,Fe)},[()=>n(j).statistic.toFixed(2),()=>p("edit.threshold"),()=>n(j).threshold.toFixed(1),()=>n(j).pValue!==void 0?`p=${n(j).pValue<1e-6?n(j).pValue.toExponential(1):n(j).pValue.toFixed(4)}`:"",()=>n(j).inconclusive?p("edit.inconclusive"):n(j).watermarked?p("edit.watermarked"):p("edit.notDetected")]),k(Y,ee)};H(ae,Y=>{n(j)?Y(V,-1):Y(de)})}w(()=>{te=Ie(Q,1,"score-card svelte-y0w1db",null,te,{active:n(h)===y,own:y===t.wizard.algorithm}),u(B,`${D[y]??""} `)}),Me("click",Q,()=>ge(f,y,!0)),k(E,Q)});var J=v(G,2),N=l(J);{var ne=E=>{var y=nr();w(j=>u(y,j),[()=>p("edit.rescoring")]),k(E,y)},L=E=>{var y=nr();w(j=>u(y,j),[()=>p("edit.edited")]),k(E,y)},q=E=>{var y=nr();w(j=>u(y,j),[()=>p("edit.unchanged")]),k(E,y)};H(N,E=>{n(g)?.running?E(ne):n(m)?E(L,1):E(q,-1)})}var M=v(N,2);{var x=E=>{var y=zd(),j=l(y),Q=v(j);w(te=>u(Q,` ${te??""}`),[()=>p("edit.entropyWeighted")]),Me("change",j,()=>on(n(i),n(o),n(c),0)),Ql(j,()=>n(c),te=>ge(c,te)),k(E,y)};H(M,E=>{n(h)==="textseal"&&E(x)})}var P=v(J,2);{var z=E=>{var y=Ad(),j=l(y);w(()=>u(j,n(g).error)),k(E,y)};H(P,E=>{n(g)?.error&&E(z)})}var F=v(P,2);{var K=E=>{var y=jd(),j=ve(y);Re(j,21,()=>R(n($),n(o)),Oe,(U,Z)=>{var ae=ir(),de=ve(ae);{var V=ee=>{var re=ts(),le=l(re);w(()=>{Ie(re,1,lr(n(Z).cls),"svelte-y0w1db"),Se(re,"title",n(Z).tip),u(le,n(Z).text)}),k(ee,re)},Y=ee=>{var re=ts(),le=l(re);w(()=>u(le,n(Z).text)),k(ee,re)};H(de,ee=>{n(Z).cls?ee(V):ee(Y,-1)})}k(U,ae)});var Q=v(j,2),te=l(Q),ue=v(Q,2);{var B=U=>{var Z=Rd(),ae=l(Z),de=v(ae);Re(de,17,()=>n($).regions,Oe,(V,Y)=>{var ee=Pd(),re=l(ee);w(le=>u(re,`[${n(Y).startToken??""}–${n(Y).endToken??""}) p=${le??""}`),[()=>n(Y).pValue.toExponential(1)]),k(V,ee)}),w(V=>u(ae,`${V??""} `),[()=>p("edit.regions")]),k(U,Z)};H(ue,U=>{n($).regions&&n($).regions.length>0&&U(B)})}w(()=>u(te,n($).statisticDefinition)),k(E,y)},X=E=>{var y=es(),j=l(y);w(Q=>u(j,Q),[()=>p("edit.needTwo")]),k(E,y)};H(F,E=>{n($)?E(K):n(h)==="ksemstamp"&&E(X,1)})}w(E=>u(se,E),[()=>p("edit.intro")]),Me("input",O,T),Ge(O,()=>n(o),E=>ge(o,E)),k(e,C),Be(),s()}ot(["input","click","change"]);var Fd=S(''),Nd=S(''),Dd=S('

            '),Ld=S('

            ');function Od(e,t){qe(t,!0);const r=()=>me(mn,"$activeMethod",s),a=()=>me(st,"$wizards",s),[s,i]=mt(),o=I(r),d=I(()=>ln[n(o)]),c=I(()=>a()[n(o)]),f=I(()=>ii(n(c))),h=[1,2,3,4],g=["1","2","3","4"];function _(x){return x<=n(f)?"":p(x===2?"wm.lockedSeed":"wm.lockedGenerate")}var m=Ld(),b=l(m),$=l(b);Re($,17,()=>_o,Oe,(x,P)=>{var z=Fd();let F;var K=l(z),X=v(K),E=l(X);w(()=>{F=Ie(z,1,"method svelte-rpzy3c",null,F,{active:n(P)===n(o)}),u(K,`${ln[n(P)].title??""} `),u(E,ln[n(P)].year)}),Me("click",z,()=>mn.set(n(P))),k(x,z)});var T=v($,2),A=l(T),R=v(b,2),D=l(R),C=v(R,2);Re(C,21,()=>h,Oe,(x,P,z)=>{const F=I(()=>n(P)>n(f));var K=Nd();let X;var E=l(K),y=l(E),j=v(E);w(Q=>{X=Ie(K,1,"stage-tab svelte-rpzy3c",null,X,{active:n(c).stage===n(P),locked:n(F)}),K.disabled=n(F),Se(K,"title",Q),u(y,g[z]),u(j,` ${n(d).stages[z]??""}`)},[()=>_(n(P))]),Me("click",K,()=>Sn(n(o),n(P))),k(x,K)});var W=v(C,2),se=l(W);{var O=x=>{var P=Dd(),z=l(P);w(()=>u(z,n(c).error)),k(x,P)};H(se,x=>{n(c).error&&x(O)})}var G=v(se,2);{var J=x=>{var P=ir(),z=ve(P);{var F=y=>{wc(y,{get wizard(){return n(c)}})},K=y=>{jc(y,{get wizard(){return n(c)}})},X=y=>{qc(y,{get wizard(){return n(c)}})},E=y=>{Nn(y,{get wizard(){return n(c)}})};H(z,y=>{n(c).stage===1?y(F):n(c).stage===2?y(K,1):n(c).stage===3?y(X,2):y(E,-1)})}k(x,P)},N=x=>{var P=ir(),z=ve(P);{var F=y=>{Vc(y,{get wizard(){return n(c)}})},K=y=>{rd(y,{get wizard(){return n(c)}})},X=y=>{cd(y,{get wizard(){return n(c)}})},E=y=>{Nn(y,{get wizard(){return n(c)}})};H(z,y=>{n(c).stage===1?y(F):n(c).stage===2?y(K,1):n(c).stage===3?y(X,2):y(E,-1)})}k(x,P)},ne=x=>{fd(x,{get wizard(){return n(c)}})},L=x=>{_d(x,{get wizard(){return n(c)}})},q=x=>{Ed(x,{get wizard(){return n(c)}})},M=x=>{Nn(x,{get wizard(){return n(c)}})};H(G,x=>{n(o)==="kirchenbauer"?x(J):n(o)==="ksemstamp"?x(N,1):n(c).stage===1?x(ne,2):n(c).stage===2?x(L,3):n(c).stage===3?x(q,4):x(M,-1)})}w((x,P)=>{Se(T,"title",x),T.disabled=!n(c).result,u(A,P),u(D,n(d).tagline)},[()=>p("wm.exportTitle"),()=>p("wm.export")]),Me("click",T,()=>$o(n(o))),k(e,m),Be(),i()}ot(["click"]);var qd=S('

            ');function Bd(e,t){qe(t,!1);const r=()=>me(na,"$baselineCollapsed",a),[a,s]=mt();ei();var i=qd(),o=l(i),d=l(o),c=l(d),f=v(d,2),h=l(f),g=v(o,2);Fo(g,{});var _=v(g,2);Lo(_,{});var m=v(_,2);let b;var $=l(m);uc($,{});var T=v($,2);Od(T,{});var A=v(m,2),R=v(l(A),5);w((D,C,W)=>{u(c,D),u(h,C),b=Ie(m,1,"split svelte-1n46o8q",null,b,{"narrow-baseline":r()}),u(R,` · ${W??""}`)},[()=>p("app.title"),()=>p("app.intro"),()=>p("app.footer")]),k(e,i),Be(),s()}Fl(Bd,{target:document.getElementById("app")});