diff --git a/docs/index.js b/docs/index.js index d87bdc9..effab47 100644 --- a/docs/index.js +++ b/docs/index.js @@ -1,2 +1,2 @@ -const t=(t,e=document)=>[...e.querySelectorAll(t)],e=(t,e=document)=>{const s=(new XPathEvaluator).createExpression(t).evaluate(e,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE),o=[];for(let t=0,{snapshotLength:e}=s;t"function"==typeof t,r={get:(t,e)=>s.hasOwnProperty(e)?((t,e,{get:s,value:r})=>s||!o(r)?t.then(t=>t[e]):(...s)=>t.then(t=>t[e](...s)))(t,e,s[e]):((t,e)=>o(e)?e.bind(t):e)(t,t[e])};var i=(t,...e)=>new Proxy(fetch(t,...e).then(e=>e.ok?e:Promise.reject(new Error(`[${e.status}] Unable to fetch ${t}`))),r);const{assign:a}=Object,n="entries",p="readonly",c="readwrite",l={durability:"default",prefix:"IDBMap"},y=({target:{result:t}})=>t;class d extends EventTarget{#t;#e;#s;async#o(t,e){const s=(await this.#t).transaction(n,e,this.#e);return new Promise((e,o)=>a(t(s.objectStore(n)),{onsuccess:e,onerror:o}))}constructor(t,{durability:e=l.durability,prefix:s=l.prefix}=l){super(),this.#s=s,this.#e={durability:e},this.#t=new Promise((e,s)=>{a(indexedDB.open(`${this.#s}/${t}`),{onupgradeneeded({target:{result:t,transaction:s}}){t.objectStoreNames.length||t.createObjectStore(n),s.oncomplete=()=>e(t)},onsuccess(t){e(y(t))},onerror(t){s(t),this.dispatchEvent(t)}})}).then(t=>{const e=this.dispatchEvent.bind(this);for(const s in t)s.startsWith("on")&&(t[s]=e);return t})}dispatchEvent(t){const{type:e,message:s,isTrusted:o}=t;return super.dispatchEvent(o?a(new Event(e),{message:s}):t)}async close(){(await this.#t).close()}get size(){return this.#o(t=>t.count(),p).then(y)}async clear(){await this.#o(t=>t.clear(),c)}async delete(t){await this.#o(e=>e.delete(t),c)}async entries(){const t=await this.keys();return Promise.all(t.map(t=>this.get(t).then(e=>[t,e])))}async forEach(t,e=this){for(const[s,o]of await this.entries())await t.call(e,o,s,this)}async get(t){return await this.#o(e=>e.get(t),p).then(y)}async has(t){return void 0!==await this.#o(e=>e.getKey(t),p).then(y)}async keys(){return await this.#o(t=>t.getAllKeys(),p).then(y)}async set(t,e){return await this.#o(s=>s.put(e,t),c),this}async values(){const t=await this.keys();return Promise.all(t.map(t=>this.get(t)))}get[Symbol.toStringTag](){return this.#s}}class u extends Map{#r;#i;constructor(...t){super(),this.#r=new d(...t),this.#i=this.#r.entries().then(t=>{for(const[e,s]of t)super.set(e,s)})}async close(){await this.#i,await this.#r.close()}async sync(){await this.#i}clear(){return this.#i=this.#i.then(()=>this.#r.clear()),super.clear()}delete(t){return this.#i=this.#i.then(()=>this.#r.delete(t)),super.delete(t)}set(t,e){return this.#i=this.#i.then(()=>this.#r.set(t,e)),super.set(t,e)}}var m=Promise.withResolvers.bind(Promise);const h=new Proxy(new Map,{get:(t,e)=>(t.has(e)||t.set(e,m()),t.get(e))}),g=new Set(["__dict__","constructor","get","has","includes","next","set","then"]),f=new Proxy(Object.freeze({}),{get:(t,e)=>"string"!=typeof e||g.has(e)?void 0:h[e].promise.then(t=>t.sync)});let b=0;const w=b++,k=b++,x=b++,_=b++,v=b++,j=b++,z=b++,A=b++,E=b++,P=b++,S=b++,$=b++,M=b++,R=b++,q=b++;b++;const B=b++,F=b++;const D=globalThis.ImageData||class{},T=new Map(Reflect.ownKeys(Symbol).map(t=>[Symbol[t],`@${String(t)}`])),L=t=>{switch(t[0]){case"@":return Symbol[t.slice(1)];case"#":return Symbol.for(t.slice(1));case"!":return Symbol(t.slice(1));default:return Symbol()}},O=t=>T.get(t)||((t,e)=>void 0===e?"?":void 0===Symbol.keyFor(t)?`!${e}`:`#${e}`)(t,t.description),C=Object.defineProperty,I=Object.assign,W=Array.from,J=Array.isArray,U=ArrayBuffer.isView,H=(t,e)=>[t,e],N=t=>t,K={},G=t=>(e,s=new Map)=>{for(let o=0,r=e.length;o0===t?e:L(e),X=t=>"string"==typeof t?H(0,t):H(16,O(t)),Y=(t,e)=>{for(let s=t.push,o=0,r=e.length;oe in globalThis?e:st(Z(Q(t.constructor),[0])),ot=(t,e)=>[e?t:W(new Uint8Array(t)),t.resizable?t.maxByteLength:0],rt=/\[('|")?(.+?)\1\]/g,it=(t,e)=>t?.[e];var at=(t,e)=>e.replace(rt,".$2").split(".").reduce(it,t),nt=(t,...e)=>e.map(pt,t);function pt(t){return"string"==typeof t?at(this,t):this[t]}const ct=globalThis.Node||class{},{apply:lt,construct:yt,defineProperty:dt,deleteProperty:ut,get:mt,getOwnPropertyDescriptor:ht,getPrototypeOf:gt,has:ft,isExtensible:bt,ownKeys:wt,set:kt,setPrototypeOf:xt}=Reflect;var _t=({reflect:t=N,transform:e=N,remote:s=N,module:o=t=>import(t),buffer:r=!1,timeout:i=-1}=K)=>{const a=(e,o=new Map)=>{if(!J(e))return e;const[r,i]=e;switch(r){case 2:{if(null===i)return globalThis;let t=o.get(e);if(!t){t=i,o.set(e,i);for(const t in i)i[t]=a(i[t],o)}return t}case 4:return o.get(e)||(o.set(e,i),p(i,o));case 8:{let e=f.get(i),o=e?.deref();return o||(e&&T.unregister(e),o=function(...e){s.apply(this,e);for(let t=0,s=e.length;t{switch(typeof t){case"object":{if(null===t)break;if(t===globalThis)return b;const s=e(t);return W&&C.has(s)||s instanceof D?H(0,s):U(s)?H(68,((t,e)=>{const{BYTES_PER_ELEMENT:s,byteOffset:o,buffer:r,length:i}=t;return[st(t),ot(r,e),o,i!==(r.byteLength-o)/s?i:0]})(s,r)):s instanceof ArrayBuffer?H(64,ot(s,r)):H(J(s)?5:3,d(s))}case"function":return H(9,d(e(t)));case"symbol":return H(16,O(t));case"bigint":return H(32,t.toString())}return t},p=G(a),c=G(V),l=G(X),{clear:y,id:d,ref:u,unref:m}=((t=0,e=new Map,s=new Map)=>({clear:()=>{e.clear(),s.clear()},id:o=>{let r=s.get(o);if(void 0===r){for(;e.has(r=t++););e.set(r,o),s.set(o,r)}return r},ref:t=>e.get(t),unref:t=>(s.delete(e.get(t)),e.delete(t))}))(),h=/^(?:[0-9]+|length)$/,g=-1{f.delete(e),t(w,e)});let C,W=!1;return{assign:I,gather:nt,query:at,direct:t=>(W||(W=!0,C=new WeakSet),C.add(t),t),evaluate:(t,...e)=>lt(t,null,e),reflect(t,e,...s){const r=null===e,i=r?globalThis:u(e);switch(t){case P:{const t=V(s[0]),e=r&&"import"===t,a=e?o:mt(i,t),p=n(a);if(!g)return p;let c,l=e,y=i;if(!e&&!(y instanceof ct||J(y)&&"string"==typeof t&&h.test(t)))if(t in i){for(;!(c=ht(y,t))&&(y=gt(y),y););l=!!c&&"value"in c}else l=!0;return[l,p]}case j:{const t=new Map;return n(lt(i,a(s[0],t),p(s[1],t)))}case B:return kt(i,V(s[0]),a(s[1]));case M:return ft(i,V(s[0]));case q:return l(wt(i),f);case z:return n(yt(i,p(s[0])));case S:{const t=ht(i,V(s[0]));if(t)for(const e in t)t[e]=n(t[e]);return t}case A:return dt(i,V(s[0]),a(s[1]));case E:return ut(i,V(s[0]));case $:return n(gt(i));case F:return xt(i,a(s[0]));case k:return void I(i,a(s[0]));case x:{const t=a(s[0]),e=Function(`return(${t}).apply(null,arguments)`);return n(lt(e,null,p(s[1])))}case _:for(let t,e=0,o=(s=c(s[0],f)).length;e{const o=s.get(t),r=!o;return r?(se.setUint32(0,e.length,!0),s.set(t,[oe[0],oe[1],oe[2],oe[3]])):e.push(Yt,o[0],o[1],o[2],o[3]),r},le=(t,e,s)=>{se.setUint32(0,s,!0),t.push(e,oe[0],oe[1],oe[2],oe[3])},ye=(t,e,s)=>{switch(typeof t){case"number":t&&ie(t)?ae(t)&&t<256&&-1(s,o)=>{const r=new e(o,t);de=e.push,ye(s,r,new Map);const i=r.length;return r.sync(!0),i},me="a27fb202",he="="+me,ge="-"+me;var fe=(t=t=>t)=>{const e=new Map;let s=0;return[()=>{let o;do{o=t(s++)}while(e.has(o));const r=m();return e.set(o,r),[o,r.promise]},(t,s,o)=>{const r=e.get(t);e.delete(t),o?r?.reject(o):r?.resolve(s)}]};const be=[],we=new WeakSet,ke=(...t)=>(we.add(t),t);let{SharedArrayBuffer:xe}=globalThis,_e=!0;try{new xe(4,{maxByteLength:8})}catch(t){_e=!1,xe=class extends ArrayBuffer{get growable(){return super.resizable}grow(t){super.resize(t)}}}const{assign:ve,create:je}=Object,ze=`coincident-${_e?crypto.randomUUID():Math.random().toString(36).substring(2)}`,Ae={byteOffset:2*Int32Array.BYTES_PER_ELEMENT},Ee=(t,e,s)=>{const o="then"!==e;return o&&(t[e]=s),o},Pe=t=>{t.stopImmediatePropagation(),t.preventDefault()},Se=(t,e=-1)=>t?.reflected_ffi_timeout??e,{defineProperty:$e}=Object,[Me,Re]=fe();let[qe,Be]=Me(),Fe=()=>Be,{Atomics:De,MessageChannel:Te,Worker:Le}=globalThis;if(_e)Re(qe);else{const t=new Map,e=(t,...e)=>{t.addEventListener(...e)};if("importScripts"in globalThis){e(globalThis,"message",t=>{Pe(t),Re(qe,t.data)},{once:!0});const{wait:s}=De,{parse:o}=JSON,r=e=>{const s=new XMLHttpRequest;try{if(s.timeout=3e3,s.open("POST",`${n}?sabayon`,!1),s.setRequestHeader("Content-Type","application/json"),s.send(`["${a}",${t.get(e)}]`),200===s.status)return s;throw s}catch{return s.abort(),r(e)}},i=(t,e)=>(t.set(o(e.responseText)),"ok");let a,n;De={wait:(e,...o)=>t.has(e)?i(e,r(e)):s(e,...o)},Be=Be.then(t=>{[a,n]=t})}else{const s=[ze,Math.random()].join("-").replace(/\W/g,"-"),o=new BroadcastChannel("dc78209b-186c-4f83-80e9-406becb7d9f3");o.onmessage=async e=>{const[r,i,a]=e.data;if(i===s)for(const[e,[s,i]]of t)if(s===a){await i.promise;let t=e.length;for(;t--&&!e[t];);o.postMessage([r,e.slice(0,t+1)]);break}};const r=e=>{const[s,o,r]=e.data;t.set(o,[s,m()]),$e(e,"data",{value:r})};Te=class extends Te{constructor(){super(),e(this.port1,"message",r)}},Le=class extends Le{constructor(t,e){super(t,e),super.postMessage([s,a])}};const{notify:i}=De;De={notify(e,...s){const o=t.get(e);return o?(o[1].resolve(),0):i(e,...s)}};let a="",n=null;const p=(t,s)=>{let o,r=!0;t.getRegistration(a).then(e=>e??t.register(a,s)).then(function s(i){const{controller:n}=t;if(r=r&&!!n,o=i.installing||i.waiting||i.active,"activated"===o.state){if(r){if(n.scriptURL===a)return Re(qe);i.unregister()}location.reload()}else e(o,"statechange",()=>s(i),{once:!0})})};Fe=(t,e)=>{if(!n){const s=new URL(t,location.href);a=`${s.protocol}//${s.host}${s.pathname}`,p(navigator.serviceWorker,e),n=Be}return n}}}const Oe="InstallTrigger"in globalThis?ze:"",Ce=t=>t,Ie=t=>t===he?"main":t===ge?"worker":t;class We extends Event{#a;constructor(t){super("message"),this.#a=t}get data(){return this.#a}}var Je=t=>{const e=t?.transform,s=Se(t),o=(t?.encoder||ue)(Ae),r=!1!==t?.transfer;return{Worker:class extends Le{constructor(t,i){const a=_e?"":i?.serviceWorker||"",{notify:n}=a?De:Atomics,{port1:p,port2:c}=new(a?Te:MessageChannel),[l,y]=fe(Ce),d=new Map,u=je(null);a&&Fe(a);let m="";super(t,ve({type:"module"},i)),this.proxy=new Proxy(u,{get:(t,s)=>{if("then"===s)return;let o=d.get(s);return o||d.set(s,o=(...t)=>{const o=((t,e)=>{let s=be;return t&&we.has(e.at(-1)||be)&&(s=e.pop(),we.delete(s)),s})(r,t),[i,a]=l();return p.postMessage([i,s,e?t.map(e):t],o),((t,e)=>{if(m){const s=setTimeout(console.warn,3e3,`💀🔒 - is proxy.${Ie(m)}() awaiting proxy.${Ie(e)}() ?`);t=t.then(t=>(clearTimeout(s),t),t=>(clearTimeout(s),Promise.reject(t)))}return t})(a,s)}),o},set:Ee}),Oe&&(_e||a)&&super.addEventListener("message",t=>{const{data:e}=t;e?.ID===Oe&&(Pe(t),p.dispatchEvent(new We(e.data)))}),super.postMessage([Oe,a,Se(i,s)],[c]),p.addEventListener("message",async({data:t})=>{const s=t[0],r=typeof s;if("number"===r)y.apply(null,t);else if(m=t[1],await(async(t,e,s)=>{try{const o=await e[t[1]].apply(null,t[2]);t[1]=s?s(o):o,t[2]=null}catch(e){t[2]=e}})(t,u,e),m="","string"===r)p.postMessage(t);else{const e=t[2]||t[1];s[1]=void 0===e?0:o(e,s.buffer),s[0]=1,n(s,0)}}),p.start()}},native:_e,transfer:ke}};const{url:Ue}=import.meta,He=/import\((['"])([^)]+?\.js)\1\)/g,Ne=(t,e,s)=>`import(${e}${new URL(s,Ue).href}${e})`,Ke=Symbol.for("polyscript.js_modules");let Ge;const{Worker:Ve}=(t=>{const e=t?.import,s=Se(t),o=Je({...t,encoder:t?.encoder||ue});class r extends o.Worker{#n;constructor(t,o){const{proxy:r}=super(t,o),i=_t({...o,buffer:!0,reflect:r[ge],timeout:Se(o,s),remote(t){t instanceof Event&&(t=>{const{currentTarget:e,target:s,type:o}=t,r=jt.get(e||s)?.get(o);if(r)for(const e of r)t[e]()})(t)},module:o?.import||e||(t=>import(new URL(t,location).href))});this.#n=i.terminate,this.ffi={assign:i.assign,direct:i.direct,evaluate:i.evaluate,gather:i.gather,query:i.query},r[he]=i.reflect}terminate(){this.#n(),super.terminate()}}return{...o,Worker:r}})({transfer:!1,transform:t=>(Ge||(Ge=globalThis[Ke]?.get("-T-")))?.(t)??t});const Xe=new WeakMap,Ye=t=>{const e=t||console,s={buffered:Ze,stderr:(e.stderr||console.error).bind(e),stdout:(e.stdout||console.log).bind(e)};return{stderr:(...t)=>s.stderr(...t),stdout:(...t)=>s.stdout(...t),async get(t){const e=await t;return Xe.set(e,s),e}}},Qe=new TextDecoder,Ze=(t,e=10)=>{const s=[];return o=>{if(o instanceof Uint8Array)for(const r of o)r===e?t(Qe.decode(new Uint8Array(s.splice(0)))):s.push(r);else t(o)}},ts=new Map,es=t=>ts.get(t),ss=(t,e)=>{try{return Function("require",e)(es)}catch(e){Xe.get(t).stderr(e)}};var os={type:"dummy",module:()=>"data:text/javascript,",engine:t=>Ye().get(t),registerJSModule(t,e,s){ts.set(e,s)},run:ss,runAsync:ss,runEvent:async(t,e,s)=>{try{await Function("require","e",`return ${e}(e)`)(es,s)}catch(e){Xe.get(t).stderr(e)}},transform:(t,e)=>e,writeFile(){}};const rs={object(...t){return this.string(function(t){for(var e=t[0],s=1,o=arguments.length;s",">":">","'":"'","'":"'",""":'"',""":'"'},ps=t=>ns[t],cs=(t,...e)=>rs[typeof t](t,...e),ls=t=>is.call(t,as,ps),{isArray:ys}=Array,{assign:ds,create:us,defineProperties:ms,defineProperty:hs,entries:gs}=Object,{all:fs,resolve:bs}=new Proxy(Promise,{get:(t,e)=>t[e].bind(t)}),ws=(t,e=location.href)=>new URL(t,e.replace(/^blob:/,"")).href;function ks(t){return t.startsWith(".")?ws(t,this):t}let xs=0;const _s=(t,e)=>({id:t.id||(t.id=`${e}-w${xs++}`),tag:t.tagName}),vs=(t,e,s,o=!1,r=CustomEvent)=>{t.dispatchEvent(new r(`${e}:${s}`,{bubbles:!0,detail:{worker:o}}))},js=(t,e,s,o)=>({type:e,config:s,interpreter:o,io:Xe.get(o),run:(e,...s)=>t.run(o,e,...s),runAsync:(e,...s)=>t.runAsync(o,e,...s),runEvent:(...e)=>t.runEvent(o,...e)}),zs=t=>t.replace(/^(?:\n|\r\n)/,""),As=(t,e,s,o)=>{const r=t[e].bind(t);t[e]="run"===e?(t,e,...i)=>{s&&r(t,s,...i);const a=r(t,zs(e),...i);return o&&r(t,o,...i),a}:async(t,e,...i)=>{s&&await r(t,s,...i);const a=await r(t,zs(e),...i);return o&&await r(t,o,...i),a}},Es=Symbol.for("polyscript.js_modules"),Ps=new Map;hs(globalThis,Es,{value:Ps});const Ss=new Proxy(Ps,{get:(t,e)=>t.get(e),has:(t,e)=>t.has(e),ownKeys:t=>[...t.keys()]}),$s=(t,e)=>!e.startsWith("_"),Ms=(t,e)=>new Proxy(t,{has:$s,get:(t,s)=>t[e][s]}),Rs=(t,e,s,o)=>{if("pyodide"===t)return;const r="polyscript.js_modules";for(const t of Reflect.ownKeys(o))e.registerJSModule(s,`${r}.${t}`,Ms(o,t));e.registerJSModule(s,r,o)},qs=(t,e)=>import(t).then(t=>{Ps.set(e,{...t})}),Bs=t=>new Promise((e,s)=>{document.querySelector(`link[rel="stylesheet"][href="${t}"]`)?e():document.head.append(ds(document.createElement("link"),{rel:"stylesheet",href:t,onload:e,onerror:s}))}),Fs=t=>/\.css$/i.test(new URL(t).pathname),Ds=t=>/^(?:false|0|no)$/i.test(t.getAttribute("async")),Ts=!globalThis.window,Ls=({FS:t,PATH:e,PATH_FS:s},o,r)=>{const i=s.resolve(o),a=e.dirname(i);return t.mkdirTree?t.mkdirTree(a):Cs(t,a),t.writeFile(i,new Uint8Array(r),{canOwn:!0})},Os=t=>{const e=t.split("/");return e.pop(),e.join("/")},Cs=(t,e)=>{const s=[];for(const o of e.split("/"))"."!==o&&".."!==o&&(s.push(o),o&&t.mkdir(s.join("/")))},Is=(t,e)=>{const s=[];for(const t of e.split("/"))switch(t){case"":case".":break;case"..":s.pop();break;default:s.push(t)}return[t.cwd()].concat(s).join("/").replace(/^\/+/,"/")},Ws=t=>{const e=t.map(t=>t.trim().replace(/(^[/]*|[/]*$)/g,"")).filter(t=>""!==t&&"."!==t).join("/");return t[0].startsWith("/")?`/${e}`:e},Js=(t,e)=>i(ws(t,e)).arrayBuffer(),Us=(t,e,s,o)=>fs((t=>{for(const{files:e,to_file:s,from:o=""}of t){if(void 0!==e&&void 0!==s)throw new Error("Cannot use 'to_file' and 'files' parameters together!");if(void 0===e&&void 0===s&&o.endsWith("/"))throw new Error(`Couldn't determine the filename from the path ${o}, please supply 'to_file' parameter.`)}return t.flatMap(({from:t="",to_folder:e=".",to_file:s,files:o})=>{if(ys(o))return o.map(s=>({url:Ws([t,s]),path:Ws([e,s])}));const r=s||t.slice(1+t.lastIndexOf("/"));return[{url:t,path:Ws([e,r])}]})})(s).map(({url:s,path:r})=>Js(s,o).then(s=>t.writeFile(e,r,s)))),Hs=(t,e)=>e.endsWith("/")?`${e}${t.split("/").pop()}`:e,Ns=(t,e)=>t.replace(/\{.+?\}/g,t=>{if(!e.has(t))throw new SyntaxError(`Invalid template: ${t}`);return e.get(t)}),Ks=(t,e,s,o)=>fs((t=>{const e=new Map,s=new Set,o=[];for(const[r,i]of gs(t))if(/^\{.+\}$/.test(r)){if(e.has(r))throw new SyntaxError(`Duplicated template: ${r}`);e.set(r,Ns(i,e))}else{const t=Ns(r,e),a=Hs(t,Ns(i||"./",e));if(s.has(a)&&!a.endsWith("/*"))throw new SyntaxError(`Duplicated destination: ${a}`);s.add(a),o.push({url:t,path:a})}return o})(s).map(({url:s,path:r})=>Js(s,o).then(o=>t.writeFile(e,r,o,s)))),Gs=({main:t,worker:e},s)=>{const o=[];if(e&&Ts)for(let[t,r]of gs(e))t=ws(t,s),o.push(qs(t,r));if(t&&!Ts)for(let[e,r]of gs(t))e=ws(e,s),Fs(e)?Bs(e):o.push(qs(e,r));return fs(o)},Vs=t=>e=>{dispatchEvent(new CustomEvent(`${t}:progress`,{detail:e}))},Xs=(t,e,s)=>(t.set(e,s),s),Ys=t=>{oe[0]=t[to++],oe[1]=t[to++],oe[2]=t[to++],oe[3]=t[to++],oe[4]=t[to++],oe[5]=t[to++],oe[6]=t[to++],oe[7]=t[to++]},Qs=t=>(oe[0]=t[to++],oe[1]=t[to++],oe[2]=t[to++],oe[3]=t[to++],se.getUint32(0,!0)),Zs=(t,e)=>{switch(t[to++]){case $t:return Ys(t),se.getFloat64(0,!0);case Mt:return t[to++];case Nt:{const s=Xs(e,to-1,{});for(let o=0,r=Qs(t);o(to=0,Zs(t,new Map)),stringify:t=>{const e=[];return de=Y,ye(t,e,new Map),e}},so=new WeakMap,oo=async(t,e,s,o,r)=>{o.files&&(e("Loading files"),await Ks(t,s,o.files,r),e("Loaded files")),o.fetch&&(e("Loading fetch"),await Us(t,s,o.fetch,r),e("Loaded fetch")),o.js_modules&&(e("Loading JS modules"),await Gs(o.js_modules,r),e("Loaded JS modules"))},ro=(t,e,s)=>{"polyscript"===e&&(s.lazy_py_modules=async(...e)=>(await so.get(t)(e),e.map(e=>t.pyimport(e))),s.storage=async t=>{const e=new u(t);return await e.sync(),e},s.JSON=eo),t.registerJsModule(e,s)},io=(t,e)=>{if(t.endsWith("/*")){if(/\.(zip|whl|tgz|tar(?:\.gz)?)$/.test(e))return RegExp.$1;throw new Error(`Unsupported archive ${e}`)}return""},ao=(t,e,...s)=>{try{return t.runPython(cs(e),...s)}catch(e){Xe.get(t).stderr(e)}},no=async(t,e,...s)=>{try{return await t.runPythonAsync(cs(e),...s)}catch(e){Xe.get(t).stderr(e)}},po=async(t,e,s)=>{const[o,...r]=e.split(".");let i,a=t.globals.get(o);for(const t of r)[i,a]=[a,a[t]];try{await a.call(i,s)}catch(e){Xe.get(t).stderr(e)}};var co=(new TextEncoder).encode("_F='github:'\n_E='user-agent'\n_D=True\n_C=False\n_B='/'\n_A=None\nfrom uio import StringIO\nimport sys\nclass Response:\n\tdef __init__(A,f):A.raw=f;A.encoding='utf-8';A._cached=_A\n\tdef close(A):\n\t\tif A.raw:A.raw.close();A.raw=_A\n\t\tA._cached=_A\n\t@property\n\tdef content(self):\n\t\tA=self\n\t\tif A._cached is _A:\n\t\t\ttry:A._cached=A.raw.read()\n\t\t\tfinally:A.raw.close();A.raw=_A\n\t\treturn A._cached\n\t@property\n\tdef text(self):return str(self.content,self.encoding)\n\tdef json(A):import ujson;return ujson.loads(A.content)\nHEADERS_TO_IGNORE=_E,\ntry:import js\nexcept Exception as err:raise OSError('This version of urequests can only be used in the browser')\nHEADERS_TO_IGNORE=_E,\ndef request(method,url,data=_A,json=_A,headers={},stream=_A,auth=_A,timeout=_A,parse_headers=_D):\n\tE=timeout;D=method;C=data;from js import XMLHttpRequest as G;A=G.new();A.withCredentials=_C\n\tif auth is not _A:import ubinascii;H,I=auth;A.open(D,url,_C,H,I)\n\telse:A.open(D,url,_C)\n\tfor(F,J)in headers.items():\n\t\tif F.lower()not in HEADERS_TO_IGNORE:A.setRequestHeader(F,J)\n\tif E:A.timeout=int(E*1000)\n\tif json is not _A:assert C is _A;import ujson;C=ujson.dumps(json);A.setRequestHeader('Content-Type','application/json')\n\tA.send(C);B=Response(StringIO(A.responseText));B.status_code=A.status;B.reason=A.statusText;B.headers=A.getAllResponseHeaders();return B\ndef get(url,**A):return request('GET',url,**A)\n_PACKAGE_INDEX=const('https://micropython.org/pi/v2')\n_CHUNK_SIZE=128\ndef _ensure_path_exists(path):\n\timport os;A=path.split(_B)\n\tif not A[0]:A.pop(0);A[0]=_B+A[0]\n\tB=''\n\tfor C in range(len(A)-1):\n\t\tB+=A[C]\n\t\ttry:os.stat(B)\n\t\texcept:os.mkdir(B)\n\t\tB+=_B\ndef _chunk(src,dest):\n\tA=memoryview(bytearray(_CHUNK_SIZE))\n\twhile _D:\n\t\tB=src.readinto(A)\n\t\tif B==0:break\n\t\tdest(A if B==_CHUNK_SIZE else A[:B])\ndef _check_exists(path,short_hash):\n\tA=short_hash;import os\n\ttry:\n\t\timport binascii as C,hashlib as D\n\t\twith open(path,'rb')as E:B=D.sha256();_chunk(E,B.update);F=str(C.hexlify(B.digest())[:len(A)],'utf-8');return F==A\n\texcept:return _C\ndef _rewrite_url(url,branch=_A):\n\tB=branch;A=url\n\tif not B:B='HEAD'\n\tif A.startswith(_F):A=A[7:].split(_B);A='https://raw.githubusercontent.com/'+A[0]+_B+A[1]+_B+B+_B+_B.join(A[2:])\n\treturn A\ndef _download_file(url,dest):\n\tB=dest;A=get(url)\n\ttry:\n\t\tif A.status_code!=200:print('Error',A.status_code,'requesting',url);return _C\n\t\tprint('Copying:',B);_ensure_path_exists(B)\n\t\twith open(B,'wb')as C:_chunk(A.raw,C.write)\n\t\treturn _D\n\tfinally:A.close()\ndef _install_json(package_json_url,index,target,version,mpy):\n\tK='File not found: {} {}';I=version;H=index;G=package_json_url;D=target;E=get(_rewrite_url(G,I))\n\ttry:\n\t\tif E.status_code!=200:print('Package not found:',G);return _C\n\t\tF=E.json()\n\tfinally:E.close()\n\tfor(A,C)in F.get('hashes',()):\n\t\tB=D+_B+A\n\t\tif _check_exists(B,C):print('Exists:',B)\n\t\telse:\n\t\t\tL='{}/file/{}/{}'.format(H,C[:2],C)\n\t\t\tif not _download_file(L,B):print(K.format(A,C));return _C\n\tfor(A,J)in F.get('urls',()):\n\t\tB=D+_B+A\n\t\tif not _download_file(_rewrite_url(J,I),B):print(K.format(A,J));return _C\n\tfor(M,N)in F.get('deps',()):\n\t\tif not _install_package(M,H,D,N,mpy):return _C\n\treturn _D\ndef _install_package(package,index,target,version,mpy):\n\tD=index;C=target;B=version;A=package\n\tif A.startswith('http://')or A.startswith('https://')or A.startswith(_F):\n\t\tif A.endswith('.py')or A.endswith('.mpy'):print('Downloading {} to {}'.format(A,C));return _download_file(_rewrite_url(A,B),C+_B+A.rsplit(_B)[-1])\n\t\telse:\n\t\t\tif not A.endswith('.json'):\n\t\t\t\tif not A.endswith(_B):A+=_B\n\t\t\t\tA+='package.json'\n\t\t\tprint('Installing {} to {}'.format(A,C))\n\telse:\n\t\tif not B:B='latest'\n\t\tprint('Installing {} ({}) from {} to {}'.format(A,B,D,C));E=sys.implementation._mpy&255 if mpy and hasattr(sys.implementation,'_mpy')else'py';A='{}/package/{}/{}/{}.json'.format(D,'py',A,B)\n\treturn _install_json(A,D,C,B,mpy)\ndef install(package,index=_A,target=_A,version=_A,mpy=_D):\n\tB=target;A=index\n\tif not B:\n\t\tfor C in sys.path:\n\t\t\tif C.endswith('/lib'):B=C;break\n\t\telse:print('Unable to find lib dir in sys.path');return\n\tif not A:A=_PACKAGE_INDEX\n\tif _install_package(package,A.rstrip(_B),B,version,mpy):print('Done')\n\telse:print('Package may be partially installed')");const lo=async t=>(await import("./toml-BK2RWy-G.js")).parse(t);async function yo(t,e){return new Promise((s,o)=>{t.syncfs(e,t=>{t?o(t):s()})})}function uo(t){const e=t.FS,s=t.FS.filesystems.MEMFS,o=t.PATH,r={DIR_MODE:16895,FILE_MODE:33279,mount:function(t){if(!t.opts.fileSystemHandle)throw new Error("opts.fileSystemHandle is required");return s.mount.apply(null,arguments)},syncfs:async(t,e,s)=>{try{const o=r.getLocalSet(t),i=await r.getRemoteSet(t),a=e?i:o,n=e?o:i;await r.reconcile(t,a,n),s(null)}catch(t){s(t)}},getLocalSet:t=>{let s=Object.create(null);function r(t){return"."!==t&&".."!==t}function i(t){return e=>o.join2(t,e)}let a=e.readdir(t.mountpoint).filter(r).map(i(t.mountpoint));for(;a.length;){let t=a.pop(),o=e.stat(t);e.isDir(o.mode)&&a.push.apply(a,e.readdir(t).filter(r).map(i(t))),s[t]={timestamp:o.mtime,mode:o.mode}}return{type:"local",entries:s}},getRemoteSet:async t=>{const e=Object.create(null),s=await mo(t.opts.fileSystemHandle);for(const[i,a]of s)"."!==i&&(e[o.join2(t.mountpoint,i)]={timestamp:"file"===a.kind?(await a.getFile()).lastModifiedDate:new Date,mode:"file"===a.kind?r.FILE_MODE:r.DIR_MODE});return{type:"remote",entries:e,handles:s}},loadLocalEntry:t=>{const o=e.lookupPath(t).node,r=e.stat(t);if(e.isDir(r.mode))return{timestamp:r.mtime,mode:r.mode};if(e.isFile(r.mode))return o.contents=s.getFileDataAsTypedArray(o),{timestamp:r.mtime,mode:r.mode,contents:o.contents};throw new Error("node type not supported")},storeLocalEntry:(t,s)=>{if(e.isDir(s.mode))e.mkdirTree(t,s.mode);else{if(!e.isFile(s.mode))throw new Error("node type not supported");e.writeFile(t,s.contents,{canOwn:!0})}e.chmod(t,s.mode),e.utime(t,s.timestamp,s.timestamp)},removeLocalEntry:t=>{var s=e.stat(t);e.isDir(s.mode)?e.rmdir(t):e.isFile(s.mode)&&e.unlink(t)},loadRemoteEntry:async t=>{if("file"===t.kind){const e=await t.getFile();return{contents:new Uint8Array(await e.arrayBuffer()),mode:r.FILE_MODE,timestamp:e.lastModifiedDate}}if("directory"===t.kind)return{mode:r.DIR_MODE,timestamp:new Date};throw new Error("unknown kind: "+t.kind)},storeRemoteEntry:async(t,s,r)=>{const i=t.get(o.dirname(s)),a=e.isFile(r.mode)?await i.getFileHandle(o.basename(s),{create:!0}):await i.getDirectoryHandle(o.basename(s),{create:!0});if("file"===a.kind){const t=await a.createWritable();await t.write(r.contents),await t.close()}t.set(s,a)},removeRemoteEntry:async(t,e)=>{const s=t.get(o.dirname(e));await s.removeEntry(o.basename(e)),t.delete(e)},reconcile:async(t,s,i)=>{let a=0;const n=[];Object.keys(s.entries).forEach(function(t){const o=s.entries[t],r=i.entries[t];(!r||e.isFile(o.mode)&&o.timestamp.getTime()>r.timestamp.getTime())&&(n.push(t),a++)}),n.sort();const p=[];if(Object.keys(i.entries).forEach(function(t){s.entries[t]||(p.push(t),a++)}),p.sort().reverse(),!a)return;const c="remote"===s.type?s.handles:i.handles;for(const e of n){const s=o.normalize(e.replace(t.mountpoint,"/")).substring(1);if("local"===i.type){const t=c.get(s),o=await r.loadRemoteEntry(t);r.storeLocalEntry(e,o)}else{const t=r.loadLocalEntry(e);await r.storeRemoteEntry(c,s,t)}}for(const e of p)if("local"===i.type)r.removeLocalEntry(e);else{const s=o.normalize(e.replace(t.mountpoint,"/")).substring(1);await r.removeRemoteEntry(c,s)}}};return t.FS.filesystems.NATIVEFS_ASYNC=r,async function(t,s){if("FileSystemDirectoryHandle"!==s.constructor.name)throw new TypeError("Expected argument 'fileSystemHandle' to be a FileSystemDirectoryHandle");return function(t){e.mkdirTree?e.mkdirTree(t):Cs(e,t);const{node:s}=e.lookupPath(t,{follow_mount:!1});if(e.isMountpoint(s))throw new Error(`path '${t}' is already a file system mount point`);if(!e.isDir(s.mode))throw new Error(`path '${t}' points to a file not a directory`);for(const e in s.contents)throw new Error(`directory '${t}' is not empty`)}(t),e.mount(e.filesystems.NATIVEFS_ASYNC,{fileSystemHandle:s},t),await yo(e,!0),{syncfs:async()=>await yo(e,!1)}}}const mo=async t=>{const e=[];await async function t(s){for await(const o of s.values())e.push(o),"directory"===o.kind&&await t(o)}(t);const s=new Map;s.set(".",t);for(const o of e){const e=(await t.resolve(o)).join("/");s.set(e,o)}return s},{parse:ho}=JSON,go=(t,e)=>new URL(t,e).href,fo=(t,e,s)=>{if(e in t)throw new Error(`Duplicated path: ${e}`);t[e]=s},bo=(t,e,s)=>{for(const o in e)fo(t,go(o,s),e[o])},wo=(t,e,s,o)=>{const r=e[s];r&&(t[s]??={},bo(t[s],r,o))},ko=async(t,e=t.packages,s=new Set)=>{const o=[];for(const r of e){if(s.has(r))continue;s.add(r);const e=r.endsWith(".toml");if(e||r.endsWith(".json")){const a=await i(r).text(),{name:n,files:p,js_modules:c,packages:l}=e?await lo(a):ho(a);if(s.has(n))throw new Error(`Unable to process ${n} @ ${r}`);s.add(n),l&&o.push(...await ko(t,l,s)),c&&(t.js_modules??={},wo(t.js_modules,c,"main",r),wo(t.js_modules,c,"worker",r)),p&&(t.files??={},bo(t.files,p,r))}else o.push(r)}return o},xo=(t,e)=>{try{t.mkdir(e)}catch(t){}},_o=Vs("mpy");var vo={type:"micropython",module:(t="1.27.0-preview-283")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${t}/micropython.mjs`,async engine({loadMicroPython:t},e,s,o){const{stderr:r,stdout:i,get:a}=Ye({stderr:Ze(console.error),stdout:Ze(console.log)});s=s.replace(/\.m?js$/,".wasm"),_o("Loading MicroPython");const n=await a(t({linebuffer:!1,stderr:r,stdout:i,url:s}));globalThis[Es].set("-T-",this.transform.bind(this,n));const p=jo.bind(this,n,o);return so.set(n,p),e.experimental_remote_packages&&(_o("Loading remote packages"),e.packages=await ko(e),_o("Loaded remote packages")),await oo(this,_o,n,e,o),this.writeFile(n,"./mip.py",co),e.packages&&(_o("Loading packages"),await p(e.packages.map(ks,o)),_o("Loaded packages")),_o("Loaded MicroPython"),n.mountNativeFS||(n.mountNativeFS=uo(n._module)),n},registerJSModule:ro,run:ao,runAsync:no,runEvent:po,transform:(t,e)=>t.PyProxy.toJs(e),writeFile:(t,e,s,o)=>{const{FS:r,_module:{PATH:i,PATH_FS:a}}=t,n={FS:r,PATH:i,PATH_FS:a},p=io(e,o);if(p){const o=e.slice(0,-1);switch("./"!==o&&r.mkdir(o),p){case"whl":case"zip":{const t=new Blob([s],{type:"application/zip"});return import("./zip-CakRHzZu.js").then(async({BlobReader:e,Uint8ArrayWriter:s,ZipReader:a})=>{const n=new a(new e(t));for(const t of await n.getEntries()){const{directory:e,filename:a}=t,n=o+a;if(e)xo(r,n);else{xo(r,i.dirname(n));const e=await t.getData(new s);r.writeFile(n,e,{canOwn:!0})}}n.close()})}case"tgz":case"tar.gz":{const e="./_.tar.gz";return Ls(n,e,s),void t.runPython(`\n import os, gzip, tarfile\n tar = tarfile.TarFile(fileobj=gzip.GzipFile(fileobj=open("${e}", "rb")))\n for f in tar:\n name = f"${o}{f.name}"\n if f.type == tarfile.DIRTYPE:\n if f.name != "./":\n os.mkdir(name.strip("/"))\n else:\n dir = os.path.dirname(name)\n if not os.path.exists(dir):\n os.mkdir(dir)\n source = tar.extractfile(f)\n with open(name, "wb") as dest:\n dest.write(source.read())\n dest.close()\n tar.close()\n os.remove("${e}")\n `)}}}return Ls(n,e,s)}};async function jo(t,e,s){let o;for(const r of s)if(r.endsWith(".whl")){const s=ws(r,e),o=await i(s).arrayBuffer();await this.writeFile(t,"./*",o,s)}else o||(o=t.pyimport("mip")),o.install(r)}const zo={dict_converter:Object.fromEntries},{stringify:Ao}=JSON,{hasOwn:Eo}=Object,{apply:Po}=Reflect,So=Function.prototype,$o=t=>function(...e){return Po(t,this,e)};let Mo,Ro;const qo=t=>{const e=new WeakMap,s=s=>{for(let o,r=0;r`https://cdn.jsdelivr.net/pyodide/v${t}/full/pyodide.mjs`,async engine({loadPyodide:t,version:e},s,o,r){Bo("Loading Pyodide");let{packages:i,index_urls:a}=s;if(i){if(i=i.map(ks,r),!a){Bo("Loading Packages Graph");const{default:t}=await Promise.resolve().then(function(){return Co});if(Bo("Loaded Packages Graph"),Eo(t,e)){const s=i.filter(s=>{if(/^https?:\/\//.test(s))return!1;const[o,...r]=s.split(/[>=<]=/);return!Eo(t[e],o)||r.length>0&&r[0]!==t[e][o]});if(s.length>0)throw new Error(`These packages are not supported in Pyodide ${e}: ${s.join(", ")}`)}}s.experimental_remote_packages&&(Bo("Loading remote packages"),s.packages=i=await ko(s,i),Bo("Loaded remote packages"))}Bo("Loading Storage");const n=o.slice(0,o.lastIndexOf("/")),p=new u(`${n}@${e}`),c={indexURL:n},l="never"!==s.packages_cache&&"0.28.0"!==e;if(await p.sync(),Bo("Loaded Storage"),l||p.clear(),i&&l)if("passthrough"===s.packages_cache)c.packages=i,i=null,p.clear();else{i=i.sort();const t=Ao(i);if(p.has(t)){const s=p.get(t);if(c.packages=i.map(t=>t.split(/[>=<]=/)[0]),e.startsWith("0.27")){const t=new Blob([s],{type:"application/json"});c.lockFileURL=URL.createObjectURL(t)}else c.lockFileContents=s;i=null}}const{stderr:y,stdout:d,get:m}=Ye();Bo("Loading interpreter");const h=await m(t({stderr:y,stdout:d,...c}));Bo("Loaded interpreter"),globalThis[Es].set("-T-",this.transform.bind(this,h)),s.debug&&h.setDebug(!0);const g=Lo.bind(h);return a&&Fo.set(h,a),so.set(h,g),await oo(this,Bo,h,s,r),i&&await g(i,p,l),await p.close(),c.lockFileURL&&URL.revokeObjectURL(c.lockFileURL),Bo("Loaded Pyodide"),"auto"===s.experimental_create_proxy&&(h.runPython(["import js","from pyodide.ffi import to_js","o=js.Object.fromEntries","js.experimental_create_proxy=lambda r:to_js(r,dict_converter=o)"].join(";"),{globals:h.toPy({})}),Ro=globalThis.experimental_create_proxy,delete globalThis.experimental_create_proxy,[Mo]=Reflect.ownKeys(Ro).filter(t=>"symbol"==typeof t&&"Symbol(pyproxy.attrs)"===String(t)),qo(!0)),h},registerJSModule:ro,run:$o(ao),runAsync:$o(no),runEvent:$o(po),transform:(t,e)=>Po(To,t,[e]),writeFile:(t,e,s,o)=>{const r=io(e,o);if(r)return t.unpackArchive(s,r,{extractDir:e.slice(0,-1)});const{FS:i,PATH:a,_module:{PATH_FS:n}}=t;return Ls({FS:i,PATH:a,PATH_FS:n},e,s)}};function To(t){const{ffi:{PyProxy:e}}=this;if(t&&"object"==typeof t){if(t instanceof e)return t.toJs(zo);if(t instanceof Map)return new Map([...t.entries()]);if(ys(t))return t.map(To,this)}return t}async function Lo(t,e,s=!1){const{log:o}=console,r=(t,...e)=>{o(t,...e),console.log=o,Bo(t),console.log=r};console.log=r,await this.loadPackage("micropip");const i=this.pyimport("micropip");if(Fo.has(this)&&i.set_index_urls(Fo.get(this)),await i.install(t,{keep_going:!0}),console.log=o,s&&e instanceof u){const s=i.freeze();e.set(Ao(t),s)}i.destroy()}var Oo={latest:{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},stable:{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.28.3":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.28.2":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.28.1":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.28.0":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.7":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.6":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.5":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.4":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.3":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.2":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.1":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.0":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.29.0":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.50.4.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3","bilby.cython":"0.5.3",biopython:"1.85",bitarray:"3.7.1",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.6.1",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.8.3",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.3",clarabel:"0.11.0",click:"8.3.0",cligj:"0.7.2",clingo:"5.8.0",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"46.0.1","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastapi:"0.116.1",fastcan:"0.4.1",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",highspy:"1.11.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.4",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.4.1",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonpatch:"1.33",jsonpointer:"3.0.0",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.6.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.2",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.11.0",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.4",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.2",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.1.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5","pygame-ce":"2.5.6.dev2",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1","pylimer-tools":"0.3.11",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-calamine":"0.5.3","python-dateutil":"2.9.0.post0","python-flint":"0.8.0","python-magic":"0.4.27","python-sat":"1.8.dev23","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.1.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.6","rpds-py":"0.27.0","ruamel.yaml":"0.18.10",rustworkx:"0.17.1","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",starlette:"0.47.2",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.15.0",tzdata:"2025.2",ujson:"5.11.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",vrplib:"2.0.1",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.9.0",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"}},Co=Object.freeze({__proto__:null,default:Oo});const Io="ruby-wasm-wasi",Wo=Io.replace(/\W+/g,"_");var Jo={type:Io,experimental:!0,module:(t="2.7.2")=>`https://cdn.jsdelivr.net/npm/@ruby/3.2-wasm-wasi@${t}/dist/browser/+esm`,async engine({DefaultRubyVM:t},e,s,o){s=s.replace(/\/browser\/\+esm$/,"/ruby.wasm");const r=await i(s).arrayBuffer(),a=await WebAssembly.compile(r),{vm:n}=await t(a);return e.files&&await Ks(this,n,e.files,o),e.fetch&&await Us(this,n,e.fetch,o),e.js_modules&&await Gs(e.js_modules,o),n},registerJSModule(t,e,s){e=e.replace(/\W+/g,"__");const o=`__module_${Wo}_${e}`;globalThis[o]=s,this.run(t,`require "js";$${e}=JS.global[:${o}]`),delete globalThis[o]},run:(t,e,...s)=>t.eval(cs(e),...s),runAsync:(t,e,...s)=>t.evalAsync(cs(e),...s),async runEvent(t,e,s){if(/^xworker\.(on\w+)$/.test(e)){const{$1:e}=RegExp,o=`__module_${Wo}_event`;globalThis[o]=s,this.run(t,`require "js";$xworker.call("${e}",JS.global[:${o}])`),delete globalThis[o]}else{const o=this.run(t,`method(:${e})`);await o.call(e,t.wrap(s))}},transform:(t,e)=>e,writeFile:()=>{throw new Error(`writeFile is not supported in ${Io}`)}};var Uo={type:"wasmoon",module:(t="1.16.0")=>`https://cdn.jsdelivr.net/npm/wasmoon@${t}/+esm`,async engine({LuaFactory:t,LuaLibraries:e},s,o,r){const{stderr:i,stdout:a,get:n}=Ye(),p=await n((new t).createEngine());return p.global.getTable(e.Base,t=>{p.global.setField(t,"print",a),p.global.setField(t,"printErr",i)}),s.files&&await Ks(this,p,s.files,r),s.fetch&&await Us(this,p,s.fetch,r),s.js_modules&&await Gs(s.js_modules,r),p},registerJSModule:(t,e,s)=>{t.global.set(e,s)},run:(t,e,...s)=>{try{return t.doStringSync(cs(e),...s)}catch(e){Xe.get(t).stderr(e)}},runAsync:async(t,e,...s)=>{try{return await t.doString(cs(e),...s)}catch(e){Xe.get(t).stderr(e)}},runEvent:async(t,e,s)=>{const[o,...r]=e.split(".");let i,a=t.global.get(o);for(const t of r)[i,a]=[a,a[t]];try{await a.call(i,s)}catch(e){Xe.get(t).stderr(e)}},transform:(t,e)=>e,writeFile:({cmodule:{module:{FS:t}}},e,s)=>((t,e,s)=>(Cs(t,Os(e)),e=Is(t,e),t.writeFile(e,new Uint8Array(s),{canOwn:!0})))(t,e,s)};const Ho=new WeakMap,No=new FinalizationRegistry(t=>t()),Ko=async(t,e)=>{const{shelter:s,destroy:o,io:r}=Ho.get(t),{output:i,result:a}=await s.captureR(cs(e));for(const{type:t,data:e}of i)r[t](e);return No.register(a,o),a};var Go={type:"webr",experimental:!0,module:(t="0.5.6")=>`https://cdn.jsdelivr.net/npm/webr@${t}/dist/webr.mjs`,async engine(t,e,s,o){const{get:r}=Ye(),i=new t.WebR;await r(i.init().then(()=>i));const a=await new i.Shelter;return Ho.set(i,{module:t,shelter:a,destroy:a.destroy.bind(a),io:Xe.get(i)}),e.files&&await Ks(this,i,e.files,o),e.fetch&&await Us(this,i,e.fetch,o),e.js_modules&&await Gs(e.js_modules,o),i},registerJSModule(t,e){console.warn(`Experimental interpreter: module ${e} is not supported (yet)`)},run:Ko,runAsync:Ko,async runEvent(t,e,s){await t.evalRVoid(`${e}(event)`,{env:{event:{type:[s.type]}}})},transform:(t,e)=>e,writeFile:()=>{}};const Vo=new Map,Xo=new Map,Yo=[],Qo=[],Zo=new Proxy(new Map,{get(t,e){if(!t.has(e)){const[s,...o]=e.split("@"),r=Vo.get(s),i=/^(?:\.?\.?\/|[a-z0-9-]+:\/\/)/i.test(o)?o.join("@"):r.module(...o);t.set(e,{url:i,module:import(i),engine:r.engine.bind(r)})}const{url:s,module:o,engine:r}=t.get(e);return(t,i)=>o.then(o=>(Xo.set(e,t),r(o,t,s,i)))}}),tr=t=>{for(const e of[].concat(t.type))Vo.set(e,t),Yo.push(`script[type="${e}"]`),Qo.push(`${e}-`)};for(const t of[os,vo,Do,Oo,Jo,Uo,Go])tr(t);const{parse:er}=JSON,sr=(t,e="./config.txt")=>{let s=typeof t;return"string"===s&&/\.(json|toml|txt)$/.test(t)?s=RegExp.$1:t=e,[ws(t),s]},or=(t,e,s={})=>{const[o,r]=sr(t,e);return"json"===r?s=i(o).json():"toml"===r?s=i(o).text().then(lo):"string"===r?s=rr(t):"object"===r&&t?s=t:"txt"===r&&"string"==typeof s&&(s=rr(s)),[s,t=o]},rr=t=>{try{return er(t)}catch(e){return lo(t)}},ir=(t,e,s,o={})=>(e&&([o,e]=or(e,s,o)),bs(o).then(s=>Zo[t](s,e))),ar=(t,e="")=>`${t}@${e}`.replace(/@$/,"");function nr(t=this){return String(t).replace(/^(async\s*)?(\bfunction\b)?(.*?)\(/,(t,e,s,o)=>o&&!s?`${e||""}function ${o}(`:t)}const pr="BeforeRun",cr="AfterRun",lr=[`code${pr}`,`code${pr}Async`,`code${cr}`,`code${cr}Async`],yr=["onWorker","onReady",`on${pr}`,`on${pr}Async`,`on${cr}`,`on${cr}Async`];function dr(t,e){const{run:s,runAsync:o}=Vo.get(this.type);return{...t,run:s.bind(this,e),runAsync:o.bind(this,e)}}const ur=(t,e,s,o,r,i)=>{if(r||i){const a=dr.bind(t,e),n=o?"runAsync":"run",p=t[n];t[n]=o?async function(t,e,...o){r&&await r.call(this,a(t),s);const n=await p.call(this,t,e,...o);return i&&await i.call(this,a(t),s),n}:function(t,e,...o){r&&r.call(this,a(t),s);const n=p.call(this,t,e,...o);return i&&i.call(this,a(t),s),n}}};let mr=class{constructor(t,e={}){const{main:s,worker:o}=e;this.interpreter=t,this.onWorker=s?.onWorker;for(const t of yr.slice(1))this[t]=o?.[t];for(const t of lr)this[t]=o?.[t]}toJSON(){const t={};for(const e of yr.slice(1))this[e]&&(t[e]=nr(this[e]));for(const e of lr)this[e]&&(t[e]=cs(this[e]()));return t}};var hr=(...t)=>function(e,s){if(t.length){const[e,o]=t;(s=ds({},s||{type:e,version:o})).type||(s.type=e)}const[o]=sr(s.config,s.configURL),r=((...t)=>new Ve(URL.createObjectURL(new Blob(["/*@*/"+'const{assign:t}=Object,e="entries",s="readonly",o="readwrite",i={durability:"default",prefix:"IDBMap"},r=({target:{result:t}})=>t;class a extends EventTarget{#t;#e;#s;async#o(s,o){const i=(await this.#t).transaction(e,o,this.#e);return new Promise((o,r)=>t(s(i.objectStore(e)),{onsuccess:o,onerror:r}))}constructor(s,{durability:o=i.durability,prefix:a=i.prefix}=i){super(),this.#s=a,this.#e={durability:o},this.#t=new Promise((o,i)=>{t(indexedDB.open(`${this.#s}/${s}`),{onupgradeneeded({target:{result:t,transaction:s}}){t.objectStoreNames.length||t.createObjectStore(e),s.oncomplete=()=>o(t)},onsuccess(t){o(r(t))},onerror(t){i(t),this.dispatchEvent(t)}})}).then(t=>{const e=this.dispatchEvent.bind(this);for(const s in t)s.startsWith("on")&&(t[s]=e);return t})}dispatchEvent(e){const{type:s,message:o,isTrusted:i}=e;return super.dispatchEvent(i?t(new Event(s),{message:o}):e)}async close(){(await this.#t).close()}get size(){return this.#o(t=>t.count(),s).then(r)}async clear(){await this.#o(t=>t.clear(),o)}async delete(t){await this.#o(e=>e.delete(t),o)}async entries(){const t=await this.keys();return Promise.all(t.map(t=>this.get(t).then(e=>[t,e])))}async forEach(t,e=this){for(const[s,o]of await this.entries())await t.call(e,o,s,this)}async get(t){return await this.#o(e=>e.get(t),s).then(r)}async has(t){return void 0!==await this.#o(e=>e.getKey(t),s).then(r)}async keys(){return await this.#o(t=>t.getAllKeys(),s).then(r)}async set(t,e){return await this.#o(s=>s.put(e,t),o),this}async values(){const t=await this.keys();return Promise.all(t.map(t=>this.get(t)))}get[Symbol.toStringTag](){return this.#s}}class n extends Map{#i;#r;constructor(...t){super(),this.#i=new a(...t),this.#r=this.#i.entries().then(t=>{for(const[e,s]of t)super.set(e,s)})}async close(){await this.#r,await this.#i.close()}async sync(){await this.#r}clear(){return this.#r=this.#r.then(()=>this.#i.clear()),super.clear()}delete(t){return this.#r=this.#r.then(()=>this.#i.delete(t)),super.delete(t)}set(t,e){return this.#r=this.#r.then(()=>this.#i.set(t,e)),super.set(t,e)}}const p="a27fb202",c="="+p,l="-"+p;let y=0;const d=y++,u=y++,m=y++,h=y++,g=y++,f=y++,b=y++,w=y++,k=y++,x=y++,_=y++,v=y++,j=y++,z=y++,A=y++,P=y++,E=y++,S=y++,$=y++,M=y++,R=y++,q=y++,F=y++,B=y++,D=y++,T=y++;const L=globalThis.ImageData||class{},O=new TextDecoder,C=new TextEncoder,I=new Map(Reflect.ownKeys(Symbol).map(t=>[Symbol[t],`@${String(t)}`])),J=t=>{switch(t[0]){case"@":return Symbol[t.slice(1)];case"#":return Symbol.for(t.slice(1));case"!":return Symbol(t.slice(1));default:return Symbol()}},U=t=>I.get(t)||((t,e)=>void 0===e?"?":void 0===Symbol.keyFor(t)?`!${e}`:`#${e}`)(t,t.description),H=Object.defineProperty,W=Object.assign,N=Array.isArray,K=ArrayBuffer.isView,G=(t,e)=>[t,e],V=t=>t,X=[],Y={},Z=function(){},Q=t=>(e,s=new Map)=>{for(let o=0,i=e.length;o0===t?e:J(e),et=t=>"string"==typeof t?G(0,t):G(16,U(t)),st=(t,e)=>{for(let s=t.push,o=0,i=e.length;o(t.set(e,s),s),nt=t=>{rt[0]=t[lt++],rt[1]=t[lt++],rt[2]=t[lt++],rt[3]=t[lt++],rt[4]=t[lt++],rt[5]=t[lt++],rt[6]=t[lt++],rt[7]=t[lt++]},pt=t=>(rt[0]=t[lt++],rt[1]=t[lt++],rt[2]=t[lt++],rt[3]=t[lt++],it.getUint32(0,!0)),ct=(t,e)=>{switch(t[lt++]){case g:return nt(t),it.getFloat64(0,!0);case f:return t[lt++];case R:{const s=at(e,lt-1,{});for(let o=0,i=pt(t);o(lt=0,ct(t,new Map)),dt=({byteOffset:t=0}={})=>(e,s)=>yt(new Uint8Array(s,t,e));let ut=0;const mt=ut++,ht=ut++,gt=ut++,ft=ut++,bt=ut++,wt=ut++,kt=ut++,xt=ut++,_t=ut++,vt=ut++,jt=ut++,zt=ut++,At=ut++,Pt=ut++,Et=ut++;ut++;const St=ut++,$t=ut++,{getPrototypeOf:Mt}=Object,{construct:Rt}=Reflect,{toStringTag:qt}=Symbol,{toString:Ft}=Y,Bt=(t,e=Ft.call(t).slice(8,-1))=>e in globalThis?e:Bt(Mt(t)||Y),Dt=(t,e=t[qt])=>e in globalThis?e:Dt(Rt(Mt(t.constructor),[0])),Tt=(t,e)=>new ArrayBuffer(t,{maxByteLength:e}),Lt=([t,e],s)=>{const o=s?t.byteLength:t.length;if(s){if(e){const s=Tt(o,e);new Uint8Array(s).set(new Uint8Array(t)),t=s}}else{const s=e?Tt(o,e):new ArrayBuffer(o);new Uint8Array(s).set(t),t=s}return t};const Ot=/\\[(\'|")?(.+?)\\1\\]/g,Ct=(t,e)=>t?.[e];var It=t=>{const e=[],s=t=>{const s=e.splice(t);for(;t{e.push(o,i)<3&&setTimeout(s,t,0)})(super.set(o,i),o),i}}},Jt=({reflect:t=V,transform:e=V,released:s=V,buffer:o=!1,timeout:i=-1}=Y)=>{const r=Q(tt),a=Q(et),n=t=>{if(!N(t))return t;const[e,s]=t;if(1&e)return l(e,s);switch(e){case 2:return A;case 0:return s;case 16:return J(s);case 32:return BigInt(s);case 68:return(([t,e,s,o],i)=>{const r=Lt(e,i),a=globalThis[t];return o?new a(r,s,o):new a(r,s)})(s,o);case 64:return Lt(s,o)}},p=(t,s=new Map)=>{switch(typeof t){case"object":{if(null===t)break;if(t===globalThis)return z;if(j in t)return f;let o=s.get(t);if(!o){const i=e(t);if(b||!g.has(i)){if(N(i)){const e=[];o=G(4,e),s.set(t,o);for(let t=0,o=i.length;t{let s=v.get(e),o=s?.deref();return o||(s&&P.unregister(s),o=9===t?new Proxy(Z,new h(t,e)):new Proxy(3===t?Y:X,new m(t,e)),s=new WeakRef(o),v.set(e,s),P.register(o,e,s)),o},y=t=>{switch(typeof t){case"object":if(null===t)break;case"function":return j in t}return!1},d=-1this.apply(t,e,s);case"call":return(e,...s)=>this.apply(t,e,s);default:return super.get(t,e)}}}let g,f,b=!0;const{apply:w}=Reflect,{id:k,ref:x,unref:_}=((t=0,e=new Map,s=new Map)=>({clear:()=>{e.clear(),s.clear()},id:o=>{let i=s.get(o);if(void 0===i){for(;e.has(i=t++););e.set(i,o),s.set(o,i)}return i},ref:t=>e.get(t),unref:t=>(s.delete(e.get(t)),e.delete(t))}))(),v=new Map,j=Symbol("reflected-ffi"),z=G(2,null),A=new Proxy(Y,new m(2,null)),P=new FinalizationRegistry(e=>{v.delete(e),t(mt,e)});return{global:A,isProxy:y,assign(e,...s){const o=y(e),i=W(o?{}:e,...s);return o&&t(ht,f[1],p(i)),e},direct:t=>(b&&(b=!1,g=new WeakSet),g.add(t),t),evaluate:(e,...s)=>n(t(gt,null,function(t=this){return String(t).replace(/^(async\\s*)?(\\bfunction\\b)?(.*?)\\(/,(t,e,s,o)=>o&&!s?`${e||""}function ${o}(`:t)}(e),c(s))),gather(e,...s){const o=y(e),i=o?n:t=>e[t];o&&(s=t(ft,f[1],a(s,v)));for(let t=0;ty(e)?n(t(bt,f[1],s)):((t,e)=>e.replace(Ot,".$2").split(".").reduce(Ct,t))(e,s),reflect:async(t,e,...o)=>{switch(t){case wt:{const[t,s]=o;for(let t=0,e=s.length;tt)=>{const e=new Map;let s=0;return[()=>{let o;do{o=t(s++)}while(e.has(o));const i=Ut();return e.set(o,i),[o,i.promise]},(t,s,o)=>{const i=e.get(t);e.delete(t),o?i?.reject(o):i?.resolve(s)}]};const Wt=[],Nt=new WeakSet,Kt=(...t)=>(Nt.add(t),t);let{SharedArrayBuffer:Gt}=globalThis,Vt=!0;try{new Gt(4,{maxByteLength:8})}catch(t){Vt=!1,Gt=class extends ArrayBuffer{get growable(){return super.resizable}grow(t){super.resize(t)}}}const{create:Xt}=Object,Yt=`coincident-${Vt?crypto.randomUUID():Math.random().toString(36).substring(2)}`,Zt=2*Int32Array.BYTES_PER_ELEMENT,Qt={byteOffset:Zt},te=(t,e,s)=>{const o="then"!==e;return o&&(t[e]=s),o},ee=t=>{t.stopImmediatePropagation(),t.preventDefault()},[se,oe]=Ht();let[ie,re]=se(),ae=()=>re,ne=()=>{},{Atomics:pe,MessagePort:ce,SharedArrayBuffer:le,postMessage:ye}=globalThis;if(Vt)oe(ie);else{le=Gt;const t=new Map,e=(t,...e)=>{t.addEventListener(...e)};if("importScripts"in globalThis){ne=e=>{t.set(e,null)};const s=e=>{const s=e[0],o=y++;return t.set(s,o),[o,s,e]},o=ye;ye=function(t,e){if(l){const i={ID:t.ID,data:s(t.data)};o(i,e)}else re.then(()=>this.postMessage(t,e))},ce=class extends ce{postMessage(t,e){l?super.postMessage(s(t),e):re.then(()=>this.postMessage(t,e))}},e(globalThis,"message",t=>{ee(t),oe(ie,t.data)},{once:!0});const{wait:i}=pe,{parse:r}=JSON,a=e=>{const s=new XMLHttpRequest;try{if(s.timeout=3e3,s.open("POST",`${c}?sabayon`,!1),s.setRequestHeader("Content-Type","application/json"),s.send(`["${p}",${t.get(e)}]`),200===s.status)return s;throw s}catch{return s.abort(),a(e)}},n=(t,e)=>(t.set(r(e.responseText)),"ok");pe={wait:(e,...s)=>t.has(e)?n(e,a(e)):i(e,...s)};let p,c,l=!1,y=Math.random();re=re.then(t=>{[p,c]=t,l=!0})}else{const s=[Yt,Math.random()].join("-").replace(/\\W/g,"-"),o=new BroadcastChannel("dc78209b-186c-4f83-80e9-406becb7d9f3");o.onmessage=async e=>{const[i,r,a]=e.data;if(r===s)for(const[e,[s,r]]of t)if(s===a){await r.promise;let t=e.length;for(;t--&&!e[t];);o.postMessage([i,e.slice(0,t+1)]);break}};const{notify:i}=pe;pe={notify(e,...s){const o=t.get(e);return o?(o[1].resolve(),0):i(e,...s)}};let r="",a=null;const n=(t,s)=>{let o,i=!0;t.getRegistration(r).then(e=>e??t.register(r,s)).then(function s(a){const{controller:n}=t;if(i=i&&!!n,o=a.installing||a.waiting||a.active,"activated"===o.state){if(i){if(n.scriptURL===r)return oe(ie);a.unregister()}location.reload()}else e(o,"statechange",()=>s(a),{once:!0})})};ae=(t,e)=>{if(!a){const s=new URL(t,location.href);r=`${s.protocol}//${s.host}${s.pathname}`,n(navigator.serviceWorker,e),a=re}return a}}}const{setPrototypeOf:de}=Reflect;let{postMessage:ue}=globalThis;const me=Ut(),he=ce.prototype;addEventListener("message",t=>{ee(t);const[e,s,o]=t.data,[i]=t.ports;s&&(de(i,he),e&&(ue=ye)),me.resolve([e,s,o,i])},{once:!0});var ge=async t=>{const[e,s,o,i]=await ae().then(()=>me.promise),r=!!e,a=Vt||!!s,n=t?.transform,p=(t?.decoder||dt)(Qt),c=!1!==t?.transfer;let l,y,d,u;if(a){const e=new(s?le:SharedArrayBuffer)(t?.minByteLength||32767,{maxByteLength:t?.maxByteLength||16777216});l=new Int32Array(e),s?(({wait:u}=pe),ne(l)):(({load:y,pause:d,wait:u}=Atomics),d&&(u=(t,e)=>{do{d()}while(y(t,e)<1)}))}const[m,h]=Ht(String),g=new Map,f=Xt(null),b=new Proxy(f,{get(t,s){if("then"===s)return;let o=g.get(s);return o||g.set(s,o=(...t)=>{const o=((t,e)=>{let s=Wt;return t&&Nt.has(e.at(-1)||Wt)&&(s=e.pop(),Nt.delete(s)),s})(c,t),y=[l,s,n?t.map(n):t];if(a){r?ue({ID:e,data:y},o):i.postMessage(y,o),u(l,0),l[0]=0;const t=l[1]?p(l[1],l.buffer):void 0;if(t instanceof Error)throw t;return t}{const[t,e]=m();return y[0]=t,i.postMessage(y,o),e}}),o},set:te});return i.addEventListener("message",async({data:t})=>{"string"==typeof t[0]?h.apply(null,t):(await(async(t,e,s)=>{try{const o=await e[t[1]].apply(null,t[2]);t[1]=s?s(o):o,t[2]=null}catch(e){t[2]=e}})(t,f,n),i.postMessage(t))}),i.start(),{native:Vt,proxy:b,ffi_timeout:o,sync:a,transfer:Kt}};const fe={object(...t){return this.string(function(t){for(var e=t[0],s=1,o=arguments.length;s{const e=t||console,s={buffered:xe,stderr:(e.stderr||console.error).bind(e),stdout:(e.stdout||console.log).bind(e)};return{stderr:(...t)=>s.stderr(...t),stdout:(...t)=>s.stdout(...t),async get(t){const e=await t;return be.set(e,s),e}}},ke=new TextDecoder,xe=(t,e=10)=>{const s=[];return o=>{if(o instanceof Uint8Array)for(const i of o)i===e?t(ke.decode(new Uint8Array(s.splice(0)))):s.push(i);else t(o)}},_e=(t,...e)=>fe[typeof t](t,...e),{isArray:ve}=Array,{assign:je,create:ze,defineProperty:Ae,entries:Pe}=Object,{all:Ee,resolve:Se}=new Proxy(Promise,{get:(t,e)=>t[e].bind(t)}),$e=(t,e=location.href)=>new URL(t,e.replace(/^blob:/,"")).href;function Me(t){return t.startsWith(".")?$e(t,this):t}const Re=(t,e,s,o=!1,i=CustomEvent)=>{t.dispatchEvent(new i(`${e}:${s}`,{bubbles:!0,detail:{worker:o}}))},qe=t=>Function(`\'use strict\';return (${t})`)(),Fe=t=>t.replace(/^(?:\\n|\\r\\n)/,""),Be=Symbol.for("polyscript.js_modules"),De=new Map;Ae(globalThis,Be,{value:De}),new Proxy(De,{get:(t,e)=>t.get(e),has:(t,e)=>t.has(e),ownKeys:t=>[...t.keys()]});const Te=(t,e)=>!e.startsWith("_"),Le=(t,e)=>new Proxy(t,{has:Te,get:(t,s)=>t[e][s]}),Oe=(t,e)=>import(t).then(t=>{De.set(e,{...t})}),Ce=t=>new Promise((e,s)=>{document.querySelector(`link[rel="stylesheet"][href="${t}"]`)?e():document.head.append(je(document.createElement("link"),{rel:"stylesheet",href:t,onload:e,onerror:s}))}),Ie=t=>/\\.css$/i.test(new URL(t).pathname),Je=(t,e)=>t.has(e),Ue=t=>[...t.keys()];var He=(t,e,s,o)=>{const i=globalThis[Be];if(s)for(let[t,e]of Pe(s)){let s=i.get(e);s&&!ve(s)||(i.set(e,s||(s=[])),s.push(t))}return((t,e,s,o)=>new Proxy(t,{has:Je,ownKeys:Ue,get:(t,i)=>{let r=t.get(i);if(ve(r)){let a=r;r=null;for(let t of a)t=$e(t,o),Ie(t)?s.importCSS(t):(s.importJS(t,i),r=e[Be].get(i));t.set(i,r)}return r}}))(i,t,e,o)};const We=new Map,Ne=t=>We.get(t),Ke=(t,e)=>{try{return Function("require",e)(Ne)}catch(e){be.get(t).stderr(e)}};var Ge={type:"dummy",module:()=>"data:text/javascript,",engine:t=>we().get(t),registerJSModule(t,e,s){We.set(e,s)},run:Ke,runAsync:Ke,runEvent:async(t,e,s)=>{try{await Function("require","e",`return ${e}(e)`)(Ne,s)}catch(e){be.get(t).stderr(e)}},transform:(t,e)=>e,writeFile(){}};const Ve=Object.getOwnPropertyDescriptors(Response.prototype),Xe=t=>"function"==typeof t,Ye={get:(t,e)=>Ve.hasOwnProperty(e)?((t,e,{get:s,value:o})=>s||!Xe(o)?t.then(t=>t[e]):(...s)=>t.then(t=>t[e](...s)))(t,e,Ve[e]):((t,e)=>Xe(e)?e.bind(t):e)(t,t[e])};var Ze=(t,...e)=>new Proxy(fetch(t,...e).then(e=>e.ok?e:Promise.reject(new Error(`[${e.status}] Unable to fetch ${t}`))),Ye);const Qe=!globalThis.window,ts=({FS:t,PATH:e,PATH_FS:s},o,i)=>{const r=s.resolve(o),a=e.dirname(r);return t.mkdirTree?t.mkdirTree(a):ss(t,a),t.writeFile(r,new Uint8Array(i),{canOwn:!0})},es=t=>{const e=t.split("/");return e.pop(),e.join("/")},ss=(t,e)=>{const s=[];for(const o of e.split("/"))"."!==o&&".."!==o&&(s.push(o),o&&t.mkdir(s.join("/")))},os=(t,e)=>{const s=[];for(const t of e.split("/"))switch(t){case"":case".":break;case"..":s.pop();break;default:s.push(t)}return[t.cwd()].concat(s).join("/").replace(/^\\/+/,"/")},is=t=>{const e=t.map(t=>t.trim().replace(/(^[/]*|[/]*$)/g,"")).filter(t=>""!==t&&"."!==t).join("/");return t[0].startsWith("/")?`/${e}`:e},rs=(t,e)=>Ze($e(t,e)).arrayBuffer(),as=(t,e,s,o)=>Ee((t=>{for(const{files:e,to_file:s,from:o=""}of t){if(void 0!==e&&void 0!==s)throw new Error("Cannot use \'to_file\' and \'files\' parameters together!");if(void 0===e&&void 0===s&&o.endsWith("/"))throw new Error(`Couldn\'t determine the filename from the path ${o}, please supply \'to_file\' parameter.`)}return t.flatMap(({from:t="",to_folder:e=".",to_file:s,files:o})=>{if(ve(o))return o.map(s=>({url:is([t,s]),path:is([e,s])}));const i=s||t.slice(1+t.lastIndexOf("/"));return[{url:t,path:is([e,i])}]})})(s).map(({url:s,path:i})=>rs(s,o).then(s=>t.writeFile(e,i,s)))),ns=(t,e)=>e.endsWith("/")?`${e}${t.split("/").pop()}`:e,ps=(t,e)=>t.replace(/\\{.+?\\}/g,t=>{if(!e.has(t))throw new SyntaxError(`Invalid template: ${t}`);return e.get(t)}),cs=(t,e,s,o)=>Ee((t=>{const e=new Map,s=new Set,o=[];for(const[i,r]of Pe(t))if(/^\\{.+\\}$/.test(i)){if(e.has(i))throw new SyntaxError(`Duplicated template: ${i}`);e.set(i,ps(r,e))}else{const t=ps(i,e),a=ns(t,ps(r||"./",e));if(s.has(a)&&!a.endsWith("/*"))throw new SyntaxError(`Duplicated destination: ${a}`);s.add(a),o.push({url:t,path:a})}return o})(s).map(({url:s,path:i})=>rs(s,o).then(o=>t.writeFile(e,i,o,s)))),ls=({main:t,worker:e},s)=>{const o=[];if(e&&Qe)for(let[t,i]of Pe(e))t=$e(t,s),o.push(Oe(t,i));if(t&&!Qe)for(let[e,i]of Pe(t))e=$e(e,s),Ie(e)?Ce(e):o.push(Oe(e,i));return Ee(o)},ys=t=>e=>{dispatchEvent(new CustomEvent(`${t}:progress`,{detail:e}))},{isNaN:ds,isFinite:us,isInteger:ms}=Number,{ownKeys:hs}=Reflect,{is:gs}=Object,fs=(t,e,s)=>{const o=s.get(t),i=!o;return i?(it.setUint32(0,e.length,!0),s.set(t,[rt[0],rt[1],rt[2],rt[3]])):e.push(T,o[0],o[1],o[2],o[3]),i},bs=(t,e,s)=>{it.setUint32(0,s,!0),t.push(e,rt[0],rt[1],rt[2],rt[3])},ws=(t,e,s)=>{switch(typeof t){case"number":t&&us(t)?ms(t)&&t<256&&-1{const e=[];return ks=st,ws(t,e,new Map),e}},_s=new WeakMap,vs=async(t,e,s,o,i)=>{o.files&&(e("Loading files"),await cs(t,s,o.files,i),e("Loaded files")),o.fetch&&(e("Loading fetch"),await as(t,s,o.fetch,i),e("Loaded fetch")),o.js_modules&&(e("Loading JS modules"),await ls(o.js_modules,i),e("Loaded JS modules"))},js=(t,e,s)=>{"polyscript"===e&&(s.lazy_py_modules=async(...e)=>(await _s.get(t)(e),e.map(e=>t.pyimport(e))),s.storage=async t=>{const e=new n(t);return await e.sync(),e},s.JSON=xs),t.registerJsModule(e,s)},zs=(t,e)=>{if(t.endsWith("/*")){if(/\\.(zip|whl|tgz|tar(?:\\.gz)?)$/.test(e))return RegExp.$1;throw new Error(`Unsupported archive ${e}`)}return""},As=(t,e,...s)=>{try{return t.runPython(_e(e),...s)}catch(e){be.get(t).stderr(e)}},Ps=async(t,e,...s)=>{try{return await t.runPythonAsync(_e(e),...s)}catch(e){be.get(t).stderr(e)}},Es=async(t,e,s)=>{const[o,...i]=e.split(".");let r,a=t.globals.get(o);for(const t of i)[r,a]=[a,a[t]];try{await a.call(r,s)}catch(e){be.get(t).stderr(e)}};var Ss=(new TextEncoder).encode("_F=\'github:\'\\n_E=\'user-agent\'\\n_D=True\\n_C=False\\n_B=\'/\'\\n_A=None\\nfrom uio import StringIO\\nimport sys\\nclass Response:\\n\\tdef __init__(A,f):A.raw=f;A.encoding=\'utf-8\';A._cached=_A\\n\\tdef close(A):\\n\\t\\tif A.raw:A.raw.close();A.raw=_A\\n\\t\\tA._cached=_A\\n\\t@property\\n\\tdef content(self):\\n\\t\\tA=self\\n\\t\\tif A._cached is _A:\\n\\t\\t\\ttry:A._cached=A.raw.read()\\n\\t\\t\\tfinally:A.raw.close();A.raw=_A\\n\\t\\treturn A._cached\\n\\t@property\\n\\tdef text(self):return str(self.content,self.encoding)\\n\\tdef json(A):import ujson;return ujson.loads(A.content)\\nHEADERS_TO_IGNORE=_E,\\ntry:import js\\nexcept Exception as err:raise OSError(\'This version of urequests can only be used in the browser\')\\nHEADERS_TO_IGNORE=_E,\\ndef request(method,url,data=_A,json=_A,headers={},stream=_A,auth=_A,timeout=_A,parse_headers=_D):\\n\\tE=timeout;D=method;C=data;from js import XMLHttpRequest as G;A=G.new();A.withCredentials=_C\\n\\tif auth is not _A:import ubinascii;H,I=auth;A.open(D,url,_C,H,I)\\n\\telse:A.open(D,url,_C)\\n\\tfor(F,J)in headers.items():\\n\\t\\tif F.lower()not in HEADERS_TO_IGNORE:A.setRequestHeader(F,J)\\n\\tif E:A.timeout=int(E*1000)\\n\\tif json is not _A:assert C is _A;import ujson;C=ujson.dumps(json);A.setRequestHeader(\'Content-Type\',\'application/json\')\\n\\tA.send(C);B=Response(StringIO(A.responseText));B.status_code=A.status;B.reason=A.statusText;B.headers=A.getAllResponseHeaders();return B\\ndef get(url,**A):return request(\'GET\',url,**A)\\n_PACKAGE_INDEX=const(\'https://micropython.org/pi/v2\')\\n_CHUNK_SIZE=128\\ndef _ensure_path_exists(path):\\n\\timport os;A=path.split(_B)\\n\\tif not A[0]:A.pop(0);A[0]=_B+A[0]\\n\\tB=\'\'\\n\\tfor C in range(len(A)-1):\\n\\t\\tB+=A[C]\\n\\t\\ttry:os.stat(B)\\n\\t\\texcept:os.mkdir(B)\\n\\t\\tB+=_B\\ndef _chunk(src,dest):\\n\\tA=memoryview(bytearray(_CHUNK_SIZE))\\n\\twhile _D:\\n\\t\\tB=src.readinto(A)\\n\\t\\tif B==0:break\\n\\t\\tdest(A if B==_CHUNK_SIZE else A[:B])\\ndef _check_exists(path,short_hash):\\n\\tA=short_hash;import os\\n\\ttry:\\n\\t\\timport binascii as C,hashlib as D\\n\\t\\twith open(path,\'rb\')as E:B=D.sha256();_chunk(E,B.update);F=str(C.hexlify(B.digest())[:len(A)],\'utf-8\');return F==A\\n\\texcept:return _C\\ndef _rewrite_url(url,branch=_A):\\n\\tB=branch;A=url\\n\\tif not B:B=\'HEAD\'\\n\\tif A.startswith(_F):A=A[7:].split(_B);A=\'https://raw.githubusercontent.com/\'+A[0]+_B+A[1]+_B+B+_B+_B.join(A[2:])\\n\\treturn A\\ndef _download_file(url,dest):\\n\\tB=dest;A=get(url)\\n\\ttry:\\n\\t\\tif A.status_code!=200:print(\'Error\',A.status_code,\'requesting\',url);return _C\\n\\t\\tprint(\'Copying:\',B);_ensure_path_exists(B)\\n\\t\\twith open(B,\'wb\')as C:_chunk(A.raw,C.write)\\n\\t\\treturn _D\\n\\tfinally:A.close()\\ndef _install_json(package_json_url,index,target,version,mpy):\\n\\tK=\'File not found: {} {}\';I=version;H=index;G=package_json_url;D=target;E=get(_rewrite_url(G,I))\\n\\ttry:\\n\\t\\tif E.status_code!=200:print(\'Package not found:\',G);return _C\\n\\t\\tF=E.json()\\n\\tfinally:E.close()\\n\\tfor(A,C)in F.get(\'hashes\',()):\\n\\t\\tB=D+_B+A\\n\\t\\tif _check_exists(B,C):print(\'Exists:\',B)\\n\\t\\telse:\\n\\t\\t\\tL=\'{}/file/{}/{}\'.format(H,C[:2],C)\\n\\t\\t\\tif not _download_file(L,B):print(K.format(A,C));return _C\\n\\tfor(A,J)in F.get(\'urls\',()):\\n\\t\\tB=D+_B+A\\n\\t\\tif not _download_file(_rewrite_url(J,I),B):print(K.format(A,J));return _C\\n\\tfor(M,N)in F.get(\'deps\',()):\\n\\t\\tif not _install_package(M,H,D,N,mpy):return _C\\n\\treturn _D\\ndef _install_package(package,index,target,version,mpy):\\n\\tD=index;C=target;B=version;A=package\\n\\tif A.startswith(\'http://\')or A.startswith(\'https://\')or A.startswith(_F):\\n\\t\\tif A.endswith(\'.py\')or A.endswith(\'.mpy\'):print(\'Downloading {} to {}\'.format(A,C));return _download_file(_rewrite_url(A,B),C+_B+A.rsplit(_B)[-1])\\n\\t\\telse:\\n\\t\\t\\tif not A.endswith(\'.json\'):\\n\\t\\t\\t\\tif not A.endswith(_B):A+=_B\\n\\t\\t\\t\\tA+=\'package.json\'\\n\\t\\t\\tprint(\'Installing {} to {}\'.format(A,C))\\n\\telse:\\n\\t\\tif not B:B=\'latest\'\\n\\t\\tprint(\'Installing {} ({}) from {} to {}\'.format(A,B,D,C));E=sys.implementation._mpy&255 if mpy and hasattr(sys.implementation,\'_mpy\')else\'py\';A=\'{}/package/{}/{}/{}.json\'.format(D,\'py\',A,B)\\n\\treturn _install_json(A,D,C,B,mpy)\\ndef install(package,index=_A,target=_A,version=_A,mpy=_D):\\n\\tB=target;A=index\\n\\tif not B:\\n\\t\\tfor C in sys.path:\\n\\t\\t\\tif C.endswith(\'/lib\'):B=C;break\\n\\t\\telse:print(\'Unable to find lib dir in sys.path\');return\\n\\tif not A:A=_PACKAGE_INDEX\\n\\tif _install_package(package,A.rstrip(_B),B,version,mpy):print(\'Done\')\\n\\telse:print(\'Package may be partially installed\')");const $s=async t=>(await import("./toml-BK2RWy-G.js")).parse(t);async function Ms(t,e){return new Promise((s,o)=>{t.syncfs(e,t=>{t?o(t):s()})})}function Rs(t){const e=t.FS,s=t.FS.filesystems.MEMFS,o=t.PATH,i={DIR_MODE:16895,FILE_MODE:33279,mount:function(t){if(!t.opts.fileSystemHandle)throw new Error("opts.fileSystemHandle is required");return s.mount.apply(null,arguments)},syncfs:async(t,e,s)=>{try{const o=i.getLocalSet(t),r=await i.getRemoteSet(t),a=e?r:o,n=e?o:r;await i.reconcile(t,a,n),s(null)}catch(t){s(t)}},getLocalSet:t=>{let s=Object.create(null);function i(t){return"."!==t&&".."!==t}function r(t){return e=>o.join2(t,e)}let a=e.readdir(t.mountpoint).filter(i).map(r(t.mountpoint));for(;a.length;){let t=a.pop(),o=e.stat(t);e.isDir(o.mode)&&a.push.apply(a,e.readdir(t).filter(i).map(r(t))),s[t]={timestamp:o.mtime,mode:o.mode}}return{type:"local",entries:s}},getRemoteSet:async t=>{const e=Object.create(null),s=await qs(t.opts.fileSystemHandle);for(const[r,a]of s)"."!==r&&(e[o.join2(t.mountpoint,r)]={timestamp:"file"===a.kind?(await a.getFile()).lastModifiedDate:new Date,mode:"file"===a.kind?i.FILE_MODE:i.DIR_MODE});return{type:"remote",entries:e,handles:s}},loadLocalEntry:t=>{const o=e.lookupPath(t).node,i=e.stat(t);if(e.isDir(i.mode))return{timestamp:i.mtime,mode:i.mode};if(e.isFile(i.mode))return o.contents=s.getFileDataAsTypedArray(o),{timestamp:i.mtime,mode:i.mode,contents:o.contents};throw new Error("node type not supported")},storeLocalEntry:(t,s)=>{if(e.isDir(s.mode))e.mkdirTree(t,s.mode);else{if(!e.isFile(s.mode))throw new Error("node type not supported");e.writeFile(t,s.contents,{canOwn:!0})}e.chmod(t,s.mode),e.utime(t,s.timestamp,s.timestamp)},removeLocalEntry:t=>{var s=e.stat(t);e.isDir(s.mode)?e.rmdir(t):e.isFile(s.mode)&&e.unlink(t)},loadRemoteEntry:async t=>{if("file"===t.kind){const e=await t.getFile();return{contents:new Uint8Array(await e.arrayBuffer()),mode:i.FILE_MODE,timestamp:e.lastModifiedDate}}if("directory"===t.kind)return{mode:i.DIR_MODE,timestamp:new Date};throw new Error("unknown kind: "+t.kind)},storeRemoteEntry:async(t,s,i)=>{const r=t.get(o.dirname(s)),a=e.isFile(i.mode)?await r.getFileHandle(o.basename(s),{create:!0}):await r.getDirectoryHandle(o.basename(s),{create:!0});if("file"===a.kind){const t=await a.createWritable();await t.write(i.contents),await t.close()}t.set(s,a)},removeRemoteEntry:async(t,e)=>{const s=t.get(o.dirname(e));await s.removeEntry(o.basename(e)),t.delete(e)},reconcile:async(t,s,r)=>{let a=0;const n=[];Object.keys(s.entries).forEach(function(t){const o=s.entries[t],i=r.entries[t];(!i||e.isFile(o.mode)&&o.timestamp.getTime()>i.timestamp.getTime())&&(n.push(t),a++)}),n.sort();const p=[];if(Object.keys(r.entries).forEach(function(t){s.entries[t]||(p.push(t),a++)}),p.sort().reverse(),!a)return;const c="remote"===s.type?s.handles:r.handles;for(const e of n){const s=o.normalize(e.replace(t.mountpoint,"/")).substring(1);if("local"===r.type){const t=c.get(s),o=await i.loadRemoteEntry(t);i.storeLocalEntry(e,o)}else{const t=i.loadLocalEntry(e);await i.storeRemoteEntry(c,s,t)}}for(const e of p)if("local"===r.type)i.removeLocalEntry(e);else{const s=o.normalize(e.replace(t.mountpoint,"/")).substring(1);await i.removeRemoteEntry(c,s)}}};return t.FS.filesystems.NATIVEFS_ASYNC=i,async function(t,s){if("FileSystemDirectoryHandle"!==s.constructor.name)throw new TypeError("Expected argument \'fileSystemHandle\' to be a FileSystemDirectoryHandle");return function(t){e.mkdirTree?e.mkdirTree(t):ss(e,t);const{node:s}=e.lookupPath(t,{follow_mount:!1});if(e.isMountpoint(s))throw new Error(`path \'${t}\' is already a file system mount point`);if(!e.isDir(s.mode))throw new Error(`path \'${t}\' points to a file not a directory`);for(const e in s.contents)throw new Error(`directory \'${t}\' is not empty`)}(t),e.mount(e.filesystems.NATIVEFS_ASYNC,{fileSystemHandle:s},t),await Ms(e,!0),{syncfs:async()=>await Ms(e,!1)}}}const qs=async t=>{const e=[];await async function t(s){for await(const o of s.values())e.push(o),"directory"===o.kind&&await t(o)}(t);const s=new Map;s.set(".",t);for(const o of e){const e=(await t.resolve(o)).join("/");s.set(e,o)}return s},{parse:Fs}=JSON,Bs=(t,e)=>new URL(t,e).href,Ds=(t,e,s)=>{if(e in t)throw new Error(`Duplicated path: ${e}`);t[e]=s},Ts=(t,e,s)=>{for(const o in e)Ds(t,Bs(o,s),e[o])},Ls=(t,e,s,o)=>{const i=e[s];i&&(t[s]??={},Ts(t[s],i,o))},Os=async(t,e=t.packages,s=new Set)=>{const o=[];for(const i of e){if(s.has(i))continue;s.add(i);const e=i.endsWith(".toml");if(e||i.endsWith(".json")){const r=await Ze(i).text(),{name:a,files:n,js_modules:p,packages:c}=e?await $s(r):Fs(r);if(s.has(a))throw new Error(`Unable to process ${a} @ ${i}`);s.add(a),c&&o.push(...await Os(t,c,s)),p&&(t.js_modules??={},Ls(t.js_modules,p,"main",i),Ls(t.js_modules,p,"worker",i)),n&&(t.files??={},Ts(t.files,n,i))}else o.push(i)}return o},Cs=(t,e)=>{try{t.mkdir(e)}catch(t){}},Is=ys("mpy");var Js={type:"micropython",module:(t="1.27.0-preview-283")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${t}/micropython.mjs`,async engine({loadMicroPython:t},e,s,o){const{stderr:i,stdout:r,get:a}=we({stderr:xe(console.error),stdout:xe(console.log)});s=s.replace(/\\.m?js$/,".wasm"),Is("Loading MicroPython");const n=await a(t({linebuffer:!1,stderr:i,stdout:r,url:s}));globalThis[Be].set("-T-",this.transform.bind(this,n));const p=Us.bind(this,n,o);return _s.set(n,p),e.experimental_remote_packages&&(Is("Loading remote packages"),e.packages=await Os(e),Is("Loaded remote packages")),await vs(this,Is,n,e,o),this.writeFile(n,"./mip.py",Ss),e.packages&&(Is("Loading packages"),await p(e.packages.map(Me,o)),Is("Loaded packages")),Is("Loaded MicroPython"),n.mountNativeFS||(n.mountNativeFS=Rs(n._module)),n},registerJSModule:js,run:As,runAsync:Ps,runEvent:Es,transform:(t,e)=>t.PyProxy.toJs(e),writeFile:(t,e,s,o)=>{const{FS:i,_module:{PATH:r,PATH_FS:a}}=t,n={FS:i,PATH:r,PATH_FS:a},p=zs(e,o);if(p){const o=e.slice(0,-1);switch("./"!==o&&i.mkdir(o),p){case"whl":case"zip":{const t=new Blob([s],{type:"application/zip"});return import("./zip-CakRHzZu.js").then(async({BlobReader:e,Uint8ArrayWriter:s,ZipReader:a})=>{const n=new a(new e(t));for(const t of await n.getEntries()){const{directory:e,filename:a}=t,n=o+a;if(e)Cs(i,n);else{Cs(i,r.dirname(n));const e=await t.getData(new s);i.writeFile(n,e,{canOwn:!0})}}n.close()})}case"tgz":case"tar.gz":{const e="./_.tar.gz";return ts(n,e,s),void t.runPython(`\\n import os, gzip, tarfile\\n tar = tarfile.TarFile(fileobj=gzip.GzipFile(fileobj=open("${e}", "rb")))\\n for f in tar:\\n name = f"${o}{f.name}"\\n if f.type == tarfile.DIRTYPE:\\n if f.name != "./":\\n os.mkdir(name.strip("/"))\\n else:\\n dir = os.path.dirname(name)\\n if not os.path.exists(dir):\\n os.mkdir(dir)\\n source = tar.extractfile(f)\\n with open(name, "wb") as dest:\\n dest.write(source.read())\\n dest.close()\\n tar.close()\\n os.remove("${e}")\\n `)}}}return ts(n,e,s)}};async function Us(t,e,s){let o;for(const i of s)if(i.endsWith(".whl")){const s=$e(i,e),o=await Ze(s).arrayBuffer();await this.writeFile(t,"./*",o,s)}else o||(o=t.pyimport("mip")),o.install(i)}const Hs={dict_converter:Object.fromEntries},{stringify:Ws}=JSON,{hasOwn:Ns}=Object,{apply:Ks}=Reflect,Gs=Function.prototype,Vs=t=>function(...e){return Ks(t,this,e)};let Xs,Ys;const Zs=t=>{const e=new WeakMap,s=s=>{for(let o,i=0;i`https://cdn.jsdelivr.net/pyodide/v${t}/full/pyodide.mjs`,async engine({loadPyodide:t,version:e},s,o,i){Qs("Loading Pyodide");let{packages:r,index_urls:a}=s;if(r){if(r=r.map(Me,i),!a){Qs("Loading Packages Graph");const{default:t}=await Promise.resolve().then(function(){return ro});if(Qs("Loaded Packages Graph"),Ns(t,e)){const s=r.filter(s=>{if(/^https?:\\/\\//.test(s))return!1;const[o,...i]=s.split(/[>=<]=/);return!Ns(t[e],o)||i.length>0&&i[0]!==t[e][o]});if(s.length>0)throw new Error(`These packages are not supported in Pyodide ${e}: ${s.join(", ")}`)}}s.experimental_remote_packages&&(Qs("Loading remote packages"),s.packages=r=await Os(s,r),Qs("Loaded remote packages"))}Qs("Loading Storage");const p=o.slice(0,o.lastIndexOf("/")),c=new n(`${p}@${e}`),l={indexURL:p},y="never"!==s.packages_cache&&"0.28.0"!==e;if(await c.sync(),Qs("Loaded Storage"),y||c.clear(),r&&y)if("passthrough"===s.packages_cache)l.packages=r,r=null,c.clear();else{r=r.sort();const t=Ws(r);if(c.has(t)){const s=c.get(t);if(l.packages=r.map(t=>t.split(/[>=<]=/)[0]),e.startsWith("0.27")){const t=new Blob([s],{type:"application/json"});l.lockFileURL=URL.createObjectURL(t)}else l.lockFileContents=s;r=null}}const{stderr:d,stdout:u,get:m}=we();Qs("Loading interpreter");const h=await m(t({stderr:d,stdout:u,...l}));Qs("Loaded interpreter"),globalThis[Be].set("-T-",this.transform.bind(this,h)),s.debug&&h.setDebug(!0);const g=oo.bind(h);return a&&to.set(h,a),_s.set(h,g),await vs(this,Qs,h,s,i),r&&await g(r,c,y),await c.close(),l.lockFileURL&&URL.revokeObjectURL(l.lockFileURL),Qs("Loaded Pyodide"),"auto"===s.experimental_create_proxy&&(h.runPython(["import js","from pyodide.ffi import to_js","o=js.Object.fromEntries","js.experimental_create_proxy=lambda r:to_js(r,dict_converter=o)"].join(";"),{globals:h.toPy({})}),Ys=globalThis.experimental_create_proxy,delete globalThis.experimental_create_proxy,[Xs]=Reflect.ownKeys(Ys).filter(t=>"symbol"==typeof t&&"Symbol(pyproxy.attrs)"===String(t)),Zs(!0)),h},registerJSModule:js,run:Vs(As),runAsync:Vs(Ps),runEvent:Vs(Es),transform:(t,e)=>Ks(so,t,[e]),writeFile:(t,e,s,o)=>{const i=zs(e,o);if(i)return t.unpackArchive(s,i,{extractDir:e.slice(0,-1)});const{FS:r,PATH:a,_module:{PATH_FS:n}}=t;return ts({FS:r,PATH:a,PATH_FS:n},e,s)}};function so(t){const{ffi:{PyProxy:e}}=this;if(t&&"object"==typeof t){if(t instanceof e)return t.toJs(Hs);if(t instanceof Map)return new Map([...t.entries()]);if(ve(t))return t.map(so,this)}return t}async function oo(t,e,s=!1){const{log:o}=console,i=(t,...e)=>{o(t,...e),console.log=o,Qs(t),console.log=i};console.log=i,await this.loadPackage("micropip");const r=this.pyimport("micropip");if(to.has(this)&&r.set_index_urls(to.get(this)),await r.install(t,{keep_going:!0}),console.log=o,s&&e instanceof n){const s=r.freeze();e.set(Ws(t),s)}r.destroy()}var io={latest:{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},stable:{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.28.3":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.28.2":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.28.1":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.28.0":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.7":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.6":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.5":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.4":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.3":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.2":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.1":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.27.0":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.49.1.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3",biopython:"1.85",bitarray:"3.6.0",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.5.0",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.7.14",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.2",clarabel:"0.11.0",click:"8.2.1",cligj:"0.7.2",clingo:"5.7.1",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"45.0.5","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.0",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.3.3",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.5.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.0",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.10.1",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.3",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.1",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.0.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-dateutil":"2.9.0.post0","python-flint":"0.7.1","python-magic":"0.4.27","python-sat":"1.8.dev17","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.0.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.5","rpds-py":"0.23.1","ruamel.yaml":"0.18.10",rustworkx:"0.17.0a3","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.14.1",tzdata:"2025.2",ujson:"5.10.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.1.2",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"},"0.29.0":{affine:"2.4.0",aiohappyeyeballs:"2.6.1",aiohttp:"3.11.13",aiosignal:"1.3.2",altair:"5.5.0","annotated-types":"0.7.0",anyio:"4.9.0",apsw:"3.50.4.0","argon2-cffi":"23.1.0","argon2-cffi-bindings":"21.2.0",asciitree:"0.3.3",astropy:"7.0.1",astropy_iers_data:"0.2025.3.10.0.29.26",asttokens:"3.0.0","async-timeout":"5.0.1",atomicwrites:"1.4.1",attrs:"25.2.0","audioop-lts":"0.2.1",autograd:"1.7.0","awkward-cpp":"47",b2d:"0.7.4",bcrypt:"4.3.0",beautifulsoup4:"4.13.3","bilby.cython":"0.5.3",biopython:"1.85",bitarray:"3.7.1",bitstring:"4.3.1",bleach:"6.2.0",blosc2:"3.5.1",bokeh:"3.6.3","boost-histogram":"1.6.1",brotli:"1.1.0",cachetools:"5.5.2",casadi:"3.7.0","cbor-diag":"1.0.1",certifi:"2025.8.3",cffi:"1.17.1",cffi_example:"0.1",cftime:"1.6.4.post1","charset-normalizer":"3.4.3",clarabel:"0.11.0",click:"8.3.0",cligj:"0.7.2",clingo:"5.8.0",cloudpickle:"3.1.1",cmyt:"2.0.2",cobs:"1.2.1",colorspacious:"1.1.2",contourpy:"1.3.1",coolprop:"6.6.0",coverage:"7.6.12",cramjam:"2.10.0rc1",crc32c:"2.7.1",cryptography:"46.0.1","css-inline":"0.16.0",cssselect:"1.3.0","cvxpy-base":"1.6.3",cycler:"0.12.1",cysignals:"1.12.3",cytoolz:"1.0.1",decorator:"5.2.1",demes:"0.2.3",deprecation:"2.1.0",diskcache:"5.6.3",distlib:"0.3.9",distro:"1.9.0",docutils:"0.21.2",donfig:"0.8.1.post1",ewah_bool_utils:"1.2.2",exceptiongroup:"1.2.2",executing:"2.2.0",fastapi:"0.116.1",fastcan:"0.4.1",fastparquet:"2024.11.0",fiona:"1.9.5",fonttools:"4.56.0",freesasa:"2.2.1",frozenlist:"1.6.0",fsspec:"2025.3.2",future:"1.0.0",galpy:"1.10.2",gmpy2:"2.1.5",gsw:"3.6.19",h11:"0.14.0",h3:"4.2.2",h5py:"3.13.0",highspy:"1.11.0",html5lib:"1.1",httpcore:"1.0.7",httpx:"0.28.1",idna:"3.10",igraph:"0.11.8",imageio:"2.37.0","imgui-bundle":"1.92.4",iminuit:"2.30.1",iniconfig:"2.1.0",inspice:"1.6.4.1",ipython:"9.0.2",jedi:"0.19.2",Jinja2:"3.1.6",jiter:"0.9.0",joblib:"1.4.2",jsonpatch:"1.33",jsonpointer:"3.0.0",jsonschema:"4.23.0",jsonschema_specifications:"2024.10.1",kiwisolver:"1.4.8","lakers-python":"0.6.0",lazy_loader:"0.4","lazy-object-proxy":"1.10.0",libcst:"1.6.0",lightgbm:"4.6.0",logbook:"1.8.0",lxml:"6.0.2",lz4:"4.4.4",MarkupSafe:"3.0.2",matplotlib:"3.8.4","matplotlib-inline":"0.1.7","memory-allocator":"0.1.4",micropip:"0.11.0",mmh3:"5.1.0","more-itertools":"10.6.0",mpmath:"1.3.0",msgpack:"1.1.1",msgspec:"0.19.0",msprime:"1.3.3",multidict:"6.6.4",munch:"4.0.0",mypy:"1.15.0",narwhals:"1.46.0",ndindex:"1.9.2",netcdf4:"1.7.2",networkx:"3.4.2",newick:"1.9.0",nh3:"0.2.21",nlopt:"2.9.1",nltk:"3.9.1",numcodecs:"0.13.1",numpy:"2.2.5",openai:"1.68.2","opencv-python":"4.11.0.86",optlang:"1.8.3",orjson:"3.10.16",packaging:"24.2",pandas:"2.3.2",parso:"0.8.4",patsy:"1.0.1",pcodec:"0.3.3",peewee:"3.17.9","pi-heif":"0.21.0",Pillow:"11.3.0","pillow-heif":"1.1.0",pkgconfig:"1.5.5",platformdirs:"4.3.6",pluggy:"1.5.0",ply:"3.11",pplpy:"0.8.10",primecountpy:"0.1.1",prompt_toolkit:"3.0.50",propcache:"0.3.0",protobuf:"6.31.1","pure-eval":"0.2.3",py:"1.11.0",pyclipper:"1.3.0.post6",pycparser:"2.22",pycryptodome:"3.21.0",pydantic:"2.10.6",pydantic_core:"2.27.2",pyerfa:"2.0.1.5","pygame-ce":"2.5.6.dev2",Pygments:"2.19.1",pyheif:"0.8.0",pyiceberg:"0.9.0",pyinstrument:"5.0.1","pylimer-tools":"0.3.11",PyMuPDF:"1.26.3",pynacl:"1.5.0","pyodide-http":"0.2.2","pyodide-unix-timezones":"1.0.0",pyparsing:"3.2.1",pyrsistent:"0.20.0",pysam:"0.23.0",pyshp:"2.3.1",pytaglib:"3.0.1",pytest:"8.3.5","pytest-asyncio":"0.25.3","pytest-benchmark":"4.0.0",pytest_httpx:"0.30.0","python-calamine":"0.5.3","python-dateutil":"2.9.0.post0","python-flint":"0.8.0","python-magic":"0.4.27","python-sat":"1.8.dev23","python-solvespace":"3.0.8",pytz:"2025.2",pywavelets:"1.8.0",pyxel:"1.9.10",pyxirr:"0.10.6",pyyaml:"6.0.2",rasterio:"1.4.3",rateslib:"2.1.1",rebound:"4.4.7",reboundx:"4.4.1",referencing:"0.36.2",regex:"2024.11.6",requests:"2.32.4",retrying:"1.3.4",rich:"13.9.4",river:"0.22.0",RobotRaconteur:"1.2.6","rpds-py":"0.27.0","ruamel.yaml":"0.18.10",rustworkx:"0.17.1","scikit-image":"0.25.2","scikit-learn":"1.7.0",scipy:"1.14.1",screed:"1.1.3",setuptools:"76.0.0",shapely:"2.0.7",simplejson:"3.20.1",sisl:"0.16.2",six:"1.17.0","smart-open":"7.1.0",sniffio:"1.3.1",sortedcontainers:"2.4.0",soundfile:"0.12.1",soupsieve:"2.6",sourmash:"4.8.14",soxr:"0.5.0.post1",sparseqr:"1.2",sqlalchemy:"2.0.39","stack-data":"0.6.3",starlette:"0.47.2",statsmodels:"0.14.4",strictyaml:"1.7.3",svgwrite:"1.4.3",swiglpk:"5.0.12",sympy:"1.13.3",tblib:"3.0.0",termcolor:"2.5.0",texttable:"1.7.0",texture2ddecoder:"1.0.5",threadpoolctl:"3.5.0",tiktoken:"0.9.0",tomli:"2.2.1","tomli-w":"1.2.0",toolz:"1.0.0",tqdm:"4.67.1",traitlets:"5.14.3",traits:"7.0.2","tree-sitter":"0.23.2","tree-sitter-go":"0.23.3","tree-sitter-java":"0.23.4","tree-sitter-python":"0.23.4",tskit:"0.6.4","typing-extensions":"4.15.0",tzdata:"2025.2",ujson:"5.11.0",uncertainties:"3.2.2",unyt:"3.0.3",urllib3:"2.5.0","vega-datasets":"0.9.0",vrplib:"2.0.1",wcwidth:"0.2.13",webencodings:"0.5.1",wordcloud:"1.9.4",wrapt:"1.17.2",xarray:"2025.9.0",xgboost:"2.1.4",xlrd:"2.0.1",xxhash:"3.5.0",xyzservices:"2025.1.0",yarl:"1.18.3",yt:"4.4.0",zengl:"2.7.1",zfpy:"1.0.1",zstandard:"0.23.0"}},ro=Object.freeze({__proto__:null,default:io});const ao="ruby-wasm-wasi",no=ao.replace(/\\W+/g,"_");var po={type:ao,experimental:!0,module:(t="2.7.2")=>`https://cdn.jsdelivr.net/npm/@ruby/3.2-wasm-wasi@${t}/dist/browser/+esm`,async engine({DefaultRubyVM:t},e,s,o){s=s.replace(/\\/browser\\/\\+esm$/,"/ruby.wasm");const i=await Ze(s).arrayBuffer(),r=await WebAssembly.compile(i),{vm:a}=await t(r);return e.files&&await cs(this,a,e.files,o),e.fetch&&await as(this,a,e.fetch,o),e.js_modules&&await ls(e.js_modules,o),a},registerJSModule(t,e,s){e=e.replace(/\\W+/g,"__");const o=`__module_${no}_${e}`;globalThis[o]=s,this.run(t,`require "js";$${e}=JS.global[:${o}]`),delete globalThis[o]},run:(t,e,...s)=>t.eval(_e(e),...s),runAsync:(t,e,...s)=>t.evalAsync(_e(e),...s),async runEvent(t,e,s){if(/^xworker\\.(on\\w+)$/.test(e)){const{$1:e}=RegExp,o=`__module_${no}_event`;globalThis[o]=s,this.run(t,`require "js";$xworker.call("${e}",JS.global[:${o}])`),delete globalThis[o]}else{const o=this.run(t,`method(:${e})`);await o.call(e,t.wrap(s))}},transform:(t,e)=>e,writeFile:()=>{throw new Error(`writeFile is not supported in ${ao}`)}};var co={type:"wasmoon",module:(t="1.16.0")=>`https://cdn.jsdelivr.net/npm/wasmoon@${t}/+esm`,async engine({LuaFactory:t,LuaLibraries:e},s,o,i){const{stderr:r,stdout:a,get:n}=we(),p=await n((new t).createEngine());return p.global.getTable(e.Base,t=>{p.global.setField(t,"print",a),p.global.setField(t,"printErr",r)}),s.files&&await cs(this,p,s.files,i),s.fetch&&await as(this,p,s.fetch,i),s.js_modules&&await ls(s.js_modules,i),p},registerJSModule:(t,e,s)=>{t.global.set(e,s)},run:(t,e,...s)=>{try{return t.doStringSync(_e(e),...s)}catch(e){be.get(t).stderr(e)}},runAsync:async(t,e,...s)=>{try{return await t.doString(_e(e),...s)}catch(e){be.get(t).stderr(e)}},runEvent:async(t,e,s)=>{const[o,...i]=e.split(".");let r,a=t.global.get(o);for(const t of i)[r,a]=[a,a[t]];try{await a.call(r,s)}catch(e){be.get(t).stderr(e)}},transform:(t,e)=>e,writeFile:({cmodule:{module:{FS:t}}},e,s)=>((t,e,s)=>(ss(t,es(e)),e=os(t,e),t.writeFile(e,new Uint8Array(s),{canOwn:!0})))(t,e,s)};const lo=new WeakMap,yo=new FinalizationRegistry(t=>t()),uo=async(t,e)=>{const{shelter:s,destroy:o,io:i}=lo.get(t),{output:r,result:a}=await s.captureR(_e(e));for(const{type:t,data:e}of r)i[t](e);return yo.register(a,o),a};var mo={type:"webr",experimental:!0,module:(t="0.5.6")=>`https://cdn.jsdelivr.net/npm/webr@${t}/dist/webr.mjs`,async engine(t,e,s,o){const{get:i}=we(),r=new t.WebR;await i(r.init().then(()=>r));const a=await new r.Shelter;return lo.set(r,{module:t,shelter:a,destroy:a.destroy.bind(a),io:be.get(r)}),e.files&&await cs(this,r,e.files,o),e.fetch&&await as(this,r,e.fetch,o),e.js_modules&&await ls(e.js_modules,o),r},registerJSModule(t,e){console.warn(`Experimental interpreter: module ${e} is not supported (yet)`)},run:uo,runAsync:uo,async runEvent(t,e,s){await t.evalRVoid(`${e}(event)`,{env:{event:{type:[s.type]}}})},transform:(t,e)=>e,writeFile:()=>{}};const ho=new Map,go=new Map,fo=new Proxy(new Map,{get(t,e){if(!t.has(e)){const[s,...o]=e.split("@"),i=ho.get(s),r=/^(?:\\.?\\.?\\/|[a-z0-9-]+:\\/\\/)/i.test(o)?o.join("@"):i.module(...o);t.set(e,{url:r,module:import(r),engine:i.engine.bind(i)})}const{url:s,module:o,engine:i}=t.get(e);return(t,r)=>o.then(o=>(go.set(e,t),i(o,t,s,r)))}}),bo=t=>{for(const e of[].concat(t.type))ho.set(e,t)};for(const t of[Ge,Js,eo,io,po,co,mo])bo(t);const{parse:wo}=JSON,ko=(t,e,s={})=>{const[o,i]=((t,e="./config.txt")=>{let s=typeof t;return"string"===s&&/\\.(json|toml|txt)$/.test(t)?s=RegExp.$1:t=e,[$e(t),s]})(t,e);return"json"===i?s=Ze(o).json():"toml"===i?s=Ze(o).text().then($s):"string"===i?s=xo(t):"object"===i&&t?s=t:"txt"===i&&"string"==typeof s&&(s=xo(s)),[s,t=o]},xo=t=>{try{return wo(t)}catch(e){return $s(t)}},_o="BeforeRun",vo="AfterRun",jo=[`code${_o}`,`code${_o}Async`,`code${vo}`,`code${vo}Async`],zo=["onWorker","onReady",`on${_o}`,`on${_o}Async`,`on${vo}`,`on${vo}Async`];function Ao(t,e){const{run:s,runAsync:o}=ho.get(this.type);return{...t,run:s.bind(this,e),runAsync:o.bind(this,e)}}const Po=(t,e,s,o,i,r)=>{if(i||r){const a=Ao.bind(t,e),n=o?"runAsync":"run",p=t[n];t[n]=o?async function(t,e,...o){i&&await i.call(this,a(t),s);const n=await p.call(this,t,e,...o);return r&&await r.call(this,a(t),s),n}:function(t,e,...o){i&&i.call(this,a(t),s);const n=p.call(this,t,e,...o);return r&&r.call(this,a(t),s),n}}};let Eo,So,$o;const Mo=(t,e)=>{addEventListener(t,e||(async e=>{try{await Eo,So(`xworker.on${t}`,e)}catch(t){postMessage(t)}}),!!e&&{once:!0})},{proxy:Ro,sync:qo,native:Fo,window:Bo,isWindowProxy:Do,ffi:To}=await(async t=>{const e=await ge({...t,decoder:t?.decoder||dt}),s=Jt({...t,buffer:!0,reflect:e.proxy[c],timeout:e.ffi_timeout});return e.proxy[l]=s.reflect,{...e,window:s.global,isWindowProxy:s.isProxy,ffi:{assign:s.assign,direct:s.direct,evaluate:s.evaluate,gather:s.gather,query:s.query}}})({transfer:!1,transform:t=>$o?$o(t):t}),Lo={polyfill:qo,sync:Ro,window:Fo||qo?Bo:null,isWindowProxy:Do,onmessage:console.info,onerror:console.error,onmessageerror:console.warn,postMessage:postMessage.bind(self)};Mo("message",({data:{options:t,config:e,configURL:s,code:o,hooks:i}})=>{Eo=(async()=>{try{const{id:r,tag:p,type:c,custom:l,version:y,config:d,async:u}=t,m=((t,e="")=>`${t}@${e}`.replace(/@$/,""))(c,y),h=await((t,e,s,o={})=>(e&&([o,e]=ko(e,s,o)),Se(o).then(s=>fo[t](s,e))))(m,e,s,d),{js_modules:g}=go.get(m),f=g?.main,b=ze(ho.get(c)),w=((t,e,s,o)=>({type:e,config:s,interpreter:o,io:be.get(o),run:(e,...s)=>t.run(o,e,...s),runAsync:(e,...s)=>t.runAsync(o,e,...s),runEvent:(...e)=>t.runEvent(o,...e)}))(b,l||c,d||{},h);let k="run";if(u&&(k+="Async"),i){let t,e,s="",o="";for(const t of jo){const e=i[t];if(e){const i=t.endsWith("Async");(i&&u||!i&&!u)&&(t.startsWith("codeBefore")?s=e:o=e)}}(s||o)&&((t,e,s,o)=>{const i=t[e].bind(t);t[e]="run"===e?(t,e,...r)=>{s&&i(t,s,...r);const a=i(t,Fe(e),...r);return o&&i(t,o,...r),a}:async(t,e,...r)=>{s&&await i(t,s,...r);const a=await i(t,Fe(e),...r);return o&&await i(t,o,...r),a}})(b,k,s,o);for(const s of zo.slice(2)){const o=i[s];if(o){const i=s.endsWith("Async");if(i&&u||!i&&!u){const i=qe(o);s.startsWith("onBefore")?t=i:e=i}}}Po(b,w,Lo,u,t,e)}let x,_,v,j=null,z="";(Fo||qo)&&(({CustomEvent:x,document:_}=Bo),j=r&&_.getElementById(r)||null,v=t=>Re(j,l||c,t,!0,x));const A=He(Bo,Ro,f,e);if(((t,e,s,o)=>{if("pyodide"===t)return;const i="polyscript.js_modules";for(const t of Reflect.ownKeys(o))e.registerJSModule(s,`${i}.${t}`,Le(o,t));e.registerJSModule(s,i,o)})(c,b,h,A),b.registerJSModule(h,"polyscript",{IDBMap:a,IDBMapSync:n,xworker:Lo,currentScript:j,config:w.config,js_modules:A,ffi:To,get target(){return!z&&j&&("SCRIPT"===p?j.after(je(Bo.document.createElement(`script-${l||c}`),{id:z=`${r}-target`})):(z=r,j.replaceChildren(),j.style.display="block")),z}}),So=b.runEvent.bind(b,h),$o=b.transform.bind(b,h),j&&v("ready"),i?.onReady&&qe(i?.onReady).call(b,Ao.call(b,w,h),Lo),await b[k](h,o),["micropython","pyodide"].includes(b.type)){const t="polyscript",e=`__${t}_workers__`,s="__export__";h.runPython([`import js as ${e}`,`${e}.${e} = "${s}" in locals() and ${s} or []`,`del ${e}`].join("\\n"));const o=[...globalThis[e]];delete globalThis[e],o.length&&h.runPython([`from ${t} import xworker as ${e}`,...o.map(t=>`${e}.sync.${t} = ${t}`),`del ${e}`].join("\\n"))}return j&&v("done"),postMessage("polyscript:done"),h}catch(t){postMessage(t)}})(),Mo("error"),Mo("message"),Mo("messageerror"),(Fo||qo)&&addEventListener("py:progress",({type:t,detail:e})=>{Bo.dispatchEvent(new Bo.CustomEvent(t,{detail:e}))})});\n'.replace(He,Ne)],{type:"text/javascript"})),...t))({serviceWorker:s?.serviceWorker||s?.service_worker,reflected_ffi_timeout:globalThis.reflected_ffi_timeout??-1}),{postMessage:a}=r,n=this instanceof mr,p=ds(r.proxy,{importJS:qs,importCSS:Bs}),c=m();let l=i(e).text().then(t=>{const e=n?this.toJSON():void 0;a.call(r,{options:s,config:o,code:t,hooks:e})}).then(()=>{l={then:t=>t()}});return ms(r,{sync:{value:p},ready:{value:c.promise},postMessage:{value:(t,...e)=>l.then(()=>a.call(r,t,...e))},onerror:{writable:!0,configurable:!0,value:console.error}}),r.addEventListener("message",t=>{const{data:e}=t,s=e instanceof Error;(s||"polyscript:done"===e)&&(t.stopImmediatePropagation(),s?(c.reject(e),r.onerror(us(t,{type:{value:"error"},error:{value:e}}))):c.resolve(r))}),n&&this.onWorker?.(this.interpreter,r),r};const gr="Invalid content",fr="Invalid worker attribute",br="Invalid worker attribute";var wr=t=>{const{src:e,worker:s}=t.attributes;if(s){let{value:o}=s;if(o)throw new SyntaxError(br);if(o=e?.value,!o){if(e)throw new SyntaxError(fr);if(t.childElementCount){const{innerHTML:e,localName:s,type:r}=t,i=r||s.replace(/-script$/,"");o=ls(e),console.warn(`Deprecated: use -