From ca18ee8cc76419d7f4b28b1148cba14d5acc533a Mon Sep 17 00:00:00 2001 From: Mikhail Mitrofanov Date: Tue, 15 Sep 2026 10:41:24 +0300 Subject: [PATCH] displaing words --- dist/assets/db-worker-AHwpujSZ.js | 3 + dist/assets/index-17GvxYKC.js | 45 ----- dist/assets/index-BdLQfp0Z.js | 60 ++++++ ...{index-DhXfM6jc.css => index-CbQBYl48.css} | 2 +- dist/assets/sqlite3-DBpDb1lf.wasm | Bin 0 -> 856447 bytes .../sqlite3-opfs-async-proxy-B_ImRJXp.js | 1 + ...lite3-worker1-bundler-friendly-CqPDHTTx.js | 3 + dist/index.html | 4 +- src/db-types.ts | 153 +++++++++++++-- src/db-worker.ts | 10 +- src/home-page.ts | 184 +++++++++++++++++- src/main.ts | 4 - src/sqlite-api.ts | 12 +- src/style.css | 149 ++++++++++++++ 14 files changed, 540 insertions(+), 90 deletions(-) create mode 100644 dist/assets/db-worker-AHwpujSZ.js delete mode 100644 dist/assets/index-17GvxYKC.js create mode 100644 dist/assets/index-BdLQfp0Z.js rename dist/assets/{index-DhXfM6jc.css => index-CbQBYl48.css} (65%) create mode 100644 dist/assets/sqlite3-DBpDb1lf.wasm create mode 100644 dist/assets/sqlite3-opfs-async-proxy-B_ImRJXp.js create mode 100644 dist/assets/sqlite3-worker1-bundler-friendly-CqPDHTTx.js diff --git a/dist/assets/db-worker-AHwpujSZ.js b/dist/assets/db-worker-AHwpujSZ.js new file mode 100644 index 0000000..650d626 --- /dev/null +++ b/dist/assets/db-worker-AHwpujSZ.js @@ -0,0 +1,3 @@ +var ft=(()=>{var qe=import.meta.url;return function(oe={}){var fe,i=oe,ye,be,Oe=new Promise((e,t)=>{ye=e,be=t}),Xe=typeof window=="object",Ce=typeof importScripts=="function";typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";const Pe=globalThis.sqlite3InitModuleState||Object.assign(Object.create(null),{debugModule:()=>{}});delete globalThis.sqlite3InitModuleState,Pe.debugModule("globalThis.location =",globalThis.location);var He=Object.assign({},i),re="./this.program",me="";function Ie(e){return i.locateFile?i.locateFile(e,me):me+e}var De,je;(Xe||Ce)&&(Ce?me=self.location.href:typeof document<"u"&&document.currentScript&&(me=document.currentScript.src),qe&&(me=qe),me.startsWith("blob:")?me="":me=me.substr(0,me.replace(/[?#].*/,"").lastIndexOf("/")+1),Ce&&(je=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),De=e=>fetch(e,{credentials:"same-origin"}).then(t=>t.ok?t.arrayBuffer():Promise.reject(new Error(t.status+" : "+t.url))));var Ve=i.print||console.log.bind(console),Le=i.printErr||console.error.bind(console);Object.assign(i,He),He=null,i.arguments&&i.arguments,i.thisProgram&&(re=i.thisProgram);var Ye=i.wasmBinary,Re,dt=!1,xe,Be,Ge,ue,Ee,ke;function pt(){var e=Re.buffer;i.HEAP8=xe=new Int8Array(e),i.HEAP16=Ge=new Int16Array(e),i.HEAPU8=Be=new Uint8Array(e),i.HEAPU16=new Uint16Array(e),i.HEAP32=ue=new Int32Array(e),i.HEAPU32=Ee=new Uint32Array(e),i.HEAPF32=new Float32Array(e),i.HEAPF64=new Float64Array(e),i.HEAP64=ke=new BigInt64Array(e),i.HEAPU64=new BigUint64Array(e)}if(i.wasmMemory)Re=i.wasmMemory;else{var Pt=i.INITIAL_MEMORY||16777216;Re=new WebAssembly.Memory({initial:Pt/65536,maximum:32768})}pt();var ht=[],mt=[],gt=[];function Lt(){var e=i.preRun;e&&(typeof e=="function"&&(e=[e]),e.forEach(Rt)),ot(ht)}function Ct(){!i.noFSInit&&!a.initialized&&a.init(),a.ignorePermissions=!1,ot(mt)}function Dt(){var e=i.postRun;e&&(typeof e=="function"&&(e=[e]),e.forEach(Mt)),ot(gt)}function Rt(e){ht.unshift(e)}function Nt(e){mt.unshift(e)}function Mt(e){gt.unshift(e)}var Ne=0,$e=null;function tr(e){return e}function rt(e){Ne++,i.monitorRunDependencies?.(Ne)}function Ze(e){if(Ne--,i.monitorRunDependencies?.(Ne),Ne==0&&$e){var t=$e;$e=null,t()}}function st(e){i.onAbort?.(e),e="Aborted("+e+")",Le(e),dt=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw be(t),t}var jt="data:application/octet-stream;base64,",qt=e=>e.startsWith(jt);function Bt(){if(i.locateFile){var e="sqlite3.wasm";return qt(e)?e:Ie(e)}return new URL("/assets/sqlite3-DBpDb1lf.wasm",import.meta.url).href}var it;function bt(e){if(e==it&&Ye)return new Uint8Array(Ye);if(je)return je(e);throw"both async and sync fetching of the wasm failed"}function Ut(e){return Ye?Promise.resolve().then(()=>bt(e)):De(e).then(t=>new Uint8Array(t),()=>bt(e))}function yt(e,t,n){return Ut(e).then(r=>WebAssembly.instantiate(r,t)).then(n,r=>{Le(`failed to asynchronously prepare wasm: ${r}`),st(r)})}function zt(e,t,n,r){return!e&&typeof WebAssembly.instantiateStreaming=="function"&&!qt(t)&&typeof fetch=="function"?fetch(t,{credentials:"same-origin"}).then(s=>{var o=WebAssembly.instantiateStreaming(s,n);return o.then(r,function(p){return Le(`wasm streaming compile failed: ${p}`),Le("falling back to ArrayBuffer instantiation"),yt(t,n,r)})}):yt(t,n,r)}function Wt(){return{env:It,wasi_snapshot_preview1:It}}function Qt(){var e=Wt();function t(r,s){return h=r.exports,Nt(h.__wasm_call_ctors),Ze(),h}rt();function n(r){t(r.instance)}if(i.instantiateWasm)try{return i.instantiateWasm(e,t)}catch(r){Le(`Module.instantiateWasm callback failed with error: ${r}`),be(r)}return it??=Bt(),zt(Ye,it,e,n).catch(be),{}}var ot=e=>{e.forEach(t=>t(i))};i.noExitRuntime;var de={isAbs:e=>e.charAt(0)==="/",splitPath:e=>{var t=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return t.exec(e).slice(1)},normalizeArray:(e,t)=>{for(var n=0,r=e.length-1;r>=0;r--){var s=e[r];s==="."?e.splice(r,1):s===".."?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n;n--)e.unshift("..");return e},normalize:e=>{var t=de.isAbs(e),n=e.substr(-1)==="/";return e=de.normalizeArray(e.split("/").filter(r=>!!r),!t).join("/"),!e&&!t&&(e="."),e&&n&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=de.splitPath(e),n=t[0],r=t[1];return!n&&!r?".":(r&&(r=r.substr(0,r.length-1)),n+r)},basename:e=>{if(e==="/")return"/";e=de.normalize(e),e=e.replace(/\/$/,"");var t=e.lastIndexOf("/");return t===-1?e:e.substr(t+1)},join:(...e)=>de.normalize(e.join("/")),join2:(e,t)=>de.normalize(e+"/"+t)},Ht=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return e=>crypto.getRandomValues(e);st("initRandomDevice")},wt=e=>(wt=Ht())(e),Te={resolve:(...e)=>{for(var t="",n=!1,r=e.length-1;r>=-1&&!n;r--){var s=r>=0?e[r]:a.cwd();if(typeof s!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!s)return"";t=s+"/"+t,n=de.isAbs(s)}return t=de.normalizeArray(t.split("/").filter(o=>!!o),!n).join("/"),(n?"/":"")+t||"."},relative:(e,t)=>{e=Te.resolve(e).substr(1),t=Te.resolve(t).substr(1);function n(R){for(var z=0;z=0&&R[Q]==="";Q--);return z>Q?[]:R.slice(z,Q-z+1)}for(var r=n(e.split("/")),s=n(t.split("/")),o=Math.min(r.length,s.length),p=o,g=0;g{for(var r=t+n,s=t;e[s]&&!(s>=r);)++s;if(s-t>16&&e.buffer&&Et)return Et.decode(e.subarray(t,s));for(var o="";t>10,56320|R&1023)}}return o},lt=[],et=e=>{for(var t=0,n=0;n=55296&&r<=57343?(t+=4,++n):t+=3}return t},at=(e,t,n,r)=>{if(!(r>0))return 0;for(var s=n,o=n+r-1,p=0;p=55296&&g<=57343){var O=e.charCodeAt(++p);g=65536+((g&1023)<<10)|O&1023}if(g<=127){if(n>=o)break;t[n++]=g}else if(g<=2047){if(n+1>=o)break;t[n++]=192|g>>6,t[n++]=128|g&63}else if(g<=65535){if(n+2>=o)break;t[n++]=224|g>>12,t[n++]=128|g>>6&63,t[n++]=128|g&63}else{if(n+3>=o)break;t[n++]=240|g>>18,t[n++]=128|g>>12&63,t[n++]=128|g>>6&63,t[n++]=128|g&63}}return t[n]=0,n-s};function vt(e,t,n){var r=et(e)+1,s=new Array(r),o=at(e,s,0,s.length);return s.length=o,s}var Vt=()=>{if(!lt.length){var e=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(e=window.prompt("Input: "),e!==null&&(e+=` +`)),!e)return null;lt=vt(e)}return lt.shift()},Me={ttys:[],init(){},shutdown(){},register(e,t){Me.ttys[e]={input:[],output:[],ops:t},a.registerDevice(e,Me.stream_ops)},stream_ops:{open(e){var t=Me.ttys[e.node.rdev];if(!t)throw new a.ErrnoError(43);e.tty=t,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,t,n,r,s){if(!e.tty||!e.tty.ops.get_char)throw new a.ErrnoError(60);for(var o=0,p=0;p0&&(Ve(Ue(e.output)),e.output=[])},ioctl_tcgets(e){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(e,t,n){return 0},ioctl_tiocgwinsz(e){return[24,80]}},default_tty1_ops:{put_char(e,t){t===null||t===10?(Le(Ue(e.output)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){e.output&&e.output.length>0&&(Le(Ue(e.output)),e.output=[])}}},Gt=(e,t)=>{Be.fill(0,e,e+t)},xt=(e,t)=>Math.ceil(e/t)*t,St=e=>{e=xt(e,65536);var t=kt(65536,e);return t&&Gt(t,e),t},le={ops_table:null,mount(e){return le.createNode(null,"/",16895,0)},createNode(e,t,n,r){if(a.isBlkdev(n)||a.isFIFO(n))throw new a.ErrnoError(63);le.ops_table||={dir:{node:{getattr:le.node_ops.getattr,setattr:le.node_ops.setattr,lookup:le.node_ops.lookup,mknod:le.node_ops.mknod,rename:le.node_ops.rename,unlink:le.node_ops.unlink,rmdir:le.node_ops.rmdir,readdir:le.node_ops.readdir,symlink:le.node_ops.symlink},stream:{llseek:le.stream_ops.llseek}},file:{node:{getattr:le.node_ops.getattr,setattr:le.node_ops.setattr},stream:{llseek:le.stream_ops.llseek,read:le.stream_ops.read,write:le.stream_ops.write,allocate:le.stream_ops.allocate,mmap:le.stream_ops.mmap,msync:le.stream_ops.msync}},link:{node:{getattr:le.node_ops.getattr,setattr:le.node_ops.setattr,readlink:le.node_ops.readlink},stream:{}},chrdev:{node:{getattr:le.node_ops.getattr,setattr:le.node_ops.setattr},stream:a.chrdev_stream_ops}};var s=a.createNode(e,t,n,r);return a.isDir(s.mode)?(s.node_ops=le.ops_table.dir.node,s.stream_ops=le.ops_table.dir.stream,s.contents={}):a.isFile(s.mode)?(s.node_ops=le.ops_table.file.node,s.stream_ops=le.ops_table.file.stream,s.usedBytes=0,s.contents=null):a.isLink(s.mode)?(s.node_ops=le.ops_table.link.node,s.stream_ops=le.ops_table.link.stream):a.isChrdev(s.mode)&&(s.node_ops=le.ops_table.chrdev.node,s.stream_ops=le.ops_table.chrdev.stream),s.timestamp=Date.now(),e&&(e.contents[t]=s,e.timestamp=s.timestamp),s},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,t){var n=e.contents?e.contents.length:0;if(!(n>=t)){var r=1024*1024;t=Math.max(t,n*(n>>0),n!=0&&(t=Math.max(t,256));var s=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(s.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,t){if(e.usedBytes!=t)if(t==0)e.contents=null,e.usedBytes=0;else{var n=e.contents;e.contents=new Uint8Array(t),n&&e.contents.set(n.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){var t={};return t.dev=a.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,a.isDir(e.mode)?t.size=4096:a.isFile(e.mode)?t.size=e.usedBytes:a.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr(e,t){t.mode!==void 0&&(e.mode=t.mode),t.timestamp!==void 0&&(e.timestamp=t.timestamp),t.size!==void 0&&le.resizeFileStorage(e,t.size)},lookup(e,t){throw a.genericErrors[44]},mknod(e,t,n,r){return le.createNode(e,t,n,r)},rename(e,t,n){if(a.isDir(e.mode)){var r;try{r=a.lookupNode(t,n)}catch{}if(r)for(var s in r.contents)throw new a.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=n,t.contents[n]=e,t.timestamp=e.parent.timestamp},unlink(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir(e,t){var n=a.lookupNode(e,t);for(var r in n.contents)throw new a.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir(e){var t=[".",".."];for(var n of Object.keys(e.contents))t.push(n);return t},symlink(e,t,n){var r=le.createNode(e,t,41471,0);return r.link=n,r},readlink(e){if(!a.isLink(e.mode))throw new a.ErrnoError(28);return e.link}},stream_ops:{read(e,t,n,r,s){var o=e.node.contents;if(s>=e.node.usedBytes)return 0;var p=Math.min(e.node.usedBytes-s,r);if(p>8&&o.subarray)t.set(o.subarray(s,s+p),n);else for(var g=0;g0||n+t{var s=`al ${e}`;De(e).then(o=>{t(new Uint8Array(o)),s&&Ze()},o=>{if(n)n();else throw`Loading data file "${e}" failed.`}),s&&rt()},Kt=(e,t,n,r,s,o)=>{a.createDataFile(e,t,n,r,s,o)},Jt=i.preloadPlugins||[],Xt=(e,t,n,r)=>{typeof Browser<"u"&&Browser.init();var s=!1;return Jt.forEach(o=>{s||o.canHandle(t)&&(o.handle(e,t,n,r),s=!0)}),s},Yt=(e,t,n,r,s,o,p,g,O,R)=>{var z=t?Te.resolve(de.join2(e,t)):e;function Q(T){function A(D){R?.(),g||Kt(e,t,D,r,s,O),o?.(),Ze()}Xt(T,z,A,()=>{p?.(),Ze()})||A(T)}rt(),typeof n=="string"?$t(n,Q,p):Q(n)},Zt=e=>{var t={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},n=t[e];if(typeof n>"u")throw new Error(`Unknown file open mode: ${e}`);return n},ct=(e,t)=>{var n=0;return e&&(n|=365),t&&(n|=146),n},a={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{constructor(e){this.name="ErrnoError",this.errno=e}},genericErrors:{},filesystems:null,syncFSRequests:0,readFiles:{},FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(e){this.node=e}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{constructor(e,t,n,r){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=a.nextInode++,this.name=t,this.mode=n,this.node_ops={},this.stream_ops={},this.rdev=r,this.readMode=365,this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return a.isDir(this.mode)}get isDevice(){return a.isChrdev(this.mode)}},lookupPath(e,t={}){if(e=Te.resolve(e),!e)return{path:"",node:null};var n={follow_mount:!0,recurse_count:0};if(t=Object.assign(n,t),t.recurse_count>8)throw new a.ErrnoError(32);for(var r=e.split("/").filter(Q=>!!Q),s=a.root,o="/",p=0;p40)throw new a.ErrnoError(32)}}return{path:o,node:s}},getPath(e){for(var t;;){if(a.isRoot(e)){var n=e.mount.mountpoint;return t?n[n.length-1]!=="/"?`${n}/${t}`:n+t:n}t=t?`${e.name}/${t}`:e.name,e=e.parent}},hashName(e,t){for(var n=0,r=0;r>>0)%a.nameTable.length},hashAddNode(e){var t=a.hashName(e.parent.id,e.name);e.name_next=a.nameTable[t],a.nameTable[t]=e},hashRemoveNode(e){var t=a.hashName(e.parent.id,e.name);if(a.nameTable[t]===e)a.nameTable[t]=e.name_next;else for(var n=a.nameTable[t];n;){if(n.name_next===e){n.name_next=e.name_next;break}n=n.name_next}},lookupNode(e,t){var n=a.mayLookup(e);if(n)throw new a.ErrnoError(n);for(var r=a.hashName(e.id,t),s=a.nameTable[r];s;s=s.name_next){var o=s.name;if(s.parent.id===e.id&&o===t)return s}return a.lookup(e,t)},createNode(e,t,n,r){var s=new a.FSNode(e,t,n,r);return a.hashAddNode(s),s},destroyNode(e){a.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)===32768},isDir(e){return(e&61440)===16384},isLink(e){return(e&61440)===40960},isChrdev(e){return(e&61440)===8192},isBlkdev(e){return(e&61440)===24576},isFIFO(e){return(e&61440)===4096},isSocket(e){return(e&49152)===49152},flagsToPermissionString(e){var t=["r","w","rw"][e&3];return e&512&&(t+="w"),t},nodePermissions(e,t){return a.ignorePermissions?0:t.includes("r")&&!(e.mode&292)||t.includes("w")&&!(e.mode&146)||t.includes("x")&&!(e.mode&73)?2:0},mayLookup(e){if(!a.isDir(e.mode))return 54;var t=a.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate(e,t){try{var n=a.lookupNode(e,t);return 20}catch{}return a.nodePermissions(e,"wx")},mayDelete(e,t,n){var r;try{r=a.lookupNode(e,t)}catch(o){return o.errno}var s=a.nodePermissions(e,"wx");if(s)return s;if(n){if(!a.isDir(r.mode))return 54;if(a.isRoot(r)||a.getPath(r)===a.cwd())return 10}else if(a.isDir(r.mode))return 31;return 0},mayOpen(e,t){return e?a.isLink(e.mode)?32:a.isDir(e.mode)&&(a.flagsToPermissionString(t)!=="r"||t&512)?31:a.nodePermissions(e,a.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=a.MAX_OPEN_FDS;e++)if(!a.streams[e])return e;throw new a.ErrnoError(33)},getStreamChecked(e){var t=a.getStream(e);if(!t)throw new a.ErrnoError(8);return t},getStream:e=>a.streams[e],createStream(e,t=-1){return e=Object.assign(new a.FSStream,e),t==-1&&(t=a.nextfd()),e.fd=t,a.streams[t]=e,e},closeStream(e){a.streams[e]=null},dupStream(e,t=-1){var n=a.createStream(e,t);return n.stream_ops?.dup?.(n),n},chrdev_stream_ops:{open(e){var t=a.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new a.ErrnoError(70)}},major:e=>e>>8,minor:e=>e&255,makedev:(e,t)=>e<<8|t,registerDevice(e,t){a.devices[e]={stream_ops:t}},getDevice:e=>a.devices[e],getMounts(e){for(var t=[],n=[e];n.length;){var r=n.pop();t.push(r),n.push(...r.mounts)}return t},syncfs(e,t){typeof e=="function"&&(t=e,e=!1),a.syncFSRequests++,a.syncFSRequests>1&&Le(`warning: ${a.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var n=a.getMounts(a.root.mount),r=0;function s(p){return a.syncFSRequests--,t(p)}function o(p){if(p)return o.errored?void 0:(o.errored=!0,s(p));++r>=n.length&&s(null)}n.forEach(p=>{if(!p.type.syncfs)return o(null);p.type.syncfs(p,e,o)})},mount(e,t,n){var r=n==="/",s=!n,o;if(r&&a.root)throw new a.ErrnoError(10);if(!r&&!s){var p=a.lookupPath(n,{follow_mount:!1});if(n=p.path,o=p.node,a.isMountpoint(o))throw new a.ErrnoError(10);if(!a.isDir(o.mode))throw new a.ErrnoError(54)}var g={type:e,opts:t,mountpoint:n,mounts:[]},O=e.mount(g);return O.mount=g,g.root=O,r?a.root=O:o&&(o.mounted=g,o.mount&&o.mount.mounts.push(g)),O},unmount(e){var t=a.lookupPath(e,{follow_mount:!1});if(!a.isMountpoint(t.node))throw new a.ErrnoError(28);var n=t.node,r=n.mounted,s=a.getMounts(r);Object.keys(a.nameTable).forEach(p=>{for(var g=a.nameTable[p];g;){var O=g.name_next;s.includes(g.mount)&&a.destroyNode(g),g=O}}),n.mounted=null;var o=n.mount.mounts.indexOf(r);n.mount.mounts.splice(o,1)},lookup(e,t){return e.node_ops.lookup(e,t)},mknod(e,t,n){var r=a.lookupPath(e,{parent:!0}),s=r.node,o=de.basename(e);if(!o||o==="."||o==="..")throw new a.ErrnoError(28);var p=a.mayCreate(s,o);if(p)throw new a.ErrnoError(p);if(!s.node_ops.mknod)throw new a.ErrnoError(63);return s.node_ops.mknod(s,o,t,n)},create(e,t){return t=t!==void 0?t:438,t&=4095,t|=32768,a.mknod(e,t,0)},mkdir(e,t){return t=t!==void 0?t:511,t&=1023,t|=16384,a.mknod(e,t,0)},mkdirTree(e,t){for(var n=e.split("/"),r="",s=0;s"u"&&(n=t,t=438),t|=8192,a.mknod(e,t,n)},symlink(e,t){if(!Te.resolve(e))throw new a.ErrnoError(44);var n=a.lookupPath(t,{parent:!0}),r=n.node;if(!r)throw new a.ErrnoError(44);var s=de.basename(t),o=a.mayCreate(r,s);if(o)throw new a.ErrnoError(o);if(!r.node_ops.symlink)throw new a.ErrnoError(63);return r.node_ops.symlink(r,s,e)},rename(e,t){var n=de.dirname(e),r=de.dirname(t),s=de.basename(e),o=de.basename(t),p,g,O;if(p=a.lookupPath(e,{parent:!0}),g=p.node,p=a.lookupPath(t,{parent:!0}),O=p.node,!g||!O)throw new a.ErrnoError(44);if(g.mount!==O.mount)throw new a.ErrnoError(75);var R=a.lookupNode(g,s),z=Te.relative(e,r);if(z.charAt(0)!==".")throw new a.ErrnoError(28);if(z=Te.relative(t,n),z.charAt(0)!==".")throw new a.ErrnoError(55);var Q;try{Q=a.lookupNode(O,o)}catch{}if(R!==Q){var T=a.isDir(R.mode),A=a.mayDelete(g,s,T);if(A)throw new a.ErrnoError(A);if(A=Q?a.mayDelete(O,o,T):a.mayCreate(O,o),A)throw new a.ErrnoError(A);if(!g.node_ops.rename)throw new a.ErrnoError(63);if(a.isMountpoint(R)||Q&&a.isMountpoint(Q))throw new a.ErrnoError(10);if(O!==g&&(A=a.nodePermissions(g,"w"),A))throw new a.ErrnoError(A);a.hashRemoveNode(R);try{g.node_ops.rename(R,O,o),R.parent=O}catch(D){throw D}finally{a.hashAddNode(R)}}},rmdir(e){var t=a.lookupPath(e,{parent:!0}),n=t.node,r=de.basename(e),s=a.lookupNode(n,r),o=a.mayDelete(n,r,!0);if(o)throw new a.ErrnoError(o);if(!n.node_ops.rmdir)throw new a.ErrnoError(63);if(a.isMountpoint(s))throw new a.ErrnoError(10);n.node_ops.rmdir(n,r),a.destroyNode(s)},readdir(e){var t=a.lookupPath(e,{follow:!0}),n=t.node;if(!n.node_ops.readdir)throw new a.ErrnoError(54);return n.node_ops.readdir(n)},unlink(e){var t=a.lookupPath(e,{parent:!0}),n=t.node;if(!n)throw new a.ErrnoError(44);var r=de.basename(e),s=a.lookupNode(n,r),o=a.mayDelete(n,r,!1);if(o)throw new a.ErrnoError(o);if(!n.node_ops.unlink)throw new a.ErrnoError(63);if(a.isMountpoint(s))throw new a.ErrnoError(10);n.node_ops.unlink(n,r),a.destroyNode(s)},readlink(e){var t=a.lookupPath(e),n=t.node;if(!n)throw new a.ErrnoError(44);if(!n.node_ops.readlink)throw new a.ErrnoError(28);return Te.resolve(a.getPath(n.parent),n.node_ops.readlink(n))},stat(e,t){var n=a.lookupPath(e,{follow:!t}),r=n.node;if(!r)throw new a.ErrnoError(44);if(!r.node_ops.getattr)throw new a.ErrnoError(63);return r.node_ops.getattr(r)},lstat(e){return a.stat(e,!0)},chmod(e,t,n){var r;if(typeof e=="string"){var s=a.lookupPath(e,{follow:!n});r=s.node}else r=e;if(!r.node_ops.setattr)throw new a.ErrnoError(63);r.node_ops.setattr(r,{mode:t&4095|r.mode&-4096,timestamp:Date.now()})},lchmod(e,t){a.chmod(e,t,!0)},fchmod(e,t){var n=a.getStreamChecked(e);a.chmod(n.node,t)},chown(e,t,n,r){var s;if(typeof e=="string"){var o=a.lookupPath(e,{follow:!r});s=o.node}else s=e;if(!s.node_ops.setattr)throw new a.ErrnoError(63);s.node_ops.setattr(s,{timestamp:Date.now()})},lchown(e,t,n){a.chown(e,t,n,!0)},fchown(e,t,n){var r=a.getStreamChecked(e);a.chown(r.node,t,n)},truncate(e,t){if(t<0)throw new a.ErrnoError(28);var n;if(typeof e=="string"){var r=a.lookupPath(e,{follow:!0});n=r.node}else n=e;if(!n.node_ops.setattr)throw new a.ErrnoError(63);if(a.isDir(n.mode))throw new a.ErrnoError(31);if(!a.isFile(n.mode))throw new a.ErrnoError(28);var s=a.nodePermissions(n,"w");if(s)throw new a.ErrnoError(s);n.node_ops.setattr(n,{size:t,timestamp:Date.now()})},ftruncate(e,t){var n=a.getStreamChecked(e);if((n.flags&2097155)===0)throw new a.ErrnoError(28);a.truncate(n.node,t)},utime(e,t,n){var r=a.lookupPath(e,{follow:!0}),s=r.node;s.node_ops.setattr(s,{timestamp:Math.max(t,n)})},open(e,t,n){if(e==="")throw new a.ErrnoError(44);t=typeof t=="string"?Zt(t):t,t&64?(n=typeof n>"u"?438:n,n=n&4095|32768):n=0;var r;if(typeof e=="object")r=e;else{e=de.normalize(e);try{var s=a.lookupPath(e,{follow:!(t&131072)});r=s.node}catch{}}var o=!1;if(t&64)if(r){if(t&128)throw new a.ErrnoError(20)}else r=a.mknod(e,n,0),o=!0;if(!r)throw new a.ErrnoError(44);if(a.isChrdev(r.mode)&&(t&=-513),t&65536&&!a.isDir(r.mode))throw new a.ErrnoError(54);if(!o){var p=a.mayOpen(r,t);if(p)throw new a.ErrnoError(p)}t&512&&!o&&a.truncate(r,0),t&=-131713;var g=a.createStream({node:r,path:a.getPath(r),flags:t,seekable:!0,position:0,stream_ops:r.stream_ops,ungotten:[],error:!1});return g.stream_ops.open&&g.stream_ops.open(g),i.logReadFiles&&!(t&1)&&(e in a.readFiles||(a.readFiles[e]=1)),g},close(e){if(a.isClosed(e))throw new a.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(t){throw t}finally{a.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,t,n){if(a.isClosed(e))throw new a.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new a.ErrnoError(70);if(n!=0&&n!=1&&n!=2)throw new a.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,n),e.ungotten=[],e.position},read(e,t,n,r,s){if(r<0||s<0)throw new a.ErrnoError(28);if(a.isClosed(e))throw new a.ErrnoError(8);if((e.flags&2097155)===1)throw new a.ErrnoError(8);if(a.isDir(e.node.mode))throw new a.ErrnoError(31);if(!e.stream_ops.read)throw new a.ErrnoError(28);var o=typeof s<"u";if(!o)s=e.position;else if(!e.seekable)throw new a.ErrnoError(70);var p=e.stream_ops.read(e,t,n,r,s);return o||(e.position+=p),p},write(e,t,n,r,s,o){if(r<0||s<0)throw new a.ErrnoError(28);if(a.isClosed(e))throw new a.ErrnoError(8);if((e.flags&2097155)===0)throw new a.ErrnoError(8);if(a.isDir(e.node.mode))throw new a.ErrnoError(31);if(!e.stream_ops.write)throw new a.ErrnoError(28);e.seekable&&e.flags&1024&&a.llseek(e,0,2);var p=typeof s<"u";if(!p)s=e.position;else if(!e.seekable)throw new a.ErrnoError(70);var g=e.stream_ops.write(e,t,n,r,s,o);return p||(e.position+=g),g},allocate(e,t,n){if(a.isClosed(e))throw new a.ErrnoError(8);if(t<0||n<=0)throw new a.ErrnoError(28);if((e.flags&2097155)===0)throw new a.ErrnoError(8);if(!a.isFile(e.node.mode)&&!a.isDir(e.node.mode))throw new a.ErrnoError(43);if(!e.stream_ops.allocate)throw new a.ErrnoError(138);e.stream_ops.allocate(e,t,n)},mmap(e,t,n,r,s){if((r&2)!==0&&(s&2)===0&&(e.flags&2097155)!==2)throw new a.ErrnoError(2);if((e.flags&2097155)===1)throw new a.ErrnoError(2);if(!e.stream_ops.mmap)throw new a.ErrnoError(43);if(!t)throw new a.ErrnoError(28);return e.stream_ops.mmap(e,t,n,r,s)},msync(e,t,n,r,s){return e.stream_ops.msync?e.stream_ops.msync(e,t,n,r,s):0},ioctl(e,t,n){if(!e.stream_ops.ioctl)throw new a.ErrnoError(59);return e.stream_ops.ioctl(e,t,n)},readFile(e,t={}){if(t.flags=t.flags||0,t.encoding=t.encoding||"binary",t.encoding!=="utf8"&&t.encoding!=="binary")throw new Error(`Invalid encoding type "${t.encoding}"`);var n,r=a.open(e,t.flags),s=a.stat(e),o=s.size,p=new Uint8Array(o);return a.read(r,p,0,o,0),t.encoding==="utf8"?n=Ue(p):t.encoding==="binary"&&(n=p),a.close(r),n},writeFile(e,t,n={}){n.flags=n.flags||577;var r=a.open(e,n.flags,n.mode);if(typeof t=="string"){var s=new Uint8Array(et(t)+1),o=at(t,s,0,s.length);a.write(r,s,0,o,void 0,n.canOwn)}else if(ArrayBuffer.isView(t))a.write(r,t,0,t.byteLength,void 0,n.canOwn);else throw new Error("Unsupported data type");a.close(r)},cwd:()=>a.currentPath,chdir(e){var t=a.lookupPath(e,{follow:!0});if(t.node===null)throw new a.ErrnoError(44);if(!a.isDir(t.node.mode))throw new a.ErrnoError(54);var n=a.nodePermissions(t.node,"x");if(n)throw new a.ErrnoError(n);a.currentPath=t.path},createDefaultDirectories(){a.mkdir("/tmp"),a.mkdir("/home"),a.mkdir("/home/web_user")},createDefaultDevices(){a.mkdir("/dev"),a.registerDevice(a.makedev(1,3),{read:()=>0,write:(r,s,o,p,g)=>p}),a.mkdev("/dev/null",a.makedev(1,3)),Me.register(a.makedev(5,0),Me.default_tty_ops),Me.register(a.makedev(6,0),Me.default_tty1_ops),a.mkdev("/dev/tty",a.makedev(5,0)),a.mkdev("/dev/tty1",a.makedev(6,0));var e=new Uint8Array(1024),t=0,n=()=>(t===0&&(t=wt(e).byteLength),e[--t]);a.createDevice("/dev","random",n),a.createDevice("/dev","urandom",n),a.mkdir("/dev/shm"),a.mkdir("/dev/shm/tmp")},createSpecialDirectories(){a.mkdir("/proc");var e=a.mkdir("/proc/self");a.mkdir("/proc/self/fd"),a.mount({mount(){var t=a.createNode(e,"fd",16895,73);return t.node_ops={lookup(n,r){var s=+r,o=a.getStreamChecked(s),p={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>o.path}};return p.parent=p,p}},t}},{},"/proc/self/fd")},createStandardStreams(e,t,n){e?a.createDevice("/dev","stdin",e):a.symlink("/dev/tty","/dev/stdin"),t?a.createDevice("/dev","stdout",null,t):a.symlink("/dev/tty","/dev/stdout"),n?a.createDevice("/dev","stderr",null,n):a.symlink("/dev/tty1","/dev/stderr"),a.open("/dev/stdin",0),a.open("/dev/stdout",1),a.open("/dev/stderr",1)},staticInit(){[44].forEach(e=>{a.genericErrors[e]=new a.ErrnoError(e),a.genericErrors[e].stack=""}),a.nameTable=new Array(4096),a.mount(le,{},"/"),a.createDefaultDirectories(),a.createDefaultDevices(),a.createSpecialDirectories(),a.filesystems={MEMFS:le}},init(e,t,n){a.initialized=!0,e??=i.stdin,t??=i.stdout,n??=i.stderr,a.createStandardStreams(e,t,n)},quit(){a.initialized=!1;for(var e=0;ethis.length-1||A<0)){var D=A%this.chunkSize,q=A/this.chunkSize|0;return this.getter(q)[D]}}setDataGetter(A){this.getter=A}cacheLength(){var A=new XMLHttpRequest;if(A.open("HEAD",n,!1),A.send(null),!(A.status>=200&&A.status<300||A.status===304))throw new Error("Couldn't load "+n+". Status: "+A.status);var D=Number(A.getResponseHeader("Content-length")),q,w=(q=A.getResponseHeader("Accept-Ranges"))&&q==="bytes",x=(q=A.getResponseHeader("Content-Encoding"))&&q==="gzip",N=1024*1024;w||(N=D);var P=(L,$)=>{if(L>$)throw new Error("invalid range ("+L+", "+$+") or no bytes requested!");if($>D-1)throw new Error("only "+D+" bytes available! programmer error!");var c=new XMLHttpRequest;if(c.open("GET",n,!1),D!==N&&c.setRequestHeader("Range","bytes="+L+"-"+$),c.responseType="arraybuffer",c.overrideMimeType&&c.overrideMimeType("text/plain; charset=x-user-defined"),c.send(null),!(c.status>=200&&c.status<300||c.status===304))throw new Error("Couldn't load "+n+". Status: "+c.status);return c.response!==void 0?new Uint8Array(c.response||[]):vt(c.responseText||"")},S=this;S.setDataGetter(L=>{var $=L*N,c=(L+1)*N-1;if(c=Math.min(c,D-1),typeof S.chunks[L]>"u"&&(S.chunks[L]=P($,c)),typeof S.chunks[L]>"u")throw new Error("doXHR failed!");return S.chunks[L]}),(x||!D)&&(N=D=1,D=this.getter(0).length,N=D,Ve("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=D,this._chunkSize=N,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!Ce)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var p=new o,g={isDevice:!1,contents:p}}else var g={isDevice:!1,url:n};var O=a.createFile(e,t,g,r,s);g.contents?O.contents=g.contents:g.url&&(O.contents=null,O.url=g.url),Object.defineProperties(O,{usedBytes:{get:function(){return this.contents.length}}});var R={},z=Object.keys(O.stream_ops);z.forEach(T=>{var A=O.stream_ops[T];R[T]=(...D)=>(a.forceLoadFile(O),A(...D))});function Q(T,A,D,q,w){var x=T.node.contents;if(w>=x.length)return 0;var N=Math.min(x.length-w,q);if(x.slice)for(var P=0;P(a.forceLoadFile(O),Q(T,A,D,q,w)),R.mmap=(T,A,D,q,w)=>{a.forceLoadFile(O);var x=St(A);if(!x)throw new a.ErrnoError(48);return Q(T,xe,x,A,D),{ptr:x,allocated:!0}},O.stream_ops=R,O}},en=(e,t)=>e?Ue(Be,e,t):"",ce={DEFAULT_POLLMASK:5,calculateAt(e,t,n){if(de.isAbs(t))return t;var r;if(e===-100)r=a.cwd();else{var s=ce.getStreamFromFD(e);r=s.path}if(t.length==0){if(!n)throw new a.ErrnoError(44);return r}return de.join2(r,t)},doStat(e,t,n){var r=e(t);ue[n>>2]=r.dev,ue[n+4>>2]=r.mode,Ee[n+8>>2]=r.nlink,ue[n+12>>2]=r.uid,ue[n+16>>2]=r.gid,ue[n+20>>2]=r.rdev,ke[n+24>>3]=BigInt(r.size),ue[n+32>>2]=4096,ue[n+36>>2]=r.blocks;var s=r.atime.getTime(),o=r.mtime.getTime(),p=r.ctime.getTime();return ke[n+40>>3]=BigInt(Math.floor(s/1e3)),Ee[n+48>>2]=s%1e3*1e3*1e3,ke[n+56>>3]=BigInt(Math.floor(o/1e3)),Ee[n+64>>2]=o%1e3*1e3*1e3,ke[n+72>>3]=BigInt(Math.floor(p/1e3)),Ee[n+80>>2]=p%1e3*1e3*1e3,ke[n+88>>3]=BigInt(r.ino),0},doMsync(e,t,n,r,s){if(!a.isFile(t.node.mode))throw new a.ErrnoError(43);if(r&2)return 0;var o=Be.slice(e,e+n);a.msync(t,o,s,n,r)},getStreamFromFD(e){var t=a.getStreamChecked(e);return t},varargs:void 0,getStr(e){var t=en(e);return t}};function tn(e,t){try{return e=ce.getStr(e),a.chmod(e,t),0}catch(n){if(typeof a>"u"||n.name!=="ErrnoError")throw n;return-n.errno}}function nn(e,t,n,r){try{if(t=ce.getStr(t),t=ce.calculateAt(e,t),n&-8)return-28;var s=a.lookupPath(t,{follow:!0}),o=s.node;if(!o)return-44;var p="";return n&4&&(p+="r"),n&2&&(p+="w"),n&1&&(p+="x"),p&&a.nodePermissions(o,p)?-2:0}catch(g){if(typeof a>"u"||g.name!=="ErrnoError")throw g;return-g.errno}}function rn(e,t){try{return a.fchmod(e,t),0}catch(n){if(typeof a>"u"||n.name!=="ErrnoError")throw n;return-n.errno}}function sn(e,t,n){try{return a.fchown(e,t,n),0}catch(r){if(typeof a>"u"||r.name!=="ErrnoError")throw r;return-r.errno}}function tt(){var e=ue[+ce.varargs>>2];return ce.varargs+=4,e}var ze=tt;function on(e,t,n){ce.varargs=n;try{var r=ce.getStreamFromFD(e);switch(t){case 0:{var s=tt();if(s<0)return-28;for(;a.streams[s];)s++;var o;return o=a.dupStream(r,s),o.fd}case 1:case 2:return 0;case 3:return r.flags;case 4:{var s=tt();return r.flags|=s,0}case 12:{var s=ze(),p=0;return Ge[s+p>>1]=2,0}case 13:case 14:return 0}return-28}catch(g){if(typeof a>"u"||g.name!=="ErrnoError")throw g;return-g.errno}}function ln(e,t){try{var n=ce.getStreamFromFD(e);return ce.doStat(a.stat,n.path,t)}catch(r){if(typeof a>"u"||r.name!=="ErrnoError")throw r;return-r.errno}}var an=9007199254740992,cn=-9007199254740992,Ke=e=>ean?NaN:Number(e);function _n(e,t){t=Ke(t);try{return isNaN(t)?61:(a.ftruncate(e,t),0)}catch(n){if(typeof a>"u"||n.name!=="ErrnoError")throw n;return-n.errno}}var We=(e,t,n)=>at(e,Be,t,n);function un(e,t){try{if(t===0)return-28;var n=a.cwd(),r=et(n)+1;return t"u"||s.name!=="ErrnoError")throw s;return-s.errno}}function fn(e,t,n){ce.varargs=n;try{var r=ce.getStreamFromFD(e);switch(t){case 21509:return r.tty?0:-59;case 21505:{if(!r.tty)return-59;if(r.tty.ops.ioctl_tcgets){var s=r.tty.ops.ioctl_tcgets(r),o=ze();ue[o>>2]=s.c_iflag||0,ue[o+4>>2]=s.c_oflag||0,ue[o+8>>2]=s.c_cflag||0,ue[o+12>>2]=s.c_lflag||0;for(var p=0;p<32;p++)xe[o+p+17]=s.c_cc[p]||0;return 0}return 0}case 21510:case 21511:case 21512:return r.tty?0:-59;case 21506:case 21507:case 21508:{if(!r.tty)return-59;if(r.tty.ops.ioctl_tcsets){for(var o=ze(),g=ue[o>>2],O=ue[o+4>>2],R=ue[o+8>>2],z=ue[o+12>>2],Q=[],p=0;p<32;p++)Q.push(xe[o+p+17]);return r.tty.ops.ioctl_tcsets(r.tty,t,{c_iflag:g,c_oflag:O,c_cflag:R,c_lflag:z,c_cc:Q})}return 0}case 21519:{if(!r.tty)return-59;var o=ze();return ue[o>>2]=0,0}case 21520:return r.tty?-28:-59;case 21531:{var o=ze();return a.ioctl(r,t,o)}case 21523:{if(!r.tty)return-59;if(r.tty.ops.ioctl_tiocgwinsz){var T=r.tty.ops.ioctl_tiocgwinsz(r.tty),o=ze();Ge[o>>1]=T[0],Ge[o+2>>1]=T[1]}return 0}case 21524:return r.tty?0:-59;case 21515:return r.tty?0:-59;default:return-28}}catch(A){if(typeof a>"u"||A.name!=="ErrnoError")throw A;return-A.errno}}function dn(e,t){try{return e=ce.getStr(e),ce.doStat(a.lstat,e,t)}catch(n){if(typeof a>"u"||n.name!=="ErrnoError")throw n;return-n.errno}}function pn(e,t,n){try{return t=ce.getStr(t),t=ce.calculateAt(e,t),t=de.normalize(t),t[t.length-1]==="/"&&(t=t.substr(0,t.length-1)),a.mkdir(t,n,0),0}catch(r){if(typeof a>"u"||r.name!=="ErrnoError")throw r;return-r.errno}}function hn(e,t,n,r){try{t=ce.getStr(t);var s=r&256,o=r&4096;return r=r&-6401,t=ce.calculateAt(e,t,o),ce.doStat(s?a.lstat:a.stat,t,n)}catch(p){if(typeof a>"u"||p.name!=="ErrnoError")throw p;return-p.errno}}function mn(e,t,n,r){ce.varargs=r;try{t=ce.getStr(t),t=ce.calculateAt(e,t);var s=r?tt():0;return a.open(t,n,s).fd}catch(o){if(typeof a>"u"||o.name!=="ErrnoError")throw o;return-o.errno}}function gn(e,t,n,r){try{if(t=ce.getStr(t),t=ce.calculateAt(e,t),r<=0)return-28;var s=a.readlink(t),o=Math.min(r,et(s)),p=xe[n+o];return We(s,n,r+1),xe[n+o]=p,o}catch(g){if(typeof a>"u"||g.name!=="ErrnoError")throw g;return-g.errno}}function qn(e){try{return e=ce.getStr(e),a.rmdir(e),0}catch(t){if(typeof a>"u"||t.name!=="ErrnoError")throw t;return-t.errno}}function bn(e,t){try{return e=ce.getStr(e),ce.doStat(a.stat,e,t)}catch(n){if(typeof a>"u"||n.name!=="ErrnoError")throw n;return-n.errno}}function yn(e,t,n){try{return t=ce.getStr(t),t=ce.calculateAt(e,t),n===0?a.unlink(t):n===512?a.rmdir(t):st("Invalid flags passed to unlinkat"),0}catch(r){if(typeof a>"u"||r.name!=="ErrnoError")throw r;return-r.errno}}var At=e=>Ee[e>>2]+ue[e+4>>2]*4294967296;function wn(e,t,n,r){try{t=ce.getStr(t),t=ce.calculateAt(e,t,!0);var s=Date.now(),o,p;if(!n)o=s,p=s;else{var g=At(n),O=ue[n+8>>2];O==1073741823?o=s:O==1073741822?o=-1:o=g*1e3+O/1e6,n+=16,g=At(n),O=ue[n+8>>2],O==1073741823?p=s:O==1073741822?p=-1:p=g*1e3+O/1e6}return(p!=-1||o!=-1)&&a.utime(t,o,p),0}catch(R){if(typeof a>"u"||R.name!=="ErrnoError")throw R;return-R.errno}}var En=1,vn=()=>En,xn=e=>e%4===0&&(e%100!==0||e%400===0),Sn=[0,31,60,91,121,152,182,213,244,274,305,335],An=[0,31,59,90,120,151,181,212,243,273,304,334],In=e=>{var t=xn(e.getFullYear()),n=t?Sn:An,r=n[e.getMonth()]+e.getDate()-1;return r};function kn(e,t){e=Ke(e);var n=new Date(e*1e3);ue[t>>2]=n.getSeconds(),ue[t+4>>2]=n.getMinutes(),ue[t+8>>2]=n.getHours(),ue[t+12>>2]=n.getDate(),ue[t+16>>2]=n.getMonth(),ue[t+20>>2]=n.getFullYear()-1900,ue[t+24>>2]=n.getDay();var r=In(n)|0;ue[t+28>>2]=r,ue[t+36>>2]=-(n.getTimezoneOffset()*60);var s=new Date(n.getFullYear(),0,1),o=new Date(n.getFullYear(),6,1).getTimezoneOffset(),p=s.getTimezoneOffset(),g=(o!=p&&n.getTimezoneOffset()==Math.min(p,o))|0;ue[t+32>>2]=g}function Tn(e,t,n,r,s,o,p){s=Ke(s);try{if(isNaN(s))return 61;var g=ce.getStreamFromFD(r),O=a.mmap(g,e,s,t,n),R=O.ptr;return ue[o>>2]=O.allocated,Ee[p>>2]=R,0}catch(z){if(typeof a>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}function Fn(e,t,n,r,s,o){o=Ke(o);try{var p=ce.getStreamFromFD(s);n&2&&ce.doMsync(e,p,t,r,o)}catch(g){if(typeof a>"u"||g.name!=="ErrnoError")throw g;return-g.errno}}var On=(e,t,n,r)=>{var s=new Date().getFullYear(),o=new Date(s,0,1),p=new Date(s,6,1),g=o.getTimezoneOffset(),O=p.getTimezoneOffset(),R=Math.max(g,O);Ee[e>>2]=R*60,ue[t>>2]=+(g!=O);var z=A=>{var D=A>=0?"-":"+",q=Math.abs(A),w=String(Math.floor(q/60)).padStart(2,"0"),x=String(q%60).padStart(2,"0");return`UTC${D}${w}${x}`},Q=z(g),T=z(O);ODate.now(),Ln=()=>performance.now(),Cn=()=>2147483648,Dn=e=>{var t=Re.buffer,n=(e-t.byteLength+65535)/65536|0;try{return Re.grow(n),pt(),1}catch{}},Rn=e=>{var t=Be.length;e>>>=0;var n=Cn();if(e>n)return!1;for(var r=1;r<=4;r*=2){var s=t*(1+.2/r);s=Math.min(s,e+100663296);var o=Math.min(n,xt(Math.max(e,s),65536)),p=Dn(o);if(p)return!0}return!1},_t={},Nn=()=>re||"./this.program",Je=()=>{if(!Je.strings){var e=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:e,_:Nn()};for(var n in _t)_t[n]===void 0?delete t[n]:t[n]=_t[n];var r=[];for(var n in t)r.push(`${n}=${t[n]}`);Je.strings=r}return Je.strings},Mn=(e,t)=>{for(var n=0;n{var n=0;return Je().forEach((r,s)=>{var o=t+n;Ee[e+s*4>>2]=o,Mn(r,o),n+=r.length+1}),0},Bn=(e,t)=>{var n=Je();Ee[e>>2]=n.length;var r=0;return n.forEach(s=>r+=s.length+1),Ee[t>>2]=r,0};function Un(e){try{var t=ce.getStreamFromFD(e);return a.close(t),0}catch(n){if(typeof a>"u"||n.name!=="ErrnoError")throw n;return n.errno}}function zn(e,t){try{var n=0,r=0,s=0,o=ce.getStreamFromFD(e),p=o.tty?2:a.isDir(o.mode)?3:a.isLink(o.mode)?7:4;return xe[t]=p,Ge[t+2>>1]=s,ke[t+8>>3]=BigInt(n),ke[t+16>>3]=BigInt(r),0}catch(g){if(typeof a>"u"||g.name!=="ErrnoError")throw g;return g.errno}}var Wn=(e,t,n,r)=>{for(var s=0,o=0;o>2],g=Ee[t+4>>2];t+=8;var O=a.read(e,xe,p,g,r);if(O<0)return-1;if(s+=O,O>2]=o,0}catch(p){if(typeof a>"u"||p.name!=="ErrnoError")throw p;return p.errno}}function Hn(e,t,n,r){t=Ke(t);try{if(isNaN(t))return 61;var s=ce.getStreamFromFD(e);return a.llseek(s,t,n),ke[r>>3]=BigInt(s.position),s.getdents&&t===0&&n===0&&(s.getdents=null),0}catch(o){if(typeof a>"u"||o.name!=="ErrnoError")throw o;return o.errno}}function Vn(e){try{var t=ce.getStreamFromFD(e);return t.stream_ops?.fsync?t.stream_ops.fsync(t):0}catch(n){if(typeof a>"u"||n.name!=="ErrnoError")throw n;return n.errno}}var Gn=(e,t,n,r)=>{for(var s=0,o=0;o>2],g=Ee[t+4>>2];t+=8;var O=a.write(e,xe,p,g,r);if(O<0)return-1;if(s+=O,O>2]=o,0}catch(p){if(typeof a>"u"||p.name!=="ErrnoError")throw p;return p.errno}}a.createPreloadedFile=Yt,a.staticInit();var It={__syscall_chmod:tn,__syscall_faccessat:nn,__syscall_fchmod:rn,__syscall_fchown32:sn,__syscall_fcntl64:on,__syscall_fstat64:ln,__syscall_ftruncate64:_n,__syscall_getcwd:un,__syscall_ioctl:fn,__syscall_lstat64:dn,__syscall_mkdirat:pn,__syscall_newfstatat:hn,__syscall_openat:mn,__syscall_readlinkat:gn,__syscall_rmdir:qn,__syscall_stat64:bn,__syscall_unlinkat:yn,__syscall_utimensat:wn,_emscripten_get_now_is_monotonic:vn,_localtime_js:kn,_mmap_js:Tn,_munmap_js:Fn,_tzset_js:On,emscripten_date_now:Pn,emscripten_get_now:Ln,emscripten_resize_heap:Rn,environ_get:jn,environ_sizes_get:Bn,fd_close:Un,fd_fdstat_get:zn,fd_read:Qn,fd_seek:Hn,fd_sync:Vn,fd_write:$n,memory:Re},h=Qt();i._sqlite3_status64=(e,t,n,r)=>(i._sqlite3_status64=h.sqlite3_status64)(e,t,n,r),i._sqlite3_status=(e,t,n,r)=>(i._sqlite3_status=h.sqlite3_status)(e,t,n,r),i._sqlite3_db_status=(e,t,n,r,s)=>(i._sqlite3_db_status=h.sqlite3_db_status)(e,t,n,r,s),i._sqlite3_msize=e=>(i._sqlite3_msize=h.sqlite3_msize)(e),i._sqlite3_vfs_find=e=>(i._sqlite3_vfs_find=h.sqlite3_vfs_find)(e),i._sqlite3_initialize=()=>(i._sqlite3_initialize=h.sqlite3_initialize)(),i._sqlite3_malloc=e=>(i._sqlite3_malloc=h.sqlite3_malloc)(e),i._sqlite3_free=e=>(i._sqlite3_free=h.sqlite3_free)(e),i._sqlite3_vfs_register=(e,t)=>(i._sqlite3_vfs_register=h.sqlite3_vfs_register)(e,t),i._sqlite3_vfs_unregister=e=>(i._sqlite3_vfs_unregister=h.sqlite3_vfs_unregister)(e),i._sqlite3_malloc64=e=>(i._sqlite3_malloc64=h.sqlite3_malloc64)(e),i._sqlite3_realloc=(e,t)=>(i._sqlite3_realloc=h.sqlite3_realloc)(e,t),i._sqlite3_realloc64=(e,t)=>(i._sqlite3_realloc64=h.sqlite3_realloc64)(e,t),i._sqlite3_value_text=e=>(i._sqlite3_value_text=h.sqlite3_value_text)(e),i._sqlite3_randomness=(e,t)=>(i._sqlite3_randomness=h.sqlite3_randomness)(e,t),i._sqlite3_stricmp=(e,t)=>(i._sqlite3_stricmp=h.sqlite3_stricmp)(e,t),i._sqlite3_strnicmp=(e,t,n)=>(i._sqlite3_strnicmp=h.sqlite3_strnicmp)(e,t,n),i._sqlite3_uri_parameter=(e,t)=>(i._sqlite3_uri_parameter=h.sqlite3_uri_parameter)(e,t),i._sqlite3_uri_boolean=(e,t,n)=>(i._sqlite3_uri_boolean=h.sqlite3_uri_boolean)(e,t,n),i._sqlite3_serialize=(e,t,n,r)=>(i._sqlite3_serialize=h.sqlite3_serialize)(e,t,n,r),i._sqlite3_prepare_v2=(e,t,n,r,s)=>(i._sqlite3_prepare_v2=h.sqlite3_prepare_v2)(e,t,n,r,s),i._sqlite3_step=e=>(i._sqlite3_step=h.sqlite3_step)(e),i._sqlite3_column_int64=(e,t)=>(i._sqlite3_column_int64=h.sqlite3_column_int64)(e,t),i._sqlite3_reset=e=>(i._sqlite3_reset=h.sqlite3_reset)(e),i._sqlite3_exec=(e,t,n,r,s)=>(i._sqlite3_exec=h.sqlite3_exec)(e,t,n,r,s),i._sqlite3_column_int=(e,t)=>(i._sqlite3_column_int=h.sqlite3_column_int)(e,t),i._sqlite3_finalize=e=>(i._sqlite3_finalize=h.sqlite3_finalize)(e),i._sqlite3_file_control=(e,t,n,r)=>(i._sqlite3_file_control=h.sqlite3_file_control)(e,t,n,r),i._sqlite3_column_name=(e,t)=>(i._sqlite3_column_name=h.sqlite3_column_name)(e,t),i._sqlite3_column_text=(e,t)=>(i._sqlite3_column_text=h.sqlite3_column_text)(e,t),i._sqlite3_column_type=(e,t)=>(i._sqlite3_column_type=h.sqlite3_column_type)(e,t),i._sqlite3_errmsg=e=>(i._sqlite3_errmsg=h.sqlite3_errmsg)(e),i._sqlite3_deserialize=(e,t,n,r,s,o)=>(i._sqlite3_deserialize=h.sqlite3_deserialize)(e,t,n,r,s,o),i._sqlite3_clear_bindings=e=>(i._sqlite3_clear_bindings=h.sqlite3_clear_bindings)(e),i._sqlite3_value_blob=e=>(i._sqlite3_value_blob=h.sqlite3_value_blob)(e),i._sqlite3_value_bytes=e=>(i._sqlite3_value_bytes=h.sqlite3_value_bytes)(e),i._sqlite3_value_double=e=>(i._sqlite3_value_double=h.sqlite3_value_double)(e),i._sqlite3_value_int=e=>(i._sqlite3_value_int=h.sqlite3_value_int)(e),i._sqlite3_value_int64=e=>(i._sqlite3_value_int64=h.sqlite3_value_int64)(e),i._sqlite3_value_subtype=e=>(i._sqlite3_value_subtype=h.sqlite3_value_subtype)(e),i._sqlite3_value_pointer=(e,t)=>(i._sqlite3_value_pointer=h.sqlite3_value_pointer)(e,t),i._sqlite3_value_type=e=>(i._sqlite3_value_type=h.sqlite3_value_type)(e),i._sqlite3_value_nochange=e=>(i._sqlite3_value_nochange=h.sqlite3_value_nochange)(e),i._sqlite3_value_frombind=e=>(i._sqlite3_value_frombind=h.sqlite3_value_frombind)(e),i._sqlite3_value_dup=e=>(i._sqlite3_value_dup=h.sqlite3_value_dup)(e),i._sqlite3_value_free=e=>(i._sqlite3_value_free=h.sqlite3_value_free)(e),i._sqlite3_result_blob=(e,t,n,r)=>(i._sqlite3_result_blob=h.sqlite3_result_blob)(e,t,n,r),i._sqlite3_result_error_toobig=e=>(i._sqlite3_result_error_toobig=h.sqlite3_result_error_toobig)(e),i._sqlite3_result_error_nomem=e=>(i._sqlite3_result_error_nomem=h.sqlite3_result_error_nomem)(e),i._sqlite3_result_double=(e,t)=>(i._sqlite3_result_double=h.sqlite3_result_double)(e,t),i._sqlite3_result_error=(e,t,n)=>(i._sqlite3_result_error=h.sqlite3_result_error)(e,t,n),i._sqlite3_result_int=(e,t)=>(i._sqlite3_result_int=h.sqlite3_result_int)(e,t),i._sqlite3_result_int64=(e,t)=>(i._sqlite3_result_int64=h.sqlite3_result_int64)(e,t),i._sqlite3_result_null=e=>(i._sqlite3_result_null=h.sqlite3_result_null)(e),i._sqlite3_result_pointer=(e,t,n,r)=>(i._sqlite3_result_pointer=h.sqlite3_result_pointer)(e,t,n,r),i._sqlite3_result_subtype=(e,t)=>(i._sqlite3_result_subtype=h.sqlite3_result_subtype)(e,t),i._sqlite3_result_text=(e,t,n,r)=>(i._sqlite3_result_text=h.sqlite3_result_text)(e,t,n,r),i._sqlite3_result_zeroblob=(e,t)=>(i._sqlite3_result_zeroblob=h.sqlite3_result_zeroblob)(e,t),i._sqlite3_result_zeroblob64=(e,t)=>(i._sqlite3_result_zeroblob64=h.sqlite3_result_zeroblob64)(e,t),i._sqlite3_result_error_code=(e,t)=>(i._sqlite3_result_error_code=h.sqlite3_result_error_code)(e,t),i._sqlite3_user_data=e=>(i._sqlite3_user_data=h.sqlite3_user_data)(e),i._sqlite3_context_db_handle=e=>(i._sqlite3_context_db_handle=h.sqlite3_context_db_handle)(e),i._sqlite3_vtab_nochange=e=>(i._sqlite3_vtab_nochange=h.sqlite3_vtab_nochange)(e),i._sqlite3_vtab_in_first=(e,t)=>(i._sqlite3_vtab_in_first=h.sqlite3_vtab_in_first)(e,t),i._sqlite3_vtab_in_next=(e,t)=>(i._sqlite3_vtab_in_next=h.sqlite3_vtab_in_next)(e,t),i._sqlite3_aggregate_context=(e,t)=>(i._sqlite3_aggregate_context=h.sqlite3_aggregate_context)(e,t),i._sqlite3_get_auxdata=(e,t)=>(i._sqlite3_get_auxdata=h.sqlite3_get_auxdata)(e,t),i._sqlite3_set_auxdata=(e,t,n,r)=>(i._sqlite3_set_auxdata=h.sqlite3_set_auxdata)(e,t,n,r),i._sqlite3_column_count=e=>(i._sqlite3_column_count=h.sqlite3_column_count)(e),i._sqlite3_data_count=e=>(i._sqlite3_data_count=h.sqlite3_data_count)(e),i._sqlite3_column_blob=(e,t)=>(i._sqlite3_column_blob=h.sqlite3_column_blob)(e,t),i._sqlite3_column_bytes=(e,t)=>(i._sqlite3_column_bytes=h.sqlite3_column_bytes)(e,t),i._sqlite3_column_double=(e,t)=>(i._sqlite3_column_double=h.sqlite3_column_double)(e,t),i._sqlite3_column_value=(e,t)=>(i._sqlite3_column_value=h.sqlite3_column_value)(e,t),i._sqlite3_column_decltype=(e,t)=>(i._sqlite3_column_decltype=h.sqlite3_column_decltype)(e,t),i._sqlite3_bind_blob=(e,t,n,r,s)=>(i._sqlite3_bind_blob=h.sqlite3_bind_blob)(e,t,n,r,s),i._sqlite3_bind_double=(e,t,n)=>(i._sqlite3_bind_double=h.sqlite3_bind_double)(e,t,n),i._sqlite3_bind_int=(e,t,n)=>(i._sqlite3_bind_int=h.sqlite3_bind_int)(e,t,n),i._sqlite3_bind_int64=(e,t,n)=>(i._sqlite3_bind_int64=h.sqlite3_bind_int64)(e,t,n),i._sqlite3_bind_null=(e,t)=>(i._sqlite3_bind_null=h.sqlite3_bind_null)(e,t),i._sqlite3_bind_pointer=(e,t,n,r,s)=>(i._sqlite3_bind_pointer=h.sqlite3_bind_pointer)(e,t,n,r,s),i._sqlite3_bind_text=(e,t,n,r,s)=>(i._sqlite3_bind_text=h.sqlite3_bind_text)(e,t,n,r,s),i._sqlite3_bind_parameter_count=e=>(i._sqlite3_bind_parameter_count=h.sqlite3_bind_parameter_count)(e),i._sqlite3_bind_parameter_name=(e,t)=>(i._sqlite3_bind_parameter_name=h.sqlite3_bind_parameter_name)(e,t),i._sqlite3_bind_parameter_index=(e,t)=>(i._sqlite3_bind_parameter_index=h.sqlite3_bind_parameter_index)(e,t),i._sqlite3_db_handle=e=>(i._sqlite3_db_handle=h.sqlite3_db_handle)(e),i._sqlite3_stmt_readonly=e=>(i._sqlite3_stmt_readonly=h.sqlite3_stmt_readonly)(e),i._sqlite3_stmt_isexplain=e=>(i._sqlite3_stmt_isexplain=h.sqlite3_stmt_isexplain)(e),i._sqlite3_stmt_explain=(e,t)=>(i._sqlite3_stmt_explain=h.sqlite3_stmt_explain)(e,t),i._sqlite3_stmt_busy=e=>(i._sqlite3_stmt_busy=h.sqlite3_stmt_busy)(e),i._sqlite3_stmt_status=(e,t,n)=>(i._sqlite3_stmt_status=h.sqlite3_stmt_status)(e,t,n),i._sqlite3_sql=e=>(i._sqlite3_sql=h.sqlite3_sql)(e),i._sqlite3_expanded_sql=e=>(i._sqlite3_expanded_sql=h.sqlite3_expanded_sql)(e),i._sqlite3_preupdate_old=(e,t,n)=>(i._sqlite3_preupdate_old=h.sqlite3_preupdate_old)(e,t,n),i._sqlite3_preupdate_count=e=>(i._sqlite3_preupdate_count=h.sqlite3_preupdate_count)(e),i._sqlite3_preupdate_depth=e=>(i._sqlite3_preupdate_depth=h.sqlite3_preupdate_depth)(e),i._sqlite3_preupdate_blobwrite=e=>(i._sqlite3_preupdate_blobwrite=h.sqlite3_preupdate_blobwrite)(e),i._sqlite3_preupdate_new=(e,t,n)=>(i._sqlite3_preupdate_new=h.sqlite3_preupdate_new)(e,t,n),i._sqlite3_value_numeric_type=e=>(i._sqlite3_value_numeric_type=h.sqlite3_value_numeric_type)(e),i._sqlite3_set_authorizer=(e,t,n)=>(i._sqlite3_set_authorizer=h.sqlite3_set_authorizer)(e,t,n),i._sqlite3_strglob=(e,t)=>(i._sqlite3_strglob=h.sqlite3_strglob)(e,t),i._sqlite3_strlike=(e,t,n)=>(i._sqlite3_strlike=h.sqlite3_strlike)(e,t,n),i._sqlite3_auto_extension=e=>(i._sqlite3_auto_extension=h.sqlite3_auto_extension)(e),i._sqlite3_cancel_auto_extension=e=>(i._sqlite3_cancel_auto_extension=h.sqlite3_cancel_auto_extension)(e),i._sqlite3_reset_auto_extension=()=>(i._sqlite3_reset_auto_extension=h.sqlite3_reset_auto_extension)(),i._sqlite3_prepare_v3=(e,t,n,r,s,o)=>(i._sqlite3_prepare_v3=h.sqlite3_prepare_v3)(e,t,n,r,s,o),i._sqlite3_create_module=(e,t,n,r)=>(i._sqlite3_create_module=h.sqlite3_create_module)(e,t,n,r),i._sqlite3_create_module_v2=(e,t,n,r,s)=>(i._sqlite3_create_module_v2=h.sqlite3_create_module_v2)(e,t,n,r,s),i._sqlite3_drop_modules=(e,t)=>(i._sqlite3_drop_modules=h.sqlite3_drop_modules)(e,t),i._sqlite3_declare_vtab=(e,t)=>(i._sqlite3_declare_vtab=h.sqlite3_declare_vtab)(e,t),i._sqlite3_vtab_on_conflict=e=>(i._sqlite3_vtab_on_conflict=h.sqlite3_vtab_on_conflict)(e),i._sqlite3_vtab_collation=(e,t)=>(i._sqlite3_vtab_collation=h.sqlite3_vtab_collation)(e,t),i._sqlite3_vtab_in=(e,t,n)=>(i._sqlite3_vtab_in=h.sqlite3_vtab_in)(e,t,n),i._sqlite3_vtab_rhs_value=(e,t,n)=>(i._sqlite3_vtab_rhs_value=h.sqlite3_vtab_rhs_value)(e,t,n),i._sqlite3_vtab_distinct=e=>(i._sqlite3_vtab_distinct=h.sqlite3_vtab_distinct)(e),i._sqlite3_keyword_name=(e,t,n)=>(i._sqlite3_keyword_name=h.sqlite3_keyword_name)(e,t,n),i._sqlite3_keyword_count=()=>(i._sqlite3_keyword_count=h.sqlite3_keyword_count)(),i._sqlite3_keyword_check=(e,t)=>(i._sqlite3_keyword_check=h.sqlite3_keyword_check)(e,t),i._sqlite3_complete=e=>(i._sqlite3_complete=h.sqlite3_complete)(e),i._sqlite3_libversion=()=>(i._sqlite3_libversion=h.sqlite3_libversion)(),i._sqlite3_libversion_number=()=>(i._sqlite3_libversion_number=h.sqlite3_libversion_number)(),i._sqlite3_shutdown=()=>(i._sqlite3_shutdown=h.sqlite3_shutdown)(),i._sqlite3_last_insert_rowid=e=>(i._sqlite3_last_insert_rowid=h.sqlite3_last_insert_rowid)(e),i._sqlite3_set_last_insert_rowid=(e,t)=>(i._sqlite3_set_last_insert_rowid=h.sqlite3_set_last_insert_rowid)(e,t),i._sqlite3_changes64=e=>(i._sqlite3_changes64=h.sqlite3_changes64)(e),i._sqlite3_changes=e=>(i._sqlite3_changes=h.sqlite3_changes)(e),i._sqlite3_total_changes64=e=>(i._sqlite3_total_changes64=h.sqlite3_total_changes64)(e),i._sqlite3_total_changes=e=>(i._sqlite3_total_changes=h.sqlite3_total_changes)(e),i._sqlite3_txn_state=(e,t)=>(i._sqlite3_txn_state=h.sqlite3_txn_state)(e,t),i._sqlite3_close_v2=e=>(i._sqlite3_close_v2=h.sqlite3_close_v2)(e),i._sqlite3_busy_handler=(e,t,n)=>(i._sqlite3_busy_handler=h.sqlite3_busy_handler)(e,t,n),i._sqlite3_progress_handler=(e,t,n,r)=>(i._sqlite3_progress_handler=h.sqlite3_progress_handler)(e,t,n,r),i._sqlite3_busy_timeout=(e,t)=>(i._sqlite3_busy_timeout=h.sqlite3_busy_timeout)(e,t),i._sqlite3_interrupt=e=>(i._sqlite3_interrupt=h.sqlite3_interrupt)(e),i._sqlite3_is_interrupted=e=>(i._sqlite3_is_interrupted=h.sqlite3_is_interrupted)(e),i._sqlite3_create_function=(e,t,n,r,s,o,p,g)=>(i._sqlite3_create_function=h.sqlite3_create_function)(e,t,n,r,s,o,p,g),i._sqlite3_create_function_v2=(e,t,n,r,s,o,p,g,O)=>(i._sqlite3_create_function_v2=h.sqlite3_create_function_v2)(e,t,n,r,s,o,p,g,O),i._sqlite3_create_window_function=(e,t,n,r,s,o,p,g,O,R)=>(i._sqlite3_create_window_function=h.sqlite3_create_window_function)(e,t,n,r,s,o,p,g,O,R),i._sqlite3_overload_function=(e,t,n)=>(i._sqlite3_overload_function=h.sqlite3_overload_function)(e,t,n),i._sqlite3_trace_v2=(e,t,n,r)=>(i._sqlite3_trace_v2=h.sqlite3_trace_v2)(e,t,n,r),i._sqlite3_commit_hook=(e,t,n)=>(i._sqlite3_commit_hook=h.sqlite3_commit_hook)(e,t,n),i._sqlite3_update_hook=(e,t,n)=>(i._sqlite3_update_hook=h.sqlite3_update_hook)(e,t,n),i._sqlite3_rollback_hook=(e,t,n)=>(i._sqlite3_rollback_hook=h.sqlite3_rollback_hook)(e,t,n),i._sqlite3_preupdate_hook=(e,t,n)=>(i._sqlite3_preupdate_hook=h.sqlite3_preupdate_hook)(e,t,n),i._sqlite3_error_offset=e=>(i._sqlite3_error_offset=h.sqlite3_error_offset)(e),i._sqlite3_errcode=e=>(i._sqlite3_errcode=h.sqlite3_errcode)(e),i._sqlite3_extended_errcode=e=>(i._sqlite3_extended_errcode=h.sqlite3_extended_errcode)(e),i._sqlite3_errstr=e=>(i._sqlite3_errstr=h.sqlite3_errstr)(e),i._sqlite3_limit=(e,t,n)=>(i._sqlite3_limit=h.sqlite3_limit)(e,t,n),i._sqlite3_open=(e,t)=>(i._sqlite3_open=h.sqlite3_open)(e,t),i._sqlite3_open_v2=(e,t,n,r)=>(i._sqlite3_open_v2=h.sqlite3_open_v2)(e,t,n,r),i._sqlite3_create_collation=(e,t,n,r,s)=>(i._sqlite3_create_collation=h.sqlite3_create_collation)(e,t,n,r,s),i._sqlite3_create_collation_v2=(e,t,n,r,s,o)=>(i._sqlite3_create_collation_v2=h.sqlite3_create_collation_v2)(e,t,n,r,s,o),i._sqlite3_collation_needed=(e,t,n)=>(i._sqlite3_collation_needed=h.sqlite3_collation_needed)(e,t,n),i._sqlite3_get_autocommit=e=>(i._sqlite3_get_autocommit=h.sqlite3_get_autocommit)(e),i._sqlite3_table_column_metadata=(e,t,n,r,s,o,p,g,O)=>(i._sqlite3_table_column_metadata=h.sqlite3_table_column_metadata)(e,t,n,r,s,o,p,g,O),i._sqlite3_extended_result_codes=(e,t)=>(i._sqlite3_extended_result_codes=h.sqlite3_extended_result_codes)(e,t),i._sqlite3_uri_key=(e,t)=>(i._sqlite3_uri_key=h.sqlite3_uri_key)(e,t),i._sqlite3_uri_int64=(e,t,n)=>(i._sqlite3_uri_int64=h.sqlite3_uri_int64)(e,t,n),i._sqlite3_db_name=(e,t)=>(i._sqlite3_db_name=h.sqlite3_db_name)(e,t),i._sqlite3_db_filename=(e,t)=>(i._sqlite3_db_filename=h.sqlite3_db_filename)(e,t),i._sqlite3_db_readonly=(e,t)=>(i._sqlite3_db_readonly=h.sqlite3_db_readonly)(e,t),i._sqlite3_compileoption_used=e=>(i._sqlite3_compileoption_used=h.sqlite3_compileoption_used)(e),i._sqlite3_compileoption_get=e=>(i._sqlite3_compileoption_get=h.sqlite3_compileoption_get)(e),i._sqlite3session_diff=(e,t,n,r)=>(i._sqlite3session_diff=h.sqlite3session_diff)(e,t,n,r),i._sqlite3session_attach=(e,t)=>(i._sqlite3session_attach=h.sqlite3session_attach)(e,t),i._sqlite3session_create=(e,t,n)=>(i._sqlite3session_create=h.sqlite3session_create)(e,t,n),i._sqlite3session_delete=e=>(i._sqlite3session_delete=h.sqlite3session_delete)(e),i._sqlite3session_table_filter=(e,t,n)=>(i._sqlite3session_table_filter=h.sqlite3session_table_filter)(e,t,n),i._sqlite3session_changeset=(e,t,n)=>(i._sqlite3session_changeset=h.sqlite3session_changeset)(e,t,n),i._sqlite3session_changeset_strm=(e,t,n)=>(i._sqlite3session_changeset_strm=h.sqlite3session_changeset_strm)(e,t,n),i._sqlite3session_patchset_strm=(e,t,n)=>(i._sqlite3session_patchset_strm=h.sqlite3session_patchset_strm)(e,t,n),i._sqlite3session_patchset=(e,t,n)=>(i._sqlite3session_patchset=h.sqlite3session_patchset)(e,t,n),i._sqlite3session_enable=(e,t)=>(i._sqlite3session_enable=h.sqlite3session_enable)(e,t),i._sqlite3session_indirect=(e,t)=>(i._sqlite3session_indirect=h.sqlite3session_indirect)(e,t),i._sqlite3session_isempty=e=>(i._sqlite3session_isempty=h.sqlite3session_isempty)(e),i._sqlite3session_memory_used=e=>(i._sqlite3session_memory_used=h.sqlite3session_memory_used)(e),i._sqlite3session_object_config=(e,t,n)=>(i._sqlite3session_object_config=h.sqlite3session_object_config)(e,t,n),i._sqlite3session_changeset_size=e=>(i._sqlite3session_changeset_size=h.sqlite3session_changeset_size)(e),i._sqlite3changeset_start=(e,t,n)=>(i._sqlite3changeset_start=h.sqlite3changeset_start)(e,t,n),i._sqlite3changeset_start_v2=(e,t,n,r)=>(i._sqlite3changeset_start_v2=h.sqlite3changeset_start_v2)(e,t,n,r),i._sqlite3changeset_start_strm=(e,t,n)=>(i._sqlite3changeset_start_strm=h.sqlite3changeset_start_strm)(e,t,n),i._sqlite3changeset_start_v2_strm=(e,t,n,r)=>(i._sqlite3changeset_start_v2_strm=h.sqlite3changeset_start_v2_strm)(e,t,n,r),i._sqlite3changeset_next=e=>(i._sqlite3changeset_next=h.sqlite3changeset_next)(e),i._sqlite3changeset_op=(e,t,n,r,s)=>(i._sqlite3changeset_op=h.sqlite3changeset_op)(e,t,n,r,s),i._sqlite3changeset_pk=(e,t,n)=>(i._sqlite3changeset_pk=h.sqlite3changeset_pk)(e,t,n),i._sqlite3changeset_old=(e,t,n)=>(i._sqlite3changeset_old=h.sqlite3changeset_old)(e,t,n),i._sqlite3changeset_new=(e,t,n)=>(i._sqlite3changeset_new=h.sqlite3changeset_new)(e,t,n),i._sqlite3changeset_conflict=(e,t,n)=>(i._sqlite3changeset_conflict=h.sqlite3changeset_conflict)(e,t,n),i._sqlite3changeset_fk_conflicts=(e,t)=>(i._sqlite3changeset_fk_conflicts=h.sqlite3changeset_fk_conflicts)(e,t),i._sqlite3changeset_finalize=e=>(i._sqlite3changeset_finalize=h.sqlite3changeset_finalize)(e),i._sqlite3changeset_invert=(e,t,n,r)=>(i._sqlite3changeset_invert=h.sqlite3changeset_invert)(e,t,n,r),i._sqlite3changeset_invert_strm=(e,t,n,r)=>(i._sqlite3changeset_invert_strm=h.sqlite3changeset_invert_strm)(e,t,n,r),i._sqlite3changeset_apply_v2=(e,t,n,r,s,o,p,g,O)=>(i._sqlite3changeset_apply_v2=h.sqlite3changeset_apply_v2)(e,t,n,r,s,o,p,g,O),i._sqlite3changeset_apply=(e,t,n,r,s,o)=>(i._sqlite3changeset_apply=h.sqlite3changeset_apply)(e,t,n,r,s,o),i._sqlite3changeset_apply_v2_strm=(e,t,n,r,s,o,p,g,O)=>(i._sqlite3changeset_apply_v2_strm=h.sqlite3changeset_apply_v2_strm)(e,t,n,r,s,o,p,g,O),i._sqlite3changeset_apply_strm=(e,t,n,r,s,o)=>(i._sqlite3changeset_apply_strm=h.sqlite3changeset_apply_strm)(e,t,n,r,s,o),i._sqlite3changegroup_new=e=>(i._sqlite3changegroup_new=h.sqlite3changegroup_new)(e),i._sqlite3changegroup_add=(e,t,n)=>(i._sqlite3changegroup_add=h.sqlite3changegroup_add)(e,t,n),i._sqlite3changegroup_output=(e,t,n)=>(i._sqlite3changegroup_output=h.sqlite3changegroup_output)(e,t,n),i._sqlite3changegroup_add_strm=(e,t,n)=>(i._sqlite3changegroup_add_strm=h.sqlite3changegroup_add_strm)(e,t,n),i._sqlite3changegroup_output_strm=(e,t,n)=>(i._sqlite3changegroup_output_strm=h.sqlite3changegroup_output_strm)(e,t,n),i._sqlite3changegroup_delete=e=>(i._sqlite3changegroup_delete=h.sqlite3changegroup_delete)(e),i._sqlite3changeset_concat=(e,t,n,r,s,o)=>(i._sqlite3changeset_concat=h.sqlite3changeset_concat)(e,t,n,r,s,o),i._sqlite3changeset_concat_strm=(e,t,n,r,s,o)=>(i._sqlite3changeset_concat_strm=h.sqlite3changeset_concat_strm)(e,t,n,r,s,o),i._sqlite3session_config=(e,t)=>(i._sqlite3session_config=h.sqlite3session_config)(e,t),i._sqlite3_sourceid=()=>(i._sqlite3_sourceid=h.sqlite3_sourceid)(),i._sqlite3__wasm_pstack_ptr=()=>(i._sqlite3__wasm_pstack_ptr=h.sqlite3__wasm_pstack_ptr)(),i._sqlite3__wasm_pstack_restore=e=>(i._sqlite3__wasm_pstack_restore=h.sqlite3__wasm_pstack_restore)(e),i._sqlite3__wasm_pstack_alloc=e=>(i._sqlite3__wasm_pstack_alloc=h.sqlite3__wasm_pstack_alloc)(e),i._sqlite3__wasm_pstack_remaining=()=>(i._sqlite3__wasm_pstack_remaining=h.sqlite3__wasm_pstack_remaining)(),i._sqlite3__wasm_pstack_quota=()=>(i._sqlite3__wasm_pstack_quota=h.sqlite3__wasm_pstack_quota)(),i._sqlite3__wasm_db_error=(e,t,n)=>(i._sqlite3__wasm_db_error=h.sqlite3__wasm_db_error)(e,t,n),i._sqlite3__wasm_test_struct=e=>(i._sqlite3__wasm_test_struct=h.sqlite3__wasm_test_struct)(e),i._sqlite3__wasm_enum_json=()=>(i._sqlite3__wasm_enum_json=h.sqlite3__wasm_enum_json)(),i._sqlite3__wasm_vfs_unlink=(e,t)=>(i._sqlite3__wasm_vfs_unlink=h.sqlite3__wasm_vfs_unlink)(e,t),i._sqlite3__wasm_db_vfs=(e,t)=>(i._sqlite3__wasm_db_vfs=h.sqlite3__wasm_db_vfs)(e,t),i._sqlite3__wasm_db_reset=e=>(i._sqlite3__wasm_db_reset=h.sqlite3__wasm_db_reset)(e),i._sqlite3__wasm_db_export_chunked=(e,t)=>(i._sqlite3__wasm_db_export_chunked=h.sqlite3__wasm_db_export_chunked)(e,t),i._sqlite3__wasm_db_serialize=(e,t,n,r,s)=>(i._sqlite3__wasm_db_serialize=h.sqlite3__wasm_db_serialize)(e,t,n,r,s),i._sqlite3__wasm_vfs_create_file=(e,t,n,r)=>(i._sqlite3__wasm_vfs_create_file=h.sqlite3__wasm_vfs_create_file)(e,t,n,r),i._sqlite3__wasm_posix_create_file=(e,t,n)=>(i._sqlite3__wasm_posix_create_file=h.sqlite3__wasm_posix_create_file)(e,t,n),i._sqlite3__wasm_kvvfsMakeKeyOnPstack=(e,t)=>(i._sqlite3__wasm_kvvfsMakeKeyOnPstack=h.sqlite3__wasm_kvvfsMakeKeyOnPstack)(e,t),i._sqlite3__wasm_kvvfs_methods=()=>(i._sqlite3__wasm_kvvfs_methods=h.sqlite3__wasm_kvvfs_methods)(),i._sqlite3__wasm_vtab_config=(e,t,n)=>(i._sqlite3__wasm_vtab_config=h.sqlite3__wasm_vtab_config)(e,t,n),i._sqlite3__wasm_db_config_ip=(e,t,n,r)=>(i._sqlite3__wasm_db_config_ip=h.sqlite3__wasm_db_config_ip)(e,t,n,r),i._sqlite3__wasm_db_config_pii=(e,t,n,r,s)=>(i._sqlite3__wasm_db_config_pii=h.sqlite3__wasm_db_config_pii)(e,t,n,r,s),i._sqlite3__wasm_db_config_s=(e,t,n)=>(i._sqlite3__wasm_db_config_s=h.sqlite3__wasm_db_config_s)(e,t,n),i._sqlite3__wasm_config_i=(e,t)=>(i._sqlite3__wasm_config_i=h.sqlite3__wasm_config_i)(e,t),i._sqlite3__wasm_config_ii=(e,t,n)=>(i._sqlite3__wasm_config_ii=h.sqlite3__wasm_config_ii)(e,t,n),i._sqlite3__wasm_config_j=(e,t)=>(i._sqlite3__wasm_config_j=h.sqlite3__wasm_config_j)(e,t),i._sqlite3__wasm_qfmt_token=(e,t)=>(i._sqlite3__wasm_qfmt_token=h.sqlite3__wasm_qfmt_token)(e,t),i._sqlite3__wasm_init_wasmfs=e=>(i._sqlite3__wasm_init_wasmfs=h.sqlite3__wasm_init_wasmfs)(e),i._sqlite3__wasm_test_intptr=e=>(i._sqlite3__wasm_test_intptr=h.sqlite3__wasm_test_intptr)(e),i._sqlite3__wasm_test_voidptr=e=>(i._sqlite3__wasm_test_voidptr=h.sqlite3__wasm_test_voidptr)(e),i._sqlite3__wasm_test_int64_max=()=>(i._sqlite3__wasm_test_int64_max=h.sqlite3__wasm_test_int64_max)(),i._sqlite3__wasm_test_int64_min=()=>(i._sqlite3__wasm_test_int64_min=h.sqlite3__wasm_test_int64_min)(),i._sqlite3__wasm_test_int64_times2=e=>(i._sqlite3__wasm_test_int64_times2=h.sqlite3__wasm_test_int64_times2)(e),i._sqlite3__wasm_test_int64_minmax=(e,t)=>(i._sqlite3__wasm_test_int64_minmax=h.sqlite3__wasm_test_int64_minmax)(e,t),i._sqlite3__wasm_test_int64ptr=e=>(i._sqlite3__wasm_test_int64ptr=h.sqlite3__wasm_test_int64ptr)(e),i._sqlite3__wasm_test_stack_overflow=e=>(i._sqlite3__wasm_test_stack_overflow=h.sqlite3__wasm_test_stack_overflow)(e),i._sqlite3__wasm_test_str_hello=e=>(i._sqlite3__wasm_test_str_hello=h.sqlite3__wasm_test_str_hello)(e),i._sqlite3__wasm_SQLTester_strglob=(e,t)=>(i._sqlite3__wasm_SQLTester_strglob=h.sqlite3__wasm_SQLTester_strglob)(e,t),i._malloc=e=>(i._malloc=h.malloc)(e),i._free=e=>(i._free=h.free)(e),i._realloc=(e,t)=>(i._realloc=h.realloc)(e,t);var kt=(e,t)=>(kt=h.emscripten_builtin_memalign)(e,t);i.wasmMemory=Re;var nt,Tt;$e=function e(){nt||Ft(),nt||($e=e)};function Ft(){if(Ne>0||!Tt&&(Tt=1,Lt(),Ne>0))return;function e(){nt||(nt=1,i.calledRun=1,!dt&&(Ct(),ye(i),i.onRuntimeInitialized?.(),Dt()))}i.setStatus?(i.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>i.setStatus(""),1),e()},1)):e()}if(i.preInit)for(typeof i.preInit=="function"&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return Ft(),i.runSQLite3PostLoadInit=function(e){if(globalThis.sqlite3ApiBootstrap=function t(n=globalThis.sqlite3ApiConfig||t.defaultConfig){if(t.sqlite3)return(t.sqlite3.config||console).warn("sqlite3ApiBootstrap() called multiple times.","Config and external initializers are ignored on calls after the first."),t.sqlite3;const r=Object.assign(Object.create(null),{exports:void 0,memory:void 0,bigIntEnabled:typeof i<"u"&&i.HEAPU64?!0:!!globalThis.BigInt64Array,debug:console.debug.bind(console),warn:console.warn.bind(console),error:console.error.bind(console),log:console.log.bind(console),wasmfsOpfsDir:"/opfs",useStdAlloc:!1},n||{});Object.assign(r,{allocExportName:r.useStdAlloc?"malloc":"sqlite3_malloc",deallocExportName:r.useStdAlloc?"free":"sqlite3_free",reallocExportName:r.useStdAlloc?"realloc":"sqlite3_realloc"},r),["exports","memory","wasmfsOpfsDir"].forEach(l=>{typeof r[l]=="function"&&(r[l]=r[l]())}),delete globalThis.sqlite3ApiConfig,delete t.defaultConfig;const s=Object.create(null),o=Object.create(null),p=l=>s.sqlite3_js_rc_str&&s.sqlite3_js_rc_str(l)||"Unknown result code #"+l,g=l=>typeof l=="number"&&l===(l|0);class O extends Error{constructor(..._){let u;if(_.length)if(g(_[0]))if(u=_[0],_.length===1)super(p(_[0]));else{const I=p(u);typeof _[1]=="object"?super(I,_[1]):(_[0]=I+":",super(_.join(" ")))}else _.length===2&&typeof _[1]=="object"?super(..._):super(_.join(" "));this.resultCode=u||s.SQLITE_ERROR,this.name="SQLite3Error"}}O.toss=(...l)=>{throw new O(...l)};const R=O.toss;r.wasmfsOpfsDir&&!/^\/[^/]+$/.test(r.wasmfsOpfsDir)&&R("config.wasmfsOpfsDir must be falsy or in the form '/dir-name'.");const z=l=>typeof l!="bigint"&&l===(l|0)&&l<=2147483647&&l>=-2147483648,Q=function l(_){return l._max||(l._max=BigInt("0x7fffffffffffffff"),l._min=~l._max),_>=l._min&&_<=l._max},T=l=>l>=-0x7fffffffn-1n&&l<=0x7fffffffn,A=function l(_){return l._min||(l._min=Number.MIN_SAFE_INTEGER,l._max=Number.MAX_SAFE_INTEGER),_>=l._min&&_<=l._max},D=l=>l&&l.constructor&&z(l.constructor.BYTES_PER_ELEMENT)?l:!1,q=typeof SharedArrayBuffer>"u"?function(){}:SharedArrayBuffer,w=l=>l.buffer instanceof q,x=(l,_,u)=>w(l)?l.slice(_,u):l.subarray(_,u),N=l=>l&&(l instanceof Uint8Array||l instanceof Int8Array||l instanceof ArrayBuffer),P=l=>l&&(l instanceof Uint8Array||l instanceof Int8Array||l instanceof ArrayBuffer),S=l=>N(l)||R("Value is not of a supported TypedArray type."),L=new TextDecoder("utf-8"),$=function(l,_,u){return L.decode(x(l,_,u))},c=function(l){return P(l)?$(l instanceof ArrayBuffer?new Uint8Array(l):l):Array.isArray(l)?l.join(""):(o.isPtr(l)&&(l=o.cstrToJs(l)),l)};class d extends Error{constructor(..._){_.length===2&&typeof _[1]=="object"?super(..._):_.length?super(_.join(" ")):super("Allocation failed."),this.resultCode=s.SQLITE_NOMEM,this.name="WasmAllocError"}}d.toss=(...l)=>{throw new d(...l)},Object.assign(s,{sqlite3_bind_blob:void 0,sqlite3_bind_text:void 0,sqlite3_create_function_v2:(l,_,u,I,U,ee,ne,se,ie)=>{},sqlite3_create_function:(l,_,u,I,U,ee,ne,se)=>{},sqlite3_create_window_function:(l,_,u,I,U,ee,ne,se,ie,j)=>{},sqlite3_prepare_v3:(l,_,u,I,U,ee)=>{},sqlite3_prepare_v2:(l,_,u,I,U)=>{},sqlite3_exec:(l,_,u,I,U)=>{},sqlite3_randomness:(l,_)=>{}});const y={affirmBindableTypedArray:S,flexibleString:c,bigIntFits32:T,bigIntFits64:Q,bigIntFitsDouble:A,isBindableTypedArray:N,isInt32:z,isSQLableTypedArray:P,isTypedArray:D,typedArrayToString:$,isUIThread:()=>globalThis.window===globalThis&&!!globalThis.document,isSharedTypedArray:w,toss:function(...l){throw new Error(l.join(" "))},toss3:R,typedArrayPart:x,affirmDbHeader:function(l){l instanceof ArrayBuffer&&(l=new Uint8Array(l));const _="SQLite format 3";_.length>l.byteLength&&R("Input does not contain an SQLite3 database header.");for(let u=0;u<_.length;++u)_.charCodeAt(u)!==l[u]&&R("Input does not contain an SQLite3 database header.")},affirmIsDb:function(l){l instanceof ArrayBuffer&&(l=new Uint8Array(l));const _=l.byteLength;(_<512||_%512!==0)&&R("Byte array size",_,"is invalid for an SQLite3 db."),y.affirmDbHeader(l)}};Object.assign(o,{ptrSizeof:r.wasmPtrSizeof||4,ptrIR:r.wasmPtrIR||"i32",bigIntEnabled:!!r.bigIntEnabled,exports:r.exports||R("Missing API config.exports (WASM module exports)."),memory:r.memory||r.exports.memory||R("API config object requires a WebAssembly.Memory object","in either config.exports.memory (exported)","or config.memory (imported)."),alloc:void 0,realloc:void 0,dealloc:void 0}),o.allocFromTypedArray=function(l){l instanceof ArrayBuffer&&(l=new Uint8Array(l)),S(l);const _=o.alloc(l.byteLength||1);return o.heapForSize(l.constructor).set(l.byteLength?l:[0],_),_};{const l=r.allocExportName,_=r.deallocExportName,u=r.reallocExportName;for(const I of[l,_,u])o.exports[I]instanceof Function||R("Missing required exports[",I,"] function.");o.alloc=function I(U){return I.impl(U)||d.toss("Failed to allocate",U," bytes.")},o.alloc.impl=o.exports[l],o.realloc=function I(U,ee){const ne=I.impl(U,ee);return ee?ne||d.toss("Failed to reallocate",ee," bytes."):0},o.realloc.impl=o.exports[u],o.dealloc=o.exports[_]}o.compileOptionUsed=function l(_){if(arguments.length){if(Array.isArray(_)){const u={};return _.forEach(I=>{u[I]=s.sqlite3_compileoption_used(I)}),u}else if(typeof _=="object")return Object.keys(_).forEach(u=>{_[u]=s.sqlite3_compileoption_used(u)}),_}else{if(l._result)return l._result;l._opt||(l._rx=/^([^=]+)=(.+)/,l._rxInt=/^-?\d+$/,l._opt=function(ne,se){const ie=l._rx.exec(ne);se[0]=ie?ie[1]:ne,se[1]=ie?l._rxInt.test(ie[2])?+ie[2]:ie[2]:!0});const u={},I=[0,0];let U=0,ee;for(;ee=s.sqlite3_compileoption_get(U++);)l._opt(ee,I),u[I[0]]=I[1];return l._result=u}return typeof _=="string"?!!s.sqlite3_compileoption_used(_):!1},o.pstack=Object.assign(Object.create(null),{restore:o.exports.sqlite3__wasm_pstack_restore,alloc:function(l){return typeof l=="string"&&!(l=o.sizeofIR(l))&&d.toss("Invalid value for pstack.alloc(",arguments[0],")"),o.exports.sqlite3__wasm_pstack_alloc(l)||d.toss("Could not allocate",l,"bytes from the pstack.")},allocChunks:function(l,_){typeof _=="string"&&!(_=o.sizeofIR(_))&&d.toss("Invalid size value for allocChunks(",arguments[1],")");const u=o.pstack.alloc(l*_),I=[];let U=0,ee=0;for(;Ul===1?o.pstack.alloc(_?8:o.ptrSizeof):o.pstack.allocChunks(l,_?8:o.ptrSizeof),call:function(l){const _=o.pstack.pointer;try{return l(m)}finally{o.pstack.restore(_)}}}),Object.defineProperties(o.pstack,{pointer:{configurable:!1,iterable:!0,writeable:!1,get:o.exports.sqlite3__wasm_pstack_ptr},quota:{configurable:!1,iterable:!0,writeable:!1,get:o.exports.sqlite3__wasm_pstack_quota},remaining:{configurable:!1,iterable:!0,writeable:!1,get:o.exports.sqlite3__wasm_pstack_remaining}}),s.sqlite3_randomness=(...l)=>{if(l.length===1&&y.isTypedArray(l[0])&&l[0].BYTES_PER_ELEMENT===1){const _=l[0];if(_.byteLength===0)return o.exports.sqlite3_randomness(0,0),_;const u=o.pstack.pointer;try{let I=_.byteLength,U=0;const ee=o.exports.sqlite3_randomness,ne=o.heap8u(),se=I<512?I:512,ie=o.pstack.alloc(se);do{const j=I>se?se:I;ee(j,ie),_.set(x(ne,ie,ie+j),U),I-=j,U+=j}while(I>0)}catch(I){console.error("Highly unexpected (and ignored!) exception in sqlite3_randomness():",I)}finally{o.pstack.restore(u)}return _}o.exports.sqlite3_randomness(...l)};let B;if(s.sqlite3_wasmfs_opfs_dir=function(){if(B!==void 0)return B;const l=r.wasmfsOpfsDir;if(!l||!globalThis.FileSystemHandle||!globalThis.FileSystemDirectoryHandle||!globalThis.FileSystemFileHandle)return B="";try{return l&&o.xCallWrapped("sqlite3__wasm_init_wasmfs","i32",["string"],l)===0?B=l:B=""}catch{return B=""}},s.sqlite3_wasmfs_filename_is_persistent=function(l){const _=s.sqlite3_wasmfs_opfs_dir();return _&&l?l.startsWith(_+"/"):!1},s.sqlite3_js_db_uses_vfs=function(l,_,u=0){try{const I=s.sqlite3_vfs_find(_);return I?l?I===s.sqlite3_js_db_vfs(l,u)?I:!1:I===s.sqlite3_vfs_find(0)?I:!1:!1}catch{return!1}},s.sqlite3_js_vfs_list=function(){const l=[];let _=s.sqlite3_vfs_find(0);for(;_;){const u=new s.sqlite3_vfs(_);l.push(o.cstrToJs(u.$zName)),_=u.$pNext,u.dispose()}return l},s.sqlite3_js_db_export=function(l,_=0){l=o.xWrap.testConvertArg("sqlite3*",l),l||R("Invalid sqlite3* argument."),o.bigIntEnabled||R("BigInt64 support is not enabled.");const u=o.scopedAllocPush();let I;try{const U=o.scopedAlloc(8+o.ptrSizeof),ee=U+8,ne=_?o.isPtr(_)?_:o.scopedAllocCString(""+_):0;let se=o.exports.sqlite3__wasm_db_serialize(l,ne,ee,U,0);se&&R("Database serialization failed with code",m.capi.sqlite3_js_rc_str(se)),I=o.peekPtr(ee);const ie=o.peek(U,"i64");return se=ie?o.heap8u().slice(I,I+Number(ie)):new Uint8Array,se}finally{I&&o.exports.sqlite3_free(I),o.scopedAllocPop(u)}},s.sqlite3_js_db_vfs=(l,_=0)=>y.sqlite3__wasm_db_vfs(l,_),s.sqlite3_js_aggregate_context=(l,_)=>s.sqlite3_aggregate_context(l,_)||(_?d.toss("Cannot allocate",_,"bytes for sqlite3_aggregate_context()"):0),s.sqlite3_js_posix_create_file=function(l,_,u){let I;_&&o.isPtr(_)?I=_:_ instanceof ArrayBuffer||_ instanceof Uint8Array?(I=o.allocFromTypedArray(_),(arguments.length<3||!y.isInt32(u)||u<0)&&(u=_.byteLength)):O.toss("Invalid 2nd argument for sqlite3_js_posix_create_file().");try{(!y.isInt32(u)||u<0)&&O.toss("Invalid 3rd argument for sqlite3_js_posix_create_file().");const U=y.sqlite3__wasm_posix_create_file(l,I,u);U&&O.toss("Creation of file failed with sqlite3 result code",s.sqlite3_js_rc_str(U))}finally{o.dealloc(I)}},s.sqlite3_js_vfs_create_file=function(l,_,u,I){r.warn("sqlite3_js_vfs_create_file() is deprecated and","should be avoided because it can lead to C-level crashes.","See its documentation for alternative options.");let U;u?(o.isPtr(u)?U=u:u instanceof ArrayBuffer&&(u=new Uint8Array(u)),u instanceof Uint8Array?(U=o.allocFromTypedArray(u),(arguments.length<4||!y.isInt32(I)||I<0)&&(I=u.byteLength)):O.toss("Invalid 3rd argument type for sqlite3_js_vfs_create_file().")):U=0,(!y.isInt32(I)||I<0)&&(o.dealloc(U),O.toss("Invalid 4th argument for sqlite3_js_vfs_create_file()."));try{const ee=y.sqlite3__wasm_vfs_create_file(l,_,U,I);ee&&O.toss("Creation of file failed with sqlite3 result code",s.sqlite3_js_rc_str(ee))}finally{o.dealloc(U)}},s.sqlite3_js_sql_to_string=l=>{if(typeof l=="string")return l;const _=c(v);return _===v?void 0:_},y.isUIThread()){const l=function(_){const u=Object.create(null);return u.prefix="kvvfs-"+_,u.stores=[],(_==="session"||_==="")&&u.stores.push(globalThis.sessionStorage),(_==="local"||_==="")&&u.stores.push(globalThis.localStorage),u};s.sqlite3_js_kvvfs_clear=function(_=""){let u=0;const I=l(_);return I.stores.forEach(U=>{const ee=[];let ne;for(ne=0;neU.removeItem(se)),u+=ee.length}),u},s.sqlite3_js_kvvfs_size=function(_=""){let u=0;const I=l(_);return I.stores.forEach(U=>{let ee;for(ee=0;eef(l,_,"sqlite3_preupdate_new"),s.sqlite3_preupdate_old_js=(l,_)=>f(l,_,"sqlite3_preupdate_old"),s.sqlite3changeset_new_js=(l,_)=>f(l,_,"sqlite3changeset_new"),s.sqlite3changeset_old_js=(l,_)=>f(l,_,"sqlite3changeset_old");const m={WasmAllocError:d,SQLite3Error:O,capi:s,util:y,wasm:o,config:r,version:Object.create(null),client:void 0,asyncPostInit:async function l(){if(l.isReady instanceof Promise)return l.isReady;let _=t.initializersAsync;delete t.initializersAsync;const u=async()=>(m.__isUnderTest||(delete m.util,delete m.StructBinder),m),I=ee=>{throw r.error("an async sqlite3 initializer failed:",ee),ee};if(!_||!_.length)return l.isReady=u().catch(I);_=_.map(ee=>ee instanceof Function?async ne=>ee(m):ee),_.push(u);let U=Promise.resolve(m);for(;_.length;)U=U.then(_.shift());return l.isReady=U.catch(I)},scriptInfo:void 0};try{t.initializers.forEach(l=>{l(m)})}catch(l){throw console.error("sqlite3 bootstrap initializer threw:",l),l}return delete t.initializers,t.sqlite3=m,m},globalThis.sqlite3ApiBootstrap.initializers=[],globalThis.sqlite3ApiBootstrap.initializersAsync=[],globalThis.sqlite3ApiBootstrap.defaultConfig=Object.create(null),globalThis.sqlite3ApiBootstrap.sqlite3=void 0,globalThis.WhWasmUtilInstaller=function(t){t.bigIntEnabled===void 0&&(t.bigIntEnabled=!!globalThis.BigInt64Array);const n=(...c)=>{throw new Error(c.join(" "))};t.exports||Object.defineProperty(t,"exports",{enumerable:!0,configurable:!0,get:()=>t.instance&&t.instance.exports});const r=t.pointerIR||"i32",s=t.ptrSizeof=r==="i32"?4:r==="i64"?8:n("Unhandled ptrSizeof:",r),o=Object.create(null);o.heapSize=0,o.memory=null,o.freeFuncIndexes=[],o.scopedAlloc=[],o.utf8Decoder=new TextDecoder,o.utf8Encoder=new TextEncoder("utf-8"),t.sizeofIR=c=>{switch(c){case"i8":return 1;case"i16":return 2;case"i32":case"f32":case"float":return 4;case"i64":case"f64":case"double":return 8;case"*":return s;default:return(""+c).endsWith("*")?s:void 0}};const p=function(){if(!o.memory)o.memory=t.memory instanceof WebAssembly.Memory?t.memory:t.exports.memory;else if(o.heapSize===o.memory.buffer.byteLength)return o;const c=o.memory.buffer;return o.HEAP8=new Int8Array(c),o.HEAP8U=new Uint8Array(c),o.HEAP16=new Int16Array(c),o.HEAP16U=new Uint16Array(c),o.HEAP32=new Int32Array(c),o.HEAP32U=new Uint32Array(c),t.bigIntEnabled&&(o.HEAP64=new BigInt64Array(c),o.HEAP64U=new BigUint64Array(c)),o.HEAP32F=new Float32Array(c),o.HEAP64F=new Float64Array(c),o.heapSize=c.byteLength,o};t.heap8=()=>p().HEAP8,t.heap8u=()=>p().HEAP8U,t.heap16=()=>p().HEAP16,t.heap16u=()=>p().HEAP16U,t.heap32=()=>p().HEAP32,t.heap32u=()=>p().HEAP32U,t.heapForSize=function(c,d=!0){const y=o.memory&&o.heapSize===o.memory.buffer.byteLength?o:p();switch(c){case Int8Array:return y.HEAP8;case Uint8Array:return y.HEAP8U;case Int16Array:return y.HEAP16;case Uint16Array:return y.HEAP16U;case Int32Array:return y.HEAP32;case Uint32Array:return y.HEAP32U;case 8:return d?y.HEAP8U:y.HEAP8;case 16:return d?y.HEAP16U:y.HEAP16;case 32:return d?y.HEAP32U:y.HEAP32;case 64:if(y.HEAP64)return d?y.HEAP64U:y.HEAP64;break;default:if(t.bigIntEnabled){if(c===globalThis.BigUint64Array)return y.HEAP64U;if(c===globalThis.BigInt64Array)return y.HEAP64;break}}n("Invalid heapForSize() size: expecting 8, 16, 32,","or (if BigInt is enabled) 64.")},t.functionTable=function(){return t.exports.__indirect_function_table},t.functionEntry=function(c){const d=t.functionTable();return c>7)},rxJSig:/^(\w)\((\w*)\)$/,sigParams:function(m){const l=c._.rxJSig.exec(m);return l?l[2]:m.substr(1)},letterType:m=>c._.sigTypes[m]||n("Invalid signature letter:",m),pushSigType:(m,l)=>m.push(c._.typeCodes[c._.letterType(l)])}),typeof d=="string"){const m=y;y=d,d=m}const B=c._.sigParams(y),f=[1,96];c._.uleb128Encode(f,"push",B.length);for(const m of B)c._.pushSigType(f,m);return y[0]==="v"?f.push(0):(f.push(1),c._.pushSigType(f,y[0])),c._.uleb128Encode(f,"unshift",f.length),f.unshift(0,97,115,109,1,0,0,0,1),f.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array(f)),{e:{f:d}}).exports.f};const g=function(d,y,B){if(B&&!o.scopedAlloc.length&&n("No scopedAllocPush() scope is active."),typeof d=="string"){const _=y;y=d,d=_}(typeof y!="string"||!(d instanceof Function))&&n("Invalid arguments: expecting (function,signature) or (signature,function).");const f=t.functionTable(),m=f.length;let l;for(;o.freeFuncIndexes.length&&(l=o.freeFuncIndexes.pop(),f.get(l));){l=null;continue}l||(l=m,f.grow(1));try{return f.set(l,d),B&&o.scopedAlloc[o.scopedAlloc.length-1].push(l),l}catch(_){if(!(_ instanceof TypeError))throw l===m&&o.freeFuncIndexes.push(m),_}try{const _=t.jsFuncToWasm(d,y);f.set(l,_),B&&o.scopedAlloc[o.scopedAlloc.length-1].push(l)}catch(_){throw l===m&&o.freeFuncIndexes.push(m),_}return l};t.installFunction=(c,d)=>g(c,d,!1),t.scopedInstallFunction=(c,d)=>g(c,d,!0),t.uninstallFunction=function(c){if(!c&&c!==0)return;const d=o.freeFuncIndexes,y=t.functionTable();d.push(c);const B=y.get(c);return y.set(c,null),B},t.peek=function(d,y="i8"){y.endsWith("*")&&(y=r);const B=o.memory&&o.heapSize===o.memory.buffer.byteLength?o:p(),f=Array.isArray(d)?[]:void 0;let m;do{switch(f&&(d=arguments[0].shift()),y){case"i1":case"i8":m=B.HEAP8[d>>0];break;case"i16":m=B.HEAP16[d>>1];break;case"i32":m=B.HEAP32[d>>2];break;case"float":case"f32":m=B.HEAP32F[d>>2];break;case"double":case"f64":m=Number(B.HEAP64F[d>>3]);break;case"i64":if(t.bigIntEnabled){m=BigInt(B.HEAP64[d>>3]);break}default:n("Invalid type for peek():",y)}f&&f.push(m)}while(f&&arguments[0].length);return f||m},t.poke=function(c,d,y="i8"){y.endsWith("*")&&(y=r);const B=o.memory&&o.heapSize===o.memory.buffer.byteLength?o:p();for(const f of Array.isArray(c)?c:[c])switch(y){case"i1":case"i8":B.HEAP8[f>>0]=d;continue;case"i16":B.HEAP16[f>>1]=d;continue;case"i32":B.HEAP32[f>>2]=d;continue;case"float":case"f32":B.HEAP32F[f>>2]=d;continue;case"double":case"f64":B.HEAP64F[f>>3]=d;continue;case"i64":if(B.HEAP64){B.HEAP64[f>>3]=BigInt(d);continue}default:n("Invalid type for poke(): "+y)}return this},t.peekPtr=(...c)=>t.peek(c.length===1?c[0]:c,r),t.pokePtr=(c,d=0)=>t.poke(c,d,r),t.peek8=(...c)=>t.peek(c.length===1?c[0]:c,"i8"),t.poke8=(c,d)=>t.poke(c,d,"i8"),t.peek16=(...c)=>t.peek(c.length===1?c[0]:c,"i16"),t.poke16=(c,d)=>t.poke(c,d,"i16"),t.peek32=(...c)=>t.peek(c.length===1?c[0]:c,"i32"),t.poke32=(c,d)=>t.poke(c,d,"i32"),t.peek64=(...c)=>t.peek(c.length===1?c[0]:c,"i64"),t.poke64=(c,d)=>t.poke(c,d,"i64"),t.peek32f=(...c)=>t.peek(c.length===1?c[0]:c,"f32"),t.poke32f=(c,d)=>t.poke(c,d,"f32"),t.peek64f=(...c)=>t.peek(c.length===1?c[0]:c,"f64"),t.poke64f=(c,d)=>t.poke(c,d,"f64"),t.getMemValue=t.peek,t.getPtrValue=t.peekPtr,t.setMemValue=t.poke,t.setPtrValue=t.pokePtr,t.isPtr32=c=>typeof c=="number"&&c===(c|0)&&c>=0,t.isPtr=t.isPtr32,t.cstrlen=function(c){if(!c||!t.isPtr(c))return null;const d=p().HEAP8U;let y=c;for(;d[y]!==0;++y);return y-c};const O=typeof SharedArrayBuffer>"u"?function(){}:SharedArrayBuffer,R=function(c,d,y){return o.utf8Decoder.decode(c.buffer instanceof O?c.slice(d,y):c.subarray(d,y))};t.cstrToJs=function(c){const d=t.cstrlen(c);return d?R(p().HEAP8U,c,c+d):d===null?d:""},t.jstrlen=function(c){if(typeof c!="string")return null;const d=c.length;let y=0;for(let B=0;B=55296&&f<=57343&&(f=65536+((f&1023)<<10)|c.charCodeAt(++B)&1023),f<=127?++y:f<=2047?y+=2:f<=65535?y+=3:y+=4}return y},t.jstrcpy=function(c,d,y=0,B=-1,f=!0){if((!d||!(d instanceof Int8Array)&&!(d instanceof Uint8Array))&&n("jstrcpy() target must be an Int8Array or Uint8Array."),B<0&&(B=d.length-y),!(B>0)||!(y>=0))return 0;let m=0,l=c.length;const _=y,u=y+B-(f?1:0);for(;m=55296&&I<=57343&&(I=65536+((I&1023)<<10)|c.charCodeAt(++m)&1023),I<=127){if(y>=u)break;d[y++]=I}else if(I<=2047){if(y+1>=u)break;d[y++]=192|I>>6,d[y++]=128|I&63}else if(I<=65535){if(y+2>=u)break;d[y++]=224|I>>12,d[y++]=128|I>>6&63,d[y++]=128|I&63}else{if(y+3>=u)break;d[y++]=240|I>>18,d[y++]=128|I>>12&63,d[y++]=128|I>>6&63,d[y++]=128|I&63}}return f&&(d[y++]=0),y-_},t.cstrncpy=function(c,d,y){if((!c||!d)&&n("cstrncpy() does not accept NULL strings."),y<0)y=t.cstrlen(strPtr)+1;else if(!(y>0))return 0;const B=t.heap8u();let f=0,m;for(;fo.utf8Encoder.encode(d?c+"\0":c);const z=(c,d)=>{(!(c.alloc instanceof Function)||!(c.dealloc instanceof Function))&&n("Object is missing alloc() and/or dealloc() function(s)","required by",d+"().")},Q=function(c,d,y,B){if(z(t,B),typeof c!="string")return null;{const f=o.utf8Encoder.encode(c),m=y(f.length+1),l=p().HEAP8U;return l.set(f,m),l[m+f.length]=0,d?[m,f.length]:m}};t.allocCString=(c,d=!1)=>Q(c,d,t.alloc,"allocCString()"),t.scopedAllocPush=function(){z(t,"scopedAllocPush");const c=[];return o.scopedAlloc.push(c),c},t.scopedAllocPop=function(c){z(t,"scopedAllocPop");const d=arguments.length?o.scopedAlloc.indexOf(c):o.scopedAlloc.length-1;d<0&&n("Invalid state object for scopedAllocPop()."),arguments.length===0&&(c=o.scopedAlloc[d]),o.scopedAlloc.splice(d,1);for(let y;y=c.pop();)t.functionEntry(y)?t.uninstallFunction(y):t.dealloc(y)},t.scopedAlloc=function(c){o.scopedAlloc.length||n("No scopedAllocPush() scope is active.");const d=t.alloc(c);return o.scopedAlloc[o.scopedAlloc.length-1].push(d),d},Object.defineProperty(t.scopedAlloc,"level",{configurable:!1,enumerable:!1,get:()=>o.scopedAlloc.length,set:()=>n("The 'active' property is read-only.")}),t.scopedAllocCString=(c,d=!1)=>Q(c,d,t.scopedAlloc,"scopedAllocCString()");const T=function(c,d){const y=t[c?"scopedAlloc":"alloc"]((d.length+1)*t.ptrSizeof);let B=0;return d.forEach(f=>{t.pokePtr(y+t.ptrSizeof*B++,t[c?"scopedAllocCString":"allocCString"](""+f))}),t.pokePtr(y+t.ptrSizeof*B,0),y};t.scopedAllocMainArgv=c=>T(!0,c),t.allocMainArgv=c=>T(!1,c),t.cArgvToJs=(c,d)=>{const y=[];for(let B=0;BA(c,d,"alloc"),t.scopedAllocPtr=(c=1,d=!0)=>A(c,d,"scopedAlloc"),t.xGet=function(c){return t.exports[c]||n("Cannot find exported symbol:",c)};const D=(c,d)=>n(c+"() requires",d,"argument(s).");t.xCall=function(c,...d){const y=c instanceof Function?c:t.xGet(c);return y instanceof Function||n("Exported symbol",c,"is not a function."),y.length!==d.length&&D(y===c?y.name:c,y.length),arguments.length===2&&Array.isArray(arguments[1])?y.apply(null,arguments[1]):y.apply(null,d)},o.xWrap=Object.create(null),o.xWrap.convert=Object.create(null),o.xWrap.convert.arg=new Map,o.xWrap.convert.result=new Map;const q=o.xWrap.convert.arg,w=o.xWrap.convert.result;t.bigIntEnabled&&q.set("i64",c=>BigInt(c));const x=r==="i32"?c=>c|0:c=>BigInt(c)|BigInt(0);q.set("i32",x).set("i16",c=>(c|0)&65535).set("i8",c=>(c|0)&255).set("f32",c=>Number(c).valueOf()).set("float",q.get("f32")).set("f64",q.get("f32")).set("double",q.get("f64")).set("int",q.get("i32")).set("null",c=>c).set(null,q.get("null")).set("**",x).set("*",x),w.set("*",x).set("pointer",x).set("number",c=>Number(c)).set("void",c=>{}).set("null",c=>c).set(null,w.get("null"));{const c=["i8","i16","i32","int","f32","float","f64","double"];t.bigIntEnabled&&c.push("i64");const d=q.get(r);for(const y of c)q.set(y+"*",d),w.set(y+"*",d),w.set(y,q.get(y)||n("Missing arg converter:",y))}const N=function(c){return typeof c=="string"?t.scopedAllocCString(c):c?x(c):null};q.set("string",N).set("utf8",N).set("pointer",N),w.set("string",c=>t.cstrToJs(c)).set("utf8",w.get("string")).set("string:dealloc",c=>{try{return c?t.cstrToJs(c):null}finally{t.dealloc(c)}}).set("utf8:dealloc",w.get("string:dealloc")).set("json",c=>JSON.parse(t.cstrToJs(c))).set("json:dealloc",c=>{try{return c?JSON.parse(t.cstrToJs(c)):null}finally{t.dealloc(c)}});const P=class{constructor(c){this.name=c.name||"unnamed adapter"}convertArg(c,d,y){n("AbstractArgAdapter must be subclassed.")}};q.FuncPtrAdapter=class Fe extends P{constructor(d){super(d),q.FuncPtrAdapter.warnOnUse&&console.warn("xArg.FuncPtrAdapter is an internal-only API","and is not intended to be invoked from","client-level code. Invoked with:",d),this.name=d.name||"unnamed",this.signature=d.signature,d.contextKey instanceof Function&&(this.contextKey=d.contextKey,d.bindScope||(d.bindScope="context")),this.bindScope=d.bindScope||n("FuncPtrAdapter options requires a bindScope (explicit or implied)."),Fe.bindScopes.indexOf(d.bindScope)<0&&n("Invalid options.bindScope ("+d.bindMod+") for FuncPtrAdapter. Expecting one of: ("+Fe.bindScopes.join(", ")+")"),this.isTransient=this.bindScope==="transient",this.isContext=this.bindScope==="context",this.isPermanent=this.bindScope==="permanent",this.singleton=this.bindScope==="singleton"?[]:void 0,this.callProxy=d.callProxy instanceof Function?d.callProxy:void 0}contextKey(d,y){return this}contextMap(d){const y=this.__cmap||(this.__cmap=new Map);let B=y.get(d);return B===void 0&&y.set(d,B=[]),B}convertArg(d,y,B){let f=this.singleton;if(!f&&this.isContext&&(f=this.contextMap(this.contextKey(y,B))),f&&f[0]===d)return f[1];if(d instanceof Function){this.callProxy&&(d=this.callProxy(d));const m=g(d,this.signature,this.isTransient);if(Fe.debugFuncInstall&&Fe.debugOut("FuncPtrAdapter installed",this,this.contextKey(y,B),"@"+m,d),f){if(f[1]){Fe.debugFuncInstall&&Fe.debugOut("FuncPtrAdapter uninstalling",this,this.contextKey(y,B),"@"+f[1],d);try{o.scopedAlloc[o.scopedAlloc.length-1].push(f[1])}catch{}}f[0]=d,f[1]=m}return m}else if(t.isPtr(d)||d===null||d===void 0){if(f&&f[1]&&f[1]!==d){Fe.debugFuncInstall&&Fe.debugOut("FuncPtrAdapter uninstalling",this,this.contextKey(y,B),"@"+f[1],d);try{o.scopedAlloc[o.scopedAlloc.length-1].push(f[1])}catch{}f[0]=f[1]=d|0}return d||0}else throw new TypeError("Invalid FuncPtrAdapter argument type. Expecting a function pointer or a "+(this.name?this.name+" ":"")+"function matching signature "+this.signature+".")}},q.FuncPtrAdapter.warnOnUse=!1,q.FuncPtrAdapter.debugFuncInstall=!1,q.FuncPtrAdapter.debugOut=console.debug.bind(console),q.FuncPtrAdapter.bindScopes=["transient","context","singleton","permanent"];const S=c=>q.get(c)||n("Argument adapter not found:",c),L=c=>w.get(c)||n("Result adapter not found:",c);o.xWrap.convertArg=(c,...d)=>S(c)(...d),o.xWrap.convertArgNoCheck=(c,...d)=>q.get(c)(...d),o.xWrap.convertResult=(c,d)=>c===null?d:c?L(c)(d):void 0,o.xWrap.convertResultNoCheck=(c,d)=>c===null?d:c?w.get(c)(d):void 0,t.xWrap=function(c,d,...y){arguments.length===3&&Array.isArray(arguments[2])&&(y=arguments[2]),t.isPtr(c)&&(c=t.functionEntry(c)||n("Function pointer not found in WASM function table."));const B=c instanceof Function,f=B?c:t.xGet(c);if(B&&(c=f.name||"unnamed function"),y.length!==f.length&&D(c,f.length),d===null&&f.length===0)return f;d!=null&&L(d);for(const l of y)l instanceof P?q.set(l,(..._)=>l.convertArg(..._)):S(l);const m=o.xWrap;return f.length===0?(...l)=>l.length?D(c,f.length):m.convertResult(d,f.call(null)):function(...l){l.length!==f.length&&D(c,f.length);const _=t.scopedAllocPush();try{let u=0;for(;ufetch(t.uri,{credentials:"same-origin"}),r=this,s=function(p){if(t.wasmUtilTarget){const g=(...R)=>{throw new Error(R.join(" "))},O=t.wasmUtilTarget;if(O.module=p.module,O.instance=p.instance,O.instance.exports.memory||(O.memory=t.imports&&t.imports.env&&t.imports.env.memory||g("Missing 'memory' object!")),!O.alloc&&p.instance.exports.malloc){const R=p.instance.exports;O.alloc=function(z){return R.malloc(z)||g("Allocation of",z,"bytes failed.")},O.dealloc=function(z){R.free(z)}}r(O)}return t.onload&&t.onload(p,t),p};return WebAssembly.instantiateStreaming?function(){return WebAssembly.instantiateStreaming(n(),t.imports||{}).then(s)}:function(){return n().then(g=>g.arrayBuffer()).then(g=>WebAssembly.instantiate(g,t.imports||{})).then(s)}}).bind(globalThis.WhWasmUtilInstaller),globalThis.Jaccwabyt=function t(n){const r=(...F)=>{throw new Error(F.join(" "))};!(n.heap instanceof WebAssembly.Memory)&&!(n.heap instanceof Function)&&r("config.heap must be WebAssembly.Memory instance or a function."),["alloc","dealloc"].forEach(function(F){n[F]instanceof Function||r("Config option '"+F+"' must be a function.")});const s=t,o=n.heap instanceof Function?n.heap:()=>new Uint8Array(n.heap.buffer),p=n.alloc,g=n.dealloc,O=n.log||console.log.bind(console),R=n.memberPrefix||"",z=n.memberSuffix||"",Q=n.bigIntEnabled===void 0?!!globalThis.BigInt64Array:!!n.bigIntEnabled,T=globalThis.BigInt,A=globalThis.BigInt64Array,D=n.ptrSizeof||4,q=n.ptrIR||"i32";s.debugFlags||(s.__makeDebugFlags=function(F=null){F&&F.__flags&&(F=F.__flags);const V=function K(X){return arguments.length===0?K.__flags:(X<0?(delete K.__flags.getter,delete K.__flags.setter,delete K.__flags.alloc,delete K.__flags.dealloc):(K.__flags.getter=(1&X)!==0,K.__flags.setter=(2&X)!==0,K.__flags.alloc=(4&X)!==0,K.__flags.dealloc=(8&X)!==0),K._flags)};return Object.defineProperty(V,"__flags",{iterable:!1,writable:!1,value:Object.create(F)}),F||V(0),V},s.debugFlags=s.__makeDebugFlags());const w=(function(){const F=new ArrayBuffer(2);return new DataView(F).setInt16(0,256,!0),new Int16Array(F)[0]===256})(),x=F=>F[1]==="(",N=F=>F==="P",P=F=>x(F)?"p":F[0],S=function(F){switch(P(F)){case"c":case"C":return"i8";case"i":return"i32";case"p":case"P":case"s":return q;case"j":return"i64";case"f":return"float";case"d":return"double"}r("Unhandled signature IR:",F)},L=A?()=>!0:()=>r("BigInt64Array is not available."),$=function(F){switch(P(F)){case"p":case"P":case"s":{switch(D){case 4:return"getInt32";case 8:return L()&&"getBigInt64"}break}case"i":return"getInt32";case"c":return"getInt8";case"C":return"getUint8";case"j":return L()&&"getBigInt64";case"f":return"getFloat32";case"d":return"getFloat64"}r("Unhandled DataView getter for signature:",F)},c=function(F){switch(P(F)){case"p":case"P":case"s":{switch(D){case 4:return"setInt32";case 8:return L()&&"setBigInt64"}break}case"i":return"setInt32";case"c":return"setInt8";case"C":return"setUint8";case"j":return L()&&"setBigInt64";case"f":return"setFloat32";case"d":return"setFloat64"}r("Unhandled DataView setter for signature:",F)},d=function(F){switch(P(F)){case"i":case"f":case"c":case"C":case"d":return Number;case"j":return L()&&T;case"p":case"P":case"s":switch(D){case 4:return Number;case 8:return L()&&T}break}r("Unhandled DataView set wrapper for signature:",F)},y=(F,V)=>F+"::"+V,B=function(F,V){return()=>r(y(F,V),"is read-only.")},f=new WeakMap,m="(pointer-is-external)",l=function(F,V,K){if(K||(K=f.get(V)),K){if(f.delete(V),Array.isArray(V.ondispose)){let X;for(;X=V.ondispose.shift();)try{X instanceof Function?X.call(V):X instanceof te?X.dispose():typeof X=="number"&&g(X)}catch(_e){console.warn("ondispose() for",F.structName,"@",K,"threw. NOT propagating it.",_e)}}else if(V.ondispose instanceof Function)try{V.ondispose()}catch(X){console.warn("ondispose() for",F.structName,"@",K,"threw. NOT propagating it.",X)}delete V.ondispose,F.debugFlags.__flags.dealloc&&O("debug.dealloc:",V[m]?"EXTERNAL":"",F.structName,"instance:",F.structInfo.sizeof,"bytes @"+K),V[m]||g(K)}},_=F=>({configurable:!1,writable:!1,iterable:!1,value:F}),u=function(F,V,K){let X=!K;K?Object.defineProperty(V,m,_(K)):(K=p(F.structInfo.sizeof),K||r("Allocation of",F.structName,"structure failed."));try{F.debugFlags.__flags.alloc&&O("debug.alloc:",X?"":"EXTERNAL",F.structName,"instance:",F.structInfo.sizeof,"bytes @"+K),X&&o().fill(0,K,K+F.structInfo.sizeof),f.set(V,K)}catch(_e){throw l(F,V,K),_e}},I=function(){const F=this.pointer;return F?new Uint8Array(o().slice(F,F+this.structInfo.sizeof)):null},ee=_(F=>R+F+z),ne=function(F,V,K=!0){let X=F.members[V];if(!X&&(R||z)){for(const _e of Object.values(F.members))if(_e.key===V){X=_e;break}!X&&K&&r(y(F.name,V),"is not a mapped struct member.")}return X},se=function F(V,K,X=!1){F._||(F._=ge=>ge.replace(/[^vipPsjrdcC]/g,"").replace(/[pPscC]/g,"i"));const _e=ne(V.structInfo,K,!0);return X?F._(_e.signature):_e.signature},ie={configurable:!1,enumerable:!1,get:function(){return f.get(this)},set:()=>r("Cannot assign the 'pointer' property of a struct.")},j=_(function(){const F=[];for(const V of Object.keys(this.structInfo.members))F.push(this.memberKey(V));return F}),b=new TextDecoder("utf-8"),k=new TextEncoder,W=typeof SharedArrayBuffer>"u"?function(){}:SharedArrayBuffer,H=function(F,V,K){return b.decode(F.buffer instanceof W?F.slice(V,K):F.subarray(V,K))},Z=function(F,V,K=!1){const X=ne(F.structInfo,V,K);return X&&X.signature.length===1&&X.signature[0]==="s"?X:!1},E=function(F){F.signature!=="s"&&r("Invalid member type signature for C-string value:",JSON.stringify(F))},C=function(V,K){const X=ne(V.structInfo,K,!0);E(X);const _e=V[X.key];if(!_e)return null;let ge=_e;const pe=o();for(;pe[ge]!==0;++ge);return _e===ge?"":H(pe,_e,ge)},M=function(F,...V){F.ondispose?Array.isArray(F.ondispose)||(F.ondispose=[F.ondispose]):F.ondispose=[],F.ondispose.push(...V)},J=function(F){const V=k.encode(F),K=p(V.length+1);K||r("Allocation error while duplicating string:",F);const X=o();return X.set(V,K),X[K+V.length]=0,K},G=function(F,V,K){const X=ne(F.structInfo,V,!0);E(X);const _e=J(K);return F[X.key]=_e,M(F,_e),F},te=function(V,K){arguments[2]!==_&&r("Do not call the StructType constructor","from client-level code."),Object.defineProperties(this,{structName:_(V),structInfo:_(K)})};te.prototype=Object.create(null,{dispose:_(function(){l(this.constructor,this)}),lookupMember:_(function(F,V=!0){return ne(this.structInfo,F,V)}),memberToJsString:_(function(F){return C(this,F)}),memberIsString:_(function(F,V=!0){return Z(this,F,V)}),memberKey:ee,memberKeys:j,memberSignature:_(function(F,V=!1){return se(this,F,V)}),memoryDump:_(I),pointer:ie,setMemberCString:_(function(F,V){return G(this,F,V)})}),Object.assign(te.prototype,{addOnDispose:function(...F){return M(this,...F),this}}),Object.defineProperties(te,{allocCString:_(J),isA:_(F=>F instanceof te),hasExternalPointer:_(F=>F instanceof te&&!!F[m]),memberKey:ee});const ae=F=>Number.isFinite(F)||F instanceof(T||Number),Y=function F(V,K,X){if(!F._){F._={getters:{},setters:{},sw:{}};const ve=["i","c","C","p","P","s","f","d","v()"];Q&&ve.push("j"),ve.forEach(function(Se){F._.getters[Se]=$(Se),F._.setters[Se]=c(Se),F._.sw[Se]=d(Se)});const Kn=/^[ipPsjfdcC]$/,Jn=/^[vipPsjfdcC]\([ipPsjfdcC]*\)$/;F.sigCheck=function(Se,Xn,Ot,ut){Object.prototype.hasOwnProperty.call(Se,Ot)&&r(Se.structName,"already has a property named",Ot+"."),Kn.test(ut)||Jn.test(ut)||r("Malformed signature for",y(Se.structName,Xn)+":",ut)}}const _e=V.memberKey(K);F.sigCheck(V.prototype,K,_e,X.signature),X.key=_e,X.name=K;const ge=P(X.signature),pe=y(V.prototype.structName,_e),he=V.prototype.debugFlags.__flags,Qe=Object.create(null);Qe.configurable=!1,Qe.enumerable=!1,Qe.get=function(){he.getter&&O("debug.getter:",F._.getters[ge],"for",S(ge),pe,"@",this.pointer,"+",X.offset,"sz",X.sizeof);let ve=new DataView(o().buffer,this.pointer+X.offset,X.sizeof)[F._.getters[ge]](0,w);return he.getter&&O("debug.getter:",pe,"result =",ve),ve},X.readOnly?Qe.set=B(V.prototype.structName,_e):Qe.set=function(ve){if(he.setter&&O("debug.setter:",F._.setters[ge],"for",S(ge),pe,"@",this.pointer,"+",X.offset,"sz",X.sizeof,ve),this.pointer||r("Cannot set struct property on disposed instance."),ve===null)ve=0;else for(;!ae(ve);){if(N(X.signature)&&ve instanceof te){ve=ve.pointer||0,he.setter&&O("debug.setter:",pe,"resolved to",ve);break}r("Invalid value for pointer-type",pe+".")}new DataView(o().buffer,this.pointer+X.offset,X.sizeof)[F._.setters[ge]](0,F._.sw[ge](ve),w)},Object.defineProperty(V.prototype,_e,Qe)},we=function F(V,K){arguments.length===1?(K=V,V=K.name):K.name||(K.name=V),V||r("Struct name is required.");let X=!1;Object.keys(K.members).forEach(pe=>{const he=K.members[pe];he.sizeof?he.sizeof===1?he.signature==="c"||he.signature==="C"||r("Unexpected sizeof==1 member",y(K.name,pe),"with signature",he.signature):(he.sizeof%4!==0&&(console.warn("Invalid struct member description =",he,"from",K),r(V,"member",pe,"sizeof is not aligned. sizeof="+he.sizeof)),he.offset%4!==0&&(console.warn("Invalid struct member description =",he,"from",K),r(V,"member",pe,"offset is not aligned. offset="+he.offset))):r(V,"member",pe,"is missing sizeof."),(!X||X.offsetpe instanceof ge),memberKey:ee,memberKeys:j,methodInfoForKey:_(function(pe){}),structInfo:_(K),structName:_(V)}),ge.prototype=new te(V,K,_),Object.defineProperties(ge.prototype,{debugFlags:_e,constructor:_(ge)}),Object.keys(K.members).forEach(pe=>Y(ge,pe,K.members[pe])),ge};return we.StructType=te,we.config=n,we.allocCString=J,we.debugFlags||(we.debugFlags=s.__makeDebugFlags(s.debugFlags)),we},globalThis.sqlite3ApiBootstrap.initializers.push(function(t){const n=(...q)=>{throw new Error(q.join(" "))};t.SQLite3Error.toss;const r=t.capi,s=t.wasm,o=t.util;if(globalThis.WhWasmUtilInstaller(s),delete globalThis.WhWasmUtilInstaller,s.bindingSignatures=[["sqlite3_aggregate_context","void*","sqlite3_context*","int"],["sqlite3_bind_double","int","sqlite3_stmt*","int","f64"],["sqlite3_bind_int","int","sqlite3_stmt*","int","int"],["sqlite3_bind_null",void 0,"sqlite3_stmt*","int"],["sqlite3_bind_parameter_count","int","sqlite3_stmt*"],["sqlite3_bind_parameter_index","int","sqlite3_stmt*","string"],["sqlite3_bind_parameter_name","string","sqlite3_stmt*","int"],["sqlite3_bind_pointer","int","sqlite3_stmt*","int","*","string:static","*"],["sqlite3_busy_handler","int",["sqlite3*",new s.xWrap.FuncPtrAdapter({signature:"i(pi)",contextKey:(q,w)=>q[0]}),"*"]],["sqlite3_busy_timeout","int","sqlite3*","int"],["sqlite3_changes","int","sqlite3*"],["sqlite3_clear_bindings","int","sqlite3_stmt*"],["sqlite3_collation_needed","int","sqlite3*","*","*"],["sqlite3_column_blob","*","sqlite3_stmt*","int"],["sqlite3_column_bytes","int","sqlite3_stmt*","int"],["sqlite3_column_count","int","sqlite3_stmt*"],["sqlite3_column_decltype","string","sqlite3_stmt*","int"],["sqlite3_column_double","f64","sqlite3_stmt*","int"],["sqlite3_column_int","int","sqlite3_stmt*","int"],["sqlite3_column_name","string","sqlite3_stmt*","int"],["sqlite3_column_text","string","sqlite3_stmt*","int"],["sqlite3_column_type","int","sqlite3_stmt*","int"],["sqlite3_column_value","sqlite3_value*","sqlite3_stmt*","int"],["sqlite3_commit_hook","void*",["sqlite3*",new s.xWrap.FuncPtrAdapter({name:"sqlite3_commit_hook",signature:"i(p)",contextKey:q=>q[0]}),"*"]],["sqlite3_compileoption_get","string","int"],["sqlite3_compileoption_used","int","string"],["sqlite3_complete","int","string:flexible"],["sqlite3_context_db_handle","sqlite3*","sqlite3_context*"],["sqlite3_data_count","int","sqlite3_stmt*"],["sqlite3_db_filename","string","sqlite3*","string"],["sqlite3_db_handle","sqlite3*","sqlite3_stmt*"],["sqlite3_db_name","string","sqlite3*","int"],["sqlite3_db_readonly","int","sqlite3*","string"],["sqlite3_db_status","int","sqlite3*","int","*","*","int"],["sqlite3_errcode","int","sqlite3*"],["sqlite3_errmsg","string","sqlite3*"],["sqlite3_error_offset","int","sqlite3*"],["sqlite3_errstr","string","int"],["sqlite3_exec","int",["sqlite3*","string:flexible",new s.xWrap.FuncPtrAdapter({signature:"i(pipp)",bindScope:"transient",callProxy:q=>{let w;return(x,N,P,S)=>{try{const L=s.cArgvToJs(N,P);return w||(w=s.cArgvToJs(N,S)),q(L,w)|0}catch(L){return L.resultCode||r.SQLITE_ERROR}}}}),"*","**"]],["sqlite3_expanded_sql","string","sqlite3_stmt*"],["sqlite3_extended_errcode","int","sqlite3*"],["sqlite3_extended_result_codes","int","sqlite3*","int"],["sqlite3_file_control","int","sqlite3*","string","int","*"],["sqlite3_finalize","int","sqlite3_stmt*"],["sqlite3_free",void 0,"*"],["sqlite3_get_autocommit","int","sqlite3*"],["sqlite3_get_auxdata","*","sqlite3_context*","int"],["sqlite3_initialize",void 0],["sqlite3_interrupt",void 0,"sqlite3*"],["sqlite3_is_interrupted","int","sqlite3*"],["sqlite3_keyword_count","int"],["sqlite3_keyword_name","int",["int","**","*"]],["sqlite3_keyword_check","int",["string","int"]],["sqlite3_libversion","string"],["sqlite3_libversion_number","int"],["sqlite3_limit","int",["sqlite3*","int","int"]],["sqlite3_malloc","*","int"],["sqlite3_open","int","string","*"],["sqlite3_open_v2","int","string","*","int","string"],["sqlite3_realloc","*","*","int"],["sqlite3_reset","int","sqlite3_stmt*"],["sqlite3_result_blob",void 0,"sqlite3_context*","*","int","*"],["sqlite3_result_double",void 0,"sqlite3_context*","f64"],["sqlite3_result_error",void 0,"sqlite3_context*","string","int"],["sqlite3_result_error_code",void 0,"sqlite3_context*","int"],["sqlite3_result_error_nomem",void 0,"sqlite3_context*"],["sqlite3_result_error_toobig",void 0,"sqlite3_context*"],["sqlite3_result_int",void 0,"sqlite3_context*","int"],["sqlite3_result_null",void 0,"sqlite3_context*"],["sqlite3_result_pointer",void 0,"sqlite3_context*","*","string:static","*"],["sqlite3_result_subtype",void 0,"sqlite3_value*","int"],["sqlite3_result_text",void 0,"sqlite3_context*","string","int","*"],["sqlite3_result_zeroblob",void 0,"sqlite3_context*","int"],["sqlite3_rollback_hook","void*",["sqlite3*",new s.xWrap.FuncPtrAdapter({name:"sqlite3_rollback_hook",signature:"v(p)",contextKey:q=>q[0]}),"*"]],["sqlite3_set_auxdata",void 0,["sqlite3_context*","int","*","*"]],["sqlite3_shutdown",void 0],["sqlite3_sourceid","string"],["sqlite3_sql","string","sqlite3_stmt*"],["sqlite3_status","int","int","*","*","int"],["sqlite3_step","int","sqlite3_stmt*"],["sqlite3_stmt_busy","int","sqlite3_stmt*"],["sqlite3_stmt_readonly","int","sqlite3_stmt*"],["sqlite3_stmt_status","int","sqlite3_stmt*","int","int"],["sqlite3_strglob","int","string","string"],["sqlite3_stricmp","int","string","string"],["sqlite3_strlike","int","string","string","int"],["sqlite3_strnicmp","int","string","string","int"],["sqlite3_table_column_metadata","int","sqlite3*","string","string","string","**","**","*","*","*"],["sqlite3_total_changes","int","sqlite3*"],["sqlite3_trace_v2","int",["sqlite3*","int",new s.xWrap.FuncPtrAdapter({name:"sqlite3_trace_v2::callback",signature:"i(ippp)",contextKey:(q,w)=>q[0]}),"*"]],["sqlite3_txn_state","int",["sqlite3*","string"]],["sqlite3_uri_boolean","int","sqlite3_filename","string","int"],["sqlite3_uri_key","string","sqlite3_filename","int"],["sqlite3_uri_parameter","string","sqlite3_filename","string"],["sqlite3_user_data","void*","sqlite3_context*"],["sqlite3_value_blob","*","sqlite3_value*"],["sqlite3_value_bytes","int","sqlite3_value*"],["sqlite3_value_double","f64","sqlite3_value*"],["sqlite3_value_dup","sqlite3_value*","sqlite3_value*"],["sqlite3_value_free",void 0,"sqlite3_value*"],["sqlite3_value_frombind","int","sqlite3_value*"],["sqlite3_value_int","int","sqlite3_value*"],["sqlite3_value_nochange","int","sqlite3_value*"],["sqlite3_value_numeric_type","int","sqlite3_value*"],["sqlite3_value_pointer","*","sqlite3_value*","string:static"],["sqlite3_value_subtype","int","sqlite3_value*"],["sqlite3_value_text","string","sqlite3_value*"],["sqlite3_value_type","int","sqlite3_value*"],["sqlite3_vfs_find","*","string"],["sqlite3_vfs_register","int","sqlite3_vfs*","int"],["sqlite3_vfs_unregister","int","sqlite3_vfs*"]],s.exports.sqlite3_progress_handler&&s.bindingSignatures.push(["sqlite3_progress_handler",void 0,["sqlite3*","int",new s.xWrap.FuncPtrAdapter({name:"xProgressHandler",signature:"i(p)",bindScope:"context",contextKey:(q,w)=>q[0]}),"*"]]),s.exports.sqlite3_stmt_explain&&s.bindingSignatures.push(["sqlite3_stmt_explain","int","sqlite3_stmt*","int"],["sqlite3_stmt_isexplain","int","sqlite3_stmt*"]),s.exports.sqlite3_set_authorizer&&s.bindingSignatures.push(["sqlite3_set_authorizer","int",["sqlite3*",new s.xWrap.FuncPtrAdapter({name:"sqlite3_set_authorizer::xAuth",signature:"i(pissss)",contextKey:(q,w)=>q[0],callProxy:q=>(w,x,N,P,S,L)=>{try{return N=N&&s.cstrToJs(N),P=P&&s.cstrToJs(P),S=S&&s.cstrToJs(S),L=L&&s.cstrToJs(L),q(w,x,N,P,S,L)||0}catch($){return $.resultCode||r.SQLITE_ERROR}}}),"*"]]),s.bindingSignatures.int64=[["sqlite3_bind_int64","int",["sqlite3_stmt*","int","i64"]],["sqlite3_changes64","i64",["sqlite3*"]],["sqlite3_column_int64","i64",["sqlite3_stmt*","int"]],["sqlite3_deserialize","int","sqlite3*","string","*","i64","i64","int"],["sqlite3_last_insert_rowid","i64",["sqlite3*"]],["sqlite3_malloc64","*","i64"],["sqlite3_msize","i64","*"],["sqlite3_overload_function","int",["sqlite3*","string","int"]],["sqlite3_realloc64","*","*","i64"],["sqlite3_result_int64",void 0,"*","i64"],["sqlite3_result_zeroblob64","int","*","i64"],["sqlite3_serialize","*","sqlite3*","string","*","int"],["sqlite3_set_last_insert_rowid",void 0,["sqlite3*","i64"]],["sqlite3_status64","int","int","*","*","int"],["sqlite3_total_changes64","i64",["sqlite3*"]],["sqlite3_update_hook","*",["sqlite3*",new s.xWrap.FuncPtrAdapter({name:"sqlite3_update_hook",signature:"v(iippj)",contextKey:q=>q[0],callProxy:q=>(w,x,N,P,S)=>{q(w,x,s.cstrToJs(N),s.cstrToJs(P),S)}}),"*"]],["sqlite3_uri_int64","i64",["sqlite3_filename","string","i64"]],["sqlite3_value_int64","i64","sqlite3_value*"]],s.bigIntEnabled&&s.exports.sqlite3_declare_vtab&&s.bindingSignatures.int64.push(["sqlite3_create_module","int",["sqlite3*","string","sqlite3_module*","*"]],["sqlite3_create_module_v2","int",["sqlite3*","string","sqlite3_module*","*","*"]],["sqlite3_declare_vtab","int",["sqlite3*","string:flexible"]],["sqlite3_drop_modules","int",["sqlite3*","**"]],["sqlite3_vtab_collation","string","sqlite3_index_info*","int"],["sqlite3_vtab_distinct","int","sqlite3_index_info*"],["sqlite3_vtab_in","int","sqlite3_index_info*","int","int"],["sqlite3_vtab_in_first","int","sqlite3_value*","**"],["sqlite3_vtab_in_next","int","sqlite3_value*","**"],["sqlite3_vtab_nochange","int","sqlite3_context*"],["sqlite3_vtab_on_conflict","int","sqlite3*"],["sqlite3_vtab_rhs_value","int","sqlite3_index_info*","int","**"]),s.bigIntEnabled&&s.exports.sqlite3_preupdate_hook&&s.bindingSignatures.int64.push(["sqlite3_preupdate_blobwrite","int","sqlite3*"],["sqlite3_preupdate_count","int","sqlite3*"],["sqlite3_preupdate_depth","int","sqlite3*"],["sqlite3_preupdate_hook","*",["sqlite3*",new s.xWrap.FuncPtrAdapter({name:"sqlite3_preupdate_hook",signature:"v(ppippjj)",contextKey:q=>q[0],callProxy:q=>(w,x,N,P,S,L,$)=>{q(w,x,N,s.cstrToJs(P),s.cstrToJs(S),L,$)}}),"*"]],["sqlite3_preupdate_new","int",["sqlite3*","int","**"]],["sqlite3_preupdate_old","int",["sqlite3*","int","**"]]),s.bigIntEnabled&&s.exports.sqlite3changegroup_add&&s.exports.sqlite3session_create&&s.exports.sqlite3_preupdate_hook){const q={signature:"i(ps)",callProxy:w=>(x,N)=>{try{return w(x,s.cstrToJs(N))|0}catch(P){return P.resultCode||r.SQLITE_ERROR}}};s.bindingSignatures.int64.push(["sqlite3changegroup_add","int",["sqlite3_changegroup*","int","void*"]],["sqlite3changegroup_add_strm","int",["sqlite3_changegroup*",new s.xWrap.FuncPtrAdapter({name:"xInput",signature:"i(ppp)",bindScope:"transient"}),"void*"]],["sqlite3changegroup_delete",void 0,["sqlite3_changegroup*"]],["sqlite3changegroup_new","int",["**"]],["sqlite3changegroup_output","int",["sqlite3_changegroup*","int*","**"]],["sqlite3changegroup_output_strm","int",["sqlite3_changegroup*",new s.xWrap.FuncPtrAdapter({name:"xOutput",signature:"i(ppi)",bindScope:"transient"}),"void*"]],["sqlite3changeset_apply","int",["sqlite3*","int","void*",new s.xWrap.FuncPtrAdapter({name:"xFilter",bindScope:"transient",...q}),new s.xWrap.FuncPtrAdapter({name:"xConflict",signature:"i(pip)",bindScope:"transient"}),"void*"]],["sqlite3changeset_apply_strm","int",["sqlite3*",new s.xWrap.FuncPtrAdapter({name:"xInput",signature:"i(ppp)",bindScope:"transient"}),"void*",new s.xWrap.FuncPtrAdapter({name:"xFilter",bindScope:"transient",...q}),new s.xWrap.FuncPtrAdapter({name:"xConflict",signature:"i(pip)",bindScope:"transient"}),"void*"]],["sqlite3changeset_apply_v2","int",["sqlite3*","int","void*",new s.xWrap.FuncPtrAdapter({name:"xFilter",bindScope:"transient",...q}),new s.xWrap.FuncPtrAdapter({name:"xConflict",signature:"i(pip)",bindScope:"transient"}),"void*","**","int*","int"]],["sqlite3changeset_apply_v2_strm","int",["sqlite3*",new s.xWrap.FuncPtrAdapter({name:"xInput",signature:"i(ppp)",bindScope:"transient"}),"void*",new s.xWrap.FuncPtrAdapter({name:"xFilter",bindScope:"transient",...q}),new s.xWrap.FuncPtrAdapter({name:"xConflict",signature:"i(pip)",bindScope:"transient"}),"void*","**","int*","int"]],["sqlite3changeset_concat","int",["int","void*","int","void*","int*","**"]],["sqlite3changeset_concat_strm","int",[new s.xWrap.FuncPtrAdapter({name:"xInputA",signature:"i(ppp)",bindScope:"transient"}),"void*",new s.xWrap.FuncPtrAdapter({name:"xInputB",signature:"i(ppp)",bindScope:"transient"}),"void*",new s.xWrap.FuncPtrAdapter({name:"xOutput",signature:"i(ppi)",bindScope:"transient"}),"void*"]],["sqlite3changeset_conflict","int",["sqlite3_changeset_iter*","int","**"]],["sqlite3changeset_finalize","int",["sqlite3_changeset_iter*"]],["sqlite3changeset_fk_conflicts","int",["sqlite3_changeset_iter*","int*"]],["sqlite3changeset_invert","int",["int","void*","int*","**"]],["sqlite3changeset_invert_strm","int",[new s.xWrap.FuncPtrAdapter({name:"xInput",signature:"i(ppp)",bindScope:"transient"}),"void*",new s.xWrap.FuncPtrAdapter({name:"xOutput",signature:"i(ppi)",bindScope:"transient"}),"void*"]],["sqlite3changeset_new","int",["sqlite3_changeset_iter*","int","**"]],["sqlite3changeset_next","int",["sqlite3_changeset_iter*"]],["sqlite3changeset_old","int",["sqlite3_changeset_iter*","int","**"]],["sqlite3changeset_op","int",["sqlite3_changeset_iter*","**","int*","int*","int*"]],["sqlite3changeset_pk","int",["sqlite3_changeset_iter*","**","int*"]],["sqlite3changeset_start","int",["**","int","*"]],["sqlite3changeset_start_strm","int",["**",new s.xWrap.FuncPtrAdapter({name:"xInput",signature:"i(ppp)",bindScope:"transient"}),"void*"]],["sqlite3changeset_start_v2","int",["**","int","*","int"]],["sqlite3changeset_start_v2_strm","int",["**",new s.xWrap.FuncPtrAdapter({name:"xInput",signature:"i(ppp)",bindScope:"transient"}),"void*","int"]],["sqlite3session_attach","int",["sqlite3_session*","string"]],["sqlite3session_changeset","int",["sqlite3_session*","int*","**"]],["sqlite3session_changeset_size","i64",["sqlite3_session*"]],["sqlite3session_changeset_strm","int",["sqlite3_session*",new s.xWrap.FuncPtrAdapter({name:"xOutput",signature:"i(ppp)",bindScope:"transient"}),"void*"]],["sqlite3session_config","int",["int","void*"]],["sqlite3session_create","int",["sqlite3*","string","**"]],["sqlite3session_diff","int",["sqlite3_session*","string","string","**"]],["sqlite3session_enable","int",["sqlite3_session*","int"]],["sqlite3session_indirect","int",["sqlite3_session*","int"]],["sqlite3session_isempty","int",["sqlite3_session*"]],["sqlite3session_memory_used","i64",["sqlite3_session*"]],["sqlite3session_object_config","int",["sqlite3_session*","int","void*"]],["sqlite3session_patchset","int",["sqlite3_session*","*","**"]],["sqlite3session_patchset_strm","int",["sqlite3_session*",new s.xWrap.FuncPtrAdapter({name:"xOutput",signature:"i(ppp)",bindScope:"transient"}),"void*"]],["sqlite3session_table_filter",void 0,["sqlite3_session*",new s.xWrap.FuncPtrAdapter({name:"xFilter",...q,contextKey:(w,x)=>w[0]}),"*"]])}s.bindingSignatures.wasmInternal=[["sqlite3__wasm_db_reset","int","sqlite3*"],["sqlite3__wasm_db_vfs","sqlite3_vfs*","sqlite3*","string"],["sqlite3__wasm_vfs_create_file","int","sqlite3_vfs*","string","*","int"],["sqlite3__wasm_posix_create_file","int","string","*","int"],["sqlite3__wasm_vfs_unlink","int","sqlite3_vfs*","string"],["sqlite3__wasm_qfmt_token","string:dealloc","string","int"]],t.StructBinder=globalThis.Jaccwabyt({heap:s.heap8u,alloc:s.alloc,dealloc:s.dealloc,bigIntEnabled:s.bigIntEnabled,memberPrefix:"$"}),delete globalThis.Jaccwabyt;{const q=s.xWrap.argAdapter("string");s.xWrap.argAdapter("string:flexible",S=>q(o.flexibleString(S))),s.xWrap.argAdapter("string:static",(function(S){return s.isPtr(S)?S:(S=""+S,this[S]||(this[S]=s.allocCString(S)))}).bind(Object.create(null)));const w=s.xWrap.argAdapter("*"),x=function(){};s.xWrap.argAdapter("sqlite3_filename",w)("sqlite3_context*",w)("sqlite3_value*",w)("void*",w)("sqlite3_changegroup*",w)("sqlite3_changeset_iter*",w)("sqlite3_session*",w)("sqlite3_stmt*",S=>w(S instanceof(t?.oo1?.Stmt||x)?S.pointer:S))("sqlite3*",S=>w(S instanceof(t?.oo1?.DB||x)?S.pointer:S))("sqlite3_vfs*",S=>typeof S=="string"?r.sqlite3_vfs_find(S)||t.SQLite3Error.toss(r.SQLITE_NOTFOUND,"Unknown sqlite3_vfs name:",S):w(S instanceof(r.sqlite3_vfs||x)?S.pointer:S)),s.exports.sqlite3_declare_vtab&&s.xWrap.argAdapter("sqlite3_index_info*",S=>w(S instanceof(r.sqlite3_index_info||x)?S.pointer:S))("sqlite3_module*",S=>w(S instanceof(r.sqlite3_module||x)?S.pointer:S));const N=s.xWrap.resultAdapter("*");s.xWrap.resultAdapter("sqlite3*",N)("sqlite3_context*",N)("sqlite3_stmt*",N)("sqlite3_value*",N)("sqlite3_vfs*",N)("void*",N),s.exports.sqlite3_step.length===0&&(s.xWrap.doArgcCheck=!1,t.config.warn("Disabling sqlite3.wasm.xWrap.doArgcCheck due to environmental quirks."));for(const S of s.bindingSignatures)r[S[0]]=s.xWrap.apply(null,S);for(const S of s.bindingSignatures.wasmInternal)o[S[0]]=s.xWrap.apply(null,S);const P=function(S){return()=>n(S+"() is unavailable due to lack","of BigInt support in this build.")};for(const S of s.bindingSignatures.int64)r[S[0]]=s.bigIntEnabled?s.xWrap.apply(null,S):P(S[0]);if(delete s.bindingSignatures,s.exports.sqlite3__wasm_db_error){const S=s.xWrap("sqlite3__wasm_db_error","int","sqlite3*","int","string");o.sqlite3__wasm_db_error=function(L,$,c){return $ instanceof t.WasmAllocError?($=r.SQLITE_NOMEM,c=0):$ instanceof Error&&(c=c||""+$,$=$.resultCode||r.SQLITE_ERROR),L?S(L,$,c):$}}else o.sqlite3__wasm_db_error=function(S,L,$){return console.warn("sqlite3__wasm_db_error() is not exported.",arguments),L}}{const q=s.xCall("sqlite3__wasm_enum_json");q||n("Maintenance required: increase sqlite3__wasm_enum_json()'s","static buffer size!"),s.ctype=JSON.parse(s.cstrToJs(q));const w=["access","authorizer","blobFinalizers","changeset","config","dataTypes","dbConfig","dbStatus","encodings","fcntl","flock","ioCap","limits","openFlags","prepareFlags","resultCodes","sqlite3Status","stmtStatus","syncFlags","trace","txnState","udfFlags","version"];s.bigIntEnabled&&w.push("serialize","session","vtab");for(const P of w)for(const S of Object.entries(s.ctype[P]))r[S[0]]=S[1];s.functionEntry(r.SQLITE_WASM_DEALLOC)||n("Internal error: cannot resolve exported function","entry SQLITE_WASM_DEALLOC (=="+r.SQLITE_WASM_DEALLOC+").");const x=Object.create(null);for(const P of["resultCodes"])for(const S of Object.entries(s.ctype[P]))x[S[1]]=S[0];r.sqlite3_js_rc_str=P=>x[P];const N=Object.assign(Object.create(null),{WasmTestStruct:!0,sqlite3_kvvfs_methods:!o.isUIThread(),sqlite3_index_info:!s.bigIntEnabled,sqlite3_index_constraint:!s.bigIntEnabled,sqlite3_index_orderby:!s.bigIntEnabled,sqlite3_index_constraint_usage:!s.bigIntEnabled});for(const P of s.ctype.structs)N[P.name]||(r[P.name]=t.StructBinder(P));if(r.sqlite3_index_info){for(const P of["sqlite3_index_constraint","sqlite3_index_orderby","sqlite3_index_constraint_usage"])r.sqlite3_index_info[P]=r[P],delete r[P];r.sqlite3_vtab_config=s.xWrap("sqlite3__wasm_vtab_config","int",["sqlite3*","int","int"])}}const p=(q,w,x)=>o.sqlite3__wasm_db_error(q,r.SQLITE_MISUSE,w+"() requires "+x+" argument"+(x===1?"":"s")+"."),g=q=>o.sqlite3__wasm_db_error(q,r.SQLITE_FORMAT,"SQLITE_UTF8 is the only supported encoding."),O=q=>s.xWrap.argAdapter("sqlite3*")(q),R=q=>s.isPtr(q)?s.cstrToJs(q):q,z=(function(q,w){q=O(q);let x=this.dbMap.get(q);if(w)!x&&w>0&&this.dbMap.set(q,x=Object.create(null));else return this.dbMap.delete(q),x;return x}).bind(Object.assign(Object.create(null),{dbMap:new Map}));z.addCollation=function(q,w){const x=z(q,1);x.collation||(x.collation=new Set),x.collation.add(R(w).toLowerCase())},z._addUDF=function(q,w,x,N){w=R(w).toLowerCase();let P=N.get(w);P||N.set(w,P=new Set),P.add(x<0?-1:x)},z.addFunction=function(q,w,x){const N=z(q,1);N.udf||(N.udf=new Map),this._addUDF(q,w,x,N.udf)},s.exports.sqlite3_create_window_function&&(z.addWindowFunc=function(q,w,x){const N=z(q,1);N.wudf||(N.wudf=new Map),this._addUDF(q,w,x,N.wudf)}),z.cleanup=function(q){q=O(q);const w=[q];for(const P of["sqlite3_busy_handler","sqlite3_commit_hook","sqlite3_preupdate_hook","sqlite3_progress_handler","sqlite3_rollback_hook","sqlite3_set_authorizer","sqlite3_trace_v2","sqlite3_update_hook"]){const S=s.exports[P];if(S){w.length=S.length;try{r[P](...w)}catch(L){t.config.warn("close-time call of",P+"(",w,") threw:",L)}}}const x=z(q,0);if(!x)return;if(x.collation){for(const P of x.collation)try{r.sqlite3_create_collation_v2(q,P,r.SQLITE_UTF8,0,0,0)}catch{}delete x.collation}let N;for(N=0;N<2;++N){const P=N?x.wudf:x.udf;if(!P)continue;const S=N?r.sqlite3_create_window_function:r.sqlite3_create_function_v2;for(const L of P){const $=L[0],c=L[1],d=[q,$,0,r.SQLITE_UTF8,0,0,0,0,0];N&&d.push(0);for(const y of c)try{d[2]=y,S.apply(null,d)}catch{}c.clear()}P.clear()}delete x.udf,delete x.wudf};{const q=s.xWrap("sqlite3_close_v2","int","sqlite3*");r.sqlite3_close_v2=function(w){if(arguments.length!==1)return p(w,"sqlite3_close_v2",1);if(w)try{z.cleanup(w)}catch{}return q(w)}}if(r.sqlite3session_create){const q=s.xWrap("sqlite3session_delete",void 0,["sqlite3_session*"]);r.sqlite3session_delete=function(w){if(arguments.length!==1)return p(pDb,"sqlite3session_delete",1);w&&r.sqlite3session_table_filter(w,0,0),q(w)}}{const q=(x,N)=>"argv["+N+"]:"+x[0]+":"+s.cstrToJs(x[1]).toLowerCase(),w=s.xWrap("sqlite3_create_collation_v2","int",["sqlite3*","string","int","*",new s.xWrap.FuncPtrAdapter({name:"xCompare",signature:"i(pipip)",contextKey:q}),new s.xWrap.FuncPtrAdapter({name:"xDestroy",signature:"v(p)",contextKey:q})]);r.sqlite3_create_collation_v2=function(x,N,P,S,L,$){if(arguments.length!==6)return p(x,"sqlite3_create_collation_v2",6);if((P&15)===0)P|=r.SQLITE_UTF8;else if(r.SQLITE_UTF8!==(P&15))return g(x);try{const c=w(x,N,P,S,L,$);return c===0&&L instanceof Function&&z.addCollation(x,N),c}catch(c){return o.sqlite3__wasm_db_error(x,c)}},r.sqlite3_create_collation=(x,N,P,S,L)=>arguments.length===5?r.sqlite3_create_collation_v2(x,N,P,S,L,0):p(x,"sqlite3_create_collation",5)}{const q=function(P,S){return P[0]+":"+(P[2]<0?-1:P[2])+":"+S+":"+s.cstrToJs(P[1]).toLowerCase()},w=Object.assign(Object.create(null),{xInverseAndStep:{signature:"v(pip)",contextKey:q,callProxy:P=>(S,L,$)=>{try{P(S,...r.sqlite3_values_to_js(L,$))}catch(c){r.sqlite3_result_error_js(S,c)}}},xFinalAndValue:{signature:"v(p)",contextKey:q,callProxy:P=>S=>{try{r.sqlite3_result_js(S,P(S))}catch(L){r.sqlite3_result_error_js(S,L)}}},xFunc:{signature:"v(pip)",contextKey:q,callProxy:P=>(S,L,$)=>{try{r.sqlite3_result_js(S,P(S,...r.sqlite3_values_to_js(L,$)))}catch(c){r.sqlite3_result_error_js(S,c)}}},xDestroy:{signature:"v(p)",contextKey:q,callProxy:P=>S=>{try{P(S)}catch(L){console.error("UDF xDestroy method threw:",L)}}}}),x=s.xWrap("sqlite3_create_function_v2","int",["sqlite3*","string","int","int","*",new s.xWrap.FuncPtrAdapter({name:"xFunc",...w.xFunc}),new s.xWrap.FuncPtrAdapter({name:"xStep",...w.xInverseAndStep}),new s.xWrap.FuncPtrAdapter({name:"xFinal",...w.xFinalAndValue}),new s.xWrap.FuncPtrAdapter({name:"xDestroy",...w.xDestroy})]),N=s.exports.sqlite3_create_window_function?s.xWrap("sqlite3_create_window_function","int",["sqlite3*","string","int","int","*",new s.xWrap.FuncPtrAdapter({name:"xStep",...w.xInverseAndStep}),new s.xWrap.FuncPtrAdapter({name:"xFinal",...w.xFinalAndValue}),new s.xWrap.FuncPtrAdapter({name:"xValue",...w.xFinalAndValue}),new s.xWrap.FuncPtrAdapter({name:"xInverse",...w.xInverseAndStep}),new s.xWrap.FuncPtrAdapter({name:"xDestroy",...w.xDestroy})]):void 0;r.sqlite3_create_function_v2=function P(S,L,$,c,d,y,B,f,m){if(P.length!==arguments.length)return p(S,"sqlite3_create_function_v2",P.length);if((c&15)===0)c|=r.SQLITE_UTF8;else if(r.SQLITE_UTF8!==(c&15))return g(S);try{const l=x(S,L,$,c,d,y,B,f,m);return l===0&&(y instanceof Function||B instanceof Function||f instanceof Function||m instanceof Function)&&z.addFunction(S,L,$),l}catch(l){return console.error("sqlite3_create_function_v2() setup threw:",l),o.sqlite3__wasm_db_error(S,l,"Creation of UDF threw: "+l)}},r.sqlite3_create_function=function P(S,L,$,c,d,y,B,f){return P.length===arguments.length?r.sqlite3_create_function_v2(S,L,$,c,d,y,B,f,0):p(S,"sqlite3_create_function",P.length)},N?r.sqlite3_create_window_function=function P(S,L,$,c,d,y,B,f,m,l){if(P.length!==arguments.length)return p(S,"sqlite3_create_window_function",P.length);if((c&15)===0)c|=r.SQLITE_UTF8;else if(r.SQLITE_UTF8!==(c&15))return g(S);try{const _=N(S,L,$,c,d,y,B,f,m,l);return _===0&&(y instanceof Function||B instanceof Function||f instanceof Function||m instanceof Function||l instanceof Function)&&z.addWindowFunc(S,L,$),_}catch(_){return console.error("sqlite3_create_window_function() setup threw:",_),o.sqlite3__wasm_db_error(S,_,"Creation of UDF threw: "+_)}}:delete r.sqlite3_create_window_function,r.sqlite3_create_function_v2.udfSetResult=r.sqlite3_create_function.udfSetResult=r.sqlite3_result_js,r.sqlite3_create_window_function&&(r.sqlite3_create_window_function.udfSetResult=r.sqlite3_result_js),r.sqlite3_create_function_v2.udfConvertArgs=r.sqlite3_create_function.udfConvertArgs=r.sqlite3_values_to_js,r.sqlite3_create_window_function&&(r.sqlite3_create_window_function.udfConvertArgs=r.sqlite3_values_to_js),r.sqlite3_create_function_v2.udfSetError=r.sqlite3_create_function.udfSetError=r.sqlite3_result_error_js,r.sqlite3_create_window_function&&(r.sqlite3_create_window_function.udfSetError=r.sqlite3_result_error_js)}{const q=(x,N)=>(typeof x=="string"?N=-1:o.isSQLableTypedArray(x)?(N=x.byteLength,x=o.typedArrayToString(x instanceof ArrayBuffer?new Uint8Array(x):x)):Array.isArray(x)&&(x=x.join(""),N=-1),[x,N]),w={basic:s.xWrap("sqlite3_prepare_v3","int",["sqlite3*","string","int","int","**","**"]),full:s.xWrap("sqlite3_prepare_v3","int",["sqlite3*","*","int","int","**","**"])};r.sqlite3_prepare_v3=function x(N,P,S,L,$,c){if(x.length!==arguments.length)return p(N,"sqlite3_prepare_v3",x.length);const[d,y]=q(P,S);switch(typeof d){case"string":return w.basic(N,d,y,L,$,null);case"number":return w.full(N,d,y,L,$,c);default:return o.sqlite3__wasm_db_error(N,r.SQLITE_MISUSE,"Invalid SQL argument type for sqlite3_prepare_v2/v3().")}},r.sqlite3_prepare_v2=function x(N,P,S,L,$){return x.length===arguments.length?r.sqlite3_prepare_v3(N,P,S,0,L,$):p(N,"sqlite3_prepare_v2",x.length)}}{const q=s.xWrap("sqlite3_bind_text","int",["sqlite3_stmt*","int","string","int","*"]),w=s.xWrap("sqlite3_bind_blob","int",["sqlite3_stmt*","int","*","int","*"]);r.sqlite3_bind_text=function x(N,P,S,L,$){if(x.length!==arguments.length)return p(r.sqlite3_db_handle(N),"sqlite3_bind_text",x.length);if(s.isPtr(S)||S===null)return q(N,P,S,L,$);S instanceof ArrayBuffer?S=new Uint8Array(S):Array.isArray(pMem)&&(S=pMem.join(""));let c,d;try{if(o.isSQLableTypedArray(S))c=s.allocFromTypedArray(S),d=S.byteLength;else if(typeof S=="string")[c,d]=s.allocCString(S);else return o.sqlite3__wasm_db_error(r.sqlite3_db_handle(N),r.SQLITE_MISUSE,"Invalid 3rd argument type for sqlite3_bind_text().");return q(N,P,c,d,r.SQLITE_WASM_DEALLOC)}catch(y){return s.dealloc(c),o.sqlite3__wasm_db_error(r.sqlite3_db_handle(N),y)}},r.sqlite3_bind_blob=function x(N,P,S,L,$){if(x.length!==arguments.length)return p(r.sqlite3_db_handle(N),"sqlite3_bind_blob",x.length);if(s.isPtr(S)||S===null)return w(N,P,S,L,$);S instanceof ArrayBuffer?S=new Uint8Array(S):Array.isArray(S)&&(S=S.join(""));let c,d;try{if(o.isBindableTypedArray(S))c=s.allocFromTypedArray(S),d=L>=0?L:S.byteLength;else if(typeof S=="string")[c,d]=s.allocCString(S);else return o.sqlite3__wasm_db_error(r.sqlite3_db_handle(N),r.SQLITE_MISUSE,"Invalid 3rd argument type for sqlite3_bind_blob().");return w(N,P,c,d,r.SQLITE_WASM_DEALLOC)}catch(y){return s.dealloc(c),o.sqlite3__wasm_db_error(r.sqlite3_db_handle(N),y)}}}r.sqlite3_config=function(q,...w){if(arguments.length<2)return r.SQLITE_MISUSE;switch(q){case r.SQLITE_CONFIG_COVERING_INDEX_SCAN:case r.SQLITE_CONFIG_MEMSTATUS:case r.SQLITE_CONFIG_SMALL_MALLOC:case r.SQLITE_CONFIG_SORTERREF_SIZE:case r.SQLITE_CONFIG_STMTJRNL_SPILL:case r.SQLITE_CONFIG_URI:return s.exports.sqlite3__wasm_config_i(q,w[0]);case r.SQLITE_CONFIG_LOOKASIDE:return s.exports.sqlite3__wasm_config_ii(q,w[0],w[1]);case r.SQLITE_CONFIG_MEMDB_MAXSIZE:return s.exports.sqlite3__wasm_config_j(q,w[0]);case r.SQLITE_CONFIG_GETMALLOC:case r.SQLITE_CONFIG_GETMUTEX:case r.SQLITE_CONFIG_GETPCACHE2:case r.SQLITE_CONFIG_GETPCACHE:case r.SQLITE_CONFIG_HEAP:case r.SQLITE_CONFIG_LOG:case r.SQLITE_CONFIG_MALLOC:case r.SQLITE_CONFIG_MMAP_SIZE:case r.SQLITE_CONFIG_MULTITHREAD:case r.SQLITE_CONFIG_MUTEX:case r.SQLITE_CONFIG_PAGECACHE:case r.SQLITE_CONFIG_PCACHE2:case r.SQLITE_CONFIG_PCACHE:case r.SQLITE_CONFIG_PCACHE_HDRSZ:case r.SQLITE_CONFIG_PMASZ:case r.SQLITE_CONFIG_SERIALIZED:case r.SQLITE_CONFIG_SINGLETHREAD:case r.SQLITE_CONFIG_SQLLOG:case r.SQLITE_CONFIG_WIN32_HEAPSIZE:default:return r.SQLITE_NOTFOUND}};{const q=new Set;r.sqlite3_auto_extension=function(w){if(w instanceof Function)w=s.installFunction("i(ppp)",w);else if(arguments.length!==1||!s.isPtr(w))return r.SQLITE_MISUSE;const x=s.exports.sqlite3_auto_extension(w);return w!==arguments[0]&&(x===0?q.add(w):s.uninstallFunction(w)),x},r.sqlite3_cancel_auto_extension=function(w){return!w||arguments.length!==1||!s.isPtr(w)?0:s.exports.sqlite3_cancel_auto_extension(w)},r.sqlite3_reset_auto_extension=function(){s.exports.sqlite3_reset_auto_extension();for(const w of q)s.uninstallFunction(w);q.clear()}}const Q=r.sqlite3_vfs_find("kvvfs");if(Q)if(o.isUIThread()){const q=new r.sqlite3_kvvfs_methods(s.exports.sqlite3__wasm_kvvfs_methods());delete r.sqlite3_kvvfs_methods;const w=s.exports.sqlite3__wasm_kvvfsMakeKeyOnPstack,x=s.pstack,N=S=>s.peek(S)===115?sessionStorage:localStorage,P={xRead:(S,L,$,c)=>{const d=x.pointer,y=s.scopedAllocPush();try{const B=w(S,L);if(!B)return-3;const f=s.cstrToJs(B),m=N(S).getItem(f);if(!m)return-1;const l=m.length;if(c<=0)return l;if(c===1)return s.poke($,0),l;const _=s.scopedAllocCString(m);return c>l+1&&(c=l+1),s.heap8u().copyWithin($,_,_+c-1),s.poke($+c-1,0),c-1}catch(B){return console.error("kvstorageRead()",B),-2}finally{x.restore(d),s.scopedAllocPop(y)}},xWrite:(S,L,$)=>{const c=x.pointer;try{const d=w(S,L);if(!d)return 1;const y=s.cstrToJs(d);return N(S).setItem(y,s.cstrToJs($)),0}catch(d){return console.error("kvstorageWrite()",d),r.SQLITE_IOERR}finally{x.restore(c)}},xDelete:(S,L)=>{const $=x.pointer;try{const c=w(S,L);return c?(N(S).removeItem(s.cstrToJs(c)),0):1}catch(c){return console.error("kvstorageDelete()",c),r.SQLITE_IOERR}finally{x.restore($)}}};for(const S of Object.keys(P))q[q.memberKey(S)]=s.installFunction(q.memberSignature(S),P[S])}else r.sqlite3_vfs_unregister(Q);s.xWrap.FuncPtrAdapter.warnOnUse=!0;const T=t.StructBinder,A=function q(w,x,N,P=q.installMethodArgcCheck){if(w instanceof T.StructType?!(N instanceof Function)&&!s.isPtr(N)&&n("Usage error: expecting a Function or WASM pointer to one."):n("Usage error: target object is-not-a StructType."),arguments.length===1)return(c,d)=>q(w,c,d,P);q.argcProxy||(q.argcProxy=function(c,d,y,B){return function(...f){return y.length!==arguments.length&&n("Argument mismatch for",c.structInfo.name+"::"+d+": Native signature is:",B),y.apply(this,f)}},q.removeFuncList=function(){this.ondispose.__removeFuncList&&(this.ondispose.__removeFuncList.forEach((c,d)=>{if(typeof c=="number")try{s.uninstallFunction(c)}catch{}}),delete this.ondispose.__removeFuncList)});const S=w.memberSignature(x);S.length<2&&n("Member",x,"does not have a function pointer signature:",S);const L=w.memberKey(x),$=P&&!s.isPtr(N)?q.argcProxy(w,L,N,S):N;if(s.isPtr($))$&&!s.functionEntry($)&&n("Pointer",$,"is not a WASM function table entry."),w[L]=$;else{const c=s.installFunction($,w.memberSignature(x,!0));w[L]=c,(!w.ondispose||!w.ondispose.__removeFuncList)&&(w.addOnDispose("ondispose.__removeFuncList handler",q.removeFuncList),w.ondispose.__removeFuncList=[]),w.ondispose.__removeFuncList.push(L,c)}return(c,d)=>q(w,c,d,P)};A.installMethodArgcCheck=!1;const D=function(q,w,x=A.installMethodArgcCheck){const N=new Map;for(const P of Object.keys(w)){const S=w[P],L=N.get(S);if(L){const $=q.memberKey(P);q[$]=q[q.memberKey(L)]}else A(q,P,S,x),N.set(S,P)}return q};T.StructType.prototype.installMethod=function(w,x,N=A.installMethodArgcCheck){return arguments.length<3&&w&&typeof w=="object"?D(this,...arguments):A(this,...arguments)},T.StructType.prototype.installMethods=function(q,w=A.installMethodArgcCheck){return D(this,q,w)}}),globalThis.sqlite3ApiBootstrap.initializers.push(function(t){t.version={libVersion:"3.50.4",libVersionNumber:3050004,sourceId:"2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3",downloadVersion:3500400}}),globalThis.sqlite3ApiBootstrap.initializers.push(function(t){const n=(...f)=>{throw new t.SQLite3Error(...f)},r=t.capi,s=t.wasm,o=t.util,p=new WeakMap,g=new WeakMap,O=(f,m,l)=>{const _=Object.getOwnPropertyDescriptor(f,m);return _?_.value:l},R=function(f,m){return m&&(f instanceof A&&(f=f.pointer),n(m,"sqlite3 result code",m+":",f?r.sqlite3_errmsg(f):r.sqlite3_errstr(m))),arguments[0]},z=s.installFunction("i(ippp)",(function(f,m,l,_){r.SQLITE_TRACE_STMT===f&&console.log("SQL TRACE #"+ ++this.counter+" via sqlite3@"+m+":",s.cstrToJs(_))}).bind({counter:0})),Q=Object.create(null),T=function f(...m){if(!f._name2vfs){f._name2vfs=Object.create(null);const j=typeof importScripts=="function"?b=>n("The VFS for",b,"is only available in the main window thread."):!1;f._name2vfs[":localStorage:"]={vfs:"kvvfs",filename:j||(()=>"local")},f._name2vfs[":sessionStorage:"]={vfs:"kvvfs",filename:j||(()=>"session")}}const l=f.normalizeArgs(...m);let _=l.filename,u=l.vfs,I=l.flags;(typeof _!="string"&&typeof _!="number"||typeof I!="string"||u&&typeof u!="string"&&typeof u!="number")&&(t.config.error("Invalid DB ctor args",l,arguments),n("Invalid arguments for DB constructor."));let U=typeof _=="number"?s.cstrToJs(_):_;const ee=f._name2vfs[U];ee&&(u=ee.vfs,_=U=ee.filename(U));let ne,se=0;I.indexOf("c")>=0&&(se|=r.SQLITE_OPEN_CREATE|r.SQLITE_OPEN_READWRITE),I.indexOf("w")>=0&&(se|=r.SQLITE_OPEN_READWRITE),se===0&&(se|=r.SQLITE_OPEN_READONLY),se|=r.SQLITE_OPEN_EXRESCODE;const ie=s.pstack.pointer;try{const j=s.pstack.allocPtr();let b=r.sqlite3_open_v2(_,j,se,u||0);ne=s.peekPtr(j),R(ne,b),r.sqlite3_extended_result_codes(ne,1),I.indexOf("t")>=0&&r.sqlite3_trace_v2(ne,r.SQLITE_TRACE_STMT,z,ne)}catch(j){throw ne&&r.sqlite3_close_v2(ne),j}finally{s.pstack.restore(ie)}this.filename=U,p.set(this,ne),g.set(this,Object.create(null));try{const j=r.sqlite3_js_db_vfs(ne)||n("Internal error: cannot get VFS for new db handle."),b=Q[j];b&&(b instanceof Function?b(this,t):R(ne,r.sqlite3_exec(ne,b,0,0,0)))}catch(j){throw this.close(),j}};T.setVfsPostOpenCallback=function(f,m){m instanceof Function||n("dbCtorHelper.setVfsPostOpenCallback() should not be used with a non-function argument.",arguments),Q[f]=m},T.normalizeArgs=function(f=":memory:",m="c",l=null){const _={};return arguments.length===1&&arguments[0]&&typeof arguments[0]=="object"?(Object.assign(_,arguments[0]),_.flags===void 0&&(_.flags="c"),_.vfs===void 0&&(_.vfs=null),_.filename===void 0&&(_.filename=":memory:")):(_.filename=f,_.flags=m,_.vfs=l),_};const A=function(...f){T.apply(this,f)};A.dbCtorHelper=T;const D={null:1,number:2,string:3,boolean:4,blob:5};D.undefined==D.null,s.bigIntEnabled&&(D.bigint=D.number);const q=function(){D!==arguments[2]&&n(r.SQLITE_MISUSE,"Do not call the Stmt constructor directly. Use DB.prepare()."),this.db=arguments[0],p.set(this,arguments[1]),this.parameterCount=r.sqlite3_bind_parameter_count(this.pointer)},w=function(f){return f.pointer||n("DB has been closed."),f},x=function(f,m){return(m!==(m|0)||m<0||m>=f.columnCount)&&n("Column index",m,"is out of range."),f},N=function(f,m){const l=Object.create(null);switch(l.opt=Object.create(null),m.length){case 1:typeof m[0]=="string"||o.isSQLableTypedArray(m[0])||Array.isArray(m[0])?l.sql=m[0]:m[0]&&typeof m[0]=="object"&&(l.opt=m[0],l.sql=l.opt.sql);break;case 2:l.sql=m[0],l.opt=m[1];break;default:n("Invalid argument count for exec().")}l.sql=o.flexibleString(l.sql),typeof l.sql!="string"&&n("Missing SQL argument or unsupported SQL value type.");const _=l.opt;switch(_.returnValue){case"resultRows":_.resultRows||(_.resultRows=[]),l.returnVal=()=>_.resultRows;break;case"saveSql":_.saveSql||(_.saveSql=[]),l.returnVal=()=>_.saveSql;break;case void 0:case"this":l.returnVal=()=>f;break;default:n("Invalid returnValue value:",_.returnValue)}if(!_.callback&&!_.returnValue&&_.rowMode!==void 0&&(_.resultRows||(_.resultRows=[]),l.returnVal=()=>_.resultRows),_.callback||_.resultRows)switch(_.rowMode===void 0?"array":_.rowMode){case"object":l.cbArg=(u,I)=>{I.columnNames||(I.columnNames=u.getColumnNames([]));const U=u.get([]),ee=Object.create(null);for(const ne in I.columnNames)ee[I.columnNames[ne]]=U[ne];return ee};break;case"array":l.cbArg=u=>u.get([]);break;case"stmt":Array.isArray(_.resultRows)&&n("exec(): invalid rowMode for a resultRows array: must","be one of 'array', 'object',","a result column number, or column name reference."),l.cbArg=u=>u;break;default:if(o.isInt32(_.rowMode)){l.cbArg=u=>u.get(_.rowMode);break}else if(typeof _.rowMode=="string"&&_.rowMode.length>1&&_.rowMode[0]==="$"){const u=_.rowMode.substr(1);l.cbArg=I=>{const U=I.get(Object.create(null))[u];return U===void 0?n(r.SQLITE_NOTFOUND,"exec(): unknown result column:",u):U};break}n("Invalid rowMode:",_.rowMode)}return l},P=(f,m,l,..._)=>{const u=f.prepare(m);try{const I=u.bind(l).step()?u.get(..._):void 0;return u.reset(),I}finally{u.finalize()}},S=(f,m,l,_)=>f.exec({sql:m,bind:l,rowMode:_,returnValue:"resultRows"});A.checkRc=(f,m)=>R(f,m),A.prototype={isOpen:function(){return!!this.pointer},affirmOpen:function(){return w(this)},close:function(){if(this.pointer){if(this.onclose&&this.onclose.before instanceof Function)try{this.onclose.before(this)}catch{}const f=this.pointer;if(Object.keys(g.get(this)).forEach((m,l)=>{if(l&&l.pointer)try{l.finalize()}catch{}}),p.delete(this),g.delete(this),r.sqlite3_close_v2(f),this.onclose&&this.onclose.after instanceof Function)try{this.onclose.after(this)}catch{}delete this.filename}},changes:function(f=!1,m=!1){const l=w(this).pointer;return f?m?r.sqlite3_total_changes64(l):r.sqlite3_total_changes(l):m?r.sqlite3_changes64(l):r.sqlite3_changes(l)},dbFilename:function(f="main"){return r.sqlite3_db_filename(w(this).pointer,f)},dbName:function(f=0){return r.sqlite3_db_name(w(this).pointer,f)},dbVfsName:function(f=0){let m;const l=r.sqlite3_js_db_vfs(w(this).pointer,f);if(l){const _=new r.sqlite3_vfs(l);try{m=s.cstrToJs(_.$zName)}finally{_.dispose()}}return m},prepare:function(f){w(this);const m=s.pstack.pointer;let l,_;try{l=s.pstack.alloc(8),A.checkRc(this,r.sqlite3_prepare_v2(this.pointer,f,-1,l,null)),_=s.peekPtr(l)}finally{s.pstack.restore(m)}_||n("Cannot prepare empty SQL.");const u=new q(this,_,D);return g.get(this)[_]=u,u},exec:function(){w(this);const f=N(this,arguments);if(!f.sql)return n("exec() requires an SQL string.");const m=f.opt,l=m.callback,_=Array.isArray(m.resultRows)?m.resultRows:void 0;let u,I=m.bind,U=!!(f.cbArg||m.columnNames||_);const ee=s.scopedAllocPush(),ne=Array.isArray(m.saveSql)?m.saveSql:void 0;try{const se=o.isSQLableTypedArray(f.sql);let ie=se?f.sql.byteLength:s.jstrlen(f.sql);const j=s.scopedAlloc(2*s.ptrSizeof+(ie+1)),b=j+s.ptrSizeof;let k=b+s.ptrSizeof;const W=k+ie;for(se?s.heap8().set(f.sql,k):s.jstrcpy(f.sql,s.heap8(),k,ie,!1),s.poke(k+ie,0);k&&s.peek(k,"i8");){s.pokePtr([j,b],0),A.checkRc(this,r.sqlite3_prepare_v3(this.pointer,k,ie,0,j,b));const H=s.peekPtr(j);if(k=s.peekPtr(b),ie=W-k,!!H){if(ne&&ne.push(r.sqlite3_sql(H).trim()),u=new q(this,H,D),I&&u.parameterCount&&(u.bind(I),I=null),U&&u.columnCount){let Z=Array.isArray(m.columnNames)?0:1;if(U=!1,f.cbArg||_){const E=Object.create(null);for(;u.step();u._lockedByExec=!1){Z++===0&&u.getColumnNames(E.columnNames=m.columnNames||[]),u._lockedByExec=!0;const C=f.cbArg(u,E);if(_&&_.push(C),l&&l.call(m,C,u)===!1)break}u._lockedByExec=!1}Z===0&&u.getColumnNames(m.columnNames)}else u.step();u.reset().finalize(),u=null}}}finally{s.scopedAllocPop(ee),u&&(delete u._lockedByExec,u.finalize())}return f.returnVal()},createFunction:function(m,l,_){const u=E=>E instanceof Function;switch(arguments.length){case 1:_=m,m=_.name,l=_.xFunc||0;break;case 2:u(l)||(_=l,l=_.xFunc||0);break}_||(_={}),typeof m!="string"&&n("Invalid arguments: missing function name.");let I=_.xStep||0,U=_.xFinal||0;const ee=_.xValue||0,ne=_.xInverse||0;let se;u(l)?(se=!1,(u(I)||u(U))&&n("Ambiguous arguments: scalar or aggregate?"),I=U=null):u(I)?(u(U)||n("Missing xFinal() callback for aggregate or window UDF."),l=null):u(U)?n("Missing xStep() callback for aggregate or window UDF."):n("Missing function-type properties."),se===!1?(u(ee)||u(ne))&&n("xValue and xInverse are not permitted for non-window UDFs."):u(ee)?(u(ne)||n("xInverse must be provided if xValue is."),se=!0):u(ne)&&n("xValue must be provided if xInverse is.");const ie=_.pApp;ie!=null&&(typeof ie!="number"||!o.isInt32(ie))&&n("Invalid value for pApp property. Must be a legal WASM pointer value.");const j=_.xDestroy||0;j&&!u(j)&&n("xDestroy property must be a function.");let b=0;O(_,"deterministic")&&(b|=r.SQLITE_DETERMINISTIC),O(_,"directOnly")&&(b|=r.SQLITE_DIRECTONLY),O(_,"innocuous")&&(b|=r.SQLITE_INNOCUOUS),m=m.toLowerCase();const k=l||I,W=O(_,"arity"),H=typeof W=="number"?W:k.length?k.length-1:0;let Z;return se?Z=r.sqlite3_create_window_function(this.pointer,m,H,r.SQLITE_UTF8|b,ie||0,I,U,ee,ne,j):Z=r.sqlite3_create_function_v2(this.pointer,m,H,r.SQLITE_UTF8|b,ie||0,l,I,U,j),A.checkRc(this,Z),this},selectValue:function(f,m,l){return P(this,f,m,0,l)},selectValues:function(f,m,l){const _=this.prepare(f),u=[];try{for(_.bind(m);_.step();)u.push(_.get(0,l));_.reset()}finally{_.finalize()}return u},selectArray:function(f,m){return P(this,f,m,[])},selectObject:function(f,m){return P(this,f,m,{})},selectArrays:function(f,m){return S(this,f,m,"array")},selectObjects:function(f,m){return S(this,f,m,"object")},openStatementCount:function(){return this.pointer?Object.keys(g.get(this)).length:0},transaction:function(f){let m="BEGIN";arguments.length>1&&(/[^a-zA-Z]/.test(arguments[0])&&n(r.SQLITE_MISUSE,"Invalid argument for BEGIN qualifier."),m+=" "+arguments[0],f=arguments[1]),w(this).exec(m);try{const l=f(this);return this.exec("COMMIT"),l}catch(l){throw this.exec("ROLLBACK"),l}},savepoint:function(f){w(this).exec("SAVEPOINT oo1");try{const m=f(this);return this.exec("RELEASE oo1"),m}catch(m){throw this.exec("ROLLBACK to SAVEPOINT oo1; RELEASE SAVEPOINT oo1"),m}},checkRc:function(f){return R(this,f)}};const L=function(f){return f.pointer||n("Stmt has been closed."),f},$=function(f){let m=D[f==null?"null":typeof f];switch(m){case D.boolean:case D.null:case D.number:case D.string:return m;case D.bigint:if(s.bigIntEnabled)return m;default:return o.isBindableTypedArray(f)?D.blob:void 0}},c=function(f){return $(f)||n("Unsupported bind() argument type:",typeof f)},d=function(f,m){const l=typeof m=="number"?m:r.sqlite3_bind_parameter_index(f.pointer,m);return l===0||!o.isInt32(l)?n("Invalid bind() parameter name: "+m):(l<1||l>f.parameterCount)&&n("Bind index",m,"is out of range."),l},y=function(f,m){return f._lockedByExec&&n("Operation is illegal when statement is locked:",m),f},B=function f(m,l,_,u){y(L(m),"bind()"),f._||(f._tooBigInt=U=>n("BigInt value is too big to store without precision loss:",U),f._={string:function(U,ee,ne,se){const[ie,j]=s.allocCString(ne,!0);return(se?r.sqlite3_bind_blob:r.sqlite3_bind_text)(U.pointer,ee,ie,j,r.SQLITE_WASM_DEALLOC)}}),c(u),l=d(m,l);let I=0;switch(u==null?D.null:_){case D.null:I=r.sqlite3_bind_null(m.pointer,l);break;case D.string:I=f._.string(m,l,u,!1);break;case D.number:{let U;o.isInt32(u)?U=r.sqlite3_bind_int:typeof u=="bigint"?o.bigIntFits64(u)?s.bigIntEnabled?U=r.sqlite3_bind_int64:o.bigIntFitsDouble(u)?(u=Number(u),U=r.sqlite3_bind_double):f._tooBigInt(u):f._tooBigInt(u):(u=Number(u),s.bigIntEnabled&&Number.isInteger(u)?U=r.sqlite3_bind_int64:U=r.sqlite3_bind_double),I=U(m.pointer,l,u);break}case D.boolean:I=r.sqlite3_bind_int(m.pointer,l,u?1:0);break;case D.blob:{if(typeof u=="string"){I=f._.string(m,l,u,!0);break}else u instanceof ArrayBuffer?u=new Uint8Array(u):o.isBindableTypedArray(u)||n("Binding a value as a blob requires","that it be a string, Uint8Array, Int8Array, or ArrayBuffer.");const U=s.alloc(u.byteLength||1);s.heap8().set(u.byteLength?u:[0],U),I=r.sqlite3_bind_blob(m.pointer,l,U,u.byteLength,r.SQLITE_WASM_DEALLOC);break}default:t.config.warn("Unsupported bind() argument type:",u),n("Unsupported bind() argument type: "+typeof u)}return I&&A.checkRc(m.db.pointer,I),m._mayGet=!1,m};q.prototype={finalize:function(){if(this.pointer){y(this,"finalize()");const f=r.sqlite3_finalize(this.pointer);return delete g.get(this.db)[this.pointer],p.delete(this),delete this._mayGet,delete this.parameterCount,delete this._lockedByExec,delete this.db,f}},clearBindings:function(){return y(L(this),"clearBindings()"),r.sqlite3_clear_bindings(this.pointer),this._mayGet=!1,this},reset:function(f){y(this,"reset()"),f&&this.clearBindings();const m=r.sqlite3_reset(L(this).pointer);return this._mayGet=!1,R(this.db,m),this},bind:function(){L(this);let f,m;switch(arguments.length){case 1:f=1,m=arguments[0];break;case 2:f=arguments[0],m=arguments[1];break;default:n("Invalid bind() arguments.")}return m===void 0?this:(this.parameterCount||n("This statement has no bindable parameters."),this._mayGet=!1,m===null?B(this,f,D.null,m):Array.isArray(m)?(arguments.length!==1&&n("When binding an array, an index argument is not permitted."),m.forEach((l,_)=>B(this,_+1,c(l),l)),this):(m instanceof ArrayBuffer&&(m=new Uint8Array(m)),typeof m=="object"&&!o.isBindableTypedArray(m)?(arguments.length!==1&&n("When binding an object, an index argument is not permitted."),Object.keys(m).forEach(l=>B(this,l,c(m[l]),m[l])),this):B(this,f,c(m),m)))},bindAsBlob:function(f,m){L(this),arguments.length===1&&(m=f,f=1);const l=c(m);return D.string!==l&&D.blob!==l&&D.null!==l&&n("Invalid value type for bindAsBlob()"),B(this,f,D.blob,m)},step:function(){y(this,"step()");const f=r.sqlite3_step(L(this).pointer);switch(f){case r.SQLITE_DONE:return this._mayGet=!1;case r.SQLITE_ROW:return this._mayGet=!0;default:this._mayGet=!1,t.config.warn("sqlite3_step() rc=",f,r.sqlite3_js_rc_str(f),"SQL =",r.sqlite3_sql(this.pointer)),A.checkRc(this.db.pointer,f)}},stepReset:function(){return this.step(),this.reset()},stepFinalize:function(){try{const f=this.step();return this.reset(),f}finally{try{this.finalize()}catch{}}},get:function(f,m){if(L(this)._mayGet||n("Stmt.step() has not (recently) returned true."),Array.isArray(f)){let l=0;const _=this.columnCount;for(;l<_;)f[l]=this.get(l++);return f}else if(f&&typeof f=="object"){let l=0;const _=this.columnCount;for(;l<_;)f[r.sqlite3_column_name(this.pointer,l)]=this.get(l++);return f}switch(x(this,f),m===void 0?r.sqlite3_column_type(this.pointer,f):m){case r.SQLITE_NULL:return null;case r.SQLITE_INTEGER:if(s.bigIntEnabled){const l=r.sqlite3_column_int64(this.pointer,f);return l>=Number.MIN_SAFE_INTEGER&&l<=Number.MAX_SAFE_INTEGER?Number(l).valueOf():l}else{const l=r.sqlite3_column_double(this.pointer,f);return(l>Number.MAX_SAFE_INTEGER||ln("The pointer property is read-only.")};Object.defineProperty(q.prototype,"pointer",f),Object.defineProperty(A.prototype,"pointer",f)}if(Object.defineProperty(q.prototype,"columnCount",{enumerable:!1,get:function(){return r.sqlite3_column_count(this.pointer)},set:()=>n("The columnCount property is read-only.")}),t.oo1={DB:A,Stmt:q},o.isUIThread()){t.oo1.JsStorageDb=function(m="session"){const l=T.normalizeArgs(...arguments);m=l.filename,m!=="session"&&m!=="local"&&n("JsStorageDb db name must be one of 'session' or 'local'."),l.vfs="kvvfs",T.call(this,l)};const f=t.oo1.JsStorageDb;f.prototype=Object.create(A.prototype),f.clearStorage=r.sqlite3_js_kvvfs_clear,f.prototype.clearStorage=function(){return f.clearStorage(w(this).filename)},f.storageSize=r.sqlite3_js_kvvfs_size,f.prototype.storageSize=function(){return f.storageSize(w(this).filename)}}}),globalThis.sqlite3ApiBootstrap.initializers.push(function(t){const n=t.util;t.initWorker1API=(function(){const r=(...T)=>{throw new Error(T.join(" "))};globalThis.WorkerGlobalScope instanceof Function||r("initWorker1API() must be run from a Worker thread.");const s=this.sqlite3||r("Missing this.sqlite3 object."),o=s.oo1.DB,p=function(T){let A=g.idMap.get(T);return A||(A="db#"+ ++g.idSeq+"@"+T.pointer,g.idMap.set(T,A),A)},g={dbList:[],idSeq:0,idMap:new WeakMap,xfer:[],open:function(T){const A=new o(T);return this.dbs[p(A)]=A,this.dbList.indexOf(A)<0&&this.dbList.push(A),A},close:function(T,A){if(T){delete this.dbs[p(T)];const D=T.filename,q=n.sqlite3__wasm_db_vfs(T.pointer,0);T.close();const w=this.dbList.indexOf(T);w>=0&&this.dbList.splice(w,1),A&&D&&q&&n.sqlite3__wasm_vfs_unlink(q,D)}},post:function(T,A){A&&A.length?(globalThis.postMessage(T,Array.from(A)),A.length=0):globalThis.postMessage(T)},dbs:Object.create(null),getDb:function(T,A=!0){return this.dbs[T]||(A?r("Unknown (or closed) DB ID:",T):void 0)}},O=function(T=g.dbList[0]){return T&&T.pointer?T:r("DB is not opened.")},R=function(T,A=!0){const D=g.getDb(T.dbId,!1)||g.dbList[0];return A?O(D):D},z=function(){return g.dbList[0]&&p(g.dbList[0])},Q={open:function(T){const A=Object.create(null),D=T.args||Object.create(null);D.simulateError&&r("Throwing because of simulateError flag.");const q=Object.create(null);A.vfs=D.vfs,A.filename=D.filename||"";const w=g.open(A);return q.filename=w.filename,q.persistent=!!s.capi.sqlite3_js_db_uses_vfs(w.pointer,"opfs"),q.dbId=p(w),q.vfs=w.dbVfsName(),q},close:function(T){const A=R(T,!1),D={filename:A&&A.filename};if(A){const q=T.args&&typeof T.args=="object"?!!T.args.unlink:!1;g.close(A,q)}return D},exec:function(T){const A=typeof T.args=="string"?{sql:T.args}:T.args||Object.create(null);A.rowMode==="stmt"?r("Invalid rowMode for 'exec': stmt mode","does not work in the Worker API."):A.sql||r("'exec' requires input SQL.");const D=R(T);(A.callback||Array.isArray(A.resultRows))&&(D._blobXfer=g.xfer);const q=A.callback;let w=0;const x=!!A.columnNames;typeof q=="string"&&(x||(A.columnNames=[]),A.callback=function(N,P){g.post({type:q,columnNames:A.columnNames,rowNumber:++w,row:N},g.xfer)});try{const N=A.countChanges?D.changes(!0,A.countChanges===64):void 0;D.exec(A),N!==void 0&&(A.changeCount=D.changes(!0,A.countChanges===64)-N);const P=A.lastInsertRowId?s.capi.sqlite3_last_insert_rowid(D):void 0;P!==void 0&&(A.lastInsertRowId=P),A.callback instanceof Function&&(A.callback=q,g.post({type:q,columnNames:A.columnNames,rowNumber:null,row:void 0}))}finally{delete D._blobXfer,A.callback&&(A.callback=q)}return A},"config-get":function(){const T=Object.create(null),A=s.config;return["bigIntEnabled"].forEach(function(D){Object.getOwnPropertyDescriptor(A,D)&&(T[D]=A[D])}),T.version=s.version,T.vfsList=s.capi.sqlite3_js_vfs_list(),T},export:function(T){const A=R(T),D={byteArray:s.capi.sqlite3_js_db_export(A.pointer),filename:A.filename,mimetype:"application/x-sqlite3"};return g.xfer.push(D.byteArray.buffer),D},toss:function(T){r("Testing worker exception")}};globalThis.onmessage=async function(T){T=T.data;let A,D=T.dbId,q=T.type;const w=performance.now();try{Q.hasOwnProperty(q)&&Q[q]instanceof Function?A=await Q[q](T):r("Unknown db worker message type:",T.type)}catch(x){q="error",A={operation:T.type,message:x.message,errorClass:x.name,input:T},x.stack&&(A.stack=typeof x.stack=="string"?x.stack.split(/\n\s*/):x.stack)}D||(D=A.dbId||z()),g.post({type:q,dbId:D,messageId:T.messageId,workerReceivedTime:w,workerRespondTime:performance.now(),departureTime:T.departureTime,result:A},g.xfer)},globalThis.postMessage({type:"sqlite3-api",result:"worker1-ready"})}).bind({sqlite3:t})}),globalThis.sqlite3ApiBootstrap.initializers.push(function(t){const n=t.wasm,r=t.capi,s=t.util.toss3,o=Object.create(null);t.vfs=o,r.sqlite3_vfs.prototype.registerVfs=function(p=!1){this instanceof t.capi.sqlite3_vfs||s("Expecting a sqlite3_vfs-type argument.");const g=r.sqlite3_vfs_register(this,p?1:0);return g&&s("sqlite3_vfs_register(",this,") failed with rc",g),this.pointer!==r.sqlite3_vfs_find(this.$zName)&&s("BUG: sqlite3_vfs_find(vfs.$zName) failed for just-installed VFS",this),this},o.installVfs=function(p){let g=0;const O=["io","vfs"];for(const R of O){const z=p[R];z&&(++g,z.struct.installMethods(z.methods,!!z.applyArgcCheck),R==="vfs"&&(!z.struct.$zName&&typeof z.name=="string"&&z.struct.addOnDispose(z.struct.$zName=n.allocCString(z.name)),z.struct.registerVfs(!!z.asDefault)))}return g||s("Misuse: installVfs() options object requires at least","one of:",O),this}}),globalThis.sqlite3ApiBootstrap.initializers.push(function(t){if(!t.wasm.exports.sqlite3_declare_vtab)return;const n=t.wasm,r=t.capi,s=t.util.toss3,o=Object.create(null);t.vtab=o;const p=r.sqlite3_index_info;p.prototype.nthConstraint=function(R,z=!1){if(R<0||R>=this.$nConstraint)return!1;const Q=this.$aConstraint+p.sqlite3_index_constraint.structInfo.sizeof*R;return z?Q:new p.sqlite3_index_constraint(Q)},p.prototype.nthConstraintUsage=function(R,z=!1){if(R<0||R>=this.$nConstraint)return!1;const Q=this.$aConstraintUsage+p.sqlite3_index_constraint_usage.structInfo.sizeof*R;return z?Q:new p.sqlite3_index_constraint_usage(Q)},p.prototype.nthOrderBy=function(R,z=!1){if(R<0||R>=this.$nOrderBy)return!1;const Q=this.$aOrderBy+p.sqlite3_index_orderby.structInfo.sizeof*R;return z?Q:new p.sqlite3_index_orderby(Q)};const g=function(R,z){return(function(Q,T=!1){if(arguments.length===0&&(Q=new z),Q instanceof z)return this.set(Q.pointer,Q),Q;n.isPtr(Q)||t.SQLite3Error.toss("Invalid argument to",R+"()");let A=this.get(Q);return T&&this.delete(Q),A}).bind(new Map)},O=function(R,z){const Q=g(R,z);return Object.assign(Object.create(null),{StructType:z,create:T=>{const A=Q();return n.pokePtr(T,A.pointer),A},get:T=>Q(T),unget:T=>Q(T,!0),dispose:T=>{const A=Q(T,!0);A&&A.dispose()}})};o.xVtab=O("xVtab",r.sqlite3_vtab),o.xCursor=O("xCursor",r.sqlite3_vtab_cursor),o.xIndexInfo=R=>new r.sqlite3_index_info(R),o.xError=function R(z,Q,T){if(R.errorReporter instanceof Function)try{R.errorReporter("sqlite3_module::"+z+"(): "+Q.message)}catch{}let A;return Q instanceof t.WasmAllocError?A=r.SQLITE_NOMEM:arguments.length>2?A=T:Q instanceof t.SQLite3Error&&(A=Q.resultCode),A||r.SQLITE_ERROR},o.xError.errorReporter=console.error.bind(console),o.xRowid=(R,z)=>n.poke(R,z,"i64"),o.setupModule=function(R){let z=!1;const Q=this instanceof r.sqlite3_module?this:R.struct||(z=new r.sqlite3_module);try{const T=R.methods||s("Missing 'methods' object.");for(const A of Object.entries({xConnect:"xCreate",xDisconnect:"xDestroy"})){const D=A[0],q=A[1];T[D]===!0?T[D]=T[q]:T[q]===!0&&(T[q]=T[D])}if(R.catchExceptions){const A=function(w,x){return["xConnect","xCreate"].indexOf(w)>=0?function(N,P,S,L,$,c){try{return x(...arguments)||0}catch(d){return d instanceof t.WasmAllocError||(n.dealloc(n.peekPtr(c)),n.pokePtr(c,n.allocCString(d.message))),o.xError(w,d)}}:function(...N){try{return x(...N)||0}catch(P){return o.xError(w,P)}}},D=["xCreate","xConnect","xBestIndex","xDisconnect","xDestroy","xOpen","xClose","xFilter","xNext","xEof","xColumn","xRowid","xUpdate","xBegin","xSync","xCommit","xRollback","xFindFunction","xRename","xSavepoint","xRelease","xRollbackTo","xShadowName"],q=Object.create(null);for(const w of D){const x=T[w];if(x instanceof Function)w==="xConnect"&&T.xCreate===x?q[w]=T.xCreate:w==="xCreate"&&T.xConnect===x?q[w]=T.xConnect:q[w]=A(w,x);else continue}Q.installMethods(q,!1)}else Q.installMethods(T,!!R.applyArgcCheck);if(Q.$iVersion===0){let A;typeof R.iVersion=="number"?A=R.iVersion:Q.$xShadowName?A=3:Q.$xSavePoint||Q.$xRelease||Q.$xRollbackTo?A=2:A=1,Q.$iVersion=A}}catch(T){throw z&&z.dispose(),T}return Q},r.sqlite3_module.prototype.setupModule=function(R){return o.setupModule.call(this,R)}}),globalThis.sqlite3ApiBootstrap.initializers.push(function(t){const n=function r(s){if(!globalThis.SharedArrayBuffer||!globalThis.Atomics)return Promise.reject(new Error("Cannot install OPFS: Missing SharedArrayBuffer and/or Atomics. The server must emit the COOP/COEP response headers to enable those. See https://sqlite.org/wasm/doc/trunk/persistence.md#coop-coep"));if(typeof WorkerGlobalScope>"u")return Promise.reject(new Error("The OPFS sqlite3_vfs cannot run in the main thread because it requires Atomics.wait()."));if(!globalThis.FileSystemHandle||!globalThis.FileSystemDirectoryHandle||!globalThis.FileSystemFileHandle||!globalThis.FileSystemFileHandle.prototype.createSyncAccessHandle||!navigator?.storage?.getDirectory)return Promise.reject(new Error("Missing required OPFS APIs."));(!s||typeof s!="object")&&(s=Object.create(null));const o=new URL(globalThis.location.href).searchParams;return o.has("opfs-disable")?Promise.resolve(t):(s.verbose===void 0&&(s.verbose=o.has("opfs-verbose")?+o.get("opfs-verbose")||2:1),s.sanityChecks===void 0&&(s.sanityChecks=o.has("opfs-sanity-check")),s.proxyUri===void 0&&(s.proxyUri=r.defaultProxyUri),typeof s.proxyUri=="function"&&(s.proxyUri=s.proxyUri()),new Promise(function(g,O){const R=[t.config.error,t.config.warn,t.config.log],z=(E,...C)=>{s.verbose>E&&R[E]("OPFS syncer:",...C)},Q=(...E)=>z(2,...E),T=(...E)=>z(1,...E),A=(...E)=>z(0,...E),D=t.util.toss,q=t.capi,w=t.util,x=t.wasm,N=q.sqlite3_vfs,P=q.sqlite3_file,S=q.sqlite3_io_methods,L=Object.create(null),$=()=>globalThis.FileSystemHandle&&globalThis.FileSystemDirectoryHandle&&globalThis.FileSystemFileHandle&&globalThis.FileSystemFileHandle.prototype.createSyncAccessHandle&&navigator?.storage?.getDirectory;L.metrics={dump:function(){let E,C=0,M=0,J=0;for(E in u.opIds){const G=I[E];C+=G.count,M+=G.time,J+=G.wait,G.avgTime=G.count&&G.time?G.time/G.count:0,G.avgWait=G.count&&G.wait?G.wait/G.count:0}t.config.log(globalThis.location.href,"metrics for",globalThis.location.href,":",I,` +Total of`,C,"op(s) for",M,"ms (incl. "+J+" ms of waiting on the async side)"),t.config.log("Serialization metrics:",I.s11n),m.postMessage({type:"opfs-async-metrics"})},reset:function(){let E;const C=J=>J.count=J.time=J.wait=0;for(E in u.opIds)C(I[E]=Object.create(null));let M=I.s11n=Object.create(null);M=M.serialize=Object.create(null),M.count=M.time=0,M=I.s11n.deserialize=Object.create(null),M.count=M.time=0}};const c=new S,d=new N().addOnDispose(()=>c.dispose());let y;const B=E=>(y=!0,d.dispose(),O(E)),f=()=>(y=!1,g(t)),m=new Worker(new URL("/assets/sqlite3-opfs-async-proxy-B_ImRJXp.js",import.meta.url));setTimeout(()=>{y===void 0&&B(new Error("Timeout while waiting for OPFS async proxy worker."))},4e3),m._originalOnError=m.onerror,m.onerror=function(E){A("Error initializing OPFS asyncer:",E),B(new Error("Loading OPFS async Worker failed for unknown reasons."))};const l=q.sqlite3_vfs_find(null),_=l?new N(l):null;c.$iVersion=1,d.$iVersion=2,d.$szOsFile=q.sqlite3_file.structInfo.sizeof,d.$mxPathname=1024,d.$zName=x.allocCString("opfs"),d.$xDlOpen=d.$xDlError=d.$xDlSym=d.$xDlClose=null,d.addOnDispose("$zName",d.$zName,"cleanup default VFS wrapper",()=>_?_.dispose():null);const u=Object.create(null);u.verbose=s.verbose,u.littleEndian=(()=>{const E=new ArrayBuffer(2);return new DataView(E).setInt16(0,256,!0),new Int16Array(E)[0]===256})(),u.asyncIdleWaitTime=150,u.asyncS11nExceptions=1,u.fileBufferSize=1024*64,u.sabS11nOffset=u.fileBufferSize,u.sabS11nSize=d.$mxPathname*2,u.sabIO=new SharedArrayBuffer(u.fileBufferSize+u.sabS11nSize),u.opIds=Object.create(null);const I=Object.create(null);{let E=0;u.opIds.whichOp=E++,u.opIds.rc=E++,u.opIds.xAccess=E++,u.opIds.xClose=E++,u.opIds.xDelete=E++,u.opIds.xDeleteNoWait=E++,u.opIds.xFileSize=E++,u.opIds.xLock=E++,u.opIds.xOpen=E++,u.opIds.xRead=E++,u.opIds.xSleep=E++,u.opIds.xSync=E++,u.opIds.xTruncate=E++,u.opIds.xUnlock=E++,u.opIds.xWrite=E++,u.opIds.mkdir=E++,u.opIds["opfs-async-metrics"]=E++,u.opIds["opfs-async-shutdown"]=E++,u.opIds.retry=E++,u.sabOP=new SharedArrayBuffer(E*4),L.metrics.reset()}u.sq3Codes=Object.create(null),["SQLITE_ACCESS_EXISTS","SQLITE_ACCESS_READWRITE","SQLITE_BUSY","SQLITE_CANTOPEN","SQLITE_ERROR","SQLITE_IOERR","SQLITE_IOERR_ACCESS","SQLITE_IOERR_CLOSE","SQLITE_IOERR_DELETE","SQLITE_IOERR_FSYNC","SQLITE_IOERR_LOCK","SQLITE_IOERR_READ","SQLITE_IOERR_SHORT_READ","SQLITE_IOERR_TRUNCATE","SQLITE_IOERR_UNLOCK","SQLITE_IOERR_WRITE","SQLITE_LOCK_EXCLUSIVE","SQLITE_LOCK_NONE","SQLITE_LOCK_PENDING","SQLITE_LOCK_RESERVED","SQLITE_LOCK_SHARED","SQLITE_LOCKED","SQLITE_MISUSE","SQLITE_NOTFOUND","SQLITE_OPEN_CREATE","SQLITE_OPEN_DELETEONCLOSE","SQLITE_OPEN_MAIN_DB","SQLITE_OPEN_READONLY"].forEach(E=>{(u.sq3Codes[E]=q[E])===void 0&&D("Maintenance required: not found:",E)}),u.opfsFlags=Object.assign(Object.create(null),{OPFS_UNLOCK_ASAP:1,OPFS_UNLINK_BEFORE_OPEN:2,defaultUnlockAsap:!1});const U=(E,...C)=>{const M=u.opIds[E]||D("Invalid op ID:",E);u.s11n.serialize(...C),Atomics.store(u.sabOPView,u.opIds.rc,-1),Atomics.store(u.sabOPView,u.opIds.whichOp,M),Atomics.notify(u.sabOPView,u.opIds.whichOp);const J=performance.now();for(;Atomics.wait(u.sabOPView,u.opIds.rc,-1)!=="not-equal";);const G=Atomics.load(u.sabOPView,u.opIds.rc);if(I[E].wait+=performance.now()-J,G&&u.asyncS11nExceptions){const te=u.s11n.deserialize();te&&A(E+"() async error:",...te)}return G};L.debug={asyncShutdown:()=>{T("Shutting down OPFS async listener. The OPFS VFS will no longer work."),U("opfs-async-shutdown")},asyncRestart:()=>{T("Attempting to restart OPFS VFS async listener. Might work, might not."),m.postMessage({type:"opfs-async-restart"})}};const ee=()=>{if(u.s11n)return u.s11n;const E=new TextDecoder,C=new TextEncoder("utf-8"),M=new Uint8Array(u.sabIO,u.sabS11nOffset,u.sabS11nSize),J=new DataView(u.sabIO,u.sabS11nOffset,u.sabS11nSize);u.s11n=Object.create(null);const G=Object.create(null);G.number={id:1,size:8,getter:"getFloat64",setter:"setFloat64"},G.bigint={id:2,size:8,getter:"getBigInt64",setter:"setBigInt64"},G.boolean={id:3,size:4,getter:"getInt32",setter:"setInt32"},G.string={id:4};const te=Y=>G[typeof Y]||D("Maintenance required: this value type cannot be serialized.",Y),ae=Y=>{switch(Y){case G.number.id:return G.number;case G.bigint.id:return G.bigint;case G.boolean.id:return G.boolean;case G.string.id:return G.string;default:D("Invalid type ID:",Y)}};return u.s11n.deserialize=function(Y=!1){++I.s11n.deserialize.count;const we=performance.now(),F=M[0],V=F?[]:null;if(F){const K=[];let X=1,_e,ge,pe;for(_e=0;_e{ie.start=performance.now(),ie.op=E,++I[E].count},b=()=>I[ie.op].time+=performance.now()-ie.start,k={xCheckReservedLock:function(E,C){return x.poke(C,0,"i32"),0},xClose:function(E){j("xClose");let C=0;const M=se[E];return M&&(delete se[E],C=U("xClose",E),M.sq3File&&M.sq3File.dispose()),b(),C},xDeviceCharacteristics:function(E){return q.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN},xFileControl:function(E,C,M){return q.SQLITE_NOTFOUND},xFileSize:function(E,C){j("xFileSize");let M=U("xFileSize",E);if(M==0)try{const J=u.s11n.deserialize()[0];x.poke(C,J,"i64")}catch(J){A("Unexpected error reading xFileSize() result:",J),M=u.sq3Codes.SQLITE_IOERR}return b(),M},xLock:function(E,C){j("xLock");const M=se[E];let J=0;return M.lockType?M.lockType=C:(J=U("xLock",E,C),J===0&&(M.lockType=C)),b(),J},xRead:function(E,C,M,J){j("xRead");const G=se[E];let te;try{te=U("xRead",E,M,Number(J)),(te===0||q.SQLITE_IOERR_SHORT_READ===te)&&x.heap8u().set(G.sabView.subarray(0,M),C)}catch(ae){A("xRead(",arguments,") failed:",ae,G),te=q.SQLITE_IOERR_READ}return b(),te},xSync:function(E,C){j("xSync"),++I.xSync.count;const M=U("xSync",E,C);return b(),M},xTruncate:function(E,C){j("xTruncate");const M=U("xTruncate",E,Number(C));return b(),M},xUnlock:function(E,C){j("xUnlock");const M=se[E];let J=0;return q.SQLITE_LOCK_NONE===C&&M.lockType&&(J=U("xUnlock",E,C)),J===0&&(M.lockType=C),b(),J},xWrite:function(E,C,M,J){j("xWrite");const G=se[E];let te;try{G.sabView.set(x.heap8u().subarray(C,C+M)),te=U("xWrite",E,M,Number(J))}catch(ae){A("xWrite(",arguments,") failed:",ae,G),te=q.SQLITE_IOERR_WRITE}return b(),te}},W={xAccess:function(E,C,M,J){j("xAccess");const G=U("xAccess",x.cstrToJs(C));return x.poke(J,G?0:1,"i32"),b(),0},xCurrentTime:function(E,C){return x.poke(C,24405875e-1+new Date().getTime()/864e5,"double"),0},xCurrentTimeInt64:function(E,C){return x.poke(C,24405875e-1*864e5+new Date().getTime(),"i64"),0},xDelete:function(E,C,M){j("xDelete");const J=U("xDelete",x.cstrToJs(C),M,!1);return b(),J},xFullPathname:function(E,C,M,J){return x.cstrncpy(J,C,M)!!J):M},L.getDirForFilename=async function(C,M=!1){const J=L.getResolvedPath(C,!0),G=J.pop();let te=L.rootDirectory;for(const ae of J)ae&&(te=await te.getDirectoryHandle(ae,{create:!!M}));return[te,G]},L.mkdir=async function(E){try{return await L.getDirForFilename(E+"/filepart",!0),!0}catch{return!1}},L.entryExists=async function(E){try{const[C,M]=await L.getDirForFilename(E);return await C.getFileHandle(M),!0}catch{return!1}},L.randomFilename=ne,L.treeList=async function(){const E=async function M(J,G){G.name=J.name,G.dirs=[],G.files=[];for await(const te of J.values())if(te.kind==="directory"){const ae=Object.create(null);G.dirs.push(ae),await M(te,ae)}else G.files.push(te.name)},C=Object.create(null);return await E(L.rootDirectory,C),C},L.rmfr=async function(){const E=L.rootDirectory,C={recurse:!0};for await(const M of E.values())E.removeEntry(M.name,C)},L.unlink=async function(E,C=!1,M=!1){try{const[J,G]=await L.getDirForFilename(E,!1);return await J.removeEntry(G,{recursive:C}),!0}catch(J){if(M)throw new Error("unlink(",arguments[0],") failed: "+J.message,{cause:J});return!1}},L.traverse=async function(E){const C={recursive:!0,directory:L.rootDirectory};typeof E=="function"&&(E={callback:E}),E=Object.assign(C,E||{}),async function J(G,te){for await(const ae of G.values()){if(E.callback(ae,G,te)===!1)return!1;if(E.recursive&&ae.kind==="directory"&&await J(ae,te+1)===!1)break}}(E.directory,0)};const H=async function(E,C){const[M,J]=await L.getDirForFilename(E,!0);let te=await(await M.getFileHandle(J,{create:!0})).createSyncAccessHandle(),ae=0,Y,we=!1;try{for(te.truncate(0);(Y=await C())!==void 0;)Y instanceof ArrayBuffer&&(Y=new Uint8Array(Y)),ae===0&&Y.byteLength>=15&&(w.affirmDbHeader(Y),we=!0),te.write(Y,{at:ae}),ae+=Y.byteLength;if((ae<512||ae%512!==0)&&D("Input size",ae,"is not correct for an SQLite database."),!we){const F=new Uint8Array(20);te.read(F,{at:0}),w.affirmDbHeader(F)}return te.write(new Uint8Array([1,1]),{at:18}),ae}catch(F){throw await te.close(),te=void 0,await M.removeEntry(J).catch(()=>{}),F}finally{te&&await te.close()}};if(L.importDb=async function(E,C){if(C instanceof Function)return H(E,C);C instanceof ArrayBuffer&&(C=new Uint8Array(C)),w.affirmIsDb(C);const M=C.byteLength,[J,G]=await L.getDirForFilename(E,!0);let te,ae=0;try{return te=await(await J.getFileHandle(G,{create:!0})).createSyncAccessHandle(),te.truncate(0),ae=te.write(C,{at:0}),ae!=M&&D("Expected to write "+M+" bytes but wrote "+ae+"."),te.write(new Uint8Array([1,1]),{at:18}),ae}catch(Y){throw te&&(await te.close(),te=void 0),await J.removeEntry(G).catch(()=>{}),Y}finally{te&&await te.close()}},t.oo1){const E=function(...C){const M=t.oo1.DB.dbCtorHelper.normalizeArgs(...C);M.vfs=d.$zName,t.oo1.DB.dbCtorHelper.call(this,M)};E.prototype=Object.create(t.oo1.DB.prototype),t.oo1.OpfsDb=E,E.importDb=L.importDb,t.oo1.DB.dbCtorHelper.setVfsPostOpenCallback(d.pointer,function(C,M){M.capi.sqlite3_busy_timeout(C,1e4)})}const Z=function(){const E=x.scopedAllocPush(),C=new P;try{const M=C.pointer,J=q.SQLITE_OPEN_CREATE|q.SQLITE_OPEN_READWRITE|q.SQLITE_OPEN_MAIN_DB,G=x.scopedAlloc(8),te="/sanity/check/file"+ne(8),ae=x.scopedAllocCString(te);let Y;if(u.s11n.serialize("This is ä string."),Y=u.s11n.deserialize(),Q("deserialize() says:",Y),Y[0]!=="This is ä string."&&D("String d13n error."),W.xAccess(d.pointer,ae,0,G),Y=x.peek(G,"i32"),Q("xAccess(",te,") exists ?=",Y),Y=W.xOpen(d.pointer,ae,M,J,G),Q("open rc =",Y,"state.sabOPView[xOpen] =",u.sabOPView[u.opIds.xOpen]),Y!==0){A("open failed with code",Y);return}W.xAccess(d.pointer,ae,0,G),Y=x.peek(G,"i32"),Y||D("xAccess() failed to detect file."),Y=k.xSync(C.pointer,0),Y&&D("sync failed w/ rc",Y),Y=k.xTruncate(C.pointer,1024),Y&&D("truncate failed w/ rc",Y),x.poke(G,0,"i64"),Y=k.xFileSize(C.pointer,G),Y&&D("xFileSize failed w/ rc",Y),Q("xFileSize says:",x.peek(G,"i64")),Y=k.xWrite(C.pointer,ae,10,1),Y&&D("xWrite() failed!");const we=x.scopedAlloc(16);Y=k.xRead(C.pointer,we,6,2),x.poke(we+6,0);let F=x.cstrToJs(we);Q("xRead() got:",F),F!=="sanity"&&D("Unexpected xRead() value."),W.xSleep&&(Q("xSleep()ing before close()ing..."),W.xSleep(d.pointer,2e3),Q("waking up from xSleep()")),Y=k.xClose(M),Q("xClose rc =",Y,"sabOPView =",u.sabOPView),Q("Deleting file:",te),W.xDelete(d.pointer,ae,4660),W.xAccess(d.pointer,ae,0,G),Y=x.peek(G,"i32"),Y&&D("Expecting 0 from xAccess(",te,") after xDelete()."),T("End of OPFS sanity checks.")}finally{C.dispose(),x.scopedAllocPop(E)}};m.onmessage=function({data:E}){switch(E.type){case"opfs-unavailable":B(new Error(E.payload.join(" ")));break;case"opfs-async-loaded":m.postMessage({type:"opfs-async-init",args:u});break;case"opfs-async-inited":{if(y===!0)break;try{t.vfs.installVfs({io:{struct:c,methods:k},vfs:{struct:d,methods:W}}),u.sabOPView=new Int32Array(u.sabOP),u.sabFileBufView=new Uint8Array(u.sabIO,0,u.fileBufferSize),u.sabS11nView=new Uint8Array(u.sabIO,u.sabS11nOffset,u.sabS11nSize),ee(),s.sanityChecks&&(T("Running sanity checks because of opfs-sanity-check URL arg..."),Z()),$()?navigator.storage.getDirectory().then(C=>{m.onerror=m._originalOnError,delete m._originalOnError,t.opfs=L,L.rootDirectory=C,Q("End of OPFS sqlite3_vfs setup.",d),f()}).catch(B):f()}catch(C){A(C),B(C)}break}default:{const C="Unexpected message from the OPFS async worker: "+JSON.stringify(E);A(C),B(new Error(C));break}}}}))};n.defaultProxyUri="sqlite3-opfs-async-proxy.js",globalThis.sqlite3ApiBootstrap.initializersAsync.push(async r=>{try{let s=n.defaultProxyUri;return r.scriptInfo.sqlite3Dir&&(n.defaultProxyUri=r.scriptInfo.sqlite3Dir+s),n().catch(o=>{r.config.warn("Ignoring inability to install OPFS sqlite3_vfs:",o.message)})}catch(s){return r.config.error("installOpfsVfs() exception:",s),Promise.reject(s)}})}),globalThis.sqlite3ApiBootstrap.initializers.push(function(t){const n=t.util.toss,r=t.util.toss3,s=Object.create(null),o=t.capi,p=t.util,g=t.wasm,O=4096,R=512,z=4,Q=8,T=R+z,A=R,D=T,q=O,w=o.SQLITE_OPEN_MAIN_DB|o.SQLITE_OPEN_MAIN_JOURNAL|o.SQLITE_OPEN_SUPER_JOURNAL|o.SQLITE_OPEN_WAL,x=o.SQLITE_OPEN_MEMORY,N=".opaque",P=()=>Math.random().toString(36).slice(2),S=new TextDecoder,L=new TextEncoder,$=Object.assign(Object.create(null),{name:"opfs-sahpool",directory:void 0,initialCapacity:6,clearOnInit:!1,verbosity:2,forceReinitIfPreviouslyFailed:!1}),c=[t.config.error,t.config.warn,t.config.log];t.config.log;const d=t.config.warn;t.config.error;const y=new Map,B=j=>y.get(j),f=(j,b)=>{b?y.set(j,b):y.delete(j)},m=new Map,l=j=>m.get(j),_=(j,b)=>{b?m.set(j,b):m.delete(j)},u={xCheckReservedLock:function(j,b){const k=l(j);return k.log("xCheckReservedLock"),k.storeErr(),g.poke32(b,1),0},xClose:function(j){const b=l(j);b.storeErr();const k=b.getOFileForS3File(j);if(k)try{b.log(`xClose ${k.path}`),b.mapS3FileToOFile(j,!1),k.sah.flush(),k.flags&o.SQLITE_OPEN_DELETEONCLOSE&&b.deletePath(k.path)}catch(W){return b.storeErr(W,o.SQLITE_IOERR)}return 0},xDeviceCharacteristics:function(j){return o.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN},xFileControl:function(j,b,k){return o.SQLITE_NOTFOUND},xFileSize:function(j,b){const k=l(j);k.log("xFileSize");const H=k.getOFileForS3File(j).sah.getSize()-q;return g.poke64(b,BigInt(H)),0},xLock:function(j,b){const k=l(j);k.log(`xLock ${b}`),k.storeErr();const W=k.getOFileForS3File(j);return W.lockType=b,0},xRead:function(j,b,k,W){const H=l(j);H.storeErr();const Z=H.getOFileForS3File(j);H.log(`xRead ${Z.path} ${k} @ ${W}`);try{const E=Z.sah.read(g.heap8u().subarray(b,b+k),{at:q+Number(W)});return Eb&&g.poke8(k+b-1,0)}catch{return o.SQLITE_NOMEM}finally{g.scopedAllocPop(Z)}}return H?H.sqlite3Rc||o.SQLITE_IOERR:0},xOpen:function(b,k,W,H,Z){const E=B(b);try{H&=~x,E.log(`xOpen ${g.cstrToJs(k)} ${H}`);const C=k&&g.peek8(k)?E.getPath(k):P();let M=E.getSAHForPath(C);!M&&H&o.SQLITE_OPEN_CREATE&&(E.getFileCount()f(b.pointer,0)),W&&(b.$xRandomness=W.$xRandomness,b.$xSleep=W.$xSleep,W.dispose()),!b.$xRandomness&&!U.xRandomness&&(U.xRandomness=function(H,Z,E){const C=g.heap8u();let M=0;for(;M0),t.vfs.installVfs({vfs:{struct:b,methods:U}}),b};class ne{vfsDir;#e;#o;#a;#r=new Map;#t=new Map;#s=new Set;#l=new Map;#n=new Uint8Array(T);#c;#i;#u;constructor(b=Object.create(null)){this.#u=b.verbosity??$.verbosity,this.vfsName=b.name||$.name,this.#i=ee(this.vfsName),f(this.#i.pointer,this),this.vfsDir=b.directory||"."+this.vfsName,this.#c=new DataView(this.#n.buffer,this.#n.byteOffset),this.isReady=this.reset(!!(b.clearOnInit??$.clearOnInit)).then(()=>{if(this.$error)throw this.$error;return this.getCapacity()?Promise.resolve(void 0):this.addCapacity(b.initialCapacity||$.initialCapacity)})}#_(b,...k){this.#u>b&&c[b](this.vfsName+":",...k)}log(...b){this.#_(2,...b)}warn(...b){this.#_(1,...b)}error(...b){this.#_(0,...b)}getVfs(){return this.#i}getCapacity(){return this.#r.size}getFileCount(){return this.#t.size}getFileNames(){const b=[];for(const k of this.#t.keys())b.push(k);return b}async addCapacity(b){for(let k=0;k{try{const Z=await H.createSyncAccessHandle();if(this.#r.set(Z,W),b)Z.truncate(q),this.setAssociatedPath(Z,"",0);else{const E=this.getAssociatedPath(Z);E?this.#t.set(E,Z):this.#s.add(Z)}}catch(Z){throw this.storeErr(Z),this.releaseAccessHandles(),Z}}))}getAssociatedPath(b){b.read(this.#n,{at:0});const k=this.#c.getUint32(A);if(this.#n[0]&&(k&o.SQLITE_OPEN_DELETEONCLOSE||(k&w)===0))return d(`Removing file with unexpected flags ${k.toString(16)}`,this.#n),this.setAssociatedPath(b,"",0),"";const W=new Uint32Array(Q/4);b.read(W,{at:D});const H=this.computeDigest(this.#n,k);if(W.every((Z,E)=>Z===H[E])){const Z=this.#n.findIndex(E=>E===0);return Z===0&&b.truncate(q),Z?S.decode(this.#n.subarray(0,Z)):""}else return d("Disassociating file with bad digest."),this.setAssociatedPath(b,"",0),""}setAssociatedPath(b,k,W){const H=L.encodeInto(k,this.#n);R<=H.written+1&&n("Path too long:",k),k&&W&&(W|=x),this.#n.fill(0,H.written,R),this.#c.setUint32(A,W);const Z=this.computeDigest(this.#n,W);b.write(this.#n,{at:0}),b.write(Z,{at:D}),b.flush(),k?(this.#t.set(k,b),this.#s.delete(b)):(b.truncate(q),this.#s.add(b))}computeDigest(b,k){if(k&x){let W=3735928559,H=1103547991;for(const Z of b)W=Math.imul(W^Z,2654435761),H=Math.imul(H^Z,104729);return new Uint32Array([W>>>0,H>>>0])}else return new Uint32Array([0,0])}async reset(b){await this.isReady;let k=await navigator.storage.getDirectory(),W;for(const H of this.vfsDir.split("/"))H&&(W=k,k=await k.getDirectoryHandle(H,{create:!0}));return this.#e=k,this.#a=W,this.#o=await this.#e.getDirectoryHandle(N,{create:!0}),this.releaseAccessHandles(),this.acquireAccessHandles(b)}getPath(b){return g.isPtr(b)&&(b=g.cstrToJs(b)),(b instanceof URL?b:new URL(b,"file://localhost/")).pathname}deletePath(b){const k=this.#t.get(b);return k&&(this.#t.delete(b),this.setAssociatedPath(k,"",0)),!!k}storeErr(b,k){return b&&(b.sqlite3Rc=k||o.SQLITE_IOERR,this.error(b)),this.$error=b,k}popErr(){const b=this.$error;return this.$error=void 0,b}nextAvailableSAH(){const[b]=this.#s.keys();return b}getOFileForS3File(b){return this.#l.get(b)}mapS3FileToOFile(b,k){k?(this.#l.set(b,k),_(b,this)):(this.#l.delete(b),_(b,!1))}hasFilename(b){return this.#t.has(b)}getSAHForPath(b){return this.#t.get(b)}async removeVfs(){if(!this.#i.pointer||!this.#o)return!1;o.sqlite3_vfs_unregister(this.#i.pointer),this.#i.dispose(),delete s[this.vfsName];try{this.releaseAccessHandles(),await this.#e.removeEntry(N,{recursive:!0}),this.#o=void 0,await this.#a.removeEntry(this.#e.name,{recursive:!0}),this.#e=this.#a=void 0}catch(b){t.config.error(this.vfsName,"removeVfs() failed with no recovery strategy:",b)}return!0}pauseVfs(){return this.#l.size>0&&t.SQLite3Error.toss(o.SQLITE_MISUSE,"Cannot pause VFS",this.vfsName,"because it has opened files."),this.#r.size>0&&(o.sqlite3_vfs_unregister(this.vfsName),this.releaseAccessHandles()),this}isPaused(){return this.#r.size===0}async unpauseVfs(){return this.#r.size===0?this.acquireAccessHandles(!1).then(()=>o.sqlite3_vfs_register(this.#i,0),this):this}exportFile(b){const k=this.#t.get(b)||n("File not found:",b),W=k.getSize()-q,H=new Uint8Array(W>0?W:0);if(W>0){const Z=k.read(H,{at:q});Z!=W&&n("Expected to read "+W+" bytes but read "+Z+".")}return H}async importDbChunked(b,k){const W=this.#t.get(b)||this.nextAvailableSAH()||n("No available handles to import to.");W.truncate(0);let H=0,Z,E=!1;try{for(;(Z=await k())!==void 0;)Z instanceof ArrayBuffer&&(Z=new Uint8Array(Z)),H===0&&Z.byteLength>=15&&(p.affirmDbHeader(Z),E=!0),W.write(Z,{at:q+H}),H+=Z.byteLength;if((H<512||H%512!==0)&&n("Input size",H,"is not correct for an SQLite database."),!E){const C=new Uint8Array(20);W.read(C,{at:0}),p.affirmDbHeader(C)}W.write(new Uint8Array([1,1]),{at:q+18})}catch(C){throw this.setAssociatedPath(W,"",0),C}return this.setAssociatedPath(W,b,o.SQLITE_OPEN_MAIN_DB),H}importDb(b,k){if(k instanceof ArrayBuffer)k=new Uint8Array(k);else if(k instanceof Function)return this.importDbChunked(b,k);const W=this.#t.get(b)||this.nextAvailableSAH()||n("No available handles to import to."),H=k.byteLength;(H<512||H%512!=0)&&n("Byte array size is invalid for an SQLite db.");const Z="SQLite format 3";for(let C=0;Cthis)}isPaused(){return this.#e.isPaused()}}const ie=async()=>{const j=await navigator.storage.getDirectory(),b=".opfs-sahpool-sync-check-"+P(),H=(await(await j.getFileHandle(b,{create:!0})).createSyncAccessHandle()).close();return await H,await j.removeEntry(b),H?.then&&n("The local OPFS API is too old for opfs-sahpool:","it has an async FileSystemSyncAccessHandle.close() method."),!0};t.installOpfsSAHPoolVfs=async function(j=Object.create(null)){j=Object.assign(Object.create(null),$,j||{});const b=j.name;if(j.$testThrowPhase1)throw j.$testThrowPhase1;if(s[b])try{return await s[b]}catch(k){if(j.forceReinitIfPreviouslyFailed)delete s[b];else throw k}return!globalThis.FileSystemHandle||!globalThis.FileSystemDirectoryHandle||!globalThis.FileSystemFileHandle||!globalThis.FileSystemFileHandle.prototype.createSyncAccessHandle||!navigator?.storage?.getDirectory?s[b]=Promise.reject(new Error("Missing required OPFS APIs.")):s[b]=ie().then(async function(){if(j.$testThrowPhase2)throw j.$testThrowPhase2;const k=new ne(j);return k.isReady.then(async()=>{const W=new se(k);if(t.oo1){const H=t.oo1,Z=k.getVfs(),E=function(...C){const M=H.DB.dbCtorHelper.normalizeArgs(...C);M.vfs=Z.$zName,H.DB.dbCtorHelper.call(this,M)};E.prototype=Object.create(H.DB.prototype),W.OpfsSAHPoolDb=E}return k.log("VFS initialized."),W}).catch(async W=>{throw await k.removeVfs().catch(()=>{}),W})}).catch(k=>s[b]=Promise.reject(k))}}),typeof i<"u"){const t=Object.assign(Object.create(null),{exports:typeof h>"u"?i.asm:h,memory:i.wasmMemory},globalThis.sqlite3ApiConfig||{});globalThis.sqlite3ApiConfig=t;let n;try{n=globalThis.sqlite3ApiBootstrap()}catch(r){throw console.error("sqlite3ApiBootstrap() error:",r),r}finally{delete globalThis.sqlite3ApiBootstrap,delete globalThis.sqlite3ApiConfig}i.sqlite3=n}else console.warn("This is not running in an Emscripten module context, so","globalThis.sqlite3ApiBootstrap() is _not_ being called due to lack","of config info for the WASM environment.","It must be called manually.")},fe=Oe,fe}})();const Yn=(function(){const qe=ft;if(!qe)throw new Error("Expecting globalThis.sqlite3InitModule to be defined by the Emscripten build.");const oe=globalThis.sqlite3InitModuleState=Object.assign(Object.create(null),{moduleScript:globalThis?.document?.currentScript,isWorker:typeof WorkerGlobalScope<"u",location:globalThis.location,urlParams:globalThis?.location?.href?new URL(globalThis.location.href).searchParams:new URLSearchParams});if(oe.debugModule=oe.urlParams.has("sqlite3.debugModule")?(...fe)=>console.warn("sqlite3.debugModule:",...fe):()=>{},oe.urlParams.has("sqlite3.dir"))oe.sqlite3Dir=oe.urlParams.get("sqlite3.dir")+"/";else if(oe.moduleScript){const fe=oe.moduleScript.src.split("/");fe.pop(),oe.sqlite3Dir=fe.join("/")+"/"}if(globalThis.sqlite3InitModule=function fe(...i){return qe(...i).then(ye=>{ye.runSQLite3PostLoadInit(ye);const be=ye.sqlite3;be.scriptInfo=oe,fe.__isUnderTest&&(be.__isUnderTest=!0);const Oe=be.asyncPostInit;return delete be.asyncPostInit,Oe()}).catch(ye=>{throw console.error("Exception loading sqlite3 module:",ye),ye})},globalThis.sqlite3InitModule.ready=qe.ready,globalThis.sqlite3InitModuleState.moduleScript){const fe=globalThis.sqlite3InitModuleState;let i=fe.moduleScript.src.split("/");i.pop(),fe.scriptDir=i.join("/")+"/"}return oe.debugModule("sqlite3InitModuleState =",oe),globalThis.sqlite3InitModule})();ft=Yn;var Zn=ft;globalThis.sqlite3Worker1Promiser=function qe(oe=qe.defaultConfig){if(arguments.length===1&&typeof arguments[0]=="function"){const re=oe;oe=Object.assign(Object.create(null),qe.defaultConfig),oe.onready=re}else oe=Object.assign(Object.create(null),qe.defaultConfig,oe);const fe=Object.create(null),i=function(){},ye=oe.onerror||i,be=oe.debug||i,Oe=oe.generateMessageId?void 0:Object.create(null),Xe=oe.generateMessageId||function(re){return re.type+"#"+(Oe[re.type]=(Oe[re.type]||0)+1)},Ce=(...re)=>{throw new Error(re.join(" "))};oe.worker||(oe.worker=qe.defaultConfig.worker),typeof oe.worker=="function"&&(oe.worker=oe.worker());let Pe,He;return oe.worker.onmessage=function(re){re=re.data,be("worker1.onmessage",re);let me=fe[re.messageId];if(!me){if(re&&re.type==="sqlite3-api"&&re.result==="worker1-ready"){oe.onready&&oe.onready(He);return}if(me=fe[re.type],me&&me.onrow){me.onrow(re);return}oe.onunhandled?oe.onunhandled(arguments[0]):ye("sqlite3Worker1Promiser() unhandled worker message:",re);return}switch(delete fe[re.messageId],re.type){case"error":me.reject(re);return;case"open":Pe||(Pe=re.dbId);break;case"close":re.dbId===Pe&&(Pe=void 0);break}try{me.resolve(re)}catch(Ie){me.reject(Ie)}},He=function(){let re;arguments.length===1?re=arguments[0]:arguments.length===2?(re=Object.create(null),re.type=arguments[0],re.args=arguments[1],re.dbId=re.args.dbId):Ce("Invalid arguments for sqlite3Worker1Promiser()-created factory."),!re.dbId&&re.type!=="open"&&(re.dbId=Pe),re.messageId=Xe(re),re.departureTime=performance.now();const me=Object.create(null);me.message=re;let Ie;re.type==="exec"&&re.args&&(typeof re.args.callback=="function"?(Ie=re.messageId+":row",me.onrow=re.args.callback,re.args.callback=Ie,fe[Ie]=me):typeof re.args.callback=="string"&&Ce("exec callback may not be a string when using the Promise interface."));let De=new Promise(function(je,Ve){me.resolve=je,me.reject=Ve,fe[re.messageId]=me,be("Posting",re.type,"message to Worker dbId="+(Pe||"default")+":",re),oe.worker.postMessage(re)});return Ie&&(De=De.finally(()=>delete fe[Ie])),De}};globalThis.sqlite3Worker1Promiser.defaultConfig={worker:function(){return new Worker(new URL("/assets/sqlite3-worker1-bundler-friendly-CqPDHTTx.js",import.meta.url),{type:"module"})},onerror:(...qe)=>console.error("worker1 promiser error",...qe)};sqlite3Worker1Promiser.v2=(function(qe){let oe;typeof qe=="function"?(oe=qe,qe={}):typeof qe?.onready=="function"&&(oe=qe.onready,delete qe.onready);const fe=Object.create(null);qe=Object.assign(qe||Object.create(null),{onready:async function(ye){try{oe&&await oe(ye),fe.resolve(ye)}catch(be){fe.reject(be)}}});const i=new Promise(function(ye,be){fe.resolve=ye,fe.reject=be});try{this.original(qe)}catch(ye){fe.reject(ye)}return i}).bind({original:sqlite3Worker1Promiser});sqlite3Worker1Promiser.v2;const er="japanese_app.db";let Ae=null;self.onmessage=async qe=>{const{type:oe,id:fe,sql:i,params:ye}=qe.data;try{switch(oe){case"start":{if(Ae!=null){self.postMessage({type:"success",id:fe,data:null});return}const be=await Zn({print:console.log,printErr:console.error}),Oe="/"+er;Ae=new be.oo1.OpfsDb(Oe,"rwt"),Ae.exec("PRAGMA foreign_keys = ON;"),self.postMessage({type:"success",id:fe,data:null});break}case"query":{if(Ae===null)throw new Error("БД не инициализирована");const be=Ae.selectObjects(i,ye??[]);self.postMessage({type:"success",id:fe,data:be});break}case"command":{if(Ae===null)throw new Error("БД не инициализирована");Ae.exec(i,ye??[]),self.postMessage({type:"success",id:fe,data:null});break}case"close":{if(Ae===null)throw new Error("БД не инициализирована");Ae.close(),Ae=null,self.postMessage({type:"success",id:fe,data:null});break}}}catch(be){console.error(be),self.postMessage({type:"error",error:be?.message??String(be),id:fe})}}; diff --git a/dist/assets/index-17GvxYKC.js b/dist/assets/index-17GvxYKC.js deleted file mode 100644 index 86ac3e2..0000000 --- a/dist/assets/index-17GvxYKC.js +++ /dev/null @@ -1,45 +0,0 @@ -(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))u(s);new MutationObserver(s=>{for(const l of s)if(l.type==="childList")for(const h of l.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&u(h)}).observe(document,{childList:!0,subtree:!0});function i(s){const l={};return s.integrity&&(l.integrity=s.integrity),s.referrerPolicy&&(l.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?l.credentials="include":s.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function u(s){if(s.ep)return;s.ep=!0;const l=i(s);fetch(s.href,l)}})();const vt="japanese_app.db";async function wt(){return navigator.storage.getDirectory()}async function gn(r){const i=await(await wt()).getFileHandle(vt,{create:!0}),u=i.createSyncAccessHandle;if(typeof u=="function")try{const l=await u.call(i);try{l.truncate(0),l.write(r,{at:0}),l.flush()}finally{l.close()}return}catch{}const s=await i.createWritable();try{await s.truncate(0);const l=new Uint8Array(r.length);l.set(r),await s.write(l)}finally{await s.close()}}async function vn(){const r=await wt();let n;try{n=await r.getFileHandle(vt)}catch{throw new Error("Локальная база не найдена — сначала скачай сохранение")}const i=await n.getFile();if(i.size===0)throw new Error("Локальная база пуста");return new Uint8Array(await i.arrayBuffer())}async function Se(){try{return(await(await(await wt()).getFileHandle(vt)).getFile()).size>0}catch{return!1}}var wn=ArrayBuffer,L=Uint8Array,Ye=Uint16Array,yn=Int16Array,De=Int32Array,ut=function(r,n,i){if(L.prototype.slice)return L.prototype.slice.call(r,n,i);(n==null||n<0)&&(n=0),(i==null||i>r.length)&&(i=r.length);var u=new L(i-n);return u.set(r.subarray(n,i)),u},$e=function(r,n,i,u){if(L.prototype.fill)return L.prototype.fill.call(r,n,i,u);for((i==null||i<0)&&(i=0),(u==null||u>r.length)&&(u=r.length);ir.length)&&(u=r.length);i2046MB)","invalid block type","FSE accuracy too high","match distance too far back","unexpected EOF"],I=function(r,n,i){var u=new Error(n||bn[r]);if(u.code=r,Error.captureStackTrace&&Error.captureStackTrace(u,I),!i)throw u;return u},Yt=function(r,n,i){for(var u=0,s=0;u>>0},Cn=function(r,n){var i=r[0]|r[1]<<8|r[2]<<16;if(i==3126568&&r[3]==253){var u=r[4],s=u>>5&1,l=u>>2&1,h=u&3,g=u>>6;u&8&&I(0);var y=6-s,E=h==3?4:h,U=Yt(r,y,E);y+=E;var k=g?1<>3);m=x+(x>>3)*(r[5]&7)}m>2145386496&&I(1);var w=new L((n==1?F||m:n?0:m)+12);return w[0]=1,w[4]=4,w[8]=8,{b:y+k,y:0,l:0,d:U,w:n&&n!=1?n:w.subarray(12),e:m,o:new De(w.buffer,0,3),u:F,c:l,m:Math.min(131072,m)}}else if((i>>4|r[3]<<20)==25481893)return Un(r,4)+8;I(0)},me=function(r){for(var n=0;1<i&&I(3);for(var l=1<0;){var X=me(h+1),J=u>>3,se=(1<>(u&7)&se,b=(1<b&&(R-=V)),F[++g]=--R,R==-1?(h+=R,$[--U]=g):h-=R,!R)do{var te=u>>3;y=(r[te]|r[te+1]<<8)>>(u&7)&3,u+=2,g+=y}while(y==3)}(g>255||h)&&I(0);for(var Y=0,re=(l>>1)+(l>>3)+3,ne=l-1,G=0;G<=g;++G){var N=F[G];if(N<1){m[G]=-N;continue}for(E=0;E=U)}}for(Y&&I(0),E=0;E>3,{b:s,s:$,n:D,t:x}]},Mn=function(r,n){var i=0,u=-1,s=new L(292),l=r[n],h=s.subarray(0,256),g=s.subarray(256,268),y=new Ye(s.buffer,268);if(l<128){var E=Te(r,n+1,6),U=E[0],k=E[1];n+=l;var F=U<<3,m=r[n];m||I(0);for(var x=0,w=0,$=k.b,D=$,X=(++n<<3)-8+me(m);X-=$,!(X>3;if(x+=(r[J]|r[J+1]<<8)>>(X&7)&(1<<$)-1,h[++u]=k.s[x],X-=D,X>3,w+=(r[J]|r[J+1]<<8)>>(X&7)&(1<255&&I(0)}else{for(u=l-127;i>4,h[i+1]=se&15}++n}var R=0;for(i=0;i11&&I(0),R+=b&&1<0;--i){var G=y[i];$e(ne,i,G,y[i-1]=G+g[i]*(1<g&&k>3,m=(r[F]|r[F+1]<<8|r[F+2]<<16)>>(U&7);y=(y<>2,h=l<<1,g=l+h;Pe(r.subarray(u,u+=r[0]|r[1]<<8),n.subarray(0,l),i),Pe(r.subarray(u,u+=r[2]|r[3]<<8),n.subarray(l,h),i),Pe(r.subarray(u,u+=r[4]|r[5]<<8),n.subarray(h,g),i),Pe(r.subarray(u),n.subarray(g),i)},Hn=function(r,n,i){var u,s=n.b,l=r[s],h=l>>1&3;n.l=l&1;var g=l>>3|r[s+1]<<5|r[s+2]<<13,y=(s+=3)+g;if(h==1)return s>=r.length?void 0:(n.b=s+1,i?($e(i,r[s],n.y,n.y+=g),i):$e(new L(g),r[s]));if(!(y>r.length)){if(h==0)return n.b=y,i?(i.set(r.subarray(s,y),n.y),n.y+=g,i):ut(r,s,y);if(h==2){var E=r[s],U=E&3,k=E>>2&3,F=E>>4,m=0,x=0;U<2?k&1?F|=r[++s]<<4|(k&2&&r[++s]<<12):F=E>>3:(x=k,k<2?(F|=(r[++s]&63)<<4,m=r[s]>>6|r[++s]<<2):k==2?(F|=r[++s]<<4|(r[++s]&3)<<12,m=r[s]>>2|r[++s]<<6):(F|=r[++s]<<4|(r[++s]&63)<<12,m=r[s]>>6|r[++s]<<2|r[++s]<<10)),++s;var w=i?i.subarray(n.y,n.y+n.m):new L(n.m),$=w.length-F;if(U==0)w.set(r.subarray(s,s+=F),$);else if(U==1)$e(w,r[s++],$);else{var D=n.h;if(U==2){var X=Mn(r,s);m+=s-(s=X[0]),n.h=D=X[1]}else D||I(0);(x?Nn:Pe)(r.subarray(s,s+=m),w.subarray($),D)}var J=r[s++];if(J){J==255?J=(r[s++]|r[s++]<<8)+32512:J>127&&(J=J-128<<8|r[s++]);var se=r[s++];se&3&&I(0);for(var R=[En,xn,Qn],b=2;b>-1;--b){var V=se>>(b<<1)+2&3;if(V==1){var Z=new L([0,0,r[s++]]);R[b]={s:Z.subarray(2,3),n:Z.subarray(0,1),t:new Ye(Z.buffer,0,1),b:0}}else V==2?(u=Te(r,s,9-(b&1)),s=u[0],R[b]=u[1]):V==3&&(n.t||I(0),R[b]=n.t[b])}var te=n.t=R,Y=te[0],re=te[1],ne=te[2],G=r[y-1];G||I(0);var N=(y<<3)-8+me(G)-ne.b,C=N>>3,S=0,j=(r[C]|r[C+1]<<8)>>(N&7)&(1<>3;var de=(r[C]|r[C+1]<<8)>>(N&7)&(1<>3;var q=(r[C]|r[C+1]<<8)>>(N&7)&(1<>3;var he=1<>>(N&7)&he-1);C=(N-=ft[Ce])>>3;var ae=Fn[Ce]+((r[C]|r[C+1]<<8|r[C+2]<<16)>>(N&7)&(1<>3;var pe=kn[Ue]+((r[C]|r[C+1]<<8|r[C+2]<<16)>>(N&7)&(1<>3,j=ne.t[j]+((r[C]|r[C+1]<<8)>>(N&7)&(1<>3,q=Y.t[q]+((r[C]|r[C+1]<<8)>>(N&7)&(1<>3,de=re.t[de]+((r[C]|r[C+1]<<8)>>(N&7)&(1<3)n.o[2]=n.o[1],n.o[1]=n.o[0],n.o[0]=W-=3;else{var be=W-(pe!=0);be?(W=be==3?n.o[0]-1:n.o[be],be>1&&(n.o[2]=n.o[1]),n.o[1]=n.o[0],n.o[0]=W):W=n.o[0]}for(var b=0;bae&&(A=ae);for(var b=0;b{throw e},u,s=console.log.bind(console),l=console.error.bind(console),h,g=!1,y,E=t=>t.startsWith("file://"),U=!1;function k(){return Ve.buffer}function F(){if(!Z?.buffer?.resizable){var t=k();Z=new Int8Array(t),Re=new Int16Array(t),n.HEAPU8=j=new Uint8Array(t),Ee=new Uint16Array(t),Ke=new Int32Array(t),q=new Uint32Array(t),Pt=new Float32Array(t),$t=new Float64Array(t),bt=new BigInt64Array(t),Ut=new BigUint64Array(t)}}function m(){U=!0,Fe.A()}function x(t){t=`Aborted(${t})`,l(t),g=!0,t+=". Build with -sASSERTIONS for more info.",U&&Rt();var e=new WebAssembly.RuntimeError(t);throw e}var w;let $=()=>"";function D(t){if(t==w&&h)return new Uint8Array(h);throw"both async and sync fetching of the wasm failed"}async function X(t){if(!h)try{var e=await u(t);return new Uint8Array(e)}catch{}return D(t)}async function J(t,e){try{var a=await X(t),o=await WebAssembly.instantiate(a,e);return o}catch(c){l(`failed to asynchronously prepare wasm: ${c}`),x(c)}}async function se(t,e,a){if(!t&&!E(e))try{var o=fetch(e,{credentials:"same-origin"}),c=await WebAssembly.instantiateStreaming(o,a);return c}catch(d){l(`wasm streaming compile failed: ${d}`),l("falling back to ArrayBuffer instantiation")}return J(e,a)}function R(){var t={a:fn};return t}async function b(){function t(d){return Fe=d.exports,pn(Fe),F(),Fe}function e(d){return t(d.instance)}var a=R();w??=$();var o=await se(h,w,a),c=e(o);return c}class V{name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var Z,te=()=>Vt,Y=t=>{var e=t.getArg(te(),0);return zt(e)},re=()=>Xt(),ne=t=>Kt(t),G=t=>It(t),N=globalThis.TextDecoder&&new TextDecoder,C=(t,e,a,o)=>{var c=e+a;if(o)return c;for(;t[e]&&!(e>=c);)++e;return e},S=(t,e=0,a,o)=>{var c=C(t,e,a,o);if(c-e>16&&t.buffer&&N)return N.decode(t.subarray(e,c));for(var d="";e>10,56320|M&1023)}}return d},j,de=(t,e,a)=>t?S(j,t,e,a):"",q,Ue=t=>{var e=re(),a=G(4),o=G(4);Ot(t,a,o);var c=q[a>>2],d=q[o>>2],p=de(c);ce(c);var f;return d&&(f=de(d),ce(d)),ne(e),[p,f]},Le=t=>{var e=Y(t);return Ue(e)},Ce=t=>{var e=new WebAssembly.Exception(te(),[t],{traceStack:!0});throw e.message=Le(e),e},Je=()=>x(""),ve={},Me=t=>{for(;t.length;){var e=t.pop(),a=t.pop();a(e)}};function he(t){return this.fromWireType(q[t>>2])}var W={},ae={},pe={};class be extends Error{constructor(e){super(e),this.name="InternalError"}}var ue=t=>{throw new be(t)},A=(t,e,a)=>{t.forEach(f=>pe[f]=e);function o(f){var v=a(f);v.length!==t.length&&ue("Mismatched type converter count");for(var M=0;M{c[f]=ae[v],++p,p===d.length&&o(c)}));d.length===0&&o(c)},Ge=t=>{var e=ve[t];delete ve[t];var a=e.rawConstructor,o=e.rawDestructor,c=e.fields,d=c.map(p=>p.getterReturnType).concat(c.map(p=>p.setterArgumentType));A([t],d,p=>{var f={};for(var[v,M]of c.entries()){let Q=p[v],T=M.getter,P=M.getterContext,_=p[v+c.length],z=M.setter,ee=M.setterContext;f[M.fieldName]={read:O=>Q.fromWireType(T(P,O)),write:(O,K)=>{var ge=[];z(ee,O,_.toWireType(ge,K)),Me(ge)},optional:Q.optional}}return[{name:e.name,fromWireType:Q=>{var T={};for(var P in f)T[P]=f[P].read(Q);return o(Q),T},toWireType:(Q,T)=>{for(var P in f)if(!(P in T)&&!f[P].optional)throw new TypeError(`Missing field: "${P}"`);var _=a();for(P in f)f[P].write(_,T[P]);return Q!==null&&Q.push(o,_),_},readValueFromPointer:he,destructorFunction:o}]})},B=t=>{for(var e="";;){var a=j[t++];if(!a)return e;e+=String.fromCharCode(a)}};class Qe extends Error{constructor(e){super(e),this.name="BindingError"}}var H=t=>{throw new Qe(t)};function nr(t,e,a={}){var o=e.name;if(t||H(`type "${o}" must have a positive integer typeid pointer`),ae.hasOwnProperty(t)){if(a.ignoreDuplicateRegistrations)return;H(`Cannot register type '${o}' twice`)}if(ae[t]=e,delete pe[t],W.hasOwnProperty(t)){var c=W[t];delete W[t],c.forEach(d=>d())}}function le(t,e,a={}){return nr(t,e,a)}var Re,Ee,Ke,bt,Ut,Ct=(t,e,a)=>{switch(e){case 1:return a?o=>Z[o]:o=>j[o];case 2:return a?o=>Re[o>>1]:o=>Ee[o>>1];case 4:return a?o=>Ke[o>>2]:o=>q[o>>2];case 8:return a?o=>bt[o>>3]:o=>Ut[o>>3];default:throw new TypeError(`invalid integer width (${e}): ${t}`)}},ar=(t,e,a,o,c)=>{e=B(e);let d=o===0n,p=f=>f;if(d){let f=a*8;p=v=>BigInt.asUintN(f,v),c=p(c)}le(t,{name:e,fromWireType:p,toWireType:(f,v)=>(typeof v=="number"&&(v=BigInt(v)),v),readValueFromPointer:Ct(e,a,!d),destructorFunction:null})},ir=(t,e,a,o)=>{e=B(e),le(t,{name:e,fromWireType:function(c){return!!c},toWireType:function(c,d){return d?a:o},readValueFromPointer:function(c){return this.fromWireType(j[c])},destructorFunction:null})},or=t=>({count:t.count,deleteScheduled:t.deleteScheduled,preservePointerOnDelete:t.preservePointerOnDelete,ptr:t.ptr,ptrType:t.ptrType,smartPtr:t.smartPtr,smartPtrType:t.smartPtrType}),je=t=>{function e(a){return a.$$.ptrType.registeredClass.name}H(e(t)+" instance already deleted")},We=!1,Mt=t=>{},sr=t=>{t.smartPtr?t.smartPtrType.rawDestructor(t.smartPtr):t.ptrType.registeredClass.rawDestructor(t.ptr)},Qt=t=>{t.count.value-=1;var e=t.count.value===0;e&&sr(t)},xe=t=>globalThis.FinalizationRegistry?(We=new FinalizationRegistry(e=>{Qt(e.$$)}),xe=e=>{var a=e.$$,o=!!a.smartPtr;if(o){var c={$$:a};We.register(e,c,e)}return e},Mt=e=>We.unregister(e),xe(t)):(xe=e=>e,t),ur=()=>{let t=Ie.prototype;Object.assign(t,{isAliasOf(a){if(!(this instanceof Ie)||!(a instanceof Ie))return!1;var o=this.$$.ptrType.registeredClass,c=this.$$.ptr;a.$$=a.$$;for(var d=a.$$.ptrType.registeredClass,p=a.$$.ptr;o.baseClass;)c=o.upcast(c),o=o.baseClass;for(;d.baseClass;)p=d.upcast(p),d=d.baseClass;return o===d&&c===p},clone(){if(this.$$.ptr||je(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var a=xe(Object.create(Object.getPrototypeOf(this),{$$:{value:or(this.$$)}}));return a.$$.count.value+=1,a.$$.deleteScheduled=!1,a},delete(){this.$$.ptr||je(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&H("Object already scheduled for deletion"),Mt(this),Qt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||je(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&H("Object already scheduled for deletion"),this.$$.deleteScheduled=!0,this}});let e=Symbol.dispose;e&&(t[e]=t.delete)};function Ie(){}var Et=(t,e)=>Object.defineProperty(e,"name",{value:t}),xt={},Ae=(t,e,a)=>{if(t[e].overloadTable===void 0){var o=t[e];t[e]=function(...c){return t[e].overloadTable.hasOwnProperty(c.length)||H(`Function '${a}' called with an invalid number of arguments (${c.length}) - expects one of (${t[e].overloadTable})!`),t[e].overloadTable[c.length].apply(this,c)},t[e].overloadTable=[],t[e].overloadTable[o.argCount]=o}},lr=(t,e,a)=>{n.hasOwnProperty(t)?(H(`Cannot register public name '${t}' twice`),Ae(n,t,t),n[t].overloadTable.hasOwnProperty(a)&&H(`Cannot register multiple overloads of a function with the same number of arguments (${a})!`),n[t].overloadTable[a]=e):(n[t]=e,n[t].argCount=a)},cr=48,dr=57,pr=t=>{t=t.replace(/[^a-zA-Z0-9_]/g,"$");var e=t.charCodeAt(0);return e>=cr&&e<=dr?`_${t}`:t};function fr(t,e,a,o,c,d,p,f){this.name=t,this.constructor=e,this.instancePrototype=a,this.rawDestructor=o,this.baseClass=c,this.getActualType=d,this.upcast=p,this.downcast=f,this.pureVirtualFunctions=[]}var et=(t,e,a)=>{for(;e!==a;)e.upcast||H(`Expected null or instance of ${a.name}, got an instance of ${e.name}`),t=e.upcast(t),e=e.baseClass;return t},tt=t=>{if(t===null)return"null";var e=typeof t;return e==="object"||e==="array"||e==="function"?t.toString():""+t};function hr(t,e){if(e===null)return this.isReference&&H(`null is not a valid ${this.name}`),0;e.$$||H(`Cannot pass "${tt(e)}" as a ${this.name}`),e.$$.ptr||H(`Cannot pass deleted object as a pointer of type ${this.name}`);var a=e.$$.ptrType.registeredClass,o=et(e.$$.ptr,a,this.registeredClass);return o}function gr(t,e){var a;if(e===null)return this.isReference&&H(`null is not a valid ${this.name}`),this.isSmartPointer?(a=this.rawConstructor(),t!==null&&t.push(this.rawDestructor,a),a):0;(!e||!e.$$)&&H(`Cannot pass "${tt(e)}" as a ${this.name}`),e.$$.ptr||H(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&e.$$.ptrType.isConst&&H(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);var o=e.$$.ptrType.registeredClass;if(a=et(e.$$.ptr,o,this.registeredClass),this.isSmartPointer)switch(e.$$.smartPtr===void 0&&H("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:e.$$.smartPtrType===this?a=e.$$.smartPtr:H(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:a=e.$$.smartPtr;break;case 2:if(e.$$.smartPtrType===this)a=e.$$.smartPtr;else{var c=e.clone();a=this.rawShare(a,at.toHandle(()=>c.delete())),t!==null&&t.push(this.rawDestructor,a)}break;default:H("Unsupported sharing policy")}return a}function vr(t,e){if(e===null)return this.isReference&&H(`null is not a valid ${this.name}`),0;e.$$||H(`Cannot pass "${tt(e)}" as a ${this.name}`),e.$$.ptr||H(`Cannot pass deleted object as a pointer of type ${this.name}`),e.$$.ptrType.isConst&&H(`Cannot convert argument of type ${e.$$.ptrType.name} to parameter type ${this.name}`);var a=e.$$.ptrType.registeredClass,o=et(e.$$.ptr,a,this.registeredClass);return o}var kt=(t,e,a)=>{if(e===a)return t;if(a.baseClass===void 0)return null;var o=kt(t,e,a.baseClass);return o===null?null:a.downcast(o)},wr={},yr=(t,e)=>{for(e===void 0&&H("ptr should not be undefined");t.baseClass;)e=t.upcast(e),t=t.baseClass;return e},mr=(t,e)=>(e=yr(t,e),wr[e]),Xe=(t,e)=>{(!e.ptrType||!e.ptr)&&ue("makeClassHandle requires ptr and ptrType");var a=!!e.smartPtrType,o=!!e.smartPtr;return a!==o&&ue("Both smartPtrType and smartPtr must be specified"),e.count={value:1},xe(Object.create(t,{$$:{value:e,writable:!0}}))};function br(t){var e=this.getPointee(t);if(!e)return this.destructor(t),null;var a=mr(this.registeredClass,e);if(a!==void 0){if(a.$$.count.value===0)return a.$$.ptr=e,a.$$.smartPtr=t,a.clone();var o=a.clone();return this.destructor(t),o}function c(){return this.isSmartPointer?Xe(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:e,smartPtrType:this,smartPtr:t}):Xe(this.registeredClass.instancePrototype,{ptrType:this,ptr:t})}var d=this.registeredClass.getActualType(e),p=xt[d];if(!p)return c.call(this);var f;this.isConst?f=p.constPointerType:f=p.pointerType;var v=kt(e,this.registeredClass,f.registeredClass);return v===null?c.call(this):this.isSmartPointer?Xe(f.registeredClass.instancePrototype,{ptrType:f,ptr:v,smartPtrType:this,smartPtr:t}):Xe(f.registeredClass.instancePrototype,{ptrType:f,ptr:v})}var Ur=()=>{Object.assign(ze.prototype,{getPointee(t){return this.rawGetPointee&&(t=this.rawGetPointee(t)),t},destructor(t){this.rawDestructor?.(t)},readValueFromPointer:he,fromWireType:br})};function ze(t,e,a,o,c,d,p,f,v,M,Q){this.name=t,this.registeredClass=e,this.isReference=a,this.isConst=o,this.isSmartPointer=c,this.pointeeType=d,this.sharingPolicy=p,this.rawGetPointee=f,this.rawConstructor=v,this.rawShare=M,this.rawDestructor=Q,!c&&e.baseClass===void 0?o?(this.toWireType=hr,this.destructorFunction=null):(this.toWireType=vr,this.destructorFunction=null):this.toWireType=gr}var Cr=(t,e,a)=>{n.hasOwnProperty(t)||ue("Replacing nonexistent public symbol"),n[t].overloadTable!==void 0&&a!==void 0?n[t].overloadTable[a]=e:(n[t]=e,n[t].argCount=a)},Mr=t=>Zt.get(t),oe=(t,e,a=!1)=>{t=B(t);function o(){var d=Mr(e);return d}var c=o();return typeof c!="function"&&H(`unknown function pointer with signature ${t}: ${e}`),c};class Qr extends Error{}var Er=t=>{var e=Lt(t),a=B(e);return ce(e),a},Oe=(t,e)=>{var a=[],o={};function c(d){if(!o[d]&&!ae[d]){if(pe[d]){pe[d].forEach(c);return}a.push(d),o[d]=!0}}throw e.forEach(c),new Qr(`${t}: `+a.map(Er).join([", "]))},xr=(t,e,a,o,c,d,p,f,v,M,Q,T,P)=>{Q=B(Q),d=oe(c,d),f&&=oe(p,f),M&&=oe(v,M),P=oe(T,P);var _=pr(Q);lr(_,function(){Oe(`Cannot construct ${Q} due to unbound types`,[o])}),A([t,e,a],o?[o]:[],z=>{z=z[0];var ee,O;o?(ee=z.registeredClass,O=ee.instancePrototype):O=Ie.prototype;var K=Et(Q,function(...st){if(Object.getPrototypeOf(this)!==ge)throw new Qe(`Use 'new' to construct ${Q}`);if(ie.constructor_body===void 0)throw new Qe(`${Q} has no accessible constructor`);var St=ie.constructor_body[st.length];if(St===void 0)throw new Qe(`Tried to invoke ctor of ${Q} with invalid number of parameters (${st.length}) - expected (${Object.keys(ie.constructor_body).toString()}) parameters instead!`);return St.apply(this,st)}),ge=Object.create(O,{constructor:{value:K}});K.prototype=ge;var ie=new fr(Q,K,ge,P,ee,d,f,M);ie.baseClass&&(ie.baseClass.__derivedClasses??=[],ie.baseClass.__derivedClasses.push(ie));var ot=new ze(Q,ie,!0,!1,!1),fe=new ze(Q+"*",ie,!1,!1,!1),Ze=new ze(Q+" const*",ie,!1,!0,!1);return xt[t]={pointerType:fe,constPointerType:Ze},Cr(_,K),[ot,fe,Ze]})};function kr(t){for(var e=1;e{for(var a=[],o=0;o>2]);return a},Ft=t=>{t=t.trim();let e=t.indexOf("(");return e===-1?t:t.slice(0,e)},Fr=(t,e,a,o,c,d,p,f,v)=>{var M=nt(a,o);e=B(e),e=Ft(e),d=oe(c,d,f),A([],[t],Q=>{Q=Q[0];var T=`${Q.name}.${e}`;function P(){Oe(`Cannot call ${T} due to unbound types`,M)}e.startsWith("@@")&&(e=Symbol[e.substring(2)]);var _=Q.registeredClass.constructor;return _[e]===void 0?(P.argCount=a-1,_[e]=P):(Ae(_,e,T),_[e].overloadTable[a-1]=P),A([],M,z=>{var ee=[z[0],null].concat(z.slice(1)),O=rt(T,ee,null,d,p);if(_[e].overloadTable===void 0?(O.argCount=a-1,_[e]=O):_[e].overloadTable[a-1]=O,Q.registeredClass.__derivedClasses)for(let K of Q.registeredClass.__derivedClasses)K.constructor.hasOwnProperty(e)||(K.constructor[e]=O);return[]}),[]})},Nr=(t,e,a,o,c,d)=>{var p=nt(e,a);c=oe(o,c),A([],[t],f=>{f=f[0];var v=`constructor ${f.name}`;if(f.registeredClass.constructor_body===void 0&&(f.registeredClass.constructor_body=[]),f.registeredClass.constructor_body[e-1]!==void 0)throw new Qe(`Cannot register multiple constructors with identical number of parameters (${e-1}) for class '${f.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return f.registeredClass.constructor_body[e-1]=()=>{Oe(`Cannot construct ${f.name} due to unbound types`,p)},A([],p,M=>(M.splice(1,0,null),f.registeredClass.constructor_body[e-1]=rt(v,M,null,c,d),[])),[]})},Hr=(t,e,a,o,c,d,p,f,v,M)=>{var Q=nt(a,o);e=B(e),e=Ft(e),d=oe(c,d,v),A([],[t],T=>{T=T[0];var P=`${T.name}.${e}`;e.startsWith("@@")&&(e=Symbol[e.substring(2)]),f&&T.registeredClass.pureVirtualFunctions.push(e);function _(){Oe(`Cannot call ${P} due to unbound types`,Q)}var z=T.registeredClass.instancePrototype,ee=z[e];return ee===void 0||ee.overloadTable===void 0&&ee.className!==T.name&&ee.argCount===a-2?(_.argCount=a-2,_.className=T.name,z[e]=_):(Ae(z,e,P),z[e].overloadTable[a-2]=_),A([],Q,O=>{var K=rt(P,O,T,d,p);return z[e].overloadTable===void 0?(K.argCount=a-2,z[e]=K):z[e].overloadTable[a-2]=K,[]}),[]})},Nt=[],we=[0,1,,1,null,1,!0,1,!1,1],Ht=[],Pr=t=>{if(t>9&&--we[t+1]===0){var e=we[t];we[t]=void 0;var a=Ht[t];a&&(Ht[t]=void 0,a(e)),Nt.push(t)}},at={toValue:t=>(t||H(`Cannot use deleted val. handle = ${t}`),we[t]),toHandle:t=>{switch(t){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let e=Nt.pop()||we.length;return we[e]=t,we[e+1]=1,e}}}},$r={name:"emscripten::val",fromWireType:t=>{var e=at.toValue(t);return Pr(t),e},toWireType:(t,e)=>at.toHandle(e),readValueFromPointer:he,destructorFunction:null},Tr=t=>le(t,$r),Pt,$t,_r=(t,e)=>{switch(e){case 4:return function(a){return this.fromWireType(Pt[a>>2])};case 8:return function(a){return this.fromWireType($t[a>>3])};default:throw new TypeError(`invalid float width (${e}): ${t}`)}},qr=(t,e,a)=>{e=B(e),le(t,{name:e,fromWireType:o=>o,toWireType:(o,c)=>c,readValueFromPointer:_r(e,a),destructorFunction:null})},Lr=(t,e,a,o,c)=>{e=B(e);let d=o===0,p=v=>v;if(d){var f=32-8*a;p=v=>v<>>f,c=p(c)}le(t,{name:e,fromWireType:p,toWireType:(v,M)=>M,readValueFromPointer:Ct(e,a,o!==0),destructorFunction:null})},Jr=(t,e,a)=>{var o=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array],c=o[e];function d(p){var f=q[p>>2],v=q[p+4>>2];return new c(Z.buffer,v,f)}a=B(a),le(t,{name:a,fromWireType:d,readValueFromPointer:d},{ignoreDuplicateRegistrations:!0})},Rr=(t,e,a,o)=>{if(!(o>0))return 0;for(var c=a,d=a+o-1,p=0;p=d)break;e[a++]=f}else if(f<=2047){if(a+1>=d)break;e[a++]=192|f>>6,e[a++]=128|f&63}else if(f<=65535){if(a+2>=d)break;e[a++]=224|f>>12,e[a++]=128|f>>6&63,e[a++]=128|f&63}else{if(a+3>=d)break;e[a++]=240|f>>18,e[a++]=128|f>>12&63,e[a++]=128|f>>6&63,e[a++]=128|f&63,p++}}return e[a]=0,a-c},Tt=(t,e,a)=>Rr(t,j,e,a),_t=t=>{for(var e=0,a=0;a=55296&&o<=57343?(e+=4,++a):e+=3}return e},Kr=(t,e)=>{e=B(e),le(t,{name:e,fromWireType(a){var o=q[a>>2],c=a+4,d;return d=de(c,o,!0),ce(a),d},toWireType(a,o){o instanceof ArrayBuffer&&(o=new Uint8Array(o));var c,d=typeof o=="string";d||ArrayBuffer.isView(o)&&o.BYTES_PER_ELEMENT==1||H("Cannot pass non-string to std::string"),d?c=_t(o):c=o.length;var p=it(4+c+1),f=p+4;return q[p>>2]=c,d?Tt(o,f,c+1):j.set(o,f),a!==null&&a.push(ce,p),p},readValueFromPointer:he,destructorFunction(a){ce(a)}})},qt=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,Ir=(t,e,a)=>{var o=t>>1,c=C(Ee,o,e/2,a);if(c-o>16&&qt)return qt.decode(Ee.subarray(o,c));for(var d="",p=o;p{if(a<2)return 0;a-=2;for(var o=e,c=a>1]=p,e+=2}return Re[e>>1]=0,e-o},zr=t=>t.length*2,Or=(t,e,a)=>{for(var o="",c=t>>2,d=0;!(d>=e/4);d++){var p=q[c+d];if(!p&&!a)break;o+=String.fromCodePoint(p)}return o},Vr=(t,e,a=2147483647)=>{if(a<4)return 0;for(var o=e,c=o+a-4,d=0;d65535&&d++,Ke[e>>2]=p,e+=4,e+4>c)break}return Ke[e>>2]=0,e-o},Zr=t=>{for(var e=0,a=0;a65535&&a++,e+=4}return e},Sr=(t,e,a)=>{a=B(a);var o,c,d;e===2?(o=Ir,c=Xr,d=zr):(o=Or,c=Vr,d=Zr),le(t,{name:a,fromWireType:p=>{var f=q[p>>2],v=o(p+4,f*e,!0);return ce(p),v},toWireType:(p,f)=>{typeof f!="string"&&H(`Cannot pass non-string to C++ string type ${a}`);var v=d(f),M=it(4+v+e);return q[M>>2]=v/e,c(f,M+4,v+e),p!==null&&p.push(ce,M),M},readValueFromPointer:he,destructorFunction(p){ce(p)}})},Yr=(t,e,a,o,c,d)=>{ve[t]={name:B(e),rawConstructor:oe(a,o),rawDestructor:oe(c,d),fields:[]}},Br=(t,e,a,o,c,d,p,f,v,M)=>{ve[t].fields.push({fieldName:B(e),getterReturnType:a,getter:oe(o,c),getterContext:d,setterArgumentType:p,setter:oe(f,v),setterContext:M})},Dr=(t,e)=>{e=B(e),le(t,{isVoid:!0,name:e,fromWireType:()=>{},toWireType:(a,o)=>{}})},Gr=()=>{},ke={},jr=t=>{if(t instanceof V||t=="unwind")return y;i(1,t)},Wr=t=>{y=t,i(t,new V(t))},Ar=t=>{if(!g)try{return t()}catch(e){jr(e)}},en=()=>performance.now(),tn=(t,e)=>{if(ke[t]&&(clearTimeout(ke[t].id),delete ke[t]),!e)return 0;var a=setTimeout(()=>{delete ke[t],Ar(()=>Jt(t,en()))},e);return ke[t]={id:a,timeout_ms:e},0},rn=()=>2147483648,nn=(t,e)=>Math.ceil(t/e)*e,an=t=>{var e=Ve.buffer.byteLength,a=(t-e+65535)/65536|0;try{return Ve.grow(a),F(),1}catch{}},on=t=>{var e=j.length;t>>>=0;var a=rn();if(t>a)return!1;for(var o=1;o<=4;o*=2){var c=e*(1+.2/o);c=Math.min(c,t+100663296);var d=Math.min(a,nn(Math.max(t,c),65536)),p=an(d);if(p)return!0}return!1},sn=t=>52;function un(t,e,a,o){return 70}var ln=[null,[],[]],cn=(t,e)=>{var a=ln[t];!e||e===10?((t===1?s:l)(S(a)),a.length=0):a.push(e)},dn=(t,e,a,o)=>{for(var c=0,d=0;d>2],f=q[e+4>>2];e+=8;for(var v=0;v>2]=c,0};ur(),Ur(),n.wasmBinary&&(h=n.wasmBinary),n.UTF8ToString=de,n.stringToUTF8=Tt,n.lengthBytesUTF8=_t;var Lt,it,ce,Jt,Rt,Kt,It,Xt,zt,Ot,Vt,Ve,Zt;function pn(t){Lt=t.B,it=n._malloc=t.C,ce=n._free=t.D,Jt=t.F,Rt=t.G,Kt=t.H,It=t.I,Xt=t.J,zt=t.K,Ot=t.L,Ve=t.z,Zt=t.E,Vt=t.M}var fn={t:Ce,x:Je,f:Ge,i:ar,l:ir,o:xr,b:Fr,n:Nr,d:Hr,y:Tr,h:qr,c:Lr,a:Jr,k:Kr,g:Sr,j:Yr,e:Br,m:Dr,w:Gr,p:tn,u:on,s:sn,q:un,r:dn,v:Wr};async function hn(){!g&&m()}var Fe;return Fe=await b(),await hn(),n}var _n=Tn,qn=new Int8Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,90,63,64,65,66,-1,67,68,69,70,71,-1,72,73,52,53,54,55,56,57,58,59,60,61,74,75,76,77,78,79,80,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,81,-1,82,83,84,85,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,86,87,88,89,-1]);function Ln(r){let n=new Uint8Array(170930),i=0,u=0,s=0,l=-1;for(let h=0,g=r.length;h127)continue;let E=qn[y];if(!(E<0))if(l<0)l=E;else{l+=E*91,u|=l<88?13:14;do n[i++]=u,u>>>=8,s-=8;while(s>7);l=-1}}return l>=0&&(n[i++]=(u|l<""})}function Kn(){ht=void 0}var In=class{_module;constructor(r){this._module=r}malloc(r){let n=this._module._malloc(r);return{ptr:n,size:r,dispose:()=>this.free({ptr:n,size:r,dispose:()=>{}})}}free(r){this._module._free(r.ptr)}dataToHeap(r){let n=this.malloc(r.byteLength);return this._module.HEAPU8.set(r,n.ptr),n}heapView(r){return this._module.HEAPU8.subarray(r.ptr,r.ptr+r.size)}heapToUint8Array(r){return new Uint8Array([...this.heapView(r)])}lengthBytes(r){return this._module.lengthBytesUTF8(r)}stringToHeap(r){let n=this.lengthBytes(r)+1,i=this._module._malloc(n);return this._module.stringToUTF8(r,i,n),{ptr:i,size:n,dispose:()=>this.free({ptr:i,size:n,dispose:()=>{}})}}heapToString(r){return this._module.UTF8ToString(r.ptr,r.size)}hasFilesystem(){let r=this._module;return r.FS_createPath!==void 0&&r.FS_createDataFile!==void 0&&r.FS_preloadFile!==void 0&&r.FS_unlink!==void 0}createPath(r,n=!0,i=!0){return this._module.FS_createPath("/",r,n,i)}createDataFile(r,n,i=!0,u=!0,s=!0){return this._module.FS_createDataFile("/",r,n,i,u,s)}preloadFile(r,n,i=!0,u=!0,s=!1,l=!0,h=!1){return this._module.FS_preloadFile("/",r,n,i,u,s,l,h)}unlink(r){return this._module.FS_unlink(r)}},Ne,Xn=4294967295;function He(r,n){if(!Number.isInteger(r)||r<0||r>Xn)throw new Error(`${n} length ${r} is outside the WASM32-safe range`)}function lt(r){if(r.length===0)return new Uint8Array(0);if(r.length===1)return r[0];let n=0;for(let s of r)n+=s.length;let i=new Uint8Array(n),u=0;for(let s of r)i.set(s,u),u+=s.length;return i}var zn=class Wt{_mainModule;_zstdClass;_zstd;_compressionLevel;_decompressFrameCompleted=!1;_decompressRemaining=0;_decompressSawInput=!1;constructor(n){this._mainModule=new In(n),this._zstdClass=n.zstd,this._zstd=new this._zstdClass,this._compressionLevel=this._zstdClass.defaultCLevel()}static load(){return Ne||(Ne=Rn().then(n=>new Wt(n))),Ne}static unload(){Kn(),Ne?.then(n=>{n?._zstd?.delete()}),Ne=void 0}copyHeap(n){return this._mainModule.heapView(n).slice()}mallocChecked(n,i){He(n,i);let u=this._mainModule.malloc(n);if(!u.ptr)throw this._mainModule.free(u),new Error(`Failed to allocate ${n} bytes for ${i}`);return u}throwStreamError(n,i){throw new Error(`${n} failed: ${i.errorName||"unknown error"}`)}ensureStreamOk(n,i){i.error&&this.throwStreamError(n,i)}version(){return this._zstdClass.version()}reset(){let n=this._zstd.reset();this.ensureStreamOk("reset",n),this._decompressFrameCompleted=!1,this._decompressRemaining=0,this._decompressSawInput=!1}resetCompression(n){n!==void 0&&(this._compressionLevel=n);let i=this._zstd.resetCompression(this._compressionLevel);this.ensureStreamOk("resetCompression",i)}resetDecompression(){let n=this._zstd.resetDecompression();this.ensureStreamOk("resetDecompression",n),this._decompressFrameCompleted=!1,this._decompressRemaining=0,this._decompressSawInput=!1}setCompressionLevel(n){let i=this._zstd.setCompressionLevel(n);this.ensureStreamOk("setCompressionLevel",i),this._compressionLevel=n}compress(n,i=this.defaultCLevel()){He(n.length,"compress input");let u=this._mainModule.dataToHeap(n);try{if(!u.ptr&&n.length>0)throw new Error("Failed to allocate compress input buffer");let s=this._zstdClass.compressBound(n.length),l=this.mallocChecked(s,"compress output");try{if(l.size=this._zstdClass.compress(l.ptr,s,u.ptr,u.size,i),this._zstdClass.isError(l.size))throw new Error(`compress failed: ${this._zstdClass.getErrorName(l.size)}`);return this.copyHeap(l)}finally{this._mainModule.free(l)}}finally{this._mainModule.free(u)}}compressChunk(n){if(He(n.length,"compressChunk input"),n.length===0)return new Uint8Array(0);let i=this._mainModule.dataToHeap(n);try{if(!i.ptr)throw new Error("Failed to allocate compressChunk input buffer");let u=this._zstdClass.CStreamOutSize(),s=[],l=0;for(;l0&&(h.size=g.produced,s.push(this.copyHeap(h)))}finally{this._mainModule.free(h)}}return lt(s)}finally{this._mainModule.free(i)}}compressEnd(){let n=this._zstdClass.CStreamOutSize(),i=[],u=1;for(;u!==0;){let s=this.mallocChecked(n,"compressEnd output");try{let l=this._zstd.compressEnd(s.ptr,n);if(this.ensureStreamOk("compressEnd",l),l.produced===0&&l.remaining!==0)throw new Error("compressEnd failed: no progress while finishing stream");u=l.remaining,l.produced>0&&(s.size=l.produced,i.push(this.copyHeap(s)))}finally{this._mainModule.free(s)}}return lt(i)}frameContentSize(n){return this._zstdClass.getFrameContentSize(n.ptr,n.size)}decompress(n){He(n.length,"decompress input");let i=this._mainModule.dataToHeap(n);try{if(!i.ptr&&n.length>0)throw new Error("Failed to allocate decompress input buffer");let u=this.frameContentSize(i);if(u.error)throw new Error(`Failed to get frame content size: ${u.errorName}`);let s=u.known;if(s){let l=this._zstdClass.findFrameCompressedSize(i.ptr,i.size);if(this._zstdClass.isError(l))throw new Error(`Failed to find frame compressed size: ${this._zstdClass.getErrorName(l)}`);l0?i.ptr+l:0,U=this._zstd.decompressChunk(g.ptr,u,E,y);if(this.ensureStreamOk("decompressChunk",U),U.consumed===0&&U.produced===0){if(y===0){U.remaining>0&&(this._decompressRemaining=U.remaining);break}throw new Error("decompressChunk failed: no progress while consuming input")}l+=U.consumed,h=U.produced===u&&U.remaining!==0,U.produced>0&&(g.size=U.produced,s.push(this.copyHeap(g))),U.remaining===0?(this._decompressFrameCompleted=!0,this._decompressRemaining=0):this._decompressRemaining=U.remaining}finally{this._mainModule.free(g)}}return lt(s)}finally{this._mainModule.free(i)}}decompressEnd(){if(!this._decompressSawInput)throw new Error("decompressEnd failed: empty compressed input is not a completed frame");if(!this._decompressFrameCompleted||this._decompressRemaining!==0)throw new Error("decompressEnd failed: truncated Zstandard input")}defaultCLevel(){return this._zstdClass.defaultCLevel()}minCLevel(){return this._zstdClass.minCLevel()}maxCLevel(){return this._zstdClass.maxCLevel()}};let ct=null;function On(){return ct||(ct=zn.load()),ct}function Vn(r){return r.length>=4&&r[0]===40&&r[1]===181&&r[2]===47&&r[3]===253}function gt(r){const n="SQLite format 3\0";if(r.length -

🏠 Главная

-

Локальное сохранение и повторения — всё работает офлайн.

-
Проверка локальной базы…
-
- -
- - - `;const i=r.querySelector("#home-db-status"),u=r.querySelector("#btn-go-sync"),s=r.querySelector("#home-actions"),l=r.querySelector("#btn-start");u.addEventListener("click",()=>n.goSync()),l.addEventListener("click",()=>{i.textContent="Экран повторений — следующий шаг."}),(async()=>{if(!await Se()){i.textContent="Локальной базы нет. Скачай сохранение на странице «Синхронизация».",s.hidden=!0;return}try{const g=await vn(),y=gt(g);i.textContent=y?`Локальная база на месте: ${(g.length/1024).toFixed(1)} КБ, сигнатура SQLite OK.`:"Файл в OPFS есть, но это не похоже на SQLite — перекачай сохранение.",s.hidden=!y}catch(g){i.textContent=`Не удалось прочитать базу: ${g instanceof Error?g.message:String(g)}`,s.hidden=!0}})()}const Bt=24,Yn=/^[A-Za-z0-9]{24}$/,At="japlearn_sync_token";function Dt(r){return r.trim().replace(/\s+/g,"")}function ye(r){return Yn.test(r)}function Bn(){try{return localStorage.getItem(At)??""}catch{return""}}function dt(r){try{localStorage.setItem(At,r)}catch{}}const er="https://learning.micialware.ru";function Dn(r,n=er){return`${n.replace(/\/+$/,"")}/download/${encodeURIComponent(r)}`}async function Gn(r,n,i=er){const u=Dn(r,i);let s;try{s=await fetch(u,{method:"GET",...n})}catch(h){throw new Error(`Нет связи с сервером: ${h instanceof Error?h.message:String(h)}`)}if(!s.ok)throw s.status===404?new Error("Сохранение не найдено (404). Проверь токен."):new Error(`Сервер ответил ${s.status} ${s.statusText}`);const l=await s.arrayBuffer();if(l.byteLength===0)throw new Error("Сервер вернул пустой файл");return new Uint8Array(l)}function jn(r){r.innerHTML=` -
-

📡 Синхронизация

-

Токен сохранения — 24 символа: латинские буквы и цифры.

- - - -
- - 0 / 24 -
- -
- - -
- -

Введите токен из 24 символов

-
- `;const n=r.querySelector("#token-input"),i=r.querySelector("#token-error"),u=r.querySelector("#token-counter"),s=r.querySelector("#btn-download"),l=r.querySelector("#btn-upload"),h=r.querySelector("#status");function g(m){h.textContent=m,console.log(`[JapLearn] ${m}`)}function y(){return Dt(n.value)}function E(m){s.disabled=m||!ye(y()),l.disabled=!0,n.disabled=m,m||Se().then(x=>{!n.disabled&&ye(y())&&(l.disabled=!x)})}function U(){const m=y(),x=m.length;u.textContent=`${x} / ${Bt}`;const w=ye(m),$=x===0;n.classList.toggle("invalid",!$&&!w),n.setAttribute("aria-invalid",String(!$&&!w)),$?i.textContent="":x!==Bt?i.textContent=`Нужно 24 символа, сейчас ${x}`:i.textContent=w?"":"Только латинские буквы и цифры",s.disabled=!w,w?Se().then(D=>{n.disabled||(l.disabled=!D)}):l.disabled=!0}async function k(){const m=y();if(ye(m)){dt(m),E(!0),g("Скачивание сохранения...");try{const x=await Gn(m);g(`Скачано ${(x.length/1024).toFixed(1)} КБ, распаковка...`);const w=await Zn(x);g(`Распаковано ${(w.length/1024).toFixed(1)} КБ, сохранение в OPFS...`),await gn(w),g(`Готово: база ${(w.length/1024).toFixed(1)} КБ сохранена локально (OPFS).`)}catch(x){g(`Ошибка скачивания: ${x instanceof Error?x.message:String(x)}`)}finally{E(!1),U()}}}n.addEventListener("input",()=>{U()}),n.addEventListener("change",()=>{const m=y();n.value=m,ye(m)&&(dt(m),g("Токен сохранён локально. Можно скачивать или выгружать.")),U()}),s.addEventListener("click",()=>{k()}),l.addEventListener("click",()=>{const m=y();ye(m)&&(dt(m),g("Выгрузка — следующий шаг (POST /upload/stream/{id})."))});const F=Bn();F&&(n.value=F),U(),ye(Dt(F))&&Se().then(m=>{g(m?"Токен восстановлен, локальная база на месте.":"Токен восстановлен. Нажми «Скачать», чтобы получить базу."),U()})}const Wn={home:"Главная",sync:"Синхронизация"};function _e(r){const n=document.getElementById(r);if(!n)throw new Error(`[JapLearn] Не найден элемент #${r}`);return n}const tr=_e("burger-btn"),Be=_e("drawer"),rr=_e("drawer-overlay"),An=_e("page-title"),Gt=_e("page");let yt=!1;function qe(r){yt=r,Be.classList.toggle("open",r),rr.hidden=!r,tr.setAttribute("aria-expanded",String(r)),Be.setAttribute("aria-hidden",String(!r)),document.body.classList.toggle("drawer-open",r)}function ea(r){Be.querySelectorAll(".drawer-btn").forEach(n=>{n.classList.toggle("active",n.dataset.page===r)})}function mt(r){An.textContent=Wn[r],ea(r),r==="home"?Sn(Gt,{goSync:()=>mt("sync")}):jn(Gt)}tr.addEventListener("click",()=>{qe(!yt)});rr.addEventListener("click",()=>{qe(!1)});document.addEventListener("keydown",r=>{r.key==="Escape"&&yt&&qe(!1)});Be.querySelectorAll(".drawer-btn").forEach(r=>{r.addEventListener("click",()=>{const n=r.dataset.page;(n==="home"||n==="sync")&&mt(n),qe(!1)})});qe(!1);mt("home");console.log("[JapLearn] crossOriginIsolated =",window.crossOriginIsolated); diff --git a/dist/assets/index-BdLQfp0Z.js b/dist/assets/index-BdLQfp0Z.js new file mode 100644 index 0000000..909a145 --- /dev/null +++ b/dist/assets/index-BdLQfp0Z.js @@ -0,0 +1,60 @@ +(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))c(o);new MutationObserver(o=>{for(const l of o)if(l.type==="childList")for(const h of l.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&c(h)}).observe(document,{childList:!0,subtree:!0});function i(o){const l={};return o.integrity&&(l.integrity=o.integrity),o.referrerPolicy&&(l.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?l.credentials="include":o.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function c(o){if(o.ep)return;o.ep=!0;const l=i(o);fetch(o.href,l)}})();const _e=new Worker(new URL("/assets/db-worker-AHwpujSZ.js",import.meta.url),{type:"module"});let ir=0,Be=null;const De=new Map;function kn(){return Be||(Be=new Promise((r,n)=>{_e.onmessage=c=>{const o=c.data;if(o.type==="ready")return;const l=De.get(o.id);l&&(De.delete(o.id),o.type=="success"?l.resolve(o.data):l.reject(new Error(o.error??o.message??"Неизвестная ошибка Worker")))},_e.onerror=c=>{console.error("[SQLite Worker] Ошибка:",c),n(new Error("Ошибка Worker"))};const i=++ir;De.set(i,{resolve:r,reject:n}),_e.postMessage({type:"start",id:i})}),Be)}function $n(r,n){return new Promise((i,c)=>{if(!_e){c(new Error("Worker не создан"));return}const o=++ir;De.set(o,{resolve:i,reject:c}),_e.postMessage({type:r,id:o,...n})})}async function Ae(r,n){return await $n("query",{sql:r,params:n??[]})}function xn(r){if(r==null)return[];const n=String(r).trim();return n?n.split(/[,\s;]+/).map(i=>i.trim()).filter(i=>i.length>0):[]}function Qn(r){const n=new Map;if(r==null)return n;const i=String(r);if(!i)return n;const c=i.split("");for(let o=0;o+10?`WHERE ${n.join(" AND ")}`:"",params:i}}async function Nn(r={}){const{clause:n,params:i}=or(r),o=(await Ae(`SELECT COUNT(*) as cnt FROM words ${n}`,i))[0]?.cnt;return typeof o=="number"?o:Number(o??0)}async function Wt(r={}){const{clause:n,params:i}=or(r),c=Math.max(1,Math.min(r.limit??50,500)),o=Math.max(0,r.offset??0);return(await Ae(`SELECT id, key, value, tags, more, group_id FROM words ${n} ORDER BY id LIMIT ? OFFSET ?`,[...i,c,o])).map(Fn)}async function Tn(){return(await Ae("SELECT id, name FROM word_groups ORDER BY id")).map(n=>({id:Number(n.id),name:String(n.name??"")}))}async function Pn(){return(await Ae("SELECT id, name, identifier FROM custom_fields ORDER BY id")).map(n=>({id:Number(n.id),name:String(n.name??""),identifier:String(n.identifier??"")}))}const Ut="japanese_app.db";async function Ct(){return navigator.storage.getDirectory()}async function _n(r){r[18]=1,r[19]=1;const i=await(await Ct()).getFileHandle(Ut,{create:!0}),c=i.createSyncAccessHandle;if(typeof c=="function")try{const l=await c.call(i);try{l.truncate(0),l.write(r,{at:0}),l.flush()}finally{l.close()}return}catch{}const o=await i.createWritable();try{await o.truncate(0);const l=new Uint8Array(r.length);l.set(r),await o.write(l)}finally{await o.close()}}async function Hn(){const r=await Ct();let n;try{n=await r.getFileHandle(Ut)}catch{throw new Error("Локальная база не найдена — сначала скачай сохранение")}const i=await n.getFile();if(i.size===0)throw new Error("Локальная база пуста");return new Uint8Array(await i.arrayBuffer())}async function Ge(){try{return(await(await(await Ct()).getFileHandle(Ut)).getFile()).size>0}catch{return!1}}var qn=ArrayBuffer,z=Uint8Array,je=Uint16Array,Ln=Int16Array,et=Int32Array,ft=function(r,n,i){if(z.prototype.slice)return z.prototype.slice.call(r,n,i);(n==null||n<0)&&(n=0),(i==null||i>r.length)&&(i=r.length);var c=new z(i-n);return c.set(r.subarray(n,i)),c},He=function(r,n,i,c){if(z.prototype.fill)return z.prototype.fill.call(r,n,i,c);for((i==null||i<0)&&(i=0),(c==null||c>r.length)&&(c=r.length);ir.length)&&(c=r.length);i2046MB)","invalid block type","FSE accuracy too high","match distance too far back","unexpected EOF"],Y=function(r,n,i){var c=new Error(n||In[r]);if(c.code=r,Error.captureStackTrace&&Error.captureStackTrace(c,Y),!i)throw c;return c},At=function(r,n,i){for(var c=0,o=0;c>>0},Sn=function(r,n){var i=r[0]|r[1]<<8|r[2]<<16;if(i==3126568&&r[3]==253){var c=r[4],o=c>>5&1,l=c>>2&1,h=c&3,g=c>>6;c&8&&Y(0);var v=6-o,k=h==3?4:h,C=At(r,v,k);v+=k;var M=g?1<>3);y=N+(N>>3)*(r[5]&7)}y>2145386496&&Y(1);var w=new z((n==1?F||y:n?0:y)+12);return w[0]=1,w[4]=4,w[8]=8,{b:v+M,y:0,l:0,d:C,w:n&&n!=1?n:w.subarray(12),e:y,o:new et(w.buffer,0,3),u:F,c:l,m:Math.min(131072,y)}}else if((i>>4|r[3]<<20)==25481893)return Jn(r,4)+8;Y(0)},be=function(r){for(var n=0;1<i&&Y(3);for(var l=1<0;){var J=be(h+1),H=c>>3,te=(1<>(c&7)&te,b=(1<b&&(K-=B)),F[++g]=--K,K==-1?(h+=K,$[--C]=g):h-=K,!K)do{var G=c>>3;v=(r[G]|r[G+1]<<8)>>(c&7)&3,c+=2,g+=v}while(v==3)}(g>255||h)&&Y(0);for(var j=0,T=(l>>1)+(l>>3)+3,_=l-1,P=0;P<=g;++P){var U=F[P];if(U<1){y[P]=-U;continue}for(k=0;k=C)}}for(j&&Y(0),k=0;k>3,{b:o,s:$,n:D,t:N}]},Kn=function(r,n){var i=0,c=-1,o=new z(292),l=r[n],h=o.subarray(0,256),g=o.subarray(256,268),v=new je(o.buffer,268);if(l<128){var k=qe(r,n+1,6),C=k[0],M=k[1];n+=l;var F=C<<3,y=r[n];y||Y(0);for(var N=0,w=0,$=M.b,D=$,J=(++n<<3)-8+be(y);J-=$,!(J>3;if(N+=(r[H]|r[H+1]<<8)>>(J&7)&(1<<$)-1,h[++c]=M.s[N],J-=D,J>3,w+=(r[H]|r[H+1]<<8)>>(J&7)&(1<255&&Y(0)}else{for(c=l-127;i>4,h[i+1]=te&15}++n}var K=0;for(i=0;i11&&Y(0),K+=b&&1<0;--i){var P=v[i];He(_,i,P,v[i-1]=P+g[i]*(1<g&&M>3,y=(r[F]|r[F+1]<<8|r[F+2]<<16)>>(C&7);v=(v<>2,h=l<<1,g=l+h;Pe(r.subarray(c,c+=r[0]|r[1]<<8),n.subarray(0,l),i),Pe(r.subarray(c,c+=r[2]|r[3]<<8),n.subarray(l,h),i),Pe(r.subarray(c,c+=r[4]|r[5]<<8),n.subarray(h,g),i),Pe(r.subarray(c),n.subarray(g),i)},Bn=function(r,n,i){var c,o=n.b,l=r[o],h=l>>1&3;n.l=l&1;var g=l>>3|r[o+1]<<5|r[o+2]<<13,v=(o+=3)+g;if(h==1)return o>=r.length?void 0:(n.b=o+1,i?(He(i,r[o],n.y,n.y+=g),i):He(new z(g),r[o]));if(!(v>r.length)){if(h==0)return n.b=v,i?(i.set(r.subarray(o,v),n.y),n.y+=g,i):ft(r,o,v);if(h==2){var k=r[o],C=k&3,M=k>>2&3,F=k>>4,y=0,N=0;C<2?M&1?F|=r[++o]<<4|(M&2&&r[++o]<<12):F=k>>3:(N=M,M<2?(F|=(r[++o]&63)<<4,y=r[o]>>6|r[++o]<<2):M==2?(F|=r[++o]<<4|(r[++o]&3)<<12,y=r[o]>>2|r[++o]<<6):(F|=r[++o]<<4|(r[++o]&63)<<12,y=r[o]>>6|r[++o]<<2|r[++o]<<10)),++o;var w=i?i.subarray(n.y,n.y+n.m):new z(n.m),$=w.length-F;if(C==0)w.set(r.subarray(o,o+=F),$);else if(C==1)He(w,r[o++],$);else{var D=n.h;if(C==2){var J=Kn(r,o);y+=o-(o=J[0]),n.h=D=J[1]}else D||Y(0);(N?Yn:Pe)(r.subarray(o,o+=y),w.subarray($),D)}var H=r[o++];if(H){H==255?H=(r[o++]|r[o++]<<8)+32512:H>127&&(H=H-128<<8|r[o++]);var te=r[o++];te&3&&Y(0);for(var K=[Xn,zn,On],b=2;b>-1;--b){var B=te>>(b<<1)+2&3;if(B==1){var S=new z([0,0,r[o++]]);K[b]={s:S.subarray(2,3),n:S.subarray(0,1),t:new je(S.buffer,0,1),b:0}}else B==2?(c=qe(r,o,9-(b&1)),o=c[0],K[b]=c[1]):B==3&&(n.t||Y(0),K[b]=n.t[b])}var G=n.t=K,j=G[0],T=G[1],_=G[2],P=r[v-1];P||Y(0);var U=(v<<3)-8+be(P)-_.b,E=U>>3,V=0,O=(r[E]|r[E+1]<<8)>>(U&7)&(1<<_.b)-1;E=(U-=T.b)>>3;var de=(r[E]|r[E+1]<<8)>>(U&7)&(1<>3;var X=(r[E]|r[E+1]<<8)>>(U&7)&(1<>3;var he=1<>>(U&7)&he-1);E=(U-=vt[Ee])>>3;var ie=Zn[Ee]+((r[E]|r[E+1]<<8|r[E+2]<<16)>>(U&7)&(1<>3;var pe=Vn[Ce]+((r[E]|r[E+1]<<8|r[E+2]<<16)>>(U&7)&(1<>3,O=_.t[O]+((r[E]|r[E+1]<<8)>>(U&7)&(1<>3,X=j.t[X]+((r[E]|r[E+1]<<8)>>(U&7)&(1<>3,de=T.t[de]+((r[E]|r[E+1]<<8)>>(U&7)&(1<3)n.o[2]=n.o[1],n.o[1]=n.o[0],n.o[0]=re-=3;else{var Ue=re-(pe!=0);Ue?(re=Ue==3?n.o[0]-1:n.o[Ue],Ue>1&&(n.o[2]=n.o[1]),n.o[1]=n.o[0],n.o[0]=re):re=n.o[0]}for(var b=0;bie&&(ne=ie);for(var b=0;b{throw e},c,o=console.log.bind(console),l=console.error.bind(console),h,g=!1,v,k=t=>t.startsWith("file://"),C=!1;function M(){return Ze.buffer}function F(){if(!S?.buffer?.resizable){var t=M();S=new Int8Array(t),Se=new Int16Array(t),n.HEAPU8=O=new Uint8Array(t),$e=new Uint16Array(t),Ke=new Int32Array(t),X=new Uint32Array(t),Lt=new Float32Array(t),Rt=new Float64Array(t),kt=new BigInt64Array(t),$t=new BigUint64Array(t)}}function y(){C=!0,Fe.A()}function N(t){t=`Aborted(${t})`,l(t),g=!0,t+=". Build with -sASSERTIONS for more info.",C&&Xt();var e=new WebAssembly.RuntimeError(t);throw e}var w;let $=()=>"";function D(t){if(t==w&&h)return new Uint8Array(h);throw"both async and sync fetching of the wasm failed"}async function J(t){if(!h)try{var e=await c(t);return new Uint8Array(e)}catch{}return D(t)}async function H(t,e){try{var a=await J(t),s=await WebAssembly.instantiate(a,e);return s}catch(u){l(`failed to asynchronously prepare wasm: ${u}`),N(u)}}async function te(t,e,a){if(!t&&!k(e))try{var s=fetch(e,{credentials:"same-origin"}),u=await WebAssembly.instantiateStreaming(s,a);return u}catch(d){l(`wasm streaming compile failed: ${d}`),l("falling back to ArrayBuffer instantiation")}return H(e,a)}function K(){var t={a:En};return t}async function b(){function t(d){return Fe=d.exports,Cn(Fe),F(),Fe}function e(d){return t(d.instance)}var a=K();w??=$();var s=await te(h,w,a),u=e(s);return u}class B{name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var S,G=()=>Dt,j=t=>{var e=t.getArg(G(),0);return Yt(e)},T=()=>Zt(),_=t=>zt(t),P=t=>Vt(t),U=globalThis.TextDecoder&&new TextDecoder,E=(t,e,a,s)=>{var u=e+a;if(s)return u;for(;t[e]&&!(e>=u);)++e;return e},V=(t,e=0,a,s)=>{var u=E(t,e,a,s);if(u-e>16&&t.buffer&&U)return U.decode(t.subarray(e,u));for(var d="";e>10,56320|x&1023)}}return d},O,de=(t,e,a)=>t?V(O,t,e,a):"",X,Ce=t=>{var e=T(),a=P(4),s=P(4);Bt(t,a,s);var u=X[a>>2],d=X[s>>2],p=de(u);ue(u);var f;return d&&(f=de(d),ue(d)),_(e),[p,f]},Ie=t=>{var e=j(t);return Ce(e)},Ee=t=>{var e=new WebAssembly.Exception(G(),[t],{traceStack:!0});throw e.message=Ie(e),e},Je=()=>N(""),we={},Me=t=>{for(;t.length;){var e=t.pop(),a=t.pop();a(e)}};function he(t){return this.fromWireType(X[t>>2])}var re={},ie={},pe={};class Ue extends Error{constructor(e){super(e),this.name="InternalError"}}var ce=t=>{throw new Ue(t)},ne=(t,e,a)=>{t.forEach(f=>pe[f]=e);function s(f){var m=a(f);m.length!==t.length&&ce("Mismatched type converter count");for(var x=0;x{u[f]=ie[m],++p,p===d.length&&s(u)}));d.length===0&&s(u)},tt=t=>{var e=we[t];delete we[t];var a=e.rawConstructor,s=e.rawDestructor,u=e.fields,d=u.map(p=>p.getterReturnType).concat(u.map(p=>p.setterArgumentType));ne([t],d,p=>{var f={};for(var[m,x]of u.entries()){let Q=p[m],R=x.getter,L=x.getterContext,I=p[m+u.length],W=x.setter,ae=x.setterContext;f[x.fieldName]={read:A=>Q.fromWireType(R(L,A)),write:(A,Z)=>{var ge=[];W(ae,A,I.toWireType(ge,Z)),Me(ge)},optional:Q.optional}}return[{name:e.name,fromWireType:Q=>{var R={};for(var L in f)R[L]=f[L].read(Q);return s(Q),R},toWireType:(Q,R)=>{for(var L in f)if(!(L in R)&&!f[L].optional)throw new TypeError(`Missing field: "${L}"`);var I=a();for(L in f)f[L].write(I,R[L]);return Q!==null&&Q.push(s,I),I},readValueFromPointer:he,destructorFunction:s}]})},ee=t=>{for(var e="";;){var a=O[t++];if(!a)return e;e+=String.fromCharCode(a)}};class ke extends Error{constructor(e){super(e),this.name="BindingError"}}var q=t=>{throw new ke(t)};function fr(t,e,a={}){var s=e.name;if(t||q(`type "${s}" must have a positive integer typeid pointer`),ie.hasOwnProperty(t)){if(a.ignoreDuplicateRegistrations)return;q(`Cannot register type '${s}' twice`)}if(ie[t]=e,delete pe[t],re.hasOwnProperty(t)){var u=re[t];delete re[t],u.forEach(d=>d())}}function le(t,e,a={}){return fr(t,e,a)}var Se,$e,Ke,kt,$t,xt=(t,e,a)=>{switch(e){case 1:return a?s=>S[s]:s=>O[s];case 2:return a?s=>Se[s>>1]:s=>$e[s>>1];case 4:return a?s=>Ke[s>>2]:s=>X[s>>2];case 8:return a?s=>kt[s>>3]:s=>$t[s>>3];default:throw new TypeError(`invalid integer width (${e}): ${t}`)}},hr=(t,e,a,s,u)=>{e=ee(e);let d=s===0n,p=f=>f;if(d){let f=a*8;p=m=>BigInt.asUintN(f,m),u=p(u)}le(t,{name:e,fromWireType:p,toWireType:(f,m)=>(typeof m=="number"&&(m=BigInt(m)),m),readValueFromPointer:xt(e,a,!d),destructorFunction:null})},gr=(t,e,a,s)=>{e=ee(e),le(t,{name:e,fromWireType:function(u){return!!u},toWireType:function(u,d){return d?a:s},readValueFromPointer:function(u){return this.fromWireType(O[u])},destructorFunction:null})},wr=t=>({count:t.count,deleteScheduled:t.deleteScheduled,preservePointerOnDelete:t.preservePointerOnDelete,ptr:t.ptr,ptrType:t.ptrType,smartPtr:t.smartPtr,smartPtrType:t.smartPtrType}),rt=t=>{function e(a){return a.$$.ptrType.registeredClass.name}q(e(t)+" instance already deleted")},nt=!1,Qt=t=>{},mr=t=>{t.smartPtr?t.smartPtrType.rawDestructor(t.smartPtr):t.ptrType.registeredClass.rawDestructor(t.ptr)},Ft=t=>{t.count.value-=1;var e=t.count.value===0;e&&mr(t)},xe=t=>globalThis.FinalizationRegistry?(nt=new FinalizationRegistry(e=>{Ft(e.$$)}),xe=e=>{var a=e.$$,s=!!a.smartPtr;if(s){var u={$$:a};nt.register(e,u,e)}return e},Qt=e=>nt.unregister(e),xe(t)):(xe=e=>e,t),vr=()=>{let t=Oe.prototype;Object.assign(t,{isAliasOf(a){if(!(this instanceof Oe)||!(a instanceof Oe))return!1;var s=this.$$.ptrType.registeredClass,u=this.$$.ptr;a.$$=a.$$;for(var d=a.$$.ptrType.registeredClass,p=a.$$.ptr;s.baseClass;)u=s.upcast(u),s=s.baseClass;for(;d.baseClass;)p=d.upcast(p),d=d.baseClass;return s===d&&u===p},clone(){if(this.$$.ptr||rt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var a=xe(Object.create(Object.getPrototypeOf(this),{$$:{value:wr(this.$$)}}));return a.$$.count.value+=1,a.$$.deleteScheduled=!1,a},delete(){this.$$.ptr||rt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&q("Object already scheduled for deletion"),Qt(this),Ft(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||rt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&q("Object already scheduled for deletion"),this.$$.deleteScheduled=!0,this}});let e=Symbol.dispose;e&&(t[e]=t.delete)};function Oe(){}var Nt=(t,e)=>Object.defineProperty(e,"name",{value:t}),Tt={},at=(t,e,a)=>{if(t[e].overloadTable===void 0){var s=t[e];t[e]=function(...u){return t[e].overloadTable.hasOwnProperty(u.length)||q(`Function '${a}' called with an invalid number of arguments (${u.length}) - expects one of (${t[e].overloadTable})!`),t[e].overloadTable[u.length].apply(this,u)},t[e].overloadTable=[],t[e].overloadTable[s.argCount]=s}},yr=(t,e,a)=>{n.hasOwnProperty(t)?(q(`Cannot register public name '${t}' twice`),at(n,t,t),n[t].overloadTable.hasOwnProperty(a)&&q(`Cannot register multiple overloads of a function with the same number of arguments (${a})!`),n[t].overloadTable[a]=e):(n[t]=e,n[t].argCount=a)},br=48,Ur=57,Cr=t=>{t=t.replace(/[^a-zA-Z0-9_]/g,"$");var e=t.charCodeAt(0);return e>=br&&e<=Ur?`_${t}`:t};function Er(t,e,a,s,u,d,p,f){this.name=t,this.constructor=e,this.instancePrototype=a,this.rawDestructor=s,this.baseClass=u,this.getActualType=d,this.upcast=p,this.downcast=f,this.pureVirtualFunctions=[]}var it=(t,e,a)=>{for(;e!==a;)e.upcast||q(`Expected null or instance of ${a.name}, got an instance of ${e.name}`),t=e.upcast(t),e=e.baseClass;return t},ot=t=>{if(t===null)return"null";var e=typeof t;return e==="object"||e==="array"||e==="function"?t.toString():""+t};function Mr(t,e){if(e===null)return this.isReference&&q(`null is not a valid ${this.name}`),0;e.$$||q(`Cannot pass "${ot(e)}" as a ${this.name}`),e.$$.ptr||q(`Cannot pass deleted object as a pointer of type ${this.name}`);var a=e.$$.ptrType.registeredClass,s=it(e.$$.ptr,a,this.registeredClass);return s}function kr(t,e){var a;if(e===null)return this.isReference&&q(`null is not a valid ${this.name}`),this.isSmartPointer?(a=this.rawConstructor(),t!==null&&t.push(this.rawDestructor,a),a):0;(!e||!e.$$)&&q(`Cannot pass "${ot(e)}" as a ${this.name}`),e.$$.ptr||q(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&e.$$.ptrType.isConst&&q(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);var s=e.$$.ptrType.registeredClass;if(a=it(e.$$.ptr,s,this.registeredClass),this.isSmartPointer)switch(e.$$.smartPtr===void 0&&q("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:e.$$.smartPtrType===this?a=e.$$.smartPtr:q(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:a=e.$$.smartPtr;break;case 2:if(e.$$.smartPtrType===this)a=e.$$.smartPtr;else{var u=e.clone();a=this.rawShare(a,lt.toHandle(()=>u.delete())),t!==null&&t.push(this.rawDestructor,a)}break;default:q("Unsupported sharing policy")}return a}function $r(t,e){if(e===null)return this.isReference&&q(`null is not a valid ${this.name}`),0;e.$$||q(`Cannot pass "${ot(e)}" as a ${this.name}`),e.$$.ptr||q(`Cannot pass deleted object as a pointer of type ${this.name}`),e.$$.ptrType.isConst&&q(`Cannot convert argument of type ${e.$$.ptrType.name} to parameter type ${this.name}`);var a=e.$$.ptrType.registeredClass,s=it(e.$$.ptr,a,this.registeredClass);return s}var Pt=(t,e,a)=>{if(e===a)return t;if(a.baseClass===void 0)return null;var s=Pt(t,e,a.baseClass);return s===null?null:a.downcast(s)},xr={},Qr=(t,e)=>{for(e===void 0&&q("ptr should not be undefined");t.baseClass;)e=t.upcast(e),t=t.baseClass;return e},Fr=(t,e)=>(e=Qr(t,e),xr[e]),Xe=(t,e)=>{(!e.ptrType||!e.ptr)&&ce("makeClassHandle requires ptr and ptrType");var a=!!e.smartPtrType,s=!!e.smartPtr;return a!==s&&ce("Both smartPtrType and smartPtr must be specified"),e.count={value:1},xe(Object.create(t,{$$:{value:e,writable:!0}}))};function Nr(t){var e=this.getPointee(t);if(!e)return this.destructor(t),null;var a=Fr(this.registeredClass,e);if(a!==void 0){if(a.$$.count.value===0)return a.$$.ptr=e,a.$$.smartPtr=t,a.clone();var s=a.clone();return this.destructor(t),s}function u(){return this.isSmartPointer?Xe(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:e,smartPtrType:this,smartPtr:t}):Xe(this.registeredClass.instancePrototype,{ptrType:this,ptr:t})}var d=this.registeredClass.getActualType(e),p=Tt[d];if(!p)return u.call(this);var f;this.isConst?f=p.constPointerType:f=p.pointerType;var m=Pt(e,this.registeredClass,f.registeredClass);return m===null?u.call(this):this.isSmartPointer?Xe(f.registeredClass.instancePrototype,{ptrType:f,ptr:m,smartPtrType:this,smartPtr:t}):Xe(f.registeredClass.instancePrototype,{ptrType:f,ptr:m})}var Tr=()=>{Object.assign(ze.prototype,{getPointee(t){return this.rawGetPointee&&(t=this.rawGetPointee(t)),t},destructor(t){this.rawDestructor?.(t)},readValueFromPointer:he,fromWireType:Nr})};function ze(t,e,a,s,u,d,p,f,m,x,Q){this.name=t,this.registeredClass=e,this.isReference=a,this.isConst=s,this.isSmartPointer=u,this.pointeeType=d,this.sharingPolicy=p,this.rawGetPointee=f,this.rawConstructor=m,this.rawShare=x,this.rawDestructor=Q,!u&&e.baseClass===void 0?s?(this.toWireType=Mr,this.destructorFunction=null):(this.toWireType=$r,this.destructorFunction=null):this.toWireType=kr}var Pr=(t,e,a)=>{n.hasOwnProperty(t)||ce("Replacing nonexistent public symbol"),n[t].overloadTable!==void 0&&a!==void 0?n[t].overloadTable[a]=e:(n[t]=e,n[t].argCount=a)},_r=t=>Gt.get(t),se=(t,e,a=!1)=>{t=ee(t);function s(){var d=_r(e);return d}var u=s();return typeof u!="function"&&q(`unknown function pointer with signature ${t}: ${e}`),u};class Hr extends Error{}var qr=t=>{var e=Kt(t),a=ee(e);return ue(e),a},Ve=(t,e)=>{var a=[],s={};function u(d){if(!s[d]&&!ie[d]){if(pe[d]){pe[d].forEach(u);return}a.push(d),s[d]=!0}}throw e.forEach(u),new Hr(`${t}: `+a.map(qr).join([", "]))},Lr=(t,e,a,s,u,d,p,f,m,x,Q,R,L)=>{Q=ee(Q),d=se(u,d),f&&=se(p,f),x&&=se(m,x),L=se(R,L);var I=Cr(Q);yr(I,function(){Ve(`Cannot construct ${Q} due to unbound types`,[s])}),ne([t,e,a],s?[s]:[],W=>{W=W[0];var ae,A;s?(ae=W.registeredClass,A=ae.instancePrototype):A=Oe.prototype;var Z=Nt(Q,function(...pt){if(Object.getPrototypeOf(this)!==ge)throw new ke(`Use 'new' to construct ${Q}`);if(oe.constructor_body===void 0)throw new ke(`${Q} has no accessible constructor`);var jt=oe.constructor_body[pt.length];if(jt===void 0)throw new ke(`Tried to invoke ctor of ${Q} with invalid number of parameters (${pt.length}) - expected (${Object.keys(oe.constructor_body).toString()}) parameters instead!`);return jt.apply(this,pt)}),ge=Object.create(A,{constructor:{value:Z}});Z.prototype=ge;var oe=new Er(Q,Z,ge,L,ae,d,f,x);oe.baseClass&&(oe.baseClass.__derivedClasses??=[],oe.baseClass.__derivedClasses.push(oe));var dt=new ze(Q,oe,!0,!1,!1),fe=new ze(Q+"*",oe,!1,!1,!1),Ye=new ze(Q+" const*",oe,!1,!0,!1);return Tt[t]={pointerType:fe,constPointerType:Ye},Pr(I,Z),[dt,fe,Ye]})};function Rr(t){for(var e=1;e{for(var a=[],s=0;s>2]);return a},_t=t=>{t=t.trim();let e=t.indexOf("(");return e===-1?t:t.slice(0,e)},Ir=(t,e,a,s,u,d,p,f,m)=>{var x=ct(a,s);e=ee(e),e=_t(e),d=se(u,d,f),ne([],[t],Q=>{Q=Q[0];var R=`${Q.name}.${e}`;function L(){Ve(`Cannot call ${R} due to unbound types`,x)}e.startsWith("@@")&&(e=Symbol[e.substring(2)]);var I=Q.registeredClass.constructor;return I[e]===void 0?(L.argCount=a-1,I[e]=L):(at(I,e,R),I[e].overloadTable[a-1]=L),ne([],x,W=>{var ae=[W[0],null].concat(W.slice(1)),A=st(R,ae,null,d,p);if(I[e].overloadTable===void 0?(A.argCount=a-1,I[e]=A):I[e].overloadTable[a-1]=A,Q.registeredClass.__derivedClasses)for(let Z of Q.registeredClass.__derivedClasses)Z.constructor.hasOwnProperty(e)||(Z.constructor[e]=A);return[]}),[]})},Jr=(t,e,a,s,u,d)=>{var p=ct(e,a);u=se(s,u),ne([],[t],f=>{f=f[0];var m=`constructor ${f.name}`;if(f.registeredClass.constructor_body===void 0&&(f.registeredClass.constructor_body=[]),f.registeredClass.constructor_body[e-1]!==void 0)throw new ke(`Cannot register multiple constructors with identical number of parameters (${e-1}) for class '${f.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return f.registeredClass.constructor_body[e-1]=()=>{Ve(`Cannot construct ${f.name} due to unbound types`,p)},ne([],p,x=>(x.splice(1,0,null),f.registeredClass.constructor_body[e-1]=st(m,x,null,u,d),[])),[]})},Sr=(t,e,a,s,u,d,p,f,m,x)=>{var Q=ct(a,s);e=ee(e),e=_t(e),d=se(u,d,m),ne([],[t],R=>{R=R[0];var L=`${R.name}.${e}`;e.startsWith("@@")&&(e=Symbol[e.substring(2)]),f&&R.registeredClass.pureVirtualFunctions.push(e);function I(){Ve(`Cannot call ${L} due to unbound types`,Q)}var W=R.registeredClass.instancePrototype,ae=W[e];return ae===void 0||ae.overloadTable===void 0&&ae.className!==R.name&&ae.argCount===a-2?(I.argCount=a-2,I.className=R.name,W[e]=I):(at(W,e,L),W[e].overloadTable[a-2]=I),ne([],Q,A=>{var Z=st(L,A,R,d,p);return W[e].overloadTable===void 0?(Z.argCount=a-2,W[e]=Z):W[e].overloadTable[a-2]=Z,[]}),[]})},Ht=[],me=[0,1,,1,null,1,!0,1,!1,1],qt=[],Kr=t=>{if(t>9&&--me[t+1]===0){var e=me[t];me[t]=void 0;var a=qt[t];a&&(qt[t]=void 0,a(e)),Ht.push(t)}},lt={toValue:t=>(t||q(`Cannot use deleted val. handle = ${t}`),me[t]),toHandle:t=>{switch(t){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let e=Ht.pop()||me.length;return me[e]=t,me[e+1]=1,e}}}},Or={name:"emscripten::val",fromWireType:t=>{var e=lt.toValue(t);return Kr(t),e},toWireType:(t,e)=>lt.toHandle(e),readValueFromPointer:he,destructorFunction:null},Xr=t=>le(t,Or),Lt,Rt,zr=(t,e)=>{switch(e){case 4:return function(a){return this.fromWireType(Lt[a>>2])};case 8:return function(a){return this.fromWireType(Rt[a>>3])};default:throw new TypeError(`invalid float width (${e}): ${t}`)}},Vr=(t,e,a)=>{e=ee(e),le(t,{name:e,fromWireType:s=>s,toWireType:(s,u)=>u,readValueFromPointer:zr(e,a),destructorFunction:null})},Zr=(t,e,a,s,u)=>{e=ee(e);let d=s===0,p=m=>m;if(d){var f=32-8*a;p=m=>m<>>f,u=p(u)}le(t,{name:e,fromWireType:p,toWireType:(m,x)=>x,readValueFromPointer:xt(e,a,s!==0),destructorFunction:null})},Yr=(t,e,a)=>{var s=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array],u=s[e];function d(p){var f=X[p>>2],m=X[p+4>>2];return new u(S.buffer,m,f)}a=ee(a),le(t,{name:a,fromWireType:d,readValueFromPointer:d},{ignoreDuplicateRegistrations:!0})},Br=(t,e,a,s)=>{if(!(s>0))return 0;for(var u=a,d=a+s-1,p=0;p=d)break;e[a++]=f}else if(f<=2047){if(a+1>=d)break;e[a++]=192|f>>6,e[a++]=128|f&63}else if(f<=65535){if(a+2>=d)break;e[a++]=224|f>>12,e[a++]=128|f>>6&63,e[a++]=128|f&63}else{if(a+3>=d)break;e[a++]=240|f>>18,e[a++]=128|f>>12&63,e[a++]=128|f>>6&63,e[a++]=128|f&63,p++}}return e[a]=0,a-u},It=(t,e,a)=>Br(t,O,e,a),Jt=t=>{for(var e=0,a=0;a=55296&&s<=57343?(e+=4,++a):e+=3}return e},Dr=(t,e)=>{e=ee(e),le(t,{name:e,fromWireType(a){var s=X[a>>2],u=a+4,d;return d=de(u,s,!0),ue(a),d},toWireType(a,s){s instanceof ArrayBuffer&&(s=new Uint8Array(s));var u,d=typeof s=="string";d||ArrayBuffer.isView(s)&&s.BYTES_PER_ELEMENT==1||q("Cannot pass non-string to std::string"),d?u=Jt(s):u=s.length;var p=ut(4+u+1),f=p+4;return X[p>>2]=u,d?It(s,f,u+1):O.set(s,f),a!==null&&a.push(ue,p),p},readValueFromPointer:he,destructorFunction(a){ue(a)}})},St=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,Gr=(t,e,a)=>{var s=t>>1,u=E($e,s,e/2,a);if(u-s>16&&St)return St.decode($e.subarray(s,u));for(var d="",p=s;p{if(a<2)return 0;a-=2;for(var s=e,u=a>1]=p,e+=2}return Se[e>>1]=0,e-s},Wr=t=>t.length*2,Ar=(t,e,a)=>{for(var s="",u=t>>2,d=0;!(d>=e/4);d++){var p=X[u+d];if(!p&&!a)break;s+=String.fromCodePoint(p)}return s},en=(t,e,a=2147483647)=>{if(a<4)return 0;for(var s=e,u=s+a-4,d=0;d65535&&d++,Ke[e>>2]=p,e+=4,e+4>u)break}return Ke[e>>2]=0,e-s},tn=t=>{for(var e=0,a=0;a65535&&a++,e+=4}return e},rn=(t,e,a)=>{a=ee(a);var s,u,d;e===2?(s=Gr,u=jr,d=Wr):(s=Ar,u=en,d=tn),le(t,{name:a,fromWireType:p=>{var f=X[p>>2],m=s(p+4,f*e,!0);return ue(p),m},toWireType:(p,f)=>{typeof f!="string"&&q(`Cannot pass non-string to C++ string type ${a}`);var m=d(f),x=ut(4+m+e);return X[x>>2]=m/e,u(f,x+4,m+e),p!==null&&p.push(ue,x),x},readValueFromPointer:he,destructorFunction(p){ue(p)}})},nn=(t,e,a,s,u,d)=>{we[t]={name:ee(e),rawConstructor:se(a,s),rawDestructor:se(u,d),fields:[]}},an=(t,e,a,s,u,d,p,f,m,x)=>{we[t].fields.push({fieldName:ee(e),getterReturnType:a,getter:se(s,u),getterContext:d,setterArgumentType:p,setter:se(f,m),setterContext:x})},on=(t,e)=>{e=ee(e),le(t,{isVoid:!0,name:e,fromWireType:()=>{},toWireType:(a,s)=>{}})},sn=()=>{},Qe={},cn=t=>{if(t instanceof B||t=="unwind")return v;i(1,t)},ln=t=>{v=t,i(t,new B(t))},un=t=>{if(!g)try{return t()}catch(e){cn(e)}},dn=()=>performance.now(),pn=(t,e)=>{if(Qe[t]&&(clearTimeout(Qe[t].id),delete Qe[t]),!e)return 0;var a=setTimeout(()=>{delete Qe[t],un(()=>Ot(t,dn()))},e);return Qe[t]={id:a,timeout_ms:e},0},fn=()=>2147483648,hn=(t,e)=>Math.ceil(t/e)*e,gn=t=>{var e=Ze.buffer.byteLength,a=(t-e+65535)/65536|0;try{return Ze.grow(a),F(),1}catch{}},wn=t=>{var e=O.length;t>>>=0;var a=fn();if(t>a)return!1;for(var s=1;s<=4;s*=2){var u=e*(1+.2/s);u=Math.min(u,t+100663296);var d=Math.min(a,hn(Math.max(t,u),65536)),p=gn(d);if(p)return!0}return!1},mn=t=>52;function vn(t,e,a,s){return 70}var yn=[null,[],[]],bn=(t,e)=>{var a=yn[t];!e||e===10?((t===1?o:l)(V(a)),a.length=0):a.push(e)},Un=(t,e,a,s)=>{for(var u=0,d=0;d>2],f=X[e+4>>2];e+=8;for(var m=0;m>2]=u,0};vr(),Tr(),n.wasmBinary&&(h=n.wasmBinary),n.UTF8ToString=de,n.stringToUTF8=It,n.lengthBytesUTF8=Jt;var Kt,ut,ue,Ot,Xt,zt,Vt,Zt,Yt,Bt,Dt,Ze,Gt;function Cn(t){Kt=t.B,ut=n._malloc=t.C,ue=n._free=t.D,Ot=t.F,Xt=t.G,zt=t.H,Vt=t.I,Zt=t.J,Yt=t.K,Bt=t.L,Ze=t.z,Gt=t.E,Dt=t.M}var En={t:Ee,x:Je,f:tt,i:hr,l:gr,o:Lr,b:Ir,n:Jr,d:Sr,y:Xr,h:Vr,c:Zr,a:Yr,k:Dr,g:rn,j:nn,e:an,m:on,w:sn,p:pn,u:wn,s:mn,q:vn,r:Un,v:ln};async function Mn(){!g&&y()}var Fe;return Fe=await b(),await Mn(),n}var Wn=jn,An=new Int8Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,90,63,64,65,66,-1,67,68,69,70,71,-1,72,73,52,53,54,55,56,57,58,59,60,61,74,75,76,77,78,79,80,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,81,-1,82,83,84,85,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,86,87,88,89,-1]);function ea(r){let n=new Uint8Array(170930),i=0,c=0,o=0,l=-1;for(let h=0,g=r.length;h127)continue;let k=An[v];if(!(k<0))if(l<0)l=k;else{l+=k*91,c|=l<88?13:14;do n[i++]=c,c>>>=8,o-=8;while(o>7);l=-1}}return l>=0&&(n[i++]=(c|l<""})}function na(){yt=void 0}var aa=class{_module;constructor(r){this._module=r}malloc(r){let n=this._module._malloc(r);return{ptr:n,size:r,dispose:()=>this.free({ptr:n,size:r,dispose:()=>{}})}}free(r){this._module._free(r.ptr)}dataToHeap(r){let n=this.malloc(r.byteLength);return this._module.HEAPU8.set(r,n.ptr),n}heapView(r){return this._module.HEAPU8.subarray(r.ptr,r.ptr+r.size)}heapToUint8Array(r){return new Uint8Array([...this.heapView(r)])}lengthBytes(r){return this._module.lengthBytesUTF8(r)}stringToHeap(r){let n=this.lengthBytes(r)+1,i=this._module._malloc(n);return this._module.stringToUTF8(r,i,n),{ptr:i,size:n,dispose:()=>this.free({ptr:i,size:n,dispose:()=>{}})}}heapToString(r){return this._module.UTF8ToString(r.ptr,r.size)}hasFilesystem(){let r=this._module;return r.FS_createPath!==void 0&&r.FS_createDataFile!==void 0&&r.FS_preloadFile!==void 0&&r.FS_unlink!==void 0}createPath(r,n=!0,i=!0){return this._module.FS_createPath("/",r,n,i)}createDataFile(r,n,i=!0,c=!0,o=!0){return this._module.FS_createDataFile("/",r,n,i,c,o)}preloadFile(r,n,i=!0,c=!0,o=!1,l=!0,h=!1){return this._module.FS_preloadFile("/",r,n,i,c,o,l,h)}unlink(r){return this._module.FS_unlink(r)}},Ne,ia=4294967295;function Te(r,n){if(!Number.isInteger(r)||r<0||r>ia)throw new Error(`${n} length ${r} is outside the WASM32-safe range`)}function ht(r){if(r.length===0)return new Uint8Array(0);if(r.length===1)return r[0];let n=0;for(let o of r)n+=o.length;let i=new Uint8Array(n),c=0;for(let o of r)i.set(o,c),c+=o.length;return i}var oa=class cr{_mainModule;_zstdClass;_zstd;_compressionLevel;_decompressFrameCompleted=!1;_decompressRemaining=0;_decompressSawInput=!1;constructor(n){this._mainModule=new aa(n),this._zstdClass=n.zstd,this._zstd=new this._zstdClass,this._compressionLevel=this._zstdClass.defaultCLevel()}static load(){return Ne||(Ne=ra().then(n=>new cr(n))),Ne}static unload(){na(),Ne?.then(n=>{n?._zstd?.delete()}),Ne=void 0}copyHeap(n){return this._mainModule.heapView(n).slice()}mallocChecked(n,i){Te(n,i);let c=this._mainModule.malloc(n);if(!c.ptr)throw this._mainModule.free(c),new Error(`Failed to allocate ${n} bytes for ${i}`);return c}throwStreamError(n,i){throw new Error(`${n} failed: ${i.errorName||"unknown error"}`)}ensureStreamOk(n,i){i.error&&this.throwStreamError(n,i)}version(){return this._zstdClass.version()}reset(){let n=this._zstd.reset();this.ensureStreamOk("reset",n),this._decompressFrameCompleted=!1,this._decompressRemaining=0,this._decompressSawInput=!1}resetCompression(n){n!==void 0&&(this._compressionLevel=n);let i=this._zstd.resetCompression(this._compressionLevel);this.ensureStreamOk("resetCompression",i)}resetDecompression(){let n=this._zstd.resetDecompression();this.ensureStreamOk("resetDecompression",n),this._decompressFrameCompleted=!1,this._decompressRemaining=0,this._decompressSawInput=!1}setCompressionLevel(n){let i=this._zstd.setCompressionLevel(n);this.ensureStreamOk("setCompressionLevel",i),this._compressionLevel=n}compress(n,i=this.defaultCLevel()){Te(n.length,"compress input");let c=this._mainModule.dataToHeap(n);try{if(!c.ptr&&n.length>0)throw new Error("Failed to allocate compress input buffer");let o=this._zstdClass.compressBound(n.length),l=this.mallocChecked(o,"compress output");try{if(l.size=this._zstdClass.compress(l.ptr,o,c.ptr,c.size,i),this._zstdClass.isError(l.size))throw new Error(`compress failed: ${this._zstdClass.getErrorName(l.size)}`);return this.copyHeap(l)}finally{this._mainModule.free(l)}}finally{this._mainModule.free(c)}}compressChunk(n){if(Te(n.length,"compressChunk input"),n.length===0)return new Uint8Array(0);let i=this._mainModule.dataToHeap(n);try{if(!i.ptr)throw new Error("Failed to allocate compressChunk input buffer");let c=this._zstdClass.CStreamOutSize(),o=[],l=0;for(;l0&&(h.size=g.produced,o.push(this.copyHeap(h)))}finally{this._mainModule.free(h)}}return ht(o)}finally{this._mainModule.free(i)}}compressEnd(){let n=this._zstdClass.CStreamOutSize(),i=[],c=1;for(;c!==0;){let o=this.mallocChecked(n,"compressEnd output");try{let l=this._zstd.compressEnd(o.ptr,n);if(this.ensureStreamOk("compressEnd",l),l.produced===0&&l.remaining!==0)throw new Error("compressEnd failed: no progress while finishing stream");c=l.remaining,l.produced>0&&(o.size=l.produced,i.push(this.copyHeap(o)))}finally{this._mainModule.free(o)}}return ht(i)}frameContentSize(n){return this._zstdClass.getFrameContentSize(n.ptr,n.size)}decompress(n){Te(n.length,"decompress input");let i=this._mainModule.dataToHeap(n);try{if(!i.ptr&&n.length>0)throw new Error("Failed to allocate decompress input buffer");let c=this.frameContentSize(i);if(c.error)throw new Error(`Failed to get frame content size: ${c.errorName}`);let o=c.known;if(o){let l=this._zstdClass.findFrameCompressedSize(i.ptr,i.size);if(this._zstdClass.isError(l))throw new Error(`Failed to find frame compressed size: ${this._zstdClass.getErrorName(l)}`);l0?i.ptr+l:0,C=this._zstd.decompressChunk(g.ptr,c,k,v);if(this.ensureStreamOk("decompressChunk",C),C.consumed===0&&C.produced===0){if(v===0){C.remaining>0&&(this._decompressRemaining=C.remaining);break}throw new Error("decompressChunk failed: no progress while consuming input")}l+=C.consumed,h=C.produced===c&&C.remaining!==0,C.produced>0&&(g.size=C.produced,o.push(this.copyHeap(g))),C.remaining===0?(this._decompressFrameCompleted=!0,this._decompressRemaining=0):this._decompressRemaining=C.remaining}finally{this._mainModule.free(g)}}return ht(o)}finally{this._mainModule.free(i)}}decompressEnd(){if(!this._decompressSawInput)throw new Error("decompressEnd failed: empty compressed input is not a completed frame");if(!this._decompressFrameCompleted||this._decompressRemaining!==0)throw new Error("decompressEnd failed: truncated Zstandard input")}defaultCLevel(){return this._zstdClass.defaultCLevel()}minCLevel(){return this._zstdClass.minCLevel()}maxCLevel(){return this._zstdClass.maxCLevel()}};let gt=null;function sa(){return gt||(gt=oa.load()),gt}function ca(r){return r.length>=4&&r[0]===40&&r[1]===181&&r[2]===47&&r[3]===253}function bt(r){const n="SQLite format 3\0";if(r.length/g,">").replace(/"/g,""").replace(/'/g,"'")}function tr(r,n,i){const c=r.tagsList.map(h=>`${ye(h)}`).join(""),o=[...r.more.entries()].map(([h,g])=>{const v=i.get(h);return`
${v?`${ye(v.name)} #${h}`:`Поле #${h}`}
${ye(g)}
`}).join(""),l=o?`
Дополнительно (${r.more.size})
${o}
`:"";return`
+
${ye(r.key)}
`+(n?`${ye(n)}`:"")+`
${ye(r.value)}
`+(c?`
${c}
`:"")+l+"
"}function ua(r,n){r.innerHTML=` +
+

🏠 Главная

+

Локальное сохранение и повторения — всё работает офлайн.

+
Проверка локальной базы…
+
+ +
+ +
+
+

📚 Слова

+
+ + +
+

+
База ещё не проверена.
+
+
+
+ `;const i=r.querySelector("#home-db-status"),c=r.querySelector("#btn-go-sync"),o=r.querySelector("#home-actions"),l=r.querySelector("#btn-start"),h=r.querySelector("#words-search"),g=r.querySelector("#words-group"),v=r.querySelector("#words-count"),k=r.querySelector("#words-status"),C=r.querySelector("#words-list"),M=r.querySelector("#words-more");c.addEventListener("click",()=>n.goSync()),l.addEventListener("click",()=>{i.textContent="Экран повторений — следующий шаг."});let F=!1,y=new Map,N=new Map,w=0,$=[],D=0,J=!1,H=0,te=0;function K(){const T=g.value;if(T==="")return{search:h.value.trim(),groupId:null};const _=Number(T);return{search:h.value.trim(),groupId:Number.isFinite(_)?_:null}}function b(){M.hidden=!(F&&$.lengthtr(T,y.get(T.group_id),N)).join(""),v.textContent=w>0?`Показано ${$.length} из ${w}`:"",b()}function S(T){k.textContent=T,k.hidden=T===""}async function G(){if(!F||J)return;J=!0;const T=++H,_=K();M.disabled=!0,$.length===0&&S("Загрузка слов…");try{const[P,U]=await Promise.all([Nn({search:_.search,groupId:_.groupId??void 0}),Wt({search:_.search,groupId:_.groupId??void 0,limit:er,offset:0})]);if(T!==H)return;w=P,$=U,D=U.length,B(),S(U.length===0?"По этому запросу слов нет.":""),U.length===0&&w===0&&(v.textContent="Слов в базе пока нет.")}catch(P){if(T!==H)return;S(`Не удалось загрузить слова: ${P instanceof Error?P.message:String(P)}`)}finally{T===H&&(J=!1,M.disabled=!1,b())}}async function j(){if(!F||J||$.length>=w)return;J=!0;const T=++H,_=K();M.disabled=!0,M.textContent="Загрузка…";try{const P=await Wt({search:_.search,groupId:_.groupId??void 0,limit:er,offset:D});if(T!==H)return;$=$.concat(P),D+=P.length,C.insertAdjacentHTML("beforeend",P.map(U=>tr(U,y.get(U.group_id),N)).join("")),v.textContent=`Показано ${$.length} из ${w}`,b()}catch(P){if(T!==H)return;S(`Не удалось догрузить: ${P instanceof Error?P.message:String(P)}`)}finally{T===H&&(J=!1,M.disabled=!1,b())}}h.addEventListener("input",()=>{window.clearTimeout(te),te=window.setTimeout(()=>{G()},300)}),h.addEventListener("keydown",T=>{T.key==="Enter"&&(window.clearTimeout(te),G())}),g.addEventListener("change",()=>{G()}),M.addEventListener("click",()=>{j()}),(async()=>{if(!await Ge()){i.textContent="Локальной базы нет. Скачай сохранение на странице «Синхронизация».",o.hidden=!0,S("Нет локальной базы — скачай сохранение на странице «Синхронизация»."),v.textContent="";return}try{const _=await Hn(),P=bt(_);if(i.textContent=P?`Локальная база на месте: ${(_.length/1024).toFixed(1)} КБ, сигнатура SQLite OK.`:"Файл в OPFS есть, но это не похоже на SQLite — перекачай сохранение.",o.hidden=!P,!P){S("Файл в OPFS не похож на SQLite — перекачай сохранение.");return}try{const[U,E]=await Promise.all([Tn(),Pn()]),V=U;y=new Map(V.map(O=>[O.id,O.name])),N=new Map(E.map(O=>[O.id,O])),g.innerHTML=''+V.map(O=>``).join(""),F=!0,await G(),g.options[0].textContent=`Все группы (${w})`}catch(U){S(`БД есть, но слова не прочитались: ${U instanceof Error?U.message:String(U)}`)}}catch(_){i.textContent=`Не удалось прочитать базу: ${_ instanceof Error?_.message:String(_)}`,o.hidden=!0}})()}const rr=24,da=/^[A-Za-z0-9]{24}$/,lr="japlearn_sync_token";function nr(r){return r.trim().replace(/\s+/g,"")}function ve(r){return da.test(r)}function pa(){try{return localStorage.getItem(lr)??""}catch{return""}}function wt(r){try{localStorage.setItem(lr,r)}catch{}}const ur="https://learning.micialware.ru";function fa(r,n=ur){return`${n.replace(/\/+$/,"")}/download/${encodeURIComponent(r)}`}async function ha(r,n,i=ur){const c=fa(r,i);let o;try{o=await fetch(c,{method:"GET",...n})}catch(h){throw new Error(`Нет связи с сервером: ${h instanceof Error?h.message:String(h)}`)}if(!o.ok)throw o.status===404?new Error("Сохранение не найдено (404). Проверь токен."):new Error(`Сервер ответил ${o.status} ${o.statusText}`);const l=await o.arrayBuffer();if(l.byteLength===0)throw new Error("Сервер вернул пустой файл");return new Uint8Array(l)}function ga(r){r.innerHTML=` +
+

📡 Синхронизация

+

Токен сохранения — 24 символа: латинские буквы и цифры.

+ + + +
+ + 0 / 24 +
+ +
+ + +
+ +

Введите токен из 24 символов

+
+ `;const n=r.querySelector("#token-input"),i=r.querySelector("#token-error"),c=r.querySelector("#token-counter"),o=r.querySelector("#btn-download"),l=r.querySelector("#btn-upload"),h=r.querySelector("#status");function g(y){h.textContent=y,console.log(`[JapLearn] ${y}`)}function v(){return nr(n.value)}function k(y){o.disabled=y||!ve(v()),l.disabled=!0,n.disabled=y,y||Ge().then(N=>{!n.disabled&&ve(v())&&(l.disabled=!N)})}function C(){const y=v(),N=y.length;c.textContent=`${N} / ${rr}`;const w=ve(y),$=N===0;n.classList.toggle("invalid",!$&&!w),n.setAttribute("aria-invalid",String(!$&&!w)),$?i.textContent="":N!==rr?i.textContent=`Нужно 24 символа, сейчас ${N}`:i.textContent=w?"":"Только латинские буквы и цифры",o.disabled=!w,w?Ge().then(D=>{n.disabled||(l.disabled=!D)}):l.disabled=!0}async function M(){const y=v();if(ve(y)){wt(y),k(!0),g("Скачивание сохранения...");try{const N=await ha(y);g(`Скачано ${(N.length/1024).toFixed(1)} КБ, распаковка...`);const w=await la(N);g(`Распаковано ${(w.length/1024).toFixed(1)} КБ, сохранение в OPFS...`),await _n(w),g(`Готово: база ${(w.length/1024).toFixed(1)} КБ сохранена локально (OPFS).`)}catch(N){g(`Ошибка скачивания: ${N instanceof Error?N.message:String(N)}`)}finally{k(!1),C()}}}n.addEventListener("input",()=>{C()}),n.addEventListener("change",()=>{const y=v();n.value=y,ve(y)&&(wt(y),g("Токен сохранён локально. Можно скачивать или выгружать.")),C()}),o.addEventListener("click",()=>{M()}),l.addEventListener("click",()=>{const y=v();ve(y)&&(wt(y),g("Выгрузка — следующий шаг (POST /upload/stream/{id})."))});const F=pa();F&&(n.value=F),C(),ve(nr(F))&&Ge().then(y=>{g(y?"Токен восстановлен, локальная база на месте.":"Токен восстановлен. Нажми «Скачать», чтобы получить базу."),C()})}const wa={home:"Главная",sync:"Синхронизация"};function Le(r){const n=document.getElementById(r);if(!n)throw new Error(`[JapLearn] Не найден элемент #${r}`);return n}const dr=Le("burger-btn"),We=Le("drawer"),pr=Le("drawer-overlay"),ma=Le("page-title"),ar=Le("page");let Et=!1;function Re(r){Et=r,We.classList.toggle("open",r),pr.hidden=!r,dr.setAttribute("aria-expanded",String(r)),We.setAttribute("aria-hidden",String(!r)),document.body.classList.toggle("drawer-open",r)}function va(r){We.querySelectorAll(".drawer-btn").forEach(n=>{n.classList.toggle("active",n.dataset.page===r)})}function Mt(r){ma.textContent=wa[r],va(r),r==="home"?ua(ar,{goSync:()=>Mt("sync")}):ga(ar)}dr.addEventListener("click",()=>{Re(!Et)});pr.addEventListener("click",()=>{Re(!1)});document.addEventListener("keydown",r=>{r.key==="Escape"&&Et&&Re(!1)});We.querySelectorAll(".drawer-btn").forEach(r=>{r.addEventListener("click",()=>{const n=r.dataset.page;(n==="home"||n==="sync")&&Mt(n),Re(!1)})});await kn();Re(!1);Mt("home");console.log("[JapLearn] crossOriginIsolated =",window.crossOriginIsolated); diff --git a/dist/assets/index-DhXfM6jc.css b/dist/assets/index-CbQBYl48.css similarity index 65% rename from dist/assets/index-DhXfM6jc.css rename to dist/assets/index-CbQBYl48.css index acf7f31..0cd98fa 100644 --- a/dist/assets/index-DhXfM6jc.css +++ b/dist/assets/index-CbQBYl48.css @@ -1 +1 @@ -:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;color:#1e1b2e;background:#f4f1fa}*{box-sizing:border-box}body{margin:0;min-height:100dvh;display:flex;justify-content:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#app{width:100%;max-width:480px;padding:24px 16px 32px;display:flex;flex-direction:column;gap:16px}.app-header h1{margin:0;font-size:1.75rem;letter-spacing:.02em}.app-subtitle{margin:4px 0 0;color:#6d6390}.top-bar{display:flex;align-items:center;gap:12px}.burger-btn{width:44px;height:44px;border:2px solid #d9d2f0;border-radius:12px;background:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;touch-action:manipulation;flex:none}.burger-btn span{display:block;width:20px;height:2px;border-radius:2px;background:#4c446b}.burger-btn[aria-expanded=true]{border-color:#7c3aed}.top-bar-title h1{margin:0;font-size:1.4rem;line-height:1.2}.top-bar-title p{margin:0;font-size:.9rem;color:#6d6390}.top-bar-spacer{flex:1}.app-content{display:flex;flex-direction:column;gap:16px}.drawer-overlay{position:fixed;inset:0;background:#1e1b2e73;z-index:40}.drawer-overlay[hidden]{display:none}.drawer{position:fixed;top:0;left:0;bottom:0;width:min(300px,85vw);background:#fff;z-index:50;transform:translate(-105%);transition:transform .22s ease;display:flex;flex-direction:column;gap:8px;padding:20px 14px;box-shadow:8px 0 32px #1e1b2e2e}.drawer.open{transform:translate(0)}.drawer-header{padding:4px 8px 14px;border-bottom:1px solid #eee9fb;margin-bottom:8px}.drawer-logo{font-size:1.3rem;font-weight:800;color:#7c3aed}.drawer-subtitle{font-size:.9rem;color:#6d6390}.drawer-btn{border:none;background:transparent;text-align:left;font-size:1.05rem;font-weight:600;color:#1e1b2e;padding:13px 12px;border-radius:12px;cursor:pointer;touch-action:manipulation}.drawer-btn.active{background:#f1eafe;color:#6d28d9}.drawer-btn:active{background:#e9defc}body.drawer-open{overflow:hidden}.card{background:#fff;border-radius:16px;padding:20px 16px;box-shadow:0 8px 24px #7c3aed1f;display:flex;flex-direction:column;gap:12px}.card-title{margin:0;font-size:1.25rem}.card-hint{margin:0;color:#6d6390;font-size:.95rem}.field-label{font-weight:600;font-size:.95rem}.token-input{width:100%;padding:14px 12px;font-size:1.05rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;border:2px solid #d9d2f0;border-radius:12px;outline:none}.token-input:focus{border-color:#7c3aed}.token-input.invalid{border-color:#dc2626;background:#fef2f2}.token-meta{display:flex;justify-content:space-between;align-items:baseline;gap:8px;min-height:1.4em}.token-error{color:#dc2626;font-size:.9rem}.token-counter{color:#6d6390;font-variant-numeric:tabular-nums;white-space:nowrap}.btn-row{display:flex;gap:12px}.btn{flex:1;padding:14px 12px;font-size:1rem;font-weight:600;border-radius:12px;border:2px solid #7c3aed;background:#fff;color:#7c3aed;cursor:pointer;touch-action:manipulation}.btn-primary{background:#7c3aed;color:#fff}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:not(:disabled):active{transform:scale(.98)}.status-bar{margin:0;padding:10px 12px;border-radius:10px;background:#f4f1fa;color:#4c446b;font-size:.95rem;word-break:break-word} +:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;color:#1e1b2e;background:#f4f1fa}*{box-sizing:border-box}body{margin:0;min-height:100dvh;display:flex;justify-content:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#app{width:100%;max-width:480px;padding:24px 16px 32px;display:flex;flex-direction:column;gap:16px}.app-header h1{margin:0;font-size:1.75rem;letter-spacing:.02em}.app-subtitle{margin:4px 0 0;color:#6d6390}.top-bar{display:flex;align-items:center;gap:12px}.burger-btn{width:44px;height:44px;border:2px solid #d9d2f0;border-radius:12px;background:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;touch-action:manipulation;flex:none}.burger-btn span{display:block;width:20px;height:2px;border-radius:2px;background:#4c446b}.burger-btn[aria-expanded=true]{border-color:#7c3aed}.top-bar-title h1{margin:0;font-size:1.4rem;line-height:1.2}.top-bar-title p{margin:0;font-size:.9rem;color:#6d6390}.top-bar-spacer{flex:1}.app-content{display:flex;flex-direction:column;gap:16px}.drawer-overlay{position:fixed;inset:0;background:#1e1b2e73;z-index:40}.drawer-overlay[hidden]{display:none}.drawer{position:fixed;top:0;left:0;bottom:0;width:min(300px,85vw);background:#fff;z-index:50;transform:translate(-105%);transition:transform .22s ease;display:flex;flex-direction:column;gap:8px;padding:20px 14px;box-shadow:8px 0 32px #1e1b2e2e}.drawer.open{transform:translate(0)}.drawer-header{padding:4px 8px 14px;border-bottom:1px solid #eee9fb;margin-bottom:8px}.drawer-logo{font-size:1.3rem;font-weight:800;color:#7c3aed}.drawer-subtitle{font-size:.9rem;color:#6d6390}.drawer-btn{border:none;background:transparent;text-align:left;font-size:1.05rem;font-weight:600;color:#1e1b2e;padding:13px 12px;border-radius:12px;cursor:pointer;touch-action:manipulation}.drawer-btn.active{background:#f1eafe;color:#6d28d9}.drawer-btn:active{background:#e9defc}body.drawer-open{overflow:hidden}.card{background:#fff;border-radius:16px;padding:20px 16px;box-shadow:0 8px 24px #7c3aed1f;display:flex;flex-direction:column;gap:12px}.card-title{margin:0;font-size:1.25rem}.card-hint{margin:0;color:#6d6390;font-size:.95rem}.field-label{font-weight:600;font-size:.95rem}.token-input{width:100%;padding:14px 12px;font-size:1.05rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;border:2px solid #d9d2f0;border-radius:12px;outline:none}.token-input:focus{border-color:#7c3aed}.token-input.invalid{border-color:#dc2626;background:#fef2f2}.token-meta{display:flex;justify-content:space-between;align-items:baseline;gap:8px;min-height:1.4em}.token-error{color:#dc2626;font-size:.9rem}.token-counter{color:#6d6390;font-variant-numeric:tabular-nums;white-space:nowrap}.btn-row{display:flex;gap:12px}.btn{flex:1;padding:14px 12px;font-size:1rem;font-weight:600;border-radius:12px;border:2px solid #7c3aed;background:#fff;color:#7c3aed;cursor:pointer;touch-action:manipulation}.btn-primary{background:#7c3aed;color:#fff}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:not(:disabled):active{transform:scale(.98)}.status-bar{margin:0;padding:10px 12px;border-radius:10px;background:#f4f1fa;color:#4c446b;font-size:.95rem;word-break:break-word}.status-bar[hidden]{display:none}.words-toolbar{display:flex;gap:8px}.words-search{flex:1;min-width:0;padding:12px;font-size:1rem;border:2px solid #d9d2f0;border-radius:12px;outline:none;background:#fff;color:inherit}.words-search:focus{border-color:#7c3aed}.words-group{flex:none;max-width:42%;padding:12px 8px;font-size:.95rem;font-weight:600;color:#4c446b;border:2px solid #d9d2f0;border-radius:12px;background:#fff;outline:none}.words-group:focus{border-color:#7c3aed}.words-list{display:flex;flex-direction:column;gap:10px}.word-card{border:1px solid #eee9fb;border-radius:12px;padding:12px;background:#fbfaff;display:flex;flex-direction:column;gap:8px}.word-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.word-key{font-size:1.2rem;font-weight:700;line-height:1.3;word-break:break-word}.word-value{font-size:1rem;color:#4c446b;word-break:break-word}.word-group{flex:none;font-size:.75rem;font-weight:700;color:#6d28d9;background:#f1eafe;border-radius:999px;padding:4px 10px;white-space:nowrap}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.tag-chip{font-size:.8rem;font-weight:600;color:#5b21b6;background:#ede9fe;border-radius:999px;padding:3px 10px;word-break:break-word}.word-more{font-size:.9rem;color:#4c446b}.word-more summary{cursor:pointer;font-weight:600;color:#6d28d9;touch-action:manipulation}.word-more-list{margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.word-more-row{background:#fff;border:1px solid #eee9fb;border-radius:8px;padding:8px 10px}.word-more-row dt{font-size:.8rem;font-weight:700;color:#6d6390}.word-more-row dd{margin:2px 0 0;word-break:break-word}.word-more-id{font-weight:400;opacity:.7} diff --git a/dist/assets/sqlite3-DBpDb1lf.wasm b/dist/assets/sqlite3-DBpDb1lf.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f001d7ada5b94f341ac427da0b655c7703a39716 GIT binary patch literal 856447 zcmce<3!EHPnfHIHs;j%FZ&TAVfsg^IZleZC01+dCtErIyB6wMEtna=XLNbxeB$;F~ z;o^oQTtq~~s32Dn5eQ&{fOy9>BCDvlqN1XrMn%O{7Zg-fl>hhloa*k$fWCg-&;Rod z%v9C6JmAPjHk0e$xph-%u^{KJJ8aUY2*afd!^6bT zCN&6D)7R;t5^DyY8#NHwVXEJTD18)kHsc>R=Y?WRh8bO$7eI6YC!sltm)0C@hHcD2GQn? zY8P$fvJvw2w@8`q9vZjcjbW=lw1+ao%<4R8#_f&32{(!nUKXH`OJUOqwH}^^SGY;7 zMOKbzeR>1>l{Kb*1Qcz^`79QACQ>dbfJ@#^tm}3WgQ*ieCKs`JBQo1)Iwx=uZK;D( z{LoUB;nk(5N26;_9$d0y{b}o$EnT&0$%>`RmW{4ozjVqK_c&$g`jt!8uUWcw{Yev3 zOV&<~p1gAOl;@OJEMKy0)x`Qy7g*oX)$5l{u3S4cx@O7prBkCz)=Zq@o~4>}$+W6B zj!vm&$;$OhR!^*%n3`C#a+&K_v*wdq`Tof?td^a$dSbbAYTw^0o>toIm9AKJ(!?oi zo_nwh)qG%j#hR&A3lH(-)1XhR9bF@WXFy*$v21FU3;zxqPMKUeHTpLhRf18Iqf3{2 zz|-+qKecoUJdB)acuX%I>Y=@6^pq8<>Yz9c(yC6Ezk#GsSby4@WnNUXdN5Z^O>S7T z3~_-*Rdi2715qtI1!n&Zm;QR*~Qdwom>J4jFFI}qw)9dn*)%oLr zs-MPF$z|2bHRBzgPE)GM)eP$yHchEEtjU`jHq#7dgHTxW_Y9_v5LPUgq&%~P${y2{ zesWZtTyoOr(zSlr;_A`W6O*Tf!Ip5#mN5G0&}~EYVh|Qffs5lPh=L@}e+of=J+22) zzl(x-^Y+@yRjY+UQhi$B3RT(`vVf;Jh-L-+I9DtdV&}pVcPt<;x+sb?5+I@|nXNJv zQ5_b8fYCrdj-ogc9S}?7P~d~7JuOHQ-Pli5F4U;of9~9ZbMeqn6qUhjDaHj)JtKwvkkH@X zuknh>P!d2BLW_d1EFKOXeDIv-hNS}hE{6Po40t|QG;?37lu8vEb5jh1IdlxbD~cck z5)VoCf?O9K#lX}A@Dm8dqbqJ$cP^;L;d7$65LRHuVB!kpvPN)05+>n55&jolr64vvc zH!n_vS3HYnknQW+qgn+;9>Rju1$|mrEJkjR*`e!~K=g~Mp*RwU3;M#og1RI;z|X#7 z9}i*Br;Bd(n2p%gDJ;N3hZ<^}B5aZVxLNy^B9u6a(6)l~sSu);F^H%?O+rY7;D|9J zR|^HJAcpFXbRh1l4S__l6jh|%#W<)1Rax^Zjf;yE+Txl7ve(oxP!{Dy2ndPvYlh90Z@vrxL0+5D2UNjG)+ME zLt%i8C<{Dcsu1ijR7_fEVF55N4A8=`K>q<(sZ>JujG=<71bx&LW`$+A6eF>sD}-j^ z*gfin>O@d2P#{=EN&__*TPo}u)uM2~bQ8i{SVJwsnkxr!Sad<5ux}h=I#A3b;)Y_g zyFy&96(G1&d_GliVGiuaNQ-6Es#q?Daiv)-7YYMmljjJUfD+fja$HkKv^0WCQK=l! z7Y7j|Vpvlw1WllTn7mFg)B~iJ52c3`pj0djQpEoZCf87o%aSKH3xjIKru6(sfZQEZZM9Yk90%VbOVL-WzA;V#LR(Sz($1uoWZvZ$zaQ1Q!4|bfWv_Ij2^l& zvcdh8880jr_6^Fgx{}hj2CfxXkgJ9jJd|i37w9HMm&e18IadRT5>Vn=QY;i}R9dxj z15zZlgjJM*OY9CpqIBNV=O^G1I{&@j8!Y(@X(XU6`Rhbhtd)}B%4|@E<~V@ zCKQ-gFaX_6`;m_5M=r#EhUN}Mg^2%Y&2NMM_^Uto%Meb*r5Zj8L<@+PX8u2G@4Hy% zqWar^C|;ouxVf@lO&_3u0noX?d?j=cG9pLA3PlR_V`%b+0c#bwEGHmG%^hl2kvRhc z^TX1(gqn`1$5hK=a)5I2pJ1ak{Mt`t0MlVsqf=DEc~#tTHm4!%=mjlq%lo)e6`T^# z+9PnqS(VCcfk))969p?*i?cki5_*anpv6&X5VlwF&E=qkt77m-em#nYqp%uP6N>zg z)Yqm@X=J5OKh+>!AoJK~pJzaj)HbB@<%N9$R}B(oNLOW2SvadKcv4XGw~1~Kmxs%> zeVHg~Aqu7+tWYd`#Xj82IignO@++a8Z~>OoP+D{xS5ZQ{KszahvzelBF6E+Br&5jj z;()2-RsW0|trluQWlpgiRBAOG2vG)ZEGQP3O^VTAMGDSOh{uAN-WzejtcnZbBrH5* zpZL`|w-HfP+T*Ynz)y)#AxhO8q>zvcJFJSeh2eZA)aHDwa*tLE1EjTiI5_E_aCopl z5W4&2u!QN8j%2gu3RbMQ|0i&u+a$j?spCU)84z?2!g#!uQ|N2cLRU^+Q!qK z);Q#K&w6H~-Jr7u3L1O2g9Cg3g3=H^$S2el8ua%Ejm80(_cNb~w4-O%>u}@g^`}Ez ze;p;I(+eAoV#Bxudf?*R>w^Ws;fzkq=G+TQ1BIY`{EJ>x3;!u@W84IRVA(IlQLp%4 zUi{)WFl(a%Yu%%GVHWn;)^9zlS~}<8#{*Umtm{@UvDMzPsfo$;uAQu3w~Cd_bC)Pc z-LRfD!P6VN7rAE+bPATAm^X9J+H1*@m1~HWN0&`4S;2Z@Y9-5psih~b8Vy{%(|)z0 zTX#@*jFVTaU$TO3?yzR3$;ve=r&caqrFMsR2VTu`bYhu%ajny8#pLLyTQt;p6r9P? zH?CYiH9F}=_LyG0VNJKXkC-1g++)7Fl<>w~TWj80CjUjIgSW3SMArl2eGW$Q;mYEf6Cjf)g&keh>^gXQkd103%U%F;u*-1;+ym8dMZD!4i$%)k> z*quKU&*dA|y0^~+Z>F=ghdnB=Vb#>-h#EC24=q?QBJZ1Ho z30A4@q8^2L=bV3+gk3$H4%J=OLoF{CW8eFv)?RDh_av0pY*@9*UDabp4y41_tDjWU zk;S!70%dA=UAX5A^4>H$Ibn?19`5xws*w4PCslf`Et^ORyH$_6x6d9kJL!@VA| z7~IJcTq*Khj=J5}NkPBql-=oKr+(kcF2Z;0HWmrZOyTL0OTp}GTIrJwHs$y*y2zwjg= zCz|2i)gvr#o@>q*pVYyO!F{PGsZNK{Wvk3^?(XqhM&b4PD?NOyFb986*!5^uEcN?Z zkDyK&BL4aesHS?~=wW9~JBoMjjK-#1-wgNeXpnE*ar-&T?(3P}jC%8&-}#%}A#(Io z_r2bjJx%&SkFV>eR!><5a$?P@)7%exrePH;*N>jMcGc3AYuv6LO;*z>|4|RVm7lm_ z{b}yUJ+@k*4;kD8VYNdlSNGE%NT8wPqa-3J|5*<^Cb11`(Vx*J6RVcHU-YEgtMH2T z`=_c}KDu`5B=?6N1AD!sc0M!v*i(&0I@SHL=hSjfyJ0mm%d#b=PJf!lDKm$ulO`q! zPA1(o(e%0gjha`k+pTET%JETmL)7)-OE*kSEWs?v5E2`?8>4+XTw1nt&9c!|*xGIl zJ{Wa12G8aPpAKMq)SWoGLBMm}%~5v(T1Er|OUagRz^&X8&F+pjy+V=0hoi2CUOqXo zHt(|D-8QWp1G6{-m*hUugJlkfP!G4VV%5rJQ*LLEVynYIS1naE==U+i`0lzW}|(oJe~$#)&XG?1sK;j+dpf0+$A+oNrOPa+ekAI~c__*1l~YSjnwS`OkM@dl&t=8G z>#?0Mc-4tZmyP@OzwZ&-^G?>~4?Ujwuwi1w3I*j)^yE#s#S&WzT@yAxB2U_>JEJf? zSZ1x^&Mb7p{8cMK+?`eEt`D@$<<2g2J(!-wzzcdKh?J;BaQ0x^A7;wPW&x zA)_Ga-c{&&K_6>OO?YOycNe-|&=!mM5nHLSB3f$k$c4QIU7GViPdr)gF6&XD zZYXr^M@2q<+}>-)3~4Uorb1V?6lnot#UI+O7+<;ECe2$4J=Mcq(0XF6t#XO$mb+UE zT^Au|(yP^e*N3|h*JCbP882VCVuib{(DBus;-ynlOP8JGKKG;w&vEyKCsiyTHNW-6 zu5db_JUbyui;ORKh103dT?NS9-R1C;>TnN}tKGK?or$Q^VC~YWWhcpZS^a&5jvJa; z@4oXSd||QHRNsA49}Ly92kv`aW$Az;JXyVV>NIzMR|1_HzdN?XB=G$wp*eBln9>oN znpnO3;P26?e8UgB19zDt|2R42c6Eh2qehDV<1XuGRvLGHQt0@knbjvB?D_XVmr1=A z7Qg?rt2VugiM8(6Pf@&f-2G3XGl@@YO*r+?QdxZ7=`yPaY{htYmS69F z`xL#qX@N(&((UzLxdwkbMG~r`Of#!IGyd=taF?!KyXrKt`mv{wkX5=f<0o^u)6D}u zEAF_j-oUs!3%DWT`~esSEfxgIqLk8ON+N&I9E`zjCj(s-uV$qnSPxEl|xpV%ajR8~xX9AlPwNb;XkR$A#Mj>fYaFTwX(R$6VD0!pEz-jLR!W3F9~=Kz#avnY1dc z=r{Y_HF3wddZSV8u6+tDELwNh#rt+*5l_AFJ9X^@Vc@cpHmn(E&e%4SK$`TjTGz+j zsnG)vI-Q`0`NiEZbA+`M>sOw-TaypQ?cI?WKN%>;Egc_y+30DnSo2B~rrX|C)toqM zwS+nNq>1J0-Ayz3naB0!RX_9;GhT z!!u>rsaff6`x~9c+(%|gcijq>#8VUFL_!~(iHEY##&ksdv6+>oP6QRQfsfB5-zra@ zSh-xapO|SOovsTHS+aWRsqT}1ub$QTr)ElcT7SjX>koFf|D7hQS8@dARQKtbLg+ye zlK&C6cGnTB_GYdadBrMDaed|~F~xIoR)xH|+c^`BSHJ4m*I;&Jyl7;rrl$3Kdd}ZxuEvV>bI(IubojlvvyYP?Am8* zchtU9y{xvgc4y^R)n8ZNS$|jkt@ZQj->Y6(y|emI_2KGos!vqkT>C=puG&{?kJNr! z`)lp;`UCZ!)*r6_rvAJ7uEquZ@95v!|IYq*^}oCS!v2f;-_w6_|6lw6-2Zt0pZYKD zzpVfA{(Jl1HSnJU5A~m)d?>j&xh1(Z`EYVu^6TV(l82Iqliwt79k^)VJp&gH{4x1c z^5^97o?SItbee+y}qM@j0ep~$`^^ev+R{uo(ll4#4Z?Av4{vY+v)IVFlqyD-2o%R2$f4=^O`d#(A>tCt= zSN*H?d+J}Sf4%;V`n~mU*1uK%cKyEkck17*UqAG{`W=J!*RL7;e*GJR+XinO+%fo} z!H*Aa9lCDllY{RZ+BS5<;P$~=2H!pOgZdBayXrrx|G558{kQc;>W|j{P=Boc$NHb@ zf381X|4aR^^(X3E8fP@lY@F3NyYc46IgPh8&TYK4abDwXjq@9CZ(PuLN8??McQ-C- zT->;{ae3p4#(NuAHm+-IZ`{)OaO2~R&ou66+}Zeic72zXa8sWztn$s|1bLgyZ@K{zv};= z{)hV?>3_8Ucm2Qb|3m*Z1J@2*H?VEs`hgnN z!0!kCF!0#G9|!(4@aKWQ3_LM#X7jA(+0CuZcQxPLys-J6<|WNbo0m7QZeG*8wz;i& zeRD_irsjv5H#cu--rD?d^X}$Xn*Y`OYV)4v*P35%exrGB^PA0YHNV}wulb$kcbng9 z-rxLw^9Rjc%^x*?*8F+%!R9ZT|K0p$^H&~+ZET{)LK=#+g%m;KyzsuT zT@;97E2d-I4%9JLN3fh1-m8u_kafOKor?=8u9XlH?Jhh+DC zAa2uQBd15wYFgX4ExXf=txAhy2=eS}V)|0U!@ThNV60WF0-mdQEbf85Cnz$^YjHI# z>8=K4AhQdC9}tzLtcEsiEr71E(9jKYgo_^GT02;bW|Xp_?A*@48ux|zv$y`t*Pq(h z82FWR(~cPl#ufN2t8S>>2hDvw#3@$Gmhgg6W#2_j4{4WaTAtRlFs*4Jjh_sC?mrIw zi2oyW@hHd+f|U}X=?VBa-IkMQ8+!vxVOsU#I!fg0_piCCv{9lcs%=lHwiajv>mT&2 z_i{l}Vgtge6>g8PO|Ikon4HZ?hN(aQj+e8OjO5)RK2VarHnK(xQM*Uf`ByzjsICVFG-zOBNuC z>?5}ZarV%|LAC9Y0~nkN$L&^-W6oQRPuaz&w1fg za;W*fUGNs+=1yleG{aGeQQ}Nqpr_<{Y1HBbZ?y_CaP?xN3mD5&cK~P1pD%b@0vkxp zJ>a`3kl6DQ8}uZ#Tm@7vcTMjA;7|mLQH-lU<+cQy^Uz9}?9BBuz;obCW?F%e+b;XH zJ2G_=_9T~221ib6?tRbpAUOavk}g-D(VhJQX1^en$IfPDU-};&m?dSja~-GrgUxWm ziO;f9+KH3WM**1)dO#j=(x;ve+Fm`;_sh9BPplUMhdM%?oqP;sQc*d%K{m|Y-d@o2 z!Zi6^UX&y^<#%(vUcma$v%U&z1fIWAjYjY3#&Wg#VjqUs_;LghM0h#+2}VHzw#@t@ z%?m|ZXfz4jq17tySmc6kw?}cn z@RLizQegp4^V9GcF(M0&@{*>(G`XSty9tikrmIp)H+Tk$<+`I zdUt@zh7vj^Ht9u_&0CeL{7@Sr%-=+d#9EpCK(;klC%lr!B#I|404vtn8`ZQ4pSc@Gu*K zVsSsr2FK?+*N(C`9cvwAFokj1%Y`K|eh7b?21h9!yWb^O z4bI6P{#l&G$vJn&o72ErLO6BPz^uxW7b6V#S27WSkhe>4rLGA z7H2g??6TT%!vaAa?MDEPUc>k;H$uxjT+~VeiS|VC;^Sil=Tza+HrPULlV{%;2p` z!NauRpoN0Gt*BoRNR6Y}H5BkmfoHM&;NxcD0~lv@h0W%00zQcoT<>$MvU{##b%Q6t zsbpWjJdk5aM#Mr0u?WTV^WhugF)8evZ08LuWwUE{1<8Yh;`yC7#M$=lldHbL2x^Bm z0)MhEeBGxnT=Ei_j~dCbNs~jC=?DWgtEtG;%uhUUHD|pTuArTXH>|$SD3Ang_V2(6 z6pR}HzpPO}Km*BK@~K$}36qY(kj>BHZ~bJUL8{fJ$5WQIVk006G3d2R_ zi_tw26Vm+=_iEIZ=M2T94Bi1-zpoxn-7EP`16C2kZMj5gF|0&PWMW>g&ac%%M8v$b zGenRN;lZ^4<%i%oH5h(uTnP}u5%_u(zaUv@pBf#PKqi$epEq2+2jEr~{eT`+0nOyKs6=Nm~mhGghpa*}21t z_?4{Z3a6*;waipn@8jX~0U7xG>OBs!OzbI1^ zX4Hp;aYu5DSG{e# z`qP!j5)ux|A|kNc^Tm#`JJ{T6{e-Fe({lTl}O< zG=lY@WXvdx%A_OITGSg?`74K_;cO~aPcH>ARx;46V2qs(v%^_e9h%O@4)-29=xJT< z@kI&lJHLEv!T!_p%>O!dN>1L)%9I3SXbbRJS-7sfr$nXYh9YCv8U&rfShY2P3%&<$ z9!$2L#_geFtvL}w35iPW*95cxE>yE;i2FgSDi{H#U4<`d3nY9Wa2L1$MSF(U3RUW( zj{it$Kb{;%r(#+K7X3`}lKyW0Y0yP#0vyI7i~w%7xy6*%B5~2$i{E~Jhxr}icNV|1 z`AyP+R$sUX4;Jl2G(oF04Xgp}J*QFjM6eEHO2->>f~dhOQ2ODu)>@^(>tXp1J}1b2 z<&LV?Jw721N7k9LTNHp7Da3SkODmsQwTj}My=rA$`jw6hTEj{)&TkEo)XPG3S>Qsk zEDPZ|tO8A1fUsbhS2<|B6{XerkRE0SjSI)D?`4u%lvP&w)Q9Ii%bz?&1Kpt!6J-Y+ zSr0uvhGzt?tBegd_XNaX^73sAh}`-l`;aUj%hNt4iZmS8pKJ?1ryezoB8Qnfx*ZL- zk}ODPv-*NY6G+GyRKkTxh7tj}e9}^DHkmPTI2T>^Y^|I;Wk^S4N-p5tB@7TGxI`Ca zFoXqT0R7B%o%sC!g!*PfzJvOa9n^=(SBcB;6lTJ6QC;mYj8vvb5PD(|nG6flnC6fr z?K~C`WZ1W9gBCkKp+ZR{O0qqVtoL&%u40Tx2;-4~v-PY9-%4nt!%XYFaFYqL4|_$JqN$#lH|)z;ftSkcP}bCT9tFAniK@ci1kEy!b8cN?Lw%S~+1BkPwl>dV6Mb}{8e=aI@5$gFHS zy3tS<)>TJStbnZDWXjRf?tBiEX z3JYQc7UdL}wG^1!#&BAPIpJ7&1A1Ho;ZSSPzO*>*7p`e+DIVWFJ4lTYT%O-Sm05jS ziE$;1R^un5RpV;GhDREWw^*4Oq$p#~3g8?wJ(*Wh>G{|tVOEkuU{0Z9I~+@g7$=M5 zg{ah=l8cP{Sb^;xMVnSjiAK_&2vWq>8WUfF8YX2HH0y1PFSqbf{K zP)x1~zp+%aHte03(h?+noOVkJ*)tAvugoU&@t@rA=zE|1$q~OU4=s-hxnw_LX zj9mHLAp6YbW9ka6Bs33FS!CKfahI?wE6A`jl1iG+3mF<=pkzfhhnjOu{u$u8d(AN; zGGg{(YS239Xne`X(=d=?~r+?l~)gQt!-*!PtOaJjRc*5C?~H`qHcj3QXlcpGP?<8)h>;Xr6qt@ zMuKys)M;fK3hnbFUH}L)c@@N;bylRwz-VC&;7P<`z%0!vL|1B2%v+?z#n@=^sL6Vt z39JrAtSlC%$s|;}mrtqyj6jf?J1w^5_G%)SO)=0@YwnZR+Ab|8Lqy#-mD7MaMOsxWzK>nb5f#C3m8X! zcmK7Qf8oEbxbRuecWy+?!1$hpU5x})#_Um7hUOTOAP!xA6(K^9*0!}-ZsYMpqp@2C zi6LxkHJMpA8~ebmHWG@5&20i7i4WaE9$-YLW?$BA_4Bkjrrac{#&z7G zsCPQEabbH8^Nm7{%2GU07M?R1HXWrvyYTaxH`1}>c!8ir*|z|C$}R;hK6;K?BzcQY zUz}Zbj{4G3YtQW0j~H4eD>(Z)=EJHje{3?Wv4l3CNnlj8T`4^(#B#V4&yB^h9h=K3 zJyzj5S}WQK$e1mdQ5iw=oV*oMkaucFc@b9Ty;B->rUHqm6GGeU2YBL*Ov|0zx5Zk3 zAOqQlRLOwV0!HGzLxcvK4x5*h3ILk9PRnzRt($-ek^VL%%F@AMtd;nwC{hfm)uRFd z;&d+6jBMT=-#(C-Gq#(T4;u@HwWs9&!`%hrjmU)osZ@r9ZWx@&J%aji!|mA57e=_k ziFD4w@DL<~rR?V!+1dwCEFjZHH_BNiv1bbobMw;1WrQo}O(EOg9=mN$gu=qe8LX+2 z=ZEvD|H@}c100fR$40PgSOZCmm$aQ*>jq0j!nGP>l!4BEa+uKMlbUhhwR`rF_6;l}U%(-HIE z{=?DNR3<-Zy(@pCvqwd$=f}S6QvH15#Ygy?f4SXy`=~1)I`^K9BhDXt(LSFU{n-JY z=feDSqvh7u9P#LL4*&Q29zEo1Ip#zyX<-KD7cD>SN1Ok0QP%72oJ*Hn6^?WTzt-&sGr` zmtW~u6?4XzcUd`YVaC_0Cp(A$izrMUgQHUx$4J@tWYyCyEtHDlzDt((I!Gob13X4P zSIIZcXbT zFP9_dd=V=zeqTE5J8Kj{>H`^h4#skp4WdB)L@1gIRHIll#XGaZjz+K^p|qsM90(l3 zsw;br8vJAEi3H^hh!c!Z!6$${L_Q5%aD~}HM~M#{k1|AH8f4L7f!nVY;tOD!rEnTi z;3AOFD!Q1xz)&y;vgI#w2HArpzv#H=0`f!i9BF>7doI0z1svY$HQbZLlOir~^Rfj; za@6f*iBVKN{qtVl9W)gghWd4-7h#?QxEy~)dshCL=of&H>SDo%P zX?emvNMo#*+cGjnBK;@<1?b_N>>w6n5?&f>tKTGV3vFAY0f^ZkOtoSbg}{XnTfvvI zXl;9z2zsfO&tW$IFefb{-^AFGajWE~tbU&apol~p)Wu9F0l7c$Gt~R#5y`1BMrNnI z-hXzG{pi1gba+^4sR9{Xw&d92BSiBQQgo}6Y+d9}E>V|ge`&03DS|Smsp$-7lK&;svL|*}h-H;Th)9o6b>-lk zYV{E9&av5`;Fyg!#vtEk1N;0BCDZah|LS*ak7Dm5q?J+=E_D`YK?!M%<9W8b8h2UK zh!NgF^1s`hwaZEfH2F8UBym+=1RNc$OAx;W-HuEW2nX3*O|KkObf2)t<~oGcotG(c z$yuRrXDj6&#eIp#{gVOMWKTGq%HmFDtn-Z&_2)&|i`Qja0@ExtEuKuQExpU^%ogEv zG_xU$qhamjY?n2(C%SdvWRXy&Nv9;5*`y1h(*h>azIk$1T9-ZShc8s$V8RMPTp6Tb zJ0hQ!FN%`az(+;oavlB-C`gcFTBwZVZ|YHCO)E{e6nbE8uXY zX-3^;&E((oYzd(x+q`~EG+8>wWQ78?l$JM)+R;W<`aTc35iC*79qpLCV)CM|6}038 z4^exG;26CKxY3Bh-~O{$2$)b=YSNUck+sxPX_9V^L4kfDPU>KF8o7Kf$qiypYdUULqMJ_ra>gI*_^AybS_x|)A zD*REe9NqohYPAMpGzyY8B*$qJ996a0hLyC?56t4SNSdvOxpJX8W~7IjtqU72t)#}r+8TJXgFEQv;fejQU$Kt!}Jjjm&9TDU^`cG%^$Ucqq1k1vpNZtVOgtI== zF1-H*(LA}^H28FDBr>FO9Fh>IG3kDNj`HA0<2^H(%Rr zNDJ!mL|n@4`2APW3K8oO6!=3`c(wRv^;i3PTJUI%tbP8h_F#q9b^Dh!YIRRw!8)%% zon>ycuKFCx({MYs5PC<8#7ygTOx1fm8c1bumpX)4y$o*g>G_T;ih9mR``qwUu1PHN zKbu>IIojD-uzhY>ovrZBkE6a@^^)bd`0&!)b?thImNenb{ncsUP`)U`!Ffe4+ckM} z=)Kh-sLEbYqu-c@B}Y}~Q6|SVBr0mEO-_&lYbtd{kxcb+wxz0lG$c>*m!SGQ?xve6 zk8s7#HCp+fgLRk#R-i)+%o1A2;%*qmY#+91^l%aEfcU34Ul@*@5xjw;5V&<~;Ozo) zd@h!8ytEovfVngFbnR=Ne=!3-d~Iy!jiF*$i@uz2O@r!T`3xf?vDA}6O?)!U=r%ri zn#8$exr~_R)nmI|DJGkaBVzI)y#xYkpg&~m$K)fxs^<-CvdVA)hO9hCP<g8vI$y`p=F+L}cI1owBO7Qm9#SW>Dd|s-z^VY8%{(PyeN|o~uNm^;3P;VJA0uDg8 z$+D_NPY*l2xfE3wbjI~QBRO0$#qe{-k*tsp^qwOPtN#wg;F$Vj2#cf=Bzr_m{!Z4H z3|*Z(3RKEOV!qj9Y$=c-+=l5ZPfeITfZs^~~V^H28P_ zF9yeNG9~<@IGmB=@GzlTG?!yvb{f$*X08@5eR%LIcK9UL2lS4`?HtM5mA`CppSJ$Q zOOAo6=)Tx{ont%aV}2Eoh`-BVA~I``EK7rdf|Cp$j&+>x{JuRjTl}N{A+1GY?I9G( zj&Mn0#~`i1-k`gevvSD7_J=oTJmDYExqHtqE-=BNafh`cRj>!y+5L39 z@9fAwg(!?v^#MW4=Ib1)wDnj1q-H???NrSWBF*O6F;$xC9WhgmD4TB$ltWeG_0WOP z&B@L_U&s&}=bcfdErCi6;cV;q#KQnk615Pai0Fydjs=}C4tyUe+W1(uXdDNCIg6~E zG|Hu!Xg1h&nyaB=gS<_ft#)iREsVF=AM_M>q;L=9GcsPXVrzwpY^UJskllRkwsH2C z%`YxB?c8&MUG_FFoX4IImqXc;=TdGlf1~BBAi2!d!5tD6EzA`sL=KqC5X)sQDI2g{ zw6^8qbUFkVWvj;mn_l40npXK0RxdDw3rQRrrHzGQ%7x6u5El;l9m1t9b!Yd_pVowf z?8T?eh2f!Gs@`!_ctMgU34tJH9+1YuO~Ob%T;O3 z9&72~SbH!nTJv5F&8=onRd%p6Oc;gArtd~g=@b^_4YuU^(pgs3LlOcw5(H{~BoW*} z-4F%?8^>5d4WQT#Nh|3dIRyZS4Os)w@2T%lW<N4`J7G*YtMkLE(ISfum`!bm zNEc}EqinaFDbg@*Mn>Z>VZ3RdN}5B z@yun1;7_$f;E(kQmfxRcCSBVu!eeuz$}@7}t~633S}AI&&1OTviqfDCbG3AfwTZQk zYGQnDO)7F990(y@)dvN^I-Hn7UggeUt9x>t;=h;g2Pq2s9Z=E(hf#!P1m)R zsOTf%LFNlt6qRrzZ%2JMqbq4F80Q_MNOF#|t5}UvY0;Q};#`y^V*FE_-Ar`DTLt<< za5HI`WLqNKE1xH46p4GMBY+M_sr^ddhvv8q56X=_sV|$yB7PoJv@AI$qB&(r4k(Lw z!<_RS4c^S1oJ3-kNes7|OesrBIx=TMa_wN}m||K}6e{^;A*ux~b!GLk$FGxz9MFMD zmz`U)ef%u2t-uN=EINJmMGK5I5eLCI$k{F;&rPiuu zyRJ8s`<;+Ws||*C7h&pMOgvVCz$lAtqfsV6*X089$7cpE*~B=sorZU+jm1sHt?Ef zv#>dZ;fR6{44PRoNdvJXPfvXL&33@Q*C4P4QdO_4I-8f>cSF9D7yt(Y8S+vCfpf2m z@m|I!=3;3&dYWCeEtjj{q6akBOD`3(wA5Y>l5wQ*e$iuv=SLs6`+4D2#6dTgvxj$- z{2nLniy#OG2^g=UM2yJ?29;SRR3f)1A2@O-hHO!nESU`eg_U`Dg|n0ef4n@V_{`Se zjCpfeC-Lw90RIYu12j1`6Ii69>vJ`{)QX<6T8>IcH1q8h7|JNAs)_ELxlrLa7bi(y z$&vE1*wS&Z*W4J(o7xUDN8Y0CV9Vk)fPCQMW*LBYpUFsVe+#E9;$)@H&(q6}yV)?X zS4ZN+L)dw$^fgpetzf2lcz<~b?<@|(qi5UjqCk2x__**eWtFA94{ z@1X-4wveW0p$Kp}#BA63#a2N%BvWEmP-Id>6ov&7)9Dg-=4M-VMPxF!Xk;e$Xu4a1 zr5uEnil29|_W89|;Z+~rc_EJDp1D!y1$5Gh;m5MjA9Rc~cBX_d$0f!wPIJ_uM5uUF z@je&MvZhi>A^zjfU|Y#byjc;g1ajqNIG}t4xv|}_Vn{ngg?J%eVvVb>?<`*>(E=;7 z^BROYqNpoKEof~?$qGTPNJzjQ0%Ateox*0=t+N6-yW?)2U@-xWP;$xjg_e`_c~gq7 zP!Lqu8rQ*$Hl*;vkYs6<;tzvp_fcCtu6mB8Pi@JD+_b<)_aJ}EmUI$^hS@c&5Ol;@ z#}{?X?5I{zQq*wBFU}tDQwAbM*redScgcp2wD(Ks7QPJIDvDCKn}-duhkaN4t+#39 zXRjD#duPA+6sC>WxPm<@@a>Jlgr+l*=k>2RP=t~5aKq4(M+R~psVc7*5i39P=%YqsO$@*(MrSflfYAukJ( zA&~39#gBwFCv z0@p;N$QFk@$fJk55sM-G;k(YbkzM~2Zp_56qS=iw4757@SzgNpCAcrf)n(_aC8G*r zDiz~{9ccTQ5HXH$k{!`?1tfDzv%g#n1fN4f@UDt-F=>;pyFT#g51*$2(V!>kY%|81 zE5&@X+XF1B&dx(C`IG(loPhRU`>{ZoOm$SurZ8>YWjHo)iwL8#n>&*8a;+sl8Wduc z>@C=8kbTcU@Jw0=r9tww?E93R=4T)T5LVZCM01M-Q|%GtW6ZEitgq1VMB!2T?9FVB zM6xjqIRB1~d=cXor+ET+*)>%-^qHJ7S9P>V4(E#0AGkT6s{mc1D;jfQ%JzW;{RirN z9fPOYxgD49(Inbx>eC$=u&ykDpq+tJ?k>W4&CMPOzk?n9X z+H;`KiTcf5KwBc3v+9TpSB*0k9xTA~U0e~04koAsXt1S@+sF%eQf!(=xU=j4-Gz$D zt-5TRn<~*n<9)cT(6R$*XzvSoThZ}~aLiuqws&7OighD8uuVm#gt6>E_@hyM3`VAh zz0W+!3U0vgW6(lTrZuFOO>I(76%g?ivaL*J*Wb_$wYpj_q_a=`M3Vd53(;lWo{XyG ztiLeL^=zjRY$LF#X(0^LX3DM(lzx$akZMu(SwT@hjfa9<;fKThhCGgETTZ~;W}mmQ zet~5XWoxjiD9Gn-w3ly{_!+Q(;NV#<1z67ZnBpARZVd8DWzr;Srm>w{K?#)ZyQJ%{ z@=cu(vkPp|mpLs7$NZWwT$Fw1O#C=2!zniOv?M`s(0z3HPOspa<#wMu^pzY){3R-S zn$fE@)ThXN6Q2>!Jl{!-ehs?Nl`}S;x@OMNrj8>8F~uPoY3JGh#7hv{^|dYUQ7B+1 z{=w2J%PoQ2IYUZd+XtQLx=+xZE>wUe5> zgl(1_(OiC*nNVc2j_I%kE-O@IVxoWbHvaLzjytj~UmOx5Cb)tNxYimB=KErDmLI(_ zVsk>8BaWL-0fMwdI(iN#TI}X6I^-GBARO6@)Z~NgRBMSMmK}u_+M-(9)3*j7nC}~t zA(i*lZoh4`z`8&K&DI~~U8&c2=0p5fvkF?_vrq-HQmf>yY|(**Y>J-73>1~DW0GK$vJ%!T+vSACL4pk) z$lY6|X5cWn000_YPR(qD4LG$m^4<|>?e9%F&J%rJRdO57RRuSKMi zu32=tEI9V~ZZQGZ5Lg7m6d2v8kuh3b@ zQ^aW#RsnX%nd4XVT;MLz3KBA0Mk1bdcPmKUeD@yEdpU=fT=H&8bifReejI27Nj67?y{{@nLN3q3sGe2>_b-NKNkW@=Wi|%dP<>*jcT;h*Y3<~ z)q^<64A$yz_w~0^?lR7jD54cIsTp!&HY2J*S=<&AG)h+E{aw*07Xnf9!sFW!pSj_r zl#Z4Lys1TPVS#(P@{p|7idorzA8T$_k|`9Di)0+yXU?#bH1@!b&mQC;pO8s&j2S5_ zADQZCABn?~CcXDSB-V$KF%9Ta1_0`Ky=>KG?1IeY@~fNRcye)P6gd{`hVR_8gX9u@ zL(mSV-U&04D`2-*3YGGX$DO7O4=5!4c9~%I`Jxpzc&t`JY-A1@(L_dY1i^uDKWyWfU!f(P&=h3whk~T7fKHAEGSe zi4OB0s0}Zq_{@hFX2B*c`8RD<({(GKvRs@-TGsP)Aw*e{Ty7BuDfc4^jbbSc^SapZ zQ|@v$bWP9YribBaia}FkP5hagT#46HJPkwDzXSn!H{P9vbVfd!TqUM8z%)Z*^kA`U zz{nPaRI5zDzmJo_aI8Epye3RIrN+TqYBzE^ql}Q~=_nx{WcZDC&(Xa=-;J0nmOHaH zxd~vn?5`XQxro90{FEYWZBbAqlLjP1l?y`IDC5YZv^@fS>VZMtA0+>3S&plbM)if> zHQV-&9n=yupztk0PBlo(Ja{oD9|)}9H8@|Ul`DhlrExFFFfZzTsCG>d6jPZIZ$ZX+ zA20V@DFGueEGrR5URfG>()Jb(n8_LgkC_ssVay&5DN?0Vl;?(gJZ#(Yb{7K*9df9ZmWLv7lA{agxGcs(y4rz*xu1?y}Iry~H z(k1{~DNKJA15y=QmEB=%3);%}f_E9E%mH5?WW3`3(*G5P<6mgE18~Nh8*oXU-MmIyM1RQR=({JzA|h1nHcCnH(kg?*o`s` zo!+OCNk3O};Rht|B|Lc`maF@oPpR(P?8qLBb;$>z=+%Ei`IGIM{crvOPak-8<0osnE%ICobrb(}iyZ^=K4zq_ASej&B zxX5d6_RR4{tS@1d;B1&ZT`QwdK1#dkVvyno%V$X35}!TbOr5N!kns`R)bZIqtH#2t znsuG6u(fW165BYMD-q38gvMUO9&N3N3diVsU#P|t!EvUzFbC_CuSsqXINqc@DK3Hz zL)da5xdQQtfrKehi^v=Bd`)mO)2WtMOw98*C4xok=sgVNi~=?9nH`YK8##41u@&E%mc*v7n7SJzjDBi_34$sK-;&3NOdm=7Fx5i+ZRGOZ?}jtkA!JzQkY9t6z49na{8x#P13ZX!S-89{kCAVVRzza}I%y)e7FUD*9BWZ`B|8sTu8 z|Jhu%6;tR9)qx6G1C8y)#YG3qUB)EGN2cZxi)40~o)U|MrEP}?w@G2By*Y%N`fRiw zwuJdX!tCA8Kr*-Fg)J8WUejVtt**cpw25W?=UMl8{($toh5FxG90VqTRjoRh%7Tr{ z3tW=ftETXqcYMY6S{9zn;*bGLX&JAX*1S`Pv6wsOJz8}NP`~_D6uzp(yFmkfUy5#k z$4B$V3UO`SPxt8GT!m76pU2)U(JQ4i1KujOw5#osUh87-h1XlKzM>6X!)yERIkb6? zxX`XB8%PAMPYvVyyKlnSOU4bO2_T%=u`sw#dBn%HrzC*d;?wUj!%VSdV6>aSZY72+ z@1DuBdgJN!-$X`M)NVBIiXVlCk`D1r1Lg1^H$Of%Ey@e}O;vHPt+N!GE!AC4h7OV! z7Q?#(+0F;p=F$eRy%(KyS;>b%6ef7e@^uK*@U`+r6b8;Fo8ol3T)UF}#)8!T78B9} zhaR$|3gszPQi0Rs8K=MVjC!~80@Aj9+3ohRRlMA>@WLQu<)hLHUkGD*97yh6TFOFw3$jt&O+e1PEU z*$CpOAN4jHaEx4sg;=XGxn%!&rT%{Zl8Dq96OFbYFTca~j+lM;JjXf;nTE0}eIZ4G zio_0~bkR4s1D{B0Zrkg5#X~<2Ssoo%YnWr?MU(}O4~2NT;9p8JNBpvd6bKJK5Uzs=f(T(CaOHW#0SH8u<@Pxej`~RWpT~^Ke=DwO^^)HCl<}Lp7?P|e} z6#z(Hc{=o34nk5+f|CUH-K@wTjR%5_zg4}&U5~(4&Qx1}9Ur0>&1{q{oo0R*_I0h9 zzU+}*`wb;;5fwQujyQPSF!_byRh?dUJ}Mrw0HzmB3^}3$R&n@<0M%j&vhQu7AYke} z+rscR_5YsB=2ON;J(vbM056+Q4R7h84$~rGPsur-qX>0SbdPZ4KRh>VK#w2D-3cs- zb!P|WpG*;U8j^SmeGi-UH=TH$7W?;n;t<5^xLx4*LTpJKQdFMT+2MDjWSibWRnB1A zH-m`|uT*}Ez*}z4rGe(jOQIr&9hAVe|NLuMiV!rfYZAhr3~``nQ(8HM%adq~N z^k0f2;OihTk))#S7)6V+GYeYEq{Y{ANQ%VAHr~y}0mv7+Nxr7Q8JBP)qEb>P!^G`F zD;WY1gyV*Rq^|~uX}poKgU|X1o-m1&6ct?i%0mGw%EC$Ml1#CVaeRwy{qK8s;+ZZAr5&J8|B_lYU)SKFslT)3oGe z5pU~$;zpnFthW2A!@!y*zU2L0cmW-%?|qP2D;HV!+7%)t)9}D^-Nk`gWuhc>pfiCl>WD|L^|W z^#5?I|94dVUyY<3B6DNo6Tub1<-uja%Z_>Jiw=9vCxRd<47Z;7ta;C#yWsr5|95V1 zPVg4{@2ud=;N%VK*H5ikwR**h747zle>wj3uleWw=0DAT_I>3mj(*|6&wqY+P+TmP ztF>Ca(Vq-72Zv_Op0oEpoMw6Y{s$a*b@2Y+s^ERWrNPDg`z{v+d-1cUe)hO1cz5uO zckxd(RNhGv<{iNW!KZ@rg0}`|1Y3g5n@->O?{7No)Kg9#A6t3SNpBoozU;)MCoK85 z|NXCh|LYB}d+n=Vb=-08*kg}6a`C5vBVIC+Eqd`k9sYtt7e4Qh=RW6CI51`$-W;wS z$017H`wuI#j7uVA*3;W)Ay6QUBq$otWa7Mf*FNr{vg10vIh!2v zDoli|*bFSAajx!TLG88~fPG6rWQDvtD!i4DkMhw@rk5cCnRKi2`3i>EvtSS+KCSom z@?50b!tgcp2CY}7d*P?P_yY}~*y?QNdrO4a-Wm&#Mcwg<%`VP4iZpST88Ok1${>5+9YQ4?BUH#@mVPezon`Aj1lN^|mfIcX>k2m;qYBA~`33+R4b1$t z4^JzC28+gA?bdE7oa4l-zRM#LEednBTe{Wytb{6(Hzyop>~oUW-Y5cR zoAfG_o7Pu5Ww!mY4dc+}Y60G51sMwN5Ky|iSKIBDpU&q2;#zE5iS~N!{T;Mw?S=&3 z5mA}XMoJesw+_>$4cU%VQsEzW^I{@~zgAlmFtDN*gppkY3AgIyhT084ujo@{@?H_z zSr;1wAv;~Ka0t3F-`MYahr9JgD86^t>8(EM%@zU5$W|wR#*}<9=Wr1cO-W&mkuph+ zY&Xc(z(~q^Ntn=*Fb%UC3|mm_PtA^jafaK3%^c%PSyAg&!&n2}1(2cFvQ6vKTDoTz zyo~Q=rE1Owh0d1wp7x-Dr~98AjV%Q;j%&KSH_nGo=CUvG7FiPC*)Zlk`^y5>A~lIX zRvRTBDUs{_2;X4P434K!$b(Qtr;>BSN&K zbGnBWj%)@N;Ll0-01Np-LIeagO)0!Yy4H|8;^d>a4a*~FQY-7ISM4hMHcrovwau>( z5wTSShd<|%kLA85FGB?7`g;j9$Q5EL01SOL(2w~(il#$T^fMPZUdh18Lt%|g${F7*=D{_E)+YZUkgyr8s}8f0%1<8X6t=EPC41;w2WLv zEi(t41@TG~*o2TQhu>lEH)`tJHI=R|gjL{)Y64k-E{MdU1MBs)?1+Jz>CTJ{B} zt?SP@eM@G@oHn+R9k9-?*hwcRe`eN@n?VctAQBZy?aD>{*)~qB6WHJ3_?)bh9^;ED zKBGjQIr|2)u%=)Ls$}!oQw5A|0x~lMxVbs07@6%{zK;4&5AzlfohMQ5ByI8~DbCOU zfWZx}rWFt+5urZQK!-W#z_!6Ps~Bi&CeVR_77g0@M5B`A6Q!Ji-rB_=zR1OSHg-X0 zS>D_8k$L4~=a90*Q>LLj7gU)811RTvl)bDo|6BoKvm{XXU%SL6Bi$43Xf`y-6*BwB zlI-6eGmYh|D@-x`l34dxK|HBc3$*mwmb{PB?C5;yNO>mc(|cnCYL+!^+P{TL5+_fH zi9q20NHF!PCfC|^Xt?ZM7^LPS}3=C6!{@0kVV zio;pid)fn{F$XW~jH(ZlhF0;KFaJ6e=>qxGS(-Xz)vO)56&FxJS#5gRrIhtdI}4Lf zmZ0BC%%}Sjbdjkr@9n2xB$Y)hAs)CS%6@%`$-oi1%s+B?>^TlI9SL6r3b4~uPdf`f zPSk*Z)43tkX=6`A%f?zocc^^VO0jV=z_ZE}Mzm9BvvwW-)jzm2twE|?z%{^=+;u@IQ(m*R&%&N4G zx4kuYlMBnDlMN!X&${}%VT(kok0BWl>7cE$e2T=bdEj;Rw+FSY zGv=(G1bZOzGC4RaG!2zB={&8(hY#=Qlo?|>UEdbeWClj47?4}F;*Yl@6(^u`qU z^L&rvjk{tcCh}Ae{Ob~RyYNmTMpI`B{1luvipAvn9l*@kb2aRB%o)6m|OTsmfmPDnSRWUP2W@V zWdB@I3Qy4@Ufkuam))6)7;=!GwzUMW$o1s-|FQNi;C5YQz4yGVeO+rMGnbZ466jou zAiFf70ZUVpDtm6)G^M2kpB}qO zJoMLvBlLBiT_W)j+IdOdXz8TLB(+(1*6!-Pgx=~j-YGm7AJ zuKVw|f&>slG-w31wO10c^Cs$Xe`8i54KmP4K^J9kGfW1J}YpMM;fnV4NZx%KeG#^FNLIP74%*WSg5}^h#=+7o_EKyW22}PGh`mSEGo;#OA z6WdCM(08upI;uZWScOKn5+5#86?Rv({4H}Yd^I-T5K+7?L*Nb(VPj~Z0ETW zW1K@xZu=@_#%grXJQA%bYy)gFQADQe*6Veuxjj|Hq7;M_}05eR2s(*rLzp9_0G>^&n zK`n@>kAmb#q=Oa#Pw@ti;c^20y!u7#hJkz+kv|Lf^v6SBTdD*{FG@ zQIqf2K&IvmIWo1Nz)}=-@d*6DZtMF{dDdShcy&|)_9+=~T`b`n$)FtTcOcHBw#bY< zXwrje%DO|Y$BKy<=(51+Re@8SNP$o~%XazN**5R~j}AH4$9Je#%xh&3g71o;%k>8M z2nmE@v^O5qfClIp`<&i=cT-bVHx-?qOZkromqmpUu5q!T2=ENG@c)P`CzVjIjAbw> zRdVO z;u5(>r_3ubiLX*qG%yovneny655=Gm28b-q+?M;+!VO&8%AA4{zGg*g z5JwX00R9>T(Vda85UjgR=)jo0BG|^L14!PK4PGaCZ66n?&sCZL@Sv^ z^^<8LKOrpOyGTOuLcov$0Tr_itpO-U!D#n${@E&(a;5 zfukN<9Vk=sKJc89dCdHuP1^vm>eOT~gQWRN|4G{xa~2Nc%Gi{pqge+iQlY4I zCv{-`5<77X8qlD}YC(*1meEKBwD(ZSr~E!#Qj-Q0qX7a1(nkJ#KG-2*!^#o8bJ&rp zq0wDr14~<_5jnKv_g`F`PhICLiW?%{Isb-v?j=5>4aoSCg7Q&dA8Cv@}E${J<4Quj5TpN&yL zyaq;+ub~tmk$i3SIZp$3cU~vp*vd3nECE8Fo|xr<1RLNmRDq-^w2`#Ko*m^ak=-P3 zA00mjiW2(Cv)iFVPDQYUWkg=ZmCeWA3t4bbj`kDtHKldXHr6{!g|$AAy~iVe2d$`$ zjL3YyM7s;+)o+ZmE{bQI1!*FZ_Yg9RRU)#xwT~G6!bKmJ|u^#N=0&I|NC-f0y%uLUcrPxpBS>n#1F=AY_jcAV_C;w^GR zh3*H#!PBxKYV1(6y@j_#Z(jW->8PV#-jHhHHncj}()koMt zNz`+u-Xk5Ui8N1rfj9VL<7?~=!p{A@2{vdmSR#pmk?R@Z`951}sf{&F!Ld=*??PZK zpHfl53?DEVY+#bzz1H%D)N_iPgEA==fp{EX@S|;Ze%%=fnnhTliM=kNOks;Po}rSV zc`@vm^7HRQXv=0>cLMxEr_b>R(6jUk1`S*RADAs zsyP1s8mSr^mkW!=JTalx*V-Bvs307go9-#M zGWmf4EN%yLafx$rtmeqxIF9d`iK8bLr{MkR|NbOgbP%SV$aFaQW|N?hRBNThM(5$L zTsjS>UzsfT2lAoi{s8H&BQtT_8;=!fuxNy`PQw9pqKA2`70?*a;a63mwDlVX?b12> zD?7W>6eu|`96&Smivt#}d~SCasF~v2J!K@ZhHOXo^3JXke6yp=q5%oepG@U77yn7a zTTUf02fR8I+rtbaH@KNOE_|ZzTO5&|=1Bt@k3P}14*08npCqVxRv~I$j8Y&6R4x6~ z3A&`-T&~_I?%BCQ#eSS(FjGH4O-$;Q`>a<+kii-qdC8n5lK`UVX((y4TcLa9j1Xp2 zYIYj$$Y8+>6X*rDXZ~Se!R2+W9o<(56y$Xg3I1V3LVEgRou3E*>6`d!5TadZ`5p0E zW>#p3ez>4q>bh1vg%jX97s*_$AIxcZ0b$uE#2es#hp{{s$pXY5Wae}He=u(KQ? zJH?}=Rz=>5y>)Re0OxjcCtI>okW*WmyRw~!>j_e@<|p>ePhPpNKUICsvg4S^t>Yti8DcbI#Q$dFCkuwj|(0s8x*kRM#JP1afQ?6MFv zJe$$ReJ*#oC4;_Tncf*Z6I`_AFFQ-KhZ!;*aEPF4b{_yP19=uHU6S{Ca?^>*=rki% z9?F~qoVGdExt0My!0O#$WEV@2kOt!}+!2yblrk&F3=e&^JzjHj`Q~y*+}umqS*QWX zD8~@3QF1H6crUl9(`-`wB5noof!2+g`jx=JbzV;aXxKC5x*EF`ba^A#9Y>aAh;8qrH~D zxclQQ*pz`U!cyN@3o^K5&bGbF8ES?Z`37SAsp^j=IzKv8f=Rq3fXhx3RLPoI)5mZ! z5X%8DB^W1xs5n3+V*Xqj*!BLu*gLU5RrOFkwP`lkj8V_60yG$0BX8u`Gc-SfGzr-<-S4_VbKht z{M`2|bq`u1clJDGV_8o*=I@n+ctTkN_=JXR`pksxY5lv&m=|N+28EcaQ!>Q)Lc~HiE*ky9yuZ2;}$s|8Pss#H*|Hx zHAr#`!K&x35&@biC1uRUWwp5!D`+wBQAmqqu2k?qtNH}{8mQ%p<&wI(Td09*pHyAe zWYUpOieoo;b+pv<1Q{YWp-7hrHYeR99E6Eohh+1C)N;{DN~h9n=4HI_YzFZ|Tb+i9 z%Tk95^8~xu@hVsUtWI=as&-KO`ZHs{WOXMBKyb*Lv(Olzg=O#HKIs_+zBSp=HhD0g zh!Ae#Qtm`~{Ady<_Qx!W=u z7Fn%^%j!?ziX~0IB;AjCQaV~-E@RN6uTER~1@V}e7*}6m#@{(BBsVkHIY6YZgfS1t zJIlbM)gR`ADqh3Ju`}GT7{EfhdXKic80}G=jX1yT^8)Xdy+_4E!0-Wn>&Ifv=ob?7 zYcsOw71Eo5-C8NUB4>mQR9|{aW zR^u#Dd``gZ#vJP|7Khvj%$TLR5c|J*EHCZ+Nci>A)GvWgV_C{=Xh@r4bhA_4B`@?# zAds=A)1YQoFS2cXnTI@3CGfy{ph1`*LmGRKd3EyyWfANM2H6YznFA|dwd?SO0_-q2 zoZ4p@jdNIBbpps&<;GG^#K+$cHF~3c!MLeBIxVai#3R`@ni0)D!X$%8s+RY9yfwcDs$Wh&&I@9!)~;{|B$-u!&0 z_;~5Z;nG6EG4uNmTF2^OKHnrW2(VxVF%MI=W{1>yTEP{=VhiS5ifRB7sX*LvlE#d= ztUe9tOQ}4{C><(g9g3AnECn0yUSbkM)LtCOOL*&$JWxrOi8Z|(Uy{cj8j+)nP_&1$ zcV+&sw&mV&eiVIvMA;1^W#d@fY3bC*cP^GVWG?y$hM2WkO6vq?0Gf{yX`XyO$A$hS z_ce~NyY(BEu8a-auHq!NUHhbx1$^4an|>i=Rp$~Kl1P#Na2V2JPK*47^AcJ<#ZC|1 z7aJnL5gEc?31nMhS#`J8tp)jfP1Y27D=5reb<2#qdu_vMe9!GD#B%(AP}VpMpNF{o zq=fLM6BVicQo`beQtYv5i^ftg76ahKT}Nk*cKt<+&0X$Ka5yp&mAnes-*-_iQfOrd zi#>k3z+A(gLHaV4f*;9oJs-;Qknb=0(-)Zcuy`@6clDR4x{j;E;D*LAl9ezCONd7X z)!j*7HG!Mh#-Hh3&CmMiTv^IxbKpHT;rgAOoP{W4NML`BJ#=mxi=yuduyC6ry3Fyaqk8H+cLrW7d?fY!RZPJ0Yv%Lk5{-N-@eKYnzxD3%=3D=g zRZm>gc_GqUbM=|dd5`QdBx@#dMu4`4E4FkY;hjp`JEoQ>2})vil5nYFuw%9PDa%R{!K3$lvKhELJ&r-}6}Ogx$ad zX;c4X9$pM3pR8hviZ%E7ObaYaN>tyF{HA$1%nU&olg{&{HQ*+-M=&;0gXK2RaCx?& zzf3Jd0iHo}aTfEzj#fT#eRjXnzSqlo_O5geF_wxUAQ$mJzY*oT{CSew%an_VYmiP( z)h9o1tzO6@!kMR2)wB8>6eIHBz^Gm9*Q6zlfrn^SU?rlaHt82xRe6mI@oawZ2yRd> z&eDcCtiJ&6%Xe~G3atp|h2_?+;+4&kboSLey~@qC`D0iK2<#x$WngY{Or zjC2zO!E9&aD9=Dd1C|^lH_5nD5Je;aOfnlDk)=iNP})nD&s^-nk|FRHzV6NCAozpD z2PrO<_hvFN_SXEN0s>)3v40YMT<1ucB&Z~wTw`VP7K9<_uI>@m`9PDE4Uc3PncVBE zdnKnKqvHn@Z$ClugTQvew_>t625Wsouj$U}#5sR0{)W|Leu4u<5&eGFULAQlk<$tb z@y!NLJy7kx$TWxhS%+hz+rqxD;7&!I;nMDoWG#xDiu%-W8`;?@lww&z0hwf4e5qdy zV*##fxuL-vl2SX9pGOX@S2G5r=j}yZOJJ<2YcD6NhgRzvhOKEvUaxU)*-OJ9;EOfQ zZEO^`hKXqPHwmz7;68wHQM~KT(vKPbL)!G#mvhod)=Q4C&(zfYO!NjX*_TlxN2Sej zBK92_K2_&K=J45k6>NrEQNXi}LH^ZzE7qeyRuYq-gax!>QBu08EgYxPihnE02(`G1 zG;dm4$?SqXFRS||`m0FnU~D))oxv>UPzRol#_N?AGMQkzM|TbdiT{_%SCZ+f#x7!` zk<^aV<=--LLkjlbgm0OKyqCuNJ9^NNti^wMc_rMqY#W;$aeNdlA>p2*8A}Vu$bRnB zh?`e6)oYrw00QCfO->Dp-VToef`%1r9PdAcMeqI9v|ti^3dO}}bnaE+9GiIzi6C_W z4dCXGFP5&MeRJ9~9-`6IqEzW7F+pD40);A8i0;$3$PldmaOd{ew1~r&cJ@|=-(-FD zVH@nT_4?}X1@1L9>1!n3qS|Pk`Y^aZOnr%TV39%Vt9t9z+$z6T%2RJ9>J**b4p@H+ zuB_|e3x2j_jBmVqp+<2#LHGf+OJg&=ys*2C47+E_k$*fJOKv2}pirSE=sc6gB7r4eY<18k zQc%7uT2US-MZLElhA~)HVyp9y(p$H#c?13e)-GSreHvhfjw??IwhaK?={BLYSQvkQ&f_+0G_SgBL5du#zrU^qI-PtROIZYAr=HGHU!UIbiaC)64Rk{~~AAkWM zKdz9{7`)-E&`a49GFl*~w0aSm_nxpIC&-B@hCijox)^SQ(mbZo!GNvZYk>|!hr(4^ zhdnkwfE+3tNT&OPuEVus>m#kgZikoW>r(`*Qw*2VaQZ=*OMaR#m!jLCO>I&U1i!9f z^)8nTgFGmLiZTA$;rE5$x2dyNMA;hz?gl#B~HQTzhxM2{;5M3=N* z2{7Kp7~59R_8Ejw89$c=Z{UDC9Ay8mtfr)R82Xqd0f0s^D6jwZ2@u*1`KWYC7GG(e z1y`s|!j^PfH~@%(Op4R4VoG;zz4F{W#)4rjGX^l(C%|7!D$J*>dINfe%2%ms{Bfl+ zE6c^qN~U}%vywN?tjy{eg=Om1!Clm-5Ak!+gXCYW-hqv`_EcWUBO0BRQhW$AenJa$(YpcjuD))7*4xl4y@%>>7}T zDw>F9fP=>`>9&;)Cwt!12XQBBr1MDqH!Yhc@&V8~(#bNn@0T$=2izfv+hmxG&9hJ9 zQKt~XC=|qe5QZV&sgZE!b1BM1z;((_GPh}ZkKdduNgm}tD1 z&7?KjBp^zI;0j|@iDUic+E{}`3R>C(xycHBZl2NoUnM9VRP3GFcHg zvHr_gD;oTAI&Kzq|0wpOti-AxK-FZ5&Sjk+NS2P1ZWD~dq(UKTvkpnHMpHU8nfHkC zUD^s{>~tKykkh%{GonXAT(ZdkxHR6tz#6DWPxyPqB5~g#U<7pTz)%M|sPP!B`-m$^ z`{_zN1F}1CMPpur4VkA>!(v&bjGy6v*_n`W^PRUQFZC9WsCq;v*a-K+E*~7x@Wn8DVhk_p=!|QGx75 zgw>h8(FpHFqRWnx=)h3LD+92$WVqbKXH-9^6ERa%PuG;pAd*`)v45_zUd(--W;Vz_ zIj#`~qhUhhxQQwL9< zy4b=@vcXJLjFM(rO6{`Usa=Ezer04C9ki!ez;w)mCKh8JwIqA2z|*KH>sSGvTgN>< zH1Mips#-XnAnt*>4_1ju&SoL=L@^IhjHaZ-Jix4mt7H-hX4W3aN5)ex`Hs6%Q){7J z4mJ?R()myW)hC!rqi&!8oL1*`&kT(*!A>3>2m2`Ep4u26L%-4PYB zMLXc2g4q|Z`X`o-1sEV(K2(6jCXr~5J;|wwNsk5uyj0H;Ns8w&f)qd^C*PovZKYy5 zm$Ae|<$4y0BJvbrGh=6$1)3r9<>&%CV!>ioukbF#I+Qj`e^-wMTvG;e0CKVGRQ`f{=juq}a zCFtVGK^HNPY4wM04QcEQ6u&R=Pw=Q*zc8d&O|+BQ$ty^C3q#iaClAO*!8JUf1|(-& z@?_uzNzM^Piq>^bI{{&W{ZaiyM){LE>gcc~@+{O6ussc=3!zFSoDH05>OfQ<2|_>N z+C$2gBR7~5xM0rhZjhaW&F$R{>DKkkkf!CQ2?_zEt9K@+KvF+9Lw>-6zgu%{0)@Fm zo8Iw4V|k`v5;>u)Y1*1K+|$_e`N86wfhkDJctI>v%$vJz8k3vgcD{L~vPzMIr*&bW5h(q>KkD120d>&tSI#VKYbrX%cQTVk=QNm))nn zLCeBq|8zyJC@q6^Y)^B;Wc5F_H1Twe1yZ1fPZC%YZ+ODZZjlfJT>@#A6)HyOH<7KR zDvCXkJwkJSfh$abe%-CF{y9{1!y-67kt24{N=tk=C?Y%Ixd+Ot}jUY-^2NZz$}`FSb5Cm8FU4bJ3Uu=oo^7ife?oKB+3bcfNh%f zocsVpP9R7SH=%I!2)>D=1Ry|ccnQZ@e$=YkF{v^1^?E`^0TJF(DZXpOr2`PLbD1*m zlQ?z`SI6lq#hm^bW~kJ(Z6W0hM*aXVJUe1Gs!G|0OKYX9LJdV}{eufxAu~~k){~wl zHix|;r5C`-%*(~P*q+t5#Yjksb@8AcKB#$)Dv+kMwj5iG)E#gY4I+xV5LwqdZ?FQ8B%GRz?Dgu#V2xVcIR(n{ zIg@e|gcH#qJ8q>XW)}R;DqXueG|-1JFc5}H3a3UMJOthN0TFf}C34$U{hx_`*YePs z3dm7O_4!zz{D8g$6v@wT!KE949 z)y2GJ^V!(knd(MyLfx<@NsJeF9>*A~f20)*F~QDTKR?cUmo#5~XWsnMJ98G6HP^Ay zwqSjkxSe$?>x27yB|R$Y@3ZgF!*EJ{>S3hzz4tEcPds=?%(lu>cUk%V0w0yhIghIEW>4_CqBFNz?)fhS>cG z8E4s&)rtCx^<}ZavDcq%F0~w@mSDnjNn4nk0CFGV#aw+?{8=HI?9 zZ@~fQdj{t)6)-msF-56Qjl$uHGD$m0R?*Ikm~vzG5={!uL*(NVRUOKyA3-cwV~mfE zS3^N66jaJ?W~c#~5FTs-!1kPq$TW_a0eytvZkB%Z@UnRF%Oh4f33<4u_d;Q^rv*+d z+t{uHdT&9T^>oDFedY2KV_83c#S5M6+6n{$G*INuU{P+SSg z9gB6-=-?CBmSWx+dx0&PZMtjep|ojnUfuCtqNMsT7Lzkvg5-nrNjzT-f5G{z5W+Fn z>6^hMp25>)mH;xA=s##1a8pM#NRZe&-UbsfsH4 z<#ROSRz`Ndb8AkpTdT5DDPlK>H^C4kN#5MXY>K6Dj^D%s7D?%qa-egRHdEA$%@E`n z%J=N%yqbd8K=qw4Myc5&?Dj#BMkpa_oo2@!;7jUK)=RRgxrCq*KU&KS^Kiuu*YszC zmNfcM)^&M=jeO|_Q*U+Q_wXKM8ie)`mp6|a5cwC9)wQ;BrZ2G+!^DsDky%s%2z7!K zC>8_sCg@{N{Zy!PSASX@L=$D~A9L$| zd4u-Un?e{*Z;qAm3h|{^<>;$p6Y-7}i+a~u^6uENQ{wGdyd6((r{*WQVvMy1t92}7 z0@TYt@dKqmS~hP_x0d6=e9Andf8!hx^r0hfeMQm+x9ZmUZ6rV zI;8P?c*3-$gz{1*R2Ts>f#n%_h0juGlAHd?xV`Hh?(@1jqnLRiu&)&Csx^z4Iv9~O zCcB)6ba9t37|#gG5w%DClH{X>y5!erV%_r)s^)+;zT#o;hqOY5s+ai~o?}gG}2( zR`mE-t1Pmdj!dZMtcC&LDfafdJzFzvV^&=!W_&iAaN=Aaz$CJ=IedcB zrUtYaz~r>RtS!O4D0zB=$+rYdA?aBcNw}~y>Nw$|aK43$&=&z2t%Y1zsQ0D41&(CT zXGVwMK?m0wCm;~>H2>sBlbolB=`*bjZx)3Th%pu=lnV8bc;iS9EgRX^A64BW&pL^~ z>8IrVi@J{$rfU%2bi(I3jRZWZWE4?UjT*Bw)omdOD1!$qlpC_Kkf7)U2~F|_vJs*| zJ~AzP9jsb#AZ(dsMNaOIWNWu2Ifatk-7W3wb<&^SK+3U!Kmx@GOfG>u1(RjK1hK({ zHPr*X7&_nfOQ549)MbWF6l6njI*j^f*myI60dunJbcvvR8@~+(9!ogo+k4;Ol$LAt zeqwabU3TpF)Zpzxjv;pVP8oU&HuRcz&7jADctA+>0zP7bSLaaPClS5dbrtyt`XxaV z713nq3Q}F9oSE(bSi85F2O=xuL{zMRb+T7M`-Uvz6H@S*v^F^e$+t=+X3Qka_X-)3 zI*}R2HqjJ0=QcRTDLZJkxKQZ{ywo1H{y8UJa)RN)_yt|9PNvj$PR{MXyj-5sTP0*y zG$XBkzI^aX(0~UmYDu4TvHmL0Mii=L>WTX;Hu|D02bWPYo<~f84b_DTcW8rH%3IuO zwsc?7TP4Wd$!T2Job@U){OA%tw3oWjFNLS4Q-REsvAPgMVif_d%-hPE4^^VSOzZPC zpMu;KNtm__dnz2d93+LD)XY^OTOh|i_2D&^M^q?T$e)9xpKdz4@M}Xg0}Za6+4Ch~)@=L^PeR~l}Mmog@wBzsu&9|jDQKk?2?M98poIWPzq z$JRKYgE;~xf_N1wDl#M$Z?1H#RIu+W`apZK( z!a`V`*$i~Jhh<#o4NiLtM3ptKrtwV;(X*S{TZ)}(qRLI@UGAzj8J z18H=_`ep6rgWpYSV^%U6p;4y=vP(YcbDY?~$(`JF#r|o-0;HhrP(|?>>sT>7dk%DH zkJW$RIFQy@mKV^e36y-Shsd~?AlsP_v@;E0Sw74PI7Y(7!o^VY^7$-@d9>e^JiOw? z@B*aGCog7WOeT0C*3Xow=*%!_ALaP3u2|0JhlWX!+Mn5nI-cJxTss{=5VKRB2i%}fC--Mxj|;qaa5vi#VpX(BgkC2& zIBeaD{Od^$C8c?vlFeZSUT4e?r#eEQZP_nFxTbZ;ImCw3Lyzz>wtZ{6ZF z2;c!L?So|BGP5m`%a8-Nq8~|&NK14%Dp?C7&Wq8q*cinTXbsj zMf2;Q!C05ep#U&Xeq;ZLMz9&_q=7SkYM=5n7KWiuInt;=^wJc(0c7 z&@$FE0&6;i@r@%<-x|93%?8jdP7GbimK-yrG~^6tkC0KZuKRHZ@rh}DcXMNl)12$> zaxs4xEiWG)39ZwdDGwzvjj!IV*}IH1y2JiW`4#g=uKmINTK>s|^re_|C@vxnFcxhNwgObhk^`sW|<^e%E!vWtxyGg7ni-L zfrFm>M#hO|TJ*^pB4R*TPmEoLbb8M0xTTTmhv#%Iz0k3Hw;2fOm$!HG>~1~F)!{Ab zbfIHO83cbDa>JyX)ZE8qLTWiaILS%|s|aFsk*2iRSFdE;6nX_8^0#j7)cIOMU(x;{ z2%@%Ka^$_`@&x_Y$BYTEot_`a@d{~RbZ)0k2?jaMW2+D64Ii{0OMU9OAL|bz6`!@+ z``i&f?@^IGWJ~#n(lutTW)~Xm&5jB1a33T?JJq}LHR1_ArrI-$Ik&yfkzSyS^Ug5X z$78|b^{Rsq0A+W#x6+{mAbC?+p^qaiwu8Ewh&Bg%@<2-^+3=8~+4PP<=!;G5C-bdj z#hkijw775X6X5)fTtLuLjC0y;7lkgrP_$S3y80lS1oo)C`VfplLDj`WC6x@Gj?6yV zk2ClM9IVo;x+%y0Lkx0>Y1h7Zh@5vlQMiG#vTCD@$bUW9uDrxWEXKXwH#9a|%z@)I zy12Q}Uc0b~9=7`#V$tai?Xy#x>%x`8Yi*kW^cEzENX6t6-5vl4#Bjv{2R!KN1LN&= z{y3SkCpGUllhKpb5;cFe92;=AX^_snyg6tuc~;$@i})!1O{ydqA&BF{6F2H&wO9a< zi_#SJgA3T`K?GYW+*}Abk_kSx!gn2LL!2T0hm_?4u|uD2HvoL~1vPU!f0|q537|R6 z6=Sz4vA;V2avt#5JM=@SVljtz#&ew!5+R(SW)H;3F_$9FR;_{WI-D@86DbW;)$C z`a~3wSH|>%>f@h6>My6PzzQ@N3s(>2h6-1d$>aR%=8vM}#_Z#TxK|OaO8mv2_C3W2 z5)snXuKqZpWn2i5wVqY8qQJL*w5--A|0XFNJbB0B6Se}>lLNyiPze5)#7%S#uvyjs z@i*mtLLN#Ank2uP-~(irHCO!&e(35a`%`L*^(2x6*m$Ufar}c&(RGS%OtI&Nt@A+v z&Us}=6F{&r`xWSjXf#K%vfiyzy*ckq4quSm;5U=_>*XI7=HHkn`6$B6YNCiLUs?ys zHedzehcT-%W;h_w!WUbCy=m&!^VSksf)on=!whqK??9uHlBF}!ScD-20$_al64Mjy zpM{MAwk_^y9(ki5Y!fa*5_0!p>o)L{gd@QJ74Uf`_Y&~HgdTvF1_tDFyf@Xa%6;H3 zfK@@nuc&+=Z)oQ=W?%AY%qhS;JE%>*;G_@>Hl(0p0MtyMXN!t5CP}7v$X+=oVPdw5 zE;7j~b>>3Y&-KpFIxh*5qBpT`o>p|J_PtgI4Ecd9>3rsRJ$m100Y0nRL|)_o>Qr>i z^?#pREk@)=tC~vUgL0f&%}e@U=t~Z^XUtmOGNI5!9C?p2%mn44{hWa^l$5mY(`hZj zw_3YJnw5Ft3xOO%ytP33DG+@tdfJqFdj1=Q1RHqSn*UnSZl6p+H6tN)NPYDgt?ji* zCf-cCE3ajR`y-IqzEF+Hc4;1p?bNd7bDEwux2IbRURr%0+^NwnSPscqfhi#ubF!9y znfBk6k6KSKCPrLAiG&~cYPANpG5ZpO!sR5>_ zL73tTDtRBIxlpvfHnn_FDRIg@=8^x!)&6|{kPm^FEul}obqvvFe<;-`*?9bd1|aTj z{tEZ0!?ldW|Id1)L*Tba>Pmu5dKyiw%DA-x+n8}&p{6Z)uiJP90B)5@1e@+<*a1y} znX|w(NV}}Xdk8+?w%mprTtCEzyb&rI9ZjcE;WH5hP_*H#Ec;J7n#DEHkc$|2>NWpY zpVuQqxn-?Vt3Rb%-0Ae1BN4=XIV4f<04AeMfH|0f2p`+~zx8wK)q>Ta}HIa6>Iegr#w3)o(+fzGXp^M~jicFF=;%O;|=&gHAOyst_bv7muiy zt)#UmnANDE=-MuSQ&T^lRCiD>W?gjHMXx};Ozt><8hKcCts!g zWb<8h!3Bd}1ZdE#0lH1A!ti&kBRs~>Tn{yQDDuxr@XkP{yhDdj!XW;mTIe7X=RgXV zL!|Ir_|RtgBd8DpOs?|SO_CV8zo#q+`i&|fwdJ#xES=P2IzPShP@jNT-MM&ePv_Q8 z?xc_IA0EgTTRnkrsR-4${K|tgFzC!u3bC(K^Z}$C2?DO26;q5Z+#QgLYS?E(f(eye z;;zZ^3l3RNA)=?Z4y4~=~va`Y@NH#!^;>R?478A za=(`&S;)sBH=Zw@-Xx0R&F^D7q|4v)?75MHlWi$xIGPk)u})4ETM|Y4r%*nUIFgN1 zsvOA@c5}|EJExa~HiCfuz-Bx^04XLZnZ(|MlHC?Gt<6x?k~W(y>^2L{=tiEQ1{a!6#)dW>fbhhxVknAj5QZ5CR)nuUki z#?jnMpciNsO-;Nc_uFlx0#i}-e*8yN2Q|_C8(P%jKCP#)A{S_a*+@<2F)0kB!fwrH zfKL04VtPc*Bjvdp%6i$ef-jIjzR*){#2bAGWPM*Qpt0?1dsK6X#N_<&{ys~OujqL> zaMr`I61&W_AVe*1=$H^;lvXm5c{X)rzk9Ghb^_i*jsY_&5vhhPD=G?M)&hvO9zT=! z2iNpV71rJTR~$qRay@+&7i~@9$&68}MxwK1kYY923O_6*h50%d<0iVoN=m|7gEJ~f zVNNS4c{4ntf{H9NX>Y&@$z*M{zrCpEg>;0vsEsca1vm?^@T1c)6sH7-H(pPW6mxlV zrn_6Nm*07FCOq@adRpI-d2)Gr{(W1r6%@Iu*qW`>OD#N78I#PBBiYvMBwp8Bvd8c- zbU;QMY5x>rxxt7fRW{w~5Mq0T5Y!m)i!Iq^%3|peJ0paaoe|GhI@4Xx=i@n}N(s_( z8j#Ugw10Hy#b7e3vC^@#g6h*~Ge#@gR-mX5kc&ki7egTP#z045F1UxD2Fx)X}TI^CV!L`jG7w|<+xwr_vm26E@L{&7?yxMzC#zZ)MstIws z{quPlyrFVRN~E5d=Iij2YT4F|?G+aZ$;m3Q)RJLHHT@Q6oq0=Da6r^W{_j;%_LMG= zUCG{v(xwNAJRr0sTNOWSlp=vQ(k!iU%*88)uwLEE)w=BZ6jeu2c~H)a;S|V$kjknr zN~Xa;L@xy#u4GB;d=5oL*)lm?7hhspB!qrtY<$G}TbzTbJyk+yo4b58rOv!)i1alF z$cV$GEj{Z_t!T9WnXXY;cMK-AmsNi(=tn*G$$V{vW}@1A^XkiJ>X3DzR+>!hnd_Z! zjm%bY=1QUsUah0@KN-=UVV=0II|mH`d0?x;n3>U`f%Y3zZqy}Jymni>T@xNk-eU{!HvQZi*e>sX(n3lPGBnvj*`KX&4DuPEccOf*n2E zz0_8HCGU?pMORLDD!)0e{!Dg^#qc>8z?dSeu5Il@62o(pkfI(I;G^-wdN)4$nLi+y zGFsC_bL;g?7R+Gx7Ta=VmK<_IuWq6cy zBRZFqzZ4bZ&shK%0w9r6Mtk+u^dzB9FV=;XzupuI$c*rt^KHATKQ|yCR2!H%wuJD5 z-9ha-fJV(XV+c&!*+Vm+Y`;8Bbwvf3bF%FLnGjhth)?x(mMJ^l@s4nsmQXnF#xIz&TP2YHq+q(LTyt>;E(7*!<>KCuj{2X_pZ}_RcCh=4K zCDPsCYX9%nK>H77d;WEw8+oAvOvpZZWFXOREa5`uKJjd&*@F2YKqI%sAH_Q?`I}(Ir#031XX5^T5|c&41^!`!0*<1jJJ8SVqvzmKf~v zjl7>}r-`fX(0&hCeIIj3n`Zw&tC-E)|j1t!(t7>8jY^nv>>mfUIb zJ|QC$CmMfQ&lp7w1Rs>8Tw;4>27qD1g?b1jZq^TB23?~(vqj~}>@`^^ya@|MRO!Vg zmR$@|@SLjt8grT0h3d_Erma6UUg*G>4Pr&|FU&c3P%S5RgxDreAaVrKxy<=>HG0Ws(80v=IKTx zJB-zxXVWzxrMKvTdS1b!{F>Nj^AA2Rexl2W>WStk)&Y1JRG%6%L8Mj~m-qaKV`Tc` zE{U!DeUD9u6cCk{b=xja>U_ekt@-0sC$?F$Q0^j%{Oaa0%(1rSHIMnhgUZ`+-j0vH z)k(-?X0$w8Vxq%E_8is+pJWiLzdaO}U@iuhAFvn@gAJQ8vw1zH*@%cXkVs0PXB``O zERhsUpcSE7%nuW+aJoIHXKKRg0f(gLe-HZkRxwiXMDTncgj;qf(b4N1B+ ziaw>QrOlWf)i0_rGDyt7fuA$jWRwsh=xR1WAIe3Df(O$o=MADE7R|aDL_iUnimKsT z#x-tEX>$Q#VO&8#3<7mvT_2a|EZ6+3j~^TiB_5mfl@&=aD+IB@3T}f8fC9$J*Y;VC zh}Rkl4B-lf&{LXQGgv+Vw_;3se^#*NHf;x(CKN4Ygz?4&5gACu)}mCzK1ouMHz5@@ z%2xA+7AM`e`Dti^me(3{;@nzWzo`4a#DJXJ!zwPj%~$i&5>Zzl!AsSK#s3qxKu|*< zJh=q~k?C+owA!;7w17eQpULv}dV4MET%>ckPS8Y%qPqCS2mI0Tu+@LQNb?lL@)36C z$&t%CrUq)bzU8w?`2N&_lNCPB{6d$Lo6B1@8M~#Wbpz1F&QlA}%4d4Z2|_obQ9(4w z_0J}0ortEP)--Eq^@?)NP*6)!A(Nb1V9g?ju;y80RVe;esvfYcAEs(V_D}TfX-mJo zHNMR_Iw8gIls}5=;v#%OgMCjCF{UUWixO+TV+C;$Egw-nNBb$s4fDP-JnZ7z_m%XT zKFpy1bb4!@^%ycZZMW}QoVPb@e8GRY$_ny>m@AhR!eKG+D$=(8%oGq+1NKrgXyu+E z1stNqt`K+;m%ie}XHxM>8y?5aM~P9bE>IFp@hst3&C!A8_7XJ79Az$_YVy_0W^Lo3 zXO&>2309<`}b}(XMK0-mV%I zP!M7=`ZCtsaD?obLRGdHHq6P;HfASt`Jj)rk&?YqYi0g5^t)<-Kcn-W0zhNTJjgI* zW0X_NTXLpJT1sDP;v-?~c5yD~;uc)(yq6%M22Y|?WKf$6pGEh*r!iH0HH2dOK>0|x zrkV0sm`0o|EFp7}BdjO6MrIcIE(S?{BNK4EJ-6gn9wb(?n-0@~by{h3zQTt%aFF=? z71h*ijW&M4+BRz1fCOE=g8y29r;F;A%%xMSwu*v$O4n34SC0rM+^lY~~LwB8>HtSsVu)0iV#U!vgK7A4+u#>md zK3tB(=J}N3F8K4Mwpe2tyDj+(`8LPDzts3VG6K zkx-MtjyRo^BrZnk12Nz#^Dx)s1lN4gew8J3gvlBvTI!UQ8#8l>1d|KJ<-u#ll649Nixg+5#~4`)iZ{tSg_H7UlFF$U(zCE_)&m65$)?tF z&q8G7meh_>Y%8@0My5443htsg*TX234Uo70y1QaTU8H~jPZmSM%nC6z?jS>9f-eXY zk#eLq#VdI@uvpH5n~RZ0o=Po8ANwsJ#RMO;*0cL9_A5gyjO`RZ2xc)LCS|S2CIHxX zAfAxB{OBuN%RuZ;;RXz$HVYB(Io*;YeJG0o-IB43Z>83_$8GK+O0iVgsA?xhZ@V{1 zKS@|uYL29(-d!d-!%3hy7Q(jSpKR!{IF5M?(ZoyHH~%iXP;U>CJKSQj^<_OEzOpr+ zl{^bnM@@}#-$|+cRaJB)Tm!18iYV_vFI}aR=k%xHhKc##{N8>zBJJ|7nKg7=Sr- zcBcJKwe0I`GSqZcarIbV&2XiaFns=628hi&zG(A~4{cuF$mYcvtld#??X|S3q}rwE zU+dK3`93eq9c+lB#nAsA7lg<8U#OSiswk$py6|Y>l41kU^EL>~gtYJmgr8aLphHNp zh94#=r#l9U;uFN0dLC;8{3T6n_;1WMNiHmJir29PhMYIpQlLcMO=&0!%K_InguQ?B zdf2V`%MW?NX^$!cm;TmQJ%O1%X?@0W*_A|sl-NkDRHAZfzJ6n*(U<$?>o;jB&Efs? zwH8PckQPas!zQpzYoG9qW}`oH?iT70)J7^ixk5n_jF?9tP2})3W^MqkqTHk{D2#!_ zJxD_xyPO-X1u=*&hs4qdVF)JL#I*O%p9SNO!bamCmoWacjo)<$YVaw44|^L+q0$x` z6|kLQ^*tyNk83K=Df5!oto+otrX>fa>+v4iL7%XW0+}#iY34?#?ZGZ5m#c>gP0j4= zudJTYm*<)Uj4@{Q#eNS10`j_^H1bR-FdF`qrh7M0woIu7qkV$joIlUN_;Td?=juh>w07YkIfc@vK ztrlPnapUR6$~js<7i4~JJ!U7Iu!2)!U2`PU`X;tIpf^N(Mb_0nj2k#ZqA^B*#D(^8 z((hgLd-w@UbK(<^Va&an)-pdR+=7gsibb^fy!i>sSNw@T23v(j#h$I|eo&?5ZC<)# zt6w6VhGmaR6I>QL29?pOzG#Ibp96er1d zwC3h*sz48QrrAJ0zmgq8>wJIv`E((CtR;QLGFGd_Vynfl)j`0tQ&UccJcged<^N9G zU{ZnHp^~EgkyeEC!l$cru6kFWi3$XpRaddAS~zMQ=+HB1C>ttvAER&asH4aRDO+<9 z#IS@`xO0c#r11 zDJnX|tVDrqX15BBk?9d4Bh2WrQ?r@Hx>;2i{V$ul@xm%)MRw8vCYnpU#inc#kvux< zoyr)bWjVjoVK*5HnwrG-)-w7ifrl>PX94)9mM^jgBWbNdr=PL>oNkZQO`T1-4WB?= z>=~)v^SdGYf(HPVnMyWOtDNF{G#<%495Dk+UpD!$l>38`oQGRRG#!a6gsj&!{}Rf9 zQK$9G7|3D~G$PP!aJsEP2vOe{>7%BVx0Dl0Y`~QKM?wfA0w!~c@_WwC4Q(}|QZCuj z=dZr^!O7jtX}j4MY&fr;1aVqP$)>Ypw>&s?vp^4byv4od5fIY$Zx?$JC@I@-E+z*~8(ZPS^c-XZ<1>KZIwlm7 z_>eApNXxgqyLmX*h&@gm2a1*fIbf-Xt=tXu#OLtpC~=2CGd)bxbDR>B_)5mmFWAVO zv|3L|E4d+gRU{PXC&^q=KIkrtl8b}mjxyr`LU?AF5ZV6;^1vBD@<&6Q@t6+L2hv^Y z$t%)pi7ebYA_FjmQ#r_TD8fEJzBs=hAxV~d*q4s+MDtv)YzkJNYCTo;Sxt56?m6}{ z1&msnq{|^NR{bFc8P-iW?ldD9{8Ke!ePqY36uK20cW5D`7F9BuK|EUp5gKI>xC94y zFpVolj}OoTcYL_iGCzERTK>#e_BS^Q6h?9c6JbIdh)MNWjoF0If;W%=^PF08_VdJ! zJz-sqbVF$1Y+WSXy69WLu{1vU5Rq;Y6%>4nBYMx0j%j*{75qZwLm5~YiXxWie2VZR zf#~Zv)KO1ponb0CkgWoUWPE1FgMvIXjPD4F0bDJVg3j9jeg=1)<9?zB$X3!|Oxx`k zYWPC<4)TM&iOkBNU96QllY4{CSRCr-Y)?IfIeof3*s)N~i79C$qu|~&J*5_;B~hCa znc_}B4VW2{mh7ZJIC34b25A}5TSpxvErGLou&(;dxUm$oPJLT_PAU+8(J({T1w-1c zm#l+o$Xf{XreZ1*qSW4ivN;+0r9VzVK%F~kuHhFrR8$p2la?(p+eN}tydY%zVeLC5 zawq)rvGF#3Ccq;v5f37C1|8x(6jp5wlvQri83A+cmkzU$BvKfURufj&`8!15%N-k z4U#?bmN@+5z9W|i#I!fkAcWY1Y#syX(JaJ9aZvVJzL{QN^YWUMmKM{8ojBYtFOYaUe>Vxl^u4g(R}hMN@@@30)H&e->yHdZSM%&HK7&NcWbQ&5V$jJ)}}R_;ja;u9S;`(##P_Tk(LcHvWv zN^ZT;+~vr97SUqRDE#J34H%0Y2BvzUZ{d(rltxTs=-LU*y;UWBZf(p?=}$;<7FiDe ze)5mfG#rtDDL{{vmCK*iN(Ib0%z}^Meq?GodzQ|)45UrGo|+qtvc#(lr?V|VZz{k< zzPxMeq}tF$u1yS?YNJgqJ3diXSLBpPAE(#Nw?_NsR>scv@fCEE8Xz7!TR1NR$3KVD z%60ojBCQ|+xx_=Mj##_TwqW9q%F2Vh0uC1}qDOR6|3tPAPfg#3a**|VS(me*MO z7xTnWXf*7qaj7YgutDfGVHdu4=3LgWyx1ZYMba!+9t6E}9M8(^5ey1Yq&l(a!#~g|9WM{+8EL z872zo@jQmhSk-74)j&I~_{*xpE}Ypi(#o<@PxAI#0?IMRN}gV_y{Sg37|g=DZtR}i ztM@&2c;!AzSrk5iWgJqEkyg_%_ZcLZ2;Me$I&3NX_cTY^fb>3?CU7=P!ZL*ur~FX9 zXw6y3>blrGuu%ZVh9BF? z*PxIGwm}MZ-jyiRQqe;8KkzN8H_H}AmO6lI_mx-<*T-0UyNPlMxG>1;7&L>$93NR` zVqPZcAM@+iarz051GU5K0(wZ{d_Wt-AbchQgDKk6nXtLN`uKSJvf)ZDixwVh5?LxRc;l;npufp7_>Xa(8iz?ATL0TL$?r#vQLU_Ude!LNU#P@ zN6Y5E<6DjeXt4*b7q!^3T7V~HVO__sY{HuDJ-&YIW!K=-g%0S0ECbPd?t$6?FY+n<5F`B3 z1RW4|qkXQ!&2%R|TrXaukcwd_*ffC5^@zE?{3-T&^& z6Q|b^W`WNXTuI9>AjZK8M^dpghtv#GJ}V7OViS|g!m@hr1QTNQlKhU;EG=XNar$3Vk6Mr z=j{T`St6XMq1vqPXowatq#F#_>iyQG@oYe4qDuis1+(T}EVC$yc}=T?7O!Wh#HN%t z2+Oqw?x*!8EfNep@XBb+7aesOTiYy)gH zqV+b)l{rM$*^pTCA3B45u2G!mpGa?^M5qB0F0aS+1_r_Z#bOMe909T3KU%{cE}48 zM6lRE8s(y!vv8;Yyffl%6S(^9r}b(R=6UHu(+Ja)9pK$jSOqK*Qc$mCZqV_Ny%Vj{;pi($;Ip8$Ur+Wgszp43V;qUZK%{OiQ(c{hM6no?~ zUMd_A_^uV%mOBb&!~|)aEacIn8U!W-kd$9=pph^&W;R|5#DWIG_#RH79?|m)ypS+YMK+jfO2g&E5#lqWH`B+Qz6z>F>5D= zTxo(CF(e0E`Fkhi%IbrNDcNP%Xa2=L!;%R5%)|;tGQaI=>Nv0W>NW-Cs zcE3vRzol6sF62=h3Olen2LfcwuE@=m3L3?}?nYD_fyXx8j=uW%4D%UOr~DRb;&jzM-<(>$mgPdP z<*IIPE-z2yr`sS>%?CeDJxRYyoB4a*9szN@J(AvPUSI=Y@E%u^-hWD_jWU|pwMYh% zBrWu#v8*R`Bj&)Akj*5rQ3N+)e>q+yGYuP(Q7L25?prdHevLMp32oXWcM3Iauk+pQ zpGbyg7+iHW*oP{|N{YzBD|RN^?iIC`l(UxyT^<@l)N{9OoEUDSgDe`Y0JvUSf%PTd z_yQX#v`Vw!IR6U~`@gRTd!ER5iEif`C+s_K? z8bIUBXjUqK3pBmeG@&FrVZG@RAMhfMNTw!E%>)+cZ^5B@nHIscf5vc7C!sd|>5$2! zY_B=Q38>d<1Ca!yn&|PhC`a2-(i7dvg!e~*q|EtpQIBgRy4&F+^|U$mZTVomBg(H8 zG4t3THj_N8)WR<8gBY_a4tuNav$uTCo+G`n=q34=f)2ATByaW0Y*)>(%yQGh2t0U} z?_qlPLQ#F{s_ktS-yzQ>DAZ5@BVGyCrB2=RSID75Y#FAC=~`Qk1LKa(O#%f(gT+>p zK~ic#pI?j&ppQjrIy8`4r?32Uv=JID2y11t;Jw6oYyhtJ97sr`bBwJy_JKmcivHAU zDr=uJ#1*QIhEh#ew{|yIlL1fHy*$-df#uS!1S-j^Hy1t6ji)FE3XkROpH9^+))WhQ zRExZyO5lXzF|&kpxvdqlh|^6q9Lg{Zj)qGSVT!Ry8Ujqu<-%azLc$*un8H7O%I@Z>)d>@; z$S_E#5E%ZKx2FLufrfYF{&)cUBDlC1HrY0;xO` zC&509@z~c%1k=8>RGA=x9xyL>>Mn+ev*dGrALL6>P=bLlct#O6?g61)o0iQbNq2uy9K)IQrX$m2)tfT9tx(9`IW zR+Dm)?gg=Gi6g9E|13mJLGyxm>5+Sn{90SiF@(Z%;K@sPdpyVv4q)ccmxkc#tM@Rd z$7R3(G0(r3dvHFbfX3N)79*Fpeu|eh213E&5F@@aMtoXyNu0u@zvzdPS|%CdO3!BL zsd5@1&`s2;N8b3EYoPY9ee-%Kk*_b{=w_odL1NKiZx2=P0e*5r1!!3ZCvCyG%-Qk7 zqMTSceM<3mdk%82(Ib!RcD+%f#02DQk`xi7PoSgBZnV_?ffy)Xo&ff$svoYgFq||} zv_f?g5I##?{#QnheAK=OS##AHsqZmnCX@K6Wg?60uek=vz+KiZiG2;XQadV7V&qCB zW#~z^SiB@OZvCSs4M|#TZWA?;ihAeQF;}af62b<%T+!FqqJeUP_kt}ZNT@lg^l5g* zEav`0I`hyPNK8!Fe(9qXrQ!Mg*I=&a+REn9=u=^Hl9GvGs@g!!EmVIvHya1Pfid!d*~0*|Bx|>y=*+lga#tU*&%|cFa2u%e{0it)!W&=l z_B1AoXUos(#$+(amS7DEx|!L)KqA>H4T)4(B7ru`xc@P9XFtNE2J@;)iU_NY52Wm^ zetcz>1m!fxUWO;p+}0}qWjW9qs?f`KHQSOG*%XV`4Q;;4H6m8vrf01^TpcD=_)N2y z1lk{eiK&1FE4I+onnP0RoD(tJ?`EZ>Rh=KKK32fw8#Ed@mD2$!s5gXf%(WyDXdzk= zOPmqpCUL_W6y@>z&F8LL;v@F+VZ_Iu~4=D3A-Do~XBdCz2qBKl@V4Fm% z^rL)rY3h3&67gc&5^gwqjqg!5?f_-C}Uy1jO3 zIZKd%#nk4VuvPtL(f)Lr^C%LqDVCzR!HluGq0fF-MPs)YuNEU-!MGZJp2|<6xKH^sL4TMb`j)ry-x-jvRpO0!mvSr!XDAnlAZ5Nh{( z^~UV^re=)|{{X~;`;r2fuc6za>V|F$OLXHQ9=33HG6g7OZZOw=Z88~jAP6`Xobu*h zof@G*XskSxh}>qmCbM}PvRr#+X^e5;SF)0LHE`o1VPeCU>TQ!2c@|G^pKL!Z$tNA# zg$l7x1X2v-(f7AG^+hzMu6vTzq5bLs22GH^ec4bfaU2T4TlIl(4C8iz**=RW(0KJ2 zSp~98Btnq?U}8HtEb1uIK~!Hf2Npz{$?S!);EiJw?VE;S`!v@fiLlNBSwct)xD;_@ zh`_@#_}$F}$+>%a@NA--4H+AFMj3)8L|Q0hV7m0Oy?aP+rFfZ&(@UX;#al=n=N66~ zB#DlV0T!xDSORD}O@dYv0D4oj-_siNY9nn&wm-zr(!X`iIaWp48XKROn4HXVw&$lq zG488uh56RDojFwa*_4UKiO)(NqwbSdfh2ke3-;&f(e~giPqcHwp<$syg;W-#JfbWF zxR(#Ay?cgV%r33(KU?X&*wC;yH1yQWj=`s9jv+lYE0yo^)U406OY*BXlD#+c z#%lrV2 zvx_57j7n~>SvZ8`zwKpoW+ZX6r>1tr50<+ zS4Pm~UY=;734pmbSHD*?kW4CgwbUvNVC%^);|jY_0e?Qkg6i;tHkIUaoCVg?%k~;N z1W?&-e*oaL$8t4zAxonEn@5pT%!O)x>sL_C zu_M2B?FU9a-a1yUDW#)Oi~$Cc*^YJp9ETiQP09INSVc#E-BuC6@|On)CF__e#>`Y4 z%OlP{UD2GUKYj=aRbLqTP-0K@CQRsU71#8o$$cZ9G!vJ6<>AqPDwE%uO z0KTe!1!atK`5qu{*$u+oq3X*;`@iy)jHdJzn5AkvB~^(KJ+`#1u|!@-4rb!Dks;b0 zqCq~uAe}=(lSt<-K0?64H+Hj7wS8{+M|cy$8|Uv8EYALGg*=w9+dJ zv@PZ*+SMH@P!7C1Y7?APf0jP8;MAWE)ATPceRzf*YC5=*?nNurpZu4A^)Z9EVvIvE z1X*}v^Wg)WHlVip^P+w3P!j~TvHz-!C8TlA$neMNpjSHWltGLkjYqnm&_uIExK<~Y z*k#HGd38y3x0;vN<=nKEMFgPMFyg+31upgT;$ddoz+HopK(l2zSIp6D>1JgbYfA|} ze80TP+GAm(&0c8)I>HZ9n*P;egN`g2Hl^B+NpSE4&(bX1x`XGQoi9qc_C0yhyMopG z{@j8_eR8mmerXY}x5kY5i^L&YVA0414unCE>vG7x#74vU;)ucmo<K z%z|a})7qG`*t^HP3ILSJA5Ro(Lr8oe7puCb$FA_JZL*WtZrH&%!ORPcktIM-bv2!z z-inr~gM9e(omkbn_dzB@T1dyXv}H`kxes5^uu1p<#0YyF+f00za|@gw3-BzFUyYi( zCnGDonL2-uytmCgsRn0{#M>aRtcTDFa~G1(p%kcOfXKrR4#NW&j@1S}Kpb)HBKJiR zsE!300UnKRCo$ohS=A^hN2T`2xAfi32#X|=a=QqJBh?8%?d!)!mxsl606MUMz=`mj zl=N+RB<8p$ms>>2rSW=H6_2*&lBKkDnRG>2}a z+Nm2_VySNr0HeU%E?sdW^h2b2KiMpQ3!e$}uWa6LgAT(ywP|hmY}Va(HI%tKZ+@Y__PMLYkx>YBi zd{VXoYkd0uviJ4@c2(8g|9QE0?%cU&l9Lc1kW}wnV-1o()Cd$%b4C*o6s@4OeQd?n zwmdV@5=3j;0KnqAIaxM1(S7Rc3%P&Vp6Y$2dW_bsZl z4c`L(I@u${;-FaRxa5DKO&8Ttw3WD&#lpc+I zRxL0ed{CbYB1Wgx9(sD3p7zueS3e_$=!wWMDfa~Gae*Fx5N~V@XJVz{M3l4{B6-KklU`f+eQa_xzCv z4{7x?KbC+5?)nHrxX(akH{6_H9C5-4ToP?nCbt3nHLGWdpK(K~YI0Q3v^sS9(Xjfn zdvNe%_0}U{&}ns^JHbVqm&#C?@}ojzg0WZ24jUZ_UGAR1JuvYt>(i_DvPWcBGSr^x zl&YzjR6xqBdnq_d)z_-(z%=2fVMb>-zE_8G1o2y3Wue3Akyx58S(68-#t&h-Hy>0@ zv`M6PlMuz+ctyY7#?ihG_lDA-vsLm@UNH!u(V7Xe8q(WB90gBGEyf7;@;?qS6GBnN z(10JAl3DR`s^zdzwU35+x+2kaAm@D)s*vSHb_1mAygK+WZStG*g+UBoKwcjufgO6N zkOR5@IMP@Uc0_rR%@Dd2U%bqC$Ji^lnb;9^jpqC@PBS#`74Xw2?xbr9&>i1IhoT*=yiy;|!APkYf`PG`t0k%WvT~Td#T<~M?eHf~^8+i5 zd_v2(x%?rfuOf9iNl+&LOH z-N?VXj(LPb@P26zweL!qd$H`U#$xB&cqko@^)$f^W^q|SnWw{N7{9Fdl6Tmi}CGnV|)Vk%+X?pWmPKh)Z`J`Q) z*sM+o>Mu*9>>h}mCr<2_`dTZVbvDq8V&@;DMMnh#!H|C;+xnWTD(c7qsxyplChYH@ zj#Q_-rE1FMjm2@s++}z@Ld1tqEf7T>74iMkMF5vi29Kqi?S3O@HPg$VW}WBQ5LEsQ zEUOf4SAej8Dhn(JtD+aJ3zUyYpXtm`;we_Ga-k}$ct6kVu!L>kmAV+)bqrpN-Fa;^ z+U%b`HxRg)U&h^#sk*F@L{mLTfjO5lb!4&SI;4aQyIj4bb z>#M0v%GnCAnLJPT&IN}CT~-%cLem$gIe?$Y#I%LaqXuAnDt%2r`*y^BkN|&xf;i=7 zSqIqevN}MQV!~ZscuCkcv%t3c`_`G?w}$WP=IsHF+rcEbE5C>Z075k;N!=1sx8R=B z+1z^a1AM_80y}HN&H|DG{+LGd*`lp}^|glLpa(k)^LdP>;tufQ5LWA;NnPBwSP14y zqDlEutowSu5UdV1tyAoZ#*$9*!|*f1j$F`dO+xq_GUY@Qq)#dVzw|El;v=;V<3{mG z$&<>&HkwC*AB;P^;d3+%K7G~84xhvYXHu(rbg zWf+_*J8dgzgwbFO8O#YH*R`e91zc))Ph}WIWFS#%9$cbOf zSX6Gljah|97_)*6(w_qU*)Kjei!0Q+vqF$AZFriaaUhJ`@M;OF>)skesNfKYU{+7IW$b zNL;KX6KbU}six(1!>XAax@U{A@M_V*k59zFU1B=1#{j^xS^B_;EITIPwED>Q{!C$s z1(q$$8S&8vUsN;FVzk-GoCK$3RT#3V6y4NA*mGU&b8T7Mtjyl z-CTZfdze25CkmVddL!PHuCOl(DN@iFmYcMF&txpd&>Ba^hM_tJ=%w^(T)D`Y-~xdRc+EnQQBxoe{WU)iVh@c zLMV$1G^z%Xxk90Vzsx-wf|}J;-uY`*iUT^Ha_Sb}P^~Of!h|gE)3JO;ThkbXxDbL0 zi)4_o0AeKyF>{-Zlk0GFMUG;Ox0KhmI10xIsiY!H3))K*Bg#6E2o;s0U0wDCc(NoJ zDXx2mS8*1kCX@s8DK2mj%eoi+YP(Dk%0gUB^(BHc66$4(*_wnTJpx@~aG9LdOq$K6 zH_>#>F*00J5QXL-W#V;p)8*Ol$w6qXYqT!uJ~LBgZr#*?eK5qti0rmwX6CR^qzOQ{ zNzI6)`si20XgNd5MB^-@d|oOFC}f` zPMz|{f~bCf_!c{a3c@Wr^EHlBUb@&gOkNJF)DY=K5^EeMwfljfro}IG$VaOQV=ItF zo#@#BtJ9{iyYhbKZk4@hQ-!7}zi~A(Qhkys!O(XzOq0pnKK(IwitqaJyLalzHH?+tcYx zlDk27UBf_S-H_?(zPgV1B%q=S_yEcT{;-}G)Jefw1B5lUtpol@S)vZ8A+7e5qRoUw z8Pr<& zQi6o^JQ2MoKq+lc=cQ5GVaYH?7Btu*+xV=oCX;H@}X>rthtlVl~ZHP|+E~ZdGz>`%k(pF_N`VvaA9^gMsM`CF%WxB{~Z}u!ZnUTw0 z^0@zZ?=62dn$!+zk3SAY)d??tqiny~#V<+xza20BE73`|8G!2v&V=tEocuPZ8~A(& zrU2>@Jj>r@GI6<6ct#3EBxD0>)$j@0QbrO}#Yy>iz(7=9&D2QMQtcJ;Y~QpM;;Rp$ zgqZ6ADJ_tKQ3WW}KkDR%UW-7n3Bf{m@lDMY7bArIy_306B445G-G<`vr{XUS*`83W zs!LDlZ~&Z=ZwZ!MG*)B**k)l}yqfuA!Ic4QT2JPG8yvrE2(7*ykAwx!} zJFD846A80q|G~_rVXBSd(tuKe7}E}es$D%>(do*F#JLf`%qh}sZ2E$2QESJSoz!cN zU-U2cZ@rlR_BzH^t)xr*P_Rl3F0Z?!Mpb?^mN)cTpKMQ+p%y%s^MO&p%rcw-RC5*f;tX!fPn z$$1pKhi_B8*(AKG&M7H$cF2ar)x4oMteMox`Vb&~#Hst^7ymWXzc+!#ha*%Ezxc2E z&q?w(V#mYRXd)9xbauD-THc%8*(cqgIm-Jc&{nRlpdE_~V{L}VF zmj9P);W$N|DWK=lQ)+dSpU2JMe*TJZwz3>Nva&5z3J=UxOeS0U+|J8 z=id9*$BdkCgL8~1M<0x3&GUBd_xQg1zU0p8e^K5sZE&=};|XApIHM(CedE z*QO7@VL=!dXh6of;Y;9;j1$pBx=evp%$DScH8|(AAqbCb+ottQdZ|KEK+r=(9y#SL zyyu4@7Q2LI4uY-3eB1DbI)`EduAs<1Lf;?>I_V}ib<^u_dX>yU;eTt7Mmxq5Rlhfm z?sV=NFf5y&qK*$TN{|s)WD}_h76}CdAcX3>wNSv9+BXV6DpqJRi=j1-0C2WZc43u@ zrb)*q#u9NhroR-5X%^WWm|@W1G>g=vr@HC+9+JR5LX>xf~ZNbw76%2HX`#xCM42*WT=3@fsTu{AO^GU^w8}S?GJji>6h%AyRGgu z_(ov?+XyCY=H*zzWCWSjoDkRFRjk$(x_rCrrc6(hFg%Je83Xykh$W?wwVLa!)j^YE zP-h|ukGcQU{iT0Z230WM7jzRiCt5c4K149lfLQ0HX^yA@J!OC;1tkwQT#FkC6Q-Be zqQ$N;KXLz`GfsYQf2a(h*P2{bG35fEX2` zyAS+Dg4jkB)V{jCHDgXVYWv4OG34zP)(qP|@|DOIL>ES2S=?)Jtz~s(odfOjurbbG zj&~6{Wdt1j$6yUthcdq9wU`^ja)PS0Rfn-qwh!RR87hr(TArHgf>#Z5yGtaFebJyL z$y7hSUsJ&9+o%jk3n6FXev$IU?}rpP#||F^I)6t$D@uB0%l`fM#!R-D9a^52_httX zNx+rYrIOD_q|+|s2NAR6@`i9ltjr}0czJr>;~0UDxLPa1@}aN}9Hpy%^lSA2Po^{Y zv^9fdi^3s*6?#f!u{0U0wh+aH8PUNx${uBoB#6B()#R4ZZC-B_B=8?TOjzM6t}UGl z_PC8i`v}!%o`vQORnAM#g35!2d&B zsR3kwRb%=cxwfrJkkSGuMu&BGHx1~a+QdQxZ=1$73 znjUgbXSL-l!mj4Rg0f$V;h{VGMB?&Y3YFsSP6Ldk>|7(=@{n{`Qf0gPEXN?>nXL!C18|CUQl2RF|*;$X(8}Odw#qxduHEBD7_9aFAr_jWZ6wR!|3&E^AhT z-g1S*mlFEuxvJB1G;A>v39b6-4;g54{qkzCOLk3Prq1}lsSRwl58aG~qI@$eN>;Td%5#;#OG9R_W!@x|rDXkQq&IR%FeI~%0thBdv$!RC z(`BB5PJMwAdm9AS+s#YN(Y#*;)?)-^Ku=8PttDSt{Ig#`pdh#2hc zEA82ul!ic-gzBPwt8E)n^^lAF(CEMrCq2{=Y!d1nYrW_(slM@5wPA9EL4{mcID+#@ zQl0hRB%4%GQ)RqfCemqi4h~z5-e;MbI$67GU}!9dcO`H%IWRC&Sm+p0vuJjMFnD2> z=)4<)Xk6X27WZTWP-zAde5K_D3_R`=2y!bhHfT>g=Zrs2qIAL@qG|ai=!VJD&2H`` z^dWs&h#;$$5n=eEQfy_`H*%|5%1B`aEXwF;Ef-K)yztSBprz;Z4T!_uIn~GW%0aNr zI#Yv?YkFkk52WQ!vatOiZ(wYEQ{j{urA2PCb_DNKbN*B%d(N|Db^|gQyzmlRVJQ zk|Y;3OCsUgQtj8U?;d)@oBBZGVcQ<0V*wKp1}y+OQBB4Rblmy)Pze=E!_XPknRnw^ z@2KzZ@reMLV|M`bl;#wz@8Ea8bZe^n>%@sL*RvrAHe_3v_E{FZJP@%CCPVq{( zA$tY$KrBDIBiM0Swq_@N^vQ_Vz8V+$5&RkRy`ZPiqEPJ!CJ5<% zu6#7N1RjvRF=mtHp|JqsWi>B=X480U?f9b@`<{M!uX$20cbTDA_eLqh)l04#j@2Dq z0LiI9Z)C8@&`A_P?mwFQHZh}SEA-FWPXp7{I6Yp#%_jVg^2@!~n55VCatBIfC4i%9 z?y}Y*T4~`ef9Mus`E==x zNN^ai%J*wYLbh|*h}Sau2ygy~Z5m_~QPDxm%8#Z{s4bhD2hI9$NrD+P;gZye5(Ta> zIm28p26a-@3BXb{!vP7Vbr%d@TJPtVBaj};H)#*PC-x5K^szTNF|3nK`Yt;f}?GAA#1`JHgp)Bq+3Wurgz8iLj zpwBk}TE1J3!sZ$k{%gV=SmKDD!`DT!qR-Smu4_b?dY{p97`!k;D+~xMaVR)Wq>@3 zy;v-^iwwD6FR=-}!L|uKgMR2x=Tmv#or+<$Ngb3kng9>yLdK8@1%hsf-CI1<4T-FM z9zQR>yuppt8=*)iSbol0`6f13G)BP@&U-ODTV7lt4apPNd> z)sWSAHyfxnZ-@3J8AE-DLvk`|mTzE-m3&Ax<#XNbx>lr4oI{rYgLzu$jTjjWPW`2M z$$iTZ=mX#V&!H!GR;k0v3))&MIut})m`g+u7{R#1Y(!_l{X{C3?zkfr^@AQ*49Dlj zJy}MdlIj=V7AVVtZG?M7EHkm24A*f!X-`;ul5EBJ!ctdQsgoK(^$}x)d{T}WoX86_ei-U>&>A45rIYQ#oVJF9h?nsdN%e5b4RMa`0Fporz;cBHQXs3D zj|wA!AiSWQb2zq5PK;OioDsP_X_WU>X`JO;x(TdJ7K{k8#)~vvoXr;`5rHctocaR_ z**fIuZ+)qBO3=g1jg?uYbrT6|h-2VaYL+{8SiwA5vGLA)N>6!aP72>=lpWKWHTqD)g@EE=oBDrBZG0D4$&Mmaw9k%C4#7$g7(~*W> z#|v(Dw#=SgE1ggN3m?$=*O5hRUI-ywvl9T*tg6o2lo8WYy=ifAh?b9*)NI+z(QIDB zDrAKeS)H9%pI&YvNUXsy+IkxwLC@O|$vb0nnL%C6AT9ZF*HCX*3QdFRJ7le0Vr*~Y zTM5t?rdpj5)5AXy!=iBlBQ?~WgQ0f~5nC7soB)Z*z5vAoENy}AR%=o<#xyxK9n~Sa z#Xqct*_z&Nbi}HAI>z3py2HY6&XtbM@`oy68f{1wJe~1UuCaNz5d9f>g&RT7S3y5e zQm?ct;_fxC98b@L*{cG^%OhW4CE)<6l%}qz4FwcgYR-`Sq7;T5Evo!81*D@q0s#c7 z^TNQ|EHA|%Rms~ z%eUH7rd*--q$8Uv+vyedvDrelu@{uE>hf%2Q+M{2n1<2n@a#xlwm>OTT3Ty*(7=hC zXeeL3Y3MWXGV%r3s&}0w+3D{OPDZK4z#Hc3-04 zgOkPRurg#%5s2PYD>n5?^nA6e7p9h|W3-W@(T(JY#)aTo#^idWAl&tMS7PdSi#EqUFJ z8hRlQpc|ZN9ujS;K+)cfyIKN~9Gt+NK^MZ{2(w_jis^zv(6NMm-(%yfxFHKA?o?co z#D)}T*{NXTV+qxgb49ob)R)KuEs5idBr{&ugAc`vfguyvUoDi(73BnhsDe_rsJE=2 zxANPkA*nS(6@9I?Fojs9!(FE;72I?wz+$H5on9|ZW|7|u6ru?W6y9Mi*};k9M<_9! zd?7G}rrjdAF#ANAaKggHYB+?AYp6PPO1He8zV;QeuWQPnlW6w9USaN|paQ)Zh!={iW~hAw`e+#EKRoC0qV$!bWz0sAUQV~eHZ2}T*! zX&%T~^4NAR&#ayLL05l>@Sc*z{AqNB?PG}2C`I`Zmjz#vk+ zj>L2ML($?44mB5ZeqbrcaDazgB~x=&?O?}&udE<=87JCe^W~T`59EArm~ggTGSNf& zQhskZ7!asWHxLM^$I+!hn`tnJvQT&4D!swxL9w^-=XI0i+3~%MrLLR3k}$6-T{u!q z5C7eB(pOVq8s%gFRn^(}ypz!rQV9&YqX2I!ut2U?%c!tikOdYA3~xRlJD!#4v)POr z&V)xMoS)L$G_>!MWqUG*o!QGZAMj`d*0(=mzsa4C-3 zy{Hzc`oYg3Z@^&#ha(19JNpeC%nH^Z$d5U}x)w$YUI7lugP=2J&r8H!_&v0nTCD24 z01sEOzTl9PD9uWQjbL5-_$3&zARz4rK@0p$j-l+bL(u8`aUB>)Mte!lLVYgsvru0? zPd^R2v@$2kgJf4w=r@VZM^G6*M7eNf6iLa@6Fic&f@&($heryN9CtskYm^Ss>u7mt zZVNOcX6jV8G&?w0<|9phEjQ$y?fuP(lSB0%z7pqvurV_a4`pzHTG!X9GIy6bJKV?jmLRzaH>7qTeRF${U- zhnU~gqNGB9K!XCEfm38X=+0X?L)yz^?lKgw&kcPN`%^f-bp!FtpSj{Tich!cBbZje-?8`7B3b6^``2x8)q?V6wao0=d z_I%JbupSp~IbKkm7&I&|Ve!`fEsN5Ww|a18Yv@XHdpaOqHOlKSSsXvkqA_kw5?)&E z2_}I=?#Dy&@x?d2gSrGNwLYLK$<~2cU)msIv2;Uk*PoH{J4`4A>%M$)Ox3ll7Lc1Z z&k*RU3ooI;b;>z(NQz^fIP_|MMh?sm;)kojwd>F7wV1Vd7(zY(H*D?VpTS>|1d=V1 zmcFdZ<~)Znfq+pfLpE(v&SUS9q71c;EwVcDxUhUT@a*!jtB=D9K=UZ@!0+sqrw0Ir z1aw+A&~YX-#29Q$7|&>^NmGdICwfK9as)VDTo!X}uU|HB0({=VE$n`}xc0@X^^WAd zKXd~fHbe-JiIg-3GEfc=12ZX*!R+aevo!5)NNvRm79zrr(-bHv>gr6zqHZ5)fs(a* zmaV7{#L02E!VSE>Wo#s76A@q)*(X1!QjKf_ozHo-I0ISv!i=C17)xQJ7LX!%SPY;w zZ%xSX!YBp$S6NAltaoBQ0Gf8rP9x*$Lyvl3u5;$5=raTy>>;Z+n)>pP2U#ZAT>V_s zHHHKrUJzaZY`S21^ZHMl!QUWXfVB&M17^9r5*na59O{k0B%S>MFvQf_^7&TaNg{ZK z%vIMOgf29v*`N3roFnPHKpkQOk5mSiP-C)IdJ0;kCDq$p3ctsWRotb5J$qT`Jda7}G5LdZe7kWpv>Ywn@Z=X#g{5o~{ zncO=getI}Xfx$7x$%kwuU3hdjk@9VAPm!73oj77vSiZ%1b`HfU>I|x>qj|VDBVH(h z>i6ml{owEuaOwysje|T0n4rtZVUk`kXgU0PkYXM7AVndJ3MaELTG$GTa+O0_(N(UMzG>?*LL0zLV-0$eG z{GMjp+Qk5{ZHlv*+N-exRK8@1WkCZJK6l%%SkPrxm9wxmap5-%{%mX^w@8E<;7Fq$ zEA&lN9gweB7~Mp@m$di#6S@gg9{?i~BJgmCUQ-Gv(-VC%kQKx)QcgshK+&8iFG8Zi z?}5ssB&ZswIN6nY;G;T-ND*_+R_DDn=cFDuqX?98w$RDc#p@P_=_W=~@K`W&!ZjhO zK7Yy)VKQbaVm1ju5;;zR3WtaVf+!o7DjguH{{ytNnmQiC-sT*4KAzK;>gVJ&)$bnX zi)Vpkz^CMD_nf5-2bkJ5)3A%{ee2d?aoh5ccpe(q?>T3Py(mQ3YWq1doJcFRDLCzB z*f8lcD^`@VMI7q97cS_cn*}p4s|=eY4fb-53>BlsFnpOS7smutRj*Ki68BiEgH?!c z-JA-^;nj;eJI4=fOJ$6mC&m-N?6Jr)vhWIBr$xm+l1F)8pJkrS5}5*>hp8L|g2odP`jC?;y zKs7)DYfRD{zsx(|#OS2V-vp|9fnGzIpt7;~qhcb044C5nG~d`yX7ppFtWG$T3;y>p z;9KG%q4BwgI=z+{G=k@H)|H5s>Xm8>hyzcukf7-9tIMzO^yeVUV;+3%-iK!s9&uS4<9PY1)pNU?|&!(2z*r7fQ z`s0SeHSp?OJCf`M0G7D5s?xk>sQ7v*o~C!($a1N)B-M>10d;x?E=`WA2YU|1Wie=! zSED>PHFo8t!{8OFmlM6$UJP4+tQnAu%UF2)f%yu0<01Vh?pEq+qdvr1&8^NphiPSp z(P}P|8w^U6hdfkUOf3no8N#b{=O{<>j@Eut>DmYaWs=67d|8_V}UHLgm18&|ITU zOt%F^$;`|Txu_eV!?p#nMqs9Ql;iJmeIU#RM~t6~m@cykbrGOI-`Qf9;^Mkwu3^%# zO_6)IS&Yz{9C5JBB|zv*O)gPCQ28rtM&eO)9)$3XgVc;bUVEXtw`{h1{FuS;Zlj5{ z7y721>T+RQ=d7|gx%1A|ozX#MtG1_xZ>+CVBPJdVBgTBLwH;&G&~A}9tQTnR#u91| zAZm)Hl2tPrSU%CivcHVJ@oBNTSZ!~!3N7J*FU$Et`XW^}m5q&p6~0b!rAg3#LX@{` z1-1|k^vy)R+a3s_RONCr+T!b;Qjj*rOM$m=Nkl}nRFn3&h-)DAm#+;=Qn6T=3?2%tP0=HS!zU5=P%a(B2!cHu~P zas=7Q%`hlDTH^Vo^sS5z=9A=B9QqH;AD~Y5CiYKVBO@d4mt5Gz(Myph8r5wLv@0=* z6MLL`zT6j)pbO%uV8NGb43tk1mz1SZJ$#L`pfJNdbG}tuKI|_T94)s}u4_+^R&_r+ zdlbs+LVQ3HrPSuHhjx7UV^;O>uj*GOUt>B|b25VY{kCEc!Aq*|w{rxhjOSWIno(dRJM z@cb}2KMxL4TujCw5`-tm#B(RK;P9}lhaktvU<$TW|O-O8bn#k+l?P*v^D}DH# z`2@}mlp;f=Xz)Cz!lr}z@X@kKYn7ECL=)+g1Z&4_T=E9SAd1>SMLSTRIQ!|3u6wp8IB-{Nnk_{MhfCUGA~vErlp{41)U~xP?f!u2bKXI zPT=X#5F!^zsL!Uf0^!cl++uOKA=Ef}kl88Q91E{zBm13=dArMC`OiKE|#n+nVFwdB5Kp^b`cr-Aa z&avRZ?3lk=G;pKVX)S`9tqhz zpY*)ZIs2M)uU*8AL91`X!>&0bh756aPCYDSY*@$akYU1{-^ z^vmggrQ6akQQe*Ce{!nn&h(D-Khl3sZ%_X%y^Zf*Om9tZNxzWZoNh@!pMEaADZMfM zY7z`swsv(odz=q?^;L`KxbNrJMNg%Jh@zC(V&<&K!;%z|*e zK$l9w5XEXoB1dp3R{lDCpdq*~{59_EQ}05_c9g(fksa1!_13JuLa3+Vy?J0un)7Sr zW5Xm6HdmlcFc9`EW@bng>s>ej_vP(?K@E=L~X;K0=V1 z#;ph5K`V$Tr_e0|J<3$2I%m*5dcm>bTz#|pIg%0-kN=rZ+Oii}p4#3USzS;rRawi6O;`_`7inK()2W~_NcD=kq5Xutvz~voQPQC&PVZw=8!3oIH{We zc&OOwjPw*#&}f~67(Cf|k0+Cmg?hu1x!59PWE)Z+(lx$3VT9c<&oM|j23W{rfCVrs zX;i%zCN#N=^9?rRQx@y>C^r&`O2xayZ~$F9IiLI`QrYQuNmv`vZA4YEiX)aHSoP?< z*dw%1Jz_s%SOr3Hp6igdjY@TTyExbHswTXj<9A8M;r(pA^EN!`PyAUTe0pZcQ%#h4 zM!R^IvX$>>7w_bup~+Ad>-;!xQpA%KXX(w8L6dZ)`g5iVk$ax%Rs*07_|I$??@)@` zV4CPF-&{1jTrpgn;kw<->3+m#j;hG&eDIE>I86zB(GHp(;ItLDtUyQAgP%;RrVml5 zVXS-o{CcHYX=B1UKS~3bpM9BcGJc%euT~qR(^U_Js&61*){0wvu0> z{;xsq7$$@)Ii&;wtTq+xdpIIy-;BZj=&)K>1KqP}$gR}ap)&jdS$sjm2(8AR2_oW?Bq4mQR~!b>qxyjN@;s!s zLsD|T6Q8Z7bOsg^=w1>;8pZFZK}^as2=1hr{ab&-QtY{ujN_|LTu z;^+QAT3I~e$42O!oqEmh;-ZrjI*-X>5V@k@0#Aou-zZlP zgX{2jKq%j-NH4`tTs53~pm4bULJg9+`dXp|V7kP^Dgk9B_=xdG$t)PEtwci*pbWBV z6Ka*ls`oCp^^jAS45s!$tMmNGc^K!qe4T?fLM;zEN9?ZJAcxn$I%mJVAIA1#UAyM% z*Z6}vUjUs>6DK^7Ojv0txp?yVtgI$u%EEL{Z;0Nh!%@5XvivYt~J8j2R&picx8w90ea%tQoJ0!;Cvj?1*InOp2M z0EicItVEFxqwjNU#ee&ax!5Sa!($xJv^=l9cdJP%~vuLf#C6~IE zfrGtBhI<#^iV!2-t#21{)nKIch+~Vv(jaMV()cs81?Y&p7SE4MRL+Q9pdd{=Q1U%~ ztWYei$A~98FdPo%Au@zD7)?{;Qs$%a)Ei}FgJh4}vx35*`)Uu*w(f1BzB|2mYy(V0 z8A&pDG9&G;Qlz!h1@eU;mv5uxdyQqT;NiWwKserA&GhzWneEL|L*cj|t26cN&CqKl znjO}vq*tP6O5(!Eevy7zTh{A$Hga|d!t3=-heZi&cA=8kr94N!6kVrZrp+1gcS;N2 zLtoLtH^svDzR-I~A_|N4a1pkJ1)o%*Gg9qRe7zN^wZ=sBfxb-H|i>}z$K z!n4tJ$P;k`uQ+B+d6ktt9KeyraPGKU1Bomisa#`eYGd9p02|!E`FKN5a-Zg45cqOg1A1usI3VP_F6yys5AdA*KY?Vr(b%yL9O5NB}pV;P7REs#4i%pG7Ml@>6Kp>W)-K|?;+GCOg zPY-ZfRA;3W-rb6QTfuB+L2#q|XEw@t4lwA`y?J+c#`roya&l)Dtu6!eF?&1bpm3M( z&+U!ALc(_;lO2(O_%|!q>jZ)0j)!VH0VF&fmeEuwua-pLkO|rtrVAP%u)v;10|&Kh z9MA)u!XJ(t-Lr`u)2Fr=$tB^2AotUgt%fz_B%FeBa<=C zM`5U_+{!GqBJGX{j@5TKr3^@OWyS;~b)~4@r9qfWf_k8kmx7yP?BVn7%FDZ0RbDv? zCeJYfn(Tp@qhJ=*v#4bc+ID*=LoR~oLGD2drVH;844*JA8$L(uf+Nlg|7~ghZwCZP zutD9xEdo-yRZ;=MDJ&?FH>UaL;?b`M-9siZg%%?to5rl9GnPg6AmlyDNmiu_0v(zxc*1oSr9<4Otni-&0P)ymR`1v{&OK{bff%epJ{C=YMBq6@&IKcV z?Ka#33uCoDrKN$ME`d%gH$1HKkMOMr^{Zt)zVFm8%li(vN%bH1t9Ltc^Dnxm@E5`U zzfxq-P^}~-~#VS9fR}liEHX><9A&u!9sB_v+}skHYJMnz$*HZsUW}{{LgJ-3A*u5 z3&ECbp`6W;Vy@J$Rzm%<0)909Zct~F>ccU(10?eYDtn7&PwJf_@=aO+BRz66M18*pD;n7Is2ETvG}9kVN3IzcZ89u0dg z8rcDXxUfJhU4TVA@L_RaMn;10*GvdvyMeww+%CSVPpYuw<*r@QKhkEawNB^d%YNCb zy8Tu(H3^%ULCMOGwu}FA+WczUEz;sF>tT2hAx8@a`IT=Q`K)b@F#AORJs6Ax!CF-o zu@JWx($u!es3=r>di*T6*CEjIFDSg5D5zb(?=JWcx4_%Tq*z)T0;RfpjxALqMt zch`x4f>FPijXB!Kqrkt>a_+(M0!{mRGc8zEiWo%zmWCV+{K8Hm-Ox zQt2l!VF>*lx&-g?1|43r=_hNCeVg1Gvp}sGNpF z;5iu6e6Y;IZft8e*(c*rz}z`0YxBwOtxQHhrQp_ddy_|lyB9SY9(3*qqL6G+q7}jg zn7GCIH8%f7ukz}QFG7}D7jER#r$agjByNZL&eM|O3$dt&Q&8OO53uF3*b?gibEHs1N$W5hW&3=c4OI7c4L|3P zV=8--AKBsh0#zl2!U9d_`>Ycg3b>Cc3TEU%(RdPOEsmYo-D1<{w2^N&zS&ZQRmJoP z9|R=L$hep{sz(^z4psH`WFQ;WiV2>1Vmf{>S{kt7n;U_3|OeRj6G8Kr3C9Q{db{6#@Mz|b-oV5e3U5u+)UX8R&US~4@H3&ggMZ%gT z;T9KbI4BPP?DBAnXK0{i1CD>-%{fc!Toe%ZvRNG^2=Z03pB@=)w!AoSi6}Ph%p%{4^Q;$ zUogQ@pL!QM+M6pZ%#$9D$tT+T+n?jIW3kP)m(-(2Cz41qTlsG;N|>~W)UMzyx#I(+wvqAaj9;U z$op@0{CUgw)ukJz>0&k%yUHEn_K3_^q<|L%O~mphaYClL%hqMpHQzz;tH!ty%PzBU zZZB<9{iUt+ncZv^xxSFhtZ2Q!yuta`_w&b|+A*7+_GDTFT1&8HZQ|SmJxpZ1J2@0> zDrdhCCj!)A?3Lw$?w$)^`126?v4&`Mkk&R=VNMmvv|F-m-`zuL;3XShq_qoOh{F(K zcPL$fp1FrNm9Y}X=b1ylNBctXQlmZ6$ z1rLQX56pA2n|oj(SrwT;BfC2NL)VOb2O<~pRX)BhygVk@`pV3rBn z;F@umP#77>L2zc4Kqhy1o>yMif1Y1nujjyQ$XANrAR=%UWNZYKNbcyhzzbFg9+jJT zf_f&-O8ZTk#!Fj6bHH}T0)P9EO6%7OuH z2R;Tovkeaw^HnTaUO9~EaCrl463I&~&6XS-##@&8z_~dfYi))zzj^gTDL@s00L8Cl z5tpZ)J-8quHXS}|6J58|!CMGydW3164g$V{J5seR-?nBxp!y+{o%$VdhMhF7Wr^Wq?f1s9DUqhxcJuXMBU9w0R=ui@L2@*`F8Oy z`ox%Mj_dtXynDWTp%O9dqH!V62aU^<5OG(s!iO}vmNy+b7q1;JE*nG(KW2xGwJXqq z0dSFz!Dh-WPogFbFZDqSu^yN-UaZk2o-F6p&I#0Iag`romW^T)kD^BOAO1>>P*b8# z>FVXJl4R@sc?8hVz*I_Rh{ZWkIs)ilq;J;ZvX_ot2}Txk_Fs|j^ehz8gYq`Cpex;a zbXnuGy75VU^U@Qj@ZacMqxeM3X@`W+Ig#k??)eo?>>4`(tl&%cZ|qiT(FbWD(li|k zT;!>>_0>eRz+8iYWtj=yG`fRIDWK7 zn9>Go@sM~x0u9fo3+v*O)b$b9MNiOh5SE_0>mPPT`KpGuzG~2(4OYJOvl$)`Le2oh{Z?eH!)P3%plw#Ygk?# zU?>25qi2Djpn#jzK0*Sn+Fs$@)$kkW(yHgo+ZC9n5lgJG1W8LQ>`(E~1Xa;}#WCRB`YXi#V^|4ZCm7~`2K z$->`Hm&Vo_!{n0%D`FylWiOv$1Y8W3Amqmx_RqmMW$wSrH2Y_fWT-qcpYq>=w}Kds z3`T*?RnM88o@Q~PQhE{0KqhQK+k(^v8s6}v({Y0d185t?hx`~8rWy{>^#BlnAV1*p z%cfF-rSZYubSRB%8Ucry5Nul-_Y zk8An=Ui(FZ*-`Ridl&>eA&;=P7~9o#2{LKf%&7__KEzkL8| z()m3aX1303_`--C8x(N{cdv2Iw97Uw;UXs2V=Au}@oX*Y>rreAi!5KwYk_EcyIAKUks`ui z3(0Bu4G;HOO73y}AZm7|CCm&=o88qjtOrJ4@3(S`6FGy~WT-peUhC`N<@El8T28BhMC+diSo4WEt{-@NkGCvbiDoQ*eY zO6tP55PpoP2U`ucBetBtZ7_Hp{y+uwkGTNEI#Y zO;wJI#g#<&=e}pjp@lBNm}M2L*O9wan>*!cucO-)xQ88(*8+8RX88s#Xz8cpilYkx zFsJyC2wV2Bohrkj0%>B-3z;#hST<@%#yz&|Cq_p0V98K9_gd zZxLq{nazh5TukGV1BxSu)HNSV!g;W|n2wJk>5^&r5>!TQ zPMJGkMU`OW{6W$d>pDGxq1oxCI9g{gwuh!M-ay^I(kXJT`9eIn?Ad9Z|&$aaEcyPxgp>;)J<=` z)h=C`PB^?R^7rG49IIYD)Wj_4!0e^>}$Pic8?f7M!}T7Y42 zxMKU$bsZm?8pxxx+BOh$SDnS9-s0~3#4ht^DC&&M;XpDZiCBZr~5LiHT9 zRk>~QHqlg>!osR+@aS5jDZvsN4bxB_@>s!1*FVuIT%DZde@E@p>JWv??}lYfKrv?w z5wM3odnn4C?c&XbS$+Cu5bg{t$)ede%}k7gT&xcL)U+g5#8wZGDnT`K-kPoy@AH|QxW^6HWLA+mu7o1_859Tjl*w~J$yJBk_+13@B!ES{ps z>q7&^gFyZZy$?_NfFRd%C&i!F8N!Zt@jBi$)MfF1lp>*9z%;6blP(E7s^`y?IP(-y zM9QCrVu5hUR2zT3=PB}9rG^ee9AW;JA?Z()6cq_mVEq0XeK+1-JzY3ZsVqv-5-@s9 z%|hUO;h2d~2U?2a7?q2v7f9x1-sE7>qo2Cy(KDN*DAnKUuDpsQPnRhD>T9F;V`voM z+(`+uEPyQ=zE;+Y%S)rTBqNCJLq^EH?dFwrVM<{__#etOXOw#dpoBp?DwvNX2GjkX zT?Q7(CZqes#E-~_ZHSdr%T{-} zGitG`qhlRyldBaA!v5oTX53JQw+F4-dbYh)_( z%al3j9sQMDW^mQOpC{rzECe1#jHbnryEH}_mMgP6QRJ>87fPFp7DuS)Oy&X;RVn@q zHY_+_s?26ixMhtVZk)-s`!YR)$z_CR5W|4rWbQgVWcPdIR3NoDOrJq|S*)rvL@u;a zWSm!@?n|YCAY}|i%uj@2s#deLAc@2UsFuc568SC&TwIK>j+Iy9orYzwgH4uGb><~* zOe3iFWQ_e^Tl4g;2cFtPMK4w_Xn|GI6T%>gkl@d@&jWNY#%u0bo0C*P4%_2bj*bTk zX`I;2BsYh7%STWxeo98l%@9?}?~CgM!fyKxXdh+`>PW!3{Zf19p1~yOESX0)M#qsS!?`$Y&gXTQ--aGy$UBZ}I-) za7u6j>_7&bX2GXHp6HZQ7l*3tP4r(a9Y}QgvEu>irrn)J4^Hg&p!#|pROR6D3^5-ZKHzsXyYa z?^j4($I9&_5$?8fBH8=9~eNPCQXkjnBBs!cf6Ql zHlEpCNVFeJ1D+OP*2>gjI*OB6%n6ude9(iFJ^GskO*~e$k)ur+vDo538lt~y^MD9v zaex{RV@#3(p~CVfMhV9@)bB_VyCmXkh>hcPs>96!BaGa1)}M}UkL|%eJL}?$Jp#$- zl-upkOA`tjqa!S$SotV`g+O@$U78j3m}`u1Y$m2a$iZ%ZB*^lo?LybQ1R}GabQoCh z7)d4WqRPf0HgaR&Qex-9h*tTiR9@Zj0th-DhoCG=RnWb9Hq|kT!_#M+*|uVIk*a78RsRbeWR`Lk*uy+(0 zqi<#VDSRtKr)Kz7VpyzQs(!Wav|Htk%GgH!{ii0X$B*xwh}PNL2Ol&S&MW!*4j21|4Uf-YRnvO>JRRJ<;$6(+nes zjv&j zR}$?ed}J;~%HucG`H1ZeqT-*oi+w}>njg*JhUG8X1wMgv#eAb*4@LWYBQ3w!F7^qP z#KI)kZPN8$wu{BC1GJ>Yvjk{uB>2PlVh;Dr@M4yrE@5$0gPJ5s@r=P@Oo4`O3uqK$ zdIH}K*=}90`NY%Xi!_?zX?o#)+o|7K?^c~|gBvK7{0A}lamxbzR3$A`(!5D8xy1s# zpp9$&Eno$D8H{_RI=STSE!uraioKKp$jf5Bo~XM~>^T$DD5sCMi#@`}xSZ+B?tJlC zLNN@a)?-k(?DIu zZTU#MnCp!7M{)pnNQA29xL{3JPoSr=uGe^RDK|nDqNmv;hvS+nM`!tDW)Co4rf1P! zIA)G>oy2?ZvpmfHucit|AaRbRzsd-cRQwv4WR>}Rq(bXZ#ja?wV|_rA&VZ(qMix6P zxSB~HJy5_-qp7whAH>&RXt6yg?Aoxf1g8e+y=^vH69I@+krok!^+-`x;qOw z#FlhuyX6-$iqN^aL*@&2$ko$GXqWASL_Q6TYPpl)4(c@Tmc^WmmqV~yX#neF^AjiM zBx~xGh@;35R5l_B_10#uv#HzU|7=xp$@F--w)}J5V8wDcustAgR*t#B5M$XE4&7nr zMgn=*yTMcQF|4i@rdrP>NWz>~dKGGO_MZ)Gp6vzFWr*&)Ps7@+Pb;zqB%tSv7blMw zYqi-V;ei_inJqlvq{8fnKPhOKPY{y?M!F;FkRmL^=m*SVYd|Aign5>cZlNG5)X?VQ z@Aia74XIc_v%p25Gk|8iM#}q!VGSeQ5#0!n!6s!~VFbDXO3lIz9(P0mj_oW>T1{!fX?zX zOS4Wh$&##-6UCb^L;U3%KP|nJf%i^lxYO>WTpy?B{{Nb-Rx3+eosp3dW*e{pFn?I< z;ZxJE&ztdftwM=UCtfu(@6|J3H_v=sKBMTBGZUXPkk}{(vo?rl)p;7&3%8#BR-=}=;w&(Tw2K=)&CLz6N4Czahh5NP`V&NU*A^1fN$E#ph5F9wH11Ti_Q zL0FTV32R-q=;`u8@@bBHAW^nU9c0kEHc{tF;q(gxI#(6@1;u-gX1+YatJ~CO#}w$B zbRbt>P?mN693lc{Y(tu{sWE&MPXK(l{)kASVAxN2iRT7Z0eKmr+;7dp z-Cf}$S!fset@B6Jp3{33NCKV@HQvJsi11MyhJxiUbv>q^GoHtI zN;|JI4yv@vTvO%U!x!`n%rW8EkyIRGy49{FDPB)dQA&Om#ClCNT%N zeMY5yep3nx90JU-5S_4~(=vFk?7Wzc8fp&nIL;yv!M`9edj5oP_NoJ(RY$((RXuAa z6%IXxx}26FO_cGVH5)1MOG?;fj)7<42 zqQ;7Rg%D@tG2P@mIC>X6LpCc% zadsF(B!psF@|CT6_FW#xTkgyGb$CN-!b~(ZHhb5P#e8m zwNYsoPZ7&~19>Q`iZW19|D%#y5-^z#HzQuZ+kYkPuH-QOKBBOV@;_)y&Kk;Et+bUR z_T&{YM~49L{P%Lx3~?%ls>WC<83?`b$J~a&C&G5}$%wh{XRtj!HN@$X>Y-;U04GL4 zUIh%*<&(3TNu$w75rm-8D^lV}yqObgEvj&tUr+gf-Y5Yk_yiLa79#q%H>0V!kJ>xQ z2!urVjyf#F<}AP$W2^@wzG1?7IA8 znuU!O<(0Xft&DZ5>*Cky_K$jslcCz;$8MtQx|AVi{dApm{dCp~2ea<1Zy4NBKWy97 z>LtiVIY$0iPxZj2R`{}`e%Kx#I@RX72_9mrN#|EXGiPzOBKBn^y?@cm$HCpEGuc`_ zWBBy(G@;OAeSC!%v(5TnHYWqi;JqXoY(Uz!g1&X@)KG}Trd|h}h^*j}xhj~VEsviA_ zkPg5lR>)Xuy{f{t6ZoGh&-cl@vK1$)mn*doWPNhIe&+ra)$8Zs0)1;{MXEu(+R8U8 z-7cv+Vk)|nn7}TnZatR1F0C&7n5&XPNlqk4t^d_U;j2}2?dS#U4ECeC+;#!cXDwP%mv(9G+XJYBk?fLs??5V?PMGvmxIC@aeXQvz5Q|j!oV|Sw zYYw1_$?Q_mM*}n-KUm5xsgJ~F1frHMBP7%a^@Q$kQw^dIs7}()45S6Dx^~zMtcVO@ z{YyKq@5>639kuv%nQge_AH^;Rzx}%f8{x(@q#*`VasRPgR}Xq9#YI>&#LmNl@{5Z# zH!X!-5oA=@CWV$rx?mSMRHYrqRD#pO7!;R81(v5G#fYayKrWfSme(FgwT_kl$;nPZ zrc~7KuLN(&x)w`IOOrWO?h9UFo#l2HfKOAHfOC}A(>Cn60uUlE??GY%Bc1PNK@`wc zDkndQP<`bk?v*$Wq$HxFiojif=7Cl}D4-YxqGptxjYR1fjGszqe4=<=XCc)$_>pOh zMV-;{v=hwI$s_=OHMdyF@MP8Q5*{RG3T$lxT5rQ)mDOXzdst32M80VH$y!RdEL%;O za6~j+tlWkm%~o_1oK3-vBB(U>$x&g?P=ALQD6AiR7(eA5r+0d-19PlT-PRv#Kp6(# zc24^iRe)I~RkPSN-PRHuW&TGS!@i@YzOUxw^kkMpt#V1Z5ArPSLLt{>`o$HMJEBw= z-V00%xYg&;#|8V_5y$!A$SF<#Ke?*+@bMZ91jb*{B_aZs*qS$jK*-bE(J1cpki(@@ZY?O#jE665Qk2BCHKm z06P-1$+l`T!1i|N7dO_=#NSV6%$tV0DXTj+dSkFnEqRU*!%-W}7D$Hy3RO^5&g6qp zHbhI_ksG`#qYAbrsFMFcFZhpDHlI)>5se0`lv`_Er)D=%bzC>0jv&~T z2Q%|52!}C`i)LNuIlVXFM~4u z#Sch|8n;roPri5{<;zZyve-=zoRRXK8D);^46C;7`No05Kbeu`_>kppvaCyIFj>%E zUGPDHP@UpQ%|M9+X|p^lMPz^aTM_<10bL5b7)h~1@5s%_F};ppI-0G-dtb$yiH6Me zy^IC1^2PtV`QZyRBQ>CbEyLp4K+Qz^cHX%PLyGT@>LL%)m8F8}YnK95urmCGJ$)*s z@#1Vdtufj>-IdN6O7`vm1v6HQ1f?>HYn{NJs6e(bKItnN6W-v8^LeAve5?nM`v%`9 zhNrwYTB}hfrs?9Ge6S?Yi2>4>)C?dA#iWF=2g-Z7BL{?3oTz-z3@9O}#67pEqXf@y z&K9^pcwvYk4roBc0Wc_^dc73!0I%>e2EzgK)a?-EZ=lXi8i=T8g3jdtm#v^m0w<|! zw3zaFzSysf58(!H<`*yQY-&(1{{L8e8*n+R^6q!$nc1JSlT1F4NKj{wDFz!PRYZzZ z_p?g~Dk^R9t;fUl9{Qg4curz_8RYftbuJ2nY#{O>qi!WCt6l~Go@f2IR*-!2E?9E)XC+!tE(&o%H5ndYEl%=Q$gp#1+FZW}kdL&|T9Xg;!%? zXI>g;3j55DyhS8DYh|Ip&X$}$oKVB6q8E%|PbvHfEyToiCH-oj4h;9~1ea7^^z>=J zZ)y8E&5`kz$~quxWJ#ML^N`a>O8r-TsFWSxoHf!rKVrnvkk5&dWiiV1M0Ja=SFp3% za1g^qX||REsiSS8aPFEzx=ii0W zQ+_K&3g=XR#)hj|z6t{C2PRhV0BeaUJ!hXuCpy)4J0gpBDlrw~zS@2eEm{ZfH}$038%=nojn@ft(iBfoYdZ1I`7Tz-J5iAa z(spFhLs%=Z4$Y8j7(`{Rl`dx7Zxr7Koz+?MTa+0wT6FLoM6~u+8|dBtJ79*E*JsB* zC+TJ9UYr)ieD%^g>hw3eASCrpahDxMN5xIyv!q7ph@F;MuD)49i^mzcp~Y%ru447a zC5=@~cG^*umERL=zHHCKcnxq8E%r z>M4hitzCz=`USIy7Ls_?0I^x68Y&vwcMNHskC~q8OKGV0nHvULprqG^VL{uFq^!7$31Ahbk{snQ%(ZUq8HcvQSdKd|9Zo;?T0H(Tsm?*BlS) zzU^9}vJ<~m#$|5g48!SsNtuV`ChamNYG6cntl4S?4RadvWY(1Hk_Gfd2%@fUV~y-) zB^K+;BPJz4$ru9k4c-e7-il*uYh4{yl`;g0Y$Ck=mX5xi&aW8_NtG_ zi6%TXDC!LYLAk4VG@`Wd=`{%AEGE&kau~{5U;Uy4d+8f~0Hr)eVOYuXP|ebzS3xrx zUi3?FNwdW*$|^5PZ{ZIIhc-rEvrd{7E!wvdtkPx!BfbIZBuQnmPJG(Q1XI?jZwNpKL&ud00GLFac*RVaQCr4OE&i} zitx`WgEnR@gA;0?8RP+1ZHM?w0Y@f-%9Ychi>o7Fk%%*IO@0n9SzlG_qn zX8l*B?Tf-^H{QZ$XbJWuRqFBOh6MZC5HKNV?t$cU$0TQHAo)*1@}C@?{LW*N&s*}t zA^Bk?|1An*T+uJX4(m=cNxuwigI27(I28F~AN872A=9DKHFTQaNYxR5sR4FZIirwF ziD*((GAq#(5o>?gx%wC%Wp<)>K)pGNJa;Lt0rIes8ugtGMVnR8R!}sN*Rp=RRJpr2 zAf1N1t9m1SUvS3!H8V^V+A8@=gWJj&uJI0FiKdT)l-QK)7=ltQaDa%k2@V!frohjV&mN!z3llfaB#( zDXh_;%Z*zB}YG=|BK1Mwg#seOA zie_I~Hv18mr$AyJ&vB_`v-GHP^~sV#riad{53jTBFsv(r%17%e47LQoap)Ap6j?M_ zkFiv9UF9EEtnEwX|HZGlrn2{PQ8f{h6YC2seTC8!sg6-(bbk?qLmJ>ZgM+1weRP;G z2lz_oPn=@SpGnRt(OB5EWeLG@!JbtWh@U?D=(=Gs3VFbQA-AY^Y67ql{EwD`gB zBsBqDnQchUuCLf!E1X)KW@nJoq;W^S%vS@XE&E!C=p`Z8@tZWZ7u z>eBIpwWuwdToG!*hHJy=iV-3L0)D*eL}rXgwLL}b@F%$SXTy9s8fx*Q8cKaE`9*+oNI}IRAcE9Cg6vC2!Cztr4 z4C6JFQ~krKvzF|~YirG+v)t3v#-)HS(a18GTuGhCPz-o|(SLX7x3(2_n&;dQJ78oP zaLY0{Hed9#I;KFGb2k}|b?K}yTn2OCxE^OaV<3b^I9m9J&0 zog^Givz3mqa&q}Z3E7;n12O>`7Wl7HdzKonP+Oi}?$Xc})u6!6p;BSsnbq{i>r9rZ zdWePwhFEO`mb8ve%oHV-%0-TVr^tb!106 zeDIcJ!jj0ghEtYkOhv}i-=axL<@7~fxeN{>l^SN|JMGVQ0JPt^mt}3u45xC&mbTH~ zfRE-Vi;6QIyokCf_q1e!5(Xw;Mu;uzDs@gZv8_Q(R8qdPAu-;3BNY43vXP8FhM*~% zu_^{{TgLDB3T>c4my$%RrX@)-dN;#C^$8QTF!^+!XH{M=gg)GjkA02YA}WOnvkn?+ z`Ik8>&o(8;8wd#uwN8I?s#Q`=G-rzEJAzNqHv;mYffdqXHU`}iJB)uNuJw) zpw+9&mB+^h-563)HWAkgxlo+s;jy2Z3Za4VOSc9MmH~h!s=mBlHlDx$l%h(O4fe?4 z(YHS$mjHByVbDBzT-M|7_+w4GVB+z#x*b)G07@3P_=C}lxouh00UTRSe|W_kx7UeB z-;hjA?<`k2HQfBw!=^K(IG!|xo&J>O{}X<(8kuFzW*!m^T+BR(5??McY!L^RUQVzK zsuS*~>UL;yE{~ulN@m&U2bbZ|;Ner~UT@-;pEvMBZFd#Z#x0uE$I(L(_u{SCTl80d zN*-e`E7`Iyr0{g_iuW{jET54;Pvpbp_zU~pm;KIUzZ_)s^i6BzI^piG z{SGh3O?MZD(vRQG+>8wHk(5<;)&MsA*=A{S^qqxfkD{NBY`-K`lo0H(>*KJ8QfZO& zyY?{WgsP0k2;vOk(cljv<=Qf>O4ntPfn-R6^GCdZ!CR|~rASy!?PRUSQ=ZeSyXBdHsDUZxcY8v9%YuY2^;X&u03ZR zCXkBi$&skl>#`|bW=3T6YdMR-*UG09UR%9h^ZbyNR1}dM;1^h9EogMOlo%xAFT9)D zkh+{c+As|Uw}3pP3Bl^dpe{NDbc{U%a%^2(nHs4Jo4VBu2}*~{s`L4U)9P|qpWvtB*#)J zfb`q;8Cm!cOvlYqfIu}Fzkq~2dAw2d9Y!}%A}vqszZ_DH>1b%HAO4Z#2s$txX!$pk zu2QEpvr1&ggHu!-Wo-UP!}fD)i35ps*9{MrKSm=(FR1m^@;Z# zc>!#K4xc6hGf6*93;l_lR&swCdsJ_r9f#6Q9u@r@62TBM1o?OFy6Q((*X?#&t-P*s zeKIH;FHey!Bu~;&7BXR|pR=w$LS#~UDU?jFkkD3iVNEtM)vdl8yH=&Znq|{-n0df2 z|2KES-bef8`3f_*oc^k~-TP;|#LSG`$TFpd8E_f?QKd|;8Y8787uRTEnRdLkwXC&@ z&5DglULhC}D_bXroz7mcq6#MAX|8^Ax$3+g{6yL?+BjdD4Ykx_4%pXNH7!(5JeF2} zF+i$6VeI1@0_28D@LxZ!U}&oZPE8d;FcGyYE>+|A)5+Nm@dwhC^ip=LxeuYYZ1k(k zm0QMFJguE=u?Y-aQ!K4x=#ndbB%v5f|JfX3eH2kOJkH<>Zj%ixR*Vp1|)pW68M)K=Q_6~{hL z(PT#0%fEO@Cmne^2RhbPY-R0)nV9`2%eFE}eKDgWnJ*jCL_=0O=uEXJiDu7+*>!C@ zCudL?mJq5>45ufZ!=K-yq~=^^rJ~BH$2v18^XbTJ&=lM|rUjXbF93I9HxvQ<+XwphGnTUCt^6*)SR*| zzN7pVm47oONw!$}i;1&JiwwW|iVe{!w6j{MHmoU?>{BsZR$Ir-UTA3wtI&<<##!4k zjsQ^m5%+5|I%HfQuD%J<4{z1=GJ4CXH?#T+>h?pEAD4{ zDgi^Lipz+MR1lNU-86!YGko!tMOku40?L5qVPWF2bZQ%tZ@6-vO@dOnA`#Z<+Uh@R z-X$$eAJob46`SKFfA)i7O@iFX=ZU?GNI6E_jyZq0W7K>tZyBm(@WX{Er5e~Y zR=~!JB3sED5DL{fEWK?Qc@?@DX(hO2U+BHxA@&Q^W?9n-G&o;uSf^2F@e?+1dJYUB zbaaV)6u)caovwVc*biV}fH7}kA!TU9b)0Blf2LJ7TX?b0?Itib-QH&~Q3B8zOe5RK z4_czMHR^*3$i-PUo3w#z2ER4_gOWh*(p_w3lc9&HO6-lI6OAFT`cj)|Fsla=qAh4d zW+kDfAMgkn6KgBvJ)<|kO%=R3W>aW2Al+dImc-#^*TY=fX%js6*?2sCT)P88 z9wWLB*&*DQQ4*HrKm;f^%3&2Or8KK{MwLA!KVs(p@`IElRhzvl%`dk zvK>Nn$;fhj+0t71^^QI56kS1iB}2cvlcROfef+hgDSn}ZN6HG5h4hSITH1KN>MLgt zQ?2J)U3Fc(I*Y$S#k10!R>x{T4?H3bkQ-BX&?i>i*)aiFFccX`QVc<$1CCb+M8>4!+7s4h;#7LbX%0GNE9O z1QI_Vi*GZv9zkbTB8iYJTvcs$G+X&JK*obqw0g647&5C{-jyxF+2Wnk{5vYmCv2q^ z8Zf>O9Nd10OLNwQB#bhgF0@HNVcVmQtQ=TjNA&#qLyJYew?=#F?`!8GAE zid(~hk&zkb6)u`iG#ShUs@7L92}AU}9}vxhIXgXKSiNGD^7GNk%ndN*OE-;LLvWWC z>(kvepCkXix}q4FEf%&`KRxUVfq6z-4cYTrc`K*|5$+!-yYgmOzK!X0`Ukf?uamf| zhki)4RhHlx`;HeyX0`I6e5~TG)aR*ly1uc zb*Vxj{oCi+IHAcivs>hPDgFf#srVMssX7u$ihP==7pONcsvl;2k?W3o7VTI`Q6lh^ z8#kl~4|ywbYoKi~ASD_YXjBM*^@~d_eWLJIcnVxfpg+0-;Z9E!kYPQMhtw|5ZgG` z7$tF&epSJItgfcRa~~;JT18V_Ad=`)hYEa1973N?FcO7=`^3IUMkiz6jCr4iPSD6G zBsEz26I=@CTYIT>b$JxS(nMrq%?YVlQ3ZQx>3N}Y5i&HT;Aa=?e@9;VXL95E?VsKA zo%GKztS(!6{rmrCxGog_FH^(*0l7O}s8l~{?v%pq)2Hp&osPdH{mH$BZIwGKZ!Z5rDpDhbwgNEh1vv(wQFlFLcul*1m=5Msk7m-okYC z0*sZybaBU|xDRKDt*t;Gn=bpK4bJ`Y1&Kt{$pv!P^nphH3pC~PtNn9$+?}aB+zs>M zyh^*@vpqSsa*zrJ_MMfpGd0$YRXU1^eQUguSj4$jt>=QKx;ta+3>yD<#ik%hT|mUZ zQVbsGy!t|ZCc7$ytFm87u>S8h%+Uo9*{+vhmroia;zME1&^Q@lqbOt6D&2XOPPvHQ zmP#C?=>V}DX<3y*@2o6`I4S&9{a6_@sd80ddKE4`b6fg$6WG3Se0VtP3e?3t>+N_N4V9^%+xGWx(uK^yQhLf<52DY6H^wJZX zMG9KPzq%Gh0jFDff~=N8%D8?WKPPIoS|cn04N_e_h}4Ft1b>G&r+kW*$r@Np&I=fX zPYA!NeyVJ|N6x%sLI9ta0K>=I(n7hrJnYRopy< zytH~Fy(Wij9Nk9Z}PrEVawOCF{T$xKn6Dm=xMtYoFZ<)0!wDGMP~ z>WNt9K(6;Wtu5>Dq!A8wN!?gaZ!qh{h1IvL14iW^)v`ZnDv-xVp>(Be^jFu%v{sX% z>h3&Nj+8cYM2zGD9DI86r%v{Z5GGIIl`5w_ks5_1U8&DR>SVLcAz)-|uD};o5rwkR zBglKZ9ERkq+_-`KqqzAoB2+u4OG#;s45R6lSC%NK>IO|z5lF%h0+5}mmTOCz$qBAj zq#XV+$r0;Bsg^C;a3q;3iB{P-Kog2iWKEo+5yyHZR_%p^WT6$m5lqD+vG7OhbH;z}IR+9H66PmJgi1#k+SMPws&K7;B(fz$Zm;U<1~h!0y67IIkQX2$9GSsGHP##aZR_h=_R8U&l*X~$B34c(F$zkkEFp9O_1CbNb28(P1fN zar4C*-%a8aO%7NmuI^!FkUu}WZe9Q8qHlm^&SmO7Dpsn#Q_B;#s5-}s@@qJ?h_;f% zs9syd6Q$v5y!si6prsey&UB=ecyQxpY>Ij6V_hQZ$AtWkgfucciFJslM7%$}4WOF=TCBwRmc=S+w!Q zsJ=}T1DHg8iOeF+>X(d~h061eej`j?FTHOCr?OTPB3EQTP2uM3doaX`0EZ1CXmIVH zqiJxF!rFa}4GOTh1EvRR7Q(GzGx`|~29%f|1#PRQV|9MHrn)hWn0C{u zUfNb%J0WWGH6>pwketsu941 zo~^@xa8y`ECn8napm#2rv(N>uV;rD#mGp=IXoNt(c#IMw1iggJbq=N)OjEIN!O0~$ zcXdB}D%bDLc=?j8doCrAOxms|7R@xxP%@u_RRxApN2H$XH(RWPlUHYu!*Qj`FNQ0b z3ew-T;i&av%SeO~t)_qk`k|is8KUmyx27gK#mlCcxV9-2OOj2S_%*F0o<`+D{7*<% zR<%pjwJ4T8PLEt#Us3%WRbQ$F015N;q};8A1yush(Gl=M9cO_U`m?6CN&~9V zo}!d$%W(^7r+F1@Ij=ZRjW(K?{_f%1Z@cM+Z=5QRAd3i;0R2vp0;_F>5&6)8s4-(= zN$oN~5K0^BEY7zZk%n0|yB29CS@+;1+YMp*&$&kbf*;8=QRz!tDOfQh|1o7HSBp7< zZfZlS#VQIllcf_evnrKp#}W3VIwUowMJ!)6fT~lft6f5(wf(GqI}Rj#e#hjy7@m;`OCw%T!O1qO@HuwOM+sP`o2dM{FLlxNnWB}~m@vUL2q}Kbj4u{zwT2&tPla6dW34>$%J_bm(R?J` z{kbGQ(l@AdKgcwTieTV5<%xORfWTaZV zobF_+gam3ZV`-xmiDPW9AOI;Ckq}(w=sVQYt@If-a!KI-^xgHUEHe+z0*K5jIM_&?)#|I)l1bI zhL+kdVRH$3rGy6=@J&?%E@Agvxq3Bma>Ax$QmwdBA-O^WP%vo`;?$tYd0f|}DJSXk zrHmx$dTAlDiL_ggmH7JPg~xs*u!n>I!O{f|-$Q9w zbGIzG>uB^~sIZ=rct&c1t^p@2RbvDth zrmx&y=MWR$W3a9uw$dfF;kUgFi9-0)wp9B~CYMdq3)x1l+q&}|Ls!~N-gxywiI4H> z`M0x}VY;?scdfG9zJ42@6ZuiPL>I)&kZL3?f%FuW4 zIO=bT7DzxTt52dq+ny2XZyE?+U8_t#`P5^$UGBL2N}K1=N?gRmc=bK2)!YMmHkKNZ zu5ab|%w^F01dZiI3R^2)wYyf_ZH2T1ie=zp6EYK$VQ(Bm`DNk_x{*|@y2&hKEvLP$ zRO_3epwP{Ryb=4YLQ@V`ua~Bx>J6V#ke2&&?Sw>AJDq?Vz?x~yo2lPOThLn+6eF8Y zEyOgbwG!3;3VsZV#AA$SLLM%xRsH~75|WHn&#zVP_;1?2ayT8cQeZ`=>$g_Fsz8u2 zsEk!hcIySNY%!HCSHn4yHOp94&7uQNR}fbRkS#N!O{g4kX$WSRW~Qilf zXAG5^GS-TJpvb>b#C2v4*q&Y+cxyJ*^cwaLvIdaxn&|LJ>Iz-g&@S`@&T6G4L}%lF zT`jRXnU^JN*Fy(8Sf022RzUa}&6R{0_&%N0B!kbfV*350&r8S*(Z>2w^}VajwuP)1 zGHil0$pj&VgW{NF(_@#`E872v{#=o&fqu#S1)`1O+7Iz8Dqt05cN9ff64xZ(26gT} z5pLD8wm1BG4k z!*r$&rQmheR^@c!OdwF3 zNk%2Y+rgQ@Ciuxj-d~Kk8h#FJj16Kz(R|Vb_nJDR6D>ZW76+O+0Mx}$ymr0dpC01CJh~ zCo-sxMB#>dO;SvY%+AXOLGxs>W|J1ODD8{&NF{va2q0W2@-EfT*_eZ@pD5ksjUCPp~RT##-}=jY*q$TD|k{X>h*nOADUs1r16Z@zz`Q zMg_B+>U08>(E8A=e+=)@5q4{$9Cd=j21=VK^UyYxLsqB00ZPN3Nth}{pjR@1@-l{W z>!0kBg`J^i9GuB0s4!hg9<)q5)I*CaD(f?cN9IO=4P_ylLqi*sx##@(Pn)QEYH`@p zRQRY?MC1E4-iiM8LrLZROG;-lW#J*>HC$365RMO2BsfnDi0cEd7QAd7L$k45s26Ax zU~_ti0_pD(HHzqTTND3(f|7KGtTQs@mwi6#w-)pN1*%n?yb(6N&=Y$S54{8Y3IPJj*Gkcr$x%)?T`B58}qq!o~*t|fnE z4UZG6vUiCLsZf7%}7Mz^v5BZt1J+Q#R>FqB~70?cz~ueY{XiDJGUZUS@_IF&3O-TazRj zTfJsZMtPvhrmbm~#q8oDA;w08;ugduhR<1(_=m(TBv2C(SZtzq!h=8HEm4c=8x^gX zXH*y95EXc;`XvY|m!(;p>~z+jzq}mQE{bQ6``AYX=XKp~v>}>{O@O*q?z5SsMx0lr z+CcWtmuvV2O@JioH0I;b_ovysOF@@wmCCL*Wmoz^`0BID@oEQ3zn&lZNiFM&7I&2% zM=vBUBe6hj-q?SzSW>+QCo{}ZxnjktW9+u0!Zdl;U*dxeC(9aouqIu~pll@zvci%K z`iQvS`eQPsq@2nqR^glUvETLViKX+0NQX%Yy|I#5P3dgufp%EaQ{8RQ_^CApJ`*D| zl{<|q;;0JdpTha&a2)Z^nHykkID31q?0hM}tlZZGgYVg7hV=x8sn8O(Fhs>edKEz z=eS(sz2&l=v5@4WHlbywwv3v~4A>fVW3-lY4};-#Ogaf0{mP9&o6fM&e4NpI`S3`g zn3P6n$Pv~^@I>L^D`XE~{V_gQzmjMRvZq#+WRd(iNSmsW`G#)pPx@_Ol$PFSDTGhmEX~&>y&$Zw7*e|Rtie(WGrY~< z(cF)*`UYq9nl~f-Cti4#fie*?oNkOtVNX&F;L?<_vssZg)i5TbKl+bijj<`f(hJ4@ z7l`4P##Shxv)QC6#jnm`*r0@&79%wb*QKjrdU@kSZfn6J>qGBTzems#I?mS(XaWX(M_{RXN@=ky*3 z4ZjYHG6Mvg@NA>?Mvj!qpj01CDbve~l+N6|?d)j=@12oAr&o-7lnlk4p#Bu4&$X1$m~6s(KTIT1 zS>p$A6%5t*7*_TtCOSr-n?i9dIi=%a)^)$G$S^2EpQKFu)7*K9-onPk8AE%RK8$6WT4PIy5zfrJvM{0tPwmznzJfJtz!}+sT{F~r_ z;18lQK}zz60BC~#^ol{yA~m#c-H8cGO5gpel??z9sbNPC(Ojm)Oa7Gkj(@Nlk)V>B zvK>os9?hrdSK~OQ>du9rK&ccPw1<(PpR^qp_R|5KV7<{XxrqUO^~7&P%cxS z-#Jv5nk=(hI&?NcU{S2dHR%|Xl;2G?mbK!ooG|r6E-afN=FKQeLW$a9pJnUtl03sS z12G*Q+gUnqS%Mg};gq(;E5sO5A9G*gwt6)TFbGuJE>bBD5E7>eQbOox3A&Z!J0?4( z%$lvYn!!f9Ch(Agc=WSe-g4?C|4+EG4ntQUz!s*wm$p@@csp@S=ym#Ty|ol@g2 zV@j$vhUZ8O)c>zm4M%RNbl0*b&6?Fd-CA3T*DM{y!DuQ)iE$5AP0gOYUv+ywfkeDj z4;@?=yS28%O3+U`RGnSzpGj)bxdbyt+&HX(VJ5aX3gHVxD*mSsWVNcsgrk5j%9f?m zlfM}!wS=~W7WI;RX_gcPm890e#jvC1G^kxdUC1%{H1wIOK`hFhDV$Qo{7}C;O++kPFt9^}a3$rz#gB(D%;@Po!`FxFLBf z!!tiqFcUxLBgFW*$ehqzTv{Jupr8U8zEM!z5l$tbkhoo5VaT8)jPZ4wb;MdD?y}4p zcnYBDMurlY+d>$Txy-yGMiqd7Q+HCqR8kN5H_kupG(5(?QJ72;dZ==tId)D)l`c-7 zaW&IH9GH9M^oFZvbjg;BS5B|Br;WzqiYuo_ub$D1(H*?g1FqNVnsj=;foneJ>Wm#T zGc!1m@H7=R0-ms57e*>t7gq2;eW6&rJ+URp(>$*JNGDmDiU?_YHtwao9MQOAA zD3d9fC}uYuooX$qN|lr!OC>#}&ZZ~0V=;+{{6w=QZs06_ikl^jP|_ubxRnqhnooTk@3&}* zRxdzbY~Rn4E^NDV)1YLm!l-@pR{!almge`L9i3X7l%@MYx$>p)@jUHoN#819(_npS z3}ZZ$lQ5zDrYoyKL_UHwO!>00@FHKkA_1nTOJ1MP+;;I2^X5s*VJLu}at+!@BFjtc zUO;-4E|GUvO;KQHsUNaV+@cYU_W@#>3&85Up|WSVz^gbWtVj&L8W12aI-1_#Nv-*E z2dz$)2cTFiYL3lA&mpyq=6ZRKqE<)9R-0o~AF_OHQqU2bOvT_VB^><{xGBA?KxQDGSs!14GxD69`sd$+o7_(XXm}q+vO{yc5 zEb>!)cp+uY2yIUKqeyR0sEC@v30~8QFm$m>`tW;~dw8(Qb)Nje{GL%Cce!wucPcW_ z796y@QG#Yh4?Cp*joz3(DuA?D8)ALKOp^ui(C2vevV?QN;Cc(2`by-h^zaaLrcdgI zW*ArMu`O(!gA5R3DHF4#xG$GzJxnOU@KsrHFBI-V=LkBvA{GMwxnc*)(n6v>vIH)b zB_+Q%dX8nq!aQ~r@&RP!vj(AjDEgV?;0;=l z2@n+>X3i@ND$D~6^vDmR8l^&0sQx6hiG(AcXHrBbpsD1f0a}czugVB*N?GB@yFH_c z#nZC)0E0>;eURrt)kjHRn$>Xm85|Iqy;?K+V8q#kI@xbnW~HcFQ5a}m%_+7#N-{r= zJPF2x7H@BoPnLrQCKR_@NoQij3+MZ7*iL~66&FdS8?6`m8axN2M~ZP%!>JWp61^Q1Xi65G#Qf3KdCW> z;bK|?KCCBMt)Qz!991kaCP7a5>?d`mtM>Ge0^Wy&(9#o?OdOb<(2`VcHCEEZ5exiM zqSK8ri5ifGFV;ORDPQU%Aa12w>qRzoJprA%fiPW{MYIpI^0Uq;`$x>$B~y6c8(MeA z-SksWJoVJbB(G4#x#AJ5VQPkH-E;xk<2B9~gD*S?#TbDvNQNNQoAOxs+b4qFWzk}l$kP`>9sLm z?=|Av>Xf?tkDjZ`DLiD79!O=y5{lAUII3+*pif=c)0%Qj*fh?VRQnJrCi9B@yUo38 zLoUro*b{-2;;tcEBs%N{jEOAo()FQj=gBK~jk8s@1%j0Y>Uo|MXjh8!(scJSh7pY{ z%it)B>i?V7*tw;1i1_{|I?YfzQt=@Nn)t{M1HoD{v5Q%0U*j~xQM)Z2k&g22e&%#2 z&1qT08|gJTW`t3TSE?T{duQ;`9n}xu%kVZpc9^D-xrW8KY`gCk;@)D;3^cYE%`I*n z&YByfGRv4nF`T1Zt8-Y(Su1NxJ=fSqkDq_vnzDf7rY4Nq3;QssBxWMzDTo|>pUUsv=l)EQkF3+e8S+(G9Gdv4m> z3+)T&7rxTl*Y}sw3lkmUcm>gF0-5453|7)-b4@dv7g(_8%V}>A7xCN`W01YzrOF>4 zg;(n15$ZrlpW~H}#;cbG5KBTl2AAQgTzN&d$a_O_u5ZwRk*KmIQ%9pY7FqOH@A!oG z$!;VjB&QCUT)&8#7->X8DgfIgm5Z{Bq&{d93X-2anSFN=V+2UAaZ8ZKyvST8cFsFPEfec5^W}$6H=5o|u{B(wv&wIRZLU|McB%Skc~Zv5 zCh=~ua^yu#-j{D+;8bjPMg#7~rJ{zDFuHF^Oz*$={&iXpLFkw(#G z2Gnae>I!BR(^ zm3HoAmO)~b(+l@)+H2}4S!@y4JeCHo`(c=Y<5+z!6VVkg2!pz!E0AGy5}{CCEsio@Sg^b5WChT=St2XPdU4Wp4na@z_4G1Omb?ezR)HEWQ-6zAQ40;G}%ZkUp zh!rp5!c#^Nmc&tUl4~CX9wM`O1C7j6-~*8+=rj^lUX4KgUrDhIF2&ZH6q5uqCyz@p z6lUrXgxTvH3dPH}S=2%^*hTbaaMWfjs1gsL4qIWhxu2rwpe8(^{YigamgLqZo(R9B z^39cTY*Sd3vg9|S@D0@ZFd?y6)TCgIMbtP{w%1pQFtzG*L;ow<#`2KF_6sDS6}qtI zh^B;HWP_-;&Dm1;EZEN&Rz*Lv@N+RbJgPf8986|mVGI0T*uv{aiU}QtclFg)zjWtG zsy+>&odOs!k;$L@R1%&kOtfFDD=F=0x8NdI^ z@9`4f^gw_aA|I5sD3yxI#PjeO@N@p8wiw1(T_ktj=mZj0pDWa4YxOT=zSn3PY{f^%!pX5qPNhpWBWmHN+@MIL_VSm*}dGW^*O(}B7Z zVR?yo;P=b|2cW?crzc&zKRxO3t7L~nMAORg9WeiHd$!mVgJxRT+@8PMWma)xG_)3O zA#g`5Oo}Nhv{{;nvyf@b$#FXWh~JA|nSumsIBfhu{0zs0C(;#A%mi#j0onphjCj#N?$NLH*& zZ}=hE5-VbwE}L=6U<(Og0PVf2Sr)d|Tubr?KOo|;qpg1dVa969(W!Chtz}JPwq11q zsPV}I-%`bxHp((FtbGUr#F!PNKBnn4Us~&{PQ9rgSM4>ftW3Z4jimZS|8`k=_n~lW zE%s&5H2i588Ti&%WicZDSrLgS`Q*xTHlg9qt2S1Do~WgJAEDtUdv{!YD_<+ zk8`hCHYIzkVRL$x!sh^~47PCABsN>Mk3c2w47D+7as%VdQA5g9HnBI59Ypz8={MOR zcy!(>;t&5WDxx*JI*rQN-~i?;nB`+`pI)gGVARbj*0f&Dk@Ooe2Kmw~Fkl}gtL+mu zXSY<_|5#1oiDN4Y&szEVbbZE(J`fl3*ouCKih2#LX&z>gaX%C5B2(UX9!KD05?-xz zwnED^-G{u>)ZPf18;{`?)D-b$#w*X(@3~8p!^R`y=?`Ka5#tT=$n5-5L7X%8(WYtw z2|g=pHZ^R76=`6Fr=!R*luZBa@0QS!DlP!{cwfEhk`Du! zGpT}Zo_?Z}gu#y^oz-V+;|NL{E^UX60&0FC{kMT}lZ-jLmxsJcKY5ZV6gHxw+6*Qn z%~+*ABDISJMUU7*B+8^69wm72s_3XgAK#(rVG8KN%g4B-5p8Ld>yK@c5IzDP%6<>) zchzP_Z+5M8PM5~vd$(PtolK>5<)|3UYA4cdMk;qEanKlglav^AwbK;;2X&k%z9`eW z33I>15z(e4amE>@ASwod%Ge4831wcQF1x0MJ}WmQq4OfZDCFf`Ri*@cx@z9ac1>juxS5tYqS>O2T19`6pm05@;#!DbF&*8?t9(XW8Bu&0H?H4R zVM(nlh3HbTF)(3Cy1tc5<26rY4@fK4Gj@-L2=!qNc2?63IL0h6Pt9iP;c(b34yD?C zjwFWZ*hEb~1yfekPzg4?vWAB=!AZ-U$WyyJv2v11nVeF1wP^-us*p#2EJ#ivdsP3v zvL98d-4p03^wG+>Hrq#Chw3xVl+3A7d8jyG&S=TO zum~?VBR`rRh04YjisI%elb-KijT4iEw4NH#-%D2T#%G>*l|=_<9@>xog4dP=?OGof z)00B$(QtC(4^?mCbGx=z)Oxx|P(6zQ`9MjC)ng^MF0RW^j>_AB3+ZhGd1)d|0l(C1 zC|kUdRR>$Z%ClIm#DVw&azipMSl>gx=&zAu0(`42lG7nK zX0R|RBR0yG$>G1!GC4bd122Jm8QRbV^AZ7~Sy0|+YZqZ6QM__%MMR{p^(u*BUQ_22 z*?EDv6TPtwno1}^7W{?=pgB|D=N|}4xpuR4IS!Z{G9Nj*1lfSaKbbvzOM30oh794- z0)bK9Wa~(%0D)UTYs-Bq7J`oO3JNO}SasA7#9g*!Sy7^2>Fs(gkdDxtc}BjR-!Napdn6go?-)3KCD)h}TS!yB;D>$t)>1}rroifcr(Gt7or{s)ca zC_{-k0K!}g#iH8R6JJ}@es0rp*4bDJDJT@xWvJOoka_h}w@YQ@Ts4dF(qq^PN{B^6 zmPGSrnO$cEI&D&OzqZ_;Hlj?sk;Hv!_?LRh5|8kdd&zyKYt&hMGf>J*h8_cAo?6oM z+kVi@rHxB?@w6#IiD?rXP}Kkd9ICr!EMgIkEjz3XD`oUi4Z~6$_!ul2ue7aSVl|rR zZM3$}aZ?R^4q=sTK~a!LH9UGBwV~aOs#W^3h|Ags+yW&4BoXk#-XMuTEEYPaZqesw z(3Nr9Pz4ISvHGqdJS$vng7>inweQ;Ce-sVpoyBXTu=;V`ik3G*pHk3za#=E!No7KJ zu=Yirxp4@FwGdtnTP#*d*Vt4W!RsV8Y10#$_Eu5la3LMM>gqM{8{mCSSCq*EjKs>IDNJ8$kDHrSOf)(lSqOT4 z#N6f#Tq2hmi?0AjIc%+-Oc2tXaizinNQJk^eqT-bVUvNdPs@KtM4{djVK&dcr-oUzSXDd z{+ww8Ar<;!XLU$ z5j-nordCNJ&d7?%BsKeJsznR7T~$;@UN6;-FR7gfXg+M&L+Th(zq7U>>Q3cVzfwg{ z&@24@vH9SNM0W~l}smeHIBW|Lf0(T5VQrJ*Pp8UF5{sgZdeg_A8(XW`x zq(%Gdp;=+jpTL23vgY_6Zc%*S!$*(n|bWD#&P-5|Gh_0j3% z>iU>g_}He5`fM{3;52$|OuOcxHaip#c!;Wp<7YP#&BUzq9$s&vkHNk+bEpPpRD>#F z5j@-FxKJHChhxX61zmzc)S8nmb&glFR~-ql8u=f{r@yk2>HoAs!KmVBX(~}Ab*7)j zN2tgBQvFmZ@av4s{76|w`*4lhE>v9#q!LSTNZbsR2c_7)lS+@|9Vp&NWi}3UQ+y!| zqkj}_NW~~j7E4nS2i6GYWhle9MUftl(jaA_T%TIvwh0?xi;AQ{sp&TYku(+Yk_hEG zC)tUK5~CMe=?{e84HO11q6#Aw3FQtBE{1 z2>&2!N3`x!8=CV6N_}WGs_h8s4u6o=7AwxPqjQZ(GCR^?tqPIHj{-uz|dZqtZD;w zVl)$%O6O8lYNO_ckLtpKlu=z!Zz;6}vX9F?UaE}gVj3n;)zs%k>NrrTf{cj~A74hz#b+KG^vde&P-SN+KdMY!QL4E8Fv4p2P+6*U5k-%0?R;$_dw9(Er%FRa~QJjS#7c!+|a6PZl|Z&(xr2~;tGOQBZ(XXT-b zCvijOeg%casbUCP*ovl}mPw+bifZ?s+c1$3%cQ5n?^&#c8YfHQhh8Z+1^~W9Zcs#Z zC{c}nLe(X$gvU0EoEv^R*VXs`6RxWjv>4qwQG=_opU*udKx*I{PPu{0Y}XiSD`zp= z1ywFQYUuZH1L%L1#EPW7?}A0+BYlu5R}XQps%{vPmu@7D-^&-O(oHgVGH3RG68wFG z;NeE#@6Q2G@%0f3h?Zh;moyw*%a*(;Les-yY)H_xEr6r*`9ipY2CAeoTu6V^PAX%C zbib|fuRIqTrL9klyh=a!`Z?=*rvL!Lj9+K2K{A5Awt7q_EH4rPJhI((v&vwkI0
M}r|4&u-;`Sbuh?`b%)#;UOgsd*JQG#o?jb`9cU>p<%@9ei95Ximtwft zOP6_aefiQI;YmAgjnw~aLNuO2UKFI7dChOK~%ikm{n&^`b(Jh-<%dSC|xWaL)(0$)>`_Djb#?dbb71 zd2&^~$_t+CMj0V1?U^SKlaHJw;35{R7Gh8#f(-q~L)bF9<&`fsrNLHG(my z7DuqgAGs|mTr9po^9>R0UpVZ>rD(JBLGPHgXzVe!#$ z>dR#DdoIlimlJmv4|@jApz5omxK}&>cVx?la4W3(#I3l(ct4a|HRe`A3*Kqsw;X~G ziD_*;0@I@OiP)5&$)E)elf7zIj>OAYl0QNla@ixc@zkhc>! zR1V}-yjMzqkawMtx36yekOrwMAus1-lhiXF9BZJ|dK~FdfH^JpXt{nuzwdl#|?%0rqkw1EdigK)X;r2G5%mBx6l?)5#y6))Z_{lDP9+>QsF3v$c==O@a$ zMh=S@p_aUt;ogFDYu@Y0a=S?f4_SaH{r!>4<=!@@Sp4_=!)?Ntkw2+Be}--R)VwG= zy>;sb>())Jo1U3nQ?Ffj)Vk6C9`&fKShucQcKUk1u39&@ZjN2y%hMnC!k0Yr3lE>m z7&e!COT~ppk6yANZs5W&!q;#=n$2H0^XR01{3hX%22hqyF0Lz`_$4TW?|(ogVFwq^ zJW8Tn%P|a2eC*!FLMqJNngcYd+gQA&-<5KLXYJV+`Y&4!@=0C1AB(~3tf(Ur*WDMtzzYN#$b%&&+ z?FdDC-Y=XHl*B}C!zW*<(ce$^*;VG;85MKuH*)&eXRluM4r|9Ve5qjEHy`)T3Ft?YreH{Xbp>B@9qnc>FEh}vVzSf~x^ zY-MA+@O1D;*_`ZnwSB`u7Jp+{(u;&ENB(x1(_lg$VZI`6HAeUq$m2r!j{d_5F4kCs zynXE;2+pl;`Fgi(zxAPAA1U04qEpxRuC8FOE5He5G80$f*!DQKNU^uL01ikP?{)$} z@n!w<-uFhBd_CV}=@SScQSm({L!g48oaQ4uvHlsDvF!GghF>CDB!MoJNk%L^+JHGm ze2#`Cjzt(suhpqq!waa3Zv#{(TNSnI98Pd2eyloV6tBPD}a-* z`kCDE-3`z(0X6L@Ou3yy6erFemznqYUxS+#autvkh45xw%VZU#Q=K!e0=qHhsi^HC z?)T@btm^`)wE&%bAtH0Gf!sDeb-(=T%qmEWwye(1VZRxmM}_W_;7X5USD7$H9tOME zLVdGm&qGs94D^SLkhGaJLK^lk|JO$t;X53x9wF$j5hlKg5-}bjul{`_1biCd@!FY* zDSKx27BLePluu!Z(4N4c|V^*QwA@0jAZK5WYH~ya3JP0ca zsnF4IHxb&O8(+U^;`;S-)oIkA0iR5@X;v1Psj_3c!eGj zf=1m04~J#A>cnu#rInoWYhO=rp7;=dAsU00aYxH`nYdBt;LJ1c+4Ldks;y;c% zdz5%AyGssmJC%H-ub^F?+@$2CkXQdl1}K@Lh9BE$+O~O1lShp|%d%hI7H^u@?zte~ zp|yD@%Wk2O7cUmHpDlfI7j|tvl5qC8<%fFQ6nUurIX}{Q+{_B(&U}}PO}-^7SdqglX9%BcPx^WKWbctu$lNB z^LYLbf4pWVujfr@F5*HW^xD70(*@XRdZ4bv3?HYVaoZ{U(KyE-LU^NL7uo*X$TJ zvSBz~qWSJsL3*`(C15ZoriE|1c#MJ**gsw z;d&l@bN^{^#a(=@$?v5vH!Z#kn0Lo_P3PdPd(-Wi2lt9;Fk52if`x&5`sPI-^oo(ba(XRCEnU6)6Sc+*FfPdqb`a88M%>c(W#IdxiP+zyBsiKjLU=ItF7`J zDD=V8Ew{20R0BSgOqx1kgjgLRR_%CU!=8B(5#qmyHXY|Aze{ZIsFz(1* zEBmQ~-<{u(<9x>+!+>QFCo?&)e6CLAiq@IbGW?TfDa|P0c85<^Pfrb}UQ7!5#r6j? zpTw}rMJj{r!9I{R0+IMv9Fh}`TiBQ7oWwQ<>Hxq2K|G~U1qHj^1X zUYsBu;x0Tf#_o9D@D_)p>=r8INS8~rw{+Ew_kH~1w{G3F^n>@`^}d5a8(@hrt<;1Bk{@#xu)JM7J6X8O?}^M{rv13c_NM?f7R`$KlGk|`RuvBc>ZbcYC6Vpg~~-eSaxuhvij5Un$$w`=~ETlD$_>r zyWTga5rY~rwak1I9;OsubRVT9DY4K;Fd(79!mvq;dB-Th1T$BML_CpnKp zXqH5ecm%_YcqV+H1V4}idQm1+jPhcR+O{sjK^nrM!97j@f_Pm@WtXFt9BeWIG z4jCNUoC=+ZCWuHXa3ypDp&Wrzpa-1CG6BUctF*KRBMe-kNO9H%B&mwBMq}bU60OgO z$DT0o{?f@>a~qeepu+Gmy(Q}cyOTp-{QfpTGkbxY7XKKp?t>3 zbW0-`U7)ZFg)#7WZWF8a$^-HndqK|VzMV`lA!2OIxs4*l8^|rhyh)K$UtC{ z;Be)MEYV(JNtwHX-j7mB^FUI@7wvN@vv1=%YZV z#Zqia_|(*FPOrpUkJRBwTA^k`sv~eYg*8rYr+RRDrVZpC`U^8&iFu@9S6s>D;d{YK zC;Wr=vhJW004q{i{0^>j>?jnv1<=PE1ZsE)TkroSR|?}rYEHX0N?(Awr0=2DnxY$| z7W?*qm0T=?Zsi8x!$f}Gd6i%UuMjsU>dzLQqSP8QrA=+sx^M7OS{<*mAu0WGCC*Q^ zeb*9`A$6a; za$vIED(prtn9?Z?oD0q10l^5M)P<>Os3P>KwK|Kz?coFR|5QDn4X2d9w(~3{gz&ii zc33D)RNoF~#I>~=8*{rlkEgV*{dQTR-N19eIsQy2g3EkK?y7FVJEO;iEvi2dVXXNP2|m10#@8Yae` z@+@G2FOL2dV}z7@h@fcy%9{IStmC{clLLT36qMhmPNqp1N062Pjgrb|0Z z(zbUHh^#VTdf^|l?Yu6|vla)T=ivzn;p#t{n@12ySv)>tt#nLPF&vH-fF^inA* zR-DR~5kkW4u|N2z7rzE@;dIU5EGYub0Q*Vu{U0%t7#yjM3Ec3B0T_+D1dN6d_(QUT zM+9kFNoX;sRCbtNj!+vBBKD8PhOhv`dB?5;X}c(@JX<^zz=^V2EW-Mul86hMHCj0o z9nKtKKrhaJnmTcz(Nr-%%prqfMwmo26*VJ?3R$Y$igRiD)t}{YMS$2WIxo#*i9SK& zWR(Hs)gL1R;!*Y&dlb#O6w0=qQ~F6pRD=$97VVq}A$<*L88xKwt3AAuj6qY5t_W;@ zC_XLjp8tRK>5%tKoQJp|Ft-e9hMwDudi&;cxP!f;`0qCL%bA)U4 z#@xZ-Q<7E5uD| z?E9UE)$*SbRMpp|c)$cac;JbxPV~;lT6_ekS+3;74N&1<<}?OC?ZrbH2-L(OCg{Lf z^`FurGkumzmGSF*A6U37E-n)i*`ybk3+iYLnnO@uRm@jy+A((W|2qJ2)8I}U`2evq=II~isQ4#qE2P=ARL$-KK1D= zdc$y@_%y}(PocLW=GN>_VDNe+KEy8R00)0*8%0Xhn0#pEn^BQCKGSAQpp52$d8$c2 z(H`Bz9rt2%Ub5C#N`my6Ec{OvFBb4bFImQ%+h7(< z|96Q$=XTW4uIq3u(@6VgGXKZi0pU0dMzh9YzOqAX zB&A2*WOyl70Ej;zCHj~prw4833J?P&nPWB{HtDQ+z)jMln1htkEy#OjjT;Ra-H35< z1Si`7X)|RY3!X*SJOn7!BJS&-gbrxIaXBEFVis`ayYjJvM$6ZLdjthiWCn*LR!S4M ziXI({0Q-`AN{1mx(&!3uo z6z5W)yTSGrbQ7IxSR-6n#o^SM&?j>~XEli{!!85pV6isZQP2RCce+xX?4r7Ml$McF zTH`4DmdIuJYG39c)Eor>4m^zK9XgCAoVTMq~)IO601OKXrx@oybv`C{X#EV0_ zoRtWv0(4>c>- zMol#GSP?oI*>A8?t+7+hbQqj5pT!wH*Xy$&HpopNa8wFL?GN+uhv3psqn5KWc3hAr zpG;6Z^dUyB3&CZJ^H`V?zWtv@gUd;H|2C(-@+}d6!%@d8o;QoT1DMr!v$|1LV~L#s z98E#;<}l)A?qEY-oMW_5%^_ z+=g8xpkj3couFmA+(NjjX!$b6C7GcTWjkr&CyBKjxs&p3n6;!%<`bRdotmdPnuqBl z%q3Mo4lm5K3(R0F1XcFL0(0l5Bsv%z7$+DB+lE*}+U*VE$56|8X{6=vCqdl^F~x!C zJ6NxeGzOXQq6>UdvZ8Q32nz;r_QX)AHBWWY)AS9K=2}9b(&LBebF5A5I*d+L$r=^~ z;_06`n^$~Vm&IK^?4AKxqpqtX;sS=I4n>g4q_W{bQMeBW!ofGSwCT;Z0tcQ6y7d<@ z82$`i*%Dfkf?btQYTx)1X?3@fd{qsL>a0w?+eA5a zynYYHhoS+S^y8p`k;{7IAQr-ok`D6JSOP#=I#$&|7Vk^|V)Zq`QT8f20N_AXBtX<; z6Pl!DcG8W|@Yt}FS^m*>*|3U6XR#gcI^9b)nwZ7(WjMlE{dgJsqHE*a`86SLQFl_3 zg8WkwBHF1O%T50B6oP;+v#lh5nVqmn$Y%4Md9w~1v1W~rlKA00RVN)pP~AQsnV zB69KqjyHT9&Vj`i2VtRGhJX2X;fDe-pJ8-S@>)t3$+iQDkbVz6NT!`0O&0q;>#kIx zh=LCgIedGFX$x<@jOWSXk6Bo6``Dpv(mK}CF$SuPtprq_%1+aEJdwZHuqZ$q8GSzj zCyWkSa9Y~=z&NNC=Y#5${;XGe^x?UNrIczUgZ?zXvL$c{g6PMmBx)rDVyMLc!=uslGdN_^#24<6*2CtU~y-q**90f|O{BXgw4s{VU~f96&)@ya;O=*CJ7F1x*6e=s#| z`>pkBfYH>-u!``y*GE@Jd;}vd!t39hhpx!MrIhI!OW_kmZjYGzZfveF$N^3ZN3Pwl(M|d|rbhFfgt((oln05PQz!yJx5Q^iOR0xuGMgsa+O-R30g(*IQ6Be?{ ziU_9dFJ?f~h*_`&j)OufOhtgm%Fd$xT!g=Zmzw3ep2us;hY@g=`VlPbiVs*&AOW}_ zEBTBHReuBgg9en}=j5Mwj$$-rCUGP2F}1GtnIqbtUY_f8$}-Q~E5Fg!UBb(rV!K)R zBG#W+qCWIhIE|8RX{RI z6xgb?bogx%zVYEym-H+|N~}u)Mk9lL((8ga(vYB+8MwYIB0x#f(8(_@vEr@Fxbzb9 zaI^Lfks^rcG1)EXPCZdou@gYwontueK!hnJL?n8LME1MFsH3#xMDG!;YaErb1d@L^ zK5QJ4C^>?$6yS+hV-&j^)_foXB$TMZe%UAyn!fbu$<8v!=+Y9g>wA+&%Y2I{c;k#b zXg+;N2cC0Q^yX`o21%$yZ;PMfA*g z{D6p~Al>Ews;B*aCN*qkO%U7;77cl*Ba!(y4@v1`8E?Ch7kb4>@-Z+uqR|-s#5n_o zPIl8XfI=m&&7k$#ymioK#zj?CLgx+?)6OP<+lgoS;3ew@>YD;|uo=)~ogIbUIDk*gTEC+{piL&(5QH6` zb!fp7Opl`lhts=2ch$(rzvh~3ox^t&P=<^Dw+Fu23vA2>Q)QoSn!TJUq(O0aY@}sO zSFr^KsE+nb<*^%j=Cw{D7~C^1asbbwk~oy&qt22946Eb690b8+Jdf6y3KA}Gi%ITG zr9-!6H|NW7IJg2dU(~oBi|^qKj>P1#0ErVrz#nza2a)k^P5X{Ge>a?V8QK?G1^Nbe zy(_~(-RToJK>NwV;&85S)i)p(-^^SY?uy@}8pc&-cy!uI?4qDvA^K#)*#1;<)Rp1> zBUUnMW3pCqKVj2iF#>m7E3d&$jR!0BoIytywHlRKCk`UTywEYZJyCK2l`Hd90(KNF zq!iqd$&ow75kQ!}?&n1fdu0GY#|oO`GN8;!#oO$4I*DU+ctk!ec&c#P)`+$2I$#yB z;bkX0mGT?;eX~6qMn**nbwRz-*M&a9D=luAYDtN95*o+g3Lgy6fzyT$^V(ci+m%zp zITEDWUSpue=MaG-AJ(@fh?gSMF-!mlP$cne^j&eLrnN%_kIrS=L`G->N|OSl=7(8$ z+f&1J&m_yFJ{aS3v>3_&8EmLOO3-2J5rUg^?ezzN^r}2-D)t9`P#>HcUQ;q@|wFI*vnCx0UXeXZ0C2WY-Ratbb4S+iU1?azx9dg;m4l$pNQff{cU4R!c1fnY2DK~G> zp8>v$$w8;ZzvE}! z&f^ZQw}G7zmZr!wK-tUc~3(x(bpA@~pFAA~f4jsDCiYl`+U?UiVW zz~C7f(k_6QwZn0N=VZp7=+E(?C#Q&8jy+KtCP>;-VvI=$hB{(Lq+rIbsvRYm^}-&x zSjO|E9zfL2(Coyh(tY_jcs=P(it)^F*J%#;>O&@8L8S6W#`LW=Sj5y_Zf z#>t)T-WxuXk`e4vD3L)i@-Gr2?Cl>S-yfGx@sNMTz+pb%zzLYPNR^uXF4eJ` zLR4AuAB>R5!{x)CWE{z)Km+~uTzMH&pfv>zQg#etKH7z1{bCdC>-f14oi}V~5fkA? zuU#S0kRv>2|3>V&$+{@4Ow{BBw>Ly;qI5h=Wa$-!qyF?%Sve};VH=O_8%a4+$q202 z6JsKSqJ@W@G@4g^#~*e8XV8;gm1sZ;B3j2Gh|IT&U!#B*+D6RebBIL)ACj}o1dN<7 zajHt&b8vA~f@so>`h56Q-Dz2!d02;a+$xPa{s`~Gu?TuoPum6KN;D|dfxbJyG@(}8 zkSwG{NLE;3kbk@SRXcyA7N9#haa&NbngF^I`^Ul5vUTAw)n@f4=jJ+DQRMEMv#fQM z{Lf>`mO!@OOMj~`^p9EXEB^8Bkc}JxB)z>O7qt`$ex!HEZ(S_9>++jRWt4kwCVF|X zX*dmnz(0Z>zP6EZrwWj#j8JUW@BJ42QB$vMJ;XZzC)LX5@GvewlaRKpo%a*pW4o#W z)3=iSVtL{K?$P}OHfN-1S_^|qq-Nvp{_dF)8%N#YTuxXw$-g80zhkc5S4N)Rr7 zRP62iqeaqa@WhdAOVZ{L9V)pvhh<9X#O{>(jq0Hch*@dgv{@HEuEXxxVN>!J^)*HVjrZO(g&ob%tAa~!;YfQlOVBu7Cx1F zMRz;uE_P+CdemJ>C926?4SFO*c1XjkdT-^5zDLJTUR@XsvZOUq5i<{Hew2P_GL-HH z%0{e6@gW|p7%3K*xNwMZ__3SwNxQJHN%*!%28_@`wN0RlLR5B|99;=%NyIXYGMQi! z0lZ;;=>cn;N^<9%(OaTQa59kg)f@}gs2IR98C{D|9C3cfgF0S>j7aLh_P1`W{5lK; zOX0V-36Ue46E0mEIq8}-b9e2cA$efCmgZhSue$rNj8peDq~W2-qux!nLsQ9uYI8Vk zs>B61n9QUD(3B^XoHv=*A&a;1GqL}e0=JFFa2MVJeHIM@uLR6uq>%{kCX%6bJER;q z-=?QOQC?vhj9N%!1#HhwRqY8jEV6z-XQQx^T3vTO+m&WvfO&6>(nCFZrJ(85Ew0{%1Xf z?I6|kEnfDRsx4389@b9q#rh3CT*k4$gqC{ghpI1MRi9@fyh>qcV7T8Fd*Y`B8SWuQMk z{sDZma1B9OK3d;z9OTMjh=hT9pDO=+|B>)Od@pil zPNmuf1oQ{TFy*_nj#LMOa9SxdM8HCo;%!sFVpuG#AFrL17nT7t^+Ug%ueVgfP$UigSJF$Dm2VT)dEUq>M$d}qfgt@g1rzy5 zUnvb*Lqk-a zCO^Q&twd}NTu5b#+yIJ&W!<@D{Xwy&zna=!_1oT6Hy-GraF#qe&V+z_HJt-k{kw+! zrB_@a|9%+(j-|@VH(_6Y-*C!1TL>$sM-bMW2*@2JNn{d~%tSM|BD_&c1WJ6R@%I1J zmb*n@?=b;<5UR_hz_6B|2Z)ZTuoHDAboqKp_dv?Ab7ME7-8qC&a%iizlgV_@=0Bo* z%aBmiS#vH+i=JUE%Z!#8o;OTtp?EMm%Duy@-x))s7oi>X2warHR)J>$0@m01eWpra zVy(r*Dp(FX;HhH!!rKqO#Yq;R;F`-~^oMHr0`m#ZhnqoPmKL_~Zn6m*mXyfzFt`%I z2i`N-s;W*_>PoRKodFn>kB9OGShQ3h#9_VmHu$_67Sf5Ser--!c>kKiHq?ESk;syT zWK%n&E2qNsS5xW_t>Q#%+)}9IvO}|G+kXzkqDzr#v=>QwqreuTIYqS~57E80GakKX zYIriZvMqT>tjL0nH`=?lEubz#AQX)stsi|917M-c(MK8vqyjH zR8?$YM}4pTJqtobK}^=;bJG;Z{7HJlAsDW7SZLRod*~dSO{sGHn=EVpg`pU|kcGbOR?)5BLs?xo56# z_f70{)~@ZeH{;*VIyO^Ww=U&NHmZEyS|$qW zJW>JaF`SymJ*holibY7o?q$B5a4;*q7Zk=Tr{ZmDR9gT>r#CQ)BfOF4bv~|;q;`0- z{RAnN?9@xPVVL|!T|`mDbOeWzLk5@Us-oBH6}=*#>S1@O9%s``^?Gni-=2W=UNCOo zd{M_V_!C*LB>v3Gb|Ix+8!p^QW~Xky=yM?k%5qT-3n`hCIV=O`QZObG;_<+oIAV~6ZaqX!c#HtKN zN~|B(U_l0Oc`D030Ea8Wt9@qRl-8yw^(Wl&CeAowlN}{}Vf$esnFKb5-{3QLl1z6y zxnsx3L-Fch*h(rieK2Ohk{B-Xn|bkGP2@I7^=AxmAqltxN){7ocH59(IhdI$M!4a_ zLkj5ROgbch#sJ9bH6@5Hd{kcjVO;giufcCMNZ8eEDL>O!Gwcrq123Cp$$Yrsx2T@; z44nMJbkQ*pNKEZOkd7mTV88C$xMCGLnhLa;@ZnA5C%$w8@QMH_Svi9aqEXS~v@nOk zr}6qtxoW)S>hU6JevI+PXp=BR^M*pCrhe^Q7JHP{2zqes`GVS~fM1^&kXLC#tK=C^ zP?$bETiOa>g7;DIGQdnWIO3d?=C1N$#F#1)g$N3lUf{|S1IiA<2|`%!H)Xno}lf$Dh1)g zzjC5S+*gBsJev`?A0jxhKJ`Naf3hD^J6820qhhi!MLv=Op8d_+A>(C#shBXsFT%&j zivWq;UwHPN4*OiSOqSczaKv?FDX%$!o- z^$kq6L3?rkvq+mcOC^S7$l^wcyEUB@-8fIrr0P(GcCcw@PMk~PiFFYO^65Z$o2_Sg z1kVGPm@0(UXeb}cqT@$VI$!~(kr|GE_A6qSLQA1IVcdv`Wh?bY75rJI1uI&GVOyBo zN8=kyCr1@wOoN89JU{t>0&^rP>~?p~wXx!dAjLYk|(4#c>@GgHE4f z*8^RInL;e~r8omql7Ax)fnCwA6M;Rg?s**e#3~Y3C^fZ6xzfNDcQC*%*!gU(n`c>e zw7iG1C^jnbSzxF6imgW|g~r5`cmVM8?Xzp!l54Bbqjy#kY*~=Ts91l2sjtOyqdo#T zKue9QczN2X*&i`&{zw_JR4-HjA2IUg3h{fRL4+Z>p5S`1h6Bh)FZjYZ34$!6bV(u0 zjFQVjNHKm`p>z(RA%39X%Mk{T=Oz^aVN(T=#34A%t}t@*19J@&OiPdyjEv1vFl3$9 zV$te2^Df+FjV%hKu|dXCf;PR9{D`J7{ujYdODUpGkY>^F6N_x&$C8W*e#u9YDf&pb zQMhXff<=}?D6t>N>-JLZ0|@u)2q4qI02#%5Dd8P1pU!lCLPy3n^762x+)eAnh>*6I?=fq zs(vHmWupq02gA zdX90J&uXLL)S1%mU)nBP|m}8dJ>)(sc819QpWq1oWl4 zq0Qv62eb)NF>oT1-obM3L{+-=uA2CYBXi+U`ks3wI>e)v`%!g8d$Nqv@& zLf~wha4-!WMFocW!H_+N(z)a;ka;bVS<33oi0M4^wM7u{ydqqU&)f_DT12@M0Si9W5+{AMPyAF+?c+zj}LbwAn$#DAk)51!#?|jbu8LAcR!ntWz5> zxt9X~T4nxc@#EEhd1nKNh1NQDF7MAw$;biFWsuF2`&Ko`=J8o|Om~UR!=GcdAs@dI z!e)GOVTm!rR^*8&CVS^4D<0B4QVUidK&e={r96YeGiRwD`rUI?zU;GnSb*2=qcvY- z>5JQZMl5<)n1(w%aN1>*c({Mr8&(EFJoHm6NJ9$lVZnZ{VVcGBLPPJLXB{Tk3A1YG zRMN3w!4R#HTyZe;uMAU|R9c{;krxbbyl#hMsybI(E^JmGw0O1MXbi}SsAJq0*hj@C zf-TN0lovH!%t8n>0|j7IrY_^Y$8%i^VT&MtXH{2ZRyu^}cNk)ishLgHPon zQOAPvUs)h|ccxXt2R_I%@!rB-@eSbYNHWAz&=6N!K65~8De}`)L$Y{EBay> zZM~iqMn%!;DR#l=`_PZy*a~w6H zT5n|$cOOvy8U8Wh72p>6fO1VUsN!tJOZdGa-1Wtd_$29l`W|;Nt~q_d?@EFHly))n zK(~OCR1a4=XAK7%D&;sSVkkujm%B0z89^sFlFvi@`_cQ_RdgmAAsBpOz;a!9F@gyU zLLScN|71MIjjk%1MN14~CTkv^F12Xul5 zBIR-EFRm&rn?nKAAg=A^eI{*pTN^J~)jW>3)VzSI4-h!9c|D+ca~|3JCQd6aG(S-~ zHs6*8+;P(vR^@Ojo>N*ialfL?b>cI=8+P~YAOUKB)AgcZ5Z^xPZ|2%2-a&O*7#2(UwFISbU=%x- zroAWQ3veH{#=G~z3i*)6ogM(uY3EYy91jlh2oFnIt_!0CVYL+j=+DaM(3jRi4}-VE zDwd{p)@Qp6^9oo&9?fK@hC-!nKk{1QRZY2CTG!C|QxmqC=T-rBYLHa|*@4|UF%O=R zSMSS{7S?{T1B?^(jjBL7YrOS*xFZIMl>8x5fGC$zIOSjYWTI6zF;s+PT!rqTvvC`L z^jo=H{V+7KX@ywEFL{i7p+tPuT~a8FDf2}AHzvreGp6a}xcCLG&~A{X4aklu02QLohs zTt)fak~gear#R64yYd z3jOfTCxW@a*dfDc#%0ws{RVmKzgSnjIL=9;Q0>X+itYGQ{eQV`n5k<`?)ufHWrU7O z5swsF^3!>iTl>V@t)0~D^0TaFjoPAWK(fnsm=1ENkRu@`(+t;r@oKc>37MYUov-1a{BQx;CVSX-VR zsBgh)fN9d2w#zt~v7uwflcRVqb)s`ZKGbx;3!j+};eg82)lTZH2$S^NBI!i`;4Cr@^I6FgF%5ypXQ)*}ZeKb1-SKGEo^tM%x!8#4Mz`A$VPg9Tus8ug@1aVlv zmqpERTsHrOF_rZXNL$U6s8d#7ayHQ@lSq`cv;yHijg$7sbGsHAEqHLDcpi={b|?$? z7!vVJ)qJgTh>NA-S|Ad2HX1?a3HKgWD(M<0`g{XW^W=Gn^xk#>iK}Gpp~G>jN6M@s zCdROG!sJcy%6%#_WKAvLBAZCSLwF=}T=i!CQTS>QOOf8)eOXZ6=q2+bEv2UZ@C`W-2vLAY2eX%y)0=N7&~Xj zmO90Y`kFNn0iQ7%0>|{Kk@cDY_-h)c6e0u{(Bw4(+Jb7Kg;-hj-ENy)V|g8QcGyX= z$na3VY!EX_eY{17oG6Qu+&;oy?!(>-rD{h3^^M z)l`wvF6M?uKQ6u-F}2csOo|4Gj*N+lBS0eDmuIg~YAVWB3N(W~hl~PnMZxwb(daitYR4Ov4MBRcBn;$+9bL zjWXwKj4xs~;cpVpRwB0ml7v0{MOY=ya&Gcbf^_C;1tLdtlI!gjaTgsSUeG)m+C#)@Y3fk@t2^7w}`?D6|GYR+lV0rEMPnW!ws5%P`8?wXTtRAf1hB& zj8HY7IP658Qc!IX7wM8ECXEyO($&HujSY-nAQ4OjOU4mDRWE5307QWxcs1UJj>%`0 zL{p#jz!fPPuQJVAuJw$Qtlns(Ir_s0!X*sZbdS zR9(95-Vk6CXB2Sgj+H3`eIVDK+i&4v-VSzyyf8c7iZf#p7rf{~uGUXY-$>Hno`<=61Ze7n~4X?lROMjH};M7=PF}(Ntue_(v15GhsoE{$j z^lyFs*LiSy!@j-mE5h|ZPz>gKS^eM1cwmH?{nU_mD9=v2<94nPxidj>C^36?tgtpk zI2k;{SXruiW^JEuHFpj5SUU^XU)A%`JKCDI;6GuHsw!gDh!IeM`wm)QP%YhduzXZKS$Ty_15UOsfl%P+iJdF)rM9F$||`-i;z&{fpP%N4!+ zLHlxE2CtVJ;3vB-Z#U4jH4d>*bWivs+Z^_eUiL?f3~O)79R z*e44>4!`x}REZ>LiPdVdw@?Ly_k?Ao%RzENBE*?c%~EYaSY{v90`mer^r~$@3D)ub zHPMWp=LWQgj`-=!O9_tOg9NllO^!;Gk)<=cdXiVy zztmid`sLpFw>89VwFF6L!hkzE@DDvr`af5Lrx*V(Y3~AM*Hs>9p2vMu)xD)UCCPT# z5^(ON(kWPSqh3qFYN8}{s%2YXhZr!4Su=?kyGtXpx)reo^&h$)N=-dn6naw6+zMMu+$S_ zuXYyAd@{PD@R{k*{;8p`;u}K&bd!-_t%L%ZI`2qcp+H(~N8-j-hfq(4Pz-LGktJ)h zHUk#CQ^H2eG&gj8+3i6Z1x0Hsz_9ksezPxqvo`sL-kkdl>V0yar;u}0yg5V8q52^9 zzy4NM-NV8Jt%lrzdoKaz=If8Jk0y3}3_g@^&y(qQkrzI0NT>iN0{_VQ5H~z3#185# zFV12IpDWjH%z3-}RNCnGX;=E-4CzXiF_Pf0u`NR12PN^;JtI4KNhbF6A+Tp;*(I5% zA%h_X_bt0zhi5)@{Pb*3i9=J;iy97U8`c9pjoso-boiZMJkeX8Xz;2$sU%tR;6oC< zT;X>A1h2@0!+i2pQoIjIp}+0Tx9*0n{TiVF zzTqnvbXu|a`EnbOLC42BSa5iWN|3hvD0A!e(f0bq_IidZf=M^h-Ot^X`o!=C?|_m zMf1MeO7Q{n%x$h>M&yjTIAi}sA3sCIwlN$5KCk{~XBAAP6HI~uz%LCn*$B-DK^4g* zwz8kgfN)NLB;gLhM(jGJrI4}-~>iwW@maF`OAL*tOB!`j~bgaH7Z`nfPLd-hz zh7NJ8xh3?l<`>!;Rd#}V4O7i84c`SVv+&mZ&1N2qqV9~Mr&6R&Q=5il;fSQdrDBbD z(FPWM*UqHSAjs(+D&P?O{K{Q-xf2t(61ojc^$|KOX2fyJ1=L9_gCJI6ulix zuYR>0R6hCCq2{qW+6Q|9Uh~D|!b%GUXj*>_W5zaPZAaG)Q(83n6$HWyOM-E3asVYK?qi1h zkH3;$&?r#()u2fgT0YMQyRs&?8`K2#z;%9UX>jVPPj-%0_@kJ^Geu;>g!dq5?l+0q z{l(FZ)#@WlqaDS1L9F8%kH>w;CW@RYng?@OpZPLTE=}Y{aAP=!@5_U#=bPJ}%`tB1 z0t$Qf=q1fyt~sT})pU=argBeH+s#Xf5VgL6DDe=k@FbOk;dbD`Pb?|@rjO?0(P)7d z>Fr@Iv~iG+7Le$vucxA~5Ffb(ntR^dsgB!o3vh&XuX*sBj>F@#euW%_c7+V=0V!qtg2U3 zk>t$I3AVn}^#fR7Jcvaa1p?rHupm1p)dcwa=_|Pw#dY?i%I){VQMo5|Z&vBxKfVqC zkeeY&M=(_T&?ISu8BB^0XTa_I3I;Q<)-{F^&|pBE1&)h%JZx^iowaZ>9PgonA6f&V zJRs>O9*#b`;dp^KC-xBG>LI-YTd)`{$acX)X7fzxuQjwm;zjCFxn8IPN1f4~GS_P;%p(-$~dHfp^#J5=>er1&)0k{}DQz{$)2OU>e9T@YpMcVZOL7sUA z6>?ey;)WScwEgVjQENR+Us6bkFc%RoSVU3{!LJ2OusnlvX03;f5nxAyU9?Xmx^)&dsbT;w@m z<|Izfs}D{9mF7$*OW^nCWHjN$3KtAJSSvk=-BR@O+Q!^>6AZZqe%O5E_8dOTNaw5D z;c?!@Br;iUJCG%OJ6Hk}$uv>fge_#y(HS@nb8Jglnhrvu9?5wUpEe&k|-9-g>c6-I?aa;p482iCn1e zs_GrG^LV!dqyc*vKQ~DE=FyBp2v1`JGXtOt*wl(YAmL<^Xhn0FY&FU|=-kne+|3Vx zWB@P`IJZ=~N-R_!7-$RQg;N{5Z{4U*(!gSeAd}!Q3&+t=$DMkyIrUM|=HC(xeBbWT zLLf+dwv^C1Dg-}xHo=yd1kvSQRj7qy2(pEv%~u0i?gf_rmYR4nB201%6I0i=;o%Z^ zI9u-o3&D}CYCjv*-alKd-&7;i#|L5|hGU4J#WI{)r^lh*g}g?x~1gOe{RKiHQ!=Dq_s-f}B6Gis0%M()jUj z*f~rlt8#h<%o$MpZ>RF=Ws+Gw+UX!r4w(}o(=nixg8{c%o$hN^z=`r!0Q6Cwl9Yw( zGZ*@y__Cct$o4%Pi*;{m<_`AtUY*Hj7x1M@j@Vu8BCH8QA4lyP!oP0UF1-l+mK+q3zaK#XgF z34HY$Cy0q0LUj|20t%4j1PG3EHOBd&={OCKbR;~UZx9Tt7IMc_Ov2%Wyu3@`YyN9s z{ra&jRp1eo6;!s+*jMRo^UFWC4er(sw>E^+EpxU;<`A%fC67O8CF@r5;XAh~X>J=W1~H1vBV@S74G+MqhP=w)lwxi33A|DZ@)L1F zB0$hejG?<%~#*j z4irX_JRZENI4wpOf$+~yw0=aiiAY8PgHG#-2nX~pdt5Q(Y}Pc5uU$fmbivFMEe($o zdrhU`&+L&H0%|%FCzrvNE+6YX-*JR9T$r|tGhz>mCgZ2h&!VoRxTRpVOR?R8K#AtR z=&7XFEUw#$*j#{9;b`-TaAA^F9M0MhnHule2;BVH`%&8DZkKx`h2W{_0FDun(1fixZ*6HGzs%vK*JgCsT{eGYbQT>!IDByocyW`w+R z9_p+vTD40bPYZk9XA%xCg)dhdZKD`@a?Z~gV_h_Zb8Bi&@Hxc&D0%W|#m(hL4`nK3_spJ)1hw8#kS zyf~Sj-1FuDKY{L6m$%e*1y!vOP{^ z&`x$P?F8YZm6CH26o0m19TSR5GoE(co=EGbE*jr<{CSzC0rsbGdWygNe7q`2%n$>SNQg&Uu)?X>;Jy1 z3udrk>5}COCjV&lj-^-vrLKtL3noR;SXm3NIj)L#Sr*n2Wtm+HuPTh9AG~WzGq=?I zvz#E7Pm87zyRey07B(-PE|U?;EQd<|LA;{Xj}uP?X}9a*5C-)@IMr)&0AH$1yJW*x z#o+Zb@VPa>5*z#3FSRu8NZ`^8+VmvxnG|mF55*XJvYL*NrcORM^v+u!n{& zH^e)F!I*m3)Htu+$m;zw%IjVTSo7+Sk$%utEX=75?_VU&w%4xzJ+7@%# zV}*bj9J6T7&JOzN2B=t@r4hR+YJq@nC}xn$F0=aXe9yXP)Z;{J$A`S=`L1cHLAZS z2qwi{JZ7-$MT2{GJ@p(FA_A>>+D6#@lkZb-{=KP;`}5IL zMK-kjXn4d5I}_(zI*ITk48Q0Inj9%Uj*eHt*Hbn@1{^m2G`<6|&MTN4rg}&HG$Rhf z)!Fyi?0;bFg3;q-*!l>l!%Osu+N z+}-f(;%Z9$73+?#`fSFXnk2@4EcYKL+6^5L{Q}%16&ADm?BWLQ;1}16RHZA$1I_%P zd<>?{1Rs;r0l3}OrrHm~<~}~@g;Su%$tD0OB@FAq1xmo#I|H{_I8Nj~r>6K;1t^LD z!{lIQ10U1`a2CdhQC;xQL^tzW>>)mKU2r@{@5^wWhi1ZCeuXx{Lutc3B$SIIV%t#B z-4W)K=8v~UB;P7B)alQBT6>tB9&iw>01)>;an&W|x}8?5|1vff=l{i)<}3o`CoiE+ z(#U8LaH5JKJ}b=^J|m2={93<2XpJ}xm^QLNG+$)0R;phkR1@}jo&dk5`gOuoc_r2k zR6_M=)boZvT#rfOu3$_)ph>J@SLJjIk(iv}6v!q0U9zCyID@L+0(wb26&eXy%WZ(J zwd;r2N2kX-iLl5!6Au{Zr%RdgqJ7am&pM8022;>S3IFU9v^Bt}i>m-%)H--7>7G2Aiesv5IcR zO$I4mfP;n9+ZXaq+$rk|+Nmw;3$4#{vst~SbgP`}QYwwVt4J-K4m86>qnn1>F06M& zIcg$bb-N->WP)voXLG70QPl-hGj=QA1zl>opslHF3eGr6_}8vWmo?6q2hL>QA78Rr zdY5>c#v6w$Ar~6HGq56WzKrSvIRt=efwX5lCbcX5S+2(~pw~E^)Fzi7!mF^XPh&YC zN9V{qpomeWWvHBp6NMyPh{1*my9aQnzg2GOI&1$&B_06YfDJC)o(~x z=$|fn8PejES~b#WFaFb`>;;MR)|1-Y8?uwiQ7_!Nv@@ z_$V`}1yP8s#*jFqqF5`m$i9N)MH=3_>OcWt}`);Gn=w9|LPPF3-UiH3DI zLI#DdS0i)O^_TQD%)yShs7N4Z-pC1wZ-U9Qu8l3jOdv%tv`T)j@_ynz_IJ&D=3p-u z24i}Aeh~nz!wwfIz>-6v9lu9jN!wUMg?LKe)gIlf@Y}uuI{xB?UTG2l>%M?C)HUh= zmb)D#E$jzmaQoj8DMPsVt9+R%x;&}84AR|xxs=H2u3*@ZoQLZ)hDZ7c(E|JZIBn<+&$eMhdS(N1KnmHpi*_fa@f<`xlRm zb~N);4L@Wcb$+J$=}H2OeaQRMC*S!S6-ChffeMOMWvhg{BI z65qv+ZXA;EG82;=zzxf~ikNQ3fMGSZB&GN$RIB}-$Q=T$h+_6+G@7%Tfyz?(u zx$r3pHSI=N_i%5>m}5R^=8nmOf5{CA!#zIVeQfg7NANhQ9h%3Yt{$XVXLzB-*t87m z-+Ez;HSC%?=iAyybvP-Oj+vfTkqs|+l4{Sl{O(jOd_~@Ahe64=Meoj=c@K7-^M3ct zdvw8b-tP(!M91S@!=^Aq35Nl&1Q+EUFgX>^h5?BcV<5{E7MTRSt88zldpo>*mdx$UA13E)n$BU?HD;^__1pB^E4AMTA%g0S1_w5B{yJ z3N_^c2PdM1N_D=6SA&^R(@y3ER?;)~jUA1}jrn>fqu?Kw$})4@E1A1``7*w9rZ@^H z9WIn?WYn?+X}w=xAd~6WJLx;kzs=@lu0xse!f{Ry0`R@&<8S))Z)Qh4)|Wx2lhHE- z@42vRyCl_ZA$JQJEP`CY7pyxVOtgN75PcXj17Z1R>nq_OGx~5q74Gf_EitDFsnRP~ zM%2XOkYYpwaMWqsYd#fciwd@3S|bTQR?nF(BneTKJHm9F0CXuQ0LA|~84h)r?9+}S zUgWa4n}>>*Ui0b98H^g$Fnmbt#p!y->5clXJ1!}&NemLlzqPG$q3)Uvq*=v{`+#EI z&cdzx8d23dDtmFhXaGEShXx(D3BZ>&zK2C*t*SPz4uA|{Q#ZoVbu2O74W zXO`~g5hm`@3BMonE>kSy8+a$U<-$5~4u@SJ4#u91a!>{ik4P6p$Q%{1DntTffU&+K zaB_GoR@tm*T`>^VxXy&0g)SK(AGx`7)4!naojA>l)`l&=|xuUYi>*OfAow!XN* z$>{I(QBK!UcZ1!b)=;lS!{^ES!x3Xc3%bcr=<>no;_TpkP!~nAE^UXsiw4=Tx6}(} zhnFk>72r_aPFrNaZ!}!D;Z`WVt^u+>0do}b;XT336n<2S%+&%V(}%D!5+k(Y;F`~! z_{?LM8Uvs{Su4uERkw^4mVm>b-{Y)Nv6WBsnQ-VmTp8F)lr&>Hg{U4mK)V@Fq4%^L zhBsFb$6=w05hlg5fDu>)$eeB<#CPha&3sk;1J&V(;O^RyFdi5#&aW>m zRey@7H+H<(xmXq%9P}kk9AJ;5n5FBzMmc}~5@5@H!{%F{67rYG*H31ergb)W>#XA( zWt=42v4~;CV1*Y)=B2?(adNi$NQiMpKuLSP8*~OBQC&&^aZ04_K^)iB`MoqXl9uFsxf$Ut|L0rrfCM6X0~V_TyAD5F=g)5(&7sf8nbdbAr& zlHq>ZjRaBpWmTZZE!TMszxa zUd>8&f{W`Bv9;n=IV$$oC(GE3C}(hK)wp^!XR@%%i+-@33zN$sYb9-2vQQZ?j8^I5l-f^4X%Q;q`y@R zMN;!DEGf6j~G0F~wg#F#sYzvqx0MRWZw#ENlmv-rk+XKN8&<7y4 zfCV@1)T0IAx|?AOC_Pxtc%>@`c(Oo3Z_=HSKRnnQRflw;_w){Y<_q@rw)hMPW0SDW zt^_Y=3OCdUBmO}VX=SJ;ktoBK2}BpUgAV{C4?%|vX-a+&qUQjQN3=EqMgj*HKc!x1 z?NP;{=4WoZktMK}PXOQ8stA6fEI2{R8NMaNBfKXFl4w{S6C=l;(U5&2#=bn?a#YTY z0rK*u6}0UCxYVSOlF&)ohV2-QS=*rrn*t7LN`z%oPC_%bUJN7hLe)OR zt$o{IAv$!37>2>`&z&vK_a|{qkMZhLT_nT^Wu8YXc%4(`L%06h0FJhG4k(WarQ1D8 zE1p)9r^PxT(9=+BY;lhp9zI`WoKPTKaps8N1s_5?B$QEnLNvIY)gEfTKtVZ7&f-pq z|3C$k8m`9awmr}fDTpQ=7QEtq2ffcbC(F)!ob@#YnCH}dZ?4nMHJv5f$kh_Y&;u={g{A#?t{ zwDeCm_D7@D$Kcj!h=xt4PYcxqj1X2deHP%T(`6se)5rW~Ja)GFeJV}U&Uh$@DnXo~ z+xohIFfB!*4p#3h0FnI@zJ%;5XVEMn2*%O2!UL4Zm^5y$jCo-a;OF$xCY#UyS;h@! z8j;26OBzi<3sJ{DJ(2*0@hL6sVUm`3Hfm5Ek?El5WFlVgh;oo#K@caAf9P-Yi40Bm z;uw_@QNOO{5`#9WqPxIY^0QMkug5Z`n?7G{#JQEy7SIiNT|@QCGHS73lgSPer{uGX zYr$aT_UqXh$yMtV8?O4Okta$!Efl8m>tCY>u1)GM7J35mDvcOw<*vP6*F5?J&DOc# zrPnM|ird5GAs@K)($B8bQj-=&Ovel+qiH@rHq?}Ucp!9RPKJ%mqkq7V0q+z+%L4_c zX)VFS6)7?3q^|}nkjO-@+5M=x5s^orJ8xudR zjaiAWnQ2&7^?!uKH5V@xeR!MoV=lGU`pE!9Bmz$mUFIMsp>PFj3=8ont1OBq0lz;2R;<6FMD_8dSnm+67z{ev*-{ap`3?_8 zybICTNi+rospn903;B2>R#0-K`gWfvb;FebCEwFrC}DNqb;P21_n$}stmnL@2z4ek zLT&elffuNjq^jGQRfdCAyjOiV8AbWv%lWoF!02Z{ya4IOeF@gpFK}U)F6iS4v4TC) z5U#qgqL`b+9^vM~GK>|#NgRh&FuUL|mto7ADF0IN4Y;t(;vJQ(J6E7G|CC{qTVJh; zecoV0AFUpO-e-QQV@vGtg&Vkl$k)?@Hts7W%u2n^tcA6WP+0K*{TN7_R#qao3Wizd z=D|?CC`jRAgDWJ28)fBsTf;c4o#+bNQ3EN|Mw4-r4PKp#-M6N~XHy?|A@yT77ts-v z`b5Q22gdAzJ<#^|g~dA!u_ApZO~i=1p6|!qeniEq^Ym2Bk&X`@+_hye#lB;8d;f#} z9>Y4-gyU1rkb)7?lU3}@R;J#pWRuW9gqz&c!i3?QbrSqQ&lb~>BsAUqN1lUvVsRu*0c`Zw;Ky+XZ_$=`ZL{xByLU1iFe|BLMkz1U35lQ^8Z z`ORO-8SHz5d($h$K_@lc8F!=BNALf@E4#N}<$f+kfZKq$KRJg9J>(nJrI@kx|}QM5)=^PRSIt2G;|eU@rrZpC_h3kK*>vkKHI zX7Bl|uf<14HjJI&5v%4d8wI{t+rji6`Rgw-LVDSU@@W8V=oJa3ehW)d?}gpKlGGh& zk0Vg&fa1IBsxIvxv}nt4pqSBuv!?%#2ac^Ki1rp zSD!<_I8>91E`p~z2T%o#S7GUqKSaKJ2O?o=@OU*b(GFX!(f+*n<6v7PRKmHD#X+eN z=ETGn3>9iD9A@|~*%AY=9H-!e1aW9X=NMfe=U#=2U3aSO?N?eN)cG9hm`2H$>3uK8 zKqnkSi0c@`yYG3DF_`G-G3SdxKJe-&z>H+oR~e3{P%@zmC8Cd z7SRn7F0ZBcyL}Js|9QfKn0nYs$WTUL4M;nB=T1g9N4E7_0ECxe;($tMe@{4EroTabkE8>O}MY$Dx85jxJZWG8uQMgRpMb>)_j| z55Df;7&d&tde+4&SUd3_EhhRDZUxlPs=@76HwU8w{j#J3Aw-+If2*M85GUk=a)j)7 zpGXjQW#yOEL!*|W%_r}YWVoucRr&w*SSn@MyIFOaj-&lr{|(k%@eCA#-z|Z;a|?2O}H-f#C;y7C!{4%L<1R>6_Wo>z*Y~8aW}TpoMcW} z&Xk3u1!3FAG(DNgv%wZ<#)s86CLhU|UBeB)eslZNDNeKvq_UQTt5$z8K^6O+`g2aT zfS39D=A`6ory0`rIgQoryja50N}4ULSA8hDVI1EZ? zfnuC~ND`xz7_iv5gONPSNJ73Q?(jzr0C2+0BCHu!%Z}}c!h=p=Q&0zeE|N`M4vw_S za_rT}%XI}$=H3LFQv@eAX-&i%JIkutsb z9b9vG+40^)1;+1nl7^=`#Y43_Vmmt8rk#5EsuP~brA!7ftbQjVb)kdHc$~)2yTH@f{9^(H9CWbtVQtc(&&69bFtCO&vf@FkJ@qi zmE-d*D#~|`p5FMLyY8qStw?=CCy1bmT7csRm!)(9yk<+*=igB;I@SE?RBxzEd!Qy| z%Q%oYq99&hoMnVsaN237sYe$ywcP|@H#elJRtDv%dq28oe9_B*D5cn+hAY*)E@|HC z?v4}&ZEG%ke_B(AvU{F~fUKz_eRP3zhMMFS)X_pn&IX3sQR9x|Dr#cTsW?EO(~C0x zLmI5q7t|LW2VMv|L5SFxC(&`7`k-k z*4mF~PYn!bW#rlw#kRt`RJgkchO0oDZuJ@V{?B8U0*m>2SIWO`m4F(+eQTjUyydn7>$!p*uoFB{-H*Y|jOp%ct!LgK#XVx8pyC+~0Xhg^MVhSu- zN$kJIuRa4Liq{vp0|92^hj6J(JZ%xeaZg4I;F0IrLgo!g5C{t00q$5ZQ_FzM?E{0b z7x^2jdsMqOMJ`~kX`IqV%Qi`8NNR;Q=^;gm#`ybZSi6rA}$py3BJ0oU9RsS)tp;4 zYKvC@C={P93PAA;v~$5B`5?*NhASfZHtyI|EN>RKPdpp1E5<$8XAgeBG1zh;mX~#| zxp|`(G0YK#PPIn6M^EPB4uGd&=}?RA&OG_3dWT*Rgo2LhzK*EAPN@hA!^rJ{xKj6y zuwCc^Rj){fTz8{m;}HO8TDTGGeLWunjWs~aJ4{{P?v2_JKw<3ySSEG_xJXu2U1`Vm z4-{*+jOW9W4NI6$<~M%m?uYPs-Wcj6`!TA&2B1?6iykoFE{9cPHXpHv=OSICJ$l;} zLcV~>(Sv;+o71~g6NqZ_TOwTM(z+LC#)(_*3JUxXQ)s)(DO!SMci3DIjrt2<01MS{ z>P~zan7@kO4b;h?*>5cAZH|?U3vmfRuTd?%hT#C12w@0hWyBgx42I7pGFVA0o~q}s z*VM3;ZzzO*<0Sp})*4{$G|@{b;&ZI4ViHq~=KT7<+{a70D6b4^9ujK7v0QHlnLs-K;i_Hv^wsl0_+DD;u|NUIfbifn#rPFA zI?S+}wtEwpB45^Y2X?{Cge(%F7`&lBx269j9g%5z1m>fcHHx3g!;vR&;3fb)Vsy2> z7#6&0!dE8OI%nfjUKC~7>-4(440?sJAAta%gIHg{L~%~*=8wOGW#Kgb1TK?FId}@C zAYr{!-gEAW;y=DQlrDJd+})wO4L{8O=vs3>xk&^^_{gl0b-K3Ys1ZO%b?$eK@2=)T z)wqrr+05te`Sklvasc(2kdXQnDiH`6*&3)ZJPBNNCBm*R4x=_X!=Sy`o<{vhCHs%P z6J6eP#M!vt-0^!wZ2g>T^Fei*Q|6|6kMG+AP=J60jd*L6qcluga9A*hw)I{_vU_r2 zwY?iJ;5e{l3(WdA1=UYFR#SSpMs^cz*xJuVYix3Hi|e$t(DSC)L#A?~_EYC?;4-+R zye@ryHrO6Z^lq0u5tvAL~bvKUl( z1&8rzy%X{!+ve>UD%@ID>qAg5VtiQ=c_7s!AgpWy!dNrT*!%#Bl1f9D)!F0lT;lHM=gXX$}JEoTPt+pBw9zklzn+P2>+yqgK5}A~hQn3Zo@RDLN zjiU;_p#}{S9hSp3o8ZAv3)fc5jm?^cD(>+DI1brFCVz1Agvb@sMIpDM*K|w)B$3m3 z#2XPwF9H{dxNtir{i~JM-UNr^dQXnI#S{FQehdu_vq`y#MXopt7001$V7%fb6+M#4&b4!NWrAsitzS^>3^kd0rua|tFjQ%GoJDWV4) zY{Eoib^)rc$=P!9&Qf8Da_9%86Q>6!ocM@o5nz}?VQ3u~pgPCH-5TmKW@bLd3_PH! z91%xXi^0$D*gGR_XFW61?R30(*3zdK4RQZGQ zAFA5lqQ>ajsbYsew=3-L=7LTg+BK!G20@bLFJfxI@u(<#t!$`P0bX3O= zH!zm?j9k)2G&B8hHFnMghnTIIl=!4$jW+LKHBZkGyn!x>EPa~4hxfO~dmWLQL}iTs z4)&o_o5kXTRovp?HuCE=P(iN~5?k)X8~JlypBD^STcUSWU}MVW0$TAb_@$>ttzA;? zw^E*^r8Th2TJa3RLfPB}{F%u+mtA>5r-meVI%rHKZhQ4bv3Jtm(E*&sp+FXr3!2hXB(LE=J?Y#hw};8e;6OWna)6>ZcGS*%ne% zqn38)l|F&^I5zspys3Cw6=9zQ0CO79>lw@13zL2Ms(KId3+tf3Ob97PqG`N`2T5R|Grg4R=$ZQKOT8bUd)R=qiyMcu93?1OVAnEtF9g zS}6MgQBfeweq1TLr)34Jh|3_vrMOT>Oeeo^=zURsOdEJX>|>freush4uP?+=#<7C2 z&>J)FknsbV>Xp(#P!4`!N=vcg*wRuov@kwGQd)U@Cx)5sJoX|C9% zL*qS1Nn2^4`Xad_#%At$Erj)XHWAS2u33#U>R@j>v^;$YsF+$mgC`5U8s=dIh!?3E z_o`VholuUN36PONuikSMe{G#6x4H*EGd)71rw+W8Ef@zjt0iskWEMNz&pq=^Z?rQ2 z1k}TMr1gof7^VY6acD5=JiUPpYKs6#K=&fAK z@J~5^&0M1wBO`pVdEynDbC+?3WXn=NPmNg3{(>IaY|)Q!x}ZiNJ2zfx9$mVE4)LRd zE4lrl>axV_AnJ^Mg@f~+sHXy@6huzVTt3B#jbUZ90J0sS5%9yf$n#K?%^0~r?;VRHb09DrfHO{; z>MUO{GN2>}iF{uRJYg6E#9oTvB@cW(U>j$QW!!}X7EFNGp(~Jdllc$#x$7zO#X5*O zU!TwJ(XIZpJz4;6*l0@A&Q_;7;|mgq+fH`ID-J$7&ER*nV%hmh1B)e3L|z&bJM%&S zPJZE;n2tBX6J|>8Z%b0`VhXsskedrRi<&*PY3FFYVka+PQsL#SQ{W&}+9U`8FRrovsW)p)P!ViiLv{_ z!iHp%vZGCBh>aO%R&L@?l94x^;CAli@yjP|q~FG#iROH52GVIVp?oH{}r(TMRGbL{8v){TQF zUFV9m2K$KpQYP{(n=>-u;2l4NAqqKpgeL)1ad=$Z!QCJrItpzf3F%-f5j)T7ih~z@;YvtgGtKAm_tcvMWAvN zV_S}sE?E2Sg~RNSTsrUEiGNbVDai;;Cmosq!}vcYHd3jB1nP*kgQ*m!dRYL~z@BRSxDvC1 zvei76=?6()q9KRY92lc?X!8$QG))UxTxbfN4xtx3s@ohSM+!wXo=8U{y~7NmBjK83 zfKIgbYNY1|T5}j>lmVeQ|KnI4F^Ae+&;XW48VWu2iE|{=LTqDz(DQvDtg0j(>e}R- zLnW1MAU6viqPIX*XXJ;rh^!Rz->HGK_#*NXwAKYUlPDvEBAc?YLR^T%?&I^Z@qHpC zlm$BzUFu`l&)6>H)S|HzPwG&prZ{@ph^!8bu&Fhg8W0{N>X_`Z`ntLUrX#?C+l-6m zVWwWi@Qqw|am713I*-Bx@EJigu`ET^j1HmyliQ@GBu?jN*eQ3%uW>+66LBtQ^!mG*!nzj7OfT6DOPq;N$=w9 z`uN(ujF;f&dZ(BokWKamWyyR=fw$)Re4ydjP{cg4g__#3~Th%oLl&Wjz;_L-@ zop^;a{aN|i#KvjOo3_bCESM;IDHeFBw&?RDoL62E3Cq|?vulB?_S~WY&@mg&Rq&I= zOUfhc)VF)>n1H~Jjqry!-~_YDBh@?Zqo@w5>sVoC|1cFIAgB}qx;w9aRX)Dg;+76@|lD#x~!4;eL$V>L;q7t8`fL&YqiqqX8|dPvhH)Y#gt`(;NA++<(!^ zxv3E07$$Ku@{T5|noyJUaf|_(HpHcE2x)~Ua@~l~YHbit*pP5hIp#peMCZY7w}{z~ zoUo2O@E+(uR<@~PC}H9CcAcpZq)Q;5dlVC4@kkZ`H6>b_%GdBuM+~vi7y@`70=D;k zFgO$=TR91Y7J>K}?;LK7ljFte3%ELv2~?^>v+k=qs>A@2Y3J?$a>9eY>P&VkkYu=t zXdJMCM>waSDBc|oJ3Z>ozDWrhx>5|B{??63-;T@{N^Kvr88}(`zMVRn1SpUe?w`K? z1ODhbXn6sh*yvC{1EA75`pAVtM^pm1J1~YCe7;L#nUHn|#l?5~V^oU1N#BU1W~@8N zQApmdQzth%L5!2P!XUmI_qX-b26b<9rSndER~LM#WjcpfT{x@obcn-){ulsD+6 z&(6^AfTsW1q&p}&uDEE25gO9WkrN%}eSrOL?C-*jl76ks{6f7-zW^jK4fPPl(t7{x z79E8GdLcoH83q?)P&KMZnWo_f=7ny~T4Bblq0_V)6^P$c3plXY8BKfwS-@x+Hz&`F=IPF9#>SSN$oUASY2@}YZW8SYUd5=f zSDgvFk%K3-Hl%9i8FjiwpzeBjWK3XhL{}P;(bYA@8~rHalRNA<1TDfn-N(n=8y>3-Pf~Q>%nagjbS@5@8_`>pKg0wb3;7RoYR9nLhoUO%ongo9vC={ z8?%hJzzM@Z6DR|)hS1w}j0}e!^NlHf=dy8!WN-s0r3;PtE0~Aj$SC~aH~5x>WA7|D zPS`<)TL-jH$50u6!*uT$JbKts1Wf2$Sv_vWl?TuI;7*5jgw!4g6jl;-*!(%2Hii*QU&V|Yv{`l0KaVDxY zbJedcl)rXfy@w5}hB}Jm+bw{Q^Irh@%)8&Vr-f)UXqtVuNsmZI- zWq-O{3CSg|u<^>d15bTfB_Cdx1z3d<%N6k8ydGW;!4Fzn2f64!%M-vA&*FF(p;*++ zvmv{U$QA^o_@02S>$q^lalSQfT$;?3_WV`Swr?I|vq)&+{N3*@o4DMBdG=Sr##Rrf zE((``m+G$0@F3PJjoza7?oTR_6ou^dxAHQeDGm_r`XmtuFD|TJ`%Z;yBAJLF4!h&bj^hlROd-?o(nT zFG0;Yf-ECEI!$HCyy8d=aOX@pN)0_Es=%OH2w_DPA4**I`a*dc>gB|^<*QX?K+wi@ z)XPCj0rBc1%e18Lh!2nsyhB915Yq%eoNsHKy~rS?DZhK$>)WYHALi$L2!QAeh7hEw zq03qr35P~|5-<*?noylxG~7v#@??|klymQ8jJu4tO_usz6c;UMJ^n=65=I*?FUMi+ zW4vHLNv~B(WdZ^_@E4U+!5BJkC>!d$cm`KctEIhgys9_^`2j<|T|d_R&951s6`HoZ zPH$$X>0Um%u(Z~R6$s`}HxG&*aEOY;IDjbKv!gc*GsbVmnv8X4!QZ z!~oxB;~j7UwM(w~i7V67xiL#~R>66KSVfHbP%FISBGI~^s!&*Z-YC9b=kC<@##h>g11!lVy9dRFM`hxBR3SnoE zhUQtBDI}o^{&?)s6XlK28t>*r!wc(qMw!b1YkgeFn$rp~PlBZ`jEKQ8QefnerZKT~K5UC0Rz z2#y+&Ylm6e_(j~5ao2R3_q?SONprAkK@5hme>4OMhI|mxpTC0tk1N{<=`Lvo$AD>YIo2SSlg<0>*tOOfEM-jkCu6~KclDo_20z4^dvaJUwU zv6K(qTx?62;=)BobjF}SwbN0~@pQ4Ht_wGk=*JlQbOv@)eXh8OVlDx(g%}XGS@Zo- z>W75+p%`7n-`5x;fD|&wt}ZSmZy&V*JZh83@IU#B|Fc~P|HX4M9To*F`8gSz>A0)7 z!x-jng}Y(uq}y$f=6vX%FmOA~+waad*mpz;d`p|uzwDByrp=Y`TNzK(B&<*KR*l!`v;;VsPxUojmb3>NUG*jpYDF^6P&St5J#A^-`6> zG{ONIt>%fXSWqiMl?XpNoOVbQQwtG*0=C#*6Ww$3MqpG-T`~ArXWLEy8Y51zS3e6R z6cY+tNY|KckG}%yT3u;Qv+DCD)eBu2$D~e>sB>bg+O!J8VIcIVU;UjYW}(DHmqn}w zYqVSs`i_0lbW~lZ&h>io1Ai|8=f{x$$k`I6Z-?r!Y^*N;j^ z_eLgan+&h zEzGk^H+{$OGyy|^buh8O&hFsDQ(Ovf3%E3stdE%q{B_xtA=Jsciq{srNPBf%+E0Pq z0)~NtyYATyu}DZ<$~urcd(I(W!f{t4SzFL=Bu$An);6>fpl0Wj$qf8VfQ$F7hZl#Z z4^bVbQyP2RtUTs2f=zL$PmZ3AOzAPo%<6R}=FwCq~QD zu~#t<3@!TG|qm$)% zCO_2UXWL9p^~neWW#09W0bin~BI6%87>o%4NG>|6Gvgoqqwm*+w-#jt<&?2b1lZtB z`HT>1U8B2AnwO1Y9??lfMD9Z#jmzd^XJn|=e{nH29)A28+kSGSefvA@fon_Y0P?F) zi^8YWzQCiDo+EdLHX8HHo`h?Y(h+-3fSa5uwxn@CCwh>CC$b~P+!)6baw{d>VGcv@ zmYF+q@zzQZ%U{6HGWgeRbr%rT)I zw&y9)Vbk);!JfdX$S@OC20w)zV&SV}?T8Ay& zixpNfSis;#XasUGI1tlVu2ZEaPzGWu$5`!X$ydlevgsKUq?W+J52CV@PS<#XL01%& zp5QHzj6!uRXe(|YA~g`v^6GGRP-B~y(3g! z62mwuo~^i{D(>n_)E#Vs6F(gVcUoWS6>LSwn!OEb#2%-6xySNlaI03gs=$w6&1vV= zbObWDgkm)n5UFUTS*k0&h(7IV3bQk(qp?(oDao7O3anPJ6aIm z8a12_cTjZ%ySo%8#CGKoIsgE=14`E*T9KwI?!ecVJhK#xO(X7_r$PUfC)gv zE=4I%`%O)rdIbL9T1ri22iKvU?!#!(Xcmhy9uHn3 z43^r58Q{~L~taRaQRYB8_@1FcYl>v!879vr&fMO zf93}N(}bzh!<;8ck5Qumkj*~VD#1?r%W9Jpw?XoL7T?)5W{-h^o5mm`V(BU3F6{sa z+D~es82s;n!E%aLMLIY+RQS;3Mh9hV1UNjoIWoDqa&mLc)HU zBxfF6g;q(F24IR)lz9>dCWC3oqeCpQxL49Gda9W9CS~rQ=?5c_xFrewOHsN`m+ihG zoS5nHfpj_I#a_RmY@IJPmVL24`7gZdP{Q|eba7b}1!K!(XE_=6^=jpuaB~@d{~qQA zH_AO&j2Pi2V>a>Dy!8(H+jOdbw?~A>E8cuBuX)7&9R_7Za>D`>FXX-F`a-OpepWz1 z$C}=A`T5njQ7b6?9$KIw)x(+>gz`~$JN&RDGeJ=(Gzxm|eQKp_o|9Vno19$-j-rf4 z|G5TPAy;hQ|7~tJ&}-7XZ>wceCe>lX43(g8LJwj}V;X2WagC*bl~sRlKr0oBPQlq* zc!VRxZBTIrEQ`3wAT9^bY!NB2Z>tykvMe2Bx7GOI;-D2_nJZa`x$&TR7Y<2%!hDOOV(;df@1WN0_uxN%=UiAbYxZ9@HWCW}M#(|*e}7u- z5q&9r(_%+~7dL(8q6?p0PQ;}Lc91YXG!6RFh5&VV8h>mD53pXJ? zdM;jTBcVwtV7i05rdAa|;Y{6@00M@@m+)PSxLI-vgvwL5xz5^&g@bxDa0wqJQk@~x z9rrVIXh)s;8ERiN|qqa!+o>Bui zpjw%E5Z_R2scsdMf79|h=#+2F?i(5ihx|kgK0jOETyWkPtb!MkgIKSx+p^gLz`zw~WQ@Ozqb%E`F^D#YPBjK-A=kDv-0V9LMu4KA0c$z_&Z}E71XD?pof38R^ZJaC*s}aI1kTNYQK!jeL6fxvU{BegG*!BNgZ3!jR-s|DMKNh| z?(8P-JG)8jiPT~OqOoo$GomCeb&NoJ(8`1Xn~jB~U3M$RNg_&K0v8s{9PNdW$_*PaZ%@lRmaDaXwbRDCAgn&9UzX z?FkI+K-`Qofym0)5b+byvYiBM3A-DU5v_-==9E0TouJyfUHLXfHt_2}RIcOw@dzo8 z$Pfq5C@1h*XIlAPw+_1Sy+P(_{}5LrK6LR$EQQ^M1p@A<8IIrbE^4FfM7D%oMx}>c z^5?p4V@*ac+6_LGY`w1NyD>gT^!>A#N{dqjzG7N|vz zC}fQz#v2P7fub;_aPv&41T}gaa}v|_YV$q+=UA$yWR1l`$K7BVkb<{RM-%^ux78?T zGp3A|i=4;KL&=20hI#-LC@W%Z0jOCJ)a5Z;Y(woFIV5cJ{nhK?DBCkSnb|f!xCg6#@*}e$t9u zUn9m1G=e;wPDFk2+SQ|3h^JYI(vh0TiDMS*vT?@YFDnQ4^v=VvZO<_1)pZGYI zboZsx1@R2xRCh?LYR`dSk^qjh>J)s%T82UGJW)Kr{u1x37c@ZWaerfmv+8su zK&$%<>WQX_+Df&cgNwmKt7HRmKr|&^vO%2#?3QM%a%{rYS0Y4xO!B=9ywr(6PCyuF zY_s;RcFAqX2SE+ZJPd?}_~+TU>3C#8H{}Dw>tu@s8O0hv#)~o>Doufs%9zrLgFy=d z4{})bQx^^S4x@@mK{e;GiN<`c&jUcN#m;b#Z*-vw&AsNrfG92m+sSY-Gi;I^ykka8 zG!V}1cA+lT`xAn>L%9c_26h?ShCFhg=0<6{`2_mBdY`JV=cd{rLjAM?e0CQsQ zES-3_%i&3=Ft!OX`8`6MHk=-it7CZz#2>60(Yl#CmaHKL-x8tUiGXtc>L!Ql>;1_}5l!~vK>pJU~Zd3_C3+LR4& zigao?UisuT5g^V$x*X6e_~V4K!0{riTzF};0WJmv7)D5-mYjB6JVC)x_!=LAU|x+oxP!Zx5CZB z4^&4EVh;aU^Z926ic^RVb_W0OB<_%e(Mkm?CiLhs`ageJa(c*=VGt?Hwk1|g`vX8I z13K`9WFyVsFHo-vJBD&~I7%X}#KlunrFv1!c3@Jnj?n@)MBQ4^2#M)@aBOL?LO@S& z7Lt70&Nz$Q*W<|R={A3{F=T0KnR?`?vLJUwMO09!%G2(c!bj0|u`uWp!OL=*Q0qav zkeVzfE;I zJSLL-H`X%232F$1cLxLoUKPze4wQx>PH?Ti6oN$EXkN!N*$7XdU(j#cW4;Kt2oC6J zNxW|7&HThW$taqiww_|p5bvs%&u%|E$?Pix)~C2;bW}fiV?=dTZMdtfOD91pzU4oe z!&sH>27lPP^uurhTSkQgbu1a|FbPHOYtq_g)DjvzI0oeXqgceZ;L0Iy`4x{KR&HR$ zK53nge91~AQM#*>S{wjdJitc(h0c}*_JU+kWcahAQlJO=M$7ahcqTQ~u$|`--#Cn# zlWI12xZI|hCtf#?c8faD>Kcezh_Kn*wBge0^Kp=FpWg_JVN!1-tVxza$UyQbmd*FL zoQed&tOd*PT7iOSxA*U2r#_=|FCG_^TgYb>TT^tT&oG)pOatN_F3Ed9@2CTE9-m<| zq3SFkJ|p_Tkf;T9o8p~C1QPps4(axh$X5} zX-yVGC|1!@Y!F_B{Pxn#@Vap9&Y;;%+*bNEAMBq_Y6nmO5FtZ>S zJ%X4S91^_!kes`8hAO34<1~#*8^`3L1Xu4N5gv%kxo5G!%HY+*(-$BRG2@+epwY(O z!dwZ4j1gFpQPADF7o5N*5yAcOBCI`UJ_${*s``ykeEQXIl5*ZCI3_!WNZszg^d8?u zV(8p+I!MEz4Q^2ZPE220L9eaAh*LhrWlO&xu-*x7L;FJ=XysJ(+vL08WjYE&DM9b7 zx&y(aid|PtJ?lip1rvlisSYD>e+yQmnAB0vti-X?z5tE@Z+4bKs{6_BgfvZ>NHMsi z^(8&&Cv79|!{}bj((?P{yF=}FgviHWnw+YCH|dVp4bi#x>k#J0m_IYid_{z4F?T#} zKQ=|e?8i;YnK1h~XlUE}V5&bdIfw9BnR3P=sbeZXVp&iHpQFVmIQPIMJ|a{A#FQ~&*}hn3LHvy5X%yd$J0Nrn za4ngNu~rY>3_iKETV1*RPgi8PBjazno4nI&@@-b64K|@pb6=$~j>##4lRB-amXHQi zCRK=AJYA)W?zU$mDQWEJSBRO!bs3WhPeRRb4;UGZRRb21Q7GLnQQwFy#Ib9bBna#l zPQ1Z1DjJ9!m9d*o7TZSa{tMcD#n6b00E?|Ju#5!3u|gg|$A1wZB=F_Z#8z;FyjUp; zZ83n$c{u+f_p88BStkP1RTml1?vQJeXKEK}+<#OqfUIB)SZ(`L&Y?j3A*_Zz(wt-u z^}j%LrCc;ii!+VI+{~v01*u7p8?ItUxj5IR&{b=iiwV_`9sy-!AZkK3a@y%5;(}H& z`XXH=Xb9Xj4g(~^3I3rRlI+R@TzcbOcspYgctOFeT%QU>X?lSvs@+)5JN+P#$4)T5 z2%S>Stm7;Ef82AFmmkQi={Ke&s=V^1T!U>gBk*A!vrkZ{$^V)-ep3Ie!Zl)b@TT(` z0XUqPMOt`9+DEdP79#*5Q{{)qV52RHb?_;=gG>;QV!X;Z+O1()%Sio|#=0E=uPzHia6q??KDL$`Ab#U5dB9 zE$EfwB4Z4Tv38F}Kh)>NqYzpoGjG4NCu!2)W-*?*i?bmuxib^L?F@Kmnyt>^X~fV} zzd`dK!ZO&*L$wKCS;&bgQIQdG9BSgh!ExCu7!haoBeRFWAQ?GQ7@vb8)>T%B^+AAyxeyb{vUJ5c? z6r&AyL}~-E!)P_L;Rno+Y2N?>x*m@c%FKnn@3b>ywL6$3|INSHEDdNsRL;!=lY;Nb zHYl8i$smawTBA>3ahjI1QKY10^rLPU7*4DS7&2eryGwPAp){F5Tq0wmYrpYJ4fD$k zE&XK_axrEKw2Ct^9I2R)>}f@-XNEAoaGo*01U9CRJa36nvkKo)r9_xOK1q@TVbt3f z!Zzg@jqapCM>JNN3rQM+hniSE1Z{KSazb4}6#RDNtLF@f?F$r5t{Sqc4$|ZtH>JBX z>DxeTREmU5I>gz!a2c_fKjrP!SCR?jY(vu!5xI;YUA=qMI9bPm+L^eN9GO9(<)AzV zq1nB^$os8U(P|f|6IetdLZX5^07QQnpDHH3vg47c0Z0KAP-5c87~5JX{XmI#jDz<= zQ=Pvx;bN9NQ;i1 zr7+{oSM|n59)0HJH)kwr3Y%`7%bGCeb46mJ9EX_XsN*UHGW|#bHgKjL59QqW2JE%{prUjYCaQ7`{%x!!WSVPBO zk}%6OdEvl8;U*_pP}7XP2JS^3BhClK(>4u|&tuPSSqfn$L`<+9hTuYTo;t@Y9K;s1 z8(VvI-IhCs`d<=Vyp;ZSUu3$H!QlPf?W;2=!pWbY?whCFTu8?>ueRGZmgFvsmL9-+{l5C(^lNPcsEg0dz8805`125hJah*O z+Gvw}*TMcO`W1ujQWN`;aVg5>7zOYYDf(_3=a9LZ(9x#b#&yp^R!!%*R7^1>ftlQ0 zjO#0<33o8#dH3jPIf)hjUU)z#x?-3IU+8DVc7*eY&=&dqIJOEPHEAi1*AW3v>DA>9 zCFt0tI^)de>MDFg^1Wbs>M^`;qKsu5xS;|)J^{!m+}D^NqFAp77G}YZtFDRS|JLRv(Fsd9=k7Vtzgf6;ywqH-<&78FVyXD3aFxS~sYx z--yakfv!syMfI_Y31W3e;PLJLZf)YOCu#1;~d-L*|cA98k87pe%Ux<@GQ*zL^f$_}s>A z)yLyYTGTOK95FhR6pM}$Zds>EGfauJr|8Gl|h6Z>URUf8LRzuKUJ(?$K1p@hJ!xBFYvdWt9sIVBz>t z9CZF(Gk}ikUi*#^Cp#NB0?b4-y5K4U7ku(ZB@u3A_oRs@ZuxliTqtw$JyuoZ9fkr$ zHwI0(BJRSZrU7LAwD?T@r)RcIr)sMHKcRsMNQ!lU!ZCJr0VjcHw`=}@F%)<08SIcg ztU!%a1>K|?11K~6qdrG{j!qSDg^A(du1Arr8mGbk^D09z;8=Tt7~Qw5~ruERzRD|Vuz-~1y$!nHCYZv?>@I;C%-kb~+dVW>-+-fklZChD=BY?WmO;xCHu5gRA>*Tt!gr`=WO z-&b_Z)N?X%l_JuS&OjF7HALZb%Wxv+Jv!E(<~vj4aqoQilg)H6wcyQk`MCZmw0wR`2iA);KjU_c@a zz>CizOp)b4)W91C?V`v5GvEYM=H>pu;2+C=FyW~e&0u??q(QuNPWo z2n6p^(k9r}@0XL0f`8hQgwVe!$|pVaVp8Zs$2I`Hch9J&#(r}8W^%_lZ*yAesc zy@tWG8^=l{~u0)4m`(445nI> z^6q*rFplfQs{>;R3~VFU6d+YqqbO?}b;POild^n5rG-R6$wbHzpA8AORTV6Q;_oob zK_ZDQK!_BY7MBZ{fLNLdeX&0!WoQu*&ZDOUzU0wVBD{5lRMRAcwKnJFK++^Hh>RvsqrV{uy647jX2 zI9YI?#B!MZy!s=|pSKqa+f3?~$vASlM{MU9`QKU|Xt83>Gs^XGUyTLO9!zVAIQ?Ff z*6%hZko~MQG3n zK@|Pe7i1BAp%W1?PV+CWduk7ELVzss`J{f-q{Dz4sV}J|x&d_V7*)LN`*R@B+QngYom0>nR{yxxThV}RtwF)W96;D6MPcv^)|x086-<&qp>?rw@Y1BMf*B99$!vY_ ze-YBksAvR8NFkzpyx~!Wc8PK(F(j4Q)?RKDoNLA`T zQq|DaX!7=wzae&+*J8Y600f$WM3UnZV_E6sHzYe3aX*Odb`Zx05ryk!Tu>=fCX|lW z8pNri5z=-oG4=#esANDWv7=ffNu`xQG2a_D=h}htJNo4WogtZIM<%QWO*B2{SIvyI zU)?AV5v!`Zlb^`W-UOvJvMBVeF~piM>gS>{-^l_!T>ahiI6gW@SBZilLM;F=0sO4U zTy$GQ-jxEN|3v$Jp1N%Dq-!AKWxl=;Iu29t;uENG^Fl&h>-)kZ$<}BaPHl#W`ktF| z|0o%7P|J2kPOsb8-=D-GxN4uq<8)d%FR|eM%eKU0vL_@`l&-;9w^bqj&t*lSsI*bb z_|)TW0hk}!W6f-u<8&^+K)t=(L6|C!B)Bj%+TfNZ5tL?gYbLxS^F0vp4?PW?S14w* zrTTm`A`G4R=2;9r_PVfB2AV~TGTGyAVFMO45n5sYM~*uMFGwon&&QWqfE9`Z3ssSD zRT(48htd%3DeEfgl|%rX)B9LVkU-E7L;*Zy|G!~rXQfdhal9p_RJiKtL;(o>WD=4@ zQWRb%(*vIvH&n`LPdfvkiXGK>8Y(?O8C;JvNK|qN>dJm$v4zA_KhMHQpUrXJ4he}} zAWo-2*>NmknT(hg`k2jN5nvmkZALYH;~+~UASVkt%BxE)GPGDbn~6J{ZJUQCT>e9D$ds<+wHnGVHI-VM9MhlTWUt;FBu6 zUr(y)6Gva}XLaJLm*3@==EULhWuQ9eli`U2<;&WMY56ibF@E`7x8q~assc8ESGx~# z=R&R+Gdy?%GwOH#|2CtL7?olWjA%VhCZ9$jShCbSioe`NuMk3?P@O8vAk2Z@*;|5K{EgQ_20CU$Vl+MQ9OCUM-5as5_+iMk9_p22!sC$$V^rBA#Fw z0yu?K*j82IaomN+QmhK=Vp^z+c2B4Il!{%uqvi-`H>*sH(T#3)D954tjN_Wwh6iy-)7*)bYqJqx5`OUOeAC9G0K7{Km@hpr;1+& zXsq_a43`sI*BN2&YJEksD!{;YQSpaG#YZC1q^#GU;Q)eJJM9bc088)G(Q$!HEhh92 z@<{2(X%H-Ii(Ngo5|0JvEhxbC8s^-#sElGH&RiPNeZe3h?zwf3B3doH4*8ZC0+UTs zydqf}{arATqosBa3NOpuTZ@-l;*T;k>AI<;%}$1T@}8xEUXU;l3B}IUidCdE#onS8 zWZTungrH1~JTI2+vP3cKV(VJCSrl$494iF0EeZ{>?a**EBiR>Wg+X5dxmM`MdDQst zkG-S}(_EmhCfD>yln{sJLs?uiaote05QIeO=UW!AxR8}(IKn3X`XUR@k+Z%!_8b(W z(_iN&x-AO>bj|BxHAw{Uqk>#iHqQeph>a!ZR=@S&txf(#pSj&oSEyKI0vu%_B^0o- z15Ihl3q-1i4d<+H3ZPig{N(eyXce7vL94V{sBg9w7uAV7SjvGnOQP`{^lwRqgUZJa zDptLu;-Jhb%%Je9^n-#l9hB=SOrP^F2IdHL^)nfKl(xRP%_WY^@}Rk~{m${E?=#jV zkJ2PrFV#JKK#_CF`zxSzhtCN z-TH;m6ERSQ>X=^+v@YQ)!|H8qEEv~+6c-{SD%G5Gkt`X*5v;yzra0(dHRs(FW;L1m zHil-hWihRC&j`+1vQ(sH8>B+@yNasOOG~!zaFY9ql}MdWA38V zHAE4kLx>)zk>%vX9Ue#vLaG%LGHVD$`Y`iI34;R7c()m4t^uFUYBkp}iZ4RZE3HDm z8kX%Q*(zMqpx_F7bIsXGxx^b&{3+%2QC!#yC-y?#3@7`U z*Mc#r87AeZn#rk(>WXb$sxZ+wVv{Xo9B(iOs9=@R)M~qX0=w*hnBU(m)?v3VZF&O4=1~norU5< zvMGDWS#lbNBY+J#`q1d`RMO*l)FPVALmXHnVYGE*AH7FCA?w=Z-mL&sxUeV#71mi&UL@>z@Z>B#9ipnKgkCr;o}sX z+u}H>_{z!4QovyPan4-YR>DFoG=+F@3n^bYb)~pE3Im&O0;IqJmMCvFk82C|siZhZ zh;&pEKpe5Kil#%ewHy1yPz+$u)uUi-`sd!TjxJAHFlHHVXkA3vG!@AN3e_I4{T}65 z<$IdCLireWB(azY1Jil-emssDwm|77Q#+xQ#A=E~JAmf0aE7@4Iu%aTUmLC>=jkBX@7|lTNke}T-If|#xcW&5PW|K2ewZjq2?(8 zLE-=NH_@5VVdY|*? z49jo#-aD?x;vA{l07t@66DTjxdi78ke88n4w?ez4gF4g%Ke@atm0K-$`PCS;f9PGh zq67tbi%dHG66|U)#X(2?lml?-lcQc4_BtCDypwR$-Zi!4dOW{mLy;F6`m+ANkY*aM=`tXe#o7&mz}8Z zzMo6uLEoO7OhL{mxe}g+or#LL7=t@FF?p6ncrZ51IBu9k17tF}Z5M2~T*&(GXEo*H z|7Ou)jGkUx03`7>)Y4j;p?g@*QNMdD#yWJOU9@2okB8hS)@uFH5)l7oX%a*7vBgDP zPd{0b6&UHh?r!eaqQ_4m%Rp;ex(tXdFGLQ^0=%M2tz@M}K>aH#GC|Ua=SR{fKj2nz zK!*rkk9Fj31im(;VXJU(_scEiBiR9$c$vX2D&=wnEw3Zqk#Kc&4Jh6_{cFTx37@+7Zs@%n&yjV>fE?)d*|zO7O9%1| zN$QQ>hsAh`rvZVS|!VCkd%AaMF=E(jD~MYokKRP9F~7YT#3D!cE2E_vP2uH>5=nOYk-3SPL_{1$7|&txfUGLZo7HnOBLq^n1`dp0iv!(l(D$X_muPK#|;pRqS%^| zLffY`{=>q2$}&6yT?~)Lknesyx^IkTIA6_EfRz|k7@=!H)K+p}n4o^WtyF{=7V_z) z6Z><jTaQ_eq^J%^^+79P8$}4G%^G2_t9&g@*e;=Zz3z_nxAwP-I zU%yszh8Lv`mldk@nrJZpi*g)uNjvk}9#X^c^mTzB{B)q=Az?D5i zBTxR(Y2T3+m?)BpAw4o{A#--$0FRo>Loqx@liyw6op*}zS)4USi&)d#y%e&|0eHpf z0YF>|N9c+jt5CFt#H~5U5zr+W)%!l7{(3I**l@Bp=~f&%5S7-QZ3Z3J`X)^cUzo_f z>jYY?KlGnAT^k#UqF_gA&R))m!mT_K?h`ipn8u zLEyI>w8iGH!>WvDXB#Ro$j?DU;Pi_cOAz6p7&*1d8z^T^8B^Ja;E;virQOwqDMtOx zno~Z;{R$aSorE?L9l&(>*5f7MyzBy0M;qgxd)W*(VZ2FZ*71 z6s<-l85a%-akLRW1RT>t=M4s$vSCxY{AL1d8~_WAW+n$90KLfzY&Uo56=SvEm>Xc< zM%ZIg8bRRRLR%_3)Zs#kg`MFE z_BqM|v&N$jv2oiW*JDXUN3a@Ce7btci4Rv1=Ml*Ug}I5oZSJ4(jkJsIhY*J7LI`2<&zaXND*VYs@cu9*4{7@{74xN(27aV}%)u~zoBTsvcFq^0w-06D^=ghc z$7Q)>B;oyS6Che6Yh@sFaB*C_cKZzXxJ5=>G)Ekoi{?n_D4J1x3pYg1>vOL|uKFZy zD8sE2c4cbYF_+Bc(B`$LqNhT;s@#l`*+Ta!a2%as3DOs~&}^izQLd<{9V_kPg%mWr z{;2P6%?Xw?ae&Zk5{^kyoMX+^;l;x~c~G#PBtOubhOlwq|pKWVkccE~)0G z)&Y2s-vl4Euo8JPG87WaTFuTiciAz0T7z(-`&u{3EzYnecP}OcG1TebUm0^Fmb)=I zy!o`bKhwU(Ii^Snm;D3%siQlaDEPpKM_7@t8P(YW`)8NIeVZI*&AZEK`5ul*JH3v+u%<;6zF%%tTx)|O&RihEX(VI2zrzy0y}L=ll!?F> z;mBjNY`5Ja`*+Cl47?&LZPFAyYSI)KHD?>d5{eD8S>}@M8eqmr0|8Dvm(U=n4DE9f zCaYxJF@Z12&qg4A3d1Gj&B_9D#Npa?M%Ce?`C5x%<$xOESv%U%;rKG=(a z5^Zp0^Cm5*jw*;HOcACfn?Q^B0k3x3Pf}!IKMlMGwVvHe%DWPXeihr|^_Bbb!OGT1 z=yx}_cG*PMuOWeoY}+ir3AvP%6-11eD%(RI9zsG2Q(OPr=W-*n)Yc2$E>XIY$q3R1_?&C`=PVOS_&d?;k0WkBW?=A zuj6F~JecQra_OrhjUX~QNqalmWH_j4ZMI4NTFam6+-&n8B%*<~>6X(=?`JLNo0{na zHwJ)ZE1$!bl#23#C9bA4(jS|R$Fnus$}T1vJ_mUiL(?hCs1Q+5O}}S}6gvmWYxAWo zrFT;V$>4K3gqFQ?mNPv1#b{(QC&L`+q%z<68JVcjR7a2>Ot*a+(E84|CZX1lJ8y z)CJmq;6(HC6XPfhcwcBrq0seBZb zf!>aQX+~OiZ|a|k;qv6o{gdn}sk^uIKUG|5>MwE!ecip)#{i=8j;s51)5qIz_ckAU zApIhG&O@yRbXI7jgeAJBEbstEy6-Y26R-pUT@jJ?NmDardkEY8TUp+j7_KN%7o#(_ zS!IbqD{?Otuz2|<a}fy8+e z-$lWj#|n-kNLbs4%BLgc<1i_DxJugc(O-Oqmf}MUJDW7ELroXUhtYW^3#+6rU*8XlE}b=TG}>Krwf z_y|WOEgjibp||t)_*q!#r{`R-L@dfB`fc!zZqhy8V^CEWpCP%FnI16}Ftbym93*dw zQONzZnUFqa)G}ND2Co3|y4x;X{MK5$qeliBZ+t2kTkGqW63|42fVwc=9pqe48QSB! z*2|S8A+aTGNpR4XL#4oAiYHfgM zZ#UwTG#|mSolL-Z`X+Qrq!8ksMVM8q4+VkXattUaoQZ!#08C^Ear3#9 zI@4`P;RX=U!RY&R!dc8Cti02h7eN!D;T-D6HzK#@i@BYt-IOZ$h05;lT;h!oIBL=^ zwwOmOjY*$iFai!%V8gIlH|_(tX|=Rvo&{1weZULj1}&qfF>G+wOX$JcHqLs(8mxt{ zan2uj@sHTKTPC!ZF>u79Yv$1+R45XO!3jXE8|8R|W+QYXp&Rwk6+BAF9K{+*ab#u{4PP;b z=0lTW%^IK!M}dcH1%`C6l?;Z9nqSYz7w|;dK1xldZvTwt0~&G&Uym25kGt_%V_0(p zK>GwRSMZQ2Uw6t01Ql*#ZweYL19x^xKnuT^Q~=%D7{1cD4)5`Kx;`NJ(v^FWas z#fhlBskjTO7@M9_K3&g(Me!&ztRpgvNd7 zRNK#mJHhgvcC}ucLp2tbnXCzVIw`?3Vw>%j z&v?thHT^Tbksg&rL#AzuZMUbWxbRx(DZWp?R`}HsXar-j@24;bP*@lGl~qS&k=W4q zL%}VoJbCK)MYTkVd`p?hi3-EkBohck{O#yoA-pzyF_S6Q>~gs8pevg1vxAgJhm!aOZoM~TnbL>~@EO&}bebxQF&8|t_o zMw`O;>qT8Zal?{Zrl$@%TG^}OPqmv~*ML7Zp$-of z43{NR3`T*w(CgbZZ(U4}HCXRE+Ub4ohGosHi{hp&IwsS$=x%eBJ2sC~4T){S?Y6qE zyD6LKbGV_pM0U{+QSUmUJvKW;u~T&$MzK@TW-5gPTAf5Z4fV_wXMaKbM+W8SvtDs~ zMD~%T^xOr-PAz#p7jy!9i;KT^!Zzcb!HF9G!A7)K=Ip|^2}}bF!~4;~$jRFaB3)Ub zfg5}$()_oEeyb3?@J$DCBCs$wXJ-tDCdhfi%gf?OY7tbo2_bTL6^gQUmw{;^^vwh>O%$jF*QAT+g4bkUd*)qH(FXYVZQb=~TznoBb z8E#1|&CC8JFL};%@rUyd$ha?s%~Ev33qQ$3Q{~7va;4R1;U2@>mJYwBAm93eHfF(| z0WGM3jvi64TBb}FDS8zGeluGQ5RZ_Cd$x4Q$Vv`Lp^LMK_|W7Pb=8!KQAYKY4~Ppl zTcf1~{VH)n#;9ugv4X5-`hK_xqLIc`42f0N0f;;|eILyUHw%`Ec+BEsOzR~vpfSUo z-LP)@h%pqm3&N0-m*E-T;0BAh9_tKnxN$1#~SeT8>H{{;{$OhhwhxkWE z5>-n;dHULYVn#F5Rdi;4xFRGLIg64+S&Su9`eI3D#w^OP>h`D6Ec9J`Tt) zp+B*XIve^ohe?D1Qoy5-dH{}Prt;2S`p9CrK$PZ&Vk02j%D zbD-0+;x$O>s;AWW+r{w~V=~A)E8mOupMWMJ8VK%5Aw@EkR13 zbD{_`?e>CDHY|?WxF%15ru)k^b9Qz}gc9E9XkLZ&ZHPAXi`+Rho^1G3kS3oP?B3l{ z#B#6KWMlOb7TC9>9XOTtT)^23__M)<+rO=cWCt2r0^!~m`99154?59tLNqGRLdR-{ zGR~CZV!B^nAu`yU4N@b~Eq5A-lPPKl^fj8%vUcIsSzJcVPF>6z-q!7gUS8;+nl+xo zk5onfNp4Fhj3?k19s>Gyc$TyK1{9aup~wey=0cm)-YHq2OqQA=e-1$bse;$Ugs&#?U?#^CgHK!3>Em7U(<%&nXf$mn=mlEj5yN*4%0 z7LLqePF`3+G62B&^O-h-xs8U@AN=s8diOmgS(yt78Cfb58MXA;?8>?Qn?PZO!u%C| zH>et>;?gw+j^CLJD};8Pq#1Obc&w@l@g@n>2^8qKA)8DbJBgf{Ff##gPpTsB(wxo8 z4hLixX2DL{9HDqF25+u~+6dTXQSpok)-4)|16JK{o$a$paqNv|PEd(r`6Q6Hq(#u= zI94z<9|*;Ioc&C*8&^^OQS{HFKfnY(ivHZs?he;Ps2;?%4arTEP?br_fU6~=$nH2o zG?Y^HBXEfR&s2H*N~KW8=THxTjC(ZzkT>cMqymHsP>s6Z+H1rEt)}D1g)g&TqrTN7 zTRlk~yl@*Hak>h4WhKhYDQ0s@-Wmu&%VwA0hw3av#TL>(2Y&efi=e{;b_tI z1aMF>U$f5-la%osO;YLGoB_!DcPA-SzH6y46h$tv}hf6kwQ)GFMjEVmZ=pk z?YJRMm*$MOG_iJs8epBfBXEx>O(>I%rMROUQ?f1gyT75B7py4`a$ZbgMj9}E6zmT5 ziW_SP#1s+4OrF&R22W-Hq*+9kl@i2yn&V2at7BzQM%|i&H<^H9cpe68v7uQprmrI( z7K2n7Q%~<%z?_M&e{!x+Mg~T1(izCRIrNYImPJ?@PD)smqO>;~UeJMC=2GLcxj>-e z#XO@Ab?D()SLj5gm$Ns(^s)bpc$NL4D#}IOYot&VhJ;+dL7;=sxgpVso6P4nq<)CcLS*8jP&GfE)CC?Dj$?<84^) zu&A*4TkLhZ=68Fh`#hICt?U3$&f%(QbGvE2a8U`^gODU>Fp0LIu0d1J7u$!qn8eZC z7D3)USTP|8*4~+g-0PiLESxmw3G=j4$dW*8?na_DQp(gySA1AFB0Tn3IX#^I%G`vf z=Xs@F#b>oAf9l|Z05fGf_!I(@EK8Ebu00{nnl9eeL&n-l?za=~G zk_#uMhF*8-Ih?FtxG~62Ku}(04l|BBf}6Ak4dK>&k$WHbyj?A_SfGoC0lH~wS$z)AyD)6-r#S_H znt>W>SMya@0*P|Md{fcSgZoX_56U9^zZ3;gaN?#;lvl^N0$%6V6p)J@fl?@>oxsM0o1&qf-_3OwI9%Q`@mN{nuZQU1K}99=t}B$b*#8?5h@l4)vz zVR(;eEB|xT+Rr=nU<-n}cIFNx(t`OnLPU?+OVmAjx*oNcEoK%sca4H05fjBAUz#IP zq(nmjeRKdGTjf>_bb?st%3jY3(EHAdgH(Rh@7WrsM9AO+!h%3RLEF)WHjFHoAtQY4 z9x$-R^2%UBwFVegIgisGj24wP$)Td*9K(ZZ51W@XXD42s)JAK>^**5VP;Fq4KfdGQRvc&vGmXF03Qu>2tIN;KQG3M{}RFde28ClU{# z4shI159Yjs+^s#O%pu4JPX67~-8}A|lwK zj_?j;od|Ru!UW(&Fc@Io$YNWk(~^cvG3i19~d~J4{HGS%^*ToD0n!w(gQoSTk`mCLWIO)~ zpAaX4sEgGW{S?MKO6e1owz{U9@XWuD{DM=`>t+TTcQ`!<${}MVkxFy>4>c62DBgjC z`vE!viLP%0QnTCjn-0>b%*1b!nvfJk$sQ=ZVAJ{~Cq0%6eRK3SHl(M7jbH4^$faH> zh}mqUE8q~qDc7u2q$NF6$0H@$ald|DZSowX%b&s)ap+(+_kNP{<;n7_6Qx-JMc%;A zcxVJPNKvDs0Lm0&JnjhdKK=)cP}VpPop5$IN6=GxGlxAC%(GL6{TPe2i11Rs8+JdR zUC!k#I$QVB<|);aOLucSC4FC$zOR`Ks(SKW4H4856TordSS5nq8Nl3)zbP7=+jUR$ zIrto^sq6@y)Igt8cK{ilceaqUY(khHomtMyoID9zx)6OWUs#Gi2;?|aey_N$w%{C& zD=eIIRj|LL$3VV}ix1S>HS7Hl_RK>ROJjR zAjijOo@MdW0Dp_Uymng*bOy!V0mequ<@99o!Ft8DR|Yg-K%ri@N8#gZ2DIGP=c4CS zbi?ML7SZM^V_>u6JO3(F3Bl|P`1yyi?1#;OWIqBQDS!H)=LIE~^(_01yFQ1;HmHHv z$k^~VNJPNwbFQZJIc*Jhn4?Atk&VJf9R34{!EZe|5${H46%G4pa9n6g=$2xM$T6RO z>h~MioZgWE#M9fiuWL*aU4#K{cB~*dgs+;)kK^6odi<7Y94sGePJY{bDhBuK7|UHx zWrZwTeTWGG#UslvtbFvfNZyQ0$50U)vTeM|V1_4*q?oxN8c8o4LDo(1FoC=~x;yXW z7E|E6A$A?1PWHf;ayTR&5YU^6Zr?TiNdGuSG`OOre&av zO^ga_eY5lyhx5|ST)D@%`^+DM<+-bwlFD8ybTuXlUgh!wPu1eb5|(c+usA76R{6z# zuTbwtEcB^YK@ox6i^v*hG7Q3$p6KjF5FE&e_(7f;JJS;l6`ozVcyynEOU$~g%&L>~ z^`JMQ&@6aOlwK!ooY&w|H~ZR7{B=Ot8xO@t(8ls$V;G1Kw|el^rnb) z-xS9T`S95V+^yMo5q28Acs9A8Wnk?BS1A#zQ^1U{Us2>PXkADV@Q5yx0Vzi~B3NdL z_vj~8M$@VeFD7YaGZamj;0^~~oZt=~fDPLTUmVSlW<`jXCgeVH)96|Yg!MIH_JW_u z%gTbXkQ&0YnD1*!?++u9YxG&Z@f~v-QIvRG39eE^I#})r^cv{9S^QX1$Tb&H$Xn+* zwgn0TEkMEGubTCf!*?_uxkg!`JJ4iddV=zKKy(TI)ckRZ$*17?ff7jpu9L-5;Mubw zq2h|gDoWn)2bA#%`6adS#q3(o;zu*TjyY~l9ifvCKJ1=Ywqn6dkS@9WkZ>rO#m#Pq z&GF1EKX8?~@7o%2|?Xa1kT)%K}qu53e3T);mP#qzZbiptYZ-1Gs zip+=Y0)RgWdEu%1FVRE~=)x@{hhr!%OVcMeALu=V zaMippx!nV!!oVgQ->35a60X5JTXu+Yq*V@$ZsL@Wg2Mbeg&8VX6yPmoQ8q@rZ?tq| zFW4HYV?GVz0`fIsLpeTFU}D(1rZLTN%h*@Y_u9^Oo#R10})0u2W68M6k8%y+Va zw9TXk6|;@qhoJXIpd)7(!QkmZ8xm_!u0@7AQ0qCE0x}+eRV{wToZT=YSkoNf^}9fM z(miO~EVeuQK+;;-w{J00pA?mtkhB@(g7Fb*>`@+;F-l22Qk|wu1eG9{q9*EBDMQK* zX=spoY#1%{$cOZ(i!s}>Shaepq!e=iE(%qmO7wes9+>4C%|ex>X^wn%y;=OI%N5L~ zz4S*)mq}y}2P^}HZWD(r!?=9q92rO+4KO4hvXU6-Ja&RoPz0}&tuQ)*!;SOk`$PFL zBXjy91&gc5=w^TXVKm~5rKiA)&*WDahJ`-d$B{K1Ujn7JjV_19g&px3NiMD;Ga!kx z5<}NTYyHI9%TGK+Kz{F?C&qVi7q!|IGgy?afkLoF&59_`2LuA$&XQwasj46mMyO%& zU_dym*+jL}@2{wcAiV%CV36*4$7=FCR<4t7*@BU+**V-*V)iMhB@zO8W_`s|$1E3q zmyNt2WtmDBA}pcAf$Cwod}XO}mg4x@Sdrs3%-H3Zk#;g`IeH2e@o6Dx3N!7#$As5O z970SXi5LzfklhE%tr=nkYRf{w=)i_II*JVYUAZ;obG6t(uHr($`7?J$3R4z8h)2J` z+o!6bx)Az%(Rx#eb&XJ5)+~s}Y0UMKd?Kh7=TWeBR9wtfj{S=Gs(=XbrSK?1z1RLu ztI;R>873_=n-5sNjK~gDfXhl}H|}gvBG82vHzMaP`zDj)X$YA$Jf8J6B_sUdp=4H% zb6FXdK4y%@1w5h@paGFFIjQZ&(V{p)XAl=DT^F^3(apR6ek1RBL{qB?xhLk6C+_(kh747P` zmb>~^^*@IT{Zaqfcny^TXvuW7vde1SEIZWv=-xS`gXSFo0BCn-afB$Q9&AClzE3`7V6>?VTzuf1w{-PbRU$E zNWsVe${tQ8&sg1JIipr;9z;Y%YafbU6biLC?2-mecZUHfc{1rqULX~al&X62*ALTD zrzLtzvoKe~+=9NY(aFEwHd5ImA3029j)|1$P{x?oFtyV-1Tm6`D^IjttP@Ab9}Z1#@-FyO+j8SYuj#Q9VxbS`;Bxpi6%+>%z*SwItgRuwc&O=WGo7_DNG(k4qu2GRDX(yr{DC{IB8I#Hgj6w@;fMB*E zf=aHV%s_2Z9BlyiWZKZ>t29L4h!Y!JaVxKK$0-lC3Lmj^1zB7+O+OrNlpB`EU2vCu z-34xN7L8>M;}@aU+onJMNJe$Z;bXc{Za_ARAkhm(1Nrp{nS>6aQsFxUSn%7C`j>4p z0eRd{u()M3(1|k(T6w!w0)P4L$sUQc1hX_r6DZl3;mlk~uIZV36Cno&)7gXxE^LP> zGo4&nq;Yw&UwJqE?Y*;kRtqZejQd>F&pLSGMD?vWgJ9dqn|f1GkMz9mu++u>*EX&x zAxK_McVNEA(JcB95nPq*L4J!MUVElc5-E_L-VWi4#t9{CK(#P@R%JNd<77$hl?cf~ z-PlrnaiJ^;K9ftS12US{O;bJ z;CoBK!mG(;w1y2BoP_-y(&V4fUUNL-0+zZj!kg^Nz{|xe>|r_-0r5S4O{s#4bPY#k zK*81YfqmRMDQ8;$`3OFSkh1@65gJ&eeYt8D!HjC4d~(I08voaK$H%dmjD<3uY(Qvb zy0Za{ym<~*f*n%LWrK|uN!KE|<2lM{4!_NnxrwqcA;{YsIg`CqL1Txz_`?GDOTg<> z>abwSU91eW<~51R7bZ%FqxxJ!6rYg|nF9Wq+cUTWg=WME>(WJkpmg8Dj2P`UsHA}0 zjS2ue^NYs$nkzfWP+9FnTv^<0O^oq2kl^;sS#o#SP-8Pv0k^}n>;-_fw;1*_l3>uS z<95Q_fK;z+p34WKl++eDC>cWd!tkm_>A{aPhoju-y?OugIC_RWKHF}dXz!jsG>uq# z*zkxGuXKG?gHr2_F#ZxZPB0W^UQH$3*L2^*u_)Kfl>?mA-|>iqvIe0*|DsDNOdnK! zehFSWe4fvfn*;$qVSfCE#=vy(4TMF}T&LgZZ|t3%>sLKmMd#ktE(()uqRL?pd>&$L za9*Ulp8RN#)sVl_U)wtyQp`Gbrpf0*`|EpMKzJBlf*2;hwX!&3_!oNiYF=t3m627h z4TlWj5P*WmucBMw#f=8Z5uDC=raxD9CzditDMQgi-N1x)20DPoVEw?~3zoR6L(`#N z*|WQY!H9VXw?7uD3@1TH+W_lnr8pNrAO?$g^dSxy7fqXl3}wfBz!|h%$k1a?7jtkF zh@!WVO>qX~6sE)@AbzuNA*7o$vioW!5!0om(R}AcFp7a|y8k_N)6ZNyOc8ozrgtL% zM^CU8(3DEKH^O;bj=Vwh6=AuyM@lO(Hi-w?D8g)#J7QQxqcdW({K=y%fSFJw5Z;tt zRCQi>xdlR|A5q4Jz+!lItkk+E*)&t@P{l*p{Y8a-)eQ9g%vTbP63U%2+Bd`pI&*y^xzJX!zLiB2+5dRh zZ0^y?h(MPVgKhh}qen^4g{Cnc)#|0`9rf$bhF?(UernDWJL)oW&3NTJe1o6k6C@{< z|G3qmMI<3pIH1H+Y0~I1d_rmT^76s`Ca$;B!pDtl!@&_XV&Yun#AeUMd@h$IRFF0N zVkZum0~b%v-%!SR;m6+V%WMo+ov)JWuKUHi82|QbFdlKu{`j0$r97kDejj z5Q(JQ5#7iAwh$ZhLu&i;Si@&^mZS=1Qe^clUqBLl=JiwO$Q{rq~VeXOq_cV$Ioc- z0XY{ebah$VdQSz-y6v*cY1>y<9*%Ie6%t6` zzJJe*v(ZGF8LQHG^to78Kz{hE9RJ}Gun(y|WF-Xm{QE?8>L4$s@1bgzLMC%Oy|9;q z7~<4of%p%rrg64xp}sEH!3!LkdNnMw6#)#+1oeJ47l(0Z2i^Ob$cncZQ_R z1YEU)C<{YUg#T}OSj_O?u~%J8!oOD2&%Jvqo&#(cn0oRgOV{(>Q&jU%vW1Hsj<|X(u`wEv(sI z9Kbe3(#iqzi#b(WK}Gr!m4|2wOnbJ(CF=-FP`kQNajyY!vyo{iWfTBFejJ{`Z|kMY zZUtde3Om{omE5Hdlo%suW>_-131py?UE}2LalZ|2L_Nki@`}SkJSkf5A=#xcyB^LS z2YczB?7pI4XJROzbevlx^xiT+?S;$>1II9;KL5ZWk}APUnn6Hmn~6Y`o(!6y!Nq6r zvVti{n3K6gk&=ig8aV48NP{uusm3?2Z2@QAFkr6ekdx3DAI#IeGs+H>zZqqRu@bQ_ zZU&F|0@|wz;qmPlc*)5z(+Bslt7=cX2iUpN09}aT!}ONMR7V76b|u9mQGyyl((vedqyzG-01T2AU3mg&I10@hc}99ZKBPu8%tglJzNR-6in?Bg zvjE{_=kbXED&iAKsA1FKcqoq1RHA4tkh}vPi=qj%S+N*_yTxrGST4Z*r@h>VRm2>l zbUd^J>QkMOLaxJAnHOO<{g1`5=w#6hdbR=+hVJEMhRU&s)~-^UQM-G4IT1)6R?8SW za5D)80~JW6Em9yP0jTpiUr5zoTV1%Y(4oIo6uCw*_0#2QV{Day;Z z`03eHCZ+=fNhE=&5h9ygfyke;()voPAuQV}^igJ;MFDK~L+aPs&7>X>9RKRBU$pI-V6yNfVnTz%LUi^OZ#iuMh{>`_d zI=>Uo^f#sfq+&o5`%vjQNz zqpIfvK~@|VG*uO+J}T(g&6)_4wwi78a8{Qy_C56rE4=`4gehQUAbYr+cb_d(>|p3q z?lJb!M>}X;6<*;j z&ne-9jUW`-qtl0+9`^%n5Ev?fS~Bdv#o)N2kiL(JU(*xP5GW{X+F|GH&Dd&Z!8Big zL|>G{fo;*<1uXPFb%UMEr0>Vo2<4*pEwT_eVbUz0?GEyf)tsN&`>5)pBHh;~zqDJr z&%GD)fS77lmxSGnR2&KDOmcz(5a*@-18~4B@PFiaQI~YW^ZvNn38i(f=%fdn;#=9J zG{mzPfr_FEr(5$mg1vAZER6ME96r)n3@_=`wW>X0B!j}*{5TNn; z4;5jI>W`b>9E(17fY8^CZ$I(0 z7LNb`{VhrbNXa@*sig)3XTXu8!EukOtEmtd%DAL_*JV@G2-Jo-rF4MgT3*g*hm`T8 zZzbf%WpgYIgT(-$tWrth5Ku2^{+>G#CE+#xT#n_<2dM(#M7|!&>H*|s$Ah~!6;WV_ z!>&5E(QXT*S3J3q2S0z=fj_6#1eFA?Ct22-`!3~nZOJXTG}$=&X=!8=anK6`%s)13 zpf#g2VdSF1;^OeoTY`EiN9TBY-S+$bz4C#jkU)JAe#_XkTXx(91s2qE7!T*Wl)%A? zu2xU}bQv3zAT=}?Cc3C-nEx+ivuCqv>OnQ&ze+Sl(R2>MNt}hC1ZfqgO%{X6qVFdb5YoUU1_6?f!+_N73e@v7^qD`j)}kv z&-8s<$Tj))*jt705dZ&!SL3}ehYcW07QMDGvuGMmChuMGcpCQx!VBjC9&n7e&o5<{ z<0L*pUBhc2FW zcCuco^}}bC;`FR~8jZKy2akki1OEV>1#9_!7Am@%Zyn)+XH>JkJKm(bD7F`O;6>pi zW^sx9qjaE`f)2O}TBLksaA)p<7C&EJzmr>_3#z`f_fGGBzKdVuyTu(3_-~}J%eAeb`2rcZIfd*s|5*Ssr1CBrbg<>WO9tUMQN@N zLC=x|qK7Z|AkOQAP-4UTTi|n%-2Mm6qg*B8mXHYP(>vxK#1Fn@`WrJc7qJl=#u?a% z!=D5ikVHmKQnj5ZnIOIcJKKeE{lRgmQQZ;3tzY@U#P zpy?txWbEmOba-sXai^f1cTWww=LM9p+Bsb)>`UjsueT~`?SsiP7h!&rPQcmuVLyj+ zMK%fg`h?IM*zAD#1nk~Z1B&JG#pJ%B*8^6fa*Pcd&u!T7sGcHX0bYnuHOISO{S=Gr z^t($OaXk$&C7}pe2>v013e>XR-(AOKQAsbp@M4Vko42n-@Ukf6ExWdzA)zdTtSA2) zq;!ERM>k$_`-}jR`bBU-B z1JuSF>t|lqlf=a+(T#6oL6=(FQQ++(&}~CtZU$2wcmnAa zdYL0h_M;3i!2Y0T`8W<|=HAs?!ftJp@ zk2ViJg`IP16;2CT_{_;{;{x$mh5|2p+gB#5hoc}m&_FZm%(@6Rj49s(08)b;&0qkL zU@qCdZ)Dba35R$z9Z@uj>CxYpbExUD0PHC8s*F7yGbgC20h+~8rIu#gMKuoW>kHVu zpDZ=J3Bdm$@)NIK)D4-j3O~*S-tpHm=0<~l9Zv=ogGapS;ISm?%)#Wa7O*N>O22I* zx^}~gw+mE-s;zvW(02-QGmW&)>_jYHUN(%E7WG^+l3l|NsSl+oMUQ)Qb!_OU#*6v= ztI2f^(0{rG2M!pOLUA-u(HHpxlQ9MitlSFH@fWsH`9$A03 zwGUd(34G;l|J6FnDEuv%4*jSYlo|}}BejcFvFO9qki0jNkO0U&)?Uy9<=Ezrx~~py z4fB-Lskl?u62Imvbf?VX8;VN*4U|UJ=Q*fQG-Sj?1^TN!qP-*1OP+@M6@Cpl1Q1of zJphH>I93G?835;O-Z6b6p0&mLGx@KZmoB_JyS+T~U;QU)(LJCRXCfm3 zsIKZh;K5&y*Wj(Dw-^fWE8C+<8~kR! zj`!m3_pmP0?3hlBh(C}rjOUUL*|un$RTfTUcQ0eu9D~o6606! zkBuHa)BSjD$y@gAOB;YSZ-)&cyf~Ve-8O7i*iCM=_Q|plfbZD~vevP)Br#L!9NM=| zGYp7wtTR24<3R_R*JFsh3i;$DssXa2nho|Wx0g~rOhh3zR3|*@0TFs_`Gb=A5tK|g z-ByaUDc^kHdcURQf#luN$0IMx8DXrCHN8E~!rpj(lobYknB0KlvO}^XW9u8d1F7W5 zTV%>XF?<}`xh!mf);1d{0}x)`Ri6uDQ$ zQ{eZc85MFr%}5N2AUu%rYu%qf$!pz1g`Nu;c^T)h-D?!OlsSHOP6h_s;i+6v1^~A> z7t-T`Nc*IH$7$xxH$V=QbTd)7xaE52=|?%LfW4vV z&PF1GLv$|!=@o-$H*Y)_OM?VGPS0gh=8!S>Nj>U8co;8acuu^wDTN$|f1d3h22$8U zd2)X}=ZpD(@2)QbmeMx|-bo=jgbHpt24}9>>Zo{p7sr12`W8lNcbuj2(ZnWJ%azeH zmNI+?Q`R;fyt+pDxMTX`*{_0EWco8GPI->F^%f<*AM+WjZn|1fKW@^DAw)u z;DUa$ZjB~C-)LRz3QaGf1Y}fiuyCNcyB_63<%(Z~x-NL~#f95pTIe~A^M4~3XvJJ%!KF0__1)4|DSQyJifyOuP(Q4ODL(tO;-)a3a%Ls_fD{anl>Hq}kAr3$fY?mmyk9j9 zJN-Bc2A(*z6FRat2tSHR_q`uM!NKU|B~_@MZS?@$Z|VH=M@k>7ncC{a9RM0>oND4Z z*%hm-5<0XN6lGzMr34#_0?W zvT_{W*p29*=7HJhdRAR%%mskANIJGYhH{-qh>=xi;V#IOG?SMOcZE-v>ZbtW85b+I z?j_Tz*Tz)ZS!^DP%g zi3KGXt&hsZYmWrs?zUG)u?s<~FP6i5SY?$FL|U(Pk0!4j$Wl6rK3qlT1;Yb!Rpq1Z z^MAV3a(h))6<1HtT*K`Z+wahdk6!y7u4bkVAdo_ZS=-p=rX_`vIM)Z~OT6Bf$Hj}} z;-FF6uPdw}mjgwXb(@3=Du63Xsnt%M-pXnVt(~q=wcG|R z&en>HiRE>@Y$|1GBCv{+Mzf6qcvhS^6eONQ!JC+taK3_>jQ2>gE&E#s+h_qiEYf4 zC#(GT(9`a1w^x4LH+{#Y1O-{@fLTCKzUFU!;oiUh^>;m0UAnJSRsZJTlXXk3nC8~x?qtWj{9n3+>i=_fcF*3r8Eg(WH`g}v-v|-0-o2mfeo_nO|Fe8e`Oi>( zR1f#;*@I5&ONxG+XTxgm-WppJ8|CWi4fPhrMZW$}y~R;~`TE2478ZZL{z&b$z3bf* zPi^Z?f9cEa8ed7R{_X!!Zxt11-Z{PW-G7>{HtS~ZU@!j-*8=GiuO(1W0OsOc`~SK0 zkHU3z^`p!F-?;4mP3b>n-&}M3L#g%_`<=I-+JANBooNL+8d}SMGw2>1M?PSStdtSe*3b`cP!hy&!$R& z`?Tn6o|1z_^K-1uaq1xURnWlp_Hf((*7!G?Bjue-to_&$Yd^jm+5Jl>eqss5PcEVO zDLXHd4T<;Yd}lz*ywgCl0^A&|zXq(edZXEJ$%0f$oZ{mQUrh<@{`9i93(MXfNN*|d z?{eJdyhnRY4dpS7t1#Lv!A{4?QA=z@J& z9OKb#Tx$fqz4n~?IARL!)%^nlOU?a#G^6f3MnVMNTZd=94xi?FxAsCT_-G;L>l+XH zrRCsF*%&PR(_1y}bD0s3llDvLcHMB%N-q&*!$gt#ScK;qv86aLC`yzgTCj8Rm9!Uk zlno`fvYwF9kh% zkZYg&o9foO@53h?@#u?cD?NtTEnQRkR^~bWmB~)s{o_}0_)+U6 zw{~Co>fli#sB21+OCa{A|{)947rbnqXZZl)hV3FvFyuxHP;i`j06X(D!!Gr)p2 zP|2ezb{)TSxGJzjDHfnL;T-sFzBiB1Qrkd|J*7>!tgoVz%mNNEKF@n}b8;_!X#L^I zZcHKlF)2|C&ey1V)VZskVU~*>e#<d?zIds;(pop@>sxUCT(5e1nLk*xGk;Lvxa5W1`mNpP=AbbBu0OIo zhJ}F>&L`;J$FYuzoyT8ya5=tKY)^2aOr8a^6Rq*oi>(Ws{)fU=v^&^5L%3q_!6%Wq#ws zNy=cw|2IOhV|bio12x!fB@*M1FrguYw&$4xy`Fo-0GPm*Jxi{H#Knb@n?#b|vPqeW71A@c^8oa21Mx8um^ay7ee6 z1;IP&9n73a3G9N?@QQXypuqGx%MZmMmnGcuds%Z&6UHeijqWYgX{m+g_nb&+(}35P zcMm*nTbJs=8EspBH<~qEe8(;-J%#1CnS1{@jf1)z@wEdxCr3&Hx?4ZTw%C8HfRhLw z|5!MLF|g9Q&^FIw?F9@x1!q5xYy;Wn&3>mR|{%-EnID8#b!o$S(dH8cI1UE|URrj`$=!R{& z^P{u3b$|BWSF%ma(|UPwuTQ@8{_R_fzxo$e^A#XU9ib2p=t3G{hUp%{40FL3o ztAzzx)D-+z$JyC>sA{*^3HKl@t3o>9pPIuB?Fg6gKtNb-$lji9CVQHkku$TYAedrQ z9MbDDIRuyW#uyQDj-L)6Ba+~GyMFz_8TUJ%r7bcA(+4@qv%R_*jl=FK>4SrIuQfI^ z#L|ACyE(ZgQv!Hg6&q?n6G=`i0s>MZ+t4^J9$s*=dZUY_ z!ig-SDr(|-f}y~(qIFOPUy^F#7PhOUq56fI=q|bGT=hhldDkm)|aXt zDn&mrgh%>`;h71QWu5TGD~0T3@!%!D?X^ zDGD$3#=h!uK1V$rtX9G>DLu@KEn1mBP)A$eO$WN8rGpJ~d-otLNT`IL+dXX9E_|>- zTCIX%@`p?P1}Q+K+Fk5JqX~V!8Npo?92S%R_=^pp6!>RSGJ`M^S*_g9gQznDi}gg? z(PSC;3#MKkA}@!a5I>kKrEB&X}_o{!P>O$#@&$?60i^sJJ4XmChF zct24NbmE=V^Hc#BIc20qVE2=GytVIAAmLr&r`6;$2Um_&cR6bZk>w|%DA2tvu%4qR z4HzW3I51!L1^g_vZ#s_F%3{MZ{spa88W^jJZdYk4Cj(Lr&uBM1yR3=~S^m8KB||IQ?n!dDa){vWkd-9zF0l2tW-5*z2y) zzw_VQ&^rB~3c_;by7r9pZ&b&@)+atxdv^`Om?anhy9O$u#wnEb){|hnPka!8LMuE+ zWKKVWt*#kL7uTUfzveZIE{F{E9W2Ybxu^i$0}jkVX53Kg-N*25HC4^H!PIqx#YcAe zu}{*a$^4&vLp>YtL=Z>a-@ZZT#?@7S^8)3eKg<959|Xiv_Z#nAE&rSEoR^QB_*8W& zz2vA2t9|N=R5MESihEY8z3QI6nm{3?JYE!>N)}>!L!d$Cx|d0nV;j$D^zmr(nXnoS z-qyWg<5srRz-+j{H@Z)!!k)$3m%g;V^`LQg+86C^yR3F&LFoQdT(+d!8Ol{y>ytBtrcH~4S3v9ZR- zXnn)Zh>A&67hYbcUye3kcQV(_pZC%FRHE{dSEp^gpSHnr+Gt^T7Lx_%80f=GI_Vzh z8{^14C={7(W9u|FNMo*0U;M}~e_?cG2%xbxZuwESb{+mtNACgYKyg??{gc=HMiTDk zpy)Q@;ZIvz7kWy4%u;$!=cPDovg2VXrQTuV@jTi%cLC=Du76I^iX~{hV--pFICv@6hO~?1KKls@>^5#%&@-V`IG|^WG*MTCuC>}We_nq>3*kg40NQi0OxF##vIh6b48C38e2o|5!mG03hjODlfNwO z@f5>)PBmzvyTs#oh0mlvSCqikz4v8>Y5*-fCTP9OAp-@0%b6ZH)2TaFynpWf3mgUK z;%IfUTpC~T`c;a1)$8Z9+an48;wNdP2#SmA{_dTtb$|cPhu8h+qV9^2k!~Jst|MYt zP%`?ed)XsU%_M5`Cj1bpMTJoJ*uzuovkj zLQ8uhy zkYLQ;J3!&e{Lsl29X1DF2|A^n(0j&5E)iLj; zM8A1_wapPEL@X1&TpRIieY~;B$7I`~p~sMGu0jGGp5nXx|Lwl*$yV+`5RD2(+8Ci0q`RogKll}^IMq?D zOW7nG^*VfU?$^)A*jAdh&Z%upV^R3ozXFBPP6Tt!bu*)1>)sbhoDSyn8%4u%JvTw; zL*@D$5ZU%(G+DHJCCt+gCn|<*3`(3WymI$bmrazB6jq^F&ngsalxG*0E387fo>eGU zyAobp&Ie*K?tmhtQeH0PfGz!^z;%69*~fpLGgu;diOlf za~aXF<(t|rfdXV1U=k2}km^*v&iH_~C(!Gr*Y%5AobLwVbusF}#?7r&t(P0Oxrf3( zNI*Ribr|f0)ajd>HD`Gcc*u-Do^eek&z<*co6MXd@9+B<*g(sA2@e(}-+BM8NXj}8P3<_Q1FgB67I-A2rD1K?zFSc7hV$3~5V2Ho{GcUv9q zg8ZCqnzb*q(~doY<=Mn%BU*H;u5PNXCTpx=DrZ{{uz5ju-K=>4w^tIU&D{PfM}`8n z8Q5&D0;8kptERNTRMCon=O6%?YpXG7=})sXhuYY)=m@LJP(vJmiVoM%&>IYdpFhVS@?nkA=l zDu|9J=sG86o965OS%iXgRi7YHk^dgN@E~W*9;V{?=3IDu{_38$|M2^Kh3G*#62&=L z@!$Eo{z*rKEy+v_pidp%)#g2Ke_blt=8!h~dV8$bgaC@@O?9+taxj@KKx)^YTp$@! zOD%vB_+#W5zOhlHU`M?8$WED5Sdw{%w8k)~(YWQ8FZP$|7)|SAHx2&FMs_$-J{%q% zy%u6;sd)ltTDPxo|2v+>-?3zSMhXUsNEQYR0aH+L$Y{A->`Q#mnZ%c0Qy_0R)2I9F zr3~CYdh+z>GUlrvcEXKr+?zY;M+XC+_WPRvc*HsjoQoUNRux$E3RuB z;s2K-T+?k0C*8_y8)BAI^tkhkgU{KG=h~9AsmS^I44Hbw9~ci2gYJCJ#WNJ!m!YO~ zjw>_s)vhD^&euDNRdCd|0HgJ!1=KEJ06y?7m4Do0w`kCN32HeOnq}sA ztANfaUs827{fb97x-K(=%&|*AT7*_k=9q@w>+Y$emI8lH%Ji%ICO=lMV7@H13y$7u zXk54u5S||$mdW9+a16`H^re@`yvp{v6y>tKB8sSXIV%LZm;cHotO&gu85+OY?Rrk% zacNK?OJ2Lw#mj-0lhNjuV9M;smwNI>PD5P{;m;35Ec!u<+lOLw>O$_=XOVAEjJL`I z2VcOVulAopi%Jm81u>!h_GAEYqK)1u@so9=AwCRcF(Io46+ly%{WBZwHhbo z5AX~iA$&Ef&D)c3z*Jw26iuPO4jXKkGc#|1D*Xz`nT%>S{U#GjdETQzbhVs* z5H-h64eEhdU?HIuIL5uH5Eq^$K-rH~_f;%D8q28=kc213fwGiFzwz{tel}n*#Jp05TGYc10?GuF2M+o;GDS z)x?ve;`E13QG-(a|MC*nltA02tBrCFVFz_B{Hjp8x*6pT^{elEH>ILb!pkd&M-)>( zOBq89#(AHR;cDYGNDr7(CTse(2C3+4dLP0ZqZ%g^P2SM+L5b1x;PecPoi^5smV}g$ zE9Ssm1Q~#EX991n*0(c#OJcD+IkJG5djJ5zYaYFQ4~7F8odviosLLXfOO_`8#t9nG zZH;>OeV6c%dF7ZuuM89(G$@1I!2kZr-z-p^s?fuU(3PJC%ZdT7SojL65Uizi7o!kClIhx znhUY3gyMqY3#!|_0{XleVxcF z>GmYk#`F~FAY?AVX;D_Jr?0+5ssx^jYH#>y99P3*%{9~4TvDFC;-CBbIKR`*(WtgG zb8PWyxno%a~6_-q|2sz-KfC4$yv05G?$!U@OsgAty zR7Y}Ku7x$9RFQ`Cq^dq~^yPk59M^c4Uz(iO$d>`<2_L(VR6KKphNSEFW68LXKW}B?{V!5vLVW>r@W3b)^P6C zBlN*s+AMRz$5FPUU7x&>aM~6}AejZjnu*nh?^zgDf2T_olgJ`%=O7{={ z6RKbiM8L3&#^QabK-71jCVW&WEKrk=Ty$51`r(WFf9Q=M79sf`~B3 zhTkxFwrzLsxYwzDh$C7cT$HKEu){)tW)DnUzyq_cmGSOhk}1t%H0QD%2kLij;34L4 zfgE_P3EFl9R8EF1`C=FxId)EqhOVhJeeESQJStcenJkIQjjFrvN9Co$9OeyDY^~Gt zMv+(^DT#vB{nZD1K2BlEsYs2ks9678W5&0g1K&?Tc2F}yq3Zt6-?j>-d1)Vo%LHrw zG%22=38yUd5Xf`8;ko!fkoY?u{5R$T1p~Ljk8V&(wPTzx?qUZ4Zh(g!IA;X3QGr~` zIGlasc3#-A`!eW8-nqMKcy6}OM_mkvn9`+P9>&uqV_Dg(e)+RVExxUw27cwVeJ;>cOl13K)l|qDI2#P!pD=c-7_= zplN23ovYGP`n`q^PDi?m59sPBHDCRoocg0dfu2MP!YlIBJ+(RloCNofq>DHKC|VDX z!!X(i63}5j;GUMo?)wznEgi`^{||HT0%uoM<@uk-y>)NZsY*_&DiEls=N_XS9)XNT z3<#!9SqV=yDB9}SBMKr@6>JibW~KuvgvKc@az+T zkbNXKVx)tDt)_q~zV~TOGQk8>2F7c1J~mfGvL6hUbEq1jb;EHmE0A2$;XsgMYKIqv zd>~`bmYC+r(K~&{uSD6FF>>t%F5#3T1~>1Ou*CC8P5j7C-WoP~^d2HKo={d{1rF9# zT=ChkSpTvt6a$lJ1-?WUYIGXb6W6q-uZIJJ792zaZjxJJP_svMi>aqBr=pd}sBWS? zVI818WHJt}1>y#1Fr&u;u_!D3aDVd6+0$L?Wj=_i76!$Q zzyy~#UZtXXoO!^-t*gaDKgWsgz0e{)JTiwxI}j=WsaEWW#?m`tthyos+gufdD9K;M zUO>1tl0;X~C4SQhmZmI8XAh*ZKOwrlt|wRcj2?%yf?k6UylBaK7I#|ks_j!=fA2)X@7jT|9G3cyjaotdYis(F$%dH zlH&W<33qRzdrA6^@)$@ zq9(p~M>R#0*0c(PBA+sqvbtbl-4#ik&GBFaXQF93TSKr>ELO~;deOteCN1ic6)iD! zs1(u=o!Ttd^k(X*ecv4B@w?PJs6u$C1JiwJwaZcXVbM+j1X{@0z$pU0^HL%2GIbI= zj&O9YzTEFtZmgU87B5BqDf0y@8apHHA<+s#k4}wAB>-S244eIH?J-aIG22{GrvL2a z@lH5cvHcdBXScC3G)Czgt+W-n z))#52$W7V~jx@s2z}^piG|T zk;k>QFih;%hNmq9SI1)vkyO~WzzAJl9XpXLR${ljzL+hDAi-X;DBwmMd{v@!Ha8B z2HutT$jksw>k1`_U|O{%EPcB%wq&7fDuP7C@fsFX;Fo~YdL{j89GM-?E|i4Dh4(}V%2$g}tulVFvz2Z& zEH1g38l|aCqv)`h_%isVMonl`1m-I zYhUFvVd)il_E*?$@?sdCVmodwHEYKC0$48!nME{{(O&?F>{Nh* z@`?fGlppST-JRSf+yOiDS1>Og{xl!Kb+pdQEEf7&12A7pDRdxqnvamr4h{{ZPY6e( z?I@XNAi<^72n7Y@Uk%f%;{B5&&7U{2E5vUg{|ro~;HEj?mS?TsOQ8x7Q3O8Evg;d( zCkkI{pjy)n2Gj)(7~-zNEZ>f6U3n?9BA{<5p7Znr3WUMC+WWEu7=^p=!#YtstPi*> zVb*I~uNe{NnDJO~RB}7x$9EUKS;cldk@i~SZZUSH!L||0vkhNuFhVbOT$(RzLdv@} z+jO#j|IUx;K&J0OS;GM5V1ph8Q7sVj(!~1Uj3XD!-0`+7*za=Kmq3GuXxiD24iCoT z4T%EWgFXCIZ(ZC?y^u`B@>d#dmgKYoWv_T?Ps#EH#{<6JGBoEvkgiOBSrc=@oS-4{ zK`Z-OdUb!^4cu8Klpjh&G8*_l$c>NpYj|>0psR2%O zM87z?WmY>P=$9TE*sO&x`MN#=tEJ%lvGf|6%;2jo;S7r{t8(SwvzCnFAp@z=JXx3<*C`hgPu-dl*tc>dDA5jvJM*bfh{l{_-BJ zvN1ZXcyk@%VgPY;w+idU!9>L_D_rrbOYnt9E{#OUv6%Szd#G6AT=@e59V=VR5fXkW zbD*B%4N(!Z_4E=wN*+h8fJG%7>apk&`9QTi4UVv3MG`W{tOFTny)~{zC9pbC<3LH1LCC$nz1WZlu#BK`4It& zbXlmlE}P?kjZrF^!*?ZF>0k|`CmO?fa5H}6HAKuw{`T=B>!IN2oW*p&{ld&zhm=O5!l0v$dGJrk3o||wSi`;X>8-Qh>0$J?*0k_ z#4G?HW4-8kRJxHJpm>ti33r$qg$S@v{DU+E_>$}gPTHjutwF&WlCcU(_8R2%&%)yV zZ4ekJ?@A|PQh553;(Z$6C9>FXTqy?7uQw`=!*$8|Y-t$ruC8lbc<9v<6JFVx%0Y>~ z#eytW$mg%K+of2w z%5qJ?*AX>i6B}3wxz$C1y!jcw;TnrKVq6TF!wZgQTqQT+XbqkvoEOh&Q`E-GTu-{il;Jl$r<^t4|5FgVku zSzU}cXLuk%C#?XMGX+Z&al<+7Cf}GfrI4v3QN|&8L)olF!9G4a0b!qxuoX56s1&xxXE2LUznM}yF+?DhI=e;l zjbnsFdOk#2>9x~ODR73FM{-R8P*`GRWKqCeQFB`CC94vXMawJv6KQ#+G21k&+4K+I zo0I-aIArOB^z68V8vXnXj*&H8DRCPz4d#zE=JJz`HFVa+g0aTF{4gfu5>bMU{rF+2 zxL24N4eZa(t;EenF8hd|f0b;1NLj;^-KC>wsAj&%$VyI63#IV`+vizsFP73kUY{cwt7L_9%>Ug|4;7<9WE1+fOwP zi2pf{dttO{^Pb~&PxlzNdpvX8?&%)mc8_O{+dbW5-0tzral5B`jN3h)K5jira>9#K z?tuIY+X(VO_SasV;ojm)|br{=nLMG=|=LG zHio(8XR&)fN8X+zx#njnKh{7fGbK7G9!A5&N2mW!8Opj_ZJwgD8ldJQnUC5T)^iO0 zlpZJ%t(SEewuAMsjS0p_Z7f}!g?8acUE|`QJ#D(mIj~vVEI9sfwdO6C=eSJPHQcXMi=Nj!J+cGoX> zMzM=rQFv)=mbpr+Y=#V_W2!sk6bf@~xQV{H^PODxqHkFe@&w)X!7 z=|(M9wnz=?>!dq&MxaegmTJqgHqaTe-l>dWZUE{&vII77G6MOa!Lj0}XO%3KWZ9@WAMvE=O{IY`!c&>=8)T15;Tgb0RudM$yGB^ffhw7 zp6UXv2)FE~y;@H;qnJa0#;IARbw~y3hH5aPO$idWl4oA4sj+O#e%KVNBODRpZ4-Xu zHLt~a;NuW+k+Z)1{(eRHN&Cj`#(Nqm<^;Md{qmhVLbPk4Cb{*gJTNPUs)tzQX4VB z9oY5Vlkut-7_YEgWrT)n$n9dioU8JokZV4vaVB|sf0TX(?=e-WH}vy;>| zd%BG6%-oY(VWqscSwSK|4VqKdZ0C*(9k(`wEojQ?a~W{4@e(zWh-R4tcp|UqmszDb zrFk1ASA`vRox?k!|9=wi;6e!Rh0+zbFN9aYF~SusJByc-^aWgVC0sLc_JV6Biy(uV zOSddA5}?5IBIY9;q>_9X_j;+?uQi3g70g9PS#`yMS6rl4sOCtgvG>p+?n>vKvNquq zS}f<4iA?SEv8j2Cf(@9h@EgH(ZZ3yamF&*5Ks_3^naPZZccQ3xnAfv77@FQPK`mej zeMGqipsba-o$QbW!Omq80o!)(eqve2X%D9iO?@S+es(%<;hYTw{ZYFDOFyd zw5-QIS3OqYUh3(?Z0fu9)S@*{)_>%)oIZ6vFFy^`&8Y(a2{W@_*M|FcKgynHWgk zx8~jON>>tB-^`LL&5o8PNYSkOMD1%80_7U&p6(igI>4^;_J}{)Y@-z(^`_fmr4$M2 zVR!nOevl&cn=j+lqf+X^Rbux6M(=v-BAVv(@C zWa3*F-lUKuHe|T&JRIAwsf5u3Mwj{1Q6u!lg!!!00reLSpef_trPmWO#ls3RHmeS~ zB3f)UFqz1wEBI>x4^jA>iKh&%G7}?B9z!=2YfJJDmwj z5~HZv5FF1449}p#yYMWJV6}Syx6hImpI#}xqFdbVBiYfIegp@$J0GOILUq9xS`rN}(0xY6K^2`dV1`r8% z<<{7NmIdsCj!lH-)c*B-e)k{?tWx`n0r6;6VCy51+wK-88!OZH)x&Vwfz>cRP8KSu zB{0vrlFiApjy44aiMLgXL5&v&zcefa%b<&Zru+7mxRg&QKu)qqeRckx+hC+xNz@>X z22A8gMPt7}5i(-$FMVrCd2a=6YCNG|-p zm)41*p#ez!f z*NSAYI@ACS!WIZDHrI)<1rs)AT)J91A(Mqde0@3MSSNR|szIZMmI3h$NBTJnsU=}208;K)~4}7uL|;` zou0KSE0qLme~NIvwe>K+@%V6qd*dP zBcPp~Jx>aJzj7+mxdjd(rLP{F@!T`AzOlxOXzcmz*}rf5a$fuL1q?MlBY&|)=%?9> z6nN8xiA~cBphxYLL^pv-5pX2luznk@ye)EIvGrOF1ioQFT&oJo@;&W{R7}Ue|sP~iG zdB0|3Ktqv}(W~wIsp#ZXV?Sq;EwZq4c?mwliNxY8hBiz;@5LnGySjVG z+PWkG3Br2xE1RPC<E>-CadV|i$EWu%fG)r z@8u#+?^U%d3PM`FCLvD5LoBlO^CapRh_4%{>`}Y?BpQoqZb-S-_dL-?bJvLMK=Uh` z@R2NPy|PW{z#J!Dl~i+PQ~_<&8=1Uyc^zkG^RwB@p~N9ng33^1e)fEpUAWjs&ve0o zylQlIsX$3)8O%^^4PQ1o(B(BUgmZcyE!Z+^rn~!fXM&3$3(;scf z_K;jA^Y2je>1&_}IlMToAU@)KzsAPyOWHzxwjOm>07 zj^?36cJ!YSvzV`OEio4@#KdNOt;;JDvOI{CmtoTgRkYaYf^5@Oaz}^B8aG~_9m#1R zjM%ivOp;>(G;)y;4XH!HW^I6F=L*GMvxRnK7xN;knWb7>v;cMLT?!4;U{IU2ifp96 z0Lhi)48*yKLhc!+?4F-Q8nE-*1j*^GBC+X29$1#^1%h*4BjRJ3p}n$@h*}QmAU>&H zY?{Iaet-w=dHX@I1N`hQLCY{$;x(m%hn&NxKo469jsP4MmL?tXgYu*rA?EQ)DZ^2L zxh%s;{5hghtan`iTPBwiu|fI`+0tfJfk<14ayC6*o4IdVPw+bDEC3(sFNVHt@ez9B zO+~rJZNWxbIHev12r-5;O-Y08Co5yuXV=5XdI)k`UyJS=0i+N(51)3e3chx-wv<{r zjk&@Tb#s1_{9{S?PUwkWnAOI?Tgq2JM>CVdb|rS9T@blE$2X+MTgC{9I|iUZLn)dg ze1s8bPa!`!z!e%R_cvA;+tD>BPW+^opp^Jq?$r)=xb5wf8FQ6;f3?8F_wqg~{s1qq z;~drGh=5n&9%GNJ+d&?f`V33SLT!@@3=~q9vLG3bq@Q+VVZlln3FCCpYB3SUsnTbVqsD+xcQ>}Z z%N}b10H^>Rr9V}E1x+QM(QhpeV66Bh0|OCdFi!2AN^v#MEhliLbsokJ6VQeZoB49J zR^<5RV;}&85wlt-krUV0B^ZDlMBBE2;)~e(287Qy5jfOmKI}r(xM@|vQNw1jANY_d z=2Au!Rx}J=aZg1kTJ$sTVmXNJU|9u1!ouj}g4G92D3}RLoc74g-J{C_7Pm!6i&Grw zzDAsNorvrbD{_h<{pc#FScaVBEH%rUp{2+Q-Y*!?C3svZE;R$WW7?!mTFSslSqR9h zD6s6tk+!Bin+mGnpGZbB<6ie3oCK@voCVEwKAToT%R76RCB||!7x*H8e;6~SZ|#^F z)N0=gFZEUF8pUb@Sm=C9zl*9$A21(dC3&QrqKhLa$gF~NybsR%LXdP38Yd|oLn}+i&`R$Z5?D{4QRwut(CMv0NGvVkWzqGb z*-&4NngyqkN|V%Lq0!AKST_aM_;8%u(h)2S+!foRKp3sANRMYgerb!_eJp$y@}i+v zoBpAJY9U8Sn?)InvCFM(aA1<&;HVKK;2->hYYS!-U@W;BA}XI&1A4r#fvdlQF_kqO zs2cdkoa8WLuWy-#XQLg8h47G_UgsM0H@4c0NIGI54X7WOnJ!`J?SFQM*f`h3DSlTUnxZ zmqgjQx0LNJk=?x{n%DV+c9%qH=M&mp64iN<{5&juopNX>*1U~FkGv8x4(uhiw7pru zk+3?mpA@!N`>P=>N-ztwiCZ|`YpMTcrGy*!w#Wp&+=1A33!3~Ojuv#KMezDDY_yxv z!t_#X=E%r5rBc&dAdvACQ?%UdWp#?N5+|YA>ttqoj(g$BNRTA54#Yng6;_2s+yxzu zjFMwWI#*UCr&}9LS7RD3JkSM`7EEl-CfwtMDKoV-sYKD5Rc(yTC<+?LgFs9XUx7n;OBT9c?M@6XMeuob3 z7eaxuee@h#PUmI>ioaMNDxkq(LI19GOb~6tn4oppQcT(U<2XcwKsNP0!YhUh8%OZ2 zbrG+uUNbD#_sd~O25!~^>$X9TgBd29zztpDc&Z5+U{#BBaq?mr8n^awBV11Wp>_c&NAz@JV%O{o zlx*Ze?&|CP1Fq-knsR!+kZV5YYU%n5FTC*O0Ycje2C4on@^K76+ei@wj8TBG-v5ah zro#fK*)V#gmoT$NRul7OFu9^Fl#sc2^eKzMt&P0mRlDkDoy)?d$i>c0L&$!TCmtY;$p{kqbd3Yoa&O{pemdDE9ZwX^i8ouyALOP{LJ z4@^VAj-X5);oM^aKox83aAQyjD=Gxv#R5ES8O@NcL|jr{SpaM+Lok(=Ut1j7 zV`=di*Pw;M<&=fDXtKI#pe<|Sb}_iN>~ao&`b-ctFHlu_8zxa)>@XKZl>GO090n-! z$qg#*3N(_(K|xbb)~pgCRhGoxxfHG5{|uc{!At(@MgI-h8yQt1K`ksSajD46=Iq}a zP`!ATOdUvr%&zdiikK8V*F&zU+Idd6THtmPaJ5*z8;0$o-y~Tu?$@ps`%DSq00VS_ zr?!ujzEPMaWhm+unANou3~eldr8Pn~LUEv~8=)8>#Z`&kJsQsGlI|QNmcN-N;&@hB zqV9?u)zERtgVSvusXBQvxO3idQZK5^&9 zCRQl@lyL#Gb0VMFZAnC)8_~m#N;_M%$bp zD6#jSToKxRG&};G(T_Y-h)kYzhSNA77BB^+wz3KFy*00ILi6U63Qv(?#Xr1cT1`;t z9>F#yy6BCqH&Myk8is&gG{I0*2|=&`T|97y>s0ZrUj>v~6Ge+fc^3F2O$AVMzRNhNzz*3!RQ$*9=_@3pp29C=iz}1~K>I!`7zI)V zskeq;hZrFt!RHx(Cf#sA0K8f8gb)*i;fTrNQh;@D`Xmkw&B)&L&XA%N)+QlF?nPv* zglmPAUfC3D&1p|=%rHH&=|S)dTD3S`V4MD{min3T@uiRc!^@?&`h@Nt-CSRLXPsN8&row9YjzeD*$LQnj7wo1a$!a3TO9wf zZL6P7h`6>uR98v^sTR*X&R0Gw5cAo9z-*Sdq}rg^wxc2;iJCex2p5*ugH>)T7(3}m zbf^#>m(tO512hQ3(m}60L^^9YwHIs8%%=jN+Su18{iLW8R=nCbeR`?|G zUQ}WQ+P)uTrDs#p2&k?{J9*6sEr*0DV*I%MPNK(1WMtL>n1>eu81X0}rp#r)>V;U8 zA>0@aq)fs;5i}$VIkvt~Iy9}dV`fV3fMhBnBaTXIaIG)+}fPDtVa*7R@xEnj|hlh&=*(tB)^TOX<}Fr zIEZV|9p!B=!SudaJKz)VsUYoSvXl7ogvk=+>;y0Txzh9rX$;a(@QyBNw^taj!h!|Q zt2!H4I)nyTRsKB9E5fOCtSqd^8%yci5~=*8HKrJRsC>L~H1L1kq20M~?IQwWedr5W ze(;#urDq`=ePNPMGq75G>U$W%Of(XnbWtaIs+;8B{SjK8(naCpQ)AWQmXC|8@}x@s z6PNAW2{{`wM>H@r9jnSp55pv`DhpvRfpjiGKm8%Q+~M2!Kmcx-+%{+W=D*UB;bd%i zx0hdM=jkj}VTd74A6F&E2_S?JGthx@;hN4sN@O@JuH}%wo<@H>Y*?h&Wj!QHw7ky& zEGoXYCnEx1`d5!r5ABE5aL2#+pn?@7vl7tgt_Zb(nGI?z+L-(`gxf2uB-jQDHyI2! zAxvhc|EeG}qXPx!F~g93ivpeL&C|#4h=Ad{q|~u^Ss=5A#5|y&!=h_71iE!ukI~P} zHdL&v=TDD9E5L3du`ph5gaU<`9o%}+$`w9FTMuH&*X4%bonJXXiPwsdgZ4sc!y4|j z%4gj>zm5IhHhSL zJ&4h0+?TwOwPZQf;hijMB4`=2i(58K1nDL~btOB#G!^0cM(vGIprhrV9Z2_@08)Uz zf-{?Se6d2d(Lt0HBC$g(z)11<0c^ryW*9E6W=eWwXlDJPj}O?1cM^EYKv~r0f2`;$D^xw@D4(< zn6VB9OFHPWHEuI1BF%Jlw!s)0Qst(jB52W?)O>*o$eYKb!n)hzV1~hmD+ohiiDyv& zo>+Wz1ZgugF65LC<2YnR99l)lBCac8gv3sYURn(s1lh?fg-H2{nPH}!FQ6H%ttk~M z`IrXvl6`}0579rwMY4XRi99Bf8p;QVEF)zFhjg<#g{MOQzya+fCsDfcTr6k|N*V$2 zFdNin0l3!x)h#5ge>+N8@ibv9d_QS3Y37-FoXZ>3IU)1K$x<1!fH zQ)ji+wl@tNYrs$lA4TU=iiKfNq2a(a01yLm5*nCj7p+2QNFPHgi$0497Yu7k6cRb* z2Xmc}+QQ-ql%b25+AR@VTrz24OocwNUgjT1w#$jM3*D6$<_bO%E=w;KC_2XgxIlZ7 z6${_Dg5Xy_GMEwUC?n`@&R^U5g@wJ;hBynnf+$d~DCbe4jP_}>C7Hs?VLRvD4fGdR zhOY22f-mbk&OTwUg*@KG{=nq2Ijfl9(sZ@|!y}AuE#C^wd$7RV8=+`QJ1|13#y^hR z9{weVF*62YLVM6e^}@}JVGSI7qXKzjn8PIWkyc0%%8RwoRx!BaX~7nzVt^OAMS18P zPrF^4b`I#6Ft+BO{z$tVVc*5Zi|Ck}hYnwEB1WMUWpL=GVGxD^X7;@wqA(n=_}9;I zK@Fl^nvcw{Keow7_5>q*Z0V*L%TnWOIhzR|06KHXd|}^ zW0aQSY^wSm3|a*S)dS52{>MfDqaMP}ok$5U*??{qi&Q;uEb73?tt>8ukR*&=)SZVn z;w%-fo}!Jgi4L!aaXdkM0iuu|qt^i-si%_b;zr62xlHl05FXEfy4J#^-GN2k+H4iy zlt)Y&Oiu5q%8XQ=J0xpuUbPyg^;@;nH^Mt8W|&w`a#X8F$^Euk(N>~-3{mKnCz+6@ zKJi;xmhwT7J&oqsBnQ|HZC4OF+dBUKO)-oWBdnM~_G|7v+V-C>< zasJ2*hF+)77s`JxYO5qCw0v~)Z9f+snqQ7$&~i~TBrzw!Yq%5XmbwZqD!t2o2JHxi zML|8eCbE&ci7@kD++0Zza$aq%`ct|c8=YAOnY5`54k{0qgzL0LeO z7fVo`v=7pho8V=DQFl`2MSOm#zNv5JuhJo;_R)1#42^_4>00^-W7Y0%v^(OuxLd+p z(mP1YDil-ZgKhRuR-!|cia?XF3L}8hTUOc(W$T(-Ru4`+ISFTrQmxa@Y4$3Qh2q+W z%wgW8Ie^D-Bu(#*+@`adO#z&;Z@Rzo!ziV+m5GHi;+(NSnB)j0zFEao}}uWiXeHCy9+ZEat=_DUeXP#Ycl z$62vPzI(R;OO%Ujm!e1gG%1HQQ<5uZWy|2BPqL_aYW8!&_9JPE9258+8FFX3?9jJ-m9g$0(KW+cH1c6VL*x_C%6h6bJoY)~b#HVF3`X?_0dM_-ph!Zg!TndqQ z+x9YdUINBe`q|VwvLh5uTE229w6`IkQVjr<9YN{^vW99&MXNJ+D#6ylTryJ@fOcyq zNcx%T=`UjppxLKA#6?o@G95jJJBq4-SZyYpv zxZ38k*yZ@HtQE~cw^nWqz&@A40c3*+;M>BCVl;GEbaSYp6c#^)Ro*lUtRM}!OW#J0 zWtFs>XZY?m?iTV)#A>~$P9?U=~{*yMH3l zzQPe@-9UKIFIohem@^cL*{h3$!?cB)x%yEeH*HTrZ|7v()vm96vVa9U$eg!XW{X(? z?(2yOBJqek5alV>k#eTK@mpsOm|D&>GuM>`HJ2bPp87XL?Q?(~+_C1AB1Q*SE4?3I z?O0Wq#@sAsOp~Uarf9AqRtg2=@=MaSIS`C7LRcB}1=?BE{-;^qDHRJSedEP>$C3@p z*dXKa!J-_srHvIl$jq0iD>olCnRj0Lb~u8;lj)rSPn0plBK4S57kp6A zGZ!n0M3qv5sVJ?C3DK*UaA|RzasA!bPX~K zydLfLO032(U)enKGy_~yR=aruK)d>k} z8(P-*%OdeQ$k6ub6qu=mX|PpUGP4FOpg`bI45|hJA21Ur4TZrEN)@`|2^_R|ToHFD z++el{GIc>g+=C$w7Kx9eER$7$71vP-s!%#m;Lh;UU>TfbkCYq`?p@<2nV@xYFB$F z5y*pL$NS?kgFe1e@lHfDIN-RvUf?fYRyL>{MwO)W4mG!=sbwQVZuyt%PGuO$Qng607c9#lbw_~P6 zLzs|}+RYJKJrK)ph*JHsab*s5)`?|6ajdYj>lUHX~_8ObJI|rB05+Y*|f35z}ZVW%d4cqwxXXss@0aH zio>b+k|3t?n&gI3^}z9GctCM~kbbh%TPZ%hj8cm~Wx;=?iit{VGiXL-91XzKvPR4H zyuSM~#4UY7-KBK_7=aAf*d8b|pJ!$F=V_*^sB~etQQjrRfp3^I0W8QKYCD8|buf~4 z9plh#iQ#(TdGz8&_NZ# zMLD-o(QXf)MFIBK=F&!}83|i(y2)I55Tj#B%Atn`=eFk%auu+&fJ$M!$;R~Hmmmk% z+atlz2&F@gW=1&kAEpWeMyW-sV1&#E<++YfFDM}%FMCw;7K)-3j<}GyP(-{Y(pJnj zcD%_>b!VI}D;Ls-=$1GFCyt5sncdLo5y4!*lZ=-3!pFYp0&G;Gg0(=xMadM|4;IN$ zhS!*-K+mO4zyKhYS~8#NNB+~!x+(SO?OQEdHNdRXxnYd?AR$cPRmKD=l*zlDxgB#r=p^jJp zGeRTlMvp~iStDxhmA*yNf6h>0I-~6+d2++Z@VWH7N~ljwX={5hpLkPjBiE9&UnyvK zRkdxv^cXxr?no3l61#LBo9A(dhF9X_(|PgYeY{%~d<-P6kTB#aZ0Lj9mM2TV1s9C~m>Ca+#JKmf$IT_alKF-n;>}ZHSX?nLqJreFe0z{? za5ROBo$JdJ)J{6QJs0Dgo=QsFFIjUGL5hrvlJW zR0`z4kg|SYliK{q0iy^>i`;rpX#|*(Ol9U_Y2w1-Tm%soC;AP!8zF+YAS}#=%-qox zAES$vcBF6s_s348$F{;v4?&C6k#owjaZJiq}jbSnRUb>3`r2ostBZo4bwUuH& z$rd^zCv#IyW(DA^B-=y7vG*CsaAb^HqfON!)}u(@nR(Ih2m+MXKAPsjiOXb!M`d7( z%sX?~*~&R|F8A;B^-g#h1mM)tu-NhoT49iauQ|KbW$`p-D^B*OKOYv~+k`gMIpE^tBU z4C45&M8lnb^(x45Neg?#omf;O7m>C<@h;;>tH|n*%m=Md%LUmBx}-E)b_uy8#eQT( zH)2)KJkUcTOrUVC$WgQ?I7kW=w9F8*ZU`FqQAVm%@$-$~2$;y2S?J~RLfJDhAILOw zS=(k*DG9HNKqVnVstawQm^{E$1wUKp9O_X)=2m$II{%{k%?mlZ0Tn^OA$`g@y?3wN{!W3mO)Of7?Mvleek%z&cQ*ERp zaYY5FQWOP~Wl`r+#JDUUm{*Y!3(E(l_Sm3*8LXfVk=ZQfrF@l=8Qi|7?fmghcB9B% zqbEvA7qO1xeFiH=F_0de3XdieG66^cXpi_fM{~F~m&(zOo#5D^SyWZIGU=uLlgi)U*sq%lZPe+I|YU1)gvLJ-;8N3CPZqqVVVoUGhQ2{+^2JCn zME4L?x<$)F!?ako8aXq8DaE&%8{!xli>^U}Mq;xU;1WVq4T6xRj%1`;P8`d$0f|KC z0odvd7maLh-toR_$tB-v(l=eXB}p$<7<;tNm12*<9t_nLeKJfyn*s;vLm5&+!@+SV zf6wfGic_w)TAndh#hIn)-T3|)h1)JlKX`Nn8BF*r_RFb(+{);7lRNzn;)by;+LNNO$I$zUXv@yes|KK;DJRg9Qlq2nr_K1P%#PD`R_y zyNDzb;FeP%CkmwBLJP&=q0)+c>#~S{-4V;;GN9Ye1BRV`H{PU@iwFycU;w$m2{O|w z2XL%|H9N(n)pMC-F ztk3CYBvofWnYkDVTq;P3gTAqUL5x%^TZejA<`rA?;qqj3Iyv<%w+mede5#TA`0U~j zkXpE!WP|4AVIZ}$2yZiZg>S``M+5CCbNXa&i)n&er( zJf4uNz|V2bIvWlJid+qdMdvho!EMHN2%}=JL^#hi2zhdV= z3hhKiwP_p5fifs$$A6HS9y;SKM1eYHRMJ^oLjLFdf5Ef}EBo2n7BOYPbIuRITGWsOFY9Qe?ao56ye*u;&ybwp~n2}xJsoNM- z_ujcvv?p7F@3hzw%Q!F;<60$KlE!YV7O*Z5X)5}42x2_ShR&@gbWCAQ(Sn;amT zVbnnx9g&5&mMoDT#lnF`b_^VqmxgE3iaX1y(1C?|zECZ4xDdWu6Lb0j2K>vc9cNr5 zL426m!L&qirFH?pHIQR-VU#5DK4HLufsF*jAY^_{`bk%JB>U9T8~I zuEOr3AM)#7fyvlWv%228?LseT*cgpq)Pl)B>v!FV+Nmnc8tX%s$j4ZlR;VrV?1_rY zpi>AyaC4%V5T6wz@mgtpw*Uf!gNX6ldR2F+UHf}2}Y&@VZrbrU6MiT_D#m=2da=)42qaC z^j(aZBQyis*1~Y?q-1JTIodKBloE>lE8B*`@CW1O==C;@SwuJYF|d!*8x*PZ>#bq> z$N+u>wGgI{DkWh0p!T;w_(?-nmJiu}QL752gmvhniYWc`pz_nI6kU6%jFpJl!0-*` zph5~a^?(Y1t{*TjM|6ZfLpPJ-^$iu;+N6=iC$yK*Y5_s|N}d2 zNBbR(Pb>LQ+|5pI`DJYcGrBHurf2q-o2L8|6E5rVJ=T4c%qSPeO@17@6_)2b<|zo1fMDFmZ3$P5QnWw z*o61M-^k_QpR9bb9&dRXUDRssl01)3%!__IP-$7d5wbEJCC0GyJb^3)*Uqto;|iXuQbUTiW!}C zPc}O~4~Cl?DaP!}!l@jsLm%;X^qQ}pv%P!6UCX9MKYz}Lo_EjcuPVkt;X)x>x?7|Ce`C?)&irA3b%&*HrG!m*-b3IQHARy!;LN^CK>se8r@j%(^Bu zgj#bnn0n%nKU9Bm6wlk8ZZ?|@wBsPThD7&ePEY-Ipfvn*P#Qi9N?Vn*QOcl%(rO!} z)oCaV_kvOcP$x=N!KMTRdOQxE%>w4;yo)kBo*6mh$IGT@L$qYbey&(HG({bFGqg)m zM^h}=@sFd4KZP}`f)4+ASnC=+`^f+CvL_Dzx1*+-Ah1Nx(cY~S!L4DXOlmD}LPVO+ zxfXIuCLs~s2r@rw<$X2Hg_TjP=;VfUuFYIo&4%a>OWLJ%WpUPKH$>oJ-Ojp_gg6ZhHgRjm6Emh6 zTw5Ux{OHwdm_T-aJeeo3to_~5F7qwCu32tCgX6$+3S#6%aOARzaz>}>uc{z2C2`!x zv1PT=yd(@nGRL-w~C}`XS38U_BRh{7qERVNpQI}QawBG%c^8lky{k+t=edS8sAMJP@nR{ z9^w|@vp@`Sjxn6diFyg|ET6y#HU8Jz>ScQQAkTyJKE=(s3{`BB(vFc{je6po6?U<0 z_usBqV^_l~5bE+a^e*>rNbUiiR2&|Q^P!^~(MHIh{=HryCI)j(2rMBmZWaeKV^aLg zIQRyNCn#A!!jB~YeH%*Xw8qy!zw$T~O0&doe`c6vWo6l|1Qe15BreXMn7Fi}$SqxN zyT&fNLH*XGLUEd=bR~U^?QT$M?U`Y^QPKYJbm-8 zcis7dcYiX3;g(kpAoe*O*&VA-f6nJ+>rvTfiJQ^UANjXv|fgCvBuPBq1!T)C5-RH`-G(n~;P9)&%XB0$C=ZV1 zv?H(^Y!O$*fFzNY=D2fvYJ8*}z+@YIZ}IiNK_>H_jdsv^4Bo26rC*pO4@Y6RQXi{~k(Dlswv;To;)E|QA+iMitG&%S=%m#PmpN%E@gG;z_dq{`vhWAvdp5t(e?n(s3;$;(;UK9f`i^k|Mj zBQHzVJ|$4QzoSpQX8Cao&$}Oq`_4!1yZpF|z9BIi7SH?i$!C2_m#=>Dr6<0@&@j6D zvw!`_SI&4uPve*B&tqIR^I4q;n96lvYM{0V>nwY`t(nc8oD}jp%Z~mg{I7#M4t?eA zDjj6$(;XA%da*_vmbK@zi`}zv(T|^R^4m}+F{TF?H?2U6o8kcXmeV9vE&%~8cveJ3-GJuyq_6$=%TO28!0V9;WeqJb14-W~>K!Y%mut68hybOMvf|sCO%MQc zXbTVcaES|j7wS8dFnz_>m1%5=&Y-Y1H#YglssRt=IkL{WF4LRt-#y*;!=oZN%=#~e z@7?jlv7(Y!TzdMK7ryUWQOO%d*Ux&x9rx+!xqtohxc}kr*wYs6v?_YvM-KVIJvV=e ziryT4aA;N6k5%s8i{E_pj}Anmof@&b9*+?T=M{V>6x77Xd%5`P5AAh;+b` zQ#y@`VlkSMiZp4V8!YzmiD1kg%smJOY`w2h*`x@$DVoKST}Lyikb6ioa|)Z^eb zm3|h)%|I|ZR40xri~)tZLQ&ieN?!J*AKzv@YxRT5s;b7Y+@>B0TVLj95Kfyo5H-z7 z11R5>8X<24SDsc?Cwuq_x=tnil6<18~D(TLOwr?Q7 zodX1wNCSm~2!6@M9Al%tiUOfQb=3r2Nq_WcVq4Rc%Qn4b!Ka|&&kd9&@$TKh1tveB zs$DoM&?O`65{xg-xiYdV*2z2JsP452jD`)Hl8)j-p$AN7wabsWOJTk2`POD@NKE04 zjR23ezTeAxO=jMkpIQ}vaH7&VjdyiawF?#z*dPCq;w{T3Td_E(Czhjxu5`L709`nG z=&G@UM{kF>X8(f4lV01L%vV?6rpvp3ekBf!`?$mv z<6Rh5$DDu3A3NfP%jm|>`_5i){NH|h8KqA=YJ2mvzAxzV-PsBEd}H}$UGBah_{f4| z@6=_Vu{>$KjnDw*0IXhSIERsnKfvkJ$Enbj1eH;6UH z#q-Z5lSR%_p~@~>ziExRHtn;LBw5_q|(=~AU>ztbK`M}QB9 z@DpDYEuh6&q-zW%6{sn(3@u+ANW+{-o3SlX<1x zkIG~gPf9N6@91T7AK0%MK8bqyHz(eKBKgLx%#0IkW_*&FVe$ip6Wi73cb2Zd{bx^J zw}rX*g`2i~;unoqQu>D1T|M#I^FD%JN_j>-g^wwDYR;h1zWAYY?YgV!*Y@m%L2)B{ zy6d>J2~QX==AFS(F;;_2>Ab%r_^4$|C-pkLxS@cc) z#EmvaMYU}3y_%}CVO{=HeNgQC-Xx!;I423XA|g_zgxQW|r&(~K-)k3veD?M~E4;NB zU$Z5SIazmQo%nH$#XSsN0l5y0NefJesG=JYO=DJHLWQ0}Jk*A>eQ1}@W6#0ol0Pe8 z9fL=qI9NIIc{Xw~`)VLrM94XU3ZJ2dJF6g2xupXv%c=m;Mpr`@Dn|&r5_)(AoAl@p zg10M%!1B^}0moht<%HNvtO!pbnGm8tY zjZ?$_>siW9U>txJcOr?%Nybc1qwI3l6sIw#G)_3HjfXX(KWhp`o6D;H^aM1*c3cBO z(mZ?i*$R9?OB)>u5K@?UOPgCpSjeR$AENh`9j(ij7s<5&rp0L4Y0%~?AZPQG=d7$2 zw8#bqBUWd46RU1fljl=}b}1`1=XyggLy~u7+z}1XL^1KC^YUpMV{Obc6wf_D-O;q8 zDZ)rt{xF7CPHemsJ}QcI zkK4mmAzEf#RBh!o%H};;kN9KHWYb#CdOS3ar{x}Cz^u)fWSXWHF#UhOsc2?X^qj+- zrVXh{vLL8YP|*xT)VU?$`ay9sq?fZyr71DGhXkaMv+@?hOF^68Bw4hf%tZzM{4|`EF0rQhuBPAd?Vf2UUmDk}3-V zM{&|3$@7FW)K;3b_JzCqJ6oKo<(HA4x@!SZF|d(8eDMx5>v4deFuz4`h7 z%PH^J|Lr$z--6RsUFCHaO^&vn(oJ9yE9|D@OWc1!S>~v{et8tM%hn#gM62GT>F#aq z3U=(ZX`ZTr$W_p8x_h|e%e^+e!!>;#Us}Y*tsnTM13#6z{cY?*fw7&T=Gy2wgsxQxVqpB89-SxP75l-)g zkh5P0gm%v8g+mTcRTsHhdnYMyvS_-{h&og}^XbcIc?p_K$Qn>LN2+4K2gZk1wi#cf-QVI-t)#UWcd|)p#-wAbOa#ocgHm z_{O|-HeSp@B3midda~xoQ8;KBBh9?$%=nOt_uKf2DJtoi%w){_y0os+QOQfR^4a71 z9KzPEhwf9=B>>)WZ1$oJ7yRwvQ@rk)R+sB!FiAhbv>1w(u`rI!eI;bM{?ki_p-3rP z>(UPMg2X4BHdi``Y8RC5p&RcAF5KGCB8ax)Ftug$phjS$df@Fa-96|)Ri3bjBj#YN zA+SGZ7E{!MI9%P3nn}(q;Gak+;cGrT&NOq41DnK*tv!l6PVQSm5ws8J3SZf}%17&p z_S0s7^veW=WfjRz7^r#AHBRHFp`O>pLJM#YgLlkUxTK8U@k+MeVlme^`FJQxoWFwE zlnhf$)2S>TUHj03Z#m+he{>WspsNqM_{Tqb3+AX^j-LC>7yk0G=Y0(W_o27nfvJ0- z4BSucO6Sa(bN;fXBoXyau@Gq+8QDFMRi{Reb>47_;ylAIK#`W+j(x5%ve1`>lUb!K z%Np7wsh*s_(g)8)FnYNPI^EDQtm4{f3(Ia1f@mRgBkylq-7piRHw_3LA`d2pBN#=! zfxYxA0%`<+04hI$+@oHqpn$AqD$a_-$o5j;RiYwTXo%l{qlX4I$mz!ok2iRL+j9k) zMK1C*OcsIxkKS$TfWzn|-`jugY1v1&HPbs;(Fp7hZ<7BNh8(cKIIq$gpNo&V=H5$w zy$pwzFD73{Nw?R%5>FOmNWV6a3yH1q;yl!Y=El}X0)4B#yS4?+Lv|!cdvnD8P4iD0r&l<v=IL+RFmsbnro zM`%dwG6Vk1`;0^8>UIpJ$7ztJw+~EvaHbwS5tW{Ig&M6D@FB0e25kMwgEhG9NS@^J zxUXtrm|HlGf*qxrFwL+SEcCHOK#(5{G4}VD*%uMPKxJ~X5N*M9R*0y&&y?d-emMHUv@{S`}QHf`iM zWbPEZ{HHtZ7lsAwil6$2JIaS$baWFtI*Xkw$wkGDPdOus%9`RI#mzjh?N=j4={7pq%^6Dn_N$+24_mwZj`Zt>&D;84F{B>-*B_4Uin-3pWD!?>KK!8*;- zR*9X<*18fbdd7^b1$-uEdQa*6Nm+~iYIzgTdaD>dA-FM3Og1~7W>tKUWs5%OvW2y` z4_Sz!zo+VCev9ye5}S6KAZH!clit8+(kL?d&#EIe$sm#1u>CcH+d|}F$8uv-Jh}aY z?{mvN>Alb9^M4~@Ut~Vgf^uMgc5XEu=7Iz+8dmH>Yg{`FbWw5Fqu+f7FF5Y2;tTiO zxjTj=RS7mhfw9vH_d`AiP8PVhwF$>TiEq8#()o5-6Z)6tFzN$;S}Nm?Wvoy&^RUGU zjE{t!Dn+z84_j?csalg8uGuNkOU4q}BuWzh`k5wK_P8AR%rC7!wTH+OcxB2y(P#V} zU36FXyEi|5@$FNihrjN}7v2BhcKMt)Kk}JR?Dx$<$@0H@!!wBWx8STE{ZC2tIg@%C z*dK|ME`MFepwB8(lX=DS%3$6wE%Rh!OZ?Lj9x(N^NWdjMhIA)+P>R=F8n7Pa^|t>$rYj+T9bbnBojkeILz$5w;%5<6Qh?NX$N z@f!(Ontpv?xe4j?TV!IO3SMhp zFpSIPjZ42VK)+4gS~B+_{pLXW{y{telq6+~ewO4hy+yAhgFXz&ute1U5+R;FB!R{f z=`ANAueXyVPEPORmw%)hSJxyTAr-PZsDz#qa{K^}Vf}?&OZ|dI0AHxR5P}ELudol` z9IKt30R}qq8!>&0Fk{oz#EvfOEnjF~X;{o6W|Hre^;1a#$kT*!mevJWv^lifVplN6 z%f-CZAw#6#ts^u}RoC5T8E>>&LH6jnttzQr_k96=7e;IIa6DsvE{x78q7_3@4BeM! z8fIdhkn37x2w`ziT|J`&GdN-^7>_C|hLn}m6>k+)CDKw(rUMt@A1rpL9(B%!rY;C3 z+WWY&EV6xC5$9kGQ+A~lr~eJ8<+wI)J9ISyqYgvqBPAJ@z_WBB294{9@L z>q7K`Dz@j-jC3Di0*O#Mr@R{33&|P%7%j}#FaqjxUpni7gN;RZkXRnby(PM_UCVo` z%99GEU4_~(!@w9Cj~3XTF};I0)-^)vx0Hu^SAjk9Lr!z+gRnP#ePPcQ&N(CiTmc_Y zk!6b$gdrY&BIduj2CSE%&FZU@j}o?^_-yz8d5(M)x)5HJM=NDGr{8&Y=|yL^-K)nCDFaDgo0htDLB4*{-qz7H`fo-Gd>p!aUMTA55@; zkC-{d!^k?uL-QY^d^7qRE)p@-_Oy}f7iw|%JliBkmAI`{B}y2wk}7cyauOg)nYve2 zi3>EV`YK)An^tF9X1A(jH&9kJhhiii(RHrAem$_NsJpKdBHQC+eCjj2M7Nr5m6I5Z!KXrNRR^F_p~0@XfF+t(p3w6cvj3)j zZbq)bB^O-?7#u9uldbf^t)Az<2h9ivfXL~f^dAP9QjV?uDmdEM3Gs88ggs=g=Gv7t;v2 zg)|LjOnkjXSi6n%aE=;mUOof}gnqLtLEO{tE&JiLa|Hb^H3OxxryKJlpE(;V=({nk zgKa7Re?gp$ar27IC$6B?BdNFz(_UaI@=<;e)ximNMTXSUQPbiV>L&Xj0Ez|yc!4ct z2lFoFeYf`qD|4vCz20?=Gi2KcznEHihF+$(LNoI$t0Mie%b9#yv5egi%giE2ri!Fc z{KQwIGC`3Wt|N-#mTgGng9DMUEPZdP)3f5r?(}Pe?3v@zdK$s9FAJ6O0MaPuNL1j? zwVgCZ@X{foVR!#S%MB$3!^NBt8igGw$v9Cr=?}cQT*J}O5H+%fZr$h&G_BPZ*TF1(&fPunmmCo(!WQO({wS?iITtZVwcH@{Vv6DI2wL-Fd|hR zlIj+Xe1%+bJ{Z_56;axaxQADeQ#k~)Vfrr^?z%Kx0Lh>p+dkLWOgAO70aPk*HK^f( zA7OkSJ(QehxTOk+>lh#`RR;68_-tIY2dgeJI>B`y zMlm1oUJRX8yx_gbj`nmCDYq5a*eS522FapTHidXiN;#uj>mc_WM5wRod1ZyRYD+~I z-B(#Zk|C3I9m^RBF73R^!B&j^nMB&HMTv3ZS|sKoCSCfy0h@eQ38gdi3rj}9TD&Hu zsRZmm2SD$3rjIHy=IP`}1c*5V2S;(ce2_d}a7Qg4F3tgE`cP>dM8H|PV}Kp>hz~cT zpp=R1Xe(_IXWC_E*p1RYlv(;HA~5B0xlI&!#GxxzQ-lwrqY+Mr9?iiPruXtdoEVZo zC504cNo%Ehkba!b7W>fC6bptxZ4Y12-|kr(hO`n4az=w zb{337?LJ&0Cao9~6P8q>f>@M3Ho#!?K=cbY6>qBmZ}UL8?mNBDZArtDQJIy1SDUC< zxr>2OM)-=z1n3n#1}$zhIRF8(LIw1d)JMp~oCH#k8rJflPcvuB>~sQR0vyUQVyp!b z2?a?|#z;tBCvSH1hmTi@t+$9+9ijI0@qvc%K+!V{yZsP_OI*jP!yFzf02l!oZH4b9 zY^}BJ`h`Ibi-tO++!ZMoB;d0}Qlvl>4b!g6H3YjMlU5%YOugeYu+|HH4D$ox8nL)W zz&A4PB7x~pSzr3*U@u$HIt97N^*u_jA{ZMF7y3kytSzMhOe_!+gDjQaiYzdxRPpQa z@Vk>DU3xLcR!*YEw-lVo|$GT#|;$ig}c#x{hZ`bKmE4>?b(=^sOaWrc+}OipFUVipBYGg5%)Mhm=V19iFI!E zZ7Z(-U+&&Utn6j0FZ4MY*q@Hw+i)4%>Z{#8?9$(ycaH`qU$b&x^nYtFM%LQd?RN+L zKi<+k_irC~gc|X1_Ao~} zxmW+12b=$~Oz4hE8)Mhjb=ZD>tUGrzwsPP*x4ylP1P?%BvIK?gPmM-iz{U+sl>3RN zm6jlDW&3wO|1)ap3tL6S_gf@p8^Pgft-A635hop)Q?`XFGn=I-P zKDTwEa{LgRPg{+-ryDAqiw&bPi;P|1f0Qs_OkG5m)~KW0KF&~EJ@jaAKfsANh0y>; zr*izl&y@;fa{T#JP-{DFv$)yJ>I&P<&0Uc!Z8^kau|;ZU3qZIUSqvZC2U#lBPv@OW zJd1aYtW%jG68Dw+x+WrN06z|$2#GKn6epm+@Q-*k!j1D>saf?}HdVRn5EbUuMy9zh zC`G z{${{2Qsbt2s{gZyS+q9ASL!6JkZ!!w>scPUkk-nIRm)V3^7B^xDa^0dXP>^HK_zwDu%$@6qnBj@=)ewdA$hiUSOVeP$ zy>k;=NTi-GXc54-LsKXj(5V!w;%0Jz$Uq_E=uQbxU^;uOICC}R%rPuqNBhGBUa3l@ zzDOJ62qiQMmkl-@A`;eOETLY&YC5hQ&|Q2{5rEC+jV%|C(ndB-K9uTZqGHf_!cJ;w7{O#Tp;emg@+Uyo9R;n zA}_}3vkP@;Cfi>d%ij%-YcQy8AFv5iT=uOR=84@g!xuSL8Q_K1nP7ob%cY*;zzqu% zuqyy;s}afDrm^T4C#U>unhGPp4SKsUg3a+So+D;~bZZ%iObin5CoP*>C2{1(W^*$$ zS~Fp)G-KdU5R?2?QSncASfVEUD%{MP5jCl<7Rp!eY?Vm*B!pdbACIBWA$9LYZdPD# zR-KN}30&2(V2Ifc>2=S$QQ&)4jTej8s0|iE>|6S!4~_5_>jf}90#>|yIt)beYzz^R z%NCcgDl{S#b$OrE8EL-dAPX3t0x zPw)HMq2ig@Dq`~J{Bv*}w~C&uo>gmK?R_Ls3LDq>AeeVqpOqdA>CBK z5@2%yOZ?!*iH6-@>YNs^gt#pfro^{qDl1NjYoJuV+2E?>Rv}C>-&*IUlpCVXD-kY=`I&f6cUHj0Gp+Y{dWpm;#T~QKZ;fY{{mrC|4g+tMK(xIY6aI` zPJ7(65C_pslOQB@FGvn-QCS6*iU}cF1um3|)7u6$H%gyY6~JB7Rw)23n$-S01d3RM zK-=^Ykx#f9hxu>Hsp`RL&-02{9e{OohLRO&x-AL<91?02hFKM$oqA<@OiN$Nqwy@7 zsVp%Giy68VX6CahR?f(jewD}2DRd)kEE=C)Exzc)iMFd@_+x-m{ylmc+i@$oR59zN zlx{a-w>K*AE73x%289&hy$ugXQ9upcz=`xWbk#7IW$JT8%sC6;k_S!HB@C1V+ z0n>cIQUt6rDTRCo4$AOM$~w=l^}zH6u}N~-&L@v8h8%3X0L7Mx)^$jOux>=wIHN85 zuc>VcVY>=G&mx@=p&rmEQ@}>$Dgmz4ZPlO!p@nOHj3+ND<%s1m%pq{(iBvEtuZR$+ z=o16U^JuNm|5w4?<+A4x`wuT;_7b2pIj z1)nxyJO|p+M2d!=3vmJ0?2l5Hk<|^Aq}0G#x|o)Yy*}3CW(+Mx#e)CC+S>=$b>{bd z2LK7afRZ4IyV9E8?g2blkXnEONl`0tmm&{<3lb9E1b~#Z8_)Fx?ge>?i+jO)FGx@; zue4s--lkK}v~@DcPSR+%Y22}`#EsL&({#p4nr5~WJF#7_>uEX@XOgyw{fSn zx1aCtd7g95y||RLo~)L*=REH(zxUtod5&%mv0XaMK17%uvv9|0hGhsZF`qdd{$Tjq ze0U7vqJ2Wz7bFcLF&t*iGRz*S zwJ4e5Dd`(QUZ(BjpL6N!?^;*~?mzhehcymYok2sJPKnLp6pN>~o@;{rqPQ zB9U`^!-kU_*F^z?$-juUP3ioUV*Lh_|0%+utX2k-zaMgl$LIC)WNn~aVX9mip9 z@zBHnl#k1pBzqi{+WC*UM)<3`-s}D8@ArLu^wH_JfAS_(II73DT5LvqWGfvz=aJ|V z(x80=NTPV?l=LJUH^fVl`9GB87#~ZZ5!1AIWW`Rg^5GZ8$|1Cyj8Pf(5g+bqk~*DL zBS!}vi~%40lC!{CgR0Gy(Z4u)~@O;w_Ff+W=DuhFN z_**CS!JsJl+K&<7r2crZbB}L3rujDp6mDlnuYo-~b$!@zW_Cz*R16d}ilr@!^yNRW>r$gL>4{bzA!M`t(vr2yY%9YNTb zU^K|M`){_j_GAC-AMgDkp=f{OKmPoC-}vfD1)cR({@@ROcXmdPrw4BS52HIfdi?zF z48HqE<-e%MH~&;&X@CF9do-7|_1ka$YJ2yY|ChM*fAe$SJO9|PJfWhuhyTML`nR8* z(&Hz-{(FD=oqzV49{-bf>;L9oe)cEy_@~J)pZagU^$R?{_iZE+{d;fp(0ecuyIPp# zg_Lg-k;kO0w{O#BAA-tzn#OzI(%)~!M-+4cV0aOUTUG}CGph7u_lXFM2C`QO0QX6; zjsxEgb%>o;??y?nTpNjo^eK2(lt2NZ9np{>>YWj?XFUYS{~R;C;7R!(DnLdiMQWyZ zhgB&j{Qb|2187nAChR$2`=vkmSKqs$=o9zKXJx+mL6lh}qjxehAAxTskEgTr50Nmd z?>%J2G=W8R;^HAscXg#Vtjj4N7d$E=J9m=3GMzq)TPVvYF6{klHo)Ced{zY=+dKco8J?CT7! z5HUymIm{L+uuqbYbXo3x<}TaBoiU+u_%;lBa`LP1UVcU1IMirSV@TbLss6p2U#nKf0Vj~$~CO@xOFpKdT65V&A%pn4Ay)AM07fud6CH@>Soxb5e zd=e!++SW8q4gG{c-d7cdl)o5;FeL4_akf-pilPz$gwf$N;d?WH@bKT%Wju0|Bv(9vc3olg_XDw)ffP-N!!u5l@uaX-1DG zMV;sNj#liQQ<`@~iwX;1(ei;{1dy2hn^1}gp&P}A<&Anerj;)Ee$2)OFcfufAF&?JldAX%Ul-z6eMr(zk7!s%EU zi|so!^s7%i=_Qa{G*Bv&K7Kd0}EJkfvE{Wrk++o7pG z4)P!2voz;t{+SKdQi=Fo;nO${&v-t*`DV9R4qf zIX%J$$o+gwv^|o%J@S~wHbGy=CC9Lqh^o*9-#^w2-*9R&&YsqgpUsZ5BwyMt~Sa4{%;tX=rz=jxrm4^ z=qjtIS<%fWl4r1;8ZkNM$I16nG|pq`I0>ARg1|TxgRUjjcQ-hDuJ9C~OT&VO=*Su1 zBB3xo$pAC^W&?9+M;HTT^`a3LK~~+Nk;lU#^8Jq`MWDxzZV5ccpB$ycbv_Wq7ahKcq(B>5^5b?*tdtHu*{Db=3Gmr0*^U0r-53bF zAvGwQ;jsfVv;eaF4ErRfYJ_rtdoO*&KHHSyV>X@RVLHc|j+Ta{U|}58+cZWfVlzm% zN&G2xQ(OGQocU(|1O$AS15tHu{*e<_lO-hzExE)uM*r4du@4(iqHjAniok2F)3o4+ z8)yVIg-0HVAM=K4w{?$cVgj{DU)Lh`mwdJk{y?O%iT;I0^pz355kPD@UqAR|iv?CA zk8r;VSi*GmRZ}f7M*0)%&G*0mmAj+dqu{m)3ZdP2Ecw6AjC?YFV#Get?Z{t>vp%>l zyvKg3Yj^4Nh`xwAz~%K!^c1uE-DvyKkwZ`U{|!HNY;bsZ_^Cm?_a7d3>Z#*T^*!~} zA&cQUBDwz2Bg0P(Jw+K7kgJmzL!V58A(Fw@0%lblJbmCLt1uN)@r^Aa{cq+VDrB4o_ z&v5%dauj#vaaN5}q(cO0O1{@Hxu5t6h92J?{yQh3e&pkkdvZnBZ-O!Rn8TfsPbU2% zj|r7Rh2j4yEenl2P79)002}Lg{5t(;b6sIO(h{T0#83YC=#%U_*sbjnfP!hma)~JA z|5i%!Z_kiLIu!M>Q$uViqZ|IO>1-%|iaA8r?>@rkc?<{ufv4F0_(}An__%rfo*3ay z7CMK*9cK!TKRQ3MNdGKq+Jk6lOWp7tCH{LHps+OwyLjBjMN^;S%);Z$fR&98KYm$6 z2<$(q9fHw{GYYP#91VeE5xfu^K@dPachG=g$bmJWTRUO`U~z>H)oJuNESYT*njS~R zR2Fa0z^n~+uCoFh=J=2ZG@Qf{RZ;3b){76s%K7`1uCq4C zWN-$tv3{7fGaVu>A&fGpU;E3y{QLSYo5^eVY-*!WfPOOE3cTV2dIz)vCQZ|pS$5zo z{fL2wUAr=%AY~8zLnPO$5BrZ+k8MBtM8uaGj}JjN51$x1!PAkWAe!g!3S(lfER$q- zo*om(9Lzl5C*zwGU#Ub9@=aRr!o#zsqKDQx=d;q@67Hkf*Nvw_Xd4i24oVsVvTaAV;n|`#yz5?7pv|uy(Iq|s<-ZLhSJ>NWM(~sRW zQT)(1Mo?@Fefx$k_O8uc%gzxOO&__5*dI*~sFpK1_YM6A77Jj0+5W3!qSwANybff^ z#OI8^ejsEXe`j=H`uJCW{O8gp1ulQBPwft*jSgrA@xafG^k>sxz2q3=%e<*$P*5pb zA$1S?Db$z(a{oL1PWvL3_=7`o)D76jn$X4s?gP4==N*3eGf!ZGsbta;=?#sIRNU-}*nKoW^%CnkE0y&-5i<|5GGG{Pc0(#;HW>;oDIYf$l?rX?c)4@{Th&=7#Oy zNswE{gg#y;?x1dqY`!;|+B%{QhIB%_ZUS>c9~!ql_Z~O7t?ggvD_;^p(s#uNsU*^g zPT>r|;>>Exol(iBw?{vz%Aw_7;${oJupNr&0}LmSI+OSM6KF3Chtn9trUB}PlThn> z$!7W-MO)^2`30>s-U9pfk5mfyI!4`J`IgyhD!=~g$+z?K0cw~pJ;)CJNsK4hKjLAh zU-6?PsOhJT`G0!()QG-WK&#w+79W#Y`RMy2r>40510M)gOO}yg}cDJ_8?$$j*eqpxd-gQbw!~hCVtd_p_CkQiSvZn7b{A zk8*BBtEk%okyUh9$%Gc&f5HuecamduC_B9HspR*gxsj)tiOkAWlVE*}=^SS|%tRJ( z=_m#C0XR7;Xk(3!^W_Y9$MJUZb_)?u9~MJ*WMI@6VIH6am-UH+qB`7-AE{{tS#&xW zG^UZY8XuK##OK0Pn)z_TC!NS~OaPjQZpb$|=4tU^F1tfJ;S-ZcPf7n?{3x)h&j~7Q z*tn=RL!+l%q%4(5jxmDdIP0N~Aq-+&j2BD1EMpRxVS-1r>`1q2%hu-FscnA$w`h)K z<69(JAE3ZD2wT&F8a%%HW659N5V%}Fg(#i8^PLFaVRCF|^bw7fPa>%60c-=uY9dQV zfGVvPohqF{ka!eT)D-UHZV4Gw9r^7DH6AG-$+CKn#e)RYM@;Wgs0BpN8ym0AjDXl~ zbFN9QT$Ue=Di&o1G+fg4dslq@?}djyzQP0_OV1zkYI4}UQPOyPZ2r{9 zJ3v-+kYtU4$wo$qcoZeevV(#eF3TDD?@l)JbI3mZ^S7V+J^Bq8|Hu?x2to!C1 z8elC%B(%TBfqI}~0OZkUV~_6|JPradKqM(Z1rRx~OEKN@2%do!M^fN3A*^^e`A71G z(Z(Y{t*%T2D51bYBwf9#i4K7sl6ccXe249!Fzlv19Q{H`E1QCGA2xiugS*6Y*y zQWp0F=PoeInmC?vNu9aUKE30_b|=KfVNPOx$+0FBLfYD~c=(l5qkIm(E4G>7wb*47}5Vh zKjAbIU)aV45yM3gJU{w1BGu zJD4B6vLWi1vFQioIc^=g)p5ih5+7D&bP%xYm?EuE@8hqMEs(~@Itd{Jg<=%>#R#hg zztPSQU3Zg0Mr8D!-5i%;lkqPx8CD?SqTPg>M4!kMGl3BuNwMc#uq(soA=!8?b&wQ@*kTCv7;lf= z>A)%384RaH=n4!!TDS|;oA76ReRNRr)rZ_6awOGKj=8`;0xO+t6-86rV-#ewC@RHA z@7k_Hc+~+^z z2_URm3J|h`9uYuDLUk8O9v}LglrltRF)^oE_S3pp9x51WpZ**j{;iW}nEtf(pYIE9 z*!LibhfppQ3~(s4YZODjEvDrXWnB zNpbzKhC08^U9aIl;~)^sMaV3nj-?^rQw4^jgTImnRh2c>iElf6jcOQkOv7T`q~Ybx zLo%$+YKKrPsKmTAX8x1DfvoYvJoCd1B}1Pe6}d=(QZk`Pyx_~Y`j#e|r936fjJcuT z567c?4KytjaVBqQL|Oh~lffwYS%Q0?ijqJ2O~Ud2sU(o(7m51)-=E}Z=x6$AGr=?3 ze>IMnGPaWl%HMx=_ycaB_%SBUFi3spZDM$Tl{htbFCJl|cBK?Kd|#4-z=C-7I(RSn zKyOjfkFkMzSIPch;F=zPX}~Vmw{oFYzrCHfm;9d93T=dJ97nF1cMcKV^8G8_oeo%q zC+;QR>sdW*J!|jKW88*8e8;D3NiAr=tRi-GTHnygY~iixX!swT`~jkSbzWa)gkI6T zN1`i4CA5cLHPlG{_|NN0*l3_BPTd)a`me_QpaUzpsIv;g|2=>y${!7nAp2_EX<$3` z4K9H2zdI5FqH?ZB836zm!XVOss7~7!9sg0EtY?4ew@lj^aGgSJhzdYcoF9Y`b~) zHUpxi$c>8L(oun9TvL)CRp0%)rbTO9M09FgY@Cft1{gOMo)kT4tuii!T-lJ+H%@Y< z6(0dVj$m!GK1ceKU$k+We+{lk*1)~?DDF$YAW#kF1j)4ZU{s1UU=l7)fggNdZZr@P zHyT?dwX5MpS_tczWl8>uTa+OL{dnj$N?P)r-*(#|5M)%0d4ymYS+Q6#%#FjNhS5Bo z`SB%jytD3c|0@`zs3khb12{I~!n$blX;U+KI5BD(1y4GuklR*_qJn=SJvl5s zkes|@baq&Qud-r^-`kj0RH590Zw~A04PChFTyLW3e+E(Z)S%f4dFNrM!Fj^Te zD9gv2uAC2I5x}Bs2o^rYF81Anf%5yAYp2>e0qs^ZEF1?WQM%)P#y&XO$4Da9uYbhC z#!1%nq{PVH_vw2a;RjQOM~|V5!c%mXeSnd%(8t^<9#Z)ZCjdjhA^?6Q1#mGtk7eb8+>!c&U&X68>( zi;)W%kwQ?wnV%tPe;zf>+;4=%Cz)HCS8AV66{m4EAq{)zrEGVg7WCn8Xbl%Ry>=ue>aEYciq{O^5Nb!qmG z?LnaT|9$t!^xL1O?LXq-o%dwYKBQNQqG+GE!}+b`cYpr7KYzHT0lfP=$i8~`?eF@B zcj6)3A*Mwmf*reypmTWfk)z3PSP!FpboL$hh~$C<8uu@f1YuE1At2-mbvNN86O%ibd1qK5DpUswD<@vdZy*4ris};{+hKGM}jq; zjn!*kdTfE4o~STu&!K!-rg?OWuPOZ(9x}DGjKEGol4k70Xk7BY(1T3M+E&M9eg%j| z;Et02mInu(diz%%ytMO901)2?&`l0-SeN{olI$6Z%Y2epHbFy~!Q?de86AGHr*4be0l2g980FZu% zAN^NZCmWs41pwuKTihiXctAC1==o4Ur+zDP5TQo<#YU3;X(1kX4q zr->2#_~DDGl}yItel63TT7sDTXX2MkC=kfoQETq|#fof!sat~Fjb$D!n_$c&N&`6pAe0|$r%Q$mH8 zOH4S+O^;siA~guI01p`wyEq`i-bfCm6BD~k4Am|uc#vsI?1GRWb|r*_CMQIBKf|ER z8s|Ty^;zC}NfEH!KH=pL$9=>T>QrkGBXr8E|7s9T5M$%0J!)4fDoqgTWI%OnBN{-) z0RBwIK#Y-$!NLISPFB(>OcOOwzyzqDz9%*=nL*2UNCL$u+5~5iB{RYCIb&-WqKmLj zP_~cR_KmRa%unq?8*I{U?gVOS9#|wPLhDF?{vQt`!3$>7N;84k!re+)2a%|W>&U8i2; zpd3wv0)ldLp%|3I&bpzToz~FSz3Jvv|C*+SnG!N z!-94U+Vs^P?Khkgm=m3Aqd@`iVBXgY%n3tA_8Pc~WT=baq_o)mb_V8xb^~)Pl^K|u zY5g0ZlPSbiSgq;Y~aA$Qf&w_tZAbtN)5jhcBj9Icy_`^Y6NpZf#Ej4PUw>M z=(d`z^w2c~bRBZ)ZNDtccnmyjaqic{mObTQ3rJ)L4}mSGIei#x2{D0}47M-`cEc7E z^svQ~`~^V}RaFOD4^dkMV5!m?JCY^(nUbtPK%Cmj92H(~AZ5sK0&p|6)g)*s$R<;Z zK1f>9LgNpExyXPu^xH=|gZ>p*zYj|mC&J3v?{xp!OW7#HNFhqJ)OGz^Kd&eAqw$VOl6_fN~_N&%47}5{|O) z{ge@Edfo)M2xkMt$o?)!#0c+!mTFJCy9C_bP}U3#+LiJ+OE;twy?}yv^PGWF` z-H5o8VIZZnYZ61hlNeYlky6|HQ8S-GN(l*8*b)+hC@7?qQcwp;46Nhu=wZQt$yG=U z#ua*yQW}%OZ=}?QkRzpRoJc7v0x3NLh7bMBi7u=LUSX_}76n<3ALlz3>L8cfEi3GV zEsKn zSsgI)Xpq_qj*YY`Y>%e2&TO4VhQ=Amk>-(=QT{NNNpHh)vXJLi)M8aX3|Y}vQe>sH zi9;qqf~=w_k|TAYs@8(Jh~ybkJDdes-5P0sEyFHYH)KU}^9Cd?7*e2zD2w}#t#WdL zlNUdfg4^O`s6F6!{@NphT03X;02u6n3tv23=&CTjf`ztH{+k0-p7Sl9 z=L+^H&`st0jmkUMG<$1Kvo0!cDCej=fb|(DOfMqe=ZHKM%n^Ao#^`8D>Gx=Wim4uaTydd7jdQF_PpCtPwg z+D!V;&`~=KNe;nAHY{stNR9t zan@5fv42?Bi6Y7aGp&v$t;4B4(?g`9= z=O{QE(|@N&$9xrBAV*8nA$IgSDA zRCEXTpNhcaqe31}A!u;;*G~@p+(0gRBN-Ns%1=$<;YEUBKzHo(Lf8Q_jItAQFqxbS zX;P5xPy#e>n};G#Z@NhhGm7r$qQH(zYLHl6Yy{nK-&WQUTZ_F_G?9CShdT zcO~aaBd`_SW)+F=W;7&jLqmZ{*ASIu1{L{4(9`NGsK%`(35G8@x*?0MKrv7YVY~*A z5*OD*XCd}d%iPZzP!j-km*z;$Vf7@YD!y2|*Pphd!9b)KkE1BT7mlUD1oJQe=!M%t zN&SCwXfRJ)tqIY@tY?$(P4EMg8I1z035x4e8I{rkndglxVIxJ*so7yC)w7_+oDN9! z11XLp)l)_S7fa!r=tgLSGRlCSptIc1cw;1(fX-}1hrs30*(=W}I@`NP=Ps#UtDB@! zy$D-Q5Mxa}@q~?%1wW%HM`|*u9-`o-dWMyk%8V%3r7;g93O>%lRB-&to+x~T3hpM) zY8&onM8U1mL89O`i|rC1!sUC5@e<4Oh8VFttwy#6=|+D{G2U8~yzlu|j}{e@;TKjy zfWelAnFk_Xdz)oCfT(j{GBN()Y$Ay92bn~-82|C1%Eb5qFUIFqF3i)3@fpA{w*vrU zV*JMen7kMtxX8n8Ha`d#=`nH;&50uT1x*3=+ZK#xnZdh16XT)uU{JTg+qrde(KLNP zGQi?}8Ye^vgky|?L=)p7TdA!kvv>Ef)mT-c@|?Xpv(*d;34##+P+JY;1dtasm)RTY z+G(p1K6_gYkD1xK(^ex(Znv$5X0g>kF2&TrDK|aM8InRfJH6@C8L*F~oN(Vx-2uiD22;S7`*RgJf3Lf=aA zCHRb&61n=7#<{N5T2Pxm^)AN;hgS53)~nF;4DT?TT@8v|(BL;laLHNJl5fyAM3dGu4GK;U zeM3T6XM=w-aHP+jk@F|zT*RefSlucRhWK^F5G=XVQ{P~MTw--t-%bD8A7i-w6Z8M{ zPc!&v`inO1f#e->-q$U>q-jC)KbAF`{+gmX_}@`?Cs5y8ZpcwMG55|#*W} z@`k3hH0eF#M{bT1&%*+}A0K|pNe%t)uGpgYt=fU~Y#gD*L+_3-2KzL{K=P+Q-G}d* zh4M)nsHPDgUg4-6GPj}>`0g4Xn6g4nI)_JU@fn93{0GsyI>Fwbyo0#DJ^ULd;d#m* z9R5unb&(j0!EZF$Zz~e94){r~DGhfrwO|A5jtwC6%d%;8 z$oP63k;g`cSswjKMv$&`woY>T9&(YfeW9#AM@83scq-;I)5_~UT)P(?Y(AY^peV|&R0}#^LD9zt73IxOK7!s+G}l!T7xQ5-spU9 z-K|yIl?$DTwdzi_omMGrZdO|9+eWRiF;}gZY7D69QYS`tDmxqDjZP}{%|^Lezm-;M z>{jY?wNjR_SKjJ)-)&ZQOU+70TI)f5vm>EgYM0g@>{ildo0ZmHtv%ByXGx{K_U%Sf zW7869#?{75X*ayIm`Sx!53lzabnbO)v)-{f={QMu zT8(;<QMz0ccx*4;c+jr2 za;2^(H|LkG#hbO#UaJx}>hxM~)F(@~ZZ#{nROjwqg{C#gMzh4ze4YK$m8wGgJ_GK>aDsx z+eY1LHuiRlrDn7Az;Cv{NbG-D|WfTO3Fx)ZdaOhwyhCwHgt)_Ro5oJ5UEM5Z@00Ga(cIP4eR}iOy?Lv#Kh0LT$Ju6M*FCj2 zY7=p_ydSMr1X=Su?UeST#mdeiKLGmK3;UlNJNrD(Q|I@i$4@e+&B1ViIiyR^BT<=tmS6lvWq>1WkQ$tq9tTT8U7r+P)r#;v{0 z+wr|BFPo*hFlh(kw)FrUjW;Tr2I$pxTx|jCR%*tTDwWHmY&L3pJ6ivc>)W`ovQ}7K z4~Z+y$~_DVE35O1$?6;ND}^^E;(Jj%R;%qrW1C}p(Oims0@rxA-P|ed3hXYEId=A$ zH!tzKZ2UrK=~1^ScEJ1Dv*cFm_n=YKEs<8=6Tv1c%JBMDrR_3FJzp=!fKvq++XVI- zX~tZ$bZe(lhqysEh4?8EfPy!gZAb(dqaoDOI$Kb*TD8@VYn9R#E3#K_8$fPUZ{>@5 z?p`|*c`df9I~7(p5(%u`ZnWAF zO+pZ8c1CZ0d&{6i*n7v$0i*__X!_JvT-j$yqFr$yemx~AvZY0>725?~y2mgV_Xb4O zZ1vr%nBqpMRdH{C=3dP|udF857L(YBnakbP=9SztQbKGU-7MAiDhukeldeG6+YxB6 zR%x&6aZSqyG}ueBw_k;5K?a*`@hb=Bkjg!_nf<7hsIjF#3;HvoKdrmXu-IDiX!OrL zyRlX0!6;|74vxC#4TzAv_{H>ZP?LF=?sm+-AOy5a)SP8!>f+{zNCM2wO08y(by!dt z5UBwwz|Ll)+1%T0N7L2zQll+&=kE$gVSpJ0U@f{=$X8Jq<6r%nj*i_QJ)290dQ{+J z0Csf0R4a;_Zr-kJZtp@~T~h9KCd=7hE8PQaRHzisTra@QfK6CnNl9a^<)wILd1-E8 zeg^*Mcxt%;au^jVwV_L;`hz^#5aGYEH2>-icwg2~9dRWzTFO1o>@{1B=5_T&={9H` zjWJu0{s&%8uuD*R&l3yR#QfU&{1QV?*}n&n+sqpHFKxDK4~(alnz!~uRT##O{U$5( zF$gA!<9@Y$J4W0w0SofwB*n7GIbwt=br)W`v9QpqTPbS)ju0SF z9|%27YOj<%){K`|XA7(G^cyh*ekbmMI({ot4v|)F)vLR^G-BHTXAIjZo`4|S*cEdr zT1LBB-E2oo>_~m9rpNu+YKu*+BYbPi+(S-0Y;4?7mYax^4|7Sy-1A2Mr3kY^j|dgR z+uGiSORj0G(U$!!Z`hCIF~qTn^d-J>e!^fJcG=q7^&ESP8HwS-#v(T!hL4CJF?jtf zw4-Z=2bE?q$EaFSsdm5gpp~&e*hMRXfFPH$;z&dY&W2&A4EMoh)>$G_OXP-zi#%y) zd;Fm6-EKDO4W5nlNxUl6B<(zKtgU}z;Nfi`;sO$t;vNf*l2a*z!!_`LJ*c+q ze-XbyfRg$Uw*q&JC*uy{Y%(2tfL57Rfdf?#gnqzU;y8%!pisS~i6cLJoX&10GdFH5 zet1z}xvuf;uL2Z}9edu|tJyCLY`@O96745uWQkfbgOt$O^JoN}+=Nq8rRYJr6-l6- zUz#nvUYHeq^VB*pG>>k~<;Kdav?#=aSx72R*{&LA73Fhi;@VtVUQgTochczHJ$UO@ z6-03`DV_BoVPK^5OVWrY{D>zEkv@9NGq`;!Dc#i6MY;>>MY_p|78t@{zR4%Q{o>Q+R zAGM-efH=U+q(Wr}0uXDNRmRFrq;k3*Z=qDPRK^}6?ox|yCJQ$TYfi6t*a)>4tthk7 z&{Vd7E)#oG`vDdc@%N$xOYLhbT4?f3Q+U@JzEjM&dP>ywUK=y{*>e z?R)%n$)*D45_g<&Nef}J^yRZ>&w5iEsLKFDzJVqJ*h35W24vf)mb*)33x%fLf`3)Y z*-}O?uSs@u;^yrJs4*=wkcqAg+gTBuMNgs9WvIkZoGW7>lCptK1OOE9 zK%!(Wa0VL>e}P@}DAx(7C{yujVg1JHlI)X#PTpfdj8oEXS9!mNcTmniOpVdaTXM-{ zc$RDei&GCV;!?4My$mG#>>1AL|?DXuU}uju^z83zcxP`YS3^Fo9>mc zDZ|7?$-I~=7MLZ=1bd6sqeN?OLk3Mf=33~cJQ`ujNz4#y6{NKy|Cr~1zS?L9;jLVO z!P029a3WWli|~EaOmk9A0jHZe*orL@tKE&S{=t>~=%ov^>&3dq{zUU@U#=hA{8gF1k~yNmqdEu<|T| zJ&0In>~rgD7ac(RY2e22Pr;Px*4vGWHin~H^0V>YVRxqT_}Jaz*xm8dW34mf#y8ePKyXMD zuEE9gl0PLP;l=Fg@=APjzVMppsuQtPupD7xVfdzG(h60zUlh>ce>(giTFIhjDF z>Xgx|p_C}Nb;Jjw-9MOYKoJ20of->8yA>S2grXAU9uzbDn4ICn%0NtHX?OfbA{d;! z+1OF_gLB9@GTDp=rObnIYGR0;eq_RZ$|@-B%OUlYuz2NjO7Y7O*&s_n)xBaRn=sG_ zb4zO*GfGW3hEQ3iDa~S0gfmOwl0y_mlLwX19s8Z;r%>mdB^lVIC1iQVj-9F0!J`w4 zjUzw+I>rdc)=V}7S3M!g@((oO2auMSS-uIqFzi4vQJYTu)KlKv;2}vQXH9v@`g$^R z9Yl>2d%v-U+o!O&5>HRAuNDgN-14f5O-{z^tMk`{cD(U)eSOllpSPE;#L3dE(#PHu z5y%nO47`Bs65br+m0|*|$m_{Y@86TJ6reP#W6CINu4EuyCKg%UkmA^^C3!#O#v~ zb)?pyEW|0>Hia3onKp|;znzlIj#h)cqa!inM<(5~UJkDBqhLae*#;|a#wR(7>)Q;X zE7R}4nPOv63JKU&ZSiH#3G5Ajg`91U+&ybl9z&*+tZ;5uO13k`y`1Q6wOnySSVo88 z<{l#uoxpyNj~D3%#Ilk>>ItOMCmMo79E=op|R3=r8!q`F!0%=H>=Ify&7PePTD0qz0=^! zZI56>&S=wQt&Hz9uMt^#4^o`TbXj}?wqX2J=H{!Ryo)^LiuGuujLTaZOSu9n!2?^E zdUs0JB@6{n7<&_aj^9QL(`0r3>?U&HrTFw%`3$L&`dqeWWj2wC*oaFiUcQ<+8mJ=Y zpa`n!NB5f%?#p%)28im@j5hTL9;6>_B4R+bh&x{RoTlp?2Z!RD!HI#SrwM zmnfxhDRl&o)Q2%JvkZ=&9Tk?FC6OlCsL`=?Vvew~w@dquMlvo>HcTmscWdlkrRg&R z39-(Q24yz#SyDr5jayirTxPl2+K%U+UG}g0*D7r}eGB3+=zlf$Ks*Mo%^hNoqMdF1 zC2FJ6#F4JQUaOL+ptwWjEXlu_r=l6H%46i*ztP;bd0bT#AKRq4QF#g8Ku4Fxuy1(} zxmHO&8L3&J@cvv?id=Nl{}xd7Rtf-FF!iS%Z7>&LgB2jbIaM~oe?ry$wc9(>1oBjQ z_GCo@PNp-P*x@Z0kz!@moxv4jFC)TM<*oE08};_>q7zbsC%wd2Tj+)uhF>4A3NB9@+^TF=P7wA{D5l)7 zb2~V-G5q6Umx1wPj>vgCe4URqAYWrcVKP~$ON8&0{bBE-2jD|AgRh{e7=UHKr*aoh zSFJ{bLsY1>Duuhz*xiVLHNe2)q-OVa@$WTuqs&!_7rI7FA4XuTBQDr1m-O=9&TjPV zUaR?RTMrm*>_OliVak_x+#*R>1X7Y)x7ON~T_CAe;b&*BPH>OG)eU>v(d!N-6Q8=s zuSXc-0&(cFvBj}nlV&gRtMG&9T7y48jQ$|W$x)7F$Ay!{$Tpakg0UIdV;>6LXxn-L zR76iUTwuhP^fX)9Y-&dKGPgayWe==col<7Cmp;5~K@t3MX3Npjj#Mi4qTV>;?6{|| zoSV3E{!A{c!Ie5QyBs_fYXw=$ROfPKf3vn%u9VNZ_fE~cXK%gq@(Ex2Ht`@@429L~ z6G_={8jpW=>A7TkTt+@vX;t>h4V*YYh^)rzjcDPSc zt*@Cq0eIKWnBNcb=?qVC3*(IFj~fOA$wE<-kRwuQnnF>qTmfeJlIBP@%3E}lf!cvu zdwEI`M=@kaDli6O#fjx?OcA!BEP9X4uLXfvkmI9gJCetKWF4nvkWhoC0uw$lr7T>| zG!c!DwZ>EPYASw5(Aj!<&c|d0J9H35bH2AgL5(`ld@jrAxu>P6uP&5#YBdZuCjQ2x z8fS`-{BfX8W{{QzO*F#OZD!^gLavq}qi1bj);jjAMq zI%3BhqxH-U8CBmj$tzmHy|IT4P+$@^+A(*RlJhq?$|_sumc(!6d*?;8nk-!_IG*SU z`pRlyrZ9`X{_Gr~v{<6i+*8N2B3;wyiHsd)1}2-A>9?M>1(8>yL^&zS+iL@`2=nyS zM^Ir{6Ue8@PAp4bt2aAqE1u4~88Xr***_#Y^)VNAC#18;O@|XuRU*^OgH*CWMBX$< zvA=GeIslc}_-tV=xv{V=^I9oBP*4FqzWo^|`??UHyuqedermszqbzjis;;dsuj147 zwFn=vB31u;)Bo1$gd-xlRO?X*xg=svJA@y~5oCh5+0aU{ycgKw>d^#7acENn-s|V4 z`w>T$fLYUT!T-vo6iI}S_C@|2AFwAUciAIio&Dalzb42^%r%LW8f)mi)0Ou93iWSS z%TRMhSgJ>L{wc<24J3+gDzIsuZf0w14|a@edH&RcWf29n*}Q4N(1_1F_~|P9aC(W& zOZ=ciw|1i4ohSzZhQrab<;uNh_dqK=@KI7O&+qI+#4J{KqMH4cn?erQV(az}lyOo& ztI7OY!Be~g&e^;;H)$~lrJZO+u?YMM7xcS=jL0DOYOn^*6hzeqv2LP*waN_M!DgeT z2-0myWHdpvAPK~q)}lMjI!}$ZVw?!3EDBmV_qjbvyhjh|b)H1QGTkc`L zW$)tD%T0S!RN1`6Hb-<+1M1L(iY=mc6WZMNxr%6Yk$YXWC*3;=kwQx&osn@*H{DMvyMRT$!G^%RwIPRT9x>#7JmuljyCv5UaP7yD#WYaXr;BuUz?)E zW8juYr*Yv=cG{s>tJH6i0zzN}4=*qa1?*cyGAz?d+%HoML7-jS-D}+j3$?GVDjkrc+SKts0nX8a-z+W9IknK-rdY~fSq@X9g>6T`n8{U>{f(}qu$<%wEm4PK%%Ul{Q`fSjtEwYnfr-JssJ^%qRDywi11Z;=O2Pg zqyT)y_(W6Z&R=-$;`5(>;lUVa0oBQ5XvAYU-wim1w@Tt{?Cm`&d-oB5=qoGo8WQ ztA#ltWR_-#QSw-6=5UFX=2G`D-Oh&|rA7(Y5)AC7g38qih~|!RIhtXox}sg7H&F7L z{YchwPuPvRmN_CC*)2F+6cYon6=p*AZ{DCB7RBdbVw`oQK+t;-j0l8w2lXNsQA7MP z43mtT{+Dj{cG(sNb;JGM^uNKbVVPS91$IafBWDw}&nmE#HC?*jVuR`vYJQ1J=Pi5Uqdb{+CWen6*@# zCW_(?q_X0Vd(HSaO!4AMXeDh7H})tY*FVnGn&HuCvgJbgDXkh@e=SIO>)?u$~or2nb~_`-qt`8?LMD z&i+cNeOnw8p$GPuzPUAU%rp`WvMtrdxWcRM_on|X?ZC_T5bFZ%vQn9O1m14}^c}FC z1@v0!%t~OdZ!X!W*6dWJJ?}2snKZW^{|)|<<%IaRCf z$P$8V9VHutBHB|8X0MW*5a*zsl40G2}WQ}H)Xwi4g?F~ z`YcqM-=hY5F8gAo{85!K;qD@3;bzjQw8@tYuQ0Lsm@h*tz}!tIusoy0a67jtSR`7e zn)y;4@r!J}vwpZ1))6E-PRdAh#Gzwyy05P?Tb27B6woUV7J04fn1RRAUPYZ1KJVs) zlz8>V*&`bjM=D&ri-=IqI?71BjNZBtjXMS=)pMMQ^$elz*ed2C$Dw)2{TAlDqS1J> zB6CXFH6{WUjGV^Jb&NOL_RRMh#_@5g1##${U+%q@gI-BNu~0k)1wuS(RALM|EQ$?1 z&QjS_i*hCvc9Isp=|e@GbIF=DiwvS`(Meg()##u1+FKkZ@0KGu4YqA$aHi4Nu2!T! zL#OP~ECmPzQU_7gZ$aBoXWf&04erTpiF@{nqPK8*Ce zG?O00xnTtYi49JQpe~g+Bx^(Fk%r1r8@AwIcKXxO7n9eEE6KG&ac23(()#78{Vn%D z<_R<0(Y88133wRS@)+SnFzIKJ6MLrZ*|0_4goxAU{0)ccq|XF%PSIW(yW#{QdG@PY z671n+cl-{DSmC_tJ?y{HW&wFv`ocGBQyha(|(a^4pHf)cEUW&OcI%wMk|m=7vd z5!{{t4k-T{xz`{ih{v|U+cc+E1d<5s&~=E3ek zsNQZg%5rTmB?1@s>SdXk=IjBs>AaV~iCh3!2+EAOvJH2WS1sX(==10+qHj?*-GGlN zSUH9yjEw~{hk%|jdunk4WYbO>SQCMs!4x^Niu+#ehD7r;`Lu~q{L}O6h2m?;+G26G zkYL)L!S!twJeo&uR4Y{1A!UEm*!is33`2AOHWq$cXRU|G#Q;1bzrVSk7vVuauGEW zBVA}yu7t5A$;CbLB+fD>r{N*`MJemf9qUlcfpVhB-mpy%FNhs zopduK>I^u~&;fr;n-_N&OVcMP1W7iFnayQs)`U~wVasJ(SB?UfvvV(Q1WsQPv~tkV z4aD+^m)oXu39^ru4N?An(e{lq*L1euobYqp?vjIWv^noZo1#O}o zdtnAxkg0x`hI;iC^1=|=j1Y5_$!~zGghiUL5QFIlVjG+zFGs2P=#1n$S~;3X4I!pN zq&&t)5Jkk97Ur)l>H3Wr{0Jj<@kLpitQc*K0k{-}r9{`Vdv)BdyI8>x9I{tWMfaX- z4w<)udH|9;$SeUh=c*6KfZSmU9qAJRwqdq%Y3bTC@u2bs^)p*8=kGIh&%0bBBA?LI zoXg)XWH4a&kvi<%ZcYyL7gONRiBJp>?DT|nt5lYz%wOmzDxEzp10(hziy#-zT+pA) z7~D!jUr(ZwArS$!MUr(B)D?aya#_D)Z%*hZocIaiaoElc=UsDw>gR7>H4B zi9u&wU={#Wu3V{Qf+*-O49PNd(hk?K2xmU8Ot32gAnHJqa| zd10(fl+S4nGoFdDK`D?ZSZUNFeRq}}Yb|gfHeS0i%`GHcW<*!3g&S*y_(1Yli)g!r zWVJ`xd~JW!E4K}~$Y`5&YeGAPjK^xUw4nBwzcY{Pqc)?x_GY9N&N2O>yr)~bd_d0H zTG2i3uPMO{mol*Myn;p59+1fKNTB6ZH>0(?wZeX7Q!9xuj6>nMP2xWBfovk2RiAZ; zbz$;;skL*K?AEi`b!vCPb#C$++l=mS5Tr%jsJRi{!nqQ?iL+K-mdJUl?QvS~=EsUS zwpreYc5ednCfwaab)@Y567b1cXTdF<6zv!CH>-E&vbV?GWOvsdJioasScu#KOI zLrAMHd`aCzYw7yUz(&obXVsf)cjOc2bS6E$LUhPcc2DI7brG+<&v-8C25Ezmc zUS26I6&DMOxg_;NbvuNUmP=bmGZqSS>ywMiISh?vmKRr0kY{5<*f4HRjzVA>qVz&cWAmRDDAtgIJ}?uS-&sIo_j=Gd9+j&Bwpn$gkf+WO); zM|Rh5tQFm6aBeO1_*!CT#SdnnBpd~pew^;&g``B8#`6# zH3crEP43(on|l8B7ZF#}0#M3O7Vw=Zh;+IG%K78Rp@?5~7vL8XeXp{NIfABhdvinp zh61+OI>FkJU`v`$%`bJ2^n6k}Esrynx4U~Ybl?c%>hz6}pfk$O?BR?Lh(DavuhdZD z{1tOn!mp&!zV-RV0*C5D3$96wKd%%+&fNU!+Il2F4~237u(rIKCL5Wu^>h?s?Z(PV zE;}PE$#gEc<0UPVtgJx6=a*RHwEZ-btymSL=QCYMbr_+W#>^`qgcT0y9!tWj=!Bt7 zRCs-+u#)y`OUr4lt=rmCva)tPOLUB=J2eGW+0&dsHT0cE#fOA+dT#DZ z%LhuhS*?k?TxaM9D&|I<=B0DsTt4UXMFTrS!uL<7=^ic!aRoOE;!SG^r7)+^+Wa!p z#5|}wabR${9EVi`j0h9m0yQwp>BpHB4=kv%P?~(8XebsKRFSI#xCC#0Ju(_sTwdhS zH}YvGs?jmRsl?3UZ`0O1-?8Vgs9}BCDar%w*LRwuY_S*95D}~kK`gKvXG{<3B?>yTH1W;tEg$1_sdI8-i zV*kgeZa1l{rQl@tFW_V?L+=e1h~d@mp`HLH^33*KVFBapK(PTsZpa&N{Bf znKQn7@pjrBH$pRR>!Ufl5h?1^?qwqq{WetS)y#Z%DGu!2F=sC$upK{=?$?2>Tm@8L zUy;;#W5p@wVQW*)=E1vIc$IQaWHWG@oh}rY(?>~lk&hgU(j)<#lQdIO=hM6daJ`TfbI9c6<>Jcqgq3)0In2{# zO35n%=}V+9m6oDc^~bM7Zh)&dmZH=vXqyxY9a#0is6&AqB}=nBW52QV%F^;{tjenk zDSr>u(z1Rqs2fXbiHQKw(sJydd_yo%5r$CL(~0ovW-6;!G2}?SaOOCXnx%Z@6gGU@ zX0*#n;keB@aT8ui1_;aEH=hy!r70*>r#@n;bg*KRB`qnBe|*2C2Nj5p&7-H&d{4| zl+ns!v84_mZUVE33=v7(o|8JLy`^zPeVNT};yz@*T?L-~-N_&p7~E zrjvhE2{k?AY>MurAgwYtt~&P;zWLuf;>|4^sB+~*FkH%n`|-P$3bdK>C*}a;W|PT3 zo2@mU;4xHa_44WxBHzky^rk2*J4l?e zie*{p@Wa=ELLIZsVJmgt3<{}Tkkg%=zMFd~+#8&xc2GT3g2nln7t%qxO?Ij0p6{9b zT+h_!dncdoS@=TlkEM4nvy)(^9@r5JeI@cvj_pb8r0;#+O<$pD-whfl+iTZ?QO3d4?_#fX<47b0xHq;=Fq%%ql8!CH|E$S-8&G{)|Z#3 z=dWS!o68;QOQvTqfP^9m6!ncS6~b%ERJvG}49cO5BPx<4i}_?f)C1{S28$KNqk}4z zui{#oxsF)Zk?y6l;_~#%VF7aeha?;Xh&YA0&Z^Gol(}H?{dxKZ$6&QOs)fN97H6l6 zj5uG*=Q-!Hq~&~O7-|^QIzGPKSRLR($n%N8cwv2L5*xa4w;aB%7*R zl;x$4oP5~A9M_kIY=2D@;`j^-YZztPx8$OA3t^bfWfP8y_KlV$=YFV@*Ix@BOG6&b zU`Z?@m#)9DlGW&Z&0(6f$9%~HtY;~0L@2eioV^>u=My}N$W=+$N?I@f?22HLTuK(x z0xnTJQ&z`(PP#f0z-Ol|OHMhe$|;w&aA4F~Ru~kA0n~a}Czq@x*EG=YUVr0YHk`b7 zwgU)i9jxQ%uNroi&(02AuG;O)O(*J|NQu4?Q8XPoG|(f-nM|c&vpA_2tOY{34Fcd~zQCfkya7KKI7@+_~p-Z77mLa#W!F`g&!UjN2oJ z7)FsJGjFV2$E7=qV-LhPwpf+=QU?Y$XIngodnw>$ao3K!=g! zbL1>#RC1Q4gF677S(e?(6jVK|5(Q{lD|U_tA%wpIISj;6=9^2)vuWctw!-VI(o8PZ zuSY5#g$6P>3y$6hYBYl}I+O^}H%>jBNzdCpFEq8P7^Xx_Vyyd3wzVwP{zmdhbS*u%7;YC`R zCT(znNDd3k5*@~cx(*%8W{?#zLEdzsEY0aMPWB)b2>^G$$x#Y>0$`JLt%E3x*xr$z z6QMf0&sP?U%)jTKJxZFR&v{crJ3dG580@CzXbmnBh(Yk0uX|U+`dNGwU%VW<8_(_S zCB22RBF2+?k#sM`+nC z|D3F5ok^0~T(TG7T|`N0V-KZKd@=G8al^MKyPEJ011G$P@_9Q=mL{1qFUoi3bP4fU zrp({d($&3qpXPM4IenZtWa~(MF$T#Lvy9WJ4@kl`mu0J6fN?I}RxNYGp?iho= z7^$PIQ;t5e*un6iJfVBo6toIiZ!cYT#IRcaA{8dCL}$E8c=}3YzF7Uvuf_a@QsRZa z5`9s3g1i(>zNCNA7o8s~MwsPBOqlW)h~-r@-WNiwlK&9 z$VYci=(3S|TLsR1Av*H~Cqn!1khC3Te`qV3DD`vK?BYM}IhukHPC2OGp0<*K+t@2C{&J`M)R;IrBV3TuEHlmI}eAxN5aL~-W@9qE^ zkJ7q@CQGrF;Bs))uPX(HX*sqGQbFQz7j*EteaqPvc5G}s_Sb`tzdp`~>-nFUr)$lv zeQd4yx>?oY_<_&@^)xY7{@l42&cp=*FkC(#V&+Sz?UZuJ=+bGqoawG`WU_X zLay;N$A}gK%KA;S95OK|(}F{gmH#*sHx3h_fI%T%U*^1>K2Y)z!#DDg@94k;Z3%KC zIZ!}{WUIG6svmb@oJw`Z)o7G~X!e|xtr8HHO-y9R$i)|Wtbt#juHr6rv{wbU*4^z} z>gX4uOYReam+Vt0m!j|m#5H$aG6{B-NcuYYV&%mbUyNQnJ7vG0n~aYi%dY2({@mWw z)YOa7y%+pFgfB$gQNfFgOF_;)nUJQ!1K2nxN-lj3LEd{W;(k|MX~-&LgyjNa~Gp~&xO;zI;-|vwEJ8-Rhf=_obcr= z)#*t#rO9*8UwGj;t_90(ewwehpQjPK6;2O2@XW6hs*7vObJ(jC4u1LE)cKB{FGRZ+ zY!xoW=cmqJoSgdn4hkT)1@cLi}9$g;IHIcZBGn_K5UzxBe@RO$TY zxsB3=&F5a&+IViWbZ%qng^j7Lie|>d%iKyPoS*qN^ojEd$;P%BLN-+UQfSwE-UO4yS`N-~T zDON9}UFT)}i|0tTuxicLy%mLwvBU7o?bZ#O} zTZMwB-`-AJa9oA!&`Rxd;okpqVH^%!h2v>?(TRZDKG4l1j>}ilS}KnS5+e3g!y~t= zU@y7yKI$$NK^)F|w$oj>dq}kIWXN8Fl5lmdgVOz3i#zI24mvfnU|)*PJp#;@P;%2husxYz1!0e zzxYxR1jC(9E->^VeR-)Ve|73PT{ObyJ9JlJyQ-UcEXK><1j7BXm!~2k(D*AV*cpwl zEDw$cGE_QsfaeP4(|o``)>aCer_3!gtfb>aCJE zPl*GZa{~(YHn@?=05(eWDm!fKkL+B&IOPf>~Esc8KccaWUrzi`=bPvlF% z76LO47vg%1c$`0any zS(M1lXSrr#>)EaHvr!(Sb-CzSwmOS9cPU=8b1$eH(bCyyG8z>|aU_4#Vc!Mr?b3%_ z?Bbt|2cr`YD*#scdwlX`UgJuJ^-8O~W=H+=IiY#Jq}VIjJ{(&_2)xZlj(ZiTHa;v@ z-zO`&E6jRUwmIp`Gre-TpJ%UD>6N3qLwcpVHOiKNd!)EYq*qA|jP!b=wO!rSUEt5a z)@*Sr!8d2bkzL`+6Pg*-ddK>W>X7s3cF9aq-**-{5rmZwPg*X zVu`M*r@5Ek{pjy5&r6aob>D@Ui%$9R#o1a-AH0ioPvOH$=r$XDf&ga89rL=KgDSad z^mQik&OTXemV>b%D7vXpj(d$L>MkG6pfmR&zq5RI?~9jJsKa^%HE^HgvyX*vaVX!Q zGZ@!p2|kCLDfH344pP%)vAcRliGZTr?XNQ`gokd>>jKxr{k1H_b%IOse+v1kK&lvG=V5$fKYAi?%Km{ zbvHb@1m4d?_fG5YuKfjUT+SU|pjCAbTw&`U^h;s?>VNKp*Qy?9(fT{XjpW#zgSsUl zcOq{$J)O($+WvhzkfYC}Of(x4y3u8#E?ULkMpK9i^WvFLsZDUv3;&8&vrucXJaW8!N;>^c7c;xp) z*W39o7lA-_In@N%6iyR4>t1T!Gb>|uc~+M_FwDxI0{F<8UDln{XWVTBFn1GoXCYWUQ#g}eUSuz;ZGF1TJ^<2rBbDW*2eH{BK1bkC zxYCMGyX&^xghbl;Sgd{N(^~V?ijR15nV*VQclLIC9~wa62Q2>(%$HHmBYu2(T=%nc z4jTzaU7XgHOl)+|%T-PXRq3GxX62LQwC@iDD(*7x04%@{n1lV=nY9_#tNtHQWY79d z0m*om=t!qcyW5nVT9o4v&ain?wv5Og=+NkJC3Mo_{nN1E3A=@G!Uk00B47+2-tRFX z^ic_&d7F^2%sUW3UGUAF@j0VA?r1t>3EDzV2jSm0tBjb6PHE=J1^g0v>n^!s+NQVOMDU@+_k+00z zG;w8uiXDKJ)-;pzX%Rki+2$*CRmr$j4i-;a(;i`*R^5eJLLRKJXAX+gff2~)l(`o$ z37Jd=(G+va*2e4Xe5dj9RO;bqY@JrZxG>-$>*gf9E6+&=k@TTfuUzO{NR#S2#*=** z^54M_@a$zBGK}6^5o}kvu9;hq7#>>987zLlO5V`aRV%Ocq!5xb?gS=iVE^oSj+tJL z_3g|!H%=#EwYtn3Ig^MJ!oy;BTPr{&$QuXi$0x>9HxXOc;aL)42y*V_sWU<5_a?;C zUg}BB9M%U$jy3aUO#okOX?1!LAF*7~3x#lVT%G`uAlisn8FkR5l}1x?vQDpQgprMC zXnEB#XdljB;@AG%M7Up1Oy~@k+VN$jaH%H3EPRD~{pxM=0)%TW;@j0*w`=@spZ>Tt zT6H9-ipsm|eI+Qn(O)RS(DwL_3|fws03*Q01IexVqUje{I4G=~-H+X|$Ho9)0UKT{1i)Ep8xIAL+s!teGtbWIiot#*mM> z8LsSJy~U?B?WPgwATp*zf%l>zrgu$q6^Xx;SYuAt)z`rNLZHycFCWfnhk>&_)^j$i zw1<$DeO@DVF=>gIJ%W|RcrtQt?$B+F0hM>Smz>qraZLaR)c3&uXAlK&UStMJP#%#c zAUj4IL;rLLzL(s+kPjV#q4H_T8+loT2D}hLh8!q4`5|L3A@L!e?YL{UXryiH$y(2M z2RR(ifA9n$ZR(6;>4+4@&_iEh>jxIX5kE|1!ATyhYDST5itgjU+!JtjypzJfqy2LE z&GJMhZOlhuOihdjLB`!j5nEHo4+v8cAzbO@8oEbh41F=sTe|uPQmA#g>?OAj0pP$u z9XN>AhKn3J>RN{8n{xiNSx@av`#=3mhgS@Tdl+l4Y&qorY@-T$^Koj2&DOm5+^2!& z2uhUSUVV+y-9Owhy?lvr?hm^=9=Qbx^=u*1Wr>`L<`)cDvZdIqzq(QwwKYyZNfNrrZp)x^@8S!2CT;}}pa)E)<-|S6 z$iaGTg^GrHJi@Qr0Z)`==M3ZVXR77#K&bLAkdGi#AA?F{s*1@SY{o(D;~=3pBe^7Y zAu}JP-Gn8|2vF{mnz7Enn^NhdVzgq9vroc;I`f(q=K{4{~4jMJ0)iD4~&mZ#t|H*p~xTvnKUwG})rUC;> zM`p&t2m+1;6%`$9s1ZeD?;Sft#g?e3F{rVZ#IA`(5K~NIVyeLsHOAOti$-Hi>;|zb zAanowoI#CGc%JvY-}~MB{eIu9Ip^$N)^2OBz4qS!ng-shX~pL`Q1`j?@IDihHcx3j zXYoRwLGJ#mC65tl|3|wQbNIheG1O%|%=}CH^~h(PlI=g0r`jBOhxp8)=gcV21xT3O zmL}=HF{nOGl7oA~P=YA_$CIVC%$|L!P-Uv*shCe!FJIJiIm3$Tu{@>ZtSWl=Peuv< z(FLE2afH3#(9@+qU*mY4QG0}^PRX=qCda4_Y^AggzdeA5fm<^(K=^CI zto-QZ=Y?IlP%NDA9WLs=hs^ z`+}CkUp0C01Yq0{k(SOG)6cv2%uDmeKzz$yy_}iUh zn(Mz)=l|fqlLJqq?FaEsY;$_b#pk_?YVuqHAO@k{#HdkF&rU^DJ5-(=T+Cc5 zXI;9PRJ{)z2+_*gJ7$ zd=1QVfs)6v^ga-NH7@23>IHJ8R%oGIp#1NK2*qQsvMAKz1!;nF*-%Ug2!y zvZ0#cN6|*Sd@cA=R8$n|{?m&-cn=OEBPA}JA)2DiGPR;T5rX+;sO+(f2N5KVA z6(Su`x`n)mbtEzoy-Z{#8f|1g2t)lnlcd$o#CWFnTznlf!AV`6lz8NI(e$o>L6XmY zYSoP4%el7Uh*^|mMW;6yO=d4|AB(SFx$^!2fkD9`p^ zt^O?d`VAT;G-~Y9Vo4n`blC6_BXQ%>E2GDZ%@{X+!o*2EdiLtwr*GNzuf8^U%GAth z(`URs^Np-ov*)}yci#L33l}Y3vUJ&7Z!cf5a@FcJYuBxR=iLn(-`kX(vpILm`yYJx z(bkVY`E=W7pKt%-%dfuv=Gz_Lf!iI&}ER(PKX!KXLNZ>0i#A z{q@}W-!A-q@sB?*UA}Vl+VvYZ|H{8raQn{Pd-oqaeDt`msQ5{V8)d-DfpOq3{1Y>? zL{nc$7G(wy0Q~!+o|``p-2Qp}W|YogJXVrfZv@*BVYh%js&Nmh(uYTL4bjMq{}AOY z(R2xlOl$_i%kwio{do+G>QDHGANS+RL`B7~;y?V<09^l8&b=b-%N zTo5rar8(cP-4u5vXoneSCmZmC4BKFDKQ>DxHsd?9_~8fqEM~sBss-Oofyogz<8du^ zN$@jAG~PLc$T}o;=!TQiFjaYaytsB=bgSksgVyC1knK`WLw|P0o_2*Z`oP3iT5$XX z67_W8XZzQ*orM~|hTkC3mLK?vT<{Zh5At|LS27&7bZ_;-~F# zI!v9C183TSIGPY9qSLPG(2#{KOxi-DHuP$&DbHcgT@t&!jQ+l@+UI)?CRXRV>Upl} zE(%Ppu>&K~bNw}!zr&(shvxiy8(lvx=A<+X z1h1+vg{IN#G@ItrVp>AWX*I2<9Qu$xqb~qo)3>yn_R=BxnNHJLI!_nrCf%ZYfJanJ zA~P@_<_`#EVa&!HtQxDy>ak`lnYCk`Sa;Tw4PdEkG@HmKv1u%e&0~w%a<-bSV>#>t z_A%SezGUC9@7X@~13Sh}vR~OncAec)!Oir7N$?TM3!#Edh!kQ3rw}L96&eUlg;qiv zp_9;E=nohyqzPk%iNaK2x-e6iCCm{P2ulP?+_^|JEnzyHEGg&%6`iOkI-RH&6j_o) zqoh*|64VBRq!R^6QcQ}VlVyWqloUbKK>=T~QIU0$tb<1=L>)Yt4H5#tSC5bs9UK{C zSrH|Jmmo-rqL+QmIs<}32$F=3SFcD0Sucs)6+#vaqK*S7#aYFCJ zP^a+-7L|zLI*Y}^EfN>45KYU~3a{ur6%9H;6wy{>-ahqugTZJtnapM{FK=%jAB)A; z*Uzt9x$@=x{R0951A~HsgF`|>L&L%eZdj8a22ScX<82$R$bSO5rx# z5=!J<(#=DLNk&~O*XEt^@g(e##g5I=@UvGN-ou1SD{j1e_*=tUp+U1%~ za?V!5#*W|6(olZF@)pf!wC&!v>QbjXe#&cNNQd#>wi+vXEvaOkxOTMfApOG3>QZ=8 zf8D&8>2urnTlZG0&i-{?Bkr)K2@V->JBI(Liel-;^xmj&aO`7M5__olbUo0Hr0 z$Xe7c<-JA~6KB0jiSMlwO|>PeMl@_R@*@x}z{d*@&BKhVHqmU%j2h7#nn@U;DJ+>= zHK6L0_y@d3H0N4cEK+@9FF|Eh^;2mGxtcUq)v;tjRa~-OG}+q^qI7>9?VZRj$)qCEj}% zs4aC}_BV0u2GJyP`^2xHYG1a?|6QBJy!S-YA2r-h+)wzRQ&Lj$q^QtMPux^gLYNem zP;p@i#-=C5#l=sa6qOVgyP+mG!Qqo9B_;6kqy!prmpm>idVoQYU{+j04~yMT@OPKE zA3i8{7ZthPL`4VyVUOCA#^-wH5fupA;1pxn zb6i0KbRq3{@a0HA`cwn~Imi_ZczR*R<3#}KC=aveMthz*qz&N$@jNx2iu0Gwpexc1 zln2UwbW?aDA^hrr=ap%E(u?)WsVkTjdJ-VfPBmIjLa7qWs{=Jf0Z4^*Xea$$P@ zExX3r3zLOQg0DDHoF}@)a?(s`#eV@lfE#}~5)dUAb>nnprQv_ld=BOd&%<`iIW|)j z$k(eJ*IwQfev1i&cbn;wC#K$jMSNCLP~PedPD$RYHRNp_Cx6k`F_@O5pDgrB$*) zyelq{TM8T=OB#G9e^mhz_fUDLaM%7if1Mq0Te+`{ zhCW}ptvpc(;ZD^p0IX5r8J7P^)tvNFI~v6L$)8IL*?qaG*oH~U8cfefF)P)Tj!Hk} z4JAvNqgWMRWwCNmep6{HCn<5td}Wc+Re4)ku84B5vPN02bWv{0U+BKk6;Dhq_g|?{tH8({z98F6yr9Ue(Re-PGmj?&%)s+`7lQpLM_L z1pU`Krq}Dw>WXy+J?ZCTJhkY3^Y(CkP)({uwN=hS zU8+a%pjOIxV$tGqt2!+u*AXN7O2ozAXP_&Q1gr78KEz5!=q2Yp9*cz40O8-0)T?8Cbe+lO8=7&$sb)zCX1DlxjUu4>#=w?7_8EtfRn>8Eg?{H$m1luOL5Wwrd^@$PF}2ldg1+IE__&7 z`HN>6G!C4Z1lAt$#-P0TTf=BseoEtA47XZ-T9=uh*Wjk%-!R$?CS`?uM6Cs7*}hBH zD2Ot_J(^x-2)hybDbn&Z0qSz#IK4)b=`eh@rUyt%9afjk#J4W%KmlrejB$6ZRJE3$ zLuKZN*A-rWHFtH&beBmTJT+BIi=8zDp5MfzB?7T&?O``+s>meP3h5{-&suBYG4khn zneG~~#*BwP7&+tWbI6evb0Dz5>r*^)qjtJc()`PDc!>0Y zJULknmQ0svD(Yra_~1S0ZkmNKyV6VGf6t>I(I;zoIzkTAwYzGJ9G}m6l7VHmkL_sF zeG#IT?}9Sjjixtf1~}@$6wW4~_D=Hjd{aERjYm#jM>q+r7F2O%whx~A!FV|E^p%Cr zWR!ks4JqxPG(2`k4%Z>i?*JFv%{AcS8aPJW)o$2n^;BUxjMCi12X(6!yM{Drd0by+ z9<>yW`;WNLa>zs1F*9OlOD2}$8PRKDypLl+=m~?Fk%g+Qv#dNu!LJFW8{?o{cei3=&lv~-j;C7{$*i8$|#2Ft&nm)zEV&I48 zy8xqi30e=SG|X4HibXB*d@ek0M9cYbBw4t5oNZU%BTU0p62J@;b$erm({2VrPO38 zw!TMP`>3Uw$F_K<0Mk4@yFp7VB%V6771gBr(|9=jup5i&+}$9GWz{`xijO(m>@D=6 z9MfY^@3g*^n@&PVoO;vf5N`4S_6d0NeDWTV_kUhsvF%2#nHnZ{#h=P>^=!=1aK(Kv zRztPd`heYtEe5{%n8E8qsp)o4?VqmZlaE!U;g({7>pMR+?V+Y<1;T&kZji?p50~e& z^3%{8A)h>EK7#WcPI}H4_s_=~KHfeHi>uy3zsSEF^IAH&j`wZP^4a-m99oLzKbNBE zz&!V{K<#z46m3^c<|B+TNR5^vUdtxY3WTJso<95XULlbB<2{Z#Qm3abS|SC3s4Lv| zPrP^kEk!*40&v`eDzPT`mclrwIF2;PS8>Egdre=FJ;TvGnDM&s3L$!?(hnG6 z4q!c4gND=?Cgqqf)1Cl~fl2fmO7sBUkt~uOpmuOE7A@&le18QbQWaL2T|#V|Fm_)= zy&R4AZ{QrAhp$0Yf%Sx|+U#W&f80ky_A5-yz~3cLiT*~3Y!aE-GSsyIwWc1xcO8YW zH(;}rg4hzZB^9F|3#Nm}S21u=M0=3#LVAp^@*Mt-(k{RTJTLu97Q%qhEsQ28LU16)F9WisAQIYDpVYRTs(%uPQsp=Cj|WH$eDvm*)ACa!mX)6b$t7%)p2uh}urJFBc@c)Sa%I|{ zk#m`eb!9)ZHf83Ap)M+<<%yvlu3>Ig%!-&>>J6cjBW#=G5FA1w+b>m8qA^_Z8n{Yz z7o)1R{P>kwU*@ydBwkZBcaAdaX;&7l*3t2Zk>mF$(zIW4vAV)3#HO_km(UPQqbm^n zT3=?KtAoMz48AHe-?55K;GtiXhKaGtYitTiQj2+rr?pg7VuS{A4C+yg@I*Qd5if6{ z98waEnzNl~C|E^MX!$hsdBnU5~UT%}LZvw==N?V|p zTviP!t1kS76O7(b>OBvqpN0*CJ@n^~m2h=b#4n*^B?)C(=#|fMi(BjbE=R7^b@iObvM#+f<0*alS+Lje z^cIUk+%*y7BxMboq$~o7spY3infci$y$W$cn`dPFz07*|3CONbS*Vak7iB*zSdN9D zc^V`U6;Ey>l;2U`Txc0~#imRwvnR1BF5y-5+E>XX{JY+Gk@PV_+pg9S?v6tb_+5ZJ zR|ms+k(5DeK!V?4pR+;IAxcsE_EmBX+Q~R{l^bBWq&;GBqHa}G4%0+Wof%VRopGtO z!*)r-S;I1MVOOR@aFzF)huL7sq9n7!5Np*&bi48nVzPj-G=sg*Qq?}7tTr$NcxaF9 z7vEysaS47(S?f@~qoRPjk<=+w zB-%}LOqBXC1=P$|v8J$+tw3BKiMyCxkeG<+v`biv+Ome7r`6JL><5ukiXWEQZdyiq!BP*r%gT4Ew23;1FN+heAn3>jkT-J) z(e#5DFKmEWKBj;T!K!MFg}9dhR?rWix#c#P)LEpB>o@Tp7S@OQ8t}dm&PK8KU7XVIT785}LElc&EYLM(GY%d@lNh#UY+RnB-C} zZ2`E1E|`?IWQkxZgbOcYU(#Yg1r_t1fccJq9Dqx(Acm#16smzT&u0VS3EG|!G2|eh zE{v;*cw7)Xmn1$p-3)LE?_z>(5hjXb*dDfAWs$s11LS4242u(^*;|-G^AufxKO^f5 z<{9d-r`P8B3>Pk{HpiG%O;L&>VQHc(*i4=1EXLc~SYkgtiE5MPC9TKNWM%GL^Bc2sM6t{?zQDSjIJ86j6 zPFhDFh!y0?7_wPQ7Vg;!{kw{mRc7k zu#M748CzuJAmFGsC?1ZZY+47AdV@^zJ?XA=Uuvballk&reTe&;u|#!&=E)8=OP(e# zmS1LnLZs;l>mj#MddiFBU!|oihW&}UR7!s&Dml_#){TYAmDwxoynIgfW^(~=GJiIk zb(g!zJwz|%D=ewh6K;S7vr)=ooFV%gnUq`fi`hDLAL$SIHiX0Dg#PSp zu%PRSH8f8hHlDoEdE<$Gw@f3c`;wv z2cky2j-@jnxjw{L>ax-DB&y=U-#8YH5_v_QOOb+!uyiU+Lroov#pAWCnlg%hl!FCM zNwkow2~pG(8z7oPWN0cY&)xuAaHcB!@eF_OQ#0YVbb#HI*0J^MORy~WuoBrVe?U*< zV!0dGXus1%YAb$-dhtE`1^8>iZcP1J?L|!j=IZCLFmDzqU+kT*4 z;3C^Y(&xh&Fp#mV^3|OlqltyO{fy$(M^GinNM9^mX6COp6alZM)^~o zE59kvk!Q;f@ z{#yP*{#f2BemjE9{QjO=*u}#*=IdZnV31++G&*YtQp6sKvQ`#z*o^y3sdLA?X zInBdm4VOCgJ3=0TeVC%0CI>*EO@l7@{`+vuit)M9`1fxAZu{~-hTIaN-Ig26FMFVq z?2;SF$+BMlOB$~%kYATO;u)(0w>@r+l-E4}1i z@;GH2zL(^|%5u53T;Bt|j#+#7`n#v03M z$S#%z7cqRD2V4OB;ekJ~Ca1ygkaE1F!a=NvU405SKob0l)vB8yNd7`f_*#~hoKy@%SIC!x-NHry1m@S!ZGrkF^ zGFI|>;~R$tm4$C_RL9QvrraO zF_BfH91)dmJiPjzr|wgA;)ORQlYLabu^FTLjTkg|Y+42mlH`YD@Y9%wjv9qzk4_si z2HOYcN~ZEUunMahWt+F`EGN|qlv$W8QsP!v`PK$nrXtvW_-5ie2|M^;{st3(zX8M~ z3rHs52}G=ptUft6;&`#8xJQhWn!78rSKWT>9U)f86+*>G(a#;^=1(gy9{;BxM%XWWChiq~5PuYZ z7F$U#N$sR@(gbOdv{d?7`V`A-zepFQOIY6e3q!#}NsvvLHipYK49HHosoYv_Be%n} zv6I|I?k)F~2Vt;&Rh|N3;|-9E^W>!5e(tlZviqJ8fr&#a@qo~Z zjidIg7nqUzpXRido5M#!NB0!>K6ijPk6DDWvKFs(pssf)CV!u zKuJ;BC>@k!WefU3qIvQl|hnWXGg#wzQSO-hcEt^A~%QO+w@m21ikkZhBc zY07EkSLK}Yn{q+qqFhw|P<~f#qI2U7>e*Q@iA|a|Yu;i6PM-C2JCJbk#$?nA zhS!96I8}d&cAF9UqMy4EWj0nu4jqLqhJLB_J5H}jZz2sz%iw!Ax5gK=N9WO8#Fttl@jNgkPoP7XeYM7N~c;jN{KIOUBy_;XN;ycGp6p_f@Enf`=y7TUV!#TEaZ zpX&3!lH( z=c+&x#st~uQ$9F2xMt0PI8aFMXOC-}n)%6}>d2IsyV4U7zDu6V8pkqz&zZcSRBiu* zJ-LgqK@htJu|E)78u|7?z7LUa{KEzn{G!!gt>kKE@0UAx2L@WLNv+$q@7zO)i)-j= z7T2X`TrcExm1Nq$)N_ae0)m40c|^JZgZee#>%|R1JQhA4i;w{SAVr5Q?Pjy0^EU(q zoBibS-T`tDIMMvicUhb8HyCAeV35&>-S0j=c!h?V{%J=mlA5Ca`lO@`O&K+c|M{;6 zosFPflBAc)hen{{ ztd&eZgfb}sf<<-l)WJrhIPkIKu;r)|C9_W8E_I?-VjY;&1V`M7r#W=-(8ZG-{^B5} zRv+(rcssy9jfePAeN`6^K65>AXgc9t9d@09rvk8)~i}3T_ww@@EGG`%7K$Z*S-vcsB=$hWi?zd;ZPC?Ttq>5do5wa`8W4f>;t|Z=YgKh`ydfSBK5-=8L-FQeMGBEv5#wp# zX$%)&jR1L*&(;K|w_rcpQQO+~OWBNgg06~69;+U;V?_&im8lkoEJkgXYrUFy% zs`#!8Rd*VJHKb0YgTEy9zK{&jx+M5XHOC>>H&rYj1fkRh*q#fUWR?m)4m!aq;vG%< z#1W#yG=e!`d2TS$1%vM7jhV=3fwD6Ol=BcR*yJsm$!Uh$d zcAkSMU`9&~SC^)S*VDtQn|+8W3+4_y+%^jXWDA7ToYul)5QRL#`TPYq;cC)Y6>fap{mbj^{oXpJvZ-wGVER1fA$W z30^@M!&D3zS!_56@ASbdW^>^SriZqgKw9LLe7&2DR-oh&FbjRJk?s z5QUJV)LinIlGzD02W=4l2K36z9>sV1cwGO%ee8+jZ7{Ea~R zk_4oir6SHOr47<}6N2144I>zD54_)VAO#!)C(t&R!CwM&sc3guibLk9+^5eLd5O0{ zK3c==0l2BJwuOCSHf3RZ_Z65Yv+C4cx`Nn-!7f{gf=eD7fAjdv>;Sbv%*i;O={{mU zp>>Vr zrsic6i5~6}7%kt!T>tcWPwlO%sy+P#^n|?cu8O(VOjR`j;cSMk)VwQAX76GG-w7i{ zE!41%>bo}5*Z?b{?*j92jN2^3R67IxDKF6s#>XQkb%KoHyI>4d2kszepxQ-HJFM(* zSDRQD@qP9tayFdivhGOjN<7`w{<*o@*Vk9|@mNPZ0~Ob4&uo0Fs3T4mzTJ`TR`ezE zItb?RY6$hoM;L{^em>&Cih|5#UQ8!T~EH(QAEB_?Y~C%Xn-vNjr*sQBY!U2kkWX`$)NRe;B}sC&Ip zTGdga-%C~CLZ^#BX+hQpZQ}1>mb6mm<(r|Ff1LKlc8N}Cd74ghQ<|#M?`J6UPLMR| zF4i}l30aAnkb%;PK--M{M{ITf7tR{mY%c154cdhA8l{F12h~1f8;tKQ5MB*R zGR0wC(t*BbpQ$_6*}Jn;aU~>(3dMHpjOc@Y@)qPt+p$9F7Aw?+*x-^vKt-T`#q{{f z{6cWNdArN9^WH^=kvoab%e;>njy$$e$IoyPBecFP+V=^1Bt)>Tbe=V*^T3^qwNk8T zA~kCPQ!s8ceBwp`VI^%`&8)kM@%gUX(iSI8fqz zl*-2AfJ;8+plm=rM5+D}7VsDan|&(qI*=;y*t923wF6B8cUJ_5QW?y%W?;BA2JDMT z^16f?#=}iQyU1qQYWNt%yn=+(7+xE6`h7|k$zoZyBhwyhc20YrMCqfnJ5v6X?C^iiHc?|MzKP9%h^xGDaR?H(PE&S40gLsi1@6 z(NosPw?5V@yFXShq$@STX$^u9NR;QKhE0kBZ=uobR3oy#X zqGVz*BE+G$*P$kTNI2L|-e*8x4@_mrNh((3z`oum97Z~l;8LgKrXx@~b5Vm*L1}VY z%Lh!`Y_T2O>{IT8%EHEYJPyMxk(XT*#;= z_hDzoc(x2SynYM=W!W0BEJNK%Map?ttyRi^k9$`}jxsN!D>EHQ*=R2Z<^<)Ld0@8k|3~F&@oC3%P_t zEmRk($u-PTxZP&BQPrwn?*I8`CYW{cR0YrX^j}r=rep;;6gfsw^I4YqPuKo(61D}lDRHyB-@_-$f6a z4N0EOpjx(oe)#}(@gqntd`zFvHc%j+;{Z!OR&vHZKPZAPD*cA#n@8X#aOsp*tTm+j zrs7!28SHhI#pXZ)VLoI*mOvKdEl7>6hV;ccNY=g!Cf^pw_D!PM5okOnhptwS<)P7r*v34f_3h0a(Aq2 z&c@pO0?6C!z#4oWR=9V|d*r?HKClfrBapzH(2a+h#K%r)gYj({mp3ULUG8^^%-=qx&4ogWThN!D$`F)Mkx1G*bH zH06Qrp{`IzH~=LChoMx~SJ7A1N8-p6m%f|6w|>3;UHzXp%TzQ-hWdsEhK7a&LnA|? zp_L)o(AJP*Xm99h=x-Qk7;H#4ykZz_m}r=0m~NP9SYTLU$TfUo_}uV~;akHF!%o9K z!;gla42KM-48IzFGh8%WHWV1{815Mg4MhfK6pi3M8Os@?j5UpM#(Ktv#zw|OW0LVD zV|!yaV{hYNW4dv)F~c~`IKw#8xWKr?m}~sR_?ht=3Gb6<0R^I-D?^HlS6^Gx%6^I~(Z`7`r3=5NhA z%-@;w%zMrI%m>T|%_q#~%@@oU&6mx$&4QQg6RImnU*ZeJj;B`0?R_nO3NC{TFZLNKFd#* zBbFjdvE_-SwO@)~SHJFlef{S6E%f`u?+d>?zg>R&{Z8Wu%Aj(+%JnTbv|MJnh2_@s zlPb!O3`h&e444+MDqwZM`hXh&`8d76JJ2uC7FaVdF3=U&A+T@YsKC*InSt8^KM&j< zxFc|H;J&~g0*?ot3OpTnHt^TLbAcBE3j!%f3DO0bg1mz)LAIc#LCu0PgEj}{25k+Z zU|VpdU`KFdurs)3aIN6@U{`Rn;16)k|BwM8gF;4zj0u?NKOcaN}+OS?a;W;I-w0h8-^x? zHVJJS+B`HRw0mg3(BYwDLo-9Cht3FnC-mLWO`$oVxuIJ^-w*vTbZh8Wp_fCigkBB3 z9{N{ke(0^xJE6s)6jnJbI;?hBov;RBuCU~=l(6n$6T+s1<%Jyy`#J1**zaK%!>)z> z6_y`%C+uF>{V=K!U14~I2^A(*SXCjfLU9EOe=B@#I9c^pi#5n8UU2a`(&9QE^es2B3`i=El>kjL8)?L=U*8SFl)}O3L ztS7Cft>>&4tXHjnS?^dMSRYx7txv3EGubS*09%kP*cM_7wN(A(WcRjP?B(p`?f&)vdyqZY9&WE}uVRm| zJM2~Mk@hHiti8J3X|HXMv&Y-(+Z);&*__a!>_6L&+fUf<*{PDglDU$tQpHM$(2@B+E(e;N*60pWmo0Cl~-53jsbUjl`pF7tg@@hqbd}U7Lgvo977yK9m5>M z9U~kg9itp+j&#Q>j?s=Wj0 zM}dP6;4>m$kDM9#Mr2mxtjO7sb0Xi2oEteWa(?83$c2%MA{R$4iCh}FEb^_$w(kF9&3xW$5xE3 z6k9pAN^C@|BerU6WNcJy^;l-2M$cltX6oPo|DXRtHG8R`skR&a(pZBDy0${Fj#X|&Ed&U(%U&W6qeXCr5# zbA@x2bB%MIbG`E&XOXkm>2}IBYSdU*V{whQYOJr3SEB$YZ`o=_)ofWarDpq@eQRdc zoKy4TntAGJT%RT9B~#mj>uA0I`hfKdHy+veXk*Dnde6McYm;S@ZBx`H*QQaM(l(`U z8nbEarYW1IZpz%WZqxcrmp2t`x&z`VFx!@0G25A4Gdn%|mF$VxQ?h4e&(3}`dtvta z>_^#!*+tm`ME;c=U5+WooKq>MN{%C^YK}9fPENg?_#9Wx*qqFq={ehS_T(JOIg)cB z=T6R}oFWip#?29%V>dfDCvEPqxzFaln=?1h*!=qDPd9Jd{Q2guHh;7E+s!*SAKrXq z^LdbNk-61#Yvk6-jmvfAHqC98+a@PHZRQ_s53x__e!ZV0ia7gABVq6$UfMb@Io zqNt*JMU9GFMNNxZ6n#?kb5Wxwji01ES^T8n2@c)F>64a{z>=Vn;1XMjv!q5zt&+Hs zIwf^W>XpQo)GujJ(y%0He#F2IUu(~cdkdCkvW;NIhjSZQg z%E0IZ-DNgfjQ+-8P+g6UE@O(ZuW_<*Dt4;JgHq~h>T8;Sa|!z5EPJfhTSScJNtO-f5SGkvG~&hY)z_jBLxe0TbO z?|Z~IGhj==`vD&Wd>F7b;PZg(0eJyrqsr-(F|8OvX(?&#(-x#HNy9|p2px?)I_PNX z(P2kN9vyS^)uS_x&OAEzXztMukJ7Ow$C^Xlr!ORaLXOuy-u8Is<3o;5Kfe0-+T-sY zfA9F_;~yUX{P@?$zdio_@gv8tAD2$(PI#RNI1zrL-iZb$TqjzbXnmr?i4iB>II;f3 zS0|32$UmV!S@C4UlbuhdpPX|t=j6_lyH1`x`RmDxCyP!NpY%T!a4PIn+^IUJ+MP-{ z)%jG~sq|B`Pt7^C@YLp0xul_sY9m-tN!-<%K47`$o$&*@%at%o8%|ux5|Gh zKRLgBe#iVS`Q7q+5NHlfXkePW%JoAN_Z3B`OL-^Kqzb>M5Pu%zXXC{OCc)t z76iTChS=9~n5~9-4Me8aVIH?0;cbEl7j}}e&G^2L?}zw)gzv|!zVIpH*bc$3FQESh z&mJaV&PJHC37EA(_8i|I8S^`j=Qh-L;Qj$FD|iUm`bUgawF#rJzlizO7g}IHC}FSY z2-Zkw2KjbkO@(2snGnXB3*oGVz>Lks$}AnHz>LGP?i->XnYYSoX#UNpk=O`taUnY`vY-NS7P~FZVfV!8?7o=EaDYF1EH20FoY)g_ z6xv)xi$(Ib^_5t~ITEXrCn;>F#JrD4tZNN9AY#3xNyI)&6ZR7xEG)jYD*Sb}HoPxe zAI|#ft#9drtZyk*@vVoaCDh%lZ|jFZJqyorJUMv2u)ZaHWt}2?V_nL2SO>EG*4Lzi zP@jhR8S4b$D!$jP^)gEdv8|LZf1S$ddmzuvCk_T zLnu0+df#Yb{iD0G0nvlmz-VwZqnR=?x+5DE-I=9Dr?B+s4s0~sWZ;<+-B!qqW&>|T zGwBZWu1zd9a}x`yn9aOvX0t{UvzatGyA7L?&5Unm6PuUank|IcdgybrTQa-bTU~F) z=3+?qW1>JIkp9PQVBiy0MK^$*M&Pk0VRbkKyDSbsyzeInfF8!G02lG&LW{qEvy20) z#J*uwqpC%H)BSY!;*6aqem`;X#Gfa`lZKPQCli1B>bJy;8!i_85pw%pNdo%dDeg@7 zba$3}p?kG^ojce4xjWCj$Gz9RAARr<^uJf!*WI_>4{>JkV^4b_l5yN>Q{4dFEZtJw zkGiWkVAQN{q@SQ)t3R#J*H<;PGvpY)FdR2jHjXg9Z#-`dF|{?#!Hn?>({YpDE7L38 zJJWli_j>Qoy&rkk^J(eR)n^E1OgTRLeNOurEm4>a4YSO#iM?x?e06l zcb4yRUn!_g(1f5_L8pT%1P=|K7OXD_D`;8JyI^@iZoz?qs|Ak=^tZ!rcfCF2_JrGW zZ+~%n|Lrrki*Lu?8FeT3&Vf5u?>xF=yc>PD_ubWZ58SrErEo0)u zegg&$8l+v-G%AhX)08oO;-s{UenZnT?*E=TJnh!7)KS0p8#FX+bjFymL;4N6m3B)N z&`|^F|Hr_Amj+!LoH}I4&}+j-+{A59x6()789nCi*o^z*#`7DWhKwCQvET2%|32u_ zrJ-rJZr#ebe}5vxQht+6M}=qdBx;(_qm}v79F%E|t`NV{i<9}?Keh=~ZR$OZm}%hG zv3b{y(YQ5i><~@=)BqPErm04)+IDQ7)Vu?ClsZVgAh6WeDD{%D7adI;k=Ab@H+x- zk;6@IJZXcAYgYXsnFhJUFD^E2_jNxx_5E{=gJPO>EV5r~yz0TUW2P~;Jo?9tFAl0+ zacZ?m4Rt-s*NWIQt>L#n7EGF@OZVs(H7xb#`F?lIUTf-WzX&eRH;)n*{3)5P`e$km z3@*<%Peke@&%=dkXFPtFnzbE8#gYDWw2Onz)xJ;t&*o9X70V!S)076ZFQKo`Z=vn| zzNh-5D$}v#Ce%u~K!)qF6t?&%-KbDPkspWA)kfKLKW;iT`#P3ZUwfUlMWj>WlsEjHyiQdge@l<74d}f4ZSq+zlW+A~WbFPXjkJ!W!&B;z;YX}wV}eM+RNGv5yj7y-g3}b+ov{94Z=qova`CA$_lT6gDqHt4s`aXA9BXfs~7vy@VR*u zyeEl%O5II{tG`mW8Bz4+xIMHf>@8~c(K!n4a+Ka{gpGhYH`SWbn0D2?O3T}wr>`g1 zq=YW30JF5b{w$M()D!)c2Mir7XW<2>fXiA@z-%GoL*U$%h zc2RV4BALMjeq(YA`s0-tTD5m2)#^{Q?bvIyE&FY%+vxTQ}>RQaM{9_blVt8!H0gMbv4{H zID8nb=+ckgFG`{*Q%_UHLEEY3)!B6UyS{X5&rdX>j)8hLK28DWPf^zf*o3fZF&(Q| zm8!mRl`eKoro9JhlKzhXx-j`i3d~EPyA`r2=t2*QEmxan`1Pk5Eg9XP--ABbI+en& z-JzDPo028Kc>E{*ONZE9UdXAq;8+Og0ehp{QoG}yVqq*HF z?bNpvvuOa``|d}YH|-Wh?1bFTf#!7JmpW86=NRqkH;?>&z)gP<<;kzbD%#U+5AFZH z86|(Rh$s+8J~sV;B3oUeCns=!$c|zPUwV+z59L$2M)&FF?M(Xg3XZ;eR2BOlm(tEx z8d0p_Q!+KbOSAk|(-zyS6#LmaN?N>&UaeW3%$>07HG3fqzhb2tKfXm116ot!#EW$A zx7l=c>DzSi^6Rvs#@jUOui@0EPaXRDi8r-exs6gcj-XdYH=%jGYSKFYFX)>~2AWr+ z3OyVfPfj_Eyv&SV(hs5N{H~OgyO73S5$M~KmFeN+O*E?IXj&I=i{>xgMB5fUprbFh zr^CiOWLsW~?!PpJJ{d5C&Nb>ou3jR|oIRB~b%><81M_I)X$xT*O+DIVP}^6IQ}d3a z$Yj__QTK;Z`N1d1p<6?}q!ilL0EhdI`<}8M2U4rylc|E^D|%~aB<($jHHPvXY2n3T zH0zhy6g@hHq>VdhylyE-=XBgYS-F0`4OFUzeM#G`cSu^an%1k zf9m(+*R*f;mt=8$OULd=)GEV4H$HzrXDfb9#`3u|JEA%boH33J4Qi41(hzE2KbIUHi?aAkfGoKRddayku_FO{5Bn#ZT@t6cMrP1cn|IU z;3aB%;62K&`x9N>T!*$SUP|Yh458ow=V{#BTQua&4pe-$E`9jU7W&P<20=mQqBArw zc`*GYZ>PvXPU_P6J4$jxX6f;ll(FM3RbBEMZOL@f;JFV-`q7^XD=PHMpA{(K(~Z<6 zbOF`*$v|zJT%&S3Hd3uhpHV?>2(=rOL&tW$N2bO;)MLU=RO#_Jdi70-W(SU@y_;T! z2>wO7b%SVC>#nrt%y!Bh{1uHm3@T2jKp)?Zp}8w|((Vt&(;F?%(8FHqX>aB|dLJyD zb2nE~4ejy7r-pqGA`YEgBp4-c~QGh`pdAawE24zE z|4_p5B6>O{gzR^Gp>Dcxnyal!Me~cPQMXd04s1j2&hu!%u@{(6dud6imVOGv_1zO= zXwI$P)be39Tx;$@_0{d@eE4N*c`<`dgcRW=a+}C5JPOPVilLk>= z_cR)GdNegF)YGle$@K2rPgHKeVp4S8Mq5UVrz*lPr0e(-Wh<;`^8I;q{=p$S;rllY z&{V_;2;4W5zKizZHezplV5s)z^7K>0DcWq`g)%+bk^Q|G%Ild;0~>#$-!EiQ{#zBz z^nXBW{PD2Z@m92D)hU`f@&*MxIYR|^D$~)69Ni)YrQSk14bV<98 zx<$m$*@~0s!xdcFjeJN4&mYAr^1SKszH$_G^gDX?gD*wpE}(K%o6>COvh-uX3bJa9 z*AUK_f{&yer{O*EggTDhuWnbSg-4Ij=~Z8-Ra!%Oqdi3{&a|i8wBd9h?I2yrE>D#b zno-z@w$yZZ0;ODjLcc4HQ1G~)shj&+syIHIiX8jWqj#Svu}dgDp4XKAyfKHq9N0ld z!&PeD?mV^Vq^6E;o>b#@7R~-rhCcV5L@jFO($E8QXkf}B8df)(+MjjjRP+u<}dKA@}0$+Bgf7U&uaW}?OOyCwex@!jcyx&Ak;_KmiJw7x_ z>p*Vq^Qcp=I7)c(2R&PVgZg~-pyJ_wQcb4|bY|27TJfm~T|aq-oX%XKyQB9|uQPa; zTaO9kHm?gcoxXx9sOOV={}|FWb)_CBDp7ocB$}p7ptRFZ>Dk>FI^FpsXR+sEm$R9-V_0FEwh2wEG3Od2}P}HB%k>hn^pR|WhwcZA``zN-ErdQQK4~`Rc z?14}7{nNeqloOr1tk?+@X-)3L?JPFxlazAJmnA$XUNJ=p8o&V6yhoX!K+!x;F{mLj@4VYhH#<(Q?+*#WEs!xnU<@bT@ zhFn{ujG9~Zdirgn@G0?QJ>BJn`UmgtHxAA*3hJys)B`{GDznx^JNGuAxUt(-uTnZCd<+?R&?tN{7AuuvI&G3@0SKcmp#WyL9LZ?Dwf_}+F--Wa3c z+oE%~53g1$e?Bs?)%;;bVO__07h|6<(bu~DrS9MXMq%-(ZJw&I1^_TOw`AT8izCo8;8HK-|*GX>D zOQ*a)^RcF96QeNBVX_dDu~I+V@9#$szcUK0c9sr(^dVOH=s}&o*VTsoPlUOyaqFs2 zx_u{Sma|bfP^N4|Y=?zPN1LbH=2kKaODh^OUV}`+o_yG75bQuaE6?e~GfVn*TnBF9yMOOkx+^=6U)z8C(Bi#s}Z*#5>KBsTM|QCKQPACPMoy62TaxYm9}xBRP<^&d7oYkT*( zL8w~e@_rYW6#cWb%BPw=F$kgk-M9DNFjrZ(ZKeL(9vFlLL5*hkR$8vFsoQ1S^Nv9n zlTf|)lI0SotpfK`1|fa#j9)J& zO;I*7>Po}mjmgu)PT{mUl5rfcY^YVMy59aH; z2VB{7=a4}d-_hyV*$30~v4hqPZ*ssOy#GGtl~<*CdZ%S$FKqb*`EM0D+qGM+ywmVt z`(Aqug58=0Ee0GjK`1?}=Ho|xNy^5oR!mxwgu~UZWN? z*kKUbW%@VyqxA}9Z@1l5!?qiQ4O3FoeV;DUm%caU$fKCKtWPxvu}9j@-(6{v{=^-}=t_tic7$da1O4E4)AcfcTYeqkr_TGff{g{#AZ7;^{vu%=3hEP_891!y)e2?nlP#@YBkmLO z`_4x%HOdJCue5)Q`ggywzr~r2@%l=x-G((pd)s#C^5#&`a((5?{ZkTPkJ`m9o#%|x z>35&2=j94}X-7ol4!*HM|9Y9{n%ijxffke>6SzA`nG&$z_PL)8!hshBCtDm|th}4* z-u>AwgHZhZ%v#?=8vP>AgVkE2zdXmk9ToRJM%jL9)s#Kx&$zC&x7R7XTz|HBspA;* zcjMY23o~|%)jvCPDZRsCgD~ny(#((bLiA2UvMzcaH3&a{d{?(ek7fG710QUNJ!TO4 zB?jCIxiD9MwA6+0H<<>Z;pL@GzU-Z>Oe)wMyY#d{_%*W3qjuLqmG$a9aq-JC2!3@Z z)U`b`U$1#KHYOn3Alz*A_{qGQ3zcn}^?kJ_2lMGy{q?KAF4d2%-)*1GP0Y7ehPAD- zlawR(x2(MWwn5lGI#N3)XpZtk(R80+%&!CM5?5V%7^|Q0_WFrn%)j|z#mom z>XN)U%6?ZzG=J03CEZ#(RnmM&a7Q>^SEI zI{l|pV|^U4zJ`4&7RK&gqMw;is&BJiMxoD+=#G2JCF%c4DCaPLkWtuPs_VA7o1>KT zw|u_mJklsQ)%8%UUmB}VjyqrNi7(1ucJk)n(TU2rt?%0W5o8ql1zYVJ)p?H6_kh(~ zH=HJ`)9pYhx0|v0@oQq*teR;Q&X?=e<%oNNzVXJtt9Z>b3fJR1``R9gQoa`!K5w36 z6edTk^L}+EP8rw#+-L9AMxkKo^(B=)EYaUd+Olcy7OekK^&ThhS*(8(nAoiMUZdck z_*tbtm8fhuT5YIt)F`xmx#QG|CUcaljs|yVa>gha=3Z^J!+(L&qo;Pv6dZ3~Kk4%H zXop07mE&u77v072=+e>wT@t1$bCcH3KKa}zBxL)lPTCDszL~tF$!~9s!oVva8m(OUHsbx?@d=swyh>X0C0(rALI2R}>S z%wNOBDe!oGF!HPYn}unSNo=8{nmkRd6s-Zxuvw2VJdN)snuu*0g)V@d@RotEri%&+ zMfLCq|F`4-J}phX!y=;;L6Hjou&G*eBw8DxQTt64YpU}1hvGsM#MkIBJk2i| zLNt2MX&OJ%r;o*c=7Nwk4Q3?&7&Zav$FXtOE8Zte+&`Pwo}8Rp*+mb4^K=FjZ$L*N^{IF zYzih1&#=J}Fn?Hdqyl}c;mPvN%<@z7l?)_#MQf#j#QB3l!$UM|OR2X)F$8b{geL-8 z&V49Nnm(AQQ9%JgP#b{>G6if;sjpdyT7h>lXw;$H5OJb?wUo@_vB@J-o@5d|61t>W z7D@eK2*pHoq+)^wy%DKFn^4B!h_I+IzpxN___0Oh8cGxXYwz&5od9tpTSgvek+7*I z3Kflv3c@=sczKcg0|mMw4jM$;R-blN?47NX^1?26u}y) zv%VUjA5wTAYo>*ZYoIAE4s6U&tgHUSiBmy}&`iRrj#-A~JW>-O9*FQQbUVkDR$Hyd zP=VD!yxy(8Rh)e-n-#Xjc>JT4jibFDH)_nXxquht-LcWcM6J0o7+^~k!meNXGT6l)z~6NcCFy|r=1Luq$x`r8k) zj2}HwQXVd(Y7NVukf9hOy_Y6`$zlQr8<@B zQ)*l(Tn+|N<${;%;2j05(@s>3SHQqIN?{@wybcF)n=-h&g-Sa*<8?gt5IT}Q=i!{H zlk4no@8{PHj^#KR9|X6i(wtlxZ>YeZ>N9v&cvZsu^>&U`@ey^xtB+ZXuZ6?mKV%0X zv%+WRPcp{|$+rBDO5@TE9R5RQWDdUe{uzGlikvR~D_x0$cv&I;@%<34cnV*&Z-bp< zc~eXz;Ei2RkZ4r}n&4Nh&Z*+R($dRu@E@{uso+#2)eiU#t1?IYSGpPp3IFj|^1U2* zF9z84Z9r(tENlKp)DRley{+)X1}+`|dx3OP#c#B8?D-4A`v7+Pfdjxn;1F;aD5>ij zzQK9mKXv8(e{?+_NR;uPx-vHXKk9X{`@gm^X|tVU;Q!Xf47BqIa1?;^AdK?V=T>-< zh43s3;RRJh3V=s4ZehY7KI2_nJPT1u2e%Oikf=)DD)s9Y_CJy8I{O}^dJ5lxbKoT1 zEK<$cX6HDd6tb{!j{_%wOyDH&8*mCZ4V(ea0_T7%;5={vxCmqemw?N_6;kCvr*?@4 z;VwJL74;+BU?aIgH^OO2$wdw$x-N%9Y7^eCCAmHb-;~3*`{KqkQ&>fKlt*$safUNj z4ttKlOGmb2&bLcO0}&`+9l37HQob(vg{4g)jZcF#1?Aq6rB@(LMdE}BJqY*xNNy^o z%{@8%x;^3LZIXMA@B=w~9A`=&%Hi_EiSp!d&CW!RckL9piXHqTNVdvN&r5EAN zb&?B0p-<&-548H39Db-GRTjust?qS#jetC$=0>TX{s8OW`sq2+^MOAB%YH)iU;0TJ zL@yxwH(f80{t9>v{9kp6gAap{-Ld+TZ-8e63V=7jU!+RgY3Eq+EyC}BzX5jd(O{&v zwnF#=PzZbkJ^`PBFF+CS4^Ry7z{l{%BYUJ;vCASO-rz<2>Mc9K9w-G^X2ge9%^CAJ zqYadmMq(Mj5y16lDhHGYoB)1r7`uwHUkN2{*^L8BWh7JqIK3+VRRgL6&VUQx3Zib0 zo#Q-v?NZcXCDF@yFlam)=t8(og1U7>8p3}JC91E&8(lkK=40sAfXo|X=lyt$L#%RI zA56L$m|z$L-(m0$zz~{_d^;hFfxnq$h*o=GHHG|SEuwA6vjecj zIMvp{)Nsb6g*+d=0XPC#Om!F+dKSZXhn_Xi@e_1TN10b3&w}2;V~AFPe*$&gf%U4ba^PZSD_#7jR~vZl_#`mO|%z;7S#uF=$^l(x*VzRjv!*fwazOO90CI z3;py6^;?Pfcj%`S@FJjNGV*>v8GoRUx1fwoD1RmDUamjtGZO7X+C1p01l^y}mu-;e zNARaX$8m%wp`Igri3R}<=%Ynw&uMV$LDme22JZ(f6@MXb1pEr9OL!+7O<~7m)ad|h zc?Wr?VAAzOTlA<;K4jkD2BN(!(S|FqO&g@$hinGw@)s86FVOKW1(OgqY76dg)Z-}p z6yP$TMZHr|wiC)bjPP*idJDfH5Q-z_EEm|f2HJ{z3jrO_8D%v_-J@Nh3w^i|WyFHt zau9BnI)L?W%rv4FvvL1T3~re7#};4$QMW{*ei&?fCu4=1LDV{sRGA=8;zT(?B!wY! zf0XPcU|#@Olk99Izn-t;*RYcOn(%7@wE=vjm=u5;P#35Nu=@^veazL&gLaP9v}kT& zbtGVl-9b1LL*;gN9Mm9eu0~rf!``1@vlGdz}8`}}R!yCUOM5?uhN^5kPgH%_tR>2^+ z>nt6@2D2cr1xP1JH>2Wq6*@wh!Fd5(n&?bs2V!?Z5Ms z)sRBW7mDG;YNeefYU|9~PB*iychrm0ayv}6s|jTlD>&IpSuy2!O0uDk!qC&|$n}t$SssS2%rBROu)VGemU?v! z8&l4T&{S3JW@m~|l;nK85#4)Co@$d}Yh<=RfDu!DDQx{KB7rE=ISFMVQmykKlPyTB z^GPsWAxvjxGMZKc*)kEa+l`*AiDq)HUMRd)1wLd+?jdBg-B1|k+ArtQ=@H3>qz<|~ z36TaGWK&pV3&W(AIzsAaXBeLAoC&g*BSx?!gpXos)s^E4sm#alMY(B=@La@@F;%J` zrj8q%_82O>RqhuLDKE{%oT`h#mkyzQFBqgAm?sgjLmzyH@tT8h`-QM+eYJzRw??D> z4cw}l<57~FkME+pgT)p`VJc} zw1~z4D1}-eKH4JgfW4JvyffruWiIFGCC5=KQHQszk9DzpgdFEE<9mxZb3S4Yao_yo zOB9@dV{-zA^luo2aVLpd1>(()Q;GWGuwp$!46E`W9KxODfn3FCA8bdlSRc_m+_i^; z6#P+Wb0YAr0}Khj4$|3OA0}G)(3 zEX#pkdtzlcjc3Vsj%0;+i7mzsPdZg9Qfuw)EKMpm6kv^XUlhPYm5)n0?3uxV0hpu8 zMHru&AyqyC_0OY4?4GBfAJCn5R!Q+;$&$~r8rxOMs)f{hf#JD1Q3CXD4#1835} zK0789Fu|q0lpvOmBDe+Yn2>x97HkfiuoDRiSSKB+*6ktAWN~THz!u_M7I%O+9|6~m zatp-VWi#=u@N@qf(N-9FEgTuFkTuXvUgUO1lL3aTfLQ80{B&1mqOd3ob#Ts&$5LH5h zC7}=mCli4m4s$~#RY@0N=uXI=ia_@<9#R{)0JjP{)6p4kqr%P{P_h8d#51XplZh1- zKv9R=SmD^QfEAetB^6onW^;Ygvr(U}P?L#((=#lB>^S>u2ONHLS=(^AaiO3ajKyM}!5JK=if#XC1aKMx)z0Ch0g&Y(;51%k z(P$PIvUniG@z)_P=PQX>vl}-$6{*&PAWr9iYcEpi5wNl1r7eq-xYS$@+`)4*PtCFd zP8tlE?grGV_^1eHwnj2it#PhXwF80j7K2}GZ6-^HK$^puAIam>+)w!|7Ei(>;95aE zR(P;~J=|ier2uSA0;G|)YWpN^!-lQ=%tLM&E|2S6%P>x@QpjEwK$H&sbBL=f|X``W}B zizEiKo^>z5Dgdhz>l!D6S&y*0SajRYaj2Em*M)XG1imuV@H1S#QDt6`{}&z%3e9yU zK!YFP4`_e{%L&5OPrCDeVP$~TxTLPVvOU?{;%93}CERdE6q>44j;rt~F2$5S5iu{F4_(?v_nDT37LKq0C z4?*Z^xiy3pEeTmncq<#pq#@iwLje=kmYDOCE$Wb*2SRE+u}$WljIbbNGNH4_w}eOw zLOv57$plj!qAco=^azCCWHWI(nSm7Oaz?;p#TKypZM^BfQ>j_Xk00-VC{APX z9EdYmJOIDp*_p*TES?K-9*gJ5#^ohZ%w5Rhc@W3vL+mUomxejYPDQHqe2CLI&=eha%;6IS zD!rML#hgUQm&izh&nFL5PtBYHgz79s`Z5{I;qwUvcKlzgb@B_aRv`M5jFs^DG{ZNn zOlGY@Vlt2dtOi<^!9O_BI&6V_X01WuT3{W(HBTz3E9oUz>ml7>!CGCCmBB2|&w5O{ z_;d$5bBTHX6HDw=u2=l4|3MdP6fKedZ!A8c@=b}k{}anxqV6^Nr)2F}mns#KO5zc= z5su*4c(O}{AQJ-DFY<5Vl7x*QsDZO%>`D^0 zfRM+8GXD)>D+uvM5b*t4(TTla(TZ&#q=R7Hm^bGL*hrgmPTCGxE(ad0G3nP6@p6O!J7(A09T2@R$eG9iNr zF-xT)Oci9G9TW1HFjXc_zHt!yRkhonLf+~o6jCJkjR2pJ$axm%v#|~G5AaE8q2V?=~feXMzARD*@Tn4V7(+a-WIYz9< z?~0uOyN{!ARe1zD1O7!|IU3v;l@3ALuiy+sTElL*1ce6S^+EKPO3X&jaWNwqzp;`a zS7RE!mFLP+#MxcOPta4)lMlaW2nsI3g(bXW4HsH~Yru8j25=Mj9k>OsiF4uK2JQfN zfqTGx-~sRu$O9e$kAWw^Q{Wl!2k;!o2mSd+0g;9??Ql z+1BU1hAI`ZO;$dOaP<}Vm?Xh_D=rrSvk=ePg4)C12K=)VwG5GJT>x!wfWLsZz&qe? z;63mGC>4k z_gN*$!?zSz><-H((s7MjbSbMOzqA}5gx+9RMvniw1~>m8Toxz?WO?ESAoxx|1>l?t zciDhn5#dSz{-`qkRROBX@oMm^1I~a8fY;zq4WK4a3#bj$0Tci(rmGIb+B=SWwHf0S zr~-3xr{lUP)dRi*>H`gchCm~rG2jj~0h$8MfaU;hfTfl)TES=68h#rTvNq1%v3y%Z z+5tr=NL-DQkvPw4>tI~x0>%M*ag-~X4wXSt_PE{XrPU}NcF90^H2fsQ`y+e-{@$U| zg+#uf$R*-oWDy=^ zc**Dmzc;m8i0uzBCU=k1vgdjr!GT852h7y)xvL@I&ezw|tHPSDp3dPf2~fM_5T={~T1Yv?+GxC(GacsYClvd0)!uM$vi v=xqS~UXbBE1k@C|mO>sm6U)*xbnZkKI?U9< literal 0 HcmV?d00001 diff --git a/dist/assets/sqlite3-opfs-async-proxy-B_ImRJXp.js b/dist/assets/sqlite3-opfs-async-proxy-B_ImRJXp.js new file mode 100644 index 0000000..54ced98 --- /dev/null +++ b/dist/assets/sqlite3-opfs-async-proxy-B_ImRJXp.js @@ -0,0 +1 @@ +const m=(w,...t)=>postMessage({type:w,payload:t}),Q=function(){const w=function(...e){throw new Error(e.join(" "))};globalThis.window===globalThis?w("This code cannot run from the main thread.","Load it as a Worker from a separate Worker."):navigator?.storage?.getDirectory||w("This API requires navigator.storage.getDirectory.");const t=Object.create(null);t.verbose=1;const v={0:console.error.bind(console),1:console.warn.bind(console),2:console.log.bind(console)},A=(e,...s)=>{t.verbose>e&&v[e]("OPFS asyncer:",...s)},g=(...e)=>A(2,...e),S=(...e)=>A(1,...e),h=(...e)=>A(0,...e),E=Object.create(null),I=new Set,k=function(e,s){const n=new URL(e,"file://irrelevant").pathname;return s?n.split("/").filter(o=>!!o):n},x=async function(s,n=!1){const o=k(s,!0),a=o.pop();let i=t.rootDir;for(const r of o)r&&(i=await i.getDirectoryHandle(r,{create:!!n}));return[i,a]},R=async e=>{if(e.syncHandle){g("Closing sync handle for",e.filenameAbs);const s=e.syncHandle;return delete e.syncHandle,delete e.xLock,I.delete(e.fid),s.close()}},F=async e=>{try{await R(e)}catch(s){S("closeSyncHandleNoThrow() ignoring:",s,e)}},D=async()=>{if(I.size)for(const e of I){const s=E[e];await F(s),g("Auto-unlocked",e,s.filenameAbs)}},T=async e=>{if(e.releaseImplicitLocks&&I.has(e.fid))return F(e)};class b extends Error{constructor(s,...n){super([...n,": "+s.name+":",s.message].join(" "),{cause:s}),this.name="GetSyncHandleError"}}b.convertRc=(e,s)=>{if(e instanceof b){if(e.cause.name==="NoModificationAllowedError"||e.cause.name==="DOMException"&&e.cause.message.indexOf("Access Handles cannot")===0)return t.sq3Codes.SQLITE_BUSY;if(e.cause.name==="NotFoundError")return t.sq3Codes.SQLITE_CANTOPEN}else if(e?.name==="NotFoundError")return t.sq3Codes.SQLITE_CANTOPEN;return s};const O=async(e,s)=>{if(!e.syncHandle){const n=performance.now();g("Acquiring sync handle for",e.filenameAbs);const o=6,a=t.asyncIdleWaitTime*2;let i=1,r=a;for(;;r=a*++i)try{e.syncHandle=await e.fileHandle.createSyncAccessHandle();break}catch(c){if(i===o)throw new b(c,"Error getting sync handle for",s+"().",o,"attempts failed.",e.filenameAbs);S("Error getting sync handle for",s+"(). Waiting",r,"ms and trying again.",e.filenameAbs,c),Atomics.wait(t.sabOPView,t.opIds.retry,0,r)}g("Got",s+"() sync handle for",e.filenameAbs,"in",performance.now()-n,"ms"),e.xLock||(I.add(e.fid),g("Acquired implicit lock for",s+"()",e.fid,e.filenameAbs))}return e.syncHandle},d=(e,s)=>{g(e+"() => notify(",s,")"),Atomics.store(t.sabOPView,t.opIds.rc,s),Atomics.notify(t.sabOPView,t.opIds.rc)},H=function(e,s){s.readOnly&&w(e+"(): File is read-only: "+s.filenameAbs)};let L=!1;const _={"opfs-async-shutdown":async()=>{L=!0,d("opfs-async-shutdown",0)},mkdir:async e=>{let s=0;try{await x(e+"/filepart",!0)}catch(n){t.s11n.storeException(2,n),s=t.sq3Codes.SQLITE_IOERR}d("mkdir",s)},xAccess:async e=>{let s=0;try{const[n,o]=await x(e);await n.getFileHandle(o)}catch(n){t.s11n.storeException(2,n),s=t.sq3Codes.SQLITE_IOERR}d("xAccess",s)},xClose:async function(e){const s="xClose";I.delete(e);const n=E[e];let o=0;if(n){if(delete E[e],await R(n),n.deleteOnClose)try{await n.dirHandle.removeEntry(n.filenamePart)}catch(a){S("Ignoring dirHandle.removeEntry() failure of",n,a)}}else t.s11n.serialize(),o=t.sq3Codes.SQLITE_NOTFOUND;d(s,o)},xDelete:async function(...e){const s=await _.xDeleteNoWait(...e);d("xDelete",s)},xDeleteNoWait:async function(e,s=0,n=!1){let o=0;try{for(;e;){const[a,i]=await x(e,!1);if(!i||(await a.removeEntry(i,{recursive:n}),s!==4660))break;n=!1,e=k(e,!0),e.pop(),e=e.join("/")}}catch(a){t.s11n.storeException(2,a),o=t.sq3Codes.SQLITE_IOERR_DELETE}return o},xFileSize:async function(e){const s=E[e];let n=0;try{const o=await(await O(s,"xFileSize")).getSize();t.s11n.serialize(Number(o))}catch(o){t.s11n.storeException(1,o),n=b.convertRc(o,t.sq3Codes.SQLITE_IOERR)}await T(s),d("xFileSize",n)},xLock:async function(e,s){const n=E[e];let o=0;const a=n.xLock;if(n.xLock=s,!n.syncHandle)try{await O(n,"xLock"),I.delete(e)}catch(i){t.s11n.storeException(1,i),o=b.convertRc(i,t.sq3Codes.SQLITE_IOERR_LOCK),n.xLock=a}d("xLock",o)},xOpen:async function(e,s,n,o){const a="xOpen",i=t.sq3Codes.SQLITE_OPEN_CREATE&n;try{let r,c;try{[r,c]=await x(s,!!i)}catch(f){t.s11n.storeException(1,f),d(a,t.sq3Codes.SQLITE_NOTFOUND);return}if(t.opfsFlags.OPFS_UNLINK_BEFORE_OPEN&o)try{await r.removeEntry(c)}catch{}const y=await r.getFileHandle(c,{create:i}),l=Object.assign(Object.create(null),{fid:e,filenameAbs:s,filenamePart:c,dirHandle:r,fileHandle:y,sabView:t.sabFileBufView,readOnly:!i&&!!(t.sq3Codes.SQLITE_OPEN_READONLY&n),deleteOnClose:!!(t.sq3Codes.SQLITE_OPEN_DELETEONCLOSE&n)});l.releaseImplicitLocks=o&t.opfsFlags.OPFS_UNLOCK_ASAP||t.opfsFlags.defaultUnlockAsap,E[e]=l,d(a,0)}catch(r){h(a,r),t.s11n.storeException(1,r),d(a,t.sq3Codes.SQLITE_IOERR)}},xRead:async function(e,s,n){let o=0,a;const i=E[e];try{a=(await O(i,"xRead")).read(i.sabView.subarray(0,s),{at:Number(n)}),a{if(t.s11n)return t.s11n;const e=new TextDecoder,s=new TextEncoder("utf-8"),n=new Uint8Array(t.sabIO,t.sabS11nOffset,t.sabS11nSize),o=new DataView(t.sabIO,t.sabS11nOffset,t.sabS11nSize);t.s11n=Object.create(null);const a=Object.create(null);a.number={id:1,size:8,getter:"getFloat64",setter:"setFloat64"},a.bigint={id:2,size:8,getter:"getBigInt64",setter:"setBigInt64"},a.boolean={id:3,size:4,getter:"getInt32",setter:"setInt32"},a.string={id:4};const i=c=>a[typeof c]||w("Maintenance required: this value type cannot be serialized.",c),r=c=>{switch(c){case a.number.id:return a.number;case a.bigint.id:return a.bigint;case a.boolean.id:return a.boolean;case a.string.id:return a.string;default:w("Invalid type ID:",c)}};return t.s11n.deserialize=function(c=!1){const y=n[0],l=y?[]:null;if(y){const f=[];let u=1,p,C,N;for(p=0;p{c<=t.asyncS11nExceptions&&t.s11n.serialize([y.name,": ",y.message].join(""))}:()=>{},t.s11n},q=async function(){const s=Object.create(null);for(let n of Object.keys(t.opIds)){const o=_[n];if(!o)continue;const a=Object.create(null);s[t.opIds[n]]=a,a.key=n,a.f=o}for(;!L;)try{if(Atomics.wait(t.sabOPView,t.opIds.whichOp,0,t.asyncIdleWaitTime)!=="not-equal"){await D();continue}const n=Atomics.load(t.sabOPView,t.opIds.whichOp);Atomics.store(t.sabOPView,t.opIds.whichOp,0);const o=s[n]??w("No waitLoop handler for whichOp #",n),a=t.s11n.deserialize(!0)||[];o.f?await o.f(...a):h("Missing callback for opId",n)}catch(n){h("in waitLoop():",n)}};navigator.storage.getDirectory().then(function(e){t.rootDir=e,globalThis.onmessage=function({data:s}){switch(s.type){case"opfs-async-init":{const n=s.args;for(const o in n)t[o]=n[o];t.verbose=n.verbose??1,t.sabOPView=new Int32Array(t.sabOP),t.sabFileBufView=new Uint8Array(t.sabIO,0,t.fileBufferSize),t.sabS11nView=new Uint8Array(t.sabIO,t.sabS11nOffset,t.sabS11nSize),Object.keys(_).forEach(o=>{Number.isFinite(t.opIds[o])||w("Maintenance required: missing state.opIds[",o,"]")}),z(),g("init state",t),m("opfs-async-inited"),q();break}case"opfs-async-restart":L&&(S("Restarting after opfs-async-shutdown. Might or might not work."),L=!1,q());break}},m("opfs-async-loaded")}).catch(e=>h("error initializing OPFS asyncer:",e))};globalThis.SharedArrayBuffer?globalThis.Atomics?!globalThis.FileSystemHandle||!globalThis.FileSystemDirectoryHandle||!globalThis.FileSystemFileHandle||!globalThis.FileSystemFileHandle.prototype.createSyncAccessHandle||!navigator?.storage?.getDirectory?m("opfs-unavailable","Missing required OPFS APIs."):Q():m("opfs-unavailable","Missing Atomics API.","The server must emit the COOP/COEP response headers to enable that."):m("opfs-unavailable","Missing SharedArrayBuffer API.","The server must emit the COOP/COEP response headers to enable that."); diff --git a/dist/assets/sqlite3-worker1-bundler-friendly-CqPDHTTx.js b/dist/assets/sqlite3-worker1-bundler-friendly-CqPDHTTx.js new file mode 100644 index 0000000..223325b --- /dev/null +++ b/dist/assets/sqlite3-worker1-bundler-friendly-CqPDHTTx.js @@ -0,0 +1,3 @@ +var ot=(()=>{var Ie=import.meta.url;return function(qe={}){var be,i=qe,ve,Ee,$e=new Promise((e,t)=>{ve=e,Ee=t}),lt=typeof window=="object",Ue=typeof importScripts=="function";typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";const Tt=globalThis.sqlite3InitModuleState||Object.assign(Object.create(null),{debugModule:()=>{}});delete globalThis.sqlite3InitModuleState,Tt.debugModule("globalThis.location =",globalThis.location);var at=Object.assign({},i),ct="./this.program",ye="";function Ft(e){return i.locateFile?i.locateFile(e,ye):ye+e}var Ke,ze;(lt||Ue)&&(Ue?ye=self.location.href:typeof document<"u"&&document.currentScript&&(ye=document.currentScript.src),Ie&&(ye=Ie),ye.startsWith("blob:")?ye="":ye=ye.substr(0,ye.replace(/[?#].*/,"").lastIndexOf("/")+1),Ue&&(ze=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),Ke=e=>fetch(e,{credentials:"same-origin"}).then(t=>t.ok?t.arrayBuffer():Promise.reject(new Error(t.status+" : "+t.url))));var Je=i.print||console.log.bind(console),ke=i.printErr||console.error.bind(console);Object.assign(i,at),at=null,i.arguments&&i.arguments,i.thisProgram&&(ct=i.thisProgram);var Qe=i.wasmBinary,Te,_t=!1,ge,Pe,Ne,ce,he,xe;function ut(){var e=Te.buffer;i.HEAP8=ge=new Int8Array(e),i.HEAP16=Ne=new Int16Array(e),i.HEAPU8=Pe=new Uint8Array(e),i.HEAPU16=new Uint16Array(e),i.HEAP32=ce=new Int32Array(e),i.HEAPU32=he=new Uint32Array(e),i.HEAPF32=new Float32Array(e),i.HEAPF64=new Float64Array(e),i.HEAP64=xe=new BigInt64Array(e),i.HEAPU64=new BigUint64Array(e)}if(i.wasmMemory)Te=i.wasmMemory;else{var Ot=i.INITIAL_MEMORY||16777216;Te=new WebAssembly.Memory({initial:Ot/65536,maximum:32768})}ut();var ft=[],dt=[],pt=[];function Pt(){var e=i.preRun;e&&(typeof e=="function"&&(e=[e]),e.forEach(Dt)),et(ft)}function Lt(){!i.noFSInit&&!a.initialized&&a.init(),a.ignorePermissions=!1,et(dt)}function Ct(){var e=i.postRun;e&&(typeof e=="function"&&(e=[e]),e.forEach(Nt)),et(pt)}function Dt(e){ft.unshift(e)}function Rt(e){dt.unshift(e)}function Nt(e){pt.unshift(e)}var Fe=0,Me=null;function Zn(e){return e}function Xe(e){Fe++,i.monitorRunDependencies?.(Fe)}function We(e){if(Fe--,i.monitorRunDependencies?.(Fe),Fe==0&&Me){var t=Me;Me=null,t()}}function Ye(e){i.onAbort?.(e),e="Aborted("+e+")",ke(e),_t=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw Ee(t),t}var Mt="data:application/octet-stream;base64,",ht=e=>e.startsWith(Mt);function jt(){if(i.locateFile){var e="sqlite3.wasm";return ht(e)?e:Ft(e)}return new URL("/assets/sqlite3-DBpDb1lf.wasm",import.meta.url).href}var Ze;function mt(e){if(e==Ze&&Qe)return new Uint8Array(Qe);if(ze)return ze(e);throw"both async and sync fetching of the wasm failed"}function Bt(e){return Qe?Promise.resolve().then(()=>mt(e)):Ke(e).then(t=>new Uint8Array(t),()=>mt(e))}function gt(e,t,n){return Bt(e).then(r=>WebAssembly.instantiate(r,t)).then(n,r=>{ke(`failed to asynchronously prepare wasm: ${r}`),Ye(r)})}function Ut(e,t,n,r){return!e&&typeof WebAssembly.instantiateStreaming=="function"&&!ht(t)&&typeof fetch=="function"?fetch(t,{credentials:"same-origin"}).then(s=>{var o=WebAssembly.instantiateStreaming(s,n);return o.then(r,function(p){return ke(`wasm streaming compile failed: ${p}`),ke("falling back to ArrayBuffer instantiation"),gt(t,n,r)})}):gt(t,n,r)}function zt(){return{env:xt,wasi_snapshot_preview1:xt}}function Qt(){var e=zt();function t(r,s){return h=r.exports,Rt(h.__wasm_call_ctors),We(),h}Xe();function n(r){t(r.instance)}if(i.instantiateWasm)try{return i.instantiateWasm(e,t)}catch(r){ke(`Module.instantiateWasm callback failed with error: ${r}`),Ee(r)}return Ze??=jt(),Ut(Qe,Ze,e,n).catch(Ee),{}}var et=e=>{e.forEach(t=>t(i))};i.noExitRuntime;var _e={isAbs:e=>e.charAt(0)==="/",splitPath:e=>{var t=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return t.exec(e).slice(1)},normalizeArray:(e,t)=>{for(var n=0,r=e.length-1;r>=0;r--){var s=e[r];s==="."?e.splice(r,1):s===".."?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n;n--)e.unshift("..");return e},normalize:e=>{var t=_e.isAbs(e),n=e.substr(-1)==="/";return e=_e.normalizeArray(e.split("/").filter(r=>!!r),!t).join("/"),!e&&!t&&(e="."),e&&n&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=_e.splitPath(e),n=t[0],r=t[1];return!n&&!r?".":(r&&(r=r.substr(0,r.length-1)),n+r)},basename:e=>{if(e==="/")return"/";e=_e.normalize(e),e=e.replace(/\/$/,"");var t=e.lastIndexOf("/");return t===-1?e:e.substr(t+1)},join:(...e)=>_e.normalize(e.join("/")),join2:(e,t)=>_e.normalize(e+"/"+t)},Wt=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return e=>crypto.getRandomValues(e);Ye("initRandomDevice")},qt=e=>(qt=Wt())(e),Se={resolve:(...e)=>{for(var t="",n=!1,r=e.length-1;r>=-1&&!n;r--){var s=r>=0?e[r]:a.cwd();if(typeof s!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!s)return"";t=s+"/"+t,n=_e.isAbs(s)}return t=_e.normalizeArray(t.split("/").filter(o=>!!o),!n).join("/"),(n?"/":"")+t||"."},relative:(e,t)=>{e=Se.resolve(e).substr(1),t=Se.resolve(t).substr(1);function n(R){for(var z=0;z=0&&R[W]==="";W--);return z>W?[]:R.slice(z,W-z+1)}for(var r=n(e.split("/")),s=n(t.split("/")),o=Math.min(r.length,s.length),p=o,g=0;g{for(var r=t+n,s=t;e[s]&&!(s>=r);)++s;if(s-t>16&&e.buffer&&bt)return bt.decode(e.subarray(t,s));for(var o="";t>10,56320|R&1023)}}return o},tt=[],He=e=>{for(var t=0,n=0;n=55296&&r<=57343?(t+=4,++n):t+=3}return t},nt=(e,t,n,r)=>{if(!(r>0))return 0;for(var s=n,o=n+r-1,p=0;p=55296&&g<=57343){var O=e.charCodeAt(++p);g=65536+((g&1023)<<10)|O&1023}if(g<=127){if(n>=o)break;t[n++]=g}else if(g<=2047){if(n+1>=o)break;t[n++]=192|g>>6,t[n++]=128|g&63}else if(g<=65535){if(n+2>=o)break;t[n++]=224|g>>12,t[n++]=128|g>>6&63,t[n++]=128|g&63}else{if(n+3>=o)break;t[n++]=240|g>>18,t[n++]=128|g>>12&63,t[n++]=128|g>>6&63,t[n++]=128|g&63}}return t[n]=0,n-s};function yt(e,t,n){var r=He(e)+1,s=new Array(r),o=nt(e,s,0,s.length);return s.length=o,s}var Ht=()=>{if(!tt.length){var e=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(e=window.prompt("Input: "),e!==null&&(e+=` +`)),!e)return null;tt=yt(e)}return tt.shift()},Oe={ttys:[],init(){},shutdown(){},register(e,t){Oe.ttys[e]={input:[],output:[],ops:t},a.registerDevice(e,Oe.stream_ops)},stream_ops:{open(e){var t=Oe.ttys[e.node.rdev];if(!t)throw new a.ErrnoError(43);e.tty=t,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,t,n,r,s){if(!e.tty||!e.tty.ops.get_char)throw new a.ErrnoError(60);for(var o=0,p=0;p0&&(Je(Le(e.output)),e.output=[])},ioctl_tcgets(e){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(e,t,n){return 0},ioctl_tiocgwinsz(e){return[24,80]}},default_tty1_ops:{put_char(e,t){t===null||t===10?(ke(Le(e.output)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){e.output&&e.output.length>0&&(ke(Le(e.output)),e.output=[])}}},Vt=(e,t)=>{Pe.fill(0,e,e+t)},wt=(e,t)=>Math.ceil(e/t)*t,vt=e=>{e=wt(e,65536);var t=St(65536,e);return t&&Vt(t,e),t},ie={ops_table:null,mount(e){return ie.createNode(null,"/",16895,0)},createNode(e,t,n,r){if(a.isBlkdev(n)||a.isFIFO(n))throw new a.ErrnoError(63);ie.ops_table||={dir:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr,lookup:ie.node_ops.lookup,mknod:ie.node_ops.mknod,rename:ie.node_ops.rename,unlink:ie.node_ops.unlink,rmdir:ie.node_ops.rmdir,readdir:ie.node_ops.readdir,symlink:ie.node_ops.symlink},stream:{llseek:ie.stream_ops.llseek}},file:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr},stream:{llseek:ie.stream_ops.llseek,read:ie.stream_ops.read,write:ie.stream_ops.write,allocate:ie.stream_ops.allocate,mmap:ie.stream_ops.mmap,msync:ie.stream_ops.msync}},link:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr,readlink:ie.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr},stream:a.chrdev_stream_ops}};var s=a.createNode(e,t,n,r);return a.isDir(s.mode)?(s.node_ops=ie.ops_table.dir.node,s.stream_ops=ie.ops_table.dir.stream,s.contents={}):a.isFile(s.mode)?(s.node_ops=ie.ops_table.file.node,s.stream_ops=ie.ops_table.file.stream,s.usedBytes=0,s.contents=null):a.isLink(s.mode)?(s.node_ops=ie.ops_table.link.node,s.stream_ops=ie.ops_table.link.stream):a.isChrdev(s.mode)&&(s.node_ops=ie.ops_table.chrdev.node,s.stream_ops=ie.ops_table.chrdev.stream),s.timestamp=Date.now(),e&&(e.contents[t]=s,e.timestamp=s.timestamp),s},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,t){var n=e.contents?e.contents.length:0;if(!(n>=t)){var r=1024*1024;t=Math.max(t,n*(n>>0),n!=0&&(t=Math.max(t,256));var s=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(s.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,t){if(e.usedBytes!=t)if(t==0)e.contents=null,e.usedBytes=0;else{var n=e.contents;e.contents=new Uint8Array(t),n&&e.contents.set(n.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){var t={};return t.dev=a.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,a.isDir(e.mode)?t.size=4096:a.isFile(e.mode)?t.size=e.usedBytes:a.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr(e,t){t.mode!==void 0&&(e.mode=t.mode),t.timestamp!==void 0&&(e.timestamp=t.timestamp),t.size!==void 0&&ie.resizeFileStorage(e,t.size)},lookup(e,t){throw a.genericErrors[44]},mknod(e,t,n,r){return ie.createNode(e,t,n,r)},rename(e,t,n){if(a.isDir(e.mode)){var r;try{r=a.lookupNode(t,n)}catch{}if(r)for(var s in r.contents)throw new a.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=n,t.contents[n]=e,t.timestamp=e.parent.timestamp},unlink(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir(e,t){var n=a.lookupNode(e,t);for(var r in n.contents)throw new a.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir(e){var t=[".",".."];for(var n of Object.keys(e.contents))t.push(n);return t},symlink(e,t,n){var r=ie.createNode(e,t,41471,0);return r.link=n,r},readlink(e){if(!a.isLink(e.mode))throw new a.ErrnoError(28);return e.link}},stream_ops:{read(e,t,n,r,s){var o=e.node.contents;if(s>=e.node.usedBytes)return 0;var p=Math.min(e.node.usedBytes-s,r);if(p>8&&o.subarray)t.set(o.subarray(s,s+p),n);else for(var g=0;g0||n+t{var s=`al ${e}`;Ke(e).then(o=>{t(new Uint8Array(o)),s&&We()},o=>{if(n)n();else throw`Loading data file "${e}" failed.`}),s&&Xe()},$t=(e,t,n,r,s,o)=>{a.createDataFile(e,t,n,r,s,o)},Kt=i.preloadPlugins||[],Jt=(e,t,n,r)=>{typeof Browser<"u"&&Browser.init();var s=!1;return Kt.forEach(o=>{s||o.canHandle(t)&&(o.handle(e,t,n,r),s=!0)}),s},Xt=(e,t,n,r,s,o,p,g,O,R)=>{var z=t?Se.resolve(_e.join2(e,t)):e;function W(T){function A(D){R?.(),g||$t(e,t,D,r,s,O),o?.(),We()}Jt(T,z,A,()=>{p?.(),We()})||A(T)}Xe(),typeof n=="string"?Gt(n,W,p):W(n)},Yt=e=>{var t={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},n=t[e];if(typeof n>"u")throw new Error(`Unknown file open mode: ${e}`);return n},rt=(e,t)=>{var n=0;return e&&(n|=365),t&&(n|=146),n},a={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{constructor(e){this.name="ErrnoError",this.errno=e}},genericErrors:{},filesystems:null,syncFSRequests:0,readFiles:{},FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(e){this.node=e}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{constructor(e,t,n,r){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=a.nextInode++,this.name=t,this.mode=n,this.node_ops={},this.stream_ops={},this.rdev=r,this.readMode=365,this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return a.isDir(this.mode)}get isDevice(){return a.isChrdev(this.mode)}},lookupPath(e,t={}){if(e=Se.resolve(e),!e)return{path:"",node:null};var n={follow_mount:!0,recurse_count:0};if(t=Object.assign(n,t),t.recurse_count>8)throw new a.ErrnoError(32);for(var r=e.split("/").filter(W=>!!W),s=a.root,o="/",p=0;p40)throw new a.ErrnoError(32)}}return{path:o,node:s}},getPath(e){for(var t;;){if(a.isRoot(e)){var n=e.mount.mountpoint;return t?n[n.length-1]!=="/"?`${n}/${t}`:n+t:n}t=t?`${e.name}/${t}`:e.name,e=e.parent}},hashName(e,t){for(var n=0,r=0;r>>0)%a.nameTable.length},hashAddNode(e){var t=a.hashName(e.parent.id,e.name);e.name_next=a.nameTable[t],a.nameTable[t]=e},hashRemoveNode(e){var t=a.hashName(e.parent.id,e.name);if(a.nameTable[t]===e)a.nameTable[t]=e.name_next;else for(var n=a.nameTable[t];n;){if(n.name_next===e){n.name_next=e.name_next;break}n=n.name_next}},lookupNode(e,t){var n=a.mayLookup(e);if(n)throw new a.ErrnoError(n);for(var r=a.hashName(e.id,t),s=a.nameTable[r];s;s=s.name_next){var o=s.name;if(s.parent.id===e.id&&o===t)return s}return a.lookup(e,t)},createNode(e,t,n,r){var s=new a.FSNode(e,t,n,r);return a.hashAddNode(s),s},destroyNode(e){a.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)===32768},isDir(e){return(e&61440)===16384},isLink(e){return(e&61440)===40960},isChrdev(e){return(e&61440)===8192},isBlkdev(e){return(e&61440)===24576},isFIFO(e){return(e&61440)===4096},isSocket(e){return(e&49152)===49152},flagsToPermissionString(e){var t=["r","w","rw"][e&3];return e&512&&(t+="w"),t},nodePermissions(e,t){return a.ignorePermissions?0:t.includes("r")&&!(e.mode&292)||t.includes("w")&&!(e.mode&146)||t.includes("x")&&!(e.mode&73)?2:0},mayLookup(e){if(!a.isDir(e.mode))return 54;var t=a.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate(e,t){try{var n=a.lookupNode(e,t);return 20}catch{}return a.nodePermissions(e,"wx")},mayDelete(e,t,n){var r;try{r=a.lookupNode(e,t)}catch(o){return o.errno}var s=a.nodePermissions(e,"wx");if(s)return s;if(n){if(!a.isDir(r.mode))return 54;if(a.isRoot(r)||a.getPath(r)===a.cwd())return 10}else if(a.isDir(r.mode))return 31;return 0},mayOpen(e,t){return e?a.isLink(e.mode)?32:a.isDir(e.mode)&&(a.flagsToPermissionString(t)!=="r"||t&512)?31:a.nodePermissions(e,a.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=a.MAX_OPEN_FDS;e++)if(!a.streams[e])return e;throw new a.ErrnoError(33)},getStreamChecked(e){var t=a.getStream(e);if(!t)throw new a.ErrnoError(8);return t},getStream:e=>a.streams[e],createStream(e,t=-1){return e=Object.assign(new a.FSStream,e),t==-1&&(t=a.nextfd()),e.fd=t,a.streams[t]=e,e},closeStream(e){a.streams[e]=null},dupStream(e,t=-1){var n=a.createStream(e,t);return n.stream_ops?.dup?.(n),n},chrdev_stream_ops:{open(e){var t=a.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new a.ErrnoError(70)}},major:e=>e>>8,minor:e=>e&255,makedev:(e,t)=>e<<8|t,registerDevice(e,t){a.devices[e]={stream_ops:t}},getDevice:e=>a.devices[e],getMounts(e){for(var t=[],n=[e];n.length;){var r=n.pop();t.push(r),n.push(...r.mounts)}return t},syncfs(e,t){typeof e=="function"&&(t=e,e=!1),a.syncFSRequests++,a.syncFSRequests>1&&ke(`warning: ${a.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var n=a.getMounts(a.root.mount),r=0;function s(p){return a.syncFSRequests--,t(p)}function o(p){if(p)return o.errored?void 0:(o.errored=!0,s(p));++r>=n.length&&s(null)}n.forEach(p=>{if(!p.type.syncfs)return o(null);p.type.syncfs(p,e,o)})},mount(e,t,n){var r=n==="/",s=!n,o;if(r&&a.root)throw new a.ErrnoError(10);if(!r&&!s){var p=a.lookupPath(n,{follow_mount:!1});if(n=p.path,o=p.node,a.isMountpoint(o))throw new a.ErrnoError(10);if(!a.isDir(o.mode))throw new a.ErrnoError(54)}var g={type:e,opts:t,mountpoint:n,mounts:[]},O=e.mount(g);return O.mount=g,g.root=O,r?a.root=O:o&&(o.mounted=g,o.mount&&o.mount.mounts.push(g)),O},unmount(e){var t=a.lookupPath(e,{follow_mount:!1});if(!a.isMountpoint(t.node))throw new a.ErrnoError(28);var n=t.node,r=n.mounted,s=a.getMounts(r);Object.keys(a.nameTable).forEach(p=>{for(var g=a.nameTable[p];g;){var O=g.name_next;s.includes(g.mount)&&a.destroyNode(g),g=O}}),n.mounted=null;var o=n.mount.mounts.indexOf(r);n.mount.mounts.splice(o,1)},lookup(e,t){return e.node_ops.lookup(e,t)},mknod(e,t,n){var r=a.lookupPath(e,{parent:!0}),s=r.node,o=_e.basename(e);if(!o||o==="."||o==="..")throw new a.ErrnoError(28);var p=a.mayCreate(s,o);if(p)throw new a.ErrnoError(p);if(!s.node_ops.mknod)throw new a.ErrnoError(63);return s.node_ops.mknod(s,o,t,n)},create(e,t){return t=t!==void 0?t:438,t&=4095,t|=32768,a.mknod(e,t,0)},mkdir(e,t){return t=t!==void 0?t:511,t&=1023,t|=16384,a.mknod(e,t,0)},mkdirTree(e,t){for(var n=e.split("/"),r="",s=0;s"u"&&(n=t,t=438),t|=8192,a.mknod(e,t,n)},symlink(e,t){if(!Se.resolve(e))throw new a.ErrnoError(44);var n=a.lookupPath(t,{parent:!0}),r=n.node;if(!r)throw new a.ErrnoError(44);var s=_e.basename(t),o=a.mayCreate(r,s);if(o)throw new a.ErrnoError(o);if(!r.node_ops.symlink)throw new a.ErrnoError(63);return r.node_ops.symlink(r,s,e)},rename(e,t){var n=_e.dirname(e),r=_e.dirname(t),s=_e.basename(e),o=_e.basename(t),p,g,O;if(p=a.lookupPath(e,{parent:!0}),g=p.node,p=a.lookupPath(t,{parent:!0}),O=p.node,!g||!O)throw new a.ErrnoError(44);if(g.mount!==O.mount)throw new a.ErrnoError(75);var R=a.lookupNode(g,s),z=Se.relative(e,r);if(z.charAt(0)!==".")throw new a.ErrnoError(28);if(z=Se.relative(t,n),z.charAt(0)!==".")throw new a.ErrnoError(55);var W;try{W=a.lookupNode(O,o)}catch{}if(R!==W){var T=a.isDir(R.mode),A=a.mayDelete(g,s,T);if(A)throw new a.ErrnoError(A);if(A=W?a.mayDelete(O,o,T):a.mayCreate(O,o),A)throw new a.ErrnoError(A);if(!g.node_ops.rename)throw new a.ErrnoError(63);if(a.isMountpoint(R)||W&&a.isMountpoint(W))throw new a.ErrnoError(10);if(O!==g&&(A=a.nodePermissions(g,"w"),A))throw new a.ErrnoError(A);a.hashRemoveNode(R);try{g.node_ops.rename(R,O,o),R.parent=O}catch(D){throw D}finally{a.hashAddNode(R)}}},rmdir(e){var t=a.lookupPath(e,{parent:!0}),n=t.node,r=_e.basename(e),s=a.lookupNode(n,r),o=a.mayDelete(n,r,!0);if(o)throw new a.ErrnoError(o);if(!n.node_ops.rmdir)throw new a.ErrnoError(63);if(a.isMountpoint(s))throw new a.ErrnoError(10);n.node_ops.rmdir(n,r),a.destroyNode(s)},readdir(e){var t=a.lookupPath(e,{follow:!0}),n=t.node;if(!n.node_ops.readdir)throw new a.ErrnoError(54);return n.node_ops.readdir(n)},unlink(e){var t=a.lookupPath(e,{parent:!0}),n=t.node;if(!n)throw new a.ErrnoError(44);var r=_e.basename(e),s=a.lookupNode(n,r),o=a.mayDelete(n,r,!1);if(o)throw new a.ErrnoError(o);if(!n.node_ops.unlink)throw new a.ErrnoError(63);if(a.isMountpoint(s))throw new a.ErrnoError(10);n.node_ops.unlink(n,r),a.destroyNode(s)},readlink(e){var t=a.lookupPath(e),n=t.node;if(!n)throw new a.ErrnoError(44);if(!n.node_ops.readlink)throw new a.ErrnoError(28);return Se.resolve(a.getPath(n.parent),n.node_ops.readlink(n))},stat(e,t){var n=a.lookupPath(e,{follow:!t}),r=n.node;if(!r)throw new a.ErrnoError(44);if(!r.node_ops.getattr)throw new a.ErrnoError(63);return r.node_ops.getattr(r)},lstat(e){return a.stat(e,!0)},chmod(e,t,n){var r;if(typeof e=="string"){var s=a.lookupPath(e,{follow:!n});r=s.node}else r=e;if(!r.node_ops.setattr)throw new a.ErrnoError(63);r.node_ops.setattr(r,{mode:t&4095|r.mode&-4096,timestamp:Date.now()})},lchmod(e,t){a.chmod(e,t,!0)},fchmod(e,t){var n=a.getStreamChecked(e);a.chmod(n.node,t)},chown(e,t,n,r){var s;if(typeof e=="string"){var o=a.lookupPath(e,{follow:!r});s=o.node}else s=e;if(!s.node_ops.setattr)throw new a.ErrnoError(63);s.node_ops.setattr(s,{timestamp:Date.now()})},lchown(e,t,n){a.chown(e,t,n,!0)},fchown(e,t,n){var r=a.getStreamChecked(e);a.chown(r.node,t,n)},truncate(e,t){if(t<0)throw new a.ErrnoError(28);var n;if(typeof e=="string"){var r=a.lookupPath(e,{follow:!0});n=r.node}else n=e;if(!n.node_ops.setattr)throw new a.ErrnoError(63);if(a.isDir(n.mode))throw new a.ErrnoError(31);if(!a.isFile(n.mode))throw new a.ErrnoError(28);var s=a.nodePermissions(n,"w");if(s)throw new a.ErrnoError(s);n.node_ops.setattr(n,{size:t,timestamp:Date.now()})},ftruncate(e,t){var n=a.getStreamChecked(e);if((n.flags&2097155)===0)throw new a.ErrnoError(28);a.truncate(n.node,t)},utime(e,t,n){var r=a.lookupPath(e,{follow:!0}),s=r.node;s.node_ops.setattr(s,{timestamp:Math.max(t,n)})},open(e,t,n){if(e==="")throw new a.ErrnoError(44);t=typeof t=="string"?Yt(t):t,t&64?(n=typeof n>"u"?438:n,n=n&4095|32768):n=0;var r;if(typeof e=="object")r=e;else{e=_e.normalize(e);try{var s=a.lookupPath(e,{follow:!(t&131072)});r=s.node}catch{}}var o=!1;if(t&64)if(r){if(t&128)throw new a.ErrnoError(20)}else r=a.mknod(e,n,0),o=!0;if(!r)throw new a.ErrnoError(44);if(a.isChrdev(r.mode)&&(t&=-513),t&65536&&!a.isDir(r.mode))throw new a.ErrnoError(54);if(!o){var p=a.mayOpen(r,t);if(p)throw new a.ErrnoError(p)}t&512&&!o&&a.truncate(r,0),t&=-131713;var g=a.createStream({node:r,path:a.getPath(r),flags:t,seekable:!0,position:0,stream_ops:r.stream_ops,ungotten:[],error:!1});return g.stream_ops.open&&g.stream_ops.open(g),i.logReadFiles&&!(t&1)&&(e in a.readFiles||(a.readFiles[e]=1)),g},close(e){if(a.isClosed(e))throw new a.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(t){throw t}finally{a.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,t,n){if(a.isClosed(e))throw new a.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new a.ErrnoError(70);if(n!=0&&n!=1&&n!=2)throw new a.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,n),e.ungotten=[],e.position},read(e,t,n,r,s){if(r<0||s<0)throw new a.ErrnoError(28);if(a.isClosed(e))throw new a.ErrnoError(8);if((e.flags&2097155)===1)throw new a.ErrnoError(8);if(a.isDir(e.node.mode))throw new a.ErrnoError(31);if(!e.stream_ops.read)throw new a.ErrnoError(28);var o=typeof s<"u";if(!o)s=e.position;else if(!e.seekable)throw new a.ErrnoError(70);var p=e.stream_ops.read(e,t,n,r,s);return o||(e.position+=p),p},write(e,t,n,r,s,o){if(r<0||s<0)throw new a.ErrnoError(28);if(a.isClosed(e))throw new a.ErrnoError(8);if((e.flags&2097155)===0)throw new a.ErrnoError(8);if(a.isDir(e.node.mode))throw new a.ErrnoError(31);if(!e.stream_ops.write)throw new a.ErrnoError(28);e.seekable&&e.flags&1024&&a.llseek(e,0,2);var p=typeof s<"u";if(!p)s=e.position;else if(!e.seekable)throw new a.ErrnoError(70);var g=e.stream_ops.write(e,t,n,r,s,o);return p||(e.position+=g),g},allocate(e,t,n){if(a.isClosed(e))throw new a.ErrnoError(8);if(t<0||n<=0)throw new a.ErrnoError(28);if((e.flags&2097155)===0)throw new a.ErrnoError(8);if(!a.isFile(e.node.mode)&&!a.isDir(e.node.mode))throw new a.ErrnoError(43);if(!e.stream_ops.allocate)throw new a.ErrnoError(138);e.stream_ops.allocate(e,t,n)},mmap(e,t,n,r,s){if((r&2)!==0&&(s&2)===0&&(e.flags&2097155)!==2)throw new a.ErrnoError(2);if((e.flags&2097155)===1)throw new a.ErrnoError(2);if(!e.stream_ops.mmap)throw new a.ErrnoError(43);if(!t)throw new a.ErrnoError(28);return e.stream_ops.mmap(e,t,n,r,s)},msync(e,t,n,r,s){return e.stream_ops.msync?e.stream_ops.msync(e,t,n,r,s):0},ioctl(e,t,n){if(!e.stream_ops.ioctl)throw new a.ErrnoError(59);return e.stream_ops.ioctl(e,t,n)},readFile(e,t={}){if(t.flags=t.flags||0,t.encoding=t.encoding||"binary",t.encoding!=="utf8"&&t.encoding!=="binary")throw new Error(`Invalid encoding type "${t.encoding}"`);var n,r=a.open(e,t.flags),s=a.stat(e),o=s.size,p=new Uint8Array(o);return a.read(r,p,0,o,0),t.encoding==="utf8"?n=Le(p):t.encoding==="binary"&&(n=p),a.close(r),n},writeFile(e,t,n={}){n.flags=n.flags||577;var r=a.open(e,n.flags,n.mode);if(typeof t=="string"){var s=new Uint8Array(He(t)+1),o=nt(t,s,0,s.length);a.write(r,s,0,o,void 0,n.canOwn)}else if(ArrayBuffer.isView(t))a.write(r,t,0,t.byteLength,void 0,n.canOwn);else throw new Error("Unsupported data type");a.close(r)},cwd:()=>a.currentPath,chdir(e){var t=a.lookupPath(e,{follow:!0});if(t.node===null)throw new a.ErrnoError(44);if(!a.isDir(t.node.mode))throw new a.ErrnoError(54);var n=a.nodePermissions(t.node,"x");if(n)throw new a.ErrnoError(n);a.currentPath=t.path},createDefaultDirectories(){a.mkdir("/tmp"),a.mkdir("/home"),a.mkdir("/home/web_user")},createDefaultDevices(){a.mkdir("/dev"),a.registerDevice(a.makedev(1,3),{read:()=>0,write:(r,s,o,p,g)=>p}),a.mkdev("/dev/null",a.makedev(1,3)),Oe.register(a.makedev(5,0),Oe.default_tty_ops),Oe.register(a.makedev(6,0),Oe.default_tty1_ops),a.mkdev("/dev/tty",a.makedev(5,0)),a.mkdev("/dev/tty1",a.makedev(6,0));var e=new Uint8Array(1024),t=0,n=()=>(t===0&&(t=qt(e).byteLength),e[--t]);a.createDevice("/dev","random",n),a.createDevice("/dev","urandom",n),a.mkdir("/dev/shm"),a.mkdir("/dev/shm/tmp")},createSpecialDirectories(){a.mkdir("/proc");var e=a.mkdir("/proc/self");a.mkdir("/proc/self/fd"),a.mount({mount(){var t=a.createNode(e,"fd",16895,73);return t.node_ops={lookup(n,r){var s=+r,o=a.getStreamChecked(s),p={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>o.path}};return p.parent=p,p}},t}},{},"/proc/self/fd")},createStandardStreams(e,t,n){e?a.createDevice("/dev","stdin",e):a.symlink("/dev/tty","/dev/stdin"),t?a.createDevice("/dev","stdout",null,t):a.symlink("/dev/tty","/dev/stdout"),n?a.createDevice("/dev","stderr",null,n):a.symlink("/dev/tty1","/dev/stderr"),a.open("/dev/stdin",0),a.open("/dev/stdout",1),a.open("/dev/stderr",1)},staticInit(){[44].forEach(e=>{a.genericErrors[e]=new a.ErrnoError(e),a.genericErrors[e].stack=""}),a.nameTable=new Array(4096),a.mount(ie,{},"/"),a.createDefaultDirectories(),a.createDefaultDevices(),a.createSpecialDirectories(),a.filesystems={MEMFS:ie}},init(e,t,n){a.initialized=!0,e??=i.stdin,t??=i.stdout,n??=i.stderr,a.createStandardStreams(e,t,n)},quit(){a.initialized=!1;for(var e=0;ethis.length-1||A<0)){var D=A%this.chunkSize,q=A/this.chunkSize|0;return this.getter(q)[D]}}setDataGetter(A){this.getter=A}cacheLength(){var A=new XMLHttpRequest;if(A.open("HEAD",n,!1),A.send(null),!(A.status>=200&&A.status<300||A.status===304))throw new Error("Couldn't load "+n+". Status: "+A.status);var D=Number(A.getResponseHeader("Content-length")),q,w=(q=A.getResponseHeader("Accept-Ranges"))&&q==="bytes",x=(q=A.getResponseHeader("Content-Encoding"))&&q==="gzip",N=1024*1024;w||(N=D);var P=(L,$)=>{if(L>$)throw new Error("invalid range ("+L+", "+$+") or no bytes requested!");if($>D-1)throw new Error("only "+D+" bytes available! programmer error!");var c=new XMLHttpRequest;if(c.open("GET",n,!1),D!==N&&c.setRequestHeader("Range","bytes="+L+"-"+$),c.responseType="arraybuffer",c.overrideMimeType&&c.overrideMimeType("text/plain; charset=x-user-defined"),c.send(null),!(c.status>=200&&c.status<300||c.status===304))throw new Error("Couldn't load "+n+". Status: "+c.status);return c.response!==void 0?new Uint8Array(c.response||[]):yt(c.responseText||"")},S=this;S.setDataGetter(L=>{var $=L*N,c=(L+1)*N-1;if(c=Math.min(c,D-1),typeof S.chunks[L]>"u"&&(S.chunks[L]=P($,c)),typeof S.chunks[L]>"u")throw new Error("doXHR failed!");return S.chunks[L]}),(x||!D)&&(N=D=1,D=this.getter(0).length,N=D,Je("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=D,this._chunkSize=N,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!Ue)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var p=new o,g={isDevice:!1,contents:p}}else var g={isDevice:!1,url:n};var O=a.createFile(e,t,g,r,s);g.contents?O.contents=g.contents:g.url&&(O.contents=null,O.url=g.url),Object.defineProperties(O,{usedBytes:{get:function(){return this.contents.length}}});var R={},z=Object.keys(O.stream_ops);z.forEach(T=>{var A=O.stream_ops[T];R[T]=(...D)=>(a.forceLoadFile(O),A(...D))});function W(T,A,D,q,w){var x=T.node.contents;if(w>=x.length)return 0;var N=Math.min(x.length-w,q);if(x.slice)for(var P=0;P(a.forceLoadFile(O),W(T,A,D,q,w)),R.mmap=(T,A,D,q,w)=>{a.forceLoadFile(O);var x=vt(A);if(!x)throw new a.ErrnoError(48);return W(T,ge,x,A,D),{ptr:x,allocated:!0}},O.stream_ops=R,O}},Zt=(e,t)=>e?Le(Pe,e,t):"",le={DEFAULT_POLLMASK:5,calculateAt(e,t,n){if(_e.isAbs(t))return t;var r;if(e===-100)r=a.cwd();else{var s=le.getStreamFromFD(e);r=s.path}if(t.length==0){if(!n)throw new a.ErrnoError(44);return r}return _e.join2(r,t)},doStat(e,t,n){var r=e(t);ce[n>>2]=r.dev,ce[n+4>>2]=r.mode,he[n+8>>2]=r.nlink,ce[n+12>>2]=r.uid,ce[n+16>>2]=r.gid,ce[n+20>>2]=r.rdev,xe[n+24>>3]=BigInt(r.size),ce[n+32>>2]=4096,ce[n+36>>2]=r.blocks;var s=r.atime.getTime(),o=r.mtime.getTime(),p=r.ctime.getTime();return xe[n+40>>3]=BigInt(Math.floor(s/1e3)),he[n+48>>2]=s%1e3*1e3*1e3,xe[n+56>>3]=BigInt(Math.floor(o/1e3)),he[n+64>>2]=o%1e3*1e3*1e3,xe[n+72>>3]=BigInt(Math.floor(p/1e3)),he[n+80>>2]=p%1e3*1e3*1e3,xe[n+88>>3]=BigInt(r.ino),0},doMsync(e,t,n,r,s){if(!a.isFile(t.node.mode))throw new a.ErrnoError(43);if(r&2)return 0;var o=Pe.slice(e,e+n);a.msync(t,o,s,n,r)},getStreamFromFD(e){var t=a.getStreamChecked(e);return t},varargs:void 0,getStr(e){var t=Zt(e);return t}};function en(e,t){try{return e=le.getStr(e),a.chmod(e,t),0}catch(n){if(typeof a>"u"||n.name!=="ErrnoError")throw n;return-n.errno}}function tn(e,t,n,r){try{if(t=le.getStr(t),t=le.calculateAt(e,t),n&-8)return-28;var s=a.lookupPath(t,{follow:!0}),o=s.node;if(!o)return-44;var p="";return n&4&&(p+="r"),n&2&&(p+="w"),n&1&&(p+="x"),p&&a.nodePermissions(o,p)?-2:0}catch(g){if(typeof a>"u"||g.name!=="ErrnoError")throw g;return-g.errno}}function nn(e,t){try{return a.fchmod(e,t),0}catch(n){if(typeof a>"u"||n.name!=="ErrnoError")throw n;return-n.errno}}function rn(e,t,n){try{return a.fchown(e,t,n),0}catch(r){if(typeof a>"u"||r.name!=="ErrnoError")throw r;return-r.errno}}function Ve(){var e=ce[+le.varargs>>2];return le.varargs+=4,e}var Ce=Ve;function sn(e,t,n){le.varargs=n;try{var r=le.getStreamFromFD(e);switch(t){case 0:{var s=Ve();if(s<0)return-28;for(;a.streams[s];)s++;var o;return o=a.dupStream(r,s),o.fd}case 1:case 2:return 0;case 3:return r.flags;case 4:{var s=Ve();return r.flags|=s,0}case 12:{var s=Ce(),p=0;return Ne[s+p>>1]=2,0}case 13:case 14:return 0}return-28}catch(g){if(typeof a>"u"||g.name!=="ErrnoError")throw g;return-g.errno}}function on(e,t){try{var n=le.getStreamFromFD(e);return le.doStat(a.stat,n.path,t)}catch(r){if(typeof a>"u"||r.name!=="ErrnoError")throw r;return-r.errno}}var ln=9007199254740992,an=-9007199254740992,je=e=>eln?NaN:Number(e);function cn(e,t){t=je(t);try{return isNaN(t)?61:(a.ftruncate(e,t),0)}catch(n){if(typeof a>"u"||n.name!=="ErrnoError")throw n;return-n.errno}}var De=(e,t,n)=>nt(e,Pe,t,n);function _n(e,t){try{if(t===0)return-28;var n=a.cwd(),r=He(n)+1;return t"u"||s.name!=="ErrnoError")throw s;return-s.errno}}function un(e,t,n){le.varargs=n;try{var r=le.getStreamFromFD(e);switch(t){case 21509:return r.tty?0:-59;case 21505:{if(!r.tty)return-59;if(r.tty.ops.ioctl_tcgets){var s=r.tty.ops.ioctl_tcgets(r),o=Ce();ce[o>>2]=s.c_iflag||0,ce[o+4>>2]=s.c_oflag||0,ce[o+8>>2]=s.c_cflag||0,ce[o+12>>2]=s.c_lflag||0;for(var p=0;p<32;p++)ge[o+p+17]=s.c_cc[p]||0;return 0}return 0}case 21510:case 21511:case 21512:return r.tty?0:-59;case 21506:case 21507:case 21508:{if(!r.tty)return-59;if(r.tty.ops.ioctl_tcsets){for(var o=Ce(),g=ce[o>>2],O=ce[o+4>>2],R=ce[o+8>>2],z=ce[o+12>>2],W=[],p=0;p<32;p++)W.push(ge[o+p+17]);return r.tty.ops.ioctl_tcsets(r.tty,t,{c_iflag:g,c_oflag:O,c_cflag:R,c_lflag:z,c_cc:W})}return 0}case 21519:{if(!r.tty)return-59;var o=Ce();return ce[o>>2]=0,0}case 21520:return r.tty?-28:-59;case 21531:{var o=Ce();return a.ioctl(r,t,o)}case 21523:{if(!r.tty)return-59;if(r.tty.ops.ioctl_tiocgwinsz){var T=r.tty.ops.ioctl_tiocgwinsz(r.tty),o=Ce();Ne[o>>1]=T[0],Ne[o+2>>1]=T[1]}return 0}case 21524:return r.tty?0:-59;case 21515:return r.tty?0:-59;default:return-28}}catch(A){if(typeof a>"u"||A.name!=="ErrnoError")throw A;return-A.errno}}function fn(e,t){try{return e=le.getStr(e),le.doStat(a.lstat,e,t)}catch(n){if(typeof a>"u"||n.name!=="ErrnoError")throw n;return-n.errno}}function dn(e,t,n){try{return t=le.getStr(t),t=le.calculateAt(e,t),t=_e.normalize(t),t[t.length-1]==="/"&&(t=t.substr(0,t.length-1)),a.mkdir(t,n,0),0}catch(r){if(typeof a>"u"||r.name!=="ErrnoError")throw r;return-r.errno}}function pn(e,t,n,r){try{t=le.getStr(t);var s=r&256,o=r&4096;return r=r&-6401,t=le.calculateAt(e,t,o),le.doStat(s?a.lstat:a.stat,t,n)}catch(p){if(typeof a>"u"||p.name!=="ErrnoError")throw p;return-p.errno}}function hn(e,t,n,r){le.varargs=r;try{t=le.getStr(t),t=le.calculateAt(e,t);var s=r?Ve():0;return a.open(t,n,s).fd}catch(o){if(typeof a>"u"||o.name!=="ErrnoError")throw o;return-o.errno}}function mn(e,t,n,r){try{if(t=le.getStr(t),t=le.calculateAt(e,t),r<=0)return-28;var s=a.readlink(t),o=Math.min(r,He(s)),p=ge[n+o];return De(s,n,r+1),ge[n+o]=p,o}catch(g){if(typeof a>"u"||g.name!=="ErrnoError")throw g;return-g.errno}}function gn(e){try{return e=le.getStr(e),a.rmdir(e),0}catch(t){if(typeof a>"u"||t.name!=="ErrnoError")throw t;return-t.errno}}function qn(e,t){try{return e=le.getStr(e),le.doStat(a.stat,e,t)}catch(n){if(typeof a>"u"||n.name!=="ErrnoError")throw n;return-n.errno}}function bn(e,t,n){try{return t=le.getStr(t),t=le.calculateAt(e,t),n===0?a.unlink(t):n===512?a.rmdir(t):Ye("Invalid flags passed to unlinkat"),0}catch(r){if(typeof a>"u"||r.name!=="ErrnoError")throw r;return-r.errno}}var Et=e=>he[e>>2]+ce[e+4>>2]*4294967296;function yn(e,t,n,r){try{t=le.getStr(t),t=le.calculateAt(e,t,!0);var s=Date.now(),o,p;if(!n)o=s,p=s;else{var g=Et(n),O=ce[n+8>>2];O==1073741823?o=s:O==1073741822?o=-1:o=g*1e3+O/1e6,n+=16,g=Et(n),O=ce[n+8>>2],O==1073741823?p=s:O==1073741822?p=-1:p=g*1e3+O/1e6}return(p!=-1||o!=-1)&&a.utime(t,o,p),0}catch(R){if(typeof a>"u"||R.name!=="ErrnoError")throw R;return-R.errno}}var wn=1,vn=()=>wn,En=e=>e%4===0&&(e%100!==0||e%400===0),xn=[0,31,60,91,121,152,182,213,244,274,305,335],Sn=[0,31,59,90,120,151,181,212,243,273,304,334],An=e=>{var t=En(e.getFullYear()),n=t?xn:Sn,r=n[e.getMonth()]+e.getDate()-1;return r};function In(e,t){e=je(e);var n=new Date(e*1e3);ce[t>>2]=n.getSeconds(),ce[t+4>>2]=n.getMinutes(),ce[t+8>>2]=n.getHours(),ce[t+12>>2]=n.getDate(),ce[t+16>>2]=n.getMonth(),ce[t+20>>2]=n.getFullYear()-1900,ce[t+24>>2]=n.getDay();var r=An(n)|0;ce[t+28>>2]=r,ce[t+36>>2]=-(n.getTimezoneOffset()*60);var s=new Date(n.getFullYear(),0,1),o=new Date(n.getFullYear(),6,1).getTimezoneOffset(),p=s.getTimezoneOffset(),g=(o!=p&&n.getTimezoneOffset()==Math.min(p,o))|0;ce[t+32>>2]=g}function kn(e,t,n,r,s,o,p){s=je(s);try{if(isNaN(s))return 61;var g=le.getStreamFromFD(r),O=a.mmap(g,e,s,t,n),R=O.ptr;return ce[o>>2]=O.allocated,he[p>>2]=R,0}catch(z){if(typeof a>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}function Tn(e,t,n,r,s,o){o=je(o);try{var p=le.getStreamFromFD(s);n&2&&le.doMsync(e,p,t,r,o)}catch(g){if(typeof a>"u"||g.name!=="ErrnoError")throw g;return-g.errno}}var Fn=(e,t,n,r)=>{var s=new Date().getFullYear(),o=new Date(s,0,1),p=new Date(s,6,1),g=o.getTimezoneOffset(),O=p.getTimezoneOffset(),R=Math.max(g,O);he[e>>2]=R*60,ce[t>>2]=+(g!=O);var z=A=>{var D=A>=0?"-":"+",q=Math.abs(A),w=String(Math.floor(q/60)).padStart(2,"0"),x=String(q%60).padStart(2,"0");return`UTC${D}${w}${x}`},W=z(g),T=z(O);ODate.now(),Pn=()=>performance.now(),Ln=()=>2147483648,Cn=e=>{var t=Te.buffer,n=(e-t.byteLength+65535)/65536|0;try{return Te.grow(n),ut(),1}catch{}},Dn=e=>{var t=Pe.length;e>>>=0;var n=Ln();if(e>n)return!1;for(var r=1;r<=4;r*=2){var s=t*(1+.2/r);s=Math.min(s,e+100663296);var o=Math.min(n,wt(Math.max(e,s),65536)),p=Cn(o);if(p)return!0}return!1},st={},Rn=()=>ct||"./this.program",Be=()=>{if(!Be.strings){var e=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:e,_:Rn()};for(var n in st)st[n]===void 0?delete t[n]:t[n]=st[n];var r=[];for(var n in t)r.push(`${n}=${t[n]}`);Be.strings=r}return Be.strings},Nn=(e,t)=>{for(var n=0;n{var n=0;return Be().forEach((r,s)=>{var o=t+n;he[e+s*4>>2]=o,Nn(r,o),n+=r.length+1}),0},jn=(e,t)=>{var n=Be();he[e>>2]=n.length;var r=0;return n.forEach(s=>r+=s.length+1),he[t>>2]=r,0};function Bn(e){try{var t=le.getStreamFromFD(e);return a.close(t),0}catch(n){if(typeof a>"u"||n.name!=="ErrnoError")throw n;return n.errno}}function Un(e,t){try{var n=0,r=0,s=0,o=le.getStreamFromFD(e),p=o.tty?2:a.isDir(o.mode)?3:a.isLink(o.mode)?7:4;return ge[t]=p,Ne[t+2>>1]=s,xe[t+8>>3]=BigInt(n),xe[t+16>>3]=BigInt(r),0}catch(g){if(typeof a>"u"||g.name!=="ErrnoError")throw g;return g.errno}}var zn=(e,t,n,r)=>{for(var s=0,o=0;o>2],g=he[t+4>>2];t+=8;var O=a.read(e,ge,p,g,r);if(O<0)return-1;if(s+=O,O>2]=o,0}catch(p){if(typeof a>"u"||p.name!=="ErrnoError")throw p;return p.errno}}function Wn(e,t,n,r){t=je(t);try{if(isNaN(t))return 61;var s=le.getStreamFromFD(e);return a.llseek(s,t,n),xe[r>>3]=BigInt(s.position),s.getdents&&t===0&&n===0&&(s.getdents=null),0}catch(o){if(typeof a>"u"||o.name!=="ErrnoError")throw o;return o.errno}}function Hn(e){try{var t=le.getStreamFromFD(e);return t.stream_ops?.fsync?t.stream_ops.fsync(t):0}catch(n){if(typeof a>"u"||n.name!=="ErrnoError")throw n;return n.errno}}var Vn=(e,t,n,r)=>{for(var s=0,o=0;o>2],g=he[t+4>>2];t+=8;var O=a.write(e,ge,p,g,r);if(O<0)return-1;if(s+=O,O>2]=o,0}catch(p){if(typeof a>"u"||p.name!=="ErrnoError")throw p;return p.errno}}a.createPreloadedFile=Xt,a.staticInit();var xt={__syscall_chmod:en,__syscall_faccessat:tn,__syscall_fchmod:nn,__syscall_fchown32:rn,__syscall_fcntl64:sn,__syscall_fstat64:on,__syscall_ftruncate64:cn,__syscall_getcwd:_n,__syscall_ioctl:un,__syscall_lstat64:fn,__syscall_mkdirat:dn,__syscall_newfstatat:pn,__syscall_openat:hn,__syscall_readlinkat:mn,__syscall_rmdir:gn,__syscall_stat64:qn,__syscall_unlinkat:bn,__syscall_utimensat:yn,_emscripten_get_now_is_monotonic:vn,_localtime_js:In,_mmap_js:kn,_munmap_js:Tn,_tzset_js:Fn,emscripten_date_now:On,emscripten_get_now:Pn,emscripten_resize_heap:Dn,environ_get:Mn,environ_sizes_get:jn,fd_close:Bn,fd_fdstat_get:Un,fd_read:Qn,fd_seek:Wn,fd_sync:Hn,fd_write:Gn,memory:Te},h=Qt();i._sqlite3_status64=(e,t,n,r)=>(i._sqlite3_status64=h.sqlite3_status64)(e,t,n,r),i._sqlite3_status=(e,t,n,r)=>(i._sqlite3_status=h.sqlite3_status)(e,t,n,r),i._sqlite3_db_status=(e,t,n,r,s)=>(i._sqlite3_db_status=h.sqlite3_db_status)(e,t,n,r,s),i._sqlite3_msize=e=>(i._sqlite3_msize=h.sqlite3_msize)(e),i._sqlite3_vfs_find=e=>(i._sqlite3_vfs_find=h.sqlite3_vfs_find)(e),i._sqlite3_initialize=()=>(i._sqlite3_initialize=h.sqlite3_initialize)(),i._sqlite3_malloc=e=>(i._sqlite3_malloc=h.sqlite3_malloc)(e),i._sqlite3_free=e=>(i._sqlite3_free=h.sqlite3_free)(e),i._sqlite3_vfs_register=(e,t)=>(i._sqlite3_vfs_register=h.sqlite3_vfs_register)(e,t),i._sqlite3_vfs_unregister=e=>(i._sqlite3_vfs_unregister=h.sqlite3_vfs_unregister)(e),i._sqlite3_malloc64=e=>(i._sqlite3_malloc64=h.sqlite3_malloc64)(e),i._sqlite3_realloc=(e,t)=>(i._sqlite3_realloc=h.sqlite3_realloc)(e,t),i._sqlite3_realloc64=(e,t)=>(i._sqlite3_realloc64=h.sqlite3_realloc64)(e,t),i._sqlite3_value_text=e=>(i._sqlite3_value_text=h.sqlite3_value_text)(e),i._sqlite3_randomness=(e,t)=>(i._sqlite3_randomness=h.sqlite3_randomness)(e,t),i._sqlite3_stricmp=(e,t)=>(i._sqlite3_stricmp=h.sqlite3_stricmp)(e,t),i._sqlite3_strnicmp=(e,t,n)=>(i._sqlite3_strnicmp=h.sqlite3_strnicmp)(e,t,n),i._sqlite3_uri_parameter=(e,t)=>(i._sqlite3_uri_parameter=h.sqlite3_uri_parameter)(e,t),i._sqlite3_uri_boolean=(e,t,n)=>(i._sqlite3_uri_boolean=h.sqlite3_uri_boolean)(e,t,n),i._sqlite3_serialize=(e,t,n,r)=>(i._sqlite3_serialize=h.sqlite3_serialize)(e,t,n,r),i._sqlite3_prepare_v2=(e,t,n,r,s)=>(i._sqlite3_prepare_v2=h.sqlite3_prepare_v2)(e,t,n,r,s),i._sqlite3_step=e=>(i._sqlite3_step=h.sqlite3_step)(e),i._sqlite3_column_int64=(e,t)=>(i._sqlite3_column_int64=h.sqlite3_column_int64)(e,t),i._sqlite3_reset=e=>(i._sqlite3_reset=h.sqlite3_reset)(e),i._sqlite3_exec=(e,t,n,r,s)=>(i._sqlite3_exec=h.sqlite3_exec)(e,t,n,r,s),i._sqlite3_column_int=(e,t)=>(i._sqlite3_column_int=h.sqlite3_column_int)(e,t),i._sqlite3_finalize=e=>(i._sqlite3_finalize=h.sqlite3_finalize)(e),i._sqlite3_file_control=(e,t,n,r)=>(i._sqlite3_file_control=h.sqlite3_file_control)(e,t,n,r),i._sqlite3_column_name=(e,t)=>(i._sqlite3_column_name=h.sqlite3_column_name)(e,t),i._sqlite3_column_text=(e,t)=>(i._sqlite3_column_text=h.sqlite3_column_text)(e,t),i._sqlite3_column_type=(e,t)=>(i._sqlite3_column_type=h.sqlite3_column_type)(e,t),i._sqlite3_errmsg=e=>(i._sqlite3_errmsg=h.sqlite3_errmsg)(e),i._sqlite3_deserialize=(e,t,n,r,s,o)=>(i._sqlite3_deserialize=h.sqlite3_deserialize)(e,t,n,r,s,o),i._sqlite3_clear_bindings=e=>(i._sqlite3_clear_bindings=h.sqlite3_clear_bindings)(e),i._sqlite3_value_blob=e=>(i._sqlite3_value_blob=h.sqlite3_value_blob)(e),i._sqlite3_value_bytes=e=>(i._sqlite3_value_bytes=h.sqlite3_value_bytes)(e),i._sqlite3_value_double=e=>(i._sqlite3_value_double=h.sqlite3_value_double)(e),i._sqlite3_value_int=e=>(i._sqlite3_value_int=h.sqlite3_value_int)(e),i._sqlite3_value_int64=e=>(i._sqlite3_value_int64=h.sqlite3_value_int64)(e),i._sqlite3_value_subtype=e=>(i._sqlite3_value_subtype=h.sqlite3_value_subtype)(e),i._sqlite3_value_pointer=(e,t)=>(i._sqlite3_value_pointer=h.sqlite3_value_pointer)(e,t),i._sqlite3_value_type=e=>(i._sqlite3_value_type=h.sqlite3_value_type)(e),i._sqlite3_value_nochange=e=>(i._sqlite3_value_nochange=h.sqlite3_value_nochange)(e),i._sqlite3_value_frombind=e=>(i._sqlite3_value_frombind=h.sqlite3_value_frombind)(e),i._sqlite3_value_dup=e=>(i._sqlite3_value_dup=h.sqlite3_value_dup)(e),i._sqlite3_value_free=e=>(i._sqlite3_value_free=h.sqlite3_value_free)(e),i._sqlite3_result_blob=(e,t,n,r)=>(i._sqlite3_result_blob=h.sqlite3_result_blob)(e,t,n,r),i._sqlite3_result_error_toobig=e=>(i._sqlite3_result_error_toobig=h.sqlite3_result_error_toobig)(e),i._sqlite3_result_error_nomem=e=>(i._sqlite3_result_error_nomem=h.sqlite3_result_error_nomem)(e),i._sqlite3_result_double=(e,t)=>(i._sqlite3_result_double=h.sqlite3_result_double)(e,t),i._sqlite3_result_error=(e,t,n)=>(i._sqlite3_result_error=h.sqlite3_result_error)(e,t,n),i._sqlite3_result_int=(e,t)=>(i._sqlite3_result_int=h.sqlite3_result_int)(e,t),i._sqlite3_result_int64=(e,t)=>(i._sqlite3_result_int64=h.sqlite3_result_int64)(e,t),i._sqlite3_result_null=e=>(i._sqlite3_result_null=h.sqlite3_result_null)(e),i._sqlite3_result_pointer=(e,t,n,r)=>(i._sqlite3_result_pointer=h.sqlite3_result_pointer)(e,t,n,r),i._sqlite3_result_subtype=(e,t)=>(i._sqlite3_result_subtype=h.sqlite3_result_subtype)(e,t),i._sqlite3_result_text=(e,t,n,r)=>(i._sqlite3_result_text=h.sqlite3_result_text)(e,t,n,r),i._sqlite3_result_zeroblob=(e,t)=>(i._sqlite3_result_zeroblob=h.sqlite3_result_zeroblob)(e,t),i._sqlite3_result_zeroblob64=(e,t)=>(i._sqlite3_result_zeroblob64=h.sqlite3_result_zeroblob64)(e,t),i._sqlite3_result_error_code=(e,t)=>(i._sqlite3_result_error_code=h.sqlite3_result_error_code)(e,t),i._sqlite3_user_data=e=>(i._sqlite3_user_data=h.sqlite3_user_data)(e),i._sqlite3_context_db_handle=e=>(i._sqlite3_context_db_handle=h.sqlite3_context_db_handle)(e),i._sqlite3_vtab_nochange=e=>(i._sqlite3_vtab_nochange=h.sqlite3_vtab_nochange)(e),i._sqlite3_vtab_in_first=(e,t)=>(i._sqlite3_vtab_in_first=h.sqlite3_vtab_in_first)(e,t),i._sqlite3_vtab_in_next=(e,t)=>(i._sqlite3_vtab_in_next=h.sqlite3_vtab_in_next)(e,t),i._sqlite3_aggregate_context=(e,t)=>(i._sqlite3_aggregate_context=h.sqlite3_aggregate_context)(e,t),i._sqlite3_get_auxdata=(e,t)=>(i._sqlite3_get_auxdata=h.sqlite3_get_auxdata)(e,t),i._sqlite3_set_auxdata=(e,t,n,r)=>(i._sqlite3_set_auxdata=h.sqlite3_set_auxdata)(e,t,n,r),i._sqlite3_column_count=e=>(i._sqlite3_column_count=h.sqlite3_column_count)(e),i._sqlite3_data_count=e=>(i._sqlite3_data_count=h.sqlite3_data_count)(e),i._sqlite3_column_blob=(e,t)=>(i._sqlite3_column_blob=h.sqlite3_column_blob)(e,t),i._sqlite3_column_bytes=(e,t)=>(i._sqlite3_column_bytes=h.sqlite3_column_bytes)(e,t),i._sqlite3_column_double=(e,t)=>(i._sqlite3_column_double=h.sqlite3_column_double)(e,t),i._sqlite3_column_value=(e,t)=>(i._sqlite3_column_value=h.sqlite3_column_value)(e,t),i._sqlite3_column_decltype=(e,t)=>(i._sqlite3_column_decltype=h.sqlite3_column_decltype)(e,t),i._sqlite3_bind_blob=(e,t,n,r,s)=>(i._sqlite3_bind_blob=h.sqlite3_bind_blob)(e,t,n,r,s),i._sqlite3_bind_double=(e,t,n)=>(i._sqlite3_bind_double=h.sqlite3_bind_double)(e,t,n),i._sqlite3_bind_int=(e,t,n)=>(i._sqlite3_bind_int=h.sqlite3_bind_int)(e,t,n),i._sqlite3_bind_int64=(e,t,n)=>(i._sqlite3_bind_int64=h.sqlite3_bind_int64)(e,t,n),i._sqlite3_bind_null=(e,t)=>(i._sqlite3_bind_null=h.sqlite3_bind_null)(e,t),i._sqlite3_bind_pointer=(e,t,n,r,s)=>(i._sqlite3_bind_pointer=h.sqlite3_bind_pointer)(e,t,n,r,s),i._sqlite3_bind_text=(e,t,n,r,s)=>(i._sqlite3_bind_text=h.sqlite3_bind_text)(e,t,n,r,s),i._sqlite3_bind_parameter_count=e=>(i._sqlite3_bind_parameter_count=h.sqlite3_bind_parameter_count)(e),i._sqlite3_bind_parameter_name=(e,t)=>(i._sqlite3_bind_parameter_name=h.sqlite3_bind_parameter_name)(e,t),i._sqlite3_bind_parameter_index=(e,t)=>(i._sqlite3_bind_parameter_index=h.sqlite3_bind_parameter_index)(e,t),i._sqlite3_db_handle=e=>(i._sqlite3_db_handle=h.sqlite3_db_handle)(e),i._sqlite3_stmt_readonly=e=>(i._sqlite3_stmt_readonly=h.sqlite3_stmt_readonly)(e),i._sqlite3_stmt_isexplain=e=>(i._sqlite3_stmt_isexplain=h.sqlite3_stmt_isexplain)(e),i._sqlite3_stmt_explain=(e,t)=>(i._sqlite3_stmt_explain=h.sqlite3_stmt_explain)(e,t),i._sqlite3_stmt_busy=e=>(i._sqlite3_stmt_busy=h.sqlite3_stmt_busy)(e),i._sqlite3_stmt_status=(e,t,n)=>(i._sqlite3_stmt_status=h.sqlite3_stmt_status)(e,t,n),i._sqlite3_sql=e=>(i._sqlite3_sql=h.sqlite3_sql)(e),i._sqlite3_expanded_sql=e=>(i._sqlite3_expanded_sql=h.sqlite3_expanded_sql)(e),i._sqlite3_preupdate_old=(e,t,n)=>(i._sqlite3_preupdate_old=h.sqlite3_preupdate_old)(e,t,n),i._sqlite3_preupdate_count=e=>(i._sqlite3_preupdate_count=h.sqlite3_preupdate_count)(e),i._sqlite3_preupdate_depth=e=>(i._sqlite3_preupdate_depth=h.sqlite3_preupdate_depth)(e),i._sqlite3_preupdate_blobwrite=e=>(i._sqlite3_preupdate_blobwrite=h.sqlite3_preupdate_blobwrite)(e),i._sqlite3_preupdate_new=(e,t,n)=>(i._sqlite3_preupdate_new=h.sqlite3_preupdate_new)(e,t,n),i._sqlite3_value_numeric_type=e=>(i._sqlite3_value_numeric_type=h.sqlite3_value_numeric_type)(e),i._sqlite3_set_authorizer=(e,t,n)=>(i._sqlite3_set_authorizer=h.sqlite3_set_authorizer)(e,t,n),i._sqlite3_strglob=(e,t)=>(i._sqlite3_strglob=h.sqlite3_strglob)(e,t),i._sqlite3_strlike=(e,t,n)=>(i._sqlite3_strlike=h.sqlite3_strlike)(e,t,n),i._sqlite3_auto_extension=e=>(i._sqlite3_auto_extension=h.sqlite3_auto_extension)(e),i._sqlite3_cancel_auto_extension=e=>(i._sqlite3_cancel_auto_extension=h.sqlite3_cancel_auto_extension)(e),i._sqlite3_reset_auto_extension=()=>(i._sqlite3_reset_auto_extension=h.sqlite3_reset_auto_extension)(),i._sqlite3_prepare_v3=(e,t,n,r,s,o)=>(i._sqlite3_prepare_v3=h.sqlite3_prepare_v3)(e,t,n,r,s,o),i._sqlite3_create_module=(e,t,n,r)=>(i._sqlite3_create_module=h.sqlite3_create_module)(e,t,n,r),i._sqlite3_create_module_v2=(e,t,n,r,s)=>(i._sqlite3_create_module_v2=h.sqlite3_create_module_v2)(e,t,n,r,s),i._sqlite3_drop_modules=(e,t)=>(i._sqlite3_drop_modules=h.sqlite3_drop_modules)(e,t),i._sqlite3_declare_vtab=(e,t)=>(i._sqlite3_declare_vtab=h.sqlite3_declare_vtab)(e,t),i._sqlite3_vtab_on_conflict=e=>(i._sqlite3_vtab_on_conflict=h.sqlite3_vtab_on_conflict)(e),i._sqlite3_vtab_collation=(e,t)=>(i._sqlite3_vtab_collation=h.sqlite3_vtab_collation)(e,t),i._sqlite3_vtab_in=(e,t,n)=>(i._sqlite3_vtab_in=h.sqlite3_vtab_in)(e,t,n),i._sqlite3_vtab_rhs_value=(e,t,n)=>(i._sqlite3_vtab_rhs_value=h.sqlite3_vtab_rhs_value)(e,t,n),i._sqlite3_vtab_distinct=e=>(i._sqlite3_vtab_distinct=h.sqlite3_vtab_distinct)(e),i._sqlite3_keyword_name=(e,t,n)=>(i._sqlite3_keyword_name=h.sqlite3_keyword_name)(e,t,n),i._sqlite3_keyword_count=()=>(i._sqlite3_keyword_count=h.sqlite3_keyword_count)(),i._sqlite3_keyword_check=(e,t)=>(i._sqlite3_keyword_check=h.sqlite3_keyword_check)(e,t),i._sqlite3_complete=e=>(i._sqlite3_complete=h.sqlite3_complete)(e),i._sqlite3_libversion=()=>(i._sqlite3_libversion=h.sqlite3_libversion)(),i._sqlite3_libversion_number=()=>(i._sqlite3_libversion_number=h.sqlite3_libversion_number)(),i._sqlite3_shutdown=()=>(i._sqlite3_shutdown=h.sqlite3_shutdown)(),i._sqlite3_last_insert_rowid=e=>(i._sqlite3_last_insert_rowid=h.sqlite3_last_insert_rowid)(e),i._sqlite3_set_last_insert_rowid=(e,t)=>(i._sqlite3_set_last_insert_rowid=h.sqlite3_set_last_insert_rowid)(e,t),i._sqlite3_changes64=e=>(i._sqlite3_changes64=h.sqlite3_changes64)(e),i._sqlite3_changes=e=>(i._sqlite3_changes=h.sqlite3_changes)(e),i._sqlite3_total_changes64=e=>(i._sqlite3_total_changes64=h.sqlite3_total_changes64)(e),i._sqlite3_total_changes=e=>(i._sqlite3_total_changes=h.sqlite3_total_changes)(e),i._sqlite3_txn_state=(e,t)=>(i._sqlite3_txn_state=h.sqlite3_txn_state)(e,t),i._sqlite3_close_v2=e=>(i._sqlite3_close_v2=h.sqlite3_close_v2)(e),i._sqlite3_busy_handler=(e,t,n)=>(i._sqlite3_busy_handler=h.sqlite3_busy_handler)(e,t,n),i._sqlite3_progress_handler=(e,t,n,r)=>(i._sqlite3_progress_handler=h.sqlite3_progress_handler)(e,t,n,r),i._sqlite3_busy_timeout=(e,t)=>(i._sqlite3_busy_timeout=h.sqlite3_busy_timeout)(e,t),i._sqlite3_interrupt=e=>(i._sqlite3_interrupt=h.sqlite3_interrupt)(e),i._sqlite3_is_interrupted=e=>(i._sqlite3_is_interrupted=h.sqlite3_is_interrupted)(e),i._sqlite3_create_function=(e,t,n,r,s,o,p,g)=>(i._sqlite3_create_function=h.sqlite3_create_function)(e,t,n,r,s,o,p,g),i._sqlite3_create_function_v2=(e,t,n,r,s,o,p,g,O)=>(i._sqlite3_create_function_v2=h.sqlite3_create_function_v2)(e,t,n,r,s,o,p,g,O),i._sqlite3_create_window_function=(e,t,n,r,s,o,p,g,O,R)=>(i._sqlite3_create_window_function=h.sqlite3_create_window_function)(e,t,n,r,s,o,p,g,O,R),i._sqlite3_overload_function=(e,t,n)=>(i._sqlite3_overload_function=h.sqlite3_overload_function)(e,t,n),i._sqlite3_trace_v2=(e,t,n,r)=>(i._sqlite3_trace_v2=h.sqlite3_trace_v2)(e,t,n,r),i._sqlite3_commit_hook=(e,t,n)=>(i._sqlite3_commit_hook=h.sqlite3_commit_hook)(e,t,n),i._sqlite3_update_hook=(e,t,n)=>(i._sqlite3_update_hook=h.sqlite3_update_hook)(e,t,n),i._sqlite3_rollback_hook=(e,t,n)=>(i._sqlite3_rollback_hook=h.sqlite3_rollback_hook)(e,t,n),i._sqlite3_preupdate_hook=(e,t,n)=>(i._sqlite3_preupdate_hook=h.sqlite3_preupdate_hook)(e,t,n),i._sqlite3_error_offset=e=>(i._sqlite3_error_offset=h.sqlite3_error_offset)(e),i._sqlite3_errcode=e=>(i._sqlite3_errcode=h.sqlite3_errcode)(e),i._sqlite3_extended_errcode=e=>(i._sqlite3_extended_errcode=h.sqlite3_extended_errcode)(e),i._sqlite3_errstr=e=>(i._sqlite3_errstr=h.sqlite3_errstr)(e),i._sqlite3_limit=(e,t,n)=>(i._sqlite3_limit=h.sqlite3_limit)(e,t,n),i._sqlite3_open=(e,t)=>(i._sqlite3_open=h.sqlite3_open)(e,t),i._sqlite3_open_v2=(e,t,n,r)=>(i._sqlite3_open_v2=h.sqlite3_open_v2)(e,t,n,r),i._sqlite3_create_collation=(e,t,n,r,s)=>(i._sqlite3_create_collation=h.sqlite3_create_collation)(e,t,n,r,s),i._sqlite3_create_collation_v2=(e,t,n,r,s,o)=>(i._sqlite3_create_collation_v2=h.sqlite3_create_collation_v2)(e,t,n,r,s,o),i._sqlite3_collation_needed=(e,t,n)=>(i._sqlite3_collation_needed=h.sqlite3_collation_needed)(e,t,n),i._sqlite3_get_autocommit=e=>(i._sqlite3_get_autocommit=h.sqlite3_get_autocommit)(e),i._sqlite3_table_column_metadata=(e,t,n,r,s,o,p,g,O)=>(i._sqlite3_table_column_metadata=h.sqlite3_table_column_metadata)(e,t,n,r,s,o,p,g,O),i._sqlite3_extended_result_codes=(e,t)=>(i._sqlite3_extended_result_codes=h.sqlite3_extended_result_codes)(e,t),i._sqlite3_uri_key=(e,t)=>(i._sqlite3_uri_key=h.sqlite3_uri_key)(e,t),i._sqlite3_uri_int64=(e,t,n)=>(i._sqlite3_uri_int64=h.sqlite3_uri_int64)(e,t,n),i._sqlite3_db_name=(e,t)=>(i._sqlite3_db_name=h.sqlite3_db_name)(e,t),i._sqlite3_db_filename=(e,t)=>(i._sqlite3_db_filename=h.sqlite3_db_filename)(e,t),i._sqlite3_db_readonly=(e,t)=>(i._sqlite3_db_readonly=h.sqlite3_db_readonly)(e,t),i._sqlite3_compileoption_used=e=>(i._sqlite3_compileoption_used=h.sqlite3_compileoption_used)(e),i._sqlite3_compileoption_get=e=>(i._sqlite3_compileoption_get=h.sqlite3_compileoption_get)(e),i._sqlite3session_diff=(e,t,n,r)=>(i._sqlite3session_diff=h.sqlite3session_diff)(e,t,n,r),i._sqlite3session_attach=(e,t)=>(i._sqlite3session_attach=h.sqlite3session_attach)(e,t),i._sqlite3session_create=(e,t,n)=>(i._sqlite3session_create=h.sqlite3session_create)(e,t,n),i._sqlite3session_delete=e=>(i._sqlite3session_delete=h.sqlite3session_delete)(e),i._sqlite3session_table_filter=(e,t,n)=>(i._sqlite3session_table_filter=h.sqlite3session_table_filter)(e,t,n),i._sqlite3session_changeset=(e,t,n)=>(i._sqlite3session_changeset=h.sqlite3session_changeset)(e,t,n),i._sqlite3session_changeset_strm=(e,t,n)=>(i._sqlite3session_changeset_strm=h.sqlite3session_changeset_strm)(e,t,n),i._sqlite3session_patchset_strm=(e,t,n)=>(i._sqlite3session_patchset_strm=h.sqlite3session_patchset_strm)(e,t,n),i._sqlite3session_patchset=(e,t,n)=>(i._sqlite3session_patchset=h.sqlite3session_patchset)(e,t,n),i._sqlite3session_enable=(e,t)=>(i._sqlite3session_enable=h.sqlite3session_enable)(e,t),i._sqlite3session_indirect=(e,t)=>(i._sqlite3session_indirect=h.sqlite3session_indirect)(e,t),i._sqlite3session_isempty=e=>(i._sqlite3session_isempty=h.sqlite3session_isempty)(e),i._sqlite3session_memory_used=e=>(i._sqlite3session_memory_used=h.sqlite3session_memory_used)(e),i._sqlite3session_object_config=(e,t,n)=>(i._sqlite3session_object_config=h.sqlite3session_object_config)(e,t,n),i._sqlite3session_changeset_size=e=>(i._sqlite3session_changeset_size=h.sqlite3session_changeset_size)(e),i._sqlite3changeset_start=(e,t,n)=>(i._sqlite3changeset_start=h.sqlite3changeset_start)(e,t,n),i._sqlite3changeset_start_v2=(e,t,n,r)=>(i._sqlite3changeset_start_v2=h.sqlite3changeset_start_v2)(e,t,n,r),i._sqlite3changeset_start_strm=(e,t,n)=>(i._sqlite3changeset_start_strm=h.sqlite3changeset_start_strm)(e,t,n),i._sqlite3changeset_start_v2_strm=(e,t,n,r)=>(i._sqlite3changeset_start_v2_strm=h.sqlite3changeset_start_v2_strm)(e,t,n,r),i._sqlite3changeset_next=e=>(i._sqlite3changeset_next=h.sqlite3changeset_next)(e),i._sqlite3changeset_op=(e,t,n,r,s)=>(i._sqlite3changeset_op=h.sqlite3changeset_op)(e,t,n,r,s),i._sqlite3changeset_pk=(e,t,n)=>(i._sqlite3changeset_pk=h.sqlite3changeset_pk)(e,t,n),i._sqlite3changeset_old=(e,t,n)=>(i._sqlite3changeset_old=h.sqlite3changeset_old)(e,t,n),i._sqlite3changeset_new=(e,t,n)=>(i._sqlite3changeset_new=h.sqlite3changeset_new)(e,t,n),i._sqlite3changeset_conflict=(e,t,n)=>(i._sqlite3changeset_conflict=h.sqlite3changeset_conflict)(e,t,n),i._sqlite3changeset_fk_conflicts=(e,t)=>(i._sqlite3changeset_fk_conflicts=h.sqlite3changeset_fk_conflicts)(e,t),i._sqlite3changeset_finalize=e=>(i._sqlite3changeset_finalize=h.sqlite3changeset_finalize)(e),i._sqlite3changeset_invert=(e,t,n,r)=>(i._sqlite3changeset_invert=h.sqlite3changeset_invert)(e,t,n,r),i._sqlite3changeset_invert_strm=(e,t,n,r)=>(i._sqlite3changeset_invert_strm=h.sqlite3changeset_invert_strm)(e,t,n,r),i._sqlite3changeset_apply_v2=(e,t,n,r,s,o,p,g,O)=>(i._sqlite3changeset_apply_v2=h.sqlite3changeset_apply_v2)(e,t,n,r,s,o,p,g,O),i._sqlite3changeset_apply=(e,t,n,r,s,o)=>(i._sqlite3changeset_apply=h.sqlite3changeset_apply)(e,t,n,r,s,o),i._sqlite3changeset_apply_v2_strm=(e,t,n,r,s,o,p,g,O)=>(i._sqlite3changeset_apply_v2_strm=h.sqlite3changeset_apply_v2_strm)(e,t,n,r,s,o,p,g,O),i._sqlite3changeset_apply_strm=(e,t,n,r,s,o)=>(i._sqlite3changeset_apply_strm=h.sqlite3changeset_apply_strm)(e,t,n,r,s,o),i._sqlite3changegroup_new=e=>(i._sqlite3changegroup_new=h.sqlite3changegroup_new)(e),i._sqlite3changegroup_add=(e,t,n)=>(i._sqlite3changegroup_add=h.sqlite3changegroup_add)(e,t,n),i._sqlite3changegroup_output=(e,t,n)=>(i._sqlite3changegroup_output=h.sqlite3changegroup_output)(e,t,n),i._sqlite3changegroup_add_strm=(e,t,n)=>(i._sqlite3changegroup_add_strm=h.sqlite3changegroup_add_strm)(e,t,n),i._sqlite3changegroup_output_strm=(e,t,n)=>(i._sqlite3changegroup_output_strm=h.sqlite3changegroup_output_strm)(e,t,n),i._sqlite3changegroup_delete=e=>(i._sqlite3changegroup_delete=h.sqlite3changegroup_delete)(e),i._sqlite3changeset_concat=(e,t,n,r,s,o)=>(i._sqlite3changeset_concat=h.sqlite3changeset_concat)(e,t,n,r,s,o),i._sqlite3changeset_concat_strm=(e,t,n,r,s,o)=>(i._sqlite3changeset_concat_strm=h.sqlite3changeset_concat_strm)(e,t,n,r,s,o),i._sqlite3session_config=(e,t)=>(i._sqlite3session_config=h.sqlite3session_config)(e,t),i._sqlite3_sourceid=()=>(i._sqlite3_sourceid=h.sqlite3_sourceid)(),i._sqlite3__wasm_pstack_ptr=()=>(i._sqlite3__wasm_pstack_ptr=h.sqlite3__wasm_pstack_ptr)(),i._sqlite3__wasm_pstack_restore=e=>(i._sqlite3__wasm_pstack_restore=h.sqlite3__wasm_pstack_restore)(e),i._sqlite3__wasm_pstack_alloc=e=>(i._sqlite3__wasm_pstack_alloc=h.sqlite3__wasm_pstack_alloc)(e),i._sqlite3__wasm_pstack_remaining=()=>(i._sqlite3__wasm_pstack_remaining=h.sqlite3__wasm_pstack_remaining)(),i._sqlite3__wasm_pstack_quota=()=>(i._sqlite3__wasm_pstack_quota=h.sqlite3__wasm_pstack_quota)(),i._sqlite3__wasm_db_error=(e,t,n)=>(i._sqlite3__wasm_db_error=h.sqlite3__wasm_db_error)(e,t,n),i._sqlite3__wasm_test_struct=e=>(i._sqlite3__wasm_test_struct=h.sqlite3__wasm_test_struct)(e),i._sqlite3__wasm_enum_json=()=>(i._sqlite3__wasm_enum_json=h.sqlite3__wasm_enum_json)(),i._sqlite3__wasm_vfs_unlink=(e,t)=>(i._sqlite3__wasm_vfs_unlink=h.sqlite3__wasm_vfs_unlink)(e,t),i._sqlite3__wasm_db_vfs=(e,t)=>(i._sqlite3__wasm_db_vfs=h.sqlite3__wasm_db_vfs)(e,t),i._sqlite3__wasm_db_reset=e=>(i._sqlite3__wasm_db_reset=h.sqlite3__wasm_db_reset)(e),i._sqlite3__wasm_db_export_chunked=(e,t)=>(i._sqlite3__wasm_db_export_chunked=h.sqlite3__wasm_db_export_chunked)(e,t),i._sqlite3__wasm_db_serialize=(e,t,n,r,s)=>(i._sqlite3__wasm_db_serialize=h.sqlite3__wasm_db_serialize)(e,t,n,r,s),i._sqlite3__wasm_vfs_create_file=(e,t,n,r)=>(i._sqlite3__wasm_vfs_create_file=h.sqlite3__wasm_vfs_create_file)(e,t,n,r),i._sqlite3__wasm_posix_create_file=(e,t,n)=>(i._sqlite3__wasm_posix_create_file=h.sqlite3__wasm_posix_create_file)(e,t,n),i._sqlite3__wasm_kvvfsMakeKeyOnPstack=(e,t)=>(i._sqlite3__wasm_kvvfsMakeKeyOnPstack=h.sqlite3__wasm_kvvfsMakeKeyOnPstack)(e,t),i._sqlite3__wasm_kvvfs_methods=()=>(i._sqlite3__wasm_kvvfs_methods=h.sqlite3__wasm_kvvfs_methods)(),i._sqlite3__wasm_vtab_config=(e,t,n)=>(i._sqlite3__wasm_vtab_config=h.sqlite3__wasm_vtab_config)(e,t,n),i._sqlite3__wasm_db_config_ip=(e,t,n,r)=>(i._sqlite3__wasm_db_config_ip=h.sqlite3__wasm_db_config_ip)(e,t,n,r),i._sqlite3__wasm_db_config_pii=(e,t,n,r,s)=>(i._sqlite3__wasm_db_config_pii=h.sqlite3__wasm_db_config_pii)(e,t,n,r,s),i._sqlite3__wasm_db_config_s=(e,t,n)=>(i._sqlite3__wasm_db_config_s=h.sqlite3__wasm_db_config_s)(e,t,n),i._sqlite3__wasm_config_i=(e,t)=>(i._sqlite3__wasm_config_i=h.sqlite3__wasm_config_i)(e,t),i._sqlite3__wasm_config_ii=(e,t,n)=>(i._sqlite3__wasm_config_ii=h.sqlite3__wasm_config_ii)(e,t,n),i._sqlite3__wasm_config_j=(e,t)=>(i._sqlite3__wasm_config_j=h.sqlite3__wasm_config_j)(e,t),i._sqlite3__wasm_qfmt_token=(e,t)=>(i._sqlite3__wasm_qfmt_token=h.sqlite3__wasm_qfmt_token)(e,t),i._sqlite3__wasm_init_wasmfs=e=>(i._sqlite3__wasm_init_wasmfs=h.sqlite3__wasm_init_wasmfs)(e),i._sqlite3__wasm_test_intptr=e=>(i._sqlite3__wasm_test_intptr=h.sqlite3__wasm_test_intptr)(e),i._sqlite3__wasm_test_voidptr=e=>(i._sqlite3__wasm_test_voidptr=h.sqlite3__wasm_test_voidptr)(e),i._sqlite3__wasm_test_int64_max=()=>(i._sqlite3__wasm_test_int64_max=h.sqlite3__wasm_test_int64_max)(),i._sqlite3__wasm_test_int64_min=()=>(i._sqlite3__wasm_test_int64_min=h.sqlite3__wasm_test_int64_min)(),i._sqlite3__wasm_test_int64_times2=e=>(i._sqlite3__wasm_test_int64_times2=h.sqlite3__wasm_test_int64_times2)(e),i._sqlite3__wasm_test_int64_minmax=(e,t)=>(i._sqlite3__wasm_test_int64_minmax=h.sqlite3__wasm_test_int64_minmax)(e,t),i._sqlite3__wasm_test_int64ptr=e=>(i._sqlite3__wasm_test_int64ptr=h.sqlite3__wasm_test_int64ptr)(e),i._sqlite3__wasm_test_stack_overflow=e=>(i._sqlite3__wasm_test_stack_overflow=h.sqlite3__wasm_test_stack_overflow)(e),i._sqlite3__wasm_test_str_hello=e=>(i._sqlite3__wasm_test_str_hello=h.sqlite3__wasm_test_str_hello)(e),i._sqlite3__wasm_SQLTester_strglob=(e,t)=>(i._sqlite3__wasm_SQLTester_strglob=h.sqlite3__wasm_SQLTester_strglob)(e,t),i._malloc=e=>(i._malloc=h.malloc)(e),i._free=e=>(i._free=h.free)(e),i._realloc=(e,t)=>(i._realloc=h.realloc)(e,t);var St=(e,t)=>(St=h.emscripten_builtin_memalign)(e,t);i.wasmMemory=Te;var Ge,At;Me=function e(){Ge||It(),Ge||(Me=e)};function It(){if(Fe>0||!At&&(At=1,Pt(),Fe>0))return;function e(){Ge||(Ge=1,i.calledRun=1,!_t&&(Lt(),ve(i),i.onRuntimeInitialized?.(),Ct()))}i.setStatus?(i.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>i.setStatus(""),1),e()},1)):e()}if(i.preInit)for(typeof i.preInit=="function"&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return It(),i.runSQLite3PostLoadInit=function(e){if(globalThis.sqlite3ApiBootstrap=function t(n=globalThis.sqlite3ApiConfig||t.defaultConfig){if(t.sqlite3)return(t.sqlite3.config||console).warn("sqlite3ApiBootstrap() called multiple times.","Config and external initializers are ignored on calls after the first."),t.sqlite3;const r=Object.assign(Object.create(null),{exports:void 0,memory:void 0,bigIntEnabled:typeof i<"u"&&i.HEAPU64?!0:!!globalThis.BigInt64Array,debug:console.debug.bind(console),warn:console.warn.bind(console),error:console.error.bind(console),log:console.log.bind(console),wasmfsOpfsDir:"/opfs",useStdAlloc:!1},n||{});Object.assign(r,{allocExportName:r.useStdAlloc?"malloc":"sqlite3_malloc",deallocExportName:r.useStdAlloc?"free":"sqlite3_free",reallocExportName:r.useStdAlloc?"realloc":"sqlite3_realloc"},r),["exports","memory","wasmfsOpfsDir"].forEach(l=>{typeof r[l]=="function"&&(r[l]=r[l]())}),delete globalThis.sqlite3ApiConfig,delete t.defaultConfig;const s=Object.create(null),o=Object.create(null),p=l=>s.sqlite3_js_rc_str&&s.sqlite3_js_rc_str(l)||"Unknown result code #"+l,g=l=>typeof l=="number"&&l===(l|0);class O extends Error{constructor(..._){let u;if(_.length)if(g(_[0]))if(u=_[0],_.length===1)super(p(_[0]));else{const I=p(u);typeof _[1]=="object"?super(I,_[1]):(_[0]=I+":",super(_.join(" ")))}else _.length===2&&typeof _[1]=="object"?super(..._):super(_.join(" "));this.resultCode=u||s.SQLITE_ERROR,this.name="SQLite3Error"}}O.toss=(...l)=>{throw new O(...l)};const R=O.toss;r.wasmfsOpfsDir&&!/^\/[^/]+$/.test(r.wasmfsOpfsDir)&&R("config.wasmfsOpfsDir must be falsy or in the form '/dir-name'.");const z=l=>typeof l!="bigint"&&l===(l|0)&&l<=2147483647&&l>=-2147483648,W=function l(_){return l._max||(l._max=BigInt("0x7fffffffffffffff"),l._min=~l._max),_>=l._min&&_<=l._max},T=l=>l>=-0x7fffffffn-1n&&l<=0x7fffffffn,A=function l(_){return l._min||(l._min=Number.MIN_SAFE_INTEGER,l._max=Number.MAX_SAFE_INTEGER),_>=l._min&&_<=l._max},D=l=>l&&l.constructor&&z(l.constructor.BYTES_PER_ELEMENT)?l:!1,q=typeof SharedArrayBuffer>"u"?function(){}:SharedArrayBuffer,w=l=>l.buffer instanceof q,x=(l,_,u)=>w(l)?l.slice(_,u):l.subarray(_,u),N=l=>l&&(l instanceof Uint8Array||l instanceof Int8Array||l instanceof ArrayBuffer),P=l=>l&&(l instanceof Uint8Array||l instanceof Int8Array||l instanceof ArrayBuffer),S=l=>N(l)||R("Value is not of a supported TypedArray type."),L=new TextDecoder("utf-8"),$=function(l,_,u){return L.decode(x(l,_,u))},c=function(l){return P(l)?$(l instanceof ArrayBuffer?new Uint8Array(l):l):Array.isArray(l)?l.join(""):(o.isPtr(l)&&(l=o.cstrToJs(l)),l)};class d extends Error{constructor(..._){_.length===2&&typeof _[1]=="object"?super(..._):_.length?super(_.join(" ")):super("Allocation failed."),this.resultCode=s.SQLITE_NOMEM,this.name="WasmAllocError"}}d.toss=(...l)=>{throw new d(...l)},Object.assign(s,{sqlite3_bind_blob:void 0,sqlite3_bind_text:void 0,sqlite3_create_function_v2:(l,_,u,I,U,ee,ne,re,se)=>{},sqlite3_create_function:(l,_,u,I,U,ee,ne,re)=>{},sqlite3_create_window_function:(l,_,u,I,U,ee,ne,re,se,j)=>{},sqlite3_prepare_v3:(l,_,u,I,U,ee)=>{},sqlite3_prepare_v2:(l,_,u,I,U)=>{},sqlite3_exec:(l,_,u,I,U)=>{},sqlite3_randomness:(l,_)=>{}});const y={affirmBindableTypedArray:S,flexibleString:c,bigIntFits32:T,bigIntFits64:W,bigIntFitsDouble:A,isBindableTypedArray:N,isInt32:z,isSQLableTypedArray:P,isTypedArray:D,typedArrayToString:$,isUIThread:()=>globalThis.window===globalThis&&!!globalThis.document,isSharedTypedArray:w,toss:function(...l){throw new Error(l.join(" "))},toss3:R,typedArrayPart:x,affirmDbHeader:function(l){l instanceof ArrayBuffer&&(l=new Uint8Array(l));const _="SQLite format 3";_.length>l.byteLength&&R("Input does not contain an SQLite3 database header.");for(let u=0;u<_.length;++u)_.charCodeAt(u)!==l[u]&&R("Input does not contain an SQLite3 database header.")},affirmIsDb:function(l){l instanceof ArrayBuffer&&(l=new Uint8Array(l));const _=l.byteLength;(_<512||_%512!==0)&&R("Byte array size",_,"is invalid for an SQLite3 db."),y.affirmDbHeader(l)}};Object.assign(o,{ptrSizeof:r.wasmPtrSizeof||4,ptrIR:r.wasmPtrIR||"i32",bigIntEnabled:!!r.bigIntEnabled,exports:r.exports||R("Missing API config.exports (WASM module exports)."),memory:r.memory||r.exports.memory||R("API config object requires a WebAssembly.Memory object","in either config.exports.memory (exported)","or config.memory (imported)."),alloc:void 0,realloc:void 0,dealloc:void 0}),o.allocFromTypedArray=function(l){l instanceof ArrayBuffer&&(l=new Uint8Array(l)),S(l);const _=o.alloc(l.byteLength||1);return o.heapForSize(l.constructor).set(l.byteLength?l:[0],_),_};{const l=r.allocExportName,_=r.deallocExportName,u=r.reallocExportName;for(const I of[l,_,u])o.exports[I]instanceof Function||R("Missing required exports[",I,"] function.");o.alloc=function I(U){return I.impl(U)||d.toss("Failed to allocate",U," bytes.")},o.alloc.impl=o.exports[l],o.realloc=function I(U,ee){const ne=I.impl(U,ee);return ee?ne||d.toss("Failed to reallocate",ee," bytes."):0},o.realloc.impl=o.exports[u],o.dealloc=o.exports[_]}o.compileOptionUsed=function l(_){if(arguments.length){if(Array.isArray(_)){const u={};return _.forEach(I=>{u[I]=s.sqlite3_compileoption_used(I)}),u}else if(typeof _=="object")return Object.keys(_).forEach(u=>{_[u]=s.sqlite3_compileoption_used(u)}),_}else{if(l._result)return l._result;l._opt||(l._rx=/^([^=]+)=(.+)/,l._rxInt=/^-?\d+$/,l._opt=function(ne,re){const se=l._rx.exec(ne);re[0]=se?se[1]:ne,re[1]=se?l._rxInt.test(se[2])?+se[2]:se[2]:!0});const u={},I=[0,0];let U=0,ee;for(;ee=s.sqlite3_compileoption_get(U++);)l._opt(ee,I),u[I[0]]=I[1];return l._result=u}return typeof _=="string"?!!s.sqlite3_compileoption_used(_):!1},o.pstack=Object.assign(Object.create(null),{restore:o.exports.sqlite3__wasm_pstack_restore,alloc:function(l){return typeof l=="string"&&!(l=o.sizeofIR(l))&&d.toss("Invalid value for pstack.alloc(",arguments[0],")"),o.exports.sqlite3__wasm_pstack_alloc(l)||d.toss("Could not allocate",l,"bytes from the pstack.")},allocChunks:function(l,_){typeof _=="string"&&!(_=o.sizeofIR(_))&&d.toss("Invalid size value for allocChunks(",arguments[1],")");const u=o.pstack.alloc(l*_),I=[];let U=0,ee=0;for(;Ul===1?o.pstack.alloc(_?8:o.ptrSizeof):o.pstack.allocChunks(l,_?8:o.ptrSizeof),call:function(l){const _=o.pstack.pointer;try{return l(m)}finally{o.pstack.restore(_)}}}),Object.defineProperties(o.pstack,{pointer:{configurable:!1,iterable:!0,writeable:!1,get:o.exports.sqlite3__wasm_pstack_ptr},quota:{configurable:!1,iterable:!0,writeable:!1,get:o.exports.sqlite3__wasm_pstack_quota},remaining:{configurable:!1,iterable:!0,writeable:!1,get:o.exports.sqlite3__wasm_pstack_remaining}}),s.sqlite3_randomness=(...l)=>{if(l.length===1&&y.isTypedArray(l[0])&&l[0].BYTES_PER_ELEMENT===1){const _=l[0];if(_.byteLength===0)return o.exports.sqlite3_randomness(0,0),_;const u=o.pstack.pointer;try{let I=_.byteLength,U=0;const ee=o.exports.sqlite3_randomness,ne=o.heap8u(),re=I<512?I:512,se=o.pstack.alloc(re);do{const j=I>re?re:I;ee(j,se),_.set(x(ne,se,se+j),U),I-=j,U+=j}while(I>0)}catch(I){console.error("Highly unexpected (and ignored!) exception in sqlite3_randomness():",I)}finally{o.pstack.restore(u)}return _}o.exports.sqlite3_randomness(...l)};let B;if(s.sqlite3_wasmfs_opfs_dir=function(){if(B!==void 0)return B;const l=r.wasmfsOpfsDir;if(!l||!globalThis.FileSystemHandle||!globalThis.FileSystemDirectoryHandle||!globalThis.FileSystemFileHandle)return B="";try{return l&&o.xCallWrapped("sqlite3__wasm_init_wasmfs","i32",["string"],l)===0?B=l:B=""}catch{return B=""}},s.sqlite3_wasmfs_filename_is_persistent=function(l){const _=s.sqlite3_wasmfs_opfs_dir();return _&&l?l.startsWith(_+"/"):!1},s.sqlite3_js_db_uses_vfs=function(l,_,u=0){try{const I=s.sqlite3_vfs_find(_);return I?l?I===s.sqlite3_js_db_vfs(l,u)?I:!1:I===s.sqlite3_vfs_find(0)?I:!1:!1}catch{return!1}},s.sqlite3_js_vfs_list=function(){const l=[];let _=s.sqlite3_vfs_find(0);for(;_;){const u=new s.sqlite3_vfs(_);l.push(o.cstrToJs(u.$zName)),_=u.$pNext,u.dispose()}return l},s.sqlite3_js_db_export=function(l,_=0){l=o.xWrap.testConvertArg("sqlite3*",l),l||R("Invalid sqlite3* argument."),o.bigIntEnabled||R("BigInt64 support is not enabled.");const u=o.scopedAllocPush();let I;try{const U=o.scopedAlloc(8+o.ptrSizeof),ee=U+8,ne=_?o.isPtr(_)?_:o.scopedAllocCString(""+_):0;let re=o.exports.sqlite3__wasm_db_serialize(l,ne,ee,U,0);re&&R("Database serialization failed with code",m.capi.sqlite3_js_rc_str(re)),I=o.peekPtr(ee);const se=o.peek(U,"i64");return re=se?o.heap8u().slice(I,I+Number(se)):new Uint8Array,re}finally{I&&o.exports.sqlite3_free(I),o.scopedAllocPop(u)}},s.sqlite3_js_db_vfs=(l,_=0)=>y.sqlite3__wasm_db_vfs(l,_),s.sqlite3_js_aggregate_context=(l,_)=>s.sqlite3_aggregate_context(l,_)||(_?d.toss("Cannot allocate",_,"bytes for sqlite3_aggregate_context()"):0),s.sqlite3_js_posix_create_file=function(l,_,u){let I;_&&o.isPtr(_)?I=_:_ instanceof ArrayBuffer||_ instanceof Uint8Array?(I=o.allocFromTypedArray(_),(arguments.length<3||!y.isInt32(u)||u<0)&&(u=_.byteLength)):O.toss("Invalid 2nd argument for sqlite3_js_posix_create_file().");try{(!y.isInt32(u)||u<0)&&O.toss("Invalid 3rd argument for sqlite3_js_posix_create_file().");const U=y.sqlite3__wasm_posix_create_file(l,I,u);U&&O.toss("Creation of file failed with sqlite3 result code",s.sqlite3_js_rc_str(U))}finally{o.dealloc(I)}},s.sqlite3_js_vfs_create_file=function(l,_,u,I){r.warn("sqlite3_js_vfs_create_file() is deprecated and","should be avoided because it can lead to C-level crashes.","See its documentation for alternative options.");let U;u?(o.isPtr(u)?U=u:u instanceof ArrayBuffer&&(u=new Uint8Array(u)),u instanceof Uint8Array?(U=o.allocFromTypedArray(u),(arguments.length<4||!y.isInt32(I)||I<0)&&(I=u.byteLength)):O.toss("Invalid 3rd argument type for sqlite3_js_vfs_create_file().")):U=0,(!y.isInt32(I)||I<0)&&(o.dealloc(U),O.toss("Invalid 4th argument for sqlite3_js_vfs_create_file()."));try{const ee=y.sqlite3__wasm_vfs_create_file(l,_,U,I);ee&&O.toss("Creation of file failed with sqlite3 result code",s.sqlite3_js_rc_str(ee))}finally{o.dealloc(U)}},s.sqlite3_js_sql_to_string=l=>{if(typeof l=="string")return l;const _=c(v);return _===v?void 0:_},y.isUIThread()){const l=function(_){const u=Object.create(null);return u.prefix="kvvfs-"+_,u.stores=[],(_==="session"||_==="")&&u.stores.push(globalThis.sessionStorage),(_==="local"||_==="")&&u.stores.push(globalThis.localStorage),u};s.sqlite3_js_kvvfs_clear=function(_=""){let u=0;const I=l(_);return I.stores.forEach(U=>{const ee=[];let ne;for(ne=0;neU.removeItem(re)),u+=ee.length}),u},s.sqlite3_js_kvvfs_size=function(_=""){let u=0;const I=l(_);return I.stores.forEach(U=>{let ee;for(ee=0;eef(l,_,"sqlite3_preupdate_new"),s.sqlite3_preupdate_old_js=(l,_)=>f(l,_,"sqlite3_preupdate_old"),s.sqlite3changeset_new_js=(l,_)=>f(l,_,"sqlite3changeset_new"),s.sqlite3changeset_old_js=(l,_)=>f(l,_,"sqlite3changeset_old");const m={WasmAllocError:d,SQLite3Error:O,capi:s,util:y,wasm:o,config:r,version:Object.create(null),client:void 0,asyncPostInit:async function l(){if(l.isReady instanceof Promise)return l.isReady;let _=t.initializersAsync;delete t.initializersAsync;const u=async()=>(m.__isUnderTest||(delete m.util,delete m.StructBinder),m),I=ee=>{throw r.error("an async sqlite3 initializer failed:",ee),ee};if(!_||!_.length)return l.isReady=u().catch(I);_=_.map(ee=>ee instanceof Function?async ne=>ee(m):ee),_.push(u);let U=Promise.resolve(m);for(;_.length;)U=U.then(_.shift());return l.isReady=U.catch(I)},scriptInfo:void 0};try{t.initializers.forEach(l=>{l(m)})}catch(l){throw console.error("sqlite3 bootstrap initializer threw:",l),l}return delete t.initializers,t.sqlite3=m,m},globalThis.sqlite3ApiBootstrap.initializers=[],globalThis.sqlite3ApiBootstrap.initializersAsync=[],globalThis.sqlite3ApiBootstrap.defaultConfig=Object.create(null),globalThis.sqlite3ApiBootstrap.sqlite3=void 0,globalThis.WhWasmUtilInstaller=function(t){t.bigIntEnabled===void 0&&(t.bigIntEnabled=!!globalThis.BigInt64Array);const n=(...c)=>{throw new Error(c.join(" "))};t.exports||Object.defineProperty(t,"exports",{enumerable:!0,configurable:!0,get:()=>t.instance&&t.instance.exports});const r=t.pointerIR||"i32",s=t.ptrSizeof=r==="i32"?4:r==="i64"?8:n("Unhandled ptrSizeof:",r),o=Object.create(null);o.heapSize=0,o.memory=null,o.freeFuncIndexes=[],o.scopedAlloc=[],o.utf8Decoder=new TextDecoder,o.utf8Encoder=new TextEncoder("utf-8"),t.sizeofIR=c=>{switch(c){case"i8":return 1;case"i16":return 2;case"i32":case"f32":case"float":return 4;case"i64":case"f64":case"double":return 8;case"*":return s;default:return(""+c).endsWith("*")?s:void 0}};const p=function(){if(!o.memory)o.memory=t.memory instanceof WebAssembly.Memory?t.memory:t.exports.memory;else if(o.heapSize===o.memory.buffer.byteLength)return o;const c=o.memory.buffer;return o.HEAP8=new Int8Array(c),o.HEAP8U=new Uint8Array(c),o.HEAP16=new Int16Array(c),o.HEAP16U=new Uint16Array(c),o.HEAP32=new Int32Array(c),o.HEAP32U=new Uint32Array(c),t.bigIntEnabled&&(o.HEAP64=new BigInt64Array(c),o.HEAP64U=new BigUint64Array(c)),o.HEAP32F=new Float32Array(c),o.HEAP64F=new Float64Array(c),o.heapSize=c.byteLength,o};t.heap8=()=>p().HEAP8,t.heap8u=()=>p().HEAP8U,t.heap16=()=>p().HEAP16,t.heap16u=()=>p().HEAP16U,t.heap32=()=>p().HEAP32,t.heap32u=()=>p().HEAP32U,t.heapForSize=function(c,d=!0){const y=o.memory&&o.heapSize===o.memory.buffer.byteLength?o:p();switch(c){case Int8Array:return y.HEAP8;case Uint8Array:return y.HEAP8U;case Int16Array:return y.HEAP16;case Uint16Array:return y.HEAP16U;case Int32Array:return y.HEAP32;case Uint32Array:return y.HEAP32U;case 8:return d?y.HEAP8U:y.HEAP8;case 16:return d?y.HEAP16U:y.HEAP16;case 32:return d?y.HEAP32U:y.HEAP32;case 64:if(y.HEAP64)return d?y.HEAP64U:y.HEAP64;break;default:if(t.bigIntEnabled){if(c===globalThis.BigUint64Array)return y.HEAP64U;if(c===globalThis.BigInt64Array)return y.HEAP64;break}}n("Invalid heapForSize() size: expecting 8, 16, 32,","or (if BigInt is enabled) 64.")},t.functionTable=function(){return t.exports.__indirect_function_table},t.functionEntry=function(c){const d=t.functionTable();return c>7)},rxJSig:/^(\w)\((\w*)\)$/,sigParams:function(m){const l=c._.rxJSig.exec(m);return l?l[2]:m.substr(1)},letterType:m=>c._.sigTypes[m]||n("Invalid signature letter:",m),pushSigType:(m,l)=>m.push(c._.typeCodes[c._.letterType(l)])}),typeof d=="string"){const m=y;y=d,d=m}const B=c._.sigParams(y),f=[1,96];c._.uleb128Encode(f,"push",B.length);for(const m of B)c._.pushSigType(f,m);return y[0]==="v"?f.push(0):(f.push(1),c._.pushSigType(f,y[0])),c._.uleb128Encode(f,"unshift",f.length),f.unshift(0,97,115,109,1,0,0,0,1),f.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array(f)),{e:{f:d}}).exports.f};const g=function(d,y,B){if(B&&!o.scopedAlloc.length&&n("No scopedAllocPush() scope is active."),typeof d=="string"){const _=y;y=d,d=_}(typeof y!="string"||!(d instanceof Function))&&n("Invalid arguments: expecting (function,signature) or (signature,function).");const f=t.functionTable(),m=f.length;let l;for(;o.freeFuncIndexes.length&&(l=o.freeFuncIndexes.pop(),f.get(l));){l=null;continue}l||(l=m,f.grow(1));try{return f.set(l,d),B&&o.scopedAlloc[o.scopedAlloc.length-1].push(l),l}catch(_){if(!(_ instanceof TypeError))throw l===m&&o.freeFuncIndexes.push(m),_}try{const _=t.jsFuncToWasm(d,y);f.set(l,_),B&&o.scopedAlloc[o.scopedAlloc.length-1].push(l)}catch(_){throw l===m&&o.freeFuncIndexes.push(m),_}return l};t.installFunction=(c,d)=>g(c,d,!1),t.scopedInstallFunction=(c,d)=>g(c,d,!0),t.uninstallFunction=function(c){if(!c&&c!==0)return;const d=o.freeFuncIndexes,y=t.functionTable();d.push(c);const B=y.get(c);return y.set(c,null),B},t.peek=function(d,y="i8"){y.endsWith("*")&&(y=r);const B=o.memory&&o.heapSize===o.memory.buffer.byteLength?o:p(),f=Array.isArray(d)?[]:void 0;let m;do{switch(f&&(d=arguments[0].shift()),y){case"i1":case"i8":m=B.HEAP8[d>>0];break;case"i16":m=B.HEAP16[d>>1];break;case"i32":m=B.HEAP32[d>>2];break;case"float":case"f32":m=B.HEAP32F[d>>2];break;case"double":case"f64":m=Number(B.HEAP64F[d>>3]);break;case"i64":if(t.bigIntEnabled){m=BigInt(B.HEAP64[d>>3]);break}default:n("Invalid type for peek():",y)}f&&f.push(m)}while(f&&arguments[0].length);return f||m},t.poke=function(c,d,y="i8"){y.endsWith("*")&&(y=r);const B=o.memory&&o.heapSize===o.memory.buffer.byteLength?o:p();for(const f of Array.isArray(c)?c:[c])switch(y){case"i1":case"i8":B.HEAP8[f>>0]=d;continue;case"i16":B.HEAP16[f>>1]=d;continue;case"i32":B.HEAP32[f>>2]=d;continue;case"float":case"f32":B.HEAP32F[f>>2]=d;continue;case"double":case"f64":B.HEAP64F[f>>3]=d;continue;case"i64":if(B.HEAP64){B.HEAP64[f>>3]=BigInt(d);continue}default:n("Invalid type for poke(): "+y)}return this},t.peekPtr=(...c)=>t.peek(c.length===1?c[0]:c,r),t.pokePtr=(c,d=0)=>t.poke(c,d,r),t.peek8=(...c)=>t.peek(c.length===1?c[0]:c,"i8"),t.poke8=(c,d)=>t.poke(c,d,"i8"),t.peek16=(...c)=>t.peek(c.length===1?c[0]:c,"i16"),t.poke16=(c,d)=>t.poke(c,d,"i16"),t.peek32=(...c)=>t.peek(c.length===1?c[0]:c,"i32"),t.poke32=(c,d)=>t.poke(c,d,"i32"),t.peek64=(...c)=>t.peek(c.length===1?c[0]:c,"i64"),t.poke64=(c,d)=>t.poke(c,d,"i64"),t.peek32f=(...c)=>t.peek(c.length===1?c[0]:c,"f32"),t.poke32f=(c,d)=>t.poke(c,d,"f32"),t.peek64f=(...c)=>t.peek(c.length===1?c[0]:c,"f64"),t.poke64f=(c,d)=>t.poke(c,d,"f64"),t.getMemValue=t.peek,t.getPtrValue=t.peekPtr,t.setMemValue=t.poke,t.setPtrValue=t.pokePtr,t.isPtr32=c=>typeof c=="number"&&c===(c|0)&&c>=0,t.isPtr=t.isPtr32,t.cstrlen=function(c){if(!c||!t.isPtr(c))return null;const d=p().HEAP8U;let y=c;for(;d[y]!==0;++y);return y-c};const O=typeof SharedArrayBuffer>"u"?function(){}:SharedArrayBuffer,R=function(c,d,y){return o.utf8Decoder.decode(c.buffer instanceof O?c.slice(d,y):c.subarray(d,y))};t.cstrToJs=function(c){const d=t.cstrlen(c);return d?R(p().HEAP8U,c,c+d):d===null?d:""},t.jstrlen=function(c){if(typeof c!="string")return null;const d=c.length;let y=0;for(let B=0;B=55296&&f<=57343&&(f=65536+((f&1023)<<10)|c.charCodeAt(++B)&1023),f<=127?++y:f<=2047?y+=2:f<=65535?y+=3:y+=4}return y},t.jstrcpy=function(c,d,y=0,B=-1,f=!0){if((!d||!(d instanceof Int8Array)&&!(d instanceof Uint8Array))&&n("jstrcpy() target must be an Int8Array or Uint8Array."),B<0&&(B=d.length-y),!(B>0)||!(y>=0))return 0;let m=0,l=c.length;const _=y,u=y+B-(f?1:0);for(;m=55296&&I<=57343&&(I=65536+((I&1023)<<10)|c.charCodeAt(++m)&1023),I<=127){if(y>=u)break;d[y++]=I}else if(I<=2047){if(y+1>=u)break;d[y++]=192|I>>6,d[y++]=128|I&63}else if(I<=65535){if(y+2>=u)break;d[y++]=224|I>>12,d[y++]=128|I>>6&63,d[y++]=128|I&63}else{if(y+3>=u)break;d[y++]=240|I>>18,d[y++]=128|I>>12&63,d[y++]=128|I>>6&63,d[y++]=128|I&63}}return f&&(d[y++]=0),y-_},t.cstrncpy=function(c,d,y){if((!c||!d)&&n("cstrncpy() does not accept NULL strings."),y<0)y=t.cstrlen(strPtr)+1;else if(!(y>0))return 0;const B=t.heap8u();let f=0,m;for(;fo.utf8Encoder.encode(d?c+"\0":c);const z=(c,d)=>{(!(c.alloc instanceof Function)||!(c.dealloc instanceof Function))&&n("Object is missing alloc() and/or dealloc() function(s)","required by",d+"().")},W=function(c,d,y,B){if(z(t,B),typeof c!="string")return null;{const f=o.utf8Encoder.encode(c),m=y(f.length+1),l=p().HEAP8U;return l.set(f,m),l[m+f.length]=0,d?[m,f.length]:m}};t.allocCString=(c,d=!1)=>W(c,d,t.alloc,"allocCString()"),t.scopedAllocPush=function(){z(t,"scopedAllocPush");const c=[];return o.scopedAlloc.push(c),c},t.scopedAllocPop=function(c){z(t,"scopedAllocPop");const d=arguments.length?o.scopedAlloc.indexOf(c):o.scopedAlloc.length-1;d<0&&n("Invalid state object for scopedAllocPop()."),arguments.length===0&&(c=o.scopedAlloc[d]),o.scopedAlloc.splice(d,1);for(let y;y=c.pop();)t.functionEntry(y)?t.uninstallFunction(y):t.dealloc(y)},t.scopedAlloc=function(c){o.scopedAlloc.length||n("No scopedAllocPush() scope is active.");const d=t.alloc(c);return o.scopedAlloc[o.scopedAlloc.length-1].push(d),d},Object.defineProperty(t.scopedAlloc,"level",{configurable:!1,enumerable:!1,get:()=>o.scopedAlloc.length,set:()=>n("The 'active' property is read-only.")}),t.scopedAllocCString=(c,d=!1)=>W(c,d,t.scopedAlloc,"scopedAllocCString()");const T=function(c,d){const y=t[c?"scopedAlloc":"alloc"]((d.length+1)*t.ptrSizeof);let B=0;return d.forEach(f=>{t.pokePtr(y+t.ptrSizeof*B++,t[c?"scopedAllocCString":"allocCString"](""+f))}),t.pokePtr(y+t.ptrSizeof*B,0),y};t.scopedAllocMainArgv=c=>T(!0,c),t.allocMainArgv=c=>T(!1,c),t.cArgvToJs=(c,d)=>{const y=[];for(let B=0;BA(c,d,"alloc"),t.scopedAllocPtr=(c=1,d=!0)=>A(c,d,"scopedAlloc"),t.xGet=function(c){return t.exports[c]||n("Cannot find exported symbol:",c)};const D=(c,d)=>n(c+"() requires",d,"argument(s).");t.xCall=function(c,...d){const y=c instanceof Function?c:t.xGet(c);return y instanceof Function||n("Exported symbol",c,"is not a function."),y.length!==d.length&&D(y===c?y.name:c,y.length),arguments.length===2&&Array.isArray(arguments[1])?y.apply(null,arguments[1]):y.apply(null,d)},o.xWrap=Object.create(null),o.xWrap.convert=Object.create(null),o.xWrap.convert.arg=new Map,o.xWrap.convert.result=new Map;const q=o.xWrap.convert.arg,w=o.xWrap.convert.result;t.bigIntEnabled&&q.set("i64",c=>BigInt(c));const x=r==="i32"?c=>c|0:c=>BigInt(c)|BigInt(0);q.set("i32",x).set("i16",c=>(c|0)&65535).set("i8",c=>(c|0)&255).set("f32",c=>Number(c).valueOf()).set("float",q.get("f32")).set("f64",q.get("f32")).set("double",q.get("f64")).set("int",q.get("i32")).set("null",c=>c).set(null,q.get("null")).set("**",x).set("*",x),w.set("*",x).set("pointer",x).set("number",c=>Number(c)).set("void",c=>{}).set("null",c=>c).set(null,w.get("null"));{const c=["i8","i16","i32","int","f32","float","f64","double"];t.bigIntEnabled&&c.push("i64");const d=q.get(r);for(const y of c)q.set(y+"*",d),w.set(y+"*",d),w.set(y,q.get(y)||n("Missing arg converter:",y))}const N=function(c){return typeof c=="string"?t.scopedAllocCString(c):c?x(c):null};q.set("string",N).set("utf8",N).set("pointer",N),w.set("string",c=>t.cstrToJs(c)).set("utf8",w.get("string")).set("string:dealloc",c=>{try{return c?t.cstrToJs(c):null}finally{t.dealloc(c)}}).set("utf8:dealloc",w.get("string:dealloc")).set("json",c=>JSON.parse(t.cstrToJs(c))).set("json:dealloc",c=>{try{return c?JSON.parse(t.cstrToJs(c)):null}finally{t.dealloc(c)}});const P=class{constructor(c){this.name=c.name||"unnamed adapter"}convertArg(c,d,y){n("AbstractArgAdapter must be subclassed.")}};q.FuncPtrAdapter=class Ae extends P{constructor(d){super(d),q.FuncPtrAdapter.warnOnUse&&console.warn("xArg.FuncPtrAdapter is an internal-only API","and is not intended to be invoked from","client-level code. Invoked with:",d),this.name=d.name||"unnamed",this.signature=d.signature,d.contextKey instanceof Function&&(this.contextKey=d.contextKey,d.bindScope||(d.bindScope="context")),this.bindScope=d.bindScope||n("FuncPtrAdapter options requires a bindScope (explicit or implied)."),Ae.bindScopes.indexOf(d.bindScope)<0&&n("Invalid options.bindScope ("+d.bindMod+") for FuncPtrAdapter. Expecting one of: ("+Ae.bindScopes.join(", ")+")"),this.isTransient=this.bindScope==="transient",this.isContext=this.bindScope==="context",this.isPermanent=this.bindScope==="permanent",this.singleton=this.bindScope==="singleton"?[]:void 0,this.callProxy=d.callProxy instanceof Function?d.callProxy:void 0}contextKey(d,y){return this}contextMap(d){const y=this.__cmap||(this.__cmap=new Map);let B=y.get(d);return B===void 0&&y.set(d,B=[]),B}convertArg(d,y,B){let f=this.singleton;if(!f&&this.isContext&&(f=this.contextMap(this.contextKey(y,B))),f&&f[0]===d)return f[1];if(d instanceof Function){this.callProxy&&(d=this.callProxy(d));const m=g(d,this.signature,this.isTransient);if(Ae.debugFuncInstall&&Ae.debugOut("FuncPtrAdapter installed",this,this.contextKey(y,B),"@"+m,d),f){if(f[1]){Ae.debugFuncInstall&&Ae.debugOut("FuncPtrAdapter uninstalling",this,this.contextKey(y,B),"@"+f[1],d);try{o.scopedAlloc[o.scopedAlloc.length-1].push(f[1])}catch{}}f[0]=d,f[1]=m}return m}else if(t.isPtr(d)||d===null||d===void 0){if(f&&f[1]&&f[1]!==d){Ae.debugFuncInstall&&Ae.debugOut("FuncPtrAdapter uninstalling",this,this.contextKey(y,B),"@"+f[1],d);try{o.scopedAlloc[o.scopedAlloc.length-1].push(f[1])}catch{}f[0]=f[1]=d|0}return d||0}else throw new TypeError("Invalid FuncPtrAdapter argument type. Expecting a function pointer or a "+(this.name?this.name+" ":"")+"function matching signature "+this.signature+".")}},q.FuncPtrAdapter.warnOnUse=!1,q.FuncPtrAdapter.debugFuncInstall=!1,q.FuncPtrAdapter.debugOut=console.debug.bind(console),q.FuncPtrAdapter.bindScopes=["transient","context","singleton","permanent"];const S=c=>q.get(c)||n("Argument adapter not found:",c),L=c=>w.get(c)||n("Result adapter not found:",c);o.xWrap.convertArg=(c,...d)=>S(c)(...d),o.xWrap.convertArgNoCheck=(c,...d)=>q.get(c)(...d),o.xWrap.convertResult=(c,d)=>c===null?d:c?L(c)(d):void 0,o.xWrap.convertResultNoCheck=(c,d)=>c===null?d:c?w.get(c)(d):void 0,t.xWrap=function(c,d,...y){arguments.length===3&&Array.isArray(arguments[2])&&(y=arguments[2]),t.isPtr(c)&&(c=t.functionEntry(c)||n("Function pointer not found in WASM function table."));const B=c instanceof Function,f=B?c:t.xGet(c);if(B&&(c=f.name||"unnamed function"),y.length!==f.length&&D(c,f.length),d===null&&f.length===0)return f;d!=null&&L(d);for(const l of y)l instanceof P?q.set(l,(..._)=>l.convertArg(..._)):S(l);const m=o.xWrap;return f.length===0?(...l)=>l.length?D(c,f.length):m.convertResult(d,f.call(null)):function(...l){l.length!==f.length&&D(c,f.length);const _=t.scopedAllocPush();try{let u=0;for(;ufetch(t.uri,{credentials:"same-origin"}),r=this,s=function(p){if(t.wasmUtilTarget){const g=(...R)=>{throw new Error(R.join(" "))},O=t.wasmUtilTarget;if(O.module=p.module,O.instance=p.instance,O.instance.exports.memory||(O.memory=t.imports&&t.imports.env&&t.imports.env.memory||g("Missing 'memory' object!")),!O.alloc&&p.instance.exports.malloc){const R=p.instance.exports;O.alloc=function(z){return R.malloc(z)||g("Allocation of",z,"bytes failed.")},O.dealloc=function(z){R.free(z)}}r(O)}return t.onload&&t.onload(p,t),p};return WebAssembly.instantiateStreaming?function(){return WebAssembly.instantiateStreaming(n(),t.imports||{}).then(s)}:function(){return n().then(g=>g.arrayBuffer()).then(g=>WebAssembly.instantiate(g,t.imports||{})).then(s)}}).bind(globalThis.WhWasmUtilInstaller),globalThis.Jaccwabyt=function t(n){const r=(...F)=>{throw new Error(F.join(" "))};!(n.heap instanceof WebAssembly.Memory)&&!(n.heap instanceof Function)&&r("config.heap must be WebAssembly.Memory instance or a function."),["alloc","dealloc"].forEach(function(F){n[F]instanceof Function||r("Config option '"+F+"' must be a function.")});const s=t,o=n.heap instanceof Function?n.heap:()=>new Uint8Array(n.heap.buffer),p=n.alloc,g=n.dealloc,O=n.log||console.log.bind(console),R=n.memberPrefix||"",z=n.memberSuffix||"",W=n.bigIntEnabled===void 0?!!globalThis.BigInt64Array:!!n.bigIntEnabled,T=globalThis.BigInt,A=globalThis.BigInt64Array,D=n.ptrSizeof||4,q=n.ptrIR||"i32";s.debugFlags||(s.__makeDebugFlags=function(F=null){F&&F.__flags&&(F=F.__flags);const V=function K(X){return arguments.length===0?K.__flags:(X<0?(delete K.__flags.getter,delete K.__flags.setter,delete K.__flags.alloc,delete K.__flags.dealloc):(K.__flags.getter=(1&X)!==0,K.__flags.setter=(2&X)!==0,K.__flags.alloc=(4&X)!==0,K.__flags.dealloc=(8&X)!==0),K._flags)};return Object.defineProperty(V,"__flags",{iterable:!1,writable:!1,value:Object.create(F)}),F||V(0),V},s.debugFlags=s.__makeDebugFlags());const w=(function(){const F=new ArrayBuffer(2);return new DataView(F).setInt16(0,256,!0),new Int16Array(F)[0]===256})(),x=F=>F[1]==="(",N=F=>F==="P",P=F=>x(F)?"p":F[0],S=function(F){switch(P(F)){case"c":case"C":return"i8";case"i":return"i32";case"p":case"P":case"s":return q;case"j":return"i64";case"f":return"float";case"d":return"double"}r("Unhandled signature IR:",F)},L=A?()=>!0:()=>r("BigInt64Array is not available."),$=function(F){switch(P(F)){case"p":case"P":case"s":{switch(D){case 4:return"getInt32";case 8:return L()&&"getBigInt64"}break}case"i":return"getInt32";case"c":return"getInt8";case"C":return"getUint8";case"j":return L()&&"getBigInt64";case"f":return"getFloat32";case"d":return"getFloat64"}r("Unhandled DataView getter for signature:",F)},c=function(F){switch(P(F)){case"p":case"P":case"s":{switch(D){case 4:return"setInt32";case 8:return L()&&"setBigInt64"}break}case"i":return"setInt32";case"c":return"setInt8";case"C":return"setUint8";case"j":return L()&&"setBigInt64";case"f":return"setFloat32";case"d":return"setFloat64"}r("Unhandled DataView setter for signature:",F)},d=function(F){switch(P(F)){case"i":case"f":case"c":case"C":case"d":return Number;case"j":return L()&&T;case"p":case"P":case"s":switch(D){case 4:return Number;case 8:return L()&&T}break}r("Unhandled DataView set wrapper for signature:",F)},y=(F,V)=>F+"::"+V,B=function(F,V){return()=>r(y(F,V),"is read-only.")},f=new WeakMap,m="(pointer-is-external)",l=function(F,V,K){if(K||(K=f.get(V)),K){if(f.delete(V),Array.isArray(V.ondispose)){let X;for(;X=V.ondispose.shift();)try{X instanceof Function?X.call(V):X instanceof te?X.dispose():typeof X=="number"&&g(X)}catch(ae){console.warn("ondispose() for",F.structName,"@",K,"threw. NOT propagating it.",ae)}}else if(V.ondispose instanceof Function)try{V.ondispose()}catch(X){console.warn("ondispose() for",F.structName,"@",K,"threw. NOT propagating it.",X)}delete V.ondispose,F.debugFlags.__flags.dealloc&&O("debug.dealloc:",V[m]?"EXTERNAL":"",F.structName,"instance:",F.structInfo.sizeof,"bytes @"+K),V[m]||g(K)}},_=F=>({configurable:!1,writable:!1,iterable:!1,value:F}),u=function(F,V,K){let X=!K;K?Object.defineProperty(V,m,_(K)):(K=p(F.structInfo.sizeof),K||r("Allocation of",F.structName,"structure failed."));try{F.debugFlags.__flags.alloc&&O("debug.alloc:",X?"":"EXTERNAL",F.structName,"instance:",F.structInfo.sizeof,"bytes @"+K),X&&o().fill(0,K,K+F.structInfo.sizeof),f.set(V,K)}catch(ae){throw l(F,V,K),ae}},I=function(){const F=this.pointer;return F?new Uint8Array(o().slice(F,F+this.structInfo.sizeof)):null},ee=_(F=>R+F+z),ne=function(F,V,K=!0){let X=F.members[V];if(!X&&(R||z)){for(const ae of Object.values(F.members))if(ae.key===V){X=ae;break}!X&&K&&r(y(F.name,V),"is not a mapped struct member.")}return X},re=function F(V,K,X=!1){F._||(F._=de=>de.replace(/[^vipPsjrdcC]/g,"").replace(/[pPscC]/g,"i"));const ae=ne(V.structInfo,K,!0);return X?F._(ae.signature):ae.signature},se={configurable:!1,enumerable:!1,get:function(){return f.get(this)},set:()=>r("Cannot assign the 'pointer' property of a struct.")},j=_(function(){const F=[];for(const V of Object.keys(this.structInfo.members))F.push(this.memberKey(V));return F}),b=new TextDecoder("utf-8"),k=new TextEncoder,Q=typeof SharedArrayBuffer>"u"?function(){}:SharedArrayBuffer,H=function(F,V,K){return b.decode(F.buffer instanceof Q?F.slice(V,K):F.subarray(V,K))},Z=function(F,V,K=!1){const X=ne(F.structInfo,V,K);return X&&X.signature.length===1&&X.signature[0]==="s"?X:!1},E=function(F){F.signature!=="s"&&r("Invalid member type signature for C-string value:",JSON.stringify(F))},C=function(V,K){const X=ne(V.structInfo,K,!0);E(X);const ae=V[X.key];if(!ae)return null;let de=ae;const ue=o();for(;ue[de]!==0;++de);return ae===de?"":H(ue,ae,de)},M=function(F,...V){F.ondispose?Array.isArray(F.ondispose)||(F.ondispose=[F.ondispose]):F.ondispose=[],F.ondispose.push(...V)},J=function(F){const V=k.encode(F),K=p(V.length+1);K||r("Allocation error while duplicating string:",F);const X=o();return X.set(V,K),X[K+V.length]=0,K},G=function(F,V,K){const X=ne(F.structInfo,V,!0);E(X);const ae=J(K);return F[X.key]=ae,M(F,ae),F},te=function(V,K){arguments[2]!==_&&r("Do not call the StructType constructor","from client-level code."),Object.defineProperties(this,{structName:_(V),structInfo:_(K)})};te.prototype=Object.create(null,{dispose:_(function(){l(this.constructor,this)}),lookupMember:_(function(F,V=!0){return ne(this.structInfo,F,V)}),memberToJsString:_(function(F){return C(this,F)}),memberIsString:_(function(F,V=!0){return Z(this,F,V)}),memberKey:ee,memberKeys:j,memberSignature:_(function(F,V=!1){return re(this,F,V)}),memoryDump:_(I),pointer:se,setMemberCString:_(function(F,V){return G(this,F,V)})}),Object.assign(te.prototype,{addOnDispose:function(...F){return M(this,...F),this}}),Object.defineProperties(te,{allocCString:_(J),isA:_(F=>F instanceof te),hasExternalPointer:_(F=>F instanceof te&&!!F[m]),memberKey:ee});const oe=F=>Number.isFinite(F)||F instanceof(T||Number),Y=function F(V,K,X){if(!F._){F._={getters:{},setters:{},sw:{}};const me=["i","c","C","p","P","s","f","d","v()"];W&&me.push("j"),me.forEach(function(we){F._.getters[we]=$(we),F._.setters[we]=c(we),F._.sw[we]=d(we)});const $n=/^[ipPsjfdcC]$/,Kn=/^[vipPsjfdcC]\([ipPsjfdcC]*\)$/;F.sigCheck=function(we,Jn,kt,it){Object.prototype.hasOwnProperty.call(we,kt)&&r(we.structName,"already has a property named",kt+"."),$n.test(it)||Kn.test(it)||r("Malformed signature for",y(we.structName,Jn)+":",it)}}const ae=V.memberKey(K);F.sigCheck(V.prototype,K,ae,X.signature),X.key=ae,X.name=K;const de=P(X.signature),ue=y(V.prototype.structName,ae),fe=V.prototype.debugFlags.__flags,Re=Object.create(null);Re.configurable=!1,Re.enumerable=!1,Re.get=function(){fe.getter&&O("debug.getter:",F._.getters[de],"for",S(de),ue,"@",this.pointer,"+",X.offset,"sz",X.sizeof);let me=new DataView(o().buffer,this.pointer+X.offset,X.sizeof)[F._.getters[de]](0,w);return fe.getter&&O("debug.getter:",ue,"result =",me),me},X.readOnly?Re.set=B(V.prototype.structName,ae):Re.set=function(me){if(fe.setter&&O("debug.setter:",F._.setters[de],"for",S(de),ue,"@",this.pointer,"+",X.offset,"sz",X.sizeof,me),this.pointer||r("Cannot set struct property on disposed instance."),me===null)me=0;else for(;!oe(me);){if(N(X.signature)&&me instanceof te){me=me.pointer||0,fe.setter&&O("debug.setter:",ue,"resolved to",me);break}r("Invalid value for pointer-type",ue+".")}new DataView(o().buffer,this.pointer+X.offset,X.sizeof)[F._.setters[de]](0,F._.sw[de](me),w)},Object.defineProperty(V.prototype,ae,Re)},pe=function F(V,K){arguments.length===1?(K=V,V=K.name):K.name||(K.name=V),V||r("Struct name is required.");let X=!1;Object.keys(K.members).forEach(ue=>{const fe=K.members[ue];fe.sizeof?fe.sizeof===1?fe.signature==="c"||fe.signature==="C"||r("Unexpected sizeof==1 member",y(K.name,ue),"with signature",fe.signature):(fe.sizeof%4!==0&&(console.warn("Invalid struct member description =",fe,"from",K),r(V,"member",ue,"sizeof is not aligned. sizeof="+fe.sizeof)),fe.offset%4!==0&&(console.warn("Invalid struct member description =",fe,"from",K),r(V,"member",ue,"offset is not aligned. offset="+fe.offset))):r(V,"member",ue,"is missing sizeof."),(!X||X.offsetue instanceof de),memberKey:ee,memberKeys:j,methodInfoForKey:_(function(ue){}),structInfo:_(K),structName:_(V)}),de.prototype=new te(V,K,_),Object.defineProperties(de.prototype,{debugFlags:ae,constructor:_(de)}),Object.keys(K.members).forEach(ue=>Y(de,ue,K.members[ue])),de};return pe.StructType=te,pe.config=n,pe.allocCString=J,pe.debugFlags||(pe.debugFlags=s.__makeDebugFlags(s.debugFlags)),pe},globalThis.sqlite3ApiBootstrap.initializers.push(function(t){const n=(...q)=>{throw new Error(q.join(" "))};t.SQLite3Error.toss;const r=t.capi,s=t.wasm,o=t.util;if(globalThis.WhWasmUtilInstaller(s),delete globalThis.WhWasmUtilInstaller,s.bindingSignatures=[["sqlite3_aggregate_context","void*","sqlite3_context*","int"],["sqlite3_bind_double","int","sqlite3_stmt*","int","f64"],["sqlite3_bind_int","int","sqlite3_stmt*","int","int"],["sqlite3_bind_null",void 0,"sqlite3_stmt*","int"],["sqlite3_bind_parameter_count","int","sqlite3_stmt*"],["sqlite3_bind_parameter_index","int","sqlite3_stmt*","string"],["sqlite3_bind_parameter_name","string","sqlite3_stmt*","int"],["sqlite3_bind_pointer","int","sqlite3_stmt*","int","*","string:static","*"],["sqlite3_busy_handler","int",["sqlite3*",new s.xWrap.FuncPtrAdapter({signature:"i(pi)",contextKey:(q,w)=>q[0]}),"*"]],["sqlite3_busy_timeout","int","sqlite3*","int"],["sqlite3_changes","int","sqlite3*"],["sqlite3_clear_bindings","int","sqlite3_stmt*"],["sqlite3_collation_needed","int","sqlite3*","*","*"],["sqlite3_column_blob","*","sqlite3_stmt*","int"],["sqlite3_column_bytes","int","sqlite3_stmt*","int"],["sqlite3_column_count","int","sqlite3_stmt*"],["sqlite3_column_decltype","string","sqlite3_stmt*","int"],["sqlite3_column_double","f64","sqlite3_stmt*","int"],["sqlite3_column_int","int","sqlite3_stmt*","int"],["sqlite3_column_name","string","sqlite3_stmt*","int"],["sqlite3_column_text","string","sqlite3_stmt*","int"],["sqlite3_column_type","int","sqlite3_stmt*","int"],["sqlite3_column_value","sqlite3_value*","sqlite3_stmt*","int"],["sqlite3_commit_hook","void*",["sqlite3*",new s.xWrap.FuncPtrAdapter({name:"sqlite3_commit_hook",signature:"i(p)",contextKey:q=>q[0]}),"*"]],["sqlite3_compileoption_get","string","int"],["sqlite3_compileoption_used","int","string"],["sqlite3_complete","int","string:flexible"],["sqlite3_context_db_handle","sqlite3*","sqlite3_context*"],["sqlite3_data_count","int","sqlite3_stmt*"],["sqlite3_db_filename","string","sqlite3*","string"],["sqlite3_db_handle","sqlite3*","sqlite3_stmt*"],["sqlite3_db_name","string","sqlite3*","int"],["sqlite3_db_readonly","int","sqlite3*","string"],["sqlite3_db_status","int","sqlite3*","int","*","*","int"],["sqlite3_errcode","int","sqlite3*"],["sqlite3_errmsg","string","sqlite3*"],["sqlite3_error_offset","int","sqlite3*"],["sqlite3_errstr","string","int"],["sqlite3_exec","int",["sqlite3*","string:flexible",new s.xWrap.FuncPtrAdapter({signature:"i(pipp)",bindScope:"transient",callProxy:q=>{let w;return(x,N,P,S)=>{try{const L=s.cArgvToJs(N,P);return w||(w=s.cArgvToJs(N,S)),q(L,w)|0}catch(L){return L.resultCode||r.SQLITE_ERROR}}}}),"*","**"]],["sqlite3_expanded_sql","string","sqlite3_stmt*"],["sqlite3_extended_errcode","int","sqlite3*"],["sqlite3_extended_result_codes","int","sqlite3*","int"],["sqlite3_file_control","int","sqlite3*","string","int","*"],["sqlite3_finalize","int","sqlite3_stmt*"],["sqlite3_free",void 0,"*"],["sqlite3_get_autocommit","int","sqlite3*"],["sqlite3_get_auxdata","*","sqlite3_context*","int"],["sqlite3_initialize",void 0],["sqlite3_interrupt",void 0,"sqlite3*"],["sqlite3_is_interrupted","int","sqlite3*"],["sqlite3_keyword_count","int"],["sqlite3_keyword_name","int",["int","**","*"]],["sqlite3_keyword_check","int",["string","int"]],["sqlite3_libversion","string"],["sqlite3_libversion_number","int"],["sqlite3_limit","int",["sqlite3*","int","int"]],["sqlite3_malloc","*","int"],["sqlite3_open","int","string","*"],["sqlite3_open_v2","int","string","*","int","string"],["sqlite3_realloc","*","*","int"],["sqlite3_reset","int","sqlite3_stmt*"],["sqlite3_result_blob",void 0,"sqlite3_context*","*","int","*"],["sqlite3_result_double",void 0,"sqlite3_context*","f64"],["sqlite3_result_error",void 0,"sqlite3_context*","string","int"],["sqlite3_result_error_code",void 0,"sqlite3_context*","int"],["sqlite3_result_error_nomem",void 0,"sqlite3_context*"],["sqlite3_result_error_toobig",void 0,"sqlite3_context*"],["sqlite3_result_int",void 0,"sqlite3_context*","int"],["sqlite3_result_null",void 0,"sqlite3_context*"],["sqlite3_result_pointer",void 0,"sqlite3_context*","*","string:static","*"],["sqlite3_result_subtype",void 0,"sqlite3_value*","int"],["sqlite3_result_text",void 0,"sqlite3_context*","string","int","*"],["sqlite3_result_zeroblob",void 0,"sqlite3_context*","int"],["sqlite3_rollback_hook","void*",["sqlite3*",new s.xWrap.FuncPtrAdapter({name:"sqlite3_rollback_hook",signature:"v(p)",contextKey:q=>q[0]}),"*"]],["sqlite3_set_auxdata",void 0,["sqlite3_context*","int","*","*"]],["sqlite3_shutdown",void 0],["sqlite3_sourceid","string"],["sqlite3_sql","string","sqlite3_stmt*"],["sqlite3_status","int","int","*","*","int"],["sqlite3_step","int","sqlite3_stmt*"],["sqlite3_stmt_busy","int","sqlite3_stmt*"],["sqlite3_stmt_readonly","int","sqlite3_stmt*"],["sqlite3_stmt_status","int","sqlite3_stmt*","int","int"],["sqlite3_strglob","int","string","string"],["sqlite3_stricmp","int","string","string"],["sqlite3_strlike","int","string","string","int"],["sqlite3_strnicmp","int","string","string","int"],["sqlite3_table_column_metadata","int","sqlite3*","string","string","string","**","**","*","*","*"],["sqlite3_total_changes","int","sqlite3*"],["sqlite3_trace_v2","int",["sqlite3*","int",new s.xWrap.FuncPtrAdapter({name:"sqlite3_trace_v2::callback",signature:"i(ippp)",contextKey:(q,w)=>q[0]}),"*"]],["sqlite3_txn_state","int",["sqlite3*","string"]],["sqlite3_uri_boolean","int","sqlite3_filename","string","int"],["sqlite3_uri_key","string","sqlite3_filename","int"],["sqlite3_uri_parameter","string","sqlite3_filename","string"],["sqlite3_user_data","void*","sqlite3_context*"],["sqlite3_value_blob","*","sqlite3_value*"],["sqlite3_value_bytes","int","sqlite3_value*"],["sqlite3_value_double","f64","sqlite3_value*"],["sqlite3_value_dup","sqlite3_value*","sqlite3_value*"],["sqlite3_value_free",void 0,"sqlite3_value*"],["sqlite3_value_frombind","int","sqlite3_value*"],["sqlite3_value_int","int","sqlite3_value*"],["sqlite3_value_nochange","int","sqlite3_value*"],["sqlite3_value_numeric_type","int","sqlite3_value*"],["sqlite3_value_pointer","*","sqlite3_value*","string:static"],["sqlite3_value_subtype","int","sqlite3_value*"],["sqlite3_value_text","string","sqlite3_value*"],["sqlite3_value_type","int","sqlite3_value*"],["sqlite3_vfs_find","*","string"],["sqlite3_vfs_register","int","sqlite3_vfs*","int"],["sqlite3_vfs_unregister","int","sqlite3_vfs*"]],s.exports.sqlite3_progress_handler&&s.bindingSignatures.push(["sqlite3_progress_handler",void 0,["sqlite3*","int",new s.xWrap.FuncPtrAdapter({name:"xProgressHandler",signature:"i(p)",bindScope:"context",contextKey:(q,w)=>q[0]}),"*"]]),s.exports.sqlite3_stmt_explain&&s.bindingSignatures.push(["sqlite3_stmt_explain","int","sqlite3_stmt*","int"],["sqlite3_stmt_isexplain","int","sqlite3_stmt*"]),s.exports.sqlite3_set_authorizer&&s.bindingSignatures.push(["sqlite3_set_authorizer","int",["sqlite3*",new s.xWrap.FuncPtrAdapter({name:"sqlite3_set_authorizer::xAuth",signature:"i(pissss)",contextKey:(q,w)=>q[0],callProxy:q=>(w,x,N,P,S,L)=>{try{return N=N&&s.cstrToJs(N),P=P&&s.cstrToJs(P),S=S&&s.cstrToJs(S),L=L&&s.cstrToJs(L),q(w,x,N,P,S,L)||0}catch($){return $.resultCode||r.SQLITE_ERROR}}}),"*"]]),s.bindingSignatures.int64=[["sqlite3_bind_int64","int",["sqlite3_stmt*","int","i64"]],["sqlite3_changes64","i64",["sqlite3*"]],["sqlite3_column_int64","i64",["sqlite3_stmt*","int"]],["sqlite3_deserialize","int","sqlite3*","string","*","i64","i64","int"],["sqlite3_last_insert_rowid","i64",["sqlite3*"]],["sqlite3_malloc64","*","i64"],["sqlite3_msize","i64","*"],["sqlite3_overload_function","int",["sqlite3*","string","int"]],["sqlite3_realloc64","*","*","i64"],["sqlite3_result_int64",void 0,"*","i64"],["sqlite3_result_zeroblob64","int","*","i64"],["sqlite3_serialize","*","sqlite3*","string","*","int"],["sqlite3_set_last_insert_rowid",void 0,["sqlite3*","i64"]],["sqlite3_status64","int","int","*","*","int"],["sqlite3_total_changes64","i64",["sqlite3*"]],["sqlite3_update_hook","*",["sqlite3*",new s.xWrap.FuncPtrAdapter({name:"sqlite3_update_hook",signature:"v(iippj)",contextKey:q=>q[0],callProxy:q=>(w,x,N,P,S)=>{q(w,x,s.cstrToJs(N),s.cstrToJs(P),S)}}),"*"]],["sqlite3_uri_int64","i64",["sqlite3_filename","string","i64"]],["sqlite3_value_int64","i64","sqlite3_value*"]],s.bigIntEnabled&&s.exports.sqlite3_declare_vtab&&s.bindingSignatures.int64.push(["sqlite3_create_module","int",["sqlite3*","string","sqlite3_module*","*"]],["sqlite3_create_module_v2","int",["sqlite3*","string","sqlite3_module*","*","*"]],["sqlite3_declare_vtab","int",["sqlite3*","string:flexible"]],["sqlite3_drop_modules","int",["sqlite3*","**"]],["sqlite3_vtab_collation","string","sqlite3_index_info*","int"],["sqlite3_vtab_distinct","int","sqlite3_index_info*"],["sqlite3_vtab_in","int","sqlite3_index_info*","int","int"],["sqlite3_vtab_in_first","int","sqlite3_value*","**"],["sqlite3_vtab_in_next","int","sqlite3_value*","**"],["sqlite3_vtab_nochange","int","sqlite3_context*"],["sqlite3_vtab_on_conflict","int","sqlite3*"],["sqlite3_vtab_rhs_value","int","sqlite3_index_info*","int","**"]),s.bigIntEnabled&&s.exports.sqlite3_preupdate_hook&&s.bindingSignatures.int64.push(["sqlite3_preupdate_blobwrite","int","sqlite3*"],["sqlite3_preupdate_count","int","sqlite3*"],["sqlite3_preupdate_depth","int","sqlite3*"],["sqlite3_preupdate_hook","*",["sqlite3*",new s.xWrap.FuncPtrAdapter({name:"sqlite3_preupdate_hook",signature:"v(ppippjj)",contextKey:q=>q[0],callProxy:q=>(w,x,N,P,S,L,$)=>{q(w,x,N,s.cstrToJs(P),s.cstrToJs(S),L,$)}}),"*"]],["sqlite3_preupdate_new","int",["sqlite3*","int","**"]],["sqlite3_preupdate_old","int",["sqlite3*","int","**"]]),s.bigIntEnabled&&s.exports.sqlite3changegroup_add&&s.exports.sqlite3session_create&&s.exports.sqlite3_preupdate_hook){const q={signature:"i(ps)",callProxy:w=>(x,N)=>{try{return w(x,s.cstrToJs(N))|0}catch(P){return P.resultCode||r.SQLITE_ERROR}}};s.bindingSignatures.int64.push(["sqlite3changegroup_add","int",["sqlite3_changegroup*","int","void*"]],["sqlite3changegroup_add_strm","int",["sqlite3_changegroup*",new s.xWrap.FuncPtrAdapter({name:"xInput",signature:"i(ppp)",bindScope:"transient"}),"void*"]],["sqlite3changegroup_delete",void 0,["sqlite3_changegroup*"]],["sqlite3changegroup_new","int",["**"]],["sqlite3changegroup_output","int",["sqlite3_changegroup*","int*","**"]],["sqlite3changegroup_output_strm","int",["sqlite3_changegroup*",new s.xWrap.FuncPtrAdapter({name:"xOutput",signature:"i(ppi)",bindScope:"transient"}),"void*"]],["sqlite3changeset_apply","int",["sqlite3*","int","void*",new s.xWrap.FuncPtrAdapter({name:"xFilter",bindScope:"transient",...q}),new s.xWrap.FuncPtrAdapter({name:"xConflict",signature:"i(pip)",bindScope:"transient"}),"void*"]],["sqlite3changeset_apply_strm","int",["sqlite3*",new s.xWrap.FuncPtrAdapter({name:"xInput",signature:"i(ppp)",bindScope:"transient"}),"void*",new s.xWrap.FuncPtrAdapter({name:"xFilter",bindScope:"transient",...q}),new s.xWrap.FuncPtrAdapter({name:"xConflict",signature:"i(pip)",bindScope:"transient"}),"void*"]],["sqlite3changeset_apply_v2","int",["sqlite3*","int","void*",new s.xWrap.FuncPtrAdapter({name:"xFilter",bindScope:"transient",...q}),new s.xWrap.FuncPtrAdapter({name:"xConflict",signature:"i(pip)",bindScope:"transient"}),"void*","**","int*","int"]],["sqlite3changeset_apply_v2_strm","int",["sqlite3*",new s.xWrap.FuncPtrAdapter({name:"xInput",signature:"i(ppp)",bindScope:"transient"}),"void*",new s.xWrap.FuncPtrAdapter({name:"xFilter",bindScope:"transient",...q}),new s.xWrap.FuncPtrAdapter({name:"xConflict",signature:"i(pip)",bindScope:"transient"}),"void*","**","int*","int"]],["sqlite3changeset_concat","int",["int","void*","int","void*","int*","**"]],["sqlite3changeset_concat_strm","int",[new s.xWrap.FuncPtrAdapter({name:"xInputA",signature:"i(ppp)",bindScope:"transient"}),"void*",new s.xWrap.FuncPtrAdapter({name:"xInputB",signature:"i(ppp)",bindScope:"transient"}),"void*",new s.xWrap.FuncPtrAdapter({name:"xOutput",signature:"i(ppi)",bindScope:"transient"}),"void*"]],["sqlite3changeset_conflict","int",["sqlite3_changeset_iter*","int","**"]],["sqlite3changeset_finalize","int",["sqlite3_changeset_iter*"]],["sqlite3changeset_fk_conflicts","int",["sqlite3_changeset_iter*","int*"]],["sqlite3changeset_invert","int",["int","void*","int*","**"]],["sqlite3changeset_invert_strm","int",[new s.xWrap.FuncPtrAdapter({name:"xInput",signature:"i(ppp)",bindScope:"transient"}),"void*",new s.xWrap.FuncPtrAdapter({name:"xOutput",signature:"i(ppi)",bindScope:"transient"}),"void*"]],["sqlite3changeset_new","int",["sqlite3_changeset_iter*","int","**"]],["sqlite3changeset_next","int",["sqlite3_changeset_iter*"]],["sqlite3changeset_old","int",["sqlite3_changeset_iter*","int","**"]],["sqlite3changeset_op","int",["sqlite3_changeset_iter*","**","int*","int*","int*"]],["sqlite3changeset_pk","int",["sqlite3_changeset_iter*","**","int*"]],["sqlite3changeset_start","int",["**","int","*"]],["sqlite3changeset_start_strm","int",["**",new s.xWrap.FuncPtrAdapter({name:"xInput",signature:"i(ppp)",bindScope:"transient"}),"void*"]],["sqlite3changeset_start_v2","int",["**","int","*","int"]],["sqlite3changeset_start_v2_strm","int",["**",new s.xWrap.FuncPtrAdapter({name:"xInput",signature:"i(ppp)",bindScope:"transient"}),"void*","int"]],["sqlite3session_attach","int",["sqlite3_session*","string"]],["sqlite3session_changeset","int",["sqlite3_session*","int*","**"]],["sqlite3session_changeset_size","i64",["sqlite3_session*"]],["sqlite3session_changeset_strm","int",["sqlite3_session*",new s.xWrap.FuncPtrAdapter({name:"xOutput",signature:"i(ppp)",bindScope:"transient"}),"void*"]],["sqlite3session_config","int",["int","void*"]],["sqlite3session_create","int",["sqlite3*","string","**"]],["sqlite3session_diff","int",["sqlite3_session*","string","string","**"]],["sqlite3session_enable","int",["sqlite3_session*","int"]],["sqlite3session_indirect","int",["sqlite3_session*","int"]],["sqlite3session_isempty","int",["sqlite3_session*"]],["sqlite3session_memory_used","i64",["sqlite3_session*"]],["sqlite3session_object_config","int",["sqlite3_session*","int","void*"]],["sqlite3session_patchset","int",["sqlite3_session*","*","**"]],["sqlite3session_patchset_strm","int",["sqlite3_session*",new s.xWrap.FuncPtrAdapter({name:"xOutput",signature:"i(ppp)",bindScope:"transient"}),"void*"]],["sqlite3session_table_filter",void 0,["sqlite3_session*",new s.xWrap.FuncPtrAdapter({name:"xFilter",...q,contextKey:(w,x)=>w[0]}),"*"]])}s.bindingSignatures.wasmInternal=[["sqlite3__wasm_db_reset","int","sqlite3*"],["sqlite3__wasm_db_vfs","sqlite3_vfs*","sqlite3*","string"],["sqlite3__wasm_vfs_create_file","int","sqlite3_vfs*","string","*","int"],["sqlite3__wasm_posix_create_file","int","string","*","int"],["sqlite3__wasm_vfs_unlink","int","sqlite3_vfs*","string"],["sqlite3__wasm_qfmt_token","string:dealloc","string","int"]],t.StructBinder=globalThis.Jaccwabyt({heap:s.heap8u,alloc:s.alloc,dealloc:s.dealloc,bigIntEnabled:s.bigIntEnabled,memberPrefix:"$"}),delete globalThis.Jaccwabyt;{const q=s.xWrap.argAdapter("string");s.xWrap.argAdapter("string:flexible",S=>q(o.flexibleString(S))),s.xWrap.argAdapter("string:static",(function(S){return s.isPtr(S)?S:(S=""+S,this[S]||(this[S]=s.allocCString(S)))}).bind(Object.create(null)));const w=s.xWrap.argAdapter("*"),x=function(){};s.xWrap.argAdapter("sqlite3_filename",w)("sqlite3_context*",w)("sqlite3_value*",w)("void*",w)("sqlite3_changegroup*",w)("sqlite3_changeset_iter*",w)("sqlite3_session*",w)("sqlite3_stmt*",S=>w(S instanceof(t?.oo1?.Stmt||x)?S.pointer:S))("sqlite3*",S=>w(S instanceof(t?.oo1?.DB||x)?S.pointer:S))("sqlite3_vfs*",S=>typeof S=="string"?r.sqlite3_vfs_find(S)||t.SQLite3Error.toss(r.SQLITE_NOTFOUND,"Unknown sqlite3_vfs name:",S):w(S instanceof(r.sqlite3_vfs||x)?S.pointer:S)),s.exports.sqlite3_declare_vtab&&s.xWrap.argAdapter("sqlite3_index_info*",S=>w(S instanceof(r.sqlite3_index_info||x)?S.pointer:S))("sqlite3_module*",S=>w(S instanceof(r.sqlite3_module||x)?S.pointer:S));const N=s.xWrap.resultAdapter("*");s.xWrap.resultAdapter("sqlite3*",N)("sqlite3_context*",N)("sqlite3_stmt*",N)("sqlite3_value*",N)("sqlite3_vfs*",N)("void*",N),s.exports.sqlite3_step.length===0&&(s.xWrap.doArgcCheck=!1,t.config.warn("Disabling sqlite3.wasm.xWrap.doArgcCheck due to environmental quirks."));for(const S of s.bindingSignatures)r[S[0]]=s.xWrap.apply(null,S);for(const S of s.bindingSignatures.wasmInternal)o[S[0]]=s.xWrap.apply(null,S);const P=function(S){return()=>n(S+"() is unavailable due to lack","of BigInt support in this build.")};for(const S of s.bindingSignatures.int64)r[S[0]]=s.bigIntEnabled?s.xWrap.apply(null,S):P(S[0]);if(delete s.bindingSignatures,s.exports.sqlite3__wasm_db_error){const S=s.xWrap("sqlite3__wasm_db_error","int","sqlite3*","int","string");o.sqlite3__wasm_db_error=function(L,$,c){return $ instanceof t.WasmAllocError?($=r.SQLITE_NOMEM,c=0):$ instanceof Error&&(c=c||""+$,$=$.resultCode||r.SQLITE_ERROR),L?S(L,$,c):$}}else o.sqlite3__wasm_db_error=function(S,L,$){return console.warn("sqlite3__wasm_db_error() is not exported.",arguments),L}}{const q=s.xCall("sqlite3__wasm_enum_json");q||n("Maintenance required: increase sqlite3__wasm_enum_json()'s","static buffer size!"),s.ctype=JSON.parse(s.cstrToJs(q));const w=["access","authorizer","blobFinalizers","changeset","config","dataTypes","dbConfig","dbStatus","encodings","fcntl","flock","ioCap","limits","openFlags","prepareFlags","resultCodes","sqlite3Status","stmtStatus","syncFlags","trace","txnState","udfFlags","version"];s.bigIntEnabled&&w.push("serialize","session","vtab");for(const P of w)for(const S of Object.entries(s.ctype[P]))r[S[0]]=S[1];s.functionEntry(r.SQLITE_WASM_DEALLOC)||n("Internal error: cannot resolve exported function","entry SQLITE_WASM_DEALLOC (=="+r.SQLITE_WASM_DEALLOC+").");const x=Object.create(null);for(const P of["resultCodes"])for(const S of Object.entries(s.ctype[P]))x[S[1]]=S[0];r.sqlite3_js_rc_str=P=>x[P];const N=Object.assign(Object.create(null),{WasmTestStruct:!0,sqlite3_kvvfs_methods:!o.isUIThread(),sqlite3_index_info:!s.bigIntEnabled,sqlite3_index_constraint:!s.bigIntEnabled,sqlite3_index_orderby:!s.bigIntEnabled,sqlite3_index_constraint_usage:!s.bigIntEnabled});for(const P of s.ctype.structs)N[P.name]||(r[P.name]=t.StructBinder(P));if(r.sqlite3_index_info){for(const P of["sqlite3_index_constraint","sqlite3_index_orderby","sqlite3_index_constraint_usage"])r.sqlite3_index_info[P]=r[P],delete r[P];r.sqlite3_vtab_config=s.xWrap("sqlite3__wasm_vtab_config","int",["sqlite3*","int","int"])}}const p=(q,w,x)=>o.sqlite3__wasm_db_error(q,r.SQLITE_MISUSE,w+"() requires "+x+" argument"+(x===1?"":"s")+"."),g=q=>o.sqlite3__wasm_db_error(q,r.SQLITE_FORMAT,"SQLITE_UTF8 is the only supported encoding."),O=q=>s.xWrap.argAdapter("sqlite3*")(q),R=q=>s.isPtr(q)?s.cstrToJs(q):q,z=(function(q,w){q=O(q);let x=this.dbMap.get(q);if(w)!x&&w>0&&this.dbMap.set(q,x=Object.create(null));else return this.dbMap.delete(q),x;return x}).bind(Object.assign(Object.create(null),{dbMap:new Map}));z.addCollation=function(q,w){const x=z(q,1);x.collation||(x.collation=new Set),x.collation.add(R(w).toLowerCase())},z._addUDF=function(q,w,x,N){w=R(w).toLowerCase();let P=N.get(w);P||N.set(w,P=new Set),P.add(x<0?-1:x)},z.addFunction=function(q,w,x){const N=z(q,1);N.udf||(N.udf=new Map),this._addUDF(q,w,x,N.udf)},s.exports.sqlite3_create_window_function&&(z.addWindowFunc=function(q,w,x){const N=z(q,1);N.wudf||(N.wudf=new Map),this._addUDF(q,w,x,N.wudf)}),z.cleanup=function(q){q=O(q);const w=[q];for(const P of["sqlite3_busy_handler","sqlite3_commit_hook","sqlite3_preupdate_hook","sqlite3_progress_handler","sqlite3_rollback_hook","sqlite3_set_authorizer","sqlite3_trace_v2","sqlite3_update_hook"]){const S=s.exports[P];if(S){w.length=S.length;try{r[P](...w)}catch(L){t.config.warn("close-time call of",P+"(",w,") threw:",L)}}}const x=z(q,0);if(!x)return;if(x.collation){for(const P of x.collation)try{r.sqlite3_create_collation_v2(q,P,r.SQLITE_UTF8,0,0,0)}catch{}delete x.collation}let N;for(N=0;N<2;++N){const P=N?x.wudf:x.udf;if(!P)continue;const S=N?r.sqlite3_create_window_function:r.sqlite3_create_function_v2;for(const L of P){const $=L[0],c=L[1],d=[q,$,0,r.SQLITE_UTF8,0,0,0,0,0];N&&d.push(0);for(const y of c)try{d[2]=y,S.apply(null,d)}catch{}c.clear()}P.clear()}delete x.udf,delete x.wudf};{const q=s.xWrap("sqlite3_close_v2","int","sqlite3*");r.sqlite3_close_v2=function(w){if(arguments.length!==1)return p(w,"sqlite3_close_v2",1);if(w)try{z.cleanup(w)}catch{}return q(w)}}if(r.sqlite3session_create){const q=s.xWrap("sqlite3session_delete",void 0,["sqlite3_session*"]);r.sqlite3session_delete=function(w){if(arguments.length!==1)return p(pDb,"sqlite3session_delete",1);w&&r.sqlite3session_table_filter(w,0,0),q(w)}}{const q=(x,N)=>"argv["+N+"]:"+x[0]+":"+s.cstrToJs(x[1]).toLowerCase(),w=s.xWrap("sqlite3_create_collation_v2","int",["sqlite3*","string","int","*",new s.xWrap.FuncPtrAdapter({name:"xCompare",signature:"i(pipip)",contextKey:q}),new s.xWrap.FuncPtrAdapter({name:"xDestroy",signature:"v(p)",contextKey:q})]);r.sqlite3_create_collation_v2=function(x,N,P,S,L,$){if(arguments.length!==6)return p(x,"sqlite3_create_collation_v2",6);if((P&15)===0)P|=r.SQLITE_UTF8;else if(r.SQLITE_UTF8!==(P&15))return g(x);try{const c=w(x,N,P,S,L,$);return c===0&&L instanceof Function&&z.addCollation(x,N),c}catch(c){return o.sqlite3__wasm_db_error(x,c)}},r.sqlite3_create_collation=(x,N,P,S,L)=>arguments.length===5?r.sqlite3_create_collation_v2(x,N,P,S,L,0):p(x,"sqlite3_create_collation",5)}{const q=function(P,S){return P[0]+":"+(P[2]<0?-1:P[2])+":"+S+":"+s.cstrToJs(P[1]).toLowerCase()},w=Object.assign(Object.create(null),{xInverseAndStep:{signature:"v(pip)",contextKey:q,callProxy:P=>(S,L,$)=>{try{P(S,...r.sqlite3_values_to_js(L,$))}catch(c){r.sqlite3_result_error_js(S,c)}}},xFinalAndValue:{signature:"v(p)",contextKey:q,callProxy:P=>S=>{try{r.sqlite3_result_js(S,P(S))}catch(L){r.sqlite3_result_error_js(S,L)}}},xFunc:{signature:"v(pip)",contextKey:q,callProxy:P=>(S,L,$)=>{try{r.sqlite3_result_js(S,P(S,...r.sqlite3_values_to_js(L,$)))}catch(c){r.sqlite3_result_error_js(S,c)}}},xDestroy:{signature:"v(p)",contextKey:q,callProxy:P=>S=>{try{P(S)}catch(L){console.error("UDF xDestroy method threw:",L)}}}}),x=s.xWrap("sqlite3_create_function_v2","int",["sqlite3*","string","int","int","*",new s.xWrap.FuncPtrAdapter({name:"xFunc",...w.xFunc}),new s.xWrap.FuncPtrAdapter({name:"xStep",...w.xInverseAndStep}),new s.xWrap.FuncPtrAdapter({name:"xFinal",...w.xFinalAndValue}),new s.xWrap.FuncPtrAdapter({name:"xDestroy",...w.xDestroy})]),N=s.exports.sqlite3_create_window_function?s.xWrap("sqlite3_create_window_function","int",["sqlite3*","string","int","int","*",new s.xWrap.FuncPtrAdapter({name:"xStep",...w.xInverseAndStep}),new s.xWrap.FuncPtrAdapter({name:"xFinal",...w.xFinalAndValue}),new s.xWrap.FuncPtrAdapter({name:"xValue",...w.xFinalAndValue}),new s.xWrap.FuncPtrAdapter({name:"xInverse",...w.xInverseAndStep}),new s.xWrap.FuncPtrAdapter({name:"xDestroy",...w.xDestroy})]):void 0;r.sqlite3_create_function_v2=function P(S,L,$,c,d,y,B,f,m){if(P.length!==arguments.length)return p(S,"sqlite3_create_function_v2",P.length);if((c&15)===0)c|=r.SQLITE_UTF8;else if(r.SQLITE_UTF8!==(c&15))return g(S);try{const l=x(S,L,$,c,d,y,B,f,m);return l===0&&(y instanceof Function||B instanceof Function||f instanceof Function||m instanceof Function)&&z.addFunction(S,L,$),l}catch(l){return console.error("sqlite3_create_function_v2() setup threw:",l),o.sqlite3__wasm_db_error(S,l,"Creation of UDF threw: "+l)}},r.sqlite3_create_function=function P(S,L,$,c,d,y,B,f){return P.length===arguments.length?r.sqlite3_create_function_v2(S,L,$,c,d,y,B,f,0):p(S,"sqlite3_create_function",P.length)},N?r.sqlite3_create_window_function=function P(S,L,$,c,d,y,B,f,m,l){if(P.length!==arguments.length)return p(S,"sqlite3_create_window_function",P.length);if((c&15)===0)c|=r.SQLITE_UTF8;else if(r.SQLITE_UTF8!==(c&15))return g(S);try{const _=N(S,L,$,c,d,y,B,f,m,l);return _===0&&(y instanceof Function||B instanceof Function||f instanceof Function||m instanceof Function||l instanceof Function)&&z.addWindowFunc(S,L,$),_}catch(_){return console.error("sqlite3_create_window_function() setup threw:",_),o.sqlite3__wasm_db_error(S,_,"Creation of UDF threw: "+_)}}:delete r.sqlite3_create_window_function,r.sqlite3_create_function_v2.udfSetResult=r.sqlite3_create_function.udfSetResult=r.sqlite3_result_js,r.sqlite3_create_window_function&&(r.sqlite3_create_window_function.udfSetResult=r.sqlite3_result_js),r.sqlite3_create_function_v2.udfConvertArgs=r.sqlite3_create_function.udfConvertArgs=r.sqlite3_values_to_js,r.sqlite3_create_window_function&&(r.sqlite3_create_window_function.udfConvertArgs=r.sqlite3_values_to_js),r.sqlite3_create_function_v2.udfSetError=r.sqlite3_create_function.udfSetError=r.sqlite3_result_error_js,r.sqlite3_create_window_function&&(r.sqlite3_create_window_function.udfSetError=r.sqlite3_result_error_js)}{const q=(x,N)=>(typeof x=="string"?N=-1:o.isSQLableTypedArray(x)?(N=x.byteLength,x=o.typedArrayToString(x instanceof ArrayBuffer?new Uint8Array(x):x)):Array.isArray(x)&&(x=x.join(""),N=-1),[x,N]),w={basic:s.xWrap("sqlite3_prepare_v3","int",["sqlite3*","string","int","int","**","**"]),full:s.xWrap("sqlite3_prepare_v3","int",["sqlite3*","*","int","int","**","**"])};r.sqlite3_prepare_v3=function x(N,P,S,L,$,c){if(x.length!==arguments.length)return p(N,"sqlite3_prepare_v3",x.length);const[d,y]=q(P,S);switch(typeof d){case"string":return w.basic(N,d,y,L,$,null);case"number":return w.full(N,d,y,L,$,c);default:return o.sqlite3__wasm_db_error(N,r.SQLITE_MISUSE,"Invalid SQL argument type for sqlite3_prepare_v2/v3().")}},r.sqlite3_prepare_v2=function x(N,P,S,L,$){return x.length===arguments.length?r.sqlite3_prepare_v3(N,P,S,0,L,$):p(N,"sqlite3_prepare_v2",x.length)}}{const q=s.xWrap("sqlite3_bind_text","int",["sqlite3_stmt*","int","string","int","*"]),w=s.xWrap("sqlite3_bind_blob","int",["sqlite3_stmt*","int","*","int","*"]);r.sqlite3_bind_text=function x(N,P,S,L,$){if(x.length!==arguments.length)return p(r.sqlite3_db_handle(N),"sqlite3_bind_text",x.length);if(s.isPtr(S)||S===null)return q(N,P,S,L,$);S instanceof ArrayBuffer?S=new Uint8Array(S):Array.isArray(pMem)&&(S=pMem.join(""));let c,d;try{if(o.isSQLableTypedArray(S))c=s.allocFromTypedArray(S),d=S.byteLength;else if(typeof S=="string")[c,d]=s.allocCString(S);else return o.sqlite3__wasm_db_error(r.sqlite3_db_handle(N),r.SQLITE_MISUSE,"Invalid 3rd argument type for sqlite3_bind_text().");return q(N,P,c,d,r.SQLITE_WASM_DEALLOC)}catch(y){return s.dealloc(c),o.sqlite3__wasm_db_error(r.sqlite3_db_handle(N),y)}},r.sqlite3_bind_blob=function x(N,P,S,L,$){if(x.length!==arguments.length)return p(r.sqlite3_db_handle(N),"sqlite3_bind_blob",x.length);if(s.isPtr(S)||S===null)return w(N,P,S,L,$);S instanceof ArrayBuffer?S=new Uint8Array(S):Array.isArray(S)&&(S=S.join(""));let c,d;try{if(o.isBindableTypedArray(S))c=s.allocFromTypedArray(S),d=L>=0?L:S.byteLength;else if(typeof S=="string")[c,d]=s.allocCString(S);else return o.sqlite3__wasm_db_error(r.sqlite3_db_handle(N),r.SQLITE_MISUSE,"Invalid 3rd argument type for sqlite3_bind_blob().");return w(N,P,c,d,r.SQLITE_WASM_DEALLOC)}catch(y){return s.dealloc(c),o.sqlite3__wasm_db_error(r.sqlite3_db_handle(N),y)}}}r.sqlite3_config=function(q,...w){if(arguments.length<2)return r.SQLITE_MISUSE;switch(q){case r.SQLITE_CONFIG_COVERING_INDEX_SCAN:case r.SQLITE_CONFIG_MEMSTATUS:case r.SQLITE_CONFIG_SMALL_MALLOC:case r.SQLITE_CONFIG_SORTERREF_SIZE:case r.SQLITE_CONFIG_STMTJRNL_SPILL:case r.SQLITE_CONFIG_URI:return s.exports.sqlite3__wasm_config_i(q,w[0]);case r.SQLITE_CONFIG_LOOKASIDE:return s.exports.sqlite3__wasm_config_ii(q,w[0],w[1]);case r.SQLITE_CONFIG_MEMDB_MAXSIZE:return s.exports.sqlite3__wasm_config_j(q,w[0]);case r.SQLITE_CONFIG_GETMALLOC:case r.SQLITE_CONFIG_GETMUTEX:case r.SQLITE_CONFIG_GETPCACHE2:case r.SQLITE_CONFIG_GETPCACHE:case r.SQLITE_CONFIG_HEAP:case r.SQLITE_CONFIG_LOG:case r.SQLITE_CONFIG_MALLOC:case r.SQLITE_CONFIG_MMAP_SIZE:case r.SQLITE_CONFIG_MULTITHREAD:case r.SQLITE_CONFIG_MUTEX:case r.SQLITE_CONFIG_PAGECACHE:case r.SQLITE_CONFIG_PCACHE2:case r.SQLITE_CONFIG_PCACHE:case r.SQLITE_CONFIG_PCACHE_HDRSZ:case r.SQLITE_CONFIG_PMASZ:case r.SQLITE_CONFIG_SERIALIZED:case r.SQLITE_CONFIG_SINGLETHREAD:case r.SQLITE_CONFIG_SQLLOG:case r.SQLITE_CONFIG_WIN32_HEAPSIZE:default:return r.SQLITE_NOTFOUND}};{const q=new Set;r.sqlite3_auto_extension=function(w){if(w instanceof Function)w=s.installFunction("i(ppp)",w);else if(arguments.length!==1||!s.isPtr(w))return r.SQLITE_MISUSE;const x=s.exports.sqlite3_auto_extension(w);return w!==arguments[0]&&(x===0?q.add(w):s.uninstallFunction(w)),x},r.sqlite3_cancel_auto_extension=function(w){return!w||arguments.length!==1||!s.isPtr(w)?0:s.exports.sqlite3_cancel_auto_extension(w)},r.sqlite3_reset_auto_extension=function(){s.exports.sqlite3_reset_auto_extension();for(const w of q)s.uninstallFunction(w);q.clear()}}const W=r.sqlite3_vfs_find("kvvfs");if(W)if(o.isUIThread()){const q=new r.sqlite3_kvvfs_methods(s.exports.sqlite3__wasm_kvvfs_methods());delete r.sqlite3_kvvfs_methods;const w=s.exports.sqlite3__wasm_kvvfsMakeKeyOnPstack,x=s.pstack,N=S=>s.peek(S)===115?sessionStorage:localStorage,P={xRead:(S,L,$,c)=>{const d=x.pointer,y=s.scopedAllocPush();try{const B=w(S,L);if(!B)return-3;const f=s.cstrToJs(B),m=N(S).getItem(f);if(!m)return-1;const l=m.length;if(c<=0)return l;if(c===1)return s.poke($,0),l;const _=s.scopedAllocCString(m);return c>l+1&&(c=l+1),s.heap8u().copyWithin($,_,_+c-1),s.poke($+c-1,0),c-1}catch(B){return console.error("kvstorageRead()",B),-2}finally{x.restore(d),s.scopedAllocPop(y)}},xWrite:(S,L,$)=>{const c=x.pointer;try{const d=w(S,L);if(!d)return 1;const y=s.cstrToJs(d);return N(S).setItem(y,s.cstrToJs($)),0}catch(d){return console.error("kvstorageWrite()",d),r.SQLITE_IOERR}finally{x.restore(c)}},xDelete:(S,L)=>{const $=x.pointer;try{const c=w(S,L);return c?(N(S).removeItem(s.cstrToJs(c)),0):1}catch(c){return console.error("kvstorageDelete()",c),r.SQLITE_IOERR}finally{x.restore($)}}};for(const S of Object.keys(P))q[q.memberKey(S)]=s.installFunction(q.memberSignature(S),P[S])}else r.sqlite3_vfs_unregister(W);s.xWrap.FuncPtrAdapter.warnOnUse=!0;const T=t.StructBinder,A=function q(w,x,N,P=q.installMethodArgcCheck){if(w instanceof T.StructType?!(N instanceof Function)&&!s.isPtr(N)&&n("Usage error: expecting a Function or WASM pointer to one."):n("Usage error: target object is-not-a StructType."),arguments.length===1)return(c,d)=>q(w,c,d,P);q.argcProxy||(q.argcProxy=function(c,d,y,B){return function(...f){return y.length!==arguments.length&&n("Argument mismatch for",c.structInfo.name+"::"+d+": Native signature is:",B),y.apply(this,f)}},q.removeFuncList=function(){this.ondispose.__removeFuncList&&(this.ondispose.__removeFuncList.forEach((c,d)=>{if(typeof c=="number")try{s.uninstallFunction(c)}catch{}}),delete this.ondispose.__removeFuncList)});const S=w.memberSignature(x);S.length<2&&n("Member",x,"does not have a function pointer signature:",S);const L=w.memberKey(x),$=P&&!s.isPtr(N)?q.argcProxy(w,L,N,S):N;if(s.isPtr($))$&&!s.functionEntry($)&&n("Pointer",$,"is not a WASM function table entry."),w[L]=$;else{const c=s.installFunction($,w.memberSignature(x,!0));w[L]=c,(!w.ondispose||!w.ondispose.__removeFuncList)&&(w.addOnDispose("ondispose.__removeFuncList handler",q.removeFuncList),w.ondispose.__removeFuncList=[]),w.ondispose.__removeFuncList.push(L,c)}return(c,d)=>q(w,c,d,P)};A.installMethodArgcCheck=!1;const D=function(q,w,x=A.installMethodArgcCheck){const N=new Map;for(const P of Object.keys(w)){const S=w[P],L=N.get(S);if(L){const $=q.memberKey(P);q[$]=q[q.memberKey(L)]}else A(q,P,S,x),N.set(S,P)}return q};T.StructType.prototype.installMethod=function(w,x,N=A.installMethodArgcCheck){return arguments.length<3&&w&&typeof w=="object"?D(this,...arguments):A(this,...arguments)},T.StructType.prototype.installMethods=function(q,w=A.installMethodArgcCheck){return D(this,q,w)}}),globalThis.sqlite3ApiBootstrap.initializers.push(function(t){t.version={libVersion:"3.50.4",libVersionNumber:3050004,sourceId:"2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3",downloadVersion:3500400}}),globalThis.sqlite3ApiBootstrap.initializers.push(function(t){const n=(...f)=>{throw new t.SQLite3Error(...f)},r=t.capi,s=t.wasm,o=t.util,p=new WeakMap,g=new WeakMap,O=(f,m,l)=>{const _=Object.getOwnPropertyDescriptor(f,m);return _?_.value:l},R=function(f,m){return m&&(f instanceof A&&(f=f.pointer),n(m,"sqlite3 result code",m+":",f?r.sqlite3_errmsg(f):r.sqlite3_errstr(m))),arguments[0]},z=s.installFunction("i(ippp)",(function(f,m,l,_){r.SQLITE_TRACE_STMT===f&&console.log("SQL TRACE #"+ ++this.counter+" via sqlite3@"+m+":",s.cstrToJs(_))}).bind({counter:0})),W=Object.create(null),T=function f(...m){if(!f._name2vfs){f._name2vfs=Object.create(null);const j=typeof importScripts=="function"?b=>n("The VFS for",b,"is only available in the main window thread."):!1;f._name2vfs[":localStorage:"]={vfs:"kvvfs",filename:j||(()=>"local")},f._name2vfs[":sessionStorage:"]={vfs:"kvvfs",filename:j||(()=>"session")}}const l=f.normalizeArgs(...m);let _=l.filename,u=l.vfs,I=l.flags;(typeof _!="string"&&typeof _!="number"||typeof I!="string"||u&&typeof u!="string"&&typeof u!="number")&&(t.config.error("Invalid DB ctor args",l,arguments),n("Invalid arguments for DB constructor."));let U=typeof _=="number"?s.cstrToJs(_):_;const ee=f._name2vfs[U];ee&&(u=ee.vfs,_=U=ee.filename(U));let ne,re=0;I.indexOf("c")>=0&&(re|=r.SQLITE_OPEN_CREATE|r.SQLITE_OPEN_READWRITE),I.indexOf("w")>=0&&(re|=r.SQLITE_OPEN_READWRITE),re===0&&(re|=r.SQLITE_OPEN_READONLY),re|=r.SQLITE_OPEN_EXRESCODE;const se=s.pstack.pointer;try{const j=s.pstack.allocPtr();let b=r.sqlite3_open_v2(_,j,re,u||0);ne=s.peekPtr(j),R(ne,b),r.sqlite3_extended_result_codes(ne,1),I.indexOf("t")>=0&&r.sqlite3_trace_v2(ne,r.SQLITE_TRACE_STMT,z,ne)}catch(j){throw ne&&r.sqlite3_close_v2(ne),j}finally{s.pstack.restore(se)}this.filename=U,p.set(this,ne),g.set(this,Object.create(null));try{const j=r.sqlite3_js_db_vfs(ne)||n("Internal error: cannot get VFS for new db handle."),b=W[j];b&&(b instanceof Function?b(this,t):R(ne,r.sqlite3_exec(ne,b,0,0,0)))}catch(j){throw this.close(),j}};T.setVfsPostOpenCallback=function(f,m){m instanceof Function||n("dbCtorHelper.setVfsPostOpenCallback() should not be used with a non-function argument.",arguments),W[f]=m},T.normalizeArgs=function(f=":memory:",m="c",l=null){const _={};return arguments.length===1&&arguments[0]&&typeof arguments[0]=="object"?(Object.assign(_,arguments[0]),_.flags===void 0&&(_.flags="c"),_.vfs===void 0&&(_.vfs=null),_.filename===void 0&&(_.filename=":memory:")):(_.filename=f,_.flags=m,_.vfs=l),_};const A=function(...f){T.apply(this,f)};A.dbCtorHelper=T;const D={null:1,number:2,string:3,boolean:4,blob:5};D.undefined==D.null,s.bigIntEnabled&&(D.bigint=D.number);const q=function(){D!==arguments[2]&&n(r.SQLITE_MISUSE,"Do not call the Stmt constructor directly. Use DB.prepare()."),this.db=arguments[0],p.set(this,arguments[1]),this.parameterCount=r.sqlite3_bind_parameter_count(this.pointer)},w=function(f){return f.pointer||n("DB has been closed."),f},x=function(f,m){return(m!==(m|0)||m<0||m>=f.columnCount)&&n("Column index",m,"is out of range."),f},N=function(f,m){const l=Object.create(null);switch(l.opt=Object.create(null),m.length){case 1:typeof m[0]=="string"||o.isSQLableTypedArray(m[0])||Array.isArray(m[0])?l.sql=m[0]:m[0]&&typeof m[0]=="object"&&(l.opt=m[0],l.sql=l.opt.sql);break;case 2:l.sql=m[0],l.opt=m[1];break;default:n("Invalid argument count for exec().")}l.sql=o.flexibleString(l.sql),typeof l.sql!="string"&&n("Missing SQL argument or unsupported SQL value type.");const _=l.opt;switch(_.returnValue){case"resultRows":_.resultRows||(_.resultRows=[]),l.returnVal=()=>_.resultRows;break;case"saveSql":_.saveSql||(_.saveSql=[]),l.returnVal=()=>_.saveSql;break;case void 0:case"this":l.returnVal=()=>f;break;default:n("Invalid returnValue value:",_.returnValue)}if(!_.callback&&!_.returnValue&&_.rowMode!==void 0&&(_.resultRows||(_.resultRows=[]),l.returnVal=()=>_.resultRows),_.callback||_.resultRows)switch(_.rowMode===void 0?"array":_.rowMode){case"object":l.cbArg=(u,I)=>{I.columnNames||(I.columnNames=u.getColumnNames([]));const U=u.get([]),ee=Object.create(null);for(const ne in I.columnNames)ee[I.columnNames[ne]]=U[ne];return ee};break;case"array":l.cbArg=u=>u.get([]);break;case"stmt":Array.isArray(_.resultRows)&&n("exec(): invalid rowMode for a resultRows array: must","be one of 'array', 'object',","a result column number, or column name reference."),l.cbArg=u=>u;break;default:if(o.isInt32(_.rowMode)){l.cbArg=u=>u.get(_.rowMode);break}else if(typeof _.rowMode=="string"&&_.rowMode.length>1&&_.rowMode[0]==="$"){const u=_.rowMode.substr(1);l.cbArg=I=>{const U=I.get(Object.create(null))[u];return U===void 0?n(r.SQLITE_NOTFOUND,"exec(): unknown result column:",u):U};break}n("Invalid rowMode:",_.rowMode)}return l},P=(f,m,l,..._)=>{const u=f.prepare(m);try{const I=u.bind(l).step()?u.get(..._):void 0;return u.reset(),I}finally{u.finalize()}},S=(f,m,l,_)=>f.exec({sql:m,bind:l,rowMode:_,returnValue:"resultRows"});A.checkRc=(f,m)=>R(f,m),A.prototype={isOpen:function(){return!!this.pointer},affirmOpen:function(){return w(this)},close:function(){if(this.pointer){if(this.onclose&&this.onclose.before instanceof Function)try{this.onclose.before(this)}catch{}const f=this.pointer;if(Object.keys(g.get(this)).forEach((m,l)=>{if(l&&l.pointer)try{l.finalize()}catch{}}),p.delete(this),g.delete(this),r.sqlite3_close_v2(f),this.onclose&&this.onclose.after instanceof Function)try{this.onclose.after(this)}catch{}delete this.filename}},changes:function(f=!1,m=!1){const l=w(this).pointer;return f?m?r.sqlite3_total_changes64(l):r.sqlite3_total_changes(l):m?r.sqlite3_changes64(l):r.sqlite3_changes(l)},dbFilename:function(f="main"){return r.sqlite3_db_filename(w(this).pointer,f)},dbName:function(f=0){return r.sqlite3_db_name(w(this).pointer,f)},dbVfsName:function(f=0){let m;const l=r.sqlite3_js_db_vfs(w(this).pointer,f);if(l){const _=new r.sqlite3_vfs(l);try{m=s.cstrToJs(_.$zName)}finally{_.dispose()}}return m},prepare:function(f){w(this);const m=s.pstack.pointer;let l,_;try{l=s.pstack.alloc(8),A.checkRc(this,r.sqlite3_prepare_v2(this.pointer,f,-1,l,null)),_=s.peekPtr(l)}finally{s.pstack.restore(m)}_||n("Cannot prepare empty SQL.");const u=new q(this,_,D);return g.get(this)[_]=u,u},exec:function(){w(this);const f=N(this,arguments);if(!f.sql)return n("exec() requires an SQL string.");const m=f.opt,l=m.callback,_=Array.isArray(m.resultRows)?m.resultRows:void 0;let u,I=m.bind,U=!!(f.cbArg||m.columnNames||_);const ee=s.scopedAllocPush(),ne=Array.isArray(m.saveSql)?m.saveSql:void 0;try{const re=o.isSQLableTypedArray(f.sql);let se=re?f.sql.byteLength:s.jstrlen(f.sql);const j=s.scopedAlloc(2*s.ptrSizeof+(se+1)),b=j+s.ptrSizeof;let k=b+s.ptrSizeof;const Q=k+se;for(re?s.heap8().set(f.sql,k):s.jstrcpy(f.sql,s.heap8(),k,se,!1),s.poke(k+se,0);k&&s.peek(k,"i8");){s.pokePtr([j,b],0),A.checkRc(this,r.sqlite3_prepare_v3(this.pointer,k,se,0,j,b));const H=s.peekPtr(j);if(k=s.peekPtr(b),se=Q-k,!!H){if(ne&&ne.push(r.sqlite3_sql(H).trim()),u=new q(this,H,D),I&&u.parameterCount&&(u.bind(I),I=null),U&&u.columnCount){let Z=Array.isArray(m.columnNames)?0:1;if(U=!1,f.cbArg||_){const E=Object.create(null);for(;u.step();u._lockedByExec=!1){Z++===0&&u.getColumnNames(E.columnNames=m.columnNames||[]),u._lockedByExec=!0;const C=f.cbArg(u,E);if(_&&_.push(C),l&&l.call(m,C,u)===!1)break}u._lockedByExec=!1}Z===0&&u.getColumnNames(m.columnNames)}else u.step();u.reset().finalize(),u=null}}}finally{s.scopedAllocPop(ee),u&&(delete u._lockedByExec,u.finalize())}return f.returnVal()},createFunction:function(m,l,_){const u=E=>E instanceof Function;switch(arguments.length){case 1:_=m,m=_.name,l=_.xFunc||0;break;case 2:u(l)||(_=l,l=_.xFunc||0);break}_||(_={}),typeof m!="string"&&n("Invalid arguments: missing function name.");let I=_.xStep||0,U=_.xFinal||0;const ee=_.xValue||0,ne=_.xInverse||0;let re;u(l)?(re=!1,(u(I)||u(U))&&n("Ambiguous arguments: scalar or aggregate?"),I=U=null):u(I)?(u(U)||n("Missing xFinal() callback for aggregate or window UDF."),l=null):u(U)?n("Missing xStep() callback for aggregate or window UDF."):n("Missing function-type properties."),re===!1?(u(ee)||u(ne))&&n("xValue and xInverse are not permitted for non-window UDFs."):u(ee)?(u(ne)||n("xInverse must be provided if xValue is."),re=!0):u(ne)&&n("xValue must be provided if xInverse is.");const se=_.pApp;se!=null&&(typeof se!="number"||!o.isInt32(se))&&n("Invalid value for pApp property. Must be a legal WASM pointer value.");const j=_.xDestroy||0;j&&!u(j)&&n("xDestroy property must be a function.");let b=0;O(_,"deterministic")&&(b|=r.SQLITE_DETERMINISTIC),O(_,"directOnly")&&(b|=r.SQLITE_DIRECTONLY),O(_,"innocuous")&&(b|=r.SQLITE_INNOCUOUS),m=m.toLowerCase();const k=l||I,Q=O(_,"arity"),H=typeof Q=="number"?Q:k.length?k.length-1:0;let Z;return re?Z=r.sqlite3_create_window_function(this.pointer,m,H,r.SQLITE_UTF8|b,se||0,I,U,ee,ne,j):Z=r.sqlite3_create_function_v2(this.pointer,m,H,r.SQLITE_UTF8|b,se||0,l,I,U,j),A.checkRc(this,Z),this},selectValue:function(f,m,l){return P(this,f,m,0,l)},selectValues:function(f,m,l){const _=this.prepare(f),u=[];try{for(_.bind(m);_.step();)u.push(_.get(0,l));_.reset()}finally{_.finalize()}return u},selectArray:function(f,m){return P(this,f,m,[])},selectObject:function(f,m){return P(this,f,m,{})},selectArrays:function(f,m){return S(this,f,m,"array")},selectObjects:function(f,m){return S(this,f,m,"object")},openStatementCount:function(){return this.pointer?Object.keys(g.get(this)).length:0},transaction:function(f){let m="BEGIN";arguments.length>1&&(/[^a-zA-Z]/.test(arguments[0])&&n(r.SQLITE_MISUSE,"Invalid argument for BEGIN qualifier."),m+=" "+arguments[0],f=arguments[1]),w(this).exec(m);try{const l=f(this);return this.exec("COMMIT"),l}catch(l){throw this.exec("ROLLBACK"),l}},savepoint:function(f){w(this).exec("SAVEPOINT oo1");try{const m=f(this);return this.exec("RELEASE oo1"),m}catch(m){throw this.exec("ROLLBACK to SAVEPOINT oo1; RELEASE SAVEPOINT oo1"),m}},checkRc:function(f){return R(this,f)}};const L=function(f){return f.pointer||n("Stmt has been closed."),f},$=function(f){let m=D[f==null?"null":typeof f];switch(m){case D.boolean:case D.null:case D.number:case D.string:return m;case D.bigint:if(s.bigIntEnabled)return m;default:return o.isBindableTypedArray(f)?D.blob:void 0}},c=function(f){return $(f)||n("Unsupported bind() argument type:",typeof f)},d=function(f,m){const l=typeof m=="number"?m:r.sqlite3_bind_parameter_index(f.pointer,m);return l===0||!o.isInt32(l)?n("Invalid bind() parameter name: "+m):(l<1||l>f.parameterCount)&&n("Bind index",m,"is out of range."),l},y=function(f,m){return f._lockedByExec&&n("Operation is illegal when statement is locked:",m),f},B=function f(m,l,_,u){y(L(m),"bind()"),f._||(f._tooBigInt=U=>n("BigInt value is too big to store without precision loss:",U),f._={string:function(U,ee,ne,re){const[se,j]=s.allocCString(ne,!0);return(re?r.sqlite3_bind_blob:r.sqlite3_bind_text)(U.pointer,ee,se,j,r.SQLITE_WASM_DEALLOC)}}),c(u),l=d(m,l);let I=0;switch(u==null?D.null:_){case D.null:I=r.sqlite3_bind_null(m.pointer,l);break;case D.string:I=f._.string(m,l,u,!1);break;case D.number:{let U;o.isInt32(u)?U=r.sqlite3_bind_int:typeof u=="bigint"?o.bigIntFits64(u)?s.bigIntEnabled?U=r.sqlite3_bind_int64:o.bigIntFitsDouble(u)?(u=Number(u),U=r.sqlite3_bind_double):f._tooBigInt(u):f._tooBigInt(u):(u=Number(u),s.bigIntEnabled&&Number.isInteger(u)?U=r.sqlite3_bind_int64:U=r.sqlite3_bind_double),I=U(m.pointer,l,u);break}case D.boolean:I=r.sqlite3_bind_int(m.pointer,l,u?1:0);break;case D.blob:{if(typeof u=="string"){I=f._.string(m,l,u,!0);break}else u instanceof ArrayBuffer?u=new Uint8Array(u):o.isBindableTypedArray(u)||n("Binding a value as a blob requires","that it be a string, Uint8Array, Int8Array, or ArrayBuffer.");const U=s.alloc(u.byteLength||1);s.heap8().set(u.byteLength?u:[0],U),I=r.sqlite3_bind_blob(m.pointer,l,U,u.byteLength,r.SQLITE_WASM_DEALLOC);break}default:t.config.warn("Unsupported bind() argument type:",u),n("Unsupported bind() argument type: "+typeof u)}return I&&A.checkRc(m.db.pointer,I),m._mayGet=!1,m};q.prototype={finalize:function(){if(this.pointer){y(this,"finalize()");const f=r.sqlite3_finalize(this.pointer);return delete g.get(this.db)[this.pointer],p.delete(this),delete this._mayGet,delete this.parameterCount,delete this._lockedByExec,delete this.db,f}},clearBindings:function(){return y(L(this),"clearBindings()"),r.sqlite3_clear_bindings(this.pointer),this._mayGet=!1,this},reset:function(f){y(this,"reset()"),f&&this.clearBindings();const m=r.sqlite3_reset(L(this).pointer);return this._mayGet=!1,R(this.db,m),this},bind:function(){L(this);let f,m;switch(arguments.length){case 1:f=1,m=arguments[0];break;case 2:f=arguments[0],m=arguments[1];break;default:n("Invalid bind() arguments.")}return m===void 0?this:(this.parameterCount||n("This statement has no bindable parameters."),this._mayGet=!1,m===null?B(this,f,D.null,m):Array.isArray(m)?(arguments.length!==1&&n("When binding an array, an index argument is not permitted."),m.forEach((l,_)=>B(this,_+1,c(l),l)),this):(m instanceof ArrayBuffer&&(m=new Uint8Array(m)),typeof m=="object"&&!o.isBindableTypedArray(m)?(arguments.length!==1&&n("When binding an object, an index argument is not permitted."),Object.keys(m).forEach(l=>B(this,l,c(m[l]),m[l])),this):B(this,f,c(m),m)))},bindAsBlob:function(f,m){L(this),arguments.length===1&&(m=f,f=1);const l=c(m);return D.string!==l&&D.blob!==l&&D.null!==l&&n("Invalid value type for bindAsBlob()"),B(this,f,D.blob,m)},step:function(){y(this,"step()");const f=r.sqlite3_step(L(this).pointer);switch(f){case r.SQLITE_DONE:return this._mayGet=!1;case r.SQLITE_ROW:return this._mayGet=!0;default:this._mayGet=!1,t.config.warn("sqlite3_step() rc=",f,r.sqlite3_js_rc_str(f),"SQL =",r.sqlite3_sql(this.pointer)),A.checkRc(this.db.pointer,f)}},stepReset:function(){return this.step(),this.reset()},stepFinalize:function(){try{const f=this.step();return this.reset(),f}finally{try{this.finalize()}catch{}}},get:function(f,m){if(L(this)._mayGet||n("Stmt.step() has not (recently) returned true."),Array.isArray(f)){let l=0;const _=this.columnCount;for(;l<_;)f[l]=this.get(l++);return f}else if(f&&typeof f=="object"){let l=0;const _=this.columnCount;for(;l<_;)f[r.sqlite3_column_name(this.pointer,l)]=this.get(l++);return f}switch(x(this,f),m===void 0?r.sqlite3_column_type(this.pointer,f):m){case r.SQLITE_NULL:return null;case r.SQLITE_INTEGER:if(s.bigIntEnabled){const l=r.sqlite3_column_int64(this.pointer,f);return l>=Number.MIN_SAFE_INTEGER&&l<=Number.MAX_SAFE_INTEGER?Number(l).valueOf():l}else{const l=r.sqlite3_column_double(this.pointer,f);return(l>Number.MAX_SAFE_INTEGER||ln("The pointer property is read-only.")};Object.defineProperty(q.prototype,"pointer",f),Object.defineProperty(A.prototype,"pointer",f)}if(Object.defineProperty(q.prototype,"columnCount",{enumerable:!1,get:function(){return r.sqlite3_column_count(this.pointer)},set:()=>n("The columnCount property is read-only.")}),t.oo1={DB:A,Stmt:q},o.isUIThread()){t.oo1.JsStorageDb=function(m="session"){const l=T.normalizeArgs(...arguments);m=l.filename,m!=="session"&&m!=="local"&&n("JsStorageDb db name must be one of 'session' or 'local'."),l.vfs="kvvfs",T.call(this,l)};const f=t.oo1.JsStorageDb;f.prototype=Object.create(A.prototype),f.clearStorage=r.sqlite3_js_kvvfs_clear,f.prototype.clearStorage=function(){return f.clearStorage(w(this).filename)},f.storageSize=r.sqlite3_js_kvvfs_size,f.prototype.storageSize=function(){return f.storageSize(w(this).filename)}}}),globalThis.sqlite3ApiBootstrap.initializers.push(function(t){const n=t.util;t.initWorker1API=(function(){const r=(...T)=>{throw new Error(T.join(" "))};globalThis.WorkerGlobalScope instanceof Function||r("initWorker1API() must be run from a Worker thread.");const s=this.sqlite3||r("Missing this.sqlite3 object."),o=s.oo1.DB,p=function(T){let A=g.idMap.get(T);return A||(A="db#"+ ++g.idSeq+"@"+T.pointer,g.idMap.set(T,A),A)},g={dbList:[],idSeq:0,idMap:new WeakMap,xfer:[],open:function(T){const A=new o(T);return this.dbs[p(A)]=A,this.dbList.indexOf(A)<0&&this.dbList.push(A),A},close:function(T,A){if(T){delete this.dbs[p(T)];const D=T.filename,q=n.sqlite3__wasm_db_vfs(T.pointer,0);T.close();const w=this.dbList.indexOf(T);w>=0&&this.dbList.splice(w,1),A&&D&&q&&n.sqlite3__wasm_vfs_unlink(q,D)}},post:function(T,A){A&&A.length?(globalThis.postMessage(T,Array.from(A)),A.length=0):globalThis.postMessage(T)},dbs:Object.create(null),getDb:function(T,A=!0){return this.dbs[T]||(A?r("Unknown (or closed) DB ID:",T):void 0)}},O=function(T=g.dbList[0]){return T&&T.pointer?T:r("DB is not opened.")},R=function(T,A=!0){const D=g.getDb(T.dbId,!1)||g.dbList[0];return A?O(D):D},z=function(){return g.dbList[0]&&p(g.dbList[0])},W={open:function(T){const A=Object.create(null),D=T.args||Object.create(null);D.simulateError&&r("Throwing because of simulateError flag.");const q=Object.create(null);A.vfs=D.vfs,A.filename=D.filename||"";const w=g.open(A);return q.filename=w.filename,q.persistent=!!s.capi.sqlite3_js_db_uses_vfs(w.pointer,"opfs"),q.dbId=p(w),q.vfs=w.dbVfsName(),q},close:function(T){const A=R(T,!1),D={filename:A&&A.filename};if(A){const q=T.args&&typeof T.args=="object"?!!T.args.unlink:!1;g.close(A,q)}return D},exec:function(T){const A=typeof T.args=="string"?{sql:T.args}:T.args||Object.create(null);A.rowMode==="stmt"?r("Invalid rowMode for 'exec': stmt mode","does not work in the Worker API."):A.sql||r("'exec' requires input SQL.");const D=R(T);(A.callback||Array.isArray(A.resultRows))&&(D._blobXfer=g.xfer);const q=A.callback;let w=0;const x=!!A.columnNames;typeof q=="string"&&(x||(A.columnNames=[]),A.callback=function(N,P){g.post({type:q,columnNames:A.columnNames,rowNumber:++w,row:N},g.xfer)});try{const N=A.countChanges?D.changes(!0,A.countChanges===64):void 0;D.exec(A),N!==void 0&&(A.changeCount=D.changes(!0,A.countChanges===64)-N);const P=A.lastInsertRowId?s.capi.sqlite3_last_insert_rowid(D):void 0;P!==void 0&&(A.lastInsertRowId=P),A.callback instanceof Function&&(A.callback=q,g.post({type:q,columnNames:A.columnNames,rowNumber:null,row:void 0}))}finally{delete D._blobXfer,A.callback&&(A.callback=q)}return A},"config-get":function(){const T=Object.create(null),A=s.config;return["bigIntEnabled"].forEach(function(D){Object.getOwnPropertyDescriptor(A,D)&&(T[D]=A[D])}),T.version=s.version,T.vfsList=s.capi.sqlite3_js_vfs_list(),T},export:function(T){const A=R(T),D={byteArray:s.capi.sqlite3_js_db_export(A.pointer),filename:A.filename,mimetype:"application/x-sqlite3"};return g.xfer.push(D.byteArray.buffer),D},toss:function(T){r("Testing worker exception")}};globalThis.onmessage=async function(T){T=T.data;let A,D=T.dbId,q=T.type;const w=performance.now();try{W.hasOwnProperty(q)&&W[q]instanceof Function?A=await W[q](T):r("Unknown db worker message type:",T.type)}catch(x){q="error",A={operation:T.type,message:x.message,errorClass:x.name,input:T},x.stack&&(A.stack=typeof x.stack=="string"?x.stack.split(/\n\s*/):x.stack)}D||(D=A.dbId||z()),g.post({type:q,dbId:D,messageId:T.messageId,workerReceivedTime:w,workerRespondTime:performance.now(),departureTime:T.departureTime,result:A},g.xfer)},globalThis.postMessage({type:"sqlite3-api",result:"worker1-ready"})}).bind({sqlite3:t})}),globalThis.sqlite3ApiBootstrap.initializers.push(function(t){const n=t.wasm,r=t.capi,s=t.util.toss3,o=Object.create(null);t.vfs=o,r.sqlite3_vfs.prototype.registerVfs=function(p=!1){this instanceof t.capi.sqlite3_vfs||s("Expecting a sqlite3_vfs-type argument.");const g=r.sqlite3_vfs_register(this,p?1:0);return g&&s("sqlite3_vfs_register(",this,") failed with rc",g),this.pointer!==r.sqlite3_vfs_find(this.$zName)&&s("BUG: sqlite3_vfs_find(vfs.$zName) failed for just-installed VFS",this),this},o.installVfs=function(p){let g=0;const O=["io","vfs"];for(const R of O){const z=p[R];z&&(++g,z.struct.installMethods(z.methods,!!z.applyArgcCheck),R==="vfs"&&(!z.struct.$zName&&typeof z.name=="string"&&z.struct.addOnDispose(z.struct.$zName=n.allocCString(z.name)),z.struct.registerVfs(!!z.asDefault)))}return g||s("Misuse: installVfs() options object requires at least","one of:",O),this}}),globalThis.sqlite3ApiBootstrap.initializers.push(function(t){if(!t.wasm.exports.sqlite3_declare_vtab)return;const n=t.wasm,r=t.capi,s=t.util.toss3,o=Object.create(null);t.vtab=o;const p=r.sqlite3_index_info;p.prototype.nthConstraint=function(R,z=!1){if(R<0||R>=this.$nConstraint)return!1;const W=this.$aConstraint+p.sqlite3_index_constraint.structInfo.sizeof*R;return z?W:new p.sqlite3_index_constraint(W)},p.prototype.nthConstraintUsage=function(R,z=!1){if(R<0||R>=this.$nConstraint)return!1;const W=this.$aConstraintUsage+p.sqlite3_index_constraint_usage.structInfo.sizeof*R;return z?W:new p.sqlite3_index_constraint_usage(W)},p.prototype.nthOrderBy=function(R,z=!1){if(R<0||R>=this.$nOrderBy)return!1;const W=this.$aOrderBy+p.sqlite3_index_orderby.structInfo.sizeof*R;return z?W:new p.sqlite3_index_orderby(W)};const g=function(R,z){return(function(W,T=!1){if(arguments.length===0&&(W=new z),W instanceof z)return this.set(W.pointer,W),W;n.isPtr(W)||t.SQLite3Error.toss("Invalid argument to",R+"()");let A=this.get(W);return T&&this.delete(W),A}).bind(new Map)},O=function(R,z){const W=g(R,z);return Object.assign(Object.create(null),{StructType:z,create:T=>{const A=W();return n.pokePtr(T,A.pointer),A},get:T=>W(T),unget:T=>W(T,!0),dispose:T=>{const A=W(T,!0);A&&A.dispose()}})};o.xVtab=O("xVtab",r.sqlite3_vtab),o.xCursor=O("xCursor",r.sqlite3_vtab_cursor),o.xIndexInfo=R=>new r.sqlite3_index_info(R),o.xError=function R(z,W,T){if(R.errorReporter instanceof Function)try{R.errorReporter("sqlite3_module::"+z+"(): "+W.message)}catch{}let A;return W instanceof t.WasmAllocError?A=r.SQLITE_NOMEM:arguments.length>2?A=T:W instanceof t.SQLite3Error&&(A=W.resultCode),A||r.SQLITE_ERROR},o.xError.errorReporter=console.error.bind(console),o.xRowid=(R,z)=>n.poke(R,z,"i64"),o.setupModule=function(R){let z=!1;const W=this instanceof r.sqlite3_module?this:R.struct||(z=new r.sqlite3_module);try{const T=R.methods||s("Missing 'methods' object.");for(const A of Object.entries({xConnect:"xCreate",xDisconnect:"xDestroy"})){const D=A[0],q=A[1];T[D]===!0?T[D]=T[q]:T[q]===!0&&(T[q]=T[D])}if(R.catchExceptions){const A=function(w,x){return["xConnect","xCreate"].indexOf(w)>=0?function(N,P,S,L,$,c){try{return x(...arguments)||0}catch(d){return d instanceof t.WasmAllocError||(n.dealloc(n.peekPtr(c)),n.pokePtr(c,n.allocCString(d.message))),o.xError(w,d)}}:function(...N){try{return x(...N)||0}catch(P){return o.xError(w,P)}}},D=["xCreate","xConnect","xBestIndex","xDisconnect","xDestroy","xOpen","xClose","xFilter","xNext","xEof","xColumn","xRowid","xUpdate","xBegin","xSync","xCommit","xRollback","xFindFunction","xRename","xSavepoint","xRelease","xRollbackTo","xShadowName"],q=Object.create(null);for(const w of D){const x=T[w];if(x instanceof Function)w==="xConnect"&&T.xCreate===x?q[w]=T.xCreate:w==="xCreate"&&T.xConnect===x?q[w]=T.xConnect:q[w]=A(w,x);else continue}W.installMethods(q,!1)}else W.installMethods(T,!!R.applyArgcCheck);if(W.$iVersion===0){let A;typeof R.iVersion=="number"?A=R.iVersion:W.$xShadowName?A=3:W.$xSavePoint||W.$xRelease||W.$xRollbackTo?A=2:A=1,W.$iVersion=A}}catch(T){throw z&&z.dispose(),T}return W},r.sqlite3_module.prototype.setupModule=function(R){return o.setupModule.call(this,R)}}),globalThis.sqlite3ApiBootstrap.initializers.push(function(t){const n=function r(s){if(!globalThis.SharedArrayBuffer||!globalThis.Atomics)return Promise.reject(new Error("Cannot install OPFS: Missing SharedArrayBuffer and/or Atomics. The server must emit the COOP/COEP response headers to enable those. See https://sqlite.org/wasm/doc/trunk/persistence.md#coop-coep"));if(typeof WorkerGlobalScope>"u")return Promise.reject(new Error("The OPFS sqlite3_vfs cannot run in the main thread because it requires Atomics.wait()."));if(!globalThis.FileSystemHandle||!globalThis.FileSystemDirectoryHandle||!globalThis.FileSystemFileHandle||!globalThis.FileSystemFileHandle.prototype.createSyncAccessHandle||!navigator?.storage?.getDirectory)return Promise.reject(new Error("Missing required OPFS APIs."));(!s||typeof s!="object")&&(s=Object.create(null));const o=new URL(globalThis.location.href).searchParams;return o.has("opfs-disable")?Promise.resolve(t):(s.verbose===void 0&&(s.verbose=o.has("opfs-verbose")?+o.get("opfs-verbose")||2:1),s.sanityChecks===void 0&&(s.sanityChecks=o.has("opfs-sanity-check")),s.proxyUri===void 0&&(s.proxyUri=r.defaultProxyUri),typeof s.proxyUri=="function"&&(s.proxyUri=s.proxyUri()),new Promise(function(g,O){const R=[t.config.error,t.config.warn,t.config.log],z=(E,...C)=>{s.verbose>E&&R[E]("OPFS syncer:",...C)},W=(...E)=>z(2,...E),T=(...E)=>z(1,...E),A=(...E)=>z(0,...E),D=t.util.toss,q=t.capi,w=t.util,x=t.wasm,N=q.sqlite3_vfs,P=q.sqlite3_file,S=q.sqlite3_io_methods,L=Object.create(null),$=()=>globalThis.FileSystemHandle&&globalThis.FileSystemDirectoryHandle&&globalThis.FileSystemFileHandle&&globalThis.FileSystemFileHandle.prototype.createSyncAccessHandle&&navigator?.storage?.getDirectory;L.metrics={dump:function(){let E,C=0,M=0,J=0;for(E in u.opIds){const G=I[E];C+=G.count,M+=G.time,J+=G.wait,G.avgTime=G.count&&G.time?G.time/G.count:0,G.avgWait=G.count&&G.wait?G.wait/G.count:0}t.config.log(globalThis.location.href,"metrics for",globalThis.location.href,":",I,` +Total of`,C,"op(s) for",M,"ms (incl. "+J+" ms of waiting on the async side)"),t.config.log("Serialization metrics:",I.s11n),m.postMessage({type:"opfs-async-metrics"})},reset:function(){let E;const C=J=>J.count=J.time=J.wait=0;for(E in u.opIds)C(I[E]=Object.create(null));let M=I.s11n=Object.create(null);M=M.serialize=Object.create(null),M.count=M.time=0,M=I.s11n.deserialize=Object.create(null),M.count=M.time=0}};const c=new S,d=new N().addOnDispose(()=>c.dispose());let y;const B=E=>(y=!0,d.dispose(),O(E)),f=()=>(y=!1,g(t)),m=new Worker(new URL("/assets/sqlite3-opfs-async-proxy-B_ImRJXp.js",import.meta.url));setTimeout(()=>{y===void 0&&B(new Error("Timeout while waiting for OPFS async proxy worker."))},4e3),m._originalOnError=m.onerror,m.onerror=function(E){A("Error initializing OPFS asyncer:",E),B(new Error("Loading OPFS async Worker failed for unknown reasons."))};const l=q.sqlite3_vfs_find(null),_=l?new N(l):null;c.$iVersion=1,d.$iVersion=2,d.$szOsFile=q.sqlite3_file.structInfo.sizeof,d.$mxPathname=1024,d.$zName=x.allocCString("opfs"),d.$xDlOpen=d.$xDlError=d.$xDlSym=d.$xDlClose=null,d.addOnDispose("$zName",d.$zName,"cleanup default VFS wrapper",()=>_?_.dispose():null);const u=Object.create(null);u.verbose=s.verbose,u.littleEndian=(()=>{const E=new ArrayBuffer(2);return new DataView(E).setInt16(0,256,!0),new Int16Array(E)[0]===256})(),u.asyncIdleWaitTime=150,u.asyncS11nExceptions=1,u.fileBufferSize=1024*64,u.sabS11nOffset=u.fileBufferSize,u.sabS11nSize=d.$mxPathname*2,u.sabIO=new SharedArrayBuffer(u.fileBufferSize+u.sabS11nSize),u.opIds=Object.create(null);const I=Object.create(null);{let E=0;u.opIds.whichOp=E++,u.opIds.rc=E++,u.opIds.xAccess=E++,u.opIds.xClose=E++,u.opIds.xDelete=E++,u.opIds.xDeleteNoWait=E++,u.opIds.xFileSize=E++,u.opIds.xLock=E++,u.opIds.xOpen=E++,u.opIds.xRead=E++,u.opIds.xSleep=E++,u.opIds.xSync=E++,u.opIds.xTruncate=E++,u.opIds.xUnlock=E++,u.opIds.xWrite=E++,u.opIds.mkdir=E++,u.opIds["opfs-async-metrics"]=E++,u.opIds["opfs-async-shutdown"]=E++,u.opIds.retry=E++,u.sabOP=new SharedArrayBuffer(E*4),L.metrics.reset()}u.sq3Codes=Object.create(null),["SQLITE_ACCESS_EXISTS","SQLITE_ACCESS_READWRITE","SQLITE_BUSY","SQLITE_CANTOPEN","SQLITE_ERROR","SQLITE_IOERR","SQLITE_IOERR_ACCESS","SQLITE_IOERR_CLOSE","SQLITE_IOERR_DELETE","SQLITE_IOERR_FSYNC","SQLITE_IOERR_LOCK","SQLITE_IOERR_READ","SQLITE_IOERR_SHORT_READ","SQLITE_IOERR_TRUNCATE","SQLITE_IOERR_UNLOCK","SQLITE_IOERR_WRITE","SQLITE_LOCK_EXCLUSIVE","SQLITE_LOCK_NONE","SQLITE_LOCK_PENDING","SQLITE_LOCK_RESERVED","SQLITE_LOCK_SHARED","SQLITE_LOCKED","SQLITE_MISUSE","SQLITE_NOTFOUND","SQLITE_OPEN_CREATE","SQLITE_OPEN_DELETEONCLOSE","SQLITE_OPEN_MAIN_DB","SQLITE_OPEN_READONLY"].forEach(E=>{(u.sq3Codes[E]=q[E])===void 0&&D("Maintenance required: not found:",E)}),u.opfsFlags=Object.assign(Object.create(null),{OPFS_UNLOCK_ASAP:1,OPFS_UNLINK_BEFORE_OPEN:2,defaultUnlockAsap:!1});const U=(E,...C)=>{const M=u.opIds[E]||D("Invalid op ID:",E);u.s11n.serialize(...C),Atomics.store(u.sabOPView,u.opIds.rc,-1),Atomics.store(u.sabOPView,u.opIds.whichOp,M),Atomics.notify(u.sabOPView,u.opIds.whichOp);const J=performance.now();for(;Atomics.wait(u.sabOPView,u.opIds.rc,-1)!=="not-equal";);const G=Atomics.load(u.sabOPView,u.opIds.rc);if(I[E].wait+=performance.now()-J,G&&u.asyncS11nExceptions){const te=u.s11n.deserialize();te&&A(E+"() async error:",...te)}return G};L.debug={asyncShutdown:()=>{T("Shutting down OPFS async listener. The OPFS VFS will no longer work."),U("opfs-async-shutdown")},asyncRestart:()=>{T("Attempting to restart OPFS VFS async listener. Might work, might not."),m.postMessage({type:"opfs-async-restart"})}};const ee=()=>{if(u.s11n)return u.s11n;const E=new TextDecoder,C=new TextEncoder("utf-8"),M=new Uint8Array(u.sabIO,u.sabS11nOffset,u.sabS11nSize),J=new DataView(u.sabIO,u.sabS11nOffset,u.sabS11nSize);u.s11n=Object.create(null);const G=Object.create(null);G.number={id:1,size:8,getter:"getFloat64",setter:"setFloat64"},G.bigint={id:2,size:8,getter:"getBigInt64",setter:"setBigInt64"},G.boolean={id:3,size:4,getter:"getInt32",setter:"setInt32"},G.string={id:4};const te=Y=>G[typeof Y]||D("Maintenance required: this value type cannot be serialized.",Y),oe=Y=>{switch(Y){case G.number.id:return G.number;case G.bigint.id:return G.bigint;case G.boolean.id:return G.boolean;case G.string.id:return G.string;default:D("Invalid type ID:",Y)}};return u.s11n.deserialize=function(Y=!1){++I.s11n.deserialize.count;const pe=performance.now(),F=M[0],V=F?[]:null;if(F){const K=[];let X=1,ae,de,ue;for(ae=0;ae{se.start=performance.now(),se.op=E,++I[E].count},b=()=>I[se.op].time+=performance.now()-se.start,k={xCheckReservedLock:function(E,C){return x.poke(C,0,"i32"),0},xClose:function(E){j("xClose");let C=0;const M=re[E];return M&&(delete re[E],C=U("xClose",E),M.sq3File&&M.sq3File.dispose()),b(),C},xDeviceCharacteristics:function(E){return q.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN},xFileControl:function(E,C,M){return q.SQLITE_NOTFOUND},xFileSize:function(E,C){j("xFileSize");let M=U("xFileSize",E);if(M==0)try{const J=u.s11n.deserialize()[0];x.poke(C,J,"i64")}catch(J){A("Unexpected error reading xFileSize() result:",J),M=u.sq3Codes.SQLITE_IOERR}return b(),M},xLock:function(E,C){j("xLock");const M=re[E];let J=0;return M.lockType?M.lockType=C:(J=U("xLock",E,C),J===0&&(M.lockType=C)),b(),J},xRead:function(E,C,M,J){j("xRead");const G=re[E];let te;try{te=U("xRead",E,M,Number(J)),(te===0||q.SQLITE_IOERR_SHORT_READ===te)&&x.heap8u().set(G.sabView.subarray(0,M),C)}catch(oe){A("xRead(",arguments,") failed:",oe,G),te=q.SQLITE_IOERR_READ}return b(),te},xSync:function(E,C){j("xSync"),++I.xSync.count;const M=U("xSync",E,C);return b(),M},xTruncate:function(E,C){j("xTruncate");const M=U("xTruncate",E,Number(C));return b(),M},xUnlock:function(E,C){j("xUnlock");const M=re[E];let J=0;return q.SQLITE_LOCK_NONE===C&&M.lockType&&(J=U("xUnlock",E,C)),J===0&&(M.lockType=C),b(),J},xWrite:function(E,C,M,J){j("xWrite");const G=re[E];let te;try{G.sabView.set(x.heap8u().subarray(C,C+M)),te=U("xWrite",E,M,Number(J))}catch(oe){A("xWrite(",arguments,") failed:",oe,G),te=q.SQLITE_IOERR_WRITE}return b(),te}},Q={xAccess:function(E,C,M,J){j("xAccess");const G=U("xAccess",x.cstrToJs(C));return x.poke(J,G?0:1,"i32"),b(),0},xCurrentTime:function(E,C){return x.poke(C,24405875e-1+new Date().getTime()/864e5,"double"),0},xCurrentTimeInt64:function(E,C){return x.poke(C,24405875e-1*864e5+new Date().getTime(),"i64"),0},xDelete:function(E,C,M){j("xDelete");const J=U("xDelete",x.cstrToJs(C),M,!1);return b(),J},xFullPathname:function(E,C,M,J){return x.cstrncpy(J,C,M)!!J):M},L.getDirForFilename=async function(C,M=!1){const J=L.getResolvedPath(C,!0),G=J.pop();let te=L.rootDirectory;for(const oe of J)oe&&(te=await te.getDirectoryHandle(oe,{create:!!M}));return[te,G]},L.mkdir=async function(E){try{return await L.getDirForFilename(E+"/filepart",!0),!0}catch{return!1}},L.entryExists=async function(E){try{const[C,M]=await L.getDirForFilename(E);return await C.getFileHandle(M),!0}catch{return!1}},L.randomFilename=ne,L.treeList=async function(){const E=async function M(J,G){G.name=J.name,G.dirs=[],G.files=[];for await(const te of J.values())if(te.kind==="directory"){const oe=Object.create(null);G.dirs.push(oe),await M(te,oe)}else G.files.push(te.name)},C=Object.create(null);return await E(L.rootDirectory,C),C},L.rmfr=async function(){const E=L.rootDirectory,C={recurse:!0};for await(const M of E.values())E.removeEntry(M.name,C)},L.unlink=async function(E,C=!1,M=!1){try{const[J,G]=await L.getDirForFilename(E,!1);return await J.removeEntry(G,{recursive:C}),!0}catch(J){if(M)throw new Error("unlink(",arguments[0],") failed: "+J.message,{cause:J});return!1}},L.traverse=async function(E){const C={recursive:!0,directory:L.rootDirectory};typeof E=="function"&&(E={callback:E}),E=Object.assign(C,E||{}),async function J(G,te){for await(const oe of G.values()){if(E.callback(oe,G,te)===!1)return!1;if(E.recursive&&oe.kind==="directory"&&await J(oe,te+1)===!1)break}}(E.directory,0)};const H=async function(E,C){const[M,J]=await L.getDirForFilename(E,!0);let te=await(await M.getFileHandle(J,{create:!0})).createSyncAccessHandle(),oe=0,Y,pe=!1;try{for(te.truncate(0);(Y=await C())!==void 0;)Y instanceof ArrayBuffer&&(Y=new Uint8Array(Y)),oe===0&&Y.byteLength>=15&&(w.affirmDbHeader(Y),pe=!0),te.write(Y,{at:oe}),oe+=Y.byteLength;if((oe<512||oe%512!==0)&&D("Input size",oe,"is not correct for an SQLite database."),!pe){const F=new Uint8Array(20);te.read(F,{at:0}),w.affirmDbHeader(F)}return te.write(new Uint8Array([1,1]),{at:18}),oe}catch(F){throw await te.close(),te=void 0,await M.removeEntry(J).catch(()=>{}),F}finally{te&&await te.close()}};if(L.importDb=async function(E,C){if(C instanceof Function)return H(E,C);C instanceof ArrayBuffer&&(C=new Uint8Array(C)),w.affirmIsDb(C);const M=C.byteLength,[J,G]=await L.getDirForFilename(E,!0);let te,oe=0;try{return te=await(await J.getFileHandle(G,{create:!0})).createSyncAccessHandle(),te.truncate(0),oe=te.write(C,{at:0}),oe!=M&&D("Expected to write "+M+" bytes but wrote "+oe+"."),te.write(new Uint8Array([1,1]),{at:18}),oe}catch(Y){throw te&&(await te.close(),te=void 0),await J.removeEntry(G).catch(()=>{}),Y}finally{te&&await te.close()}},t.oo1){const E=function(...C){const M=t.oo1.DB.dbCtorHelper.normalizeArgs(...C);M.vfs=d.$zName,t.oo1.DB.dbCtorHelper.call(this,M)};E.prototype=Object.create(t.oo1.DB.prototype),t.oo1.OpfsDb=E,E.importDb=L.importDb,t.oo1.DB.dbCtorHelper.setVfsPostOpenCallback(d.pointer,function(C,M){M.capi.sqlite3_busy_timeout(C,1e4)})}const Z=function(){const E=x.scopedAllocPush(),C=new P;try{const M=C.pointer,J=q.SQLITE_OPEN_CREATE|q.SQLITE_OPEN_READWRITE|q.SQLITE_OPEN_MAIN_DB,G=x.scopedAlloc(8),te="/sanity/check/file"+ne(8),oe=x.scopedAllocCString(te);let Y;if(u.s11n.serialize("This is ä string."),Y=u.s11n.deserialize(),W("deserialize() says:",Y),Y[0]!=="This is ä string."&&D("String d13n error."),Q.xAccess(d.pointer,oe,0,G),Y=x.peek(G,"i32"),W("xAccess(",te,") exists ?=",Y),Y=Q.xOpen(d.pointer,oe,M,J,G),W("open rc =",Y,"state.sabOPView[xOpen] =",u.sabOPView[u.opIds.xOpen]),Y!==0){A("open failed with code",Y);return}Q.xAccess(d.pointer,oe,0,G),Y=x.peek(G,"i32"),Y||D("xAccess() failed to detect file."),Y=k.xSync(C.pointer,0),Y&&D("sync failed w/ rc",Y),Y=k.xTruncate(C.pointer,1024),Y&&D("truncate failed w/ rc",Y),x.poke(G,0,"i64"),Y=k.xFileSize(C.pointer,G),Y&&D("xFileSize failed w/ rc",Y),W("xFileSize says:",x.peek(G,"i64")),Y=k.xWrite(C.pointer,oe,10,1),Y&&D("xWrite() failed!");const pe=x.scopedAlloc(16);Y=k.xRead(C.pointer,pe,6,2),x.poke(pe+6,0);let F=x.cstrToJs(pe);W("xRead() got:",F),F!=="sanity"&&D("Unexpected xRead() value."),Q.xSleep&&(W("xSleep()ing before close()ing..."),Q.xSleep(d.pointer,2e3),W("waking up from xSleep()")),Y=k.xClose(M),W("xClose rc =",Y,"sabOPView =",u.sabOPView),W("Deleting file:",te),Q.xDelete(d.pointer,oe,4660),Q.xAccess(d.pointer,oe,0,G),Y=x.peek(G,"i32"),Y&&D("Expecting 0 from xAccess(",te,") after xDelete()."),T("End of OPFS sanity checks.")}finally{C.dispose(),x.scopedAllocPop(E)}};m.onmessage=function({data:E}){switch(E.type){case"opfs-unavailable":B(new Error(E.payload.join(" ")));break;case"opfs-async-loaded":m.postMessage({type:"opfs-async-init",args:u});break;case"opfs-async-inited":{if(y===!0)break;try{t.vfs.installVfs({io:{struct:c,methods:k},vfs:{struct:d,methods:Q}}),u.sabOPView=new Int32Array(u.sabOP),u.sabFileBufView=new Uint8Array(u.sabIO,0,u.fileBufferSize),u.sabS11nView=new Uint8Array(u.sabIO,u.sabS11nOffset,u.sabS11nSize),ee(),s.sanityChecks&&(T("Running sanity checks because of opfs-sanity-check URL arg..."),Z()),$()?navigator.storage.getDirectory().then(C=>{m.onerror=m._originalOnError,delete m._originalOnError,t.opfs=L,L.rootDirectory=C,W("End of OPFS sqlite3_vfs setup.",d),f()}).catch(B):f()}catch(C){A(C),B(C)}break}default:{const C="Unexpected message from the OPFS async worker: "+JSON.stringify(E);A(C),B(new Error(C));break}}}}))};n.defaultProxyUri="sqlite3-opfs-async-proxy.js",globalThis.sqlite3ApiBootstrap.initializersAsync.push(async r=>{try{let s=n.defaultProxyUri;return r.scriptInfo.sqlite3Dir&&(n.defaultProxyUri=r.scriptInfo.sqlite3Dir+s),n().catch(o=>{r.config.warn("Ignoring inability to install OPFS sqlite3_vfs:",o.message)})}catch(s){return r.config.error("installOpfsVfs() exception:",s),Promise.reject(s)}})}),globalThis.sqlite3ApiBootstrap.initializers.push(function(t){const n=t.util.toss,r=t.util.toss3,s=Object.create(null),o=t.capi,p=t.util,g=t.wasm,O=4096,R=512,z=4,W=8,T=R+z,A=R,D=T,q=O,w=o.SQLITE_OPEN_MAIN_DB|o.SQLITE_OPEN_MAIN_JOURNAL|o.SQLITE_OPEN_SUPER_JOURNAL|o.SQLITE_OPEN_WAL,x=o.SQLITE_OPEN_MEMORY,N=".opaque",P=()=>Math.random().toString(36).slice(2),S=new TextDecoder,L=new TextEncoder,$=Object.assign(Object.create(null),{name:"opfs-sahpool",directory:void 0,initialCapacity:6,clearOnInit:!1,verbosity:2,forceReinitIfPreviouslyFailed:!1}),c=[t.config.error,t.config.warn,t.config.log];t.config.log;const d=t.config.warn;t.config.error;const y=new Map,B=j=>y.get(j),f=(j,b)=>{b?y.set(j,b):y.delete(j)},m=new Map,l=j=>m.get(j),_=(j,b)=>{b?m.set(j,b):m.delete(j)},u={xCheckReservedLock:function(j,b){const k=l(j);return k.log("xCheckReservedLock"),k.storeErr(),g.poke32(b,1),0},xClose:function(j){const b=l(j);b.storeErr();const k=b.getOFileForS3File(j);if(k)try{b.log(`xClose ${k.path}`),b.mapS3FileToOFile(j,!1),k.sah.flush(),k.flags&o.SQLITE_OPEN_DELETEONCLOSE&&b.deletePath(k.path)}catch(Q){return b.storeErr(Q,o.SQLITE_IOERR)}return 0},xDeviceCharacteristics:function(j){return o.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN},xFileControl:function(j,b,k){return o.SQLITE_NOTFOUND},xFileSize:function(j,b){const k=l(j);k.log("xFileSize");const H=k.getOFileForS3File(j).sah.getSize()-q;return g.poke64(b,BigInt(H)),0},xLock:function(j,b){const k=l(j);k.log(`xLock ${b}`),k.storeErr();const Q=k.getOFileForS3File(j);return Q.lockType=b,0},xRead:function(j,b,k,Q){const H=l(j);H.storeErr();const Z=H.getOFileForS3File(j);H.log(`xRead ${Z.path} ${k} @ ${Q}`);try{const E=Z.sah.read(g.heap8u().subarray(b,b+k),{at:q+Number(Q)});return Eb&&g.poke8(k+b-1,0)}catch{return o.SQLITE_NOMEM}finally{g.scopedAllocPop(Z)}}return H?H.sqlite3Rc||o.SQLITE_IOERR:0},xOpen:function(b,k,Q,H,Z){const E=B(b);try{H&=~x,E.log(`xOpen ${g.cstrToJs(k)} ${H}`);const C=k&&g.peek8(k)?E.getPath(k):P();let M=E.getSAHForPath(C);!M&&H&o.SQLITE_OPEN_CREATE&&(E.getFileCount()f(b.pointer,0)),Q&&(b.$xRandomness=Q.$xRandomness,b.$xSleep=Q.$xSleep,Q.dispose()),!b.$xRandomness&&!U.xRandomness&&(U.xRandomness=function(H,Z,E){const C=g.heap8u();let M=0;for(;M0),t.vfs.installVfs({vfs:{struct:b,methods:U}}),b};class ne{vfsDir;#e;#o;#a;#r=new Map;#t=new Map;#s=new Set;#l=new Map;#n=new Uint8Array(T);#c;#i;#u;constructor(b=Object.create(null)){this.#u=b.verbosity??$.verbosity,this.vfsName=b.name||$.name,this.#i=ee(this.vfsName),f(this.#i.pointer,this),this.vfsDir=b.directory||"."+this.vfsName,this.#c=new DataView(this.#n.buffer,this.#n.byteOffset),this.isReady=this.reset(!!(b.clearOnInit??$.clearOnInit)).then(()=>{if(this.$error)throw this.$error;return this.getCapacity()?Promise.resolve(void 0):this.addCapacity(b.initialCapacity||$.initialCapacity)})}#_(b,...k){this.#u>b&&c[b](this.vfsName+":",...k)}log(...b){this.#_(2,...b)}warn(...b){this.#_(1,...b)}error(...b){this.#_(0,...b)}getVfs(){return this.#i}getCapacity(){return this.#r.size}getFileCount(){return this.#t.size}getFileNames(){const b=[];for(const k of this.#t.keys())b.push(k);return b}async addCapacity(b){for(let k=0;k{try{const Z=await H.createSyncAccessHandle();if(this.#r.set(Z,Q),b)Z.truncate(q),this.setAssociatedPath(Z,"",0);else{const E=this.getAssociatedPath(Z);E?this.#t.set(E,Z):this.#s.add(Z)}}catch(Z){throw this.storeErr(Z),this.releaseAccessHandles(),Z}}))}getAssociatedPath(b){b.read(this.#n,{at:0});const k=this.#c.getUint32(A);if(this.#n[0]&&(k&o.SQLITE_OPEN_DELETEONCLOSE||(k&w)===0))return d(`Removing file with unexpected flags ${k.toString(16)}`,this.#n),this.setAssociatedPath(b,"",0),"";const Q=new Uint32Array(W/4);b.read(Q,{at:D});const H=this.computeDigest(this.#n,k);if(Q.every((Z,E)=>Z===H[E])){const Z=this.#n.findIndex(E=>E===0);return Z===0&&b.truncate(q),Z?S.decode(this.#n.subarray(0,Z)):""}else return d("Disassociating file with bad digest."),this.setAssociatedPath(b,"",0),""}setAssociatedPath(b,k,Q){const H=L.encodeInto(k,this.#n);R<=H.written+1&&n("Path too long:",k),k&&Q&&(Q|=x),this.#n.fill(0,H.written,R),this.#c.setUint32(A,Q);const Z=this.computeDigest(this.#n,Q);b.write(this.#n,{at:0}),b.write(Z,{at:D}),b.flush(),k?(this.#t.set(k,b),this.#s.delete(b)):(b.truncate(q),this.#s.add(b))}computeDigest(b,k){if(k&x){let Q=3735928559,H=1103547991;for(const Z of b)Q=Math.imul(Q^Z,2654435761),H=Math.imul(H^Z,104729);return new Uint32Array([Q>>>0,H>>>0])}else return new Uint32Array([0,0])}async reset(b){await this.isReady;let k=await navigator.storage.getDirectory(),Q;for(const H of this.vfsDir.split("/"))H&&(Q=k,k=await k.getDirectoryHandle(H,{create:!0}));return this.#e=k,this.#a=Q,this.#o=await this.#e.getDirectoryHandle(N,{create:!0}),this.releaseAccessHandles(),this.acquireAccessHandles(b)}getPath(b){return g.isPtr(b)&&(b=g.cstrToJs(b)),(b instanceof URL?b:new URL(b,"file://localhost/")).pathname}deletePath(b){const k=this.#t.get(b);return k&&(this.#t.delete(b),this.setAssociatedPath(k,"",0)),!!k}storeErr(b,k){return b&&(b.sqlite3Rc=k||o.SQLITE_IOERR,this.error(b)),this.$error=b,k}popErr(){const b=this.$error;return this.$error=void 0,b}nextAvailableSAH(){const[b]=this.#s.keys();return b}getOFileForS3File(b){return this.#l.get(b)}mapS3FileToOFile(b,k){k?(this.#l.set(b,k),_(b,this)):(this.#l.delete(b),_(b,!1))}hasFilename(b){return this.#t.has(b)}getSAHForPath(b){return this.#t.get(b)}async removeVfs(){if(!this.#i.pointer||!this.#o)return!1;o.sqlite3_vfs_unregister(this.#i.pointer),this.#i.dispose(),delete s[this.vfsName];try{this.releaseAccessHandles(),await this.#e.removeEntry(N,{recursive:!0}),this.#o=void 0,await this.#a.removeEntry(this.#e.name,{recursive:!0}),this.#e=this.#a=void 0}catch(b){t.config.error(this.vfsName,"removeVfs() failed with no recovery strategy:",b)}return!0}pauseVfs(){return this.#l.size>0&&t.SQLite3Error.toss(o.SQLITE_MISUSE,"Cannot pause VFS",this.vfsName,"because it has opened files."),this.#r.size>0&&(o.sqlite3_vfs_unregister(this.vfsName),this.releaseAccessHandles()),this}isPaused(){return this.#r.size===0}async unpauseVfs(){return this.#r.size===0?this.acquireAccessHandles(!1).then(()=>o.sqlite3_vfs_register(this.#i,0),this):this}exportFile(b){const k=this.#t.get(b)||n("File not found:",b),Q=k.getSize()-q,H=new Uint8Array(Q>0?Q:0);if(Q>0){const Z=k.read(H,{at:q});Z!=Q&&n("Expected to read "+Q+" bytes but read "+Z+".")}return H}async importDbChunked(b,k){const Q=this.#t.get(b)||this.nextAvailableSAH()||n("No available handles to import to.");Q.truncate(0);let H=0,Z,E=!1;try{for(;(Z=await k())!==void 0;)Z instanceof ArrayBuffer&&(Z=new Uint8Array(Z)),H===0&&Z.byteLength>=15&&(p.affirmDbHeader(Z),E=!0),Q.write(Z,{at:q+H}),H+=Z.byteLength;if((H<512||H%512!==0)&&n("Input size",H,"is not correct for an SQLite database."),!E){const C=new Uint8Array(20);Q.read(C,{at:0}),p.affirmDbHeader(C)}Q.write(new Uint8Array([1,1]),{at:q+18})}catch(C){throw this.setAssociatedPath(Q,"",0),C}return this.setAssociatedPath(Q,b,o.SQLITE_OPEN_MAIN_DB),H}importDb(b,k){if(k instanceof ArrayBuffer)k=new Uint8Array(k);else if(k instanceof Function)return this.importDbChunked(b,k);const Q=this.#t.get(b)||this.nextAvailableSAH()||n("No available handles to import to."),H=k.byteLength;(H<512||H%512!=0)&&n("Byte array size is invalid for an SQLite db.");const Z="SQLite format 3";for(let C=0;Cthis)}isPaused(){return this.#e.isPaused()}}const se=async()=>{const j=await navigator.storage.getDirectory(),b=".opfs-sahpool-sync-check-"+P(),H=(await(await j.getFileHandle(b,{create:!0})).createSyncAccessHandle()).close();return await H,await j.removeEntry(b),H?.then&&n("The local OPFS API is too old for opfs-sahpool:","it has an async FileSystemSyncAccessHandle.close() method."),!0};t.installOpfsSAHPoolVfs=async function(j=Object.create(null)){j=Object.assign(Object.create(null),$,j||{});const b=j.name;if(j.$testThrowPhase1)throw j.$testThrowPhase1;if(s[b])try{return await s[b]}catch(k){if(j.forceReinitIfPreviouslyFailed)delete s[b];else throw k}return!globalThis.FileSystemHandle||!globalThis.FileSystemDirectoryHandle||!globalThis.FileSystemFileHandle||!globalThis.FileSystemFileHandle.prototype.createSyncAccessHandle||!navigator?.storage?.getDirectory?s[b]=Promise.reject(new Error("Missing required OPFS APIs.")):s[b]=se().then(async function(){if(j.$testThrowPhase2)throw j.$testThrowPhase2;const k=new ne(j);return k.isReady.then(async()=>{const Q=new re(k);if(t.oo1){const H=t.oo1,Z=k.getVfs(),E=function(...C){const M=H.DB.dbCtorHelper.normalizeArgs(...C);M.vfs=Z.$zName,H.DB.dbCtorHelper.call(this,M)};E.prototype=Object.create(H.DB.prototype),Q.OpfsSAHPoolDb=E}return k.log("VFS initialized."),Q}).catch(async Q=>{throw await k.removeVfs().catch(()=>{}),Q})}).catch(k=>s[b]=Promise.reject(k))}}),typeof i<"u"){const t=Object.assign(Object.create(null),{exports:typeof h>"u"?i.asm:h,memory:i.wasmMemory},globalThis.sqlite3ApiConfig||{});globalThis.sqlite3ApiConfig=t;let n;try{n=globalThis.sqlite3ApiBootstrap()}catch(r){throw console.error("sqlite3ApiBootstrap() error:",r),r}finally{delete globalThis.sqlite3ApiBootstrap,delete globalThis.sqlite3ApiConfig}i.sqlite3=n}else console.warn("This is not running in an Emscripten module context, so","globalThis.sqlite3ApiBootstrap() is _not_ being called due to lack","of config info for the WASM environment.","It must be called manually.")},be=$e,be}})();const Xn=(function(){const Ie=ot;if(!Ie)throw new Error("Expecting globalThis.sqlite3InitModule to be defined by the Emscripten build.");const qe=globalThis.sqlite3InitModuleState=Object.assign(Object.create(null),{moduleScript:globalThis?.document?.currentScript,isWorker:typeof WorkerGlobalScope<"u",location:globalThis.location,urlParams:globalThis?.location?.href?new URL(globalThis.location.href).searchParams:new URLSearchParams});if(qe.debugModule=qe.urlParams.has("sqlite3.debugModule")?(...be)=>console.warn("sqlite3.debugModule:",...be):()=>{},qe.urlParams.has("sqlite3.dir"))qe.sqlite3Dir=qe.urlParams.get("sqlite3.dir")+"/";else if(qe.moduleScript){const be=qe.moduleScript.src.split("/");be.pop(),qe.sqlite3Dir=be.join("/")+"/"}if(globalThis.sqlite3InitModule=function be(...i){return Ie(...i).then(ve=>{ve.runSQLite3PostLoadInit(ve);const Ee=ve.sqlite3;Ee.scriptInfo=qe,be.__isUnderTest&&(Ee.__isUnderTest=!0);const $e=Ee.asyncPostInit;return delete Ee.asyncPostInit,$e()}).catch(ve=>{throw console.error("Exception loading sqlite3 module:",ve),ve})},globalThis.sqlite3InitModule.ready=Ie.ready,globalThis.sqlite3InitModuleState.moduleScript){const be=globalThis.sqlite3InitModuleState;let i=be.moduleScript.src.split("/");i.pop(),be.scriptDir=i.join("/")+"/"}return qe.debugModule("sqlite3InitModuleState =",qe),globalThis.sqlite3InitModule})();ot=Xn;var Yn=ot;Yn().then(Ie=>Ie.initWorker1API()); diff --git a/dist/index.html b/dist/index.html index 33ae18c..cc778e3 100644 --- a/dist/index.html +++ b/dist/index.html @@ -5,8 +5,8 @@ JapLearn — интервальные повторения - - + +
diff --git a/src/db-types.ts b/src/db-types.ts index 24e0e9a..5e02247 100644 --- a/src/db-types.ts +++ b/src/db-types.ts @@ -7,7 +7,7 @@ // т.е. количество дней с 1970-01-01, без времени; // - states.fsrs_memory: сырое INTEGER-значение FSRS (не дата, не трогаем). -import { query } from "./sqlite-api"; +import { query } from "./sqlite-api.ts"; export interface CustomField { id: number; @@ -37,32 +37,145 @@ export interface Word { id: number; key: string; value: string; + /** Сырое значение колонки tags (как лежит в БД). */ tags: string; + /** Распарсенные теги для UI (split по запятой/пробелам/точке с запятой). */ + tagsList: string[]; + /** + * Доп. поля: more хранится как чередование пар через \u001f: + * "fieldId\u001fvalue\u001ffieldId\u001fvalue...". + * Ключ — id из custom_fields, значение — текст. + */ more: Map; group_id: number; } -export async function wordList() { - let rows = await query("SELECT id, key, value, tags, more, group_id FROM words"); - - return rows.map((row: any) => { - let more : string = row.more.split(''); - let dict = new Map(); - for (let i = 0; i < more.length / 2; i++) { - dict.set(more[i * 2], more[i * 2 + 1]); - } - let w = { - id: row.id, - key: row.key, - value: row.value, - tags: row.tags, - more: dict, - group_id: row.group_id, - } - return w; - }) as Word[]; +export interface WordListFilter { + /** Подстрока для поиска по key/value/tags (LIKE %q%, без учёта регистра). */ + search?: string; + /** Фильтр по группе. undefined/null = все группы. */ + groupId?: number | null; + limit?: number; + offset?: number; } +/** Разбирает сырое поле tags в список чипсов. */ +export function parseTags(raw: unknown): string[] { + if (raw == null) return []; + const s = String(raw).trim(); + if (!s) return []; + return s + .split(/[,\s;]+/) + .map((t) => t.trim()) + .filter((t) => t.length > 0); +} + +/** + * Разбирает сырое поле more в Map. + * Формат десктопа: пары через \u001f (Unit Separator): + * "3\u001fчтение\u001f5\u001fпример". Нечисловые ключи игнорируем, + * висячий хвост без пары отбрасываем, пустые значения пропускаем. + */ +export function parseMore(raw: unknown): Map { + const dict = new Map(); + if (raw == null) return dict; + const s = String(raw); + if (!s) return dict; + const parts = s.split(""); + for (let i = 0; i + 1 < parts.length; i += 2) { + const id = Number(parts[i]); + const val = parts[i + 1] ?? ""; + if (!Number.isFinite(id) || !Number.isInteger(id)) continue; + if (!val) continue; + dict.set(id, val); + } + return dict; +} + +function mapRowToWord(row: Record): Word { + const id = Number(row["id"] ?? 0); + const key = String(row["key"] ?? ""); + const value = String(row["value"] ?? ""); + const tagsRaw = row["tags"] == null ? "" : String(row["tags"]); + const group_id = Number(row["group_id"] ?? 1); + return { + id, + key, + value, + tags: tagsRaw, + tagsList: parseTags(tagsRaw), + more: parseMore(row["more"]), + group_id: Number.isFinite(group_id) ? group_id : 1, + }; +} + +function buildWhere(filter: WordListFilter): { clause: string; params: unknown[] } { + const conds: string[] = []; + const params: unknown[] = []; + const search = (filter.search ?? "").trim(); + if (search) { + // Простой LIKE-поиск по трём колонкам. more не трогаем (там id+значения вперемешку). + conds.push("(key LIKE ? ESCAPE '\\' OR value LIKE ? ESCAPE '\\' OR tags LIKE ? ESCAPE '\\')"); + const like = `%${search.replace(/\\/g, "\\\\").replace(/%/g, "\\%").replace(/_/g, "\\_")}%`; + params.push(like, like, like); + } + if (filter.groupId != null) { + conds.push("group_id = ?"); + params.push(filter.groupId); + } + return { clause: conds.length > 0 ? `WHERE ${conds.join(" AND ")}` : "", params }; +} + +/** Сколько всего слов подходит под фильтр (для пагинации/счётчика). */ +export async function countWords(filter: WordListFilter = {}): Promise { + const { clause, params } = buildWhere(filter); + const rows = await query(`SELECT COUNT(*) as cnt FROM words ${clause}`, params as never[]); + const cnt = (rows[0] as Record | undefined)?.["cnt"]; + return typeof cnt === "number" ? cnt : Number(cnt ?? 0); +} + +/** + * Визуализация слов для главной страницы: поиск + фильтр по группе + пагинация. + * Сортировка — по id (порядок добавления), чтобы список был стабильным. + */ +export async function getWords(filter: WordListFilter = {}): Promise { + const { clause, params } = buildWhere(filter); + const limit = Math.max(1, Math.min(filter.limit ?? 50, 500)); + const offset = Math.max(0, filter.offset ?? 0); + const rows = await query( + `SELECT id, key, value, tags, more, group_id FROM words ${clause} ORDER BY id LIMIT ? OFFSET ?`, + [...(params as unknown[]), limit, offset] as never[], + ); + return (rows as Record[]).map(mapRowToWord); +} + +/** + * Легаси-обёртка: все слова без пагинации (для десктоп-совместимости / отладки). + * Для UI используй getWords() + countWords(). + */ +export async function wordList(): Promise { + const rows = await query("SELECT id, key, value, tags, more, group_id FROM words ORDER BY id"); + return (rows as Record[]).map(mapRowToWord); +} + +export async function getWordGroups(): Promise { + const rows = await query("SELECT id, name FROM word_groups ORDER BY id"); + return (rows as Record[]).map((r) => ({ + id: Number(r["id"]), + name: String(r["name"] ?? ""), + })); +} + +export async function getCustomFields(): Promise { + const rows = await query("SELECT id, name, identifier FROM custom_fields ORDER BY id"); + return (rows as Record[]).map((r) => ({ + id: Number(r["id"]), + name: String(r["name"] ?? ""), + identifier: String(r["identifier"] ?? ""), + })); +} + + export interface HistoryEntry { id: number; deck_id: number; diff --git a/src/db-worker.ts b/src/db-worker.ts index b4fb8a8..79380b1 100644 --- a/src/db-worker.ts +++ b/src/db-worker.ts @@ -1,5 +1,5 @@ import sqlite3InitModule from '@sqlite.org/sqlite-wasm'; -import { DB_FILENAME } from './opfs'; +import { DB_FILENAME } from './opfs.ts'; let db: any | null = null; @@ -7,7 +7,6 @@ self.onmessage = async (e) => { const { type, id, sql, params } = e.data; try { - console.log(e.data.type) switch (type) { case 'start': { if (db != null) { @@ -30,14 +29,14 @@ self.onmessage = async (e) => { } case 'query': { if (db === null) throw new Error('БД не инициализирована'); - const result = db.selectObjects(sql, params); + const result = db.selectObjects(sql, params ?? []); self.postMessage({ type: 'success', id, data: result }); break; } case 'command': { if (db === null) throw new Error('БД не инициализирована'); - db.exec(sql, params); + db.exec(sql, params ?? []); self.postMessage({ type: 'success', id, data: null }); break; } @@ -45,11 +44,12 @@ self.onmessage = async (e) => { if (db === null) throw new Error('БД не инициализирована'); db.close(); db = null; + self.postMessage({ type: 'success', id, data: null }); break; } } } catch (err: any) { console.error(err); - self.postMessage({ type: 'error', message: err.message , id}); + self.postMessage({ type: 'error', error: err?.message ?? String(err), id }); } }; \ No newline at end of file diff --git a/src/home-page.ts b/src/home-page.ts index 8b727b6..6834ec7 100644 --- a/src/home-page.ts +++ b/src/home-page.ts @@ -1,8 +1,8 @@ -// Главная страница: статус локальной базы + быстрый переход к синхронизации. -// Никакой БД-логики кроме проверки наличия файла в OPFS. +// Главная страница: статус локальной базы + визуализация слов (getWords). +// Поиск по key/value/tags, фильтр по группе, пагинация «Показать ещё». -import { wordList } from './db-types.ts'; -import { worker } from './main.ts'; +import { countWords, getCustomFields, getWordGroups, getWords } from './db-types.ts'; +import type { CustomField, Word, WordGroup } from './db-types.ts'; import { hasDatabaseFile, readDatabaseFile } from './opfs.ts'; import { looksLikeSQLite } from './zstd.ts'; @@ -10,6 +10,36 @@ export type HomeNav = { goSync: () => void; }; +const PAGE_SIZE = 30; + +function escapeHtml(s: string): string { + return s + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +function wordCardHtml(w: Word, gname: string | undefined, fmap: Map): string { + const tags = w.tagsList.map((t) => `${escapeHtml(t)}`).join(''); + const mrows = [...w.more.entries()] + .map(([fid, val]) => { + const f = fmap.get(fid); + const label = f ? `${escapeHtml(f.name)} #${fid}` : `Поле #${fid}`; + return `
${label}
${escapeHtml(val)}
`; + }) + .join(''); + const more = mrows + ? `
Дополнительно (${w.more.size})
${mrows}
` + : ''; + return `
+
${escapeHtml(w.key)}
` + + (gname ? `${escapeHtml(gname)}` : '') + + `
${escapeHtml(w.value)}
` + + (tags ? `
${tags}
` : '') + more + `
`; +} + export function renderHomePage(root: HTMLElement, nav: HomeNav): void { root.innerHTML = `
@@ -23,23 +53,150 @@ export function renderHomePage(root: HTMLElement, nav: HomeNav): void {
+
+

📚 Слова

+
+ + +
+

+
База ещё не проверена.
+
+
+
`; const statusEl = root.querySelector('#home-db-status')!; const goSync = root.querySelector('#btn-go-sync')!; const actions = root.querySelector('#home-actions')!; const btnStart = root.querySelector('#btn-start')!; + const searchInput = root.querySelector('#words-search')!; + const groupSelect = root.querySelector('#words-group')!; + const countEl = root.querySelector('#words-count')!; + const wordsStatus = root.querySelector('#words-status')!; + const listEl = root.querySelector('#words-list')!; + const moreBtn = root.querySelector('#words-more')!; goSync.addEventListener('click', () => nav.goSync()); btnStart.addEventListener('click', () => { statusEl.textContent = 'Экран повторений — следующий шаг.'; }); + // --- Состояние списка слов --- + let dbReady = false; + let gnames = new Map(); + let fmap = new Map(); + let total = 0; + let loaded: Word[] = []; + let offset = 0; + let loading = false; + let reqSeq = 0; + let debounce = 0; + + function wordsFilter(): { search: string; groupId: number | null } { + const v = groupSelect.value; + if (v === '') return { search: searchInput.value.trim(), groupId: null }; + const n = Number(v); + return { search: searchInput.value.trim(), groupId: Number.isFinite(n) ? n : null }; + } + + function refreshMoreBtn(): void { + moreBtn.hidden = !(dbReady && loaded.length < total); + if (!moreBtn.hidden) moreBtn.textContent = `Показать ещё (${total - loaded.length} осталось)`; + } + + function fullRender(): void { + listEl.innerHTML = loaded.map((w) => wordCardHtml(w, gnames.get(w.group_id), fmap)).join(''); + countEl.textContent = total > 0 ? `Показано ${loaded.length} из ${total}` : ''; + refreshMoreBtn(); + } + + function setWStatus(msg: string): void { + wordsStatus.textContent = msg; + wordsStatus.hidden = msg === ''; + } + + async function reloadWords(): Promise { + if (!dbReady || loading) return; + loading = true; + const my = ++reqSeq; + const f = wordsFilter(); + moreBtn.disabled = true; + if (loaded.length === 0) setWStatus('Загрузка слов…'); + try { + const [cnt, words] = await Promise.all([ + countWords({ search: f.search, groupId: f.groupId ?? undefined }), + getWords({ search: f.search, groupId: f.groupId ?? undefined, limit: PAGE_SIZE, offset: 0 }), + ]); + if (my !== reqSeq) return; + total = cnt; + loaded = words; + offset = words.length; + fullRender(); + setWStatus(words.length === 0 ? 'По этому запросу слов нет.' : ''); + if (words.length === 0 && total === 0) countEl.textContent = 'Слов в базе пока нет.'; + } catch (err) { + if (my !== reqSeq) return; + setWStatus(`Не удалось загрузить слова: ${err instanceof Error ? err.message : String(err)}`); + } finally { + if (my === reqSeq) { + loading = false; + moreBtn.disabled = false; + refreshMoreBtn(); + } + } + } + + async function loadMore(): Promise { + if (!dbReady || loading || loaded.length >= total) return; + loading = true; + const my = ++reqSeq; + const f = wordsFilter(); + moreBtn.disabled = true; + moreBtn.textContent = 'Загрузка…'; + try { + const words = await getWords({ search: f.search, groupId: f.groupId ?? undefined, limit: PAGE_SIZE, offset }); + if (my !== reqSeq) return; + loaded = loaded.concat(words); + offset += words.length; + listEl.insertAdjacentHTML('beforeend', words.map((w) => wordCardHtml(w, gnames.get(w.group_id), fmap)).join('')); + countEl.textContent = `Показано ${loaded.length} из ${total}`; + refreshMoreBtn(); + } catch (err) { + if (my !== reqSeq) return; + setWStatus(`Не удалось догрузить: ${err instanceof Error ? err.message : String(err)}`); + } finally { + if (my === reqSeq) { + loading = false; + moreBtn.disabled = false; + refreshMoreBtn(); + } + } + } + + searchInput.addEventListener('input', () => { + window.clearTimeout(debounce); + debounce = window.setTimeout(() => void reloadWords(), 300); + }); + searchInput.addEventListener('keydown', (e) => { + if (e.key === 'Enter') { + window.clearTimeout(debounce); + void reloadWords(); + } + }); + groupSelect.addEventListener('change', () => void reloadWords()); + moreBtn.addEventListener('click', () => void loadMore()); + void (async () => { const has = await hasDatabaseFile(); if (!has) { statusEl.textContent = 'Локальной базы нет. Скачай сохранение на странице «Синхронизация».'; actions.hidden = true; + setWStatus('Нет локальной базы — скачай сохранение на странице «Синхронизация».'); + countEl.textContent = ''; return; } try { @@ -49,9 +206,22 @@ export function renderHomePage(root: HTMLElement, nav: HomeNav): void { ? `Локальная база на месте: ${(raw.length / 1024).toFixed(1)} КБ, сигнатура SQLite OK.` : 'Файл в OPFS есть, но это не похоже на SQLite — перекачай сохранение.'; actions.hidden = !ok; - if (ok) { - let list = await wordList(); - console.log(list); + if (!ok) { + setWStatus('Файл в OPFS не похож на SQLite — перекачай сохранение.'); + return; + } + try { + const [gs, fields] = await Promise.all([getWordGroups(), getCustomFields()]); + const groups: WordGroup[] = gs; + gnames = new Map(groups.map((g) => [g.id, g.name])); + fmap = new Map(fields.map((f) => [f.id, f])); + groupSelect.innerHTML = '' + + groups.map((g) => ``).join(''); + dbReady = true; + await reloadWords(); + groupSelect.options[0].textContent = `Все группы (${total})`; + } catch (err) { + setWStatus(`БД есть, но слова не прочитались: ${err instanceof Error ? err.message : String(err)}`); } } catch (err) { statusEl.textContent = `Не удалось прочитать базу: ${err instanceof Error ? err.message : String(err)}`; diff --git a/src/main.ts b/src/main.ts index bbd80a5..315573a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,10 +3,6 @@ import { renderHomePage } from './home-page.ts'; import { renderSyncPage } from './sync-page.ts'; import { initWorker } from './sqlite-api.ts'; -export const worker = new Worker(new URL('./db-worker.ts', import.meta.url), { - type: 'module', -}); - // Каркас приложения: топ-бар + бургер-меню + две страницы (Главная / Синхронизация). type Page = 'home' | 'sync'; diff --git a/src/sqlite-api.ts b/src/sqlite-api.ts index bce10a1..a28cc4e 100644 --- a/src/sqlite-api.ts +++ b/src/sqlite-api.ts @@ -1,4 +1,6 @@ -import { worker } from "./main"; +const worker = new Worker(new URL('./db-worker.ts', import.meta.url), { + type: 'module', +}); let requestId = 0; @@ -14,7 +16,6 @@ export function initWorker(): Promise { initPromise = new Promise((resolve, reject) => { worker.onmessage = (e: MessageEvent) => { - console.log("Handling worker output"); const msg = e.data; if (msg.type === 'ready') { @@ -29,8 +30,7 @@ export function initWorker(): Promise { if (msg.type == "success") { pendingReq.resolve(msg.data); } else { - console.log(msg) - pendingReq.reject(new Error(msg.error || 'Неизвестная ошибка Worker')); + pendingReq.reject(new Error(msg.error ?? msg.message ?? 'Неизвестная ошибка Worker')); } }; @@ -63,12 +63,12 @@ function sendToWorker(type: string, payload?: any): Promise { } export async function query(sql: string, params?: any[]): Promise { - const result = await sendToWorker('query', { sql, params }); + const result = await sendToWorker('query', { sql, params: params ?? [] }); return result; } export async function command(sql: string, params?: any[]): Promise { - await sendToWorker('command', { sql, params }); + await sendToWorker('command', { sql, params: params ?? [] }); } export async function closeDb(): Promise { diff --git a/src/style.css b/src/style.css index 0cee6b3..2260127 100644 --- a/src/style.css +++ b/src/style.css @@ -281,3 +281,152 @@ body.drawer-open { font-size: 0.95rem; word-break: break-word; } + +.status-bar[hidden] { + display: none; +} + +/* --- Список слов (главная) --- */ + +.words-toolbar { + display: flex; + gap: 8px; +} + +.words-search { + flex: 1; + min-width: 0; + padding: 12px; + font-size: 1rem; + border: 2px solid #d9d2f0; + border-radius: 12px; + outline: none; + background: #fff; + color: inherit; +} + +.words-search:focus { + border-color: #7c3aed; +} + +.words-group { + flex: none; + max-width: 42%; + padding: 12px 8px; + font-size: 0.95rem; + font-weight: 600; + color: #4c446b; + border: 2px solid #d9d2f0; + border-radius: 12px; + background: #fff; + outline: none; +} + +.words-group:focus { + border-color: #7c3aed; +} + +.words-list { + display: flex; + flex-direction: column; + gap: 10px; +} + +.word-card { + border: 1px solid #eee9fb; + border-radius: 12px; + padding: 12px; + background: #fbfaff; + display: flex; + flex-direction: column; + gap: 8px; +} + +.word-card-top { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 8px; +} + +.word-key { + font-size: 1.2rem; + font-weight: 700; + line-height: 1.3; + word-break: break-word; +} + +.word-value { + font-size: 1rem; + color: #4c446b; + word-break: break-word; +} + +.word-group { + flex: none; + font-size: 0.75rem; + font-weight: 700; + color: #6d28d9; + background: #f1eafe; + border-radius: 999px; + padding: 4px 10px; + white-space: nowrap; +} + +.tag-row { + display: flex; + flex-wrap: wrap; + gap: 6px; +} + +.tag-chip { + font-size: 0.8rem; + font-weight: 600; + color: #5b21b6; + background: #ede9fe; + border-radius: 999px; + padding: 3px 10px; + word-break: break-word; +} + +.word-more { + font-size: 0.9rem; + color: #4c446b; +} + +.word-more summary { + cursor: pointer; + font-weight: 600; + color: #6d28d9; + touch-action: manipulation; +} + +.word-more-list { + margin: 8px 0 0; + display: flex; + flex-direction: column; + gap: 6px; +} + +.word-more-row { + background: #fff; + border: 1px solid #eee9fb; + border-radius: 8px; + padding: 8px 10px; +} + +.word-more-row dt { + font-size: 0.8rem; + font-weight: 700; + color: #6d6390; +} + +.word-more-row dd { + margin: 2px 0 0; + word-break: break-word; +} + +.word-more-id { + font-weight: 400; + opacity: 0.7; +}
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%0D6=}%F?%-pNf6fp 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%0Dt@|PAspCx{`(T!kFfR)lcYAk;z{WR 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

P%KY{K_j(8{ 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