UNPKG

node-seal

Version:

Homomorphic Encryption for TypeScript or JavaScript using Microsoft SEAL

1 lines 55.3 kB
async function e(e={}){var t,r,n=e,a="./this.program",o=import.meta.url,i="";try{i=new URL(".",o).href}catch{}r=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)},t=async e=>{if((e=await fetch(e,{credentials:"same-origin"})).ok)return e.arrayBuffer();throw Error(e.status+" : "+e.url)};var s,c,u,l,y,d,f,h,p,m,g,w,v,T,b,A=console.error.bind(console),C=!1,x=!1;function I(){var e=y.buffer;d=new Int8Array(e),h=new Int16Array(e),f=new Uint8Array(e),p=new Uint16Array(e),m=new Int32Array(e),g=new Uint32Array(e),w=new Float32Array(e),v=new Float64Array(e),T=new BigInt64Array(e),b=new BigUint64Array(e)}var P,E=0,S=null;function M(e){throw n.onAbort?.(e),A(e="Aborted("+e+")"),C=!0,e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info."),l?.(e),e}async function j(e,n){try{var a=await async function(e){if(!s)try{var n=await t(e);return new Uint8Array(n)}catch{}if(e==P&&s)e=new Uint8Array(s);else{if(!r)throw"both async and sync fetching of the wasm failed";e=r(e)}return e}(e);return await WebAssembly.instantiate(a,n)}catch(e){A(`failed to asynchronously prepare wasm: ${e}`),M(e)}}class ${name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var U=e=>{for(;0<e.length;)e.shift()(n)},V=[],z=[],F=()=>{var e=n.preRun.shift();z.push(e)},B=!0;class K{constructor(e){this.V=e-24}}var R=e=>{e>>>=0;for(var t="";;){var r=f[e++>>>0];if(!r)return t;t+=String.fromCharCode(r)}},k={},N={},D={},O=class extends Error{constructor(e){super(e),this.name="BindingError"}};function _(e,t,r={}){return function(e,t,r={}){var n=t.name;if(!e)throw new O(`type "${n}" must have a positive integer typeid pointer`);if(N.hasOwnProperty(e)){if(r.va)return;throw new O(`Cannot register type '${n}' twice`)}N[e]=t,delete D[e],k.hasOwnProperty(e)&&(t=k[e],delete k[e],t.forEach((e=>e())))}(e,t,r)}var W=(e,t,r)=>{switch(t){case 1:return r?e=>d[e>>>0]:e=>f[e>>>0];case 2:return r?e=>h[e>>>1>>>0]:e=>p[e>>>1>>>0];case 4:return r?e=>m[e>>>2>>>0]:e=>g[e>>>2>>>0];case 8:return r?e=>T[e>>>3>>>0]:e=>b[e>>>3>>>0];default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},H=e=>{throw new O(e.T.X.U.name+" instance already deleted")},Z=!1,L=()=>{},G=e=>"undefined"==typeof FinalizationRegistry?(G=e=>e,e):(Z=new FinalizationRegistry((e=>{--(e=e.T).count.value,0===e.count.value&&(e.Z?e.ba.fa(e.Z):e.X.U.fa(e.V))})),L=e=>{Z.unregister(e)},(G=e=>{var t=e.T;return t.Z&&Z.register(e,{T:t},e),e})(e));function X(){}var Y=(e,t)=>Object.defineProperty(t,"name",{value:e}),q={},Q=(e,t,r)=>{if(void 0===e[t].Y){var n=e[t];e[t]=function(...n){if(!e[t].Y.hasOwnProperty(n.length))throw new O(`Function '${r}' called with an invalid number of arguments (${n.length}) - expects one of (${e[t].Y})!`);return e[t].Y[n.length].apply(this,n)},e[t].Y=[],e[t].Y[n.ga]=n}},J=(e,t,r)=>{if(n.hasOwnProperty(e)){if(void 0===r||void 0!==n[e].Y&&void 0!==n[e].Y[r])throw new O(`Cannot register public name '${e}' twice`);if(Q(n,e,e),n[e].Y.hasOwnProperty(r))throw new O(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`);n[e].Y[r]=t}else n[e]=t,n[e].ga=r};function ee(e,t,r,n,a,o,i,s){this.name=e,this.constructor=t,this.ea=r,this.fa=n,this.aa=a,this.ta=o,this.ka=i,this.sa=s,this.ya=[]}var te=(e,t,r)=>{for(;t!==r;){if(!t.ka)throw new O(`Expected null or instance of ${r.name}, got an instance of ${t.name}`);e=t.ka(e),t=t.aa}return e},re=e=>{if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e};function ne(e,t){if(null===t){if(this.oa)throw new O(`null is not a valid ${this.name}`);return 0}if(!t.T)throw new O(`Cannot pass "${re(t)}" as a ${this.name}`);if(!t.T.V)throw new O(`Cannot pass deleted object as a pointer of type ${this.name}`);return te(t.T.V,t.T.X.U,this.U)}function ae(e,t){if(null===t){if(this.oa)throw new O(`null is not a valid ${this.name}`);if(this.na){var r=this.za();return null!==e&&e.push(this.fa,r),r}return 0}if(!t||!t.T)throw new O(`Cannot pass "${re(t)}" as a ${this.name}`);if(!t.T.V)throw new O(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.ma&&t.T.X.ma)throw new O(`Cannot convert argument of type ${t.T.ba?t.T.ba.name:t.T.X.name} to parameter type ${this.name}`);if(r=te(t.T.V,t.T.X.U,this.U),this.na){if(void 0===t.T.Z)throw new O("Passing raw pointer to smart pointer is illegal");switch(this.Ba){case 0:if(t.T.ba!==this)throw new O(`Cannot convert argument of type ${t.T.ba?t.T.ba.name:t.T.X.name} to parameter type ${this.name}`);r=t.T.Z;break;case 1:r=t.T.Z;break;case 2:if(t.T.ba===this)r=t.T.Z;else{var n=t.clone();r=this.Aa(r,Ue((()=>n.delete()))),null!==e&&e.push(this.fa,r)}break;default:throw new O("Unsupporting sharing policy")}}return r}function oe(e,t){if(null===t){if(this.oa)throw new O(`null is not a valid ${this.name}`);return 0}if(!t.T)throw new O(`Cannot pass "${re(t)}" as a ${this.name}`);if(!t.T.V)throw new O(`Cannot pass deleted object as a pointer of type ${this.name}`);if(t.T.X.ma)throw new O(`Cannot convert argument of type ${t.T.X.name} to parameter type ${this.name}`);return te(t.T.V,t.T.X.U,this.U)}function ie(e){return this.W(g[e>>>2>>>0])}var se=(e,t,r)=>t===r?e:void 0===r.aa||null===(e=se(e,t,r.aa))?null:r.sa(e),ce={},ue=class extends Error{constructor(e){super(e),this.name="InternalError"}},le=(e,t)=>{if(!t.X||!t.V)throw new ue("makeClassHandle requires ptr and ptrType");if(!!t.ba!=!!t.Z)throw new ue("Both smartPtrType and smartPtr must be specified");return t.count={value:1},G(Object.create(e,{T:{value:t,writable:!0}}))};function ye(e,t,r,n,a,o,i,s,c,u,l){this.name=e,this.U=t,this.oa=r,this.ma=n,this.na=a,this.xa=o,this.Ba=i,this.qa=s,this.za=c,this.Aa=u,this.fa=l,a||void 0!==t.aa?this.$=ae:(this.$=n?ne:oe,this.ca=null)}var de,fe=(e,t,r)=>{if(!n.hasOwnProperty(e))throw new ue("Replacing nonexistent public symbol");void 0!==n[e].Y&&void 0!==r?n[e].Y[r]=t:(n[e]=t,n[e].ga=r)},he=[],pe=e=>{var t=he[e];return t||(he[e]=t=de.get(e)),t},me=(e,t)=>(...r)=>((e,t,r=[])=>(t=pe(t)(...r),"p"==e[0]?t>>>0:t))(e,t,r),ge=(e,t)=>{var r=(e=R(e)).includes("p")?me(e,t):pe(t);if("function"!=typeof r)throw new O(`unknown function pointer with signature ${e}: ${t}`);return r};class we extends Error{}var ve=e=>{e=it(e);var t=R(e);return ut(e),t},Te=(e,t)=>{var r=[],n={};throw t.forEach((function e(t){n[t]||N[t]||(D[t]?D[t].forEach(e):(r.push(t),n[t]=!0))})),new we(`${e}: `+r.map(ve).join([", "]))},be=(e,t,r)=>{function n(t){if((t=r(t)).length!==e.length)throw new ue("Mismatched type converter count");for(var n=0;n<e.length;++n)_(e[n],t[n])}e.forEach((e=>D[e]=t));var a=Array(t.length),o=[],i=0;t.forEach(((e,t)=>{N.hasOwnProperty(e)?a[t]=N[e]:(o.push(e),k.hasOwnProperty(e)||(k[e]=[]),k[e].push((()=>{a[t]=N[e],++i===o.length&&n(a)})))})),0===o.length&&n(a)},Ae=e=>{for(;e.length;){var t=e.pop();e.pop()(t)}};function Ce(e,t,r,n,a){var o=t.length;if(2>o)throw new O("argTypes array size mismatch! Must at least get return value and 'this' types!");var i=null!==t[1]&&null!==r,s=function(e){for(var t=1;t<e.length;++t)if(null!==e[t]&&void 0===e[t].ca)return!0;return!1}(t),c=!t[0].wa,u=o-2,l=Array(u),y=[],d=[];return Y(e,(function(...e){if(d.length=0,y.length=i?2:1,y[0]=a,i){var r=t[1].$(d,this);y[1]=r}for(var o=0;o<u;++o)l[o]=t[o+2].$(d,e[o]),y.push(l[o]);if(e=n(...y),s)Ae(d);else for(o=i?1:2;o<t.length;o++){var f=1===o?r:l[o-2];null!==t[o].ca&&t[o].ca(f)}return r=c?t[0].W(e):void 0}))}var xe=(e,t)=>{for(var r=[],n=0;n<e;n++)r.push(g[t+4*n>>>2>>>0]);return r},Ie=e=>{const t=(e=e.trim()).indexOf("(");return-1===t?e:e.slice(0,t)},Pe=(e,t,r)=>{if(!(e instanceof Object))throw new O(`${r} with invalid "this": ${e}`);if(!(e instanceof t.U.constructor))throw new O(`${r} incompatible with "this" of type ${e.constructor.name}`);if(!e.T.V)throw new O(`cannot call emscripten binding method ${r} on deleted object`);return te(e.T.V,e.T.X.U,t.U)},Ee=[],Se=[0,1,,1,null,1,!0,1,!1,1];function Me(e){9<(e>>>=0)&&0==--Se[e+1]&&(Se[e]=void 0,Ee.push(e))}var je,$e=e=>{if(!e)throw new O(`Cannot use deleted val. handle = ${e}`);return Se[e]},Ue=e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:const t=Ee.pop()||Se.length;return Se[t]=e,Se[t+1]=1,t}},Ve={name:"emscripten::val",W:e=>{var t=$e(e);return Me(e),t},$:(e,t)=>Ue(t),da:ie,ca:null},ze=(e,t,r)=>{switch(t){case 1:return r?function(e){return this.W(d[e>>>0])}:function(e){return this.W(f[e>>>0])};case 2:return r?function(e){return this.W(h[e>>>1>>>0])}:function(e){return this.W(p[e>>>1>>>0])};case 4:return r?function(e){return this.W(m[e>>>2>>>0])}:function(e){return this.W(g[e>>>2>>>0])};default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},Fe=(e,t)=>{var r=N[e];if(void 0===r)throw e=`${t} has unknown type ${ve(e)}`,new O(e);return r},Be=(e,t)=>{switch(t){case 4:return function(e){return this.W(w[e>>>2>>>0])};case 8:return function(e){return this.W(v[e>>>3>>>0])};default:throw new TypeError(`invalid float width (${t}): ${e}`)}},Ke=Object.assign({optional:!0},Ve),Re=(e,t,r)=>{var n=f;if(!(0<r))return 0;var a=t>>>=0;r=t+r-1;for(var o=0;o<e.length;++o){var i=e.codePointAt(o);if(127>=i){if(t>=r)break;n[t++>>>0]=i}else if(2047>=i){if(t+1>=r)break;n[t++>>>0]=192|i>>6,n[t++>>>0]=128|63&i}else if(65535>=i){if(t+2>=r)break;n[t++>>>0]=224|i>>12,n[t++>>>0]=128|i>>6&63,n[t++>>>0]=128|63&i}else{if(t+3>=r)break;n[t++>>>0]=240|i>>18,n[t++>>>0]=128|i>>12&63,n[t++>>>0]=128|i>>6&63,n[t++>>>0]=128|63&i,o++}}return n[t>>>0]=0,t-a},ke=e=>{for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);127>=n?t++:2047>=n?t+=2:55296<=n&&57343>=n?(t+=4,++r):t+=3}return t},Ne="undefined"!=typeof TextDecoder?new TextDecoder:void 0,De=(e,t,r,n)=>{if(r=t+r,n)return r;for(;e[t]&&!(t>=r);)++t;return t},Oe="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,_e=(e,t,r)=>{if(16<(t=De(p,e>>>=1,t/2,r))-e&&Oe)return Oe.decode(p.subarray(e>>>0,t>>>0));for(r="";e<t;++e)r+=String.fromCharCode(p[e>>>0]);return r},We=(e,t,r)=>{if(r??=2147483647,2>r)return 0;var n=t;r=(r-=2)<2*e.length?r/2:e.length;for(var a=0;a<r;++a)h[t>>>1>>>0]=e.charCodeAt(a),t+=2;return h[t>>>1>>>0]=0,t-n},He=e=>2*e.length,Ze=(e,t,r)=>{var n="";e>>>=2;for(var a=0;!(a>=t/4);a++){var o=g[e+a>>>0];if(!o&&!r)break;n+=String.fromCodePoint(o)}return n},Le=(e,t,r)=>{if(t>>>=0,r??=2147483647,4>r)return 0;var n=t;r=n+r-4;for(var a=0;a<e.length;++a){var o=e.codePointAt(a);if(65535<o&&a++,m[t>>>2>>>0]=o,(t+=4)+4>r)break}return m[t>>>2>>>0]=0,t-n},Ge=e=>{for(var t=0,r=0;r<e.length;++r)65535<e.codePointAt(r)&&r++,t+=4;return t},Xe=0,Ye=[],qe={},Qe=e=>{var t=qe[e];return void 0===t?R(e):t},Je={},et=e=>{if(!(e instanceof $||"unwind"==e))throw e},tt=e=>{throw c=e,B||0<Xe||(n.onExit?.(e),C=!0),new $(e)},rt={},nt=()=>{if(!je){var e,t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.language||"C").replace("-","_")+".UTF-8",_:a||"./this.program"};for(e in rt)void 0===rt[e]?delete t[e]:t[e]=rt[e];var r=[];for(e in t)r.push(`${e}=${t[e]}`);je=r}return je},at=e=>{(at=e=>crypto.getRandomValues(e))(e)};(()=>{let e=X.prototype;Object.assign(e,{isAliasOf:function(e){if(!(this instanceof X&&e instanceof X))return!1;var t=this.T.X.U,r=this.T.V;e.T=e.T;var n=e.T.X.U;for(e=e.T.V;t.aa;)r=t.ka(r),t=t.aa;for(;n.aa;)e=n.ka(e),n=n.aa;return t===n&&r===e},clone:function(){if(this.T.V||H(this),this.T.ja)return this.T.count.value+=1,this;var e=G,t=Object,r=t.create,n=Object.getPrototypeOf(this),a=this.T;return(e=e(r.call(t,n,{T:{value:{count:a.count,ia:a.ia,ja:a.ja,V:a.V,X:a.X,Z:a.Z,ba:a.ba}}}))).T.count.value+=1,e.T.ia=!1,e},delete(){if(this.T.V||H(this),this.T.ia&&!this.T.ja)throw new O("Object already scheduled for deletion");L(this);var e=this.T;--e.count.value,0===e.count.value&&(e.Z?e.ba.fa(e.Z):e.X.U.fa(e.V)),this.T.ja||(this.T.Z=void 0,this.T.V=void 0)},isDeleted:function(){return!this.T.V},deleteLater:function(){if(this.T.V||H(this),this.T.ia&&!this.T.ja)throw new O("Object already scheduled for deletion");return this.T.ia=!0,this}});const t=Symbol.dispose;t&&(e[t]=e.delete)})(),Object.assign(ye.prototype,{ua(e){return this.qa&&(e=this.qa(e)),e},pa(e){this.fa?.(e)},da:ie,W:function(e){function t(){return this.na?le(this.U.ea,{X:this.xa,V:r,ba:this,Z:e}):le(this.U.ea,{X:this,V:e})}var r=this.ua(e);if(!r)return this.pa(e),null;var n=((e,t)=>{if(void 0===t)throw new O("ptr should not be undefined");for(;e.aa;)t=e.ka(t),e=e.aa;return ce[t]})(this.U,r);if(void 0!==n)return 0===n.T.count.value?(n.T.V=r,n.T.Z=e,n.clone()):(n=n.clone(),this.pa(e),n);if(n=this.U.ta(r),!(n=q[n]))return t.call(this);n=this.ma?n.ra:n.pointerType;var a=se(r,this.U,n.U);return null===a?t.call(this):this.na?le(n.U.ea,{X:n,V:a,ba:this,Z:e}):le(n.U.ea,{X:n,V:a})}}),n.noExitRuntime&&(B=n.noExitRuntime),n.printErr&&(A=n.printErr),n.wasmBinary&&(s=n.wasmBinary),n.thisProgram&&(a=n.thisProgram);var ot,it,st,ct,ut,lt={a:function(e,t,r){var n=new K(e>>>=0);throw g[n.V+16>>>2>>>0]=0,g[n.V+4>>>2>>>0]=t>>>0,g[n.V+8>>>2>>>0]=r>>>0,e},K:()=>M(""),v:function(e,t,r,n,a){e>>>=0,r>>>=0,t=R(t>>>0);let o=e=>e;if(n=0n===n){const e=8*r;o=t=>BigInt.asUintN(e,t),a=o(a)}_(e,{name:t,W:o,$:(e,t)=>("number"==typeof t&&(t=BigInt(t)),t),da:W(t,r,!n),ca:null})},H:function(e,t,r,n){_(e>>>0,{name:t=R(t>>>0),W:function(e){return!!e},$:function(e,t){return t?r:n},da:function(e){return this.W(f[e>>>0])},ca:null})},g:function(e,t,r,n,a,o,i,s,c,u,l,y,d){e>>>=0,t>>>=0,r>>>=0,n>>>=0,o>>>=0,i>>>=0,s>>>=0,c>>>=0,u>>>=0,y>>>=0,d>>>=0,l=R(l>>>=0),o=ge(a>>>0,o),s&&=ge(i,s),u&&=ge(c,u),d=ge(y,d);var f=(e=>{var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&57>=t?`_${e}`:e})(l);J(f,(function(){Te(`Cannot construct ${l} due to unbound types`,[n])})),be([e,t,r],n?[n]:[],(t=>{if(t=t[0],n)var r=t.U,a=r.ea;else a=X.prototype;t=Y(l,(function(...e){if(Object.getPrototypeOf(this)!==i)throw new O(`Use 'new' to construct ${l}`);if(void 0===y.ha)throw new O(`${l} has no accessible constructor`);var t=y.ha[e.length];if(void 0===t)throw new O(`Tried to invoke ctor of ${l} with invalid number of parameters (${e.length}) - expected (${Object.keys(y.ha).toString()}) parameters instead!`);return t.apply(this,e)}));var i=Object.create(a,{constructor:{value:t}});t.prototype=i;var c,y=new ee(l,t,i,d,r,o,s,u);y.aa&&((c=y.aa).la??(c.la=[]),y.aa.la.push(y));return r=new ye(l,y,!0,!1,!1),c=new ye(l+"*",y,!1,!1,!1),a=new ye(l+" const*",y,!1,!0,!1),q[e]={pointerType:c,ra:a},fe(f,t),[r,c,a]}))},q:function(e,t,r,n,a,o,i){e>>>=0,t>>>=0,a>>>=0,o>>>=0,i>>>=0;var s=xe(r,n>>>0);t=R(t),t=Ie(t),o=ge(a,o),be([],[e],(e=>{function n(){Te(`Cannot call ${a} due to unbound types`,s)}var a=`${(e=e[0]).name}.${t}`;t.startsWith("@@")&&(t=Symbol[t.substring(2)]);var c=e.U.constructor;return void 0===c[t]?(n.ga=r-1,c[t]=n):(Q(c,t,a),c[t].Y[r-1]=n),be([],s,(n=>{if(n=Ce(a,[n[0],null].concat(n.slice(1)),null,o,i),void 0===c[t].Y?(n.ga=r-1,c[t]=n):c[t].Y[r-1]=n,e.U.la)for(const r of e.U.la)r.constructor.hasOwnProperty(t)||(r.constructor[t]=n);return[]})),[]}))},w:function(e,t,r,n,a,o,i,s){e>>>=0,r>>>=0,n>>>=0,o>>>=0,i>>>=0,s>>>=0,t=R(t>>>=0),o=ge(a>>>0,o),be([],[e],(e=>{var a=`${(e=e[0]).name}.${t}`,c={get(){Te(`Cannot access ${a} due to unbound types`,[r])},enumerable:!0,configurable:!0};return c.set=s?()=>{Te(`Cannot access ${a} due to unbound types`,[r])}:()=>{throw new O(`${a} is a read-only property`)},Object.defineProperty(e.U.constructor,t,c),be([],[r],(r=>{r=r[0];var a={get:()=>r.W(o(n)),enumerable:!0};return s&&(s=ge(i,s),a.set=e=>{var t=[];s(n,r.$(t,e)),Ae(t)}),Object.defineProperty(e.U.constructor,t,a),[]})),[]}))},h:function(e,t,r,n,a,o){e>>>=0,n>>>=0,a>>>=0,o>>>=0;var i=xe(t,r>>>0);a=ge(n,a),be([],[e],(e=>{var r=`constructor ${(e=e[0]).name}`;if(void 0===e.U.ha&&(e.U.ha=[]),void 0!==e.U.ha[t-1])throw new O(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${e.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return e.U.ha[t-1]=()=>{Te(`Cannot construct ${e.name} due to unbound types`,i)},be([],i,(n=>(n.splice(1,0,null),e.U.ha[t-1]=Ce(r,n,null,a,o),[]))),[]}))},b:function(e,t,r,n,a,o,i,s){e>>>=0,t>>>=0,a>>>=0,o>>>=0,i>>>=0;var c=xe(r,n>>>0);t=R(t),t=Ie(t),o=ge(a,o),be([],[e],(e=>{function n(){Te(`Cannot call ${a} due to unbound types`,c)}var a=`${(e=e[0]).name}.${t}`;t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.U.ya.push(t);var u=e.U.ea,l=u[t];return void 0===l||void 0===l.Y&&l.className!==e.name&&l.ga===r-2?(n.ga=r-2,n.className=e.name,u[t]=n):(Q(u,t,a),u[t].Y[r-2]=n),be([],c,(n=>(n=Ce(a,n,e,o,i),void 0===u[t].Y?(n.ga=r-2,u[t]=n):u[t].Y[r-2]=n,[]))),[]}))},r:function(e,t,r,n,a,o,i,s,c,u){e>>>=0,r>>>=0,a>>>=0,o>>>=0,i>>>=0,s>>>=0,c>>>=0,u>>>=0,t=R(t>>>=0),a=ge(n>>>0,a),be([],[e],(e=>{var n=`${(e=e[0]).name}.${t}`,l={get(){Te(`Cannot access ${n} due to unbound types`,[r,i])},enumerable:!0,configurable:!0};return l.set=c?()=>Te(`Cannot access ${n} due to unbound types`,[r,i]):()=>{throw new O(n+" is a read-only property")},Object.defineProperty(e.U.ea,t,l),be([],c?[r,i]:[r],(r=>{var i=r[0],l={get(){var t=Pe(this,e,n+" getter");return i.W(a(o,t))},enumerable:!0};if(c){c=ge(s,c);var y=r[1];l.set=function(t){var r=Pe(this,e,n+" setter"),a=[];c(u,r,y.$(a,t)),Ae(a)}}return Object.defineProperty(e.U.ea,t,l),[]})),[]}))},F:function(e){return _(e>>>0,Ve)},t:function(e,t,r,n){function a(){}t=R(t>>>0),a.values={},_(e>>>0,{name:t,constructor:a,W:function(e){return this.constructor.values[e]},$:(e,t)=>t.value,da:ze(t,r>>>0,n),ca:null}),J(t,a)},n:function(e,t,r){t>>>=0;var n=Fe(e>>>0,"enum");t=R(t),e=n.constructor,n=Object.create(n.constructor.prototype,{value:{value:r},constructor:{value:Y(`${n.name}_${t}`,(function(){}))}}),e.values[r]=n,e[t]=n},u:function(e,t,r){_(e>>>0,{name:t=R(t>>>0),W:e=>e,$:(e,t)=>t,da:Be(t,r>>>0),ca:null})},m:function(e,t,r,n,a,o){e>>>=0,n>>>=0,a>>>=0,o>>>=0;var i=xe(t,r>>>0);e=R(e),e=Ie(e),a=ge(n,a),J(e,(function(){Te(`Cannot call ${e} due to unbound types`,i)}),t-1),be([],i,(r=>(fe(e,Ce(e,[r[0],null].concat(r.slice(1)),null,a,o),t-1),[])))},p:function(e,t,r,n,a){e>>>=0,r>>>=0,t=R(t>>>0);let o=e=>e;if(0===n){var i=32-8*r;o=e=>e<<i>>>i,a=o(a)}_(e,{name:t,W:o,$:(e,t)=>t,da:W(t,r,0!==n),ca:null})},l:function(e,t,r){function n(e){return new a(d.buffer,g[e+4>>>2>>>0],g[e>>>2>>>0])}var a=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];_(e>>>0,{name:r=R(r>>>0),W:n,da:n},{va:!0})},o:function(e){_(e>>>0,Ke)},G:function(e,t){_(e>>>0,{name:t=R(t>>>0),W(e){var t=(t=e+4>>>0)?((e=0,t)=>{var r=f;if(16<(t=De(r,e>>>=0,t,!0))-e&&r.buffer&&Ne)return Ne.decode(r.subarray(e,t));for(var n="";e<t;){var a=r[e++];if(128&a){var o=63&r[e++];if(192==(224&a))n+=String.fromCharCode((31&a)<<6|o);else{var i=63&r[e++];65536>(a=224==(240&a)?(15&a)<<12|o<<6|i:(7&a)<<18|o<<12|i<<6|63&r[e++])?n+=String.fromCharCode(a):(a-=65536,n+=String.fromCharCode(55296|a>>10,56320|1023&a))}}else n+=String.fromCharCode(a)}return n})(t,g[e>>>2>>>0]):"";return ut(e),t},$(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var r="string"==typeof t;if(!(r||ArrayBuffer.isView(t)&&1==t.BYTES_PER_ELEMENT))throw new O("Cannot pass non-string to std::string");var n=r?ke(t):t.length,a=ct(4+n+1),o=a+4;return g[a>>>2>>>0]=n,r?Re(t,o,n+1):f.set(t,o>>>0),null!==e&&e.push(ut,a),a},da:ie,ca(e){ut(e)}})},s:function(e,t,r){if(t>>>=0,r=R(r>>>=0),2===t)var n=_e,a=We,o=He;else n=Ze,a=Le,o=Ge;_(e>>>0,{name:r,W:e=>{var r=n(e+4,g[e>>>2>>>0]*t,!0);return ut(e),r},$:(e,n)=>{if("string"!=typeof n)throw new O(`Cannot pass non-string to C++ string type ${r}`);var i=o(n),s=ct(4+i+t);return g[s>>>2>>>0]=i/t,a(n,s+4,i+t),null!==e&&e.push(ut,s),s},da:ie,ca(e){ut(e)}})},I:function(e,t){_(e>>>0,{wa:!0,name:t=R(t>>>0),W:()=>{},$:()=>{}})},B:()=>{B=!1,Xe=0},c:function(e,t,r){var[n,...a]=((e,t)=>{for(var r=Array(e),n=0;n<e;++n)r[n]=Fe(g[t+4*n>>>2>>>0],`parameter ${n}`);return r})(e,t>>>0),o=n.$.bind(n),i=a.map((e=>e.da.bind(e)));e--;var s=Array(e);return t=`methodCaller<(${a.map((e=>e.name))}) => ${n.name}>`,(e=>{var t=Ye.length;return Ye.push(e),t})(Y(t,((t,n,a,c)=>{for(var u=0,l=0;l<e;++l)s[l]=i[l](c+u),u+=8;switch(r){case 0:var y=$e(t).apply(null,s);break;case 2:y=Reflect.construct($e(t),s);break;case 3:y=s[0];break;case 1:y=$e(t)[Qe(n)](...s)}return y=o(t=[],y),t.length&&(g[a>>>2>>>0]=Ue(t)),y})))},f:Me,j:function(e,t){return t>>>=0,e=$e(e>>>0),t=$e(t),Ue(e[t])},i:function(e){9<(e>>>=0)&&(Se[e+1]+=1)},e:function(e,t,r,n,a){return Ye[e>>>0](t>>>0,r>>>0,n>>>0,a>>>0)},D:function(){return Ue([])},k:function(e){return Ue(Qe(e>>>0))},d:function(e){var t=$e(e>>>=0);Ae(t),Me(e)},C:(e,t)=>{if(Je[e]&&(clearTimeout(Je[e].id),delete Je[e]),!t)return 0;var r=setTimeout((()=>{delete Je[e],(e=>{if(!C)try{if(e(),!(B||0<Xe))try{c=e=c,tt(e)}catch(e){et(e)}}catch(e){et(e)}})((()=>st(e,performance.now())))}),t);return Je[e]={id:r,Ca:t},0},y:function(e,t,r,n){r>>>=0,n>>>=0;var a=(new Date).getFullYear(),o=new Date(a,0,1).getTimezoneOffset();a=new Date(a,6,1).getTimezoneOffset(),g[e>>>0>>>2>>>0]=60*Math.max(o,a),m[t>>>0>>>2>>>0]=Number(o!=a),e=(t=e=>{var t=Math.abs(e);return`UTC${0<=e?"-":"+"}${String(Math.floor(t/60)).padStart(2,"0")}${String(t%60).padStart(2,"0")}`})(o),t=t(a),a<o?(Re(e,r,17),Re(t,n,17)):(Re(e,n,17),Re(t,r,17))},J:function(e){e>>>=0;var t=f.length;if(4294901760<e)return!1;for(var r=1;4>=r;r*=2){var n=t*(1+.2/r);n=Math.min(n,e+100663296);e:{n=(Math.min(4294901760,65536*Math.ceil(Math.max(e,n)/65536))-y.buffer.byteLength+65535)/65536|0;try{y.grow(n),I();var a=1;break e}catch(e){}a=void 0}if(a)return!0}return!1},z:function(e,t){e>>>=0,t>>>=0;var r,n=0,a=0;for(r of nt()){var o=t+n;g[e+a>>>2>>>0]=o,n+=Re(r,o,1/0)+1,a+=4}return 0},E:function(e,t){e>>>=0,t>>>=0;var r=nt();for(var n of(g[e>>>2>>>0]=r.length,e=0,r))e+=ke(n)+1;return g[t>>>2>>>0]=e,0},A:tt,x:function(e,t){return e>>>=0,at(f.subarray(e>>>0,e+(t>>>0)>>>0)),0}},yt=await async function(){function e(e){return yt=e.exports,yt=function(){var e=yt;e=Object.assign({},e);var t=e=>t=>e(t)>>>0;return e.O=t(e.O),e.Q=t(e.Q),e._emscripten_stack_alloc=t(e._emscripten_stack_alloc),e.emscripten_stack_get_current=(e=>()=>e()>>>0)(e.emscripten_stack_get_current),e}(),y=yt.L,I(),de=yt.S,e=yt,n._main=ot=e.N,it=e.O,st=e.P,ct=e.Q,ut=e.R,E--,n.monitorRunDependencies?.(E),0==E&&S&&(e=S,S=null,e()),yt}E++,n.monitorRunDependencies?.(E);var t={a:lt};return n.instantiateWasm?new Promise((r=>{n.instantiateWasm(t,((t,n)=>{r(e(t))}))})):(P??=n.locateFile?n.locateFile?n.locateFile("seal_throws_wasm_cf_worker.wasm",i):i+"seal_throws_wasm_cf_worker.wasm":new URL("seal_throws_wasm_cf_worker.wasm",import.meta.url).href,e((await async function(e){var t=P;if(!s)try{var r=fetch(t,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(r,e)}catch(e){A(`wasm streaming compile failed: ${e}`),A("falling back to ArrayBuffer instantiation")}return j(t,e)}(t)).instance))}();if(n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);0<n.preInit.length;)n.preInit.shift()();return function e(){function t(){if(n.calledRun=!0,!C){if(x=!0,yt.M(),u?.(n),n.onRuntimeInitialized?.(),!n.noInitialRun){var e=ot;try{var t=e(0,0);c=t,tt(t)}catch(e){et(e)}}if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)e=n.postRun.shift(),V.push(e);U(V)}}if(0<E)S=e;else{if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)F();U(z),0<E?S=e:n.setStatus?(n.setStatus("Running..."),setTimeout((()=>{setTimeout((()=>n.setStatus("")),1),t()}),1)):t()}}(),x?n:new Promise(((e,t)=>{u=e,l=t}))}const t="Unsupported vector type";const r=new class{constructor(){this.registry=void 0,"undefined"!=typeof FinalizationRegistry&&(this.registry=new FinalizationRegistry((e=>{try{e.resource.delete()}catch(e){}})))}register(e,t){if(!this.registry)return{unregister:()=>{},reregister:()=>{}};const r=e,n={resource:t};return this.registry.register(e,n,r),{unregister:()=>{this.registry?.unregister(r)},reregister:t=>{this.registry?.unregister(r);const n={resource:t};this.registry?.register(e,n,r)}}}};function n(e,t){return r.register(e,t)}const a=({loader:e})=>(e=>({Exception:t,MemoryPoolHandle:r,PlainText:a,Vector:o})=>i=>{const s=e.BatchEncoder;let c;try{c=new s(i.instance)}catch(e){throw t.safe(e)}const u={get instance(){return c},unsafeInject(e){u.delete(),c=e,l.reregister(c)},delete(){c&&(l.unregister(),c.delete(),c=void 0)},encode(e,r){try{if(e.constructor===Int32Array){if(r)return void c.encode(e,r.instance,"INT32");const t=a();return c.encode(e,t.instance,"INT32"),t}if(e.constructor===Uint32Array){if(r)return void c.encode(e,r.instance,"UINT32");const t=a();return c.encode(e,t.instance,"UINT32"),t}if(e.constructor===BigInt64Array){const t=e.toString().split(",");if(r)return void c.encode(t,r.instance,"INT64");const n=a();return c.encode(t,n.instance,"INT64"),n}if(e.constructor===BigUint64Array){const t=e.toString().split(",");if(r)return void c.encode(t,r.instance,"UINT64");const n=a();return c.encode(t,n.instance,"UINT64"),n}throw new Error("Unsupported array type! `array` must be of type Int32Array, Uint32Array, BigInt64Array, or BigUint64Array.")}catch(e){throw t.safe(e)}},decode(e,n=!0,a=r.global){try{if(n){const t=o(),r=c.decodeInt32(e.instance,a);t.unsafeInject(r),t.setType("Int32Array");const n=t.toArray();return t.delete(),n}const t=o(),r=c.decodeUint32(e.instance,a);t.unsafeInject(r),t.setType("Uint32Array");const i=t.toArray();return t.delete(),i}catch(e){throw t.safe(e)}},decodeBigInt(e,n=!0,a=r.global){try{if(n){const t=c.decodeBigInt(e.instance,!0,a);return BigInt64Array.from(t)}const t=c.decodeBigInt(e.instance,!1,a);return BigUint64Array.from(t)}catch(e){throw t.safe(e)}},get slotCount(){return c.slotCount()}},l=n(u,c);return u})(e.library),o=e=>({Exception:t,ComprModeType:r,ParmsIdType:a,MemoryPoolHandle:i,Vector:s})=>(c={})=>{const u=e.Ciphertext;let l=function(e={}){const{context:r,parmsId:n,sizeCapacity:a,pool:o=i.global}=e;try{if(r||n||void 0!==a){if(r&&!n&&void 0===a)return new u(r.instance,o);if(r&&n&&void 0===a)return new u(r.instance,n.instance,o);if(r&&n&&void 0!==a)return new u(r.instance,n.instance,a,o);throw new Error("Must specify a (context), (context, parmsId), or (context, parmsId, sizeCapacity)")}return new u(o)}catch(e){throw t.safe(e)}}(c);const y={get instance(){return l},unsafeInject(e){y.delete(),l=e,d.reregister(l)},delete(){l&&(d.unregister(),l.delete(),l=void 0)},reserve(e,r){try{return l.reserve(e.instance,r)}catch(e){throw t.safe(e)}},resize(e){try{return l.resize(e)}catch(e){throw t.safe(e)}},release(){l.release()},get coeffModulusSize(){return l.coeffModulusSize()},get polyModulusDegree(){return l.polyModulusDegree()},get size(){return l.size()},get sizeCapacity(){return l.sizeCapacity()},get isTransparent(){return l.isTransparent()},get isNttForm(){return l.isNttForm()},get parmsId(){const e=a();return e.inject(l.parmsId()),e},get scale(){return l.scale()},setScale(e){l.setScale(e)},get pool(){return l.pool()},save:(e=r.zstd)=>l.saveToString(e),saveArray(e=r.zstd){const t=s(),n=l.saveToArray(e);t.unsafeInject(n),t.setType("Uint8Array");const a=t.toArray();return t.delete(),a},load(e,r){try{l.loadFromString(e.instance,r)}catch(e){throw t.safe(e)}},loadArray(e,r){try{l.loadFromArray(e.instance,r)}catch(e){throw t.safe(e)}},copy(e){try{l.copy(e.instance)}catch(e){throw t.safe(e)}},clone(){try{const n=l.clone(),c=o(e)({Exception:t,ComprModeType:r,ParmsIdType:a,MemoryPoolHandle:i,Vector:s})();return c.unsafeInject(n),c}catch(e){throw t.safe(e)}},move(e){try{l.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}},d=n(y,l);return y},i=({loader:e})=>{const t=e.library;return o(t)},s=({loader:e})=>(e=>({Exception:t,MemoryPoolHandle:r,PlainText:a,Vector:o})=>i=>{const s=e.CKKSEncoder;let c;try{c=new s(i.instance)}catch(e){throw t.safe(e)}const u={get instance(){return c},unsafeInject(e){u.delete(),c=e,l.reregister(c)},delete(){c&&(l.unregister(),c.delete(),c=void 0)},encode(e,n,o,i=r.global){try{if(e.constructor===Float64Array){if(o)return void c.encode(e,n,o.instance,i);const t=a();return c.encode(e,n,t.instance,i),t}throw new Error("Unsupported array type! `array` must be of type Float64Array.")}catch(e){throw t.safe(e)}},decode(e,n=r.global){try{const t=o(),r=c.decodeDouble(e.instance,n);t.unsafeInject(r),t.setType("Float64Array");const a=t.toArray();return t.delete(),a}catch(e){throw t.safe(e)}},get slotCount(){return c.slotCount()}},l=n(u,c);return u})(e.library),c=({loader:e})=>(e=>({Exception:t,SecurityLevel:r,Vector:n})=>()=>{const a=e.CoeffModulus.MaxBitCount,o=e.CoeffModulus.BFVDefault,i=e.CoeffModulus.CreateFromArray;return{MaxBitCount:(e,t=r.tc128)=>a(e,t),BFVDefault(e,a=r.tc128){try{const t=n(),r=o(e,a);return t.unsafeInject(r),t.setType("Modulus"),t}catch(e){throw t.safe(e)}},Create(e,r){try{if(r.constructor!==Int32Array)throw new Error("Unsupported argument type! `bitSizes` must be an Int32Array");const t=n(),a=i(e,r);return t.unsafeInject(a),t.setType("Modulus"),t}catch(e){throw t.safe(e)}}}})(e.library),u=({loader:e})=>(e=>()=>()=>{const t=e.ComprModeType.none,r=e.ComprModeType.zlib,n=e.ComprModeType.zstd;return{get none(){return t},get zlib(){return r},get zstd(){return n}}})(e.library),l=({loader:e})=>(e=>({ParmsIdType:t,ContextData:r,SecurityLevel:a})=>(o,i=!0,s=a.tc128)=>{let c=new(0,e.SEALContext)(o.instance,i,s);const u={get instance(){return c},unsafeInject(e){u.delete(),c=e,l.reregister(c)},delete(){c&&(l.unregister(),c.delete(),c=void 0)},toHuman:()=>c.toHuman(),getContextData(e){const t=c.getContextData(e.instance),n=r();return n.unsafeInject(t),n},get keyContextData(){const e=c.keyContextData(),t=r();return t.unsafeInject(e),t},get firstContextData(){const e=c.firstContextData(),t=r();return t.unsafeInject(e),t},get lastContextData(){const e=c.lastContextData(),t=r();return t.unsafeInject(e),t},parametersSet:()=>c.parametersSet(),get keyParmsId(){const e=c.keyParmsId(),r=t();return r.inject(e),r},get firstParmsId(){const e=c.firstParmsId(),r=t();return r.inject(e),r},get lastParmsId(){const e=c.lastParmsId(),r=t();return r.inject(e),r},get usingKeyswitching(){return c.usingKeyswitching()}},l=n(u,c);return u})(e.library),y=e=>({Exception:e,EncryptionParameters:t,ParmsIdType:r,EncryptionParameterQualifiers:a})=>()=>{let o;const i={get instance(){return o},unsafeInject(e){i.delete(),o=e,s.reregister(o)},delete(){o&&(s.unregister(),o.delete(),o=void 0)},get parms(){const e=o.parms(),r=t();return r.unsafeInject(e),r},get parmsId(){const e=r();return e.inject(o.parmsId()),e},get qualifiers(){const e=a();return e.unsafeInject(o.qualifiers()),e},get totalCoeffModulusBitCount(){return o.totalCoeffModulusBitCount()},get prevContextData(){const n=y()({Exception:e,EncryptionParameters:t,ParmsIdType:r,EncryptionParameterQualifiers:a})();return n.unsafeInject(o.prevContextData()),n},get nextContextData(){const n=y()({Exception:e,EncryptionParameters:t,ParmsIdType:r,EncryptionParameterQualifiers:a})();return n.unsafeInject(o.nextContextData()),n},get chainIndex(){return o.chainIndex()}},s=n(i,o);return i},d=({loader:e})=>(e.library,y()),f=({loader:e})=>(e=>({Exception:t,PlainText:r})=>(a,o)=>{const i=e.Decryptor;let s;try{s=new i(a.instance,o.instance)}catch(e){throw t.safe(e)}const c={get instance(){return s},unsafeInject(e){c.delete(),s=e,u.reregister(s)},delete(){s&&(u.unregister(),s.delete(),s=void 0)},decrypt(e,n){try{if(n)return void s.decrypt(e.instance,n.instance);const t=r();return s.decrypt(e.instance,t.instance),t}catch(e){throw t.safe(e)}},invariantNoiseBudget(e){try{return s.invariantNoiseBudget(e.instance)}catch(e){throw t.safe(e)}}},u=n(c,s);return c})(e.library),h=()=>()=>()=>{let e;const t={get instance(){return e},unsafeInject(n){t.delete(),e=n,r.reregister(e)},delete(){e&&(r.unregister(),e.delete(),e=void 0)},parametersSet:()=>e.parametersSet(),get usingFFT(){return e.usingFFT},get usingNTT(){return e.usingNTT},get usingBatching(){return e.usingBatching},get usingFastPlainLift(){return e.usingFastPlainLift},get usingDescendingModulusChain(){return e.usingDescendingModulusChain},get securityLevel(){return e.securityLevel}},r=n(t,e);return t},p=({loader:e})=>(e=>({Exception:t,ComprModeType:r,Modulus:a,SchemeType:o,ParmsIdType:i,Vector:s})=>(c=o.none)=>{let u=new(0,e.EncryptionParameters)(c);const l={get instance(){return u},unsafeInject(e){l.delete(),u=e,y.reregister(u)},delete(){u&&(y.unregister(),u.delete(),u=void 0)},setPolyModulusDegree(e){try{u.setPolyModulusDegree(e)}catch(e){throw t.safe(e)}},setCoeffModulus(e){try{u.setCoeffModulus(e.instance)}catch(e){throw t.safe(e)}},setPlainModulus(e){try{u.setPlainModulus(e.instance)}catch(e){throw t.safe(e)}},get scheme(){return u.scheme()},get polyModulusDegree(){return u.polyModulusDegree()},get coeffModulus(){const e=s(),t=u.coeffModulus();e.unsafeInject(t),e.setType("Modulus");const r=e.toArray();return e.delete(),r},get plainModulus(){const e=u.plainModulus(),t=a(BigInt(0));return t.inject(e),t},get parmsId(){const e=i();return e.inject(u.parmsId()),e},save:(e=r.zstd)=>u.saveToString(e),saveArray(e=r.zstd){const t=s(),n=u.saveToArray(e);t.unsafeInject(n),t.setType("Uint8Array");const a=t.toArray();return t.delete(),a},load(e){try{u.loadFromString(e)}catch(e){throw t.safe(e)}},loadArray(e){try{u.loadFromArray(e)}catch(e){throw t.safe(e)}}},y=n(l,u);return l})(e.library),m=({loader:e})=>(e=>({Exception:t,MemoryPoolHandle:r,CipherText:a,Serializable:o})=>(i,s,c)=>{const u=e.Encryptor;let l=function(e,r,n){try{return n?new u(e.instance,r.instance,n.instance):new u(e.instance,r.instance)}catch(e){throw t.safe(e)}}(i,s,c);const y={get instance(){return l},unsafeInject(e){y.delete(),l=e,d.reregister(l)},delete(){l&&(d.unregister(),l.delete(),l=void 0)},encrypt(e,n,o=r.global){try{if(n)return void l.encrypt(e.instance,n.instance,o);const t=a();return l.encrypt(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},encryptSerializable(e,n=r.global){try{const t=o(),r=l.encryptSerializable(e.instance,n);return t.unsafeInject(r),t}catch(e){throw t.safe(e)}},encryptSymmetric(e,n,o=r.global){try{if(n)return void l.encryptSymmetric(e.instance,n.instance,o);const t=a();return l.encryptSymmetric(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},encryptSymmetricSerializable(e,n=r.global){try{const t=o(),r=l.encryptSymmetricSerializable(e.instance,n);return t.unsafeInject(r),t}catch(e){throw t.safe(e)}},encryptZero(e,n=r.global){try{if(e)return void l.encryptZero(e.instance,n);const t=a();return l.encryptZero(t.instance,n),t}catch(e){throw t.safe(e)}},encryptZeroSerializable(e=r.global){try{const t=o(),r=l.encryptZeroSerializable(e);return t.unsafeInject(r),t}catch(e){throw t.safe(e)}}},d=n(y,l);return y})(e.library),g=({loader:e})=>(e=>({Exception:t,MemoryPoolHandle:r,CipherText:a,PlainText:o})=>i=>{const s=e.Evaluator;let c;try{c=new s(i.instance)}catch(e){throw t.safe(e)}const u={get instance(){return c},unsafeInject(e){u.delete(),c=e,l.reregister(c)},delete(){c&&(l.unregister(),c.delete(),c=void 0)},negate(e,r){try{if(r)return void c.negate(e.instance,r.instance);const t=a();return c.negate(e.instance,t.instance),t}catch(e){throw t.safe(e)}},add(e,r,n){try{if(n)return void c.add(e.instance,r.instance,n.instance);const t=a();return c.add(e.instance,r.instance,t.instance),t}catch(e){throw t.safe(e)}},sub(e,r,n){try{if(n)return void c.sub(e.instance,r.instance,n.instance);const t=a();return c.sub(e.instance,r.instance,t.instance),t}catch(e){throw t.safe(e)}},multiply(e,n,o,i=r.global){try{if(o)return void c.multiply(e.instance,n.instance,o.instance,i);const t=a();return c.multiply(e.instance,n.instance,t.instance,i),t}catch(e){throw t.safe(e)}},square(e,n,o=r.global){try{if(n)return void c.square(e.instance,n.instance,o);const t=a();return c.square(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},relinearize(e,n,o,i=r.global){try{if(o)return void c.relinearize(e.instance,n.instance,o.instance,i);const t=a();return c.relinearize(e.instance,n.instance,t.instance,i),t}catch(e){throw t.safe(e)}},cipherModSwitchToNext(e,n,o=r.global){try{if(n)return void c.cipherModSwitchToNext(e.instance,n.instance,o);const t=a();return c.cipherModSwitchToNext(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},cipherModSwitchTo(e,n,o,i=r.global){try{if(o)return void c.cipherModSwitchTo(e.instance,n.instance,o.instance,i);const t=a();return c.cipherModSwitchTo(e.instance,n.instance,t.instance,i),t}catch(e){throw t.safe(e)}},plainModSwitchToNext(e,r){try{if(r)return void c.plainModSwitchToNext(e.instance,r.instance);const t=o();return c.plainModSwitchToNext(e.instance,t.instance),t}catch(e){throw t.safe(e)}},plainModSwitchTo(e,r,n){try{if(n)return void c.plainModSwitchTo(e.instance,r.instance,n.instance);const t=o();return c.plainModSwitchTo(e.instance,r.instance,t.instance),t}catch(e){throw t.safe(e)}},rescaleToNext(e,n,o=r.global){try{if(n)return void c.rescaleToNext(e.instance,n.instance,o);const t=a();return c.rescaleToNext(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},rescaleTo(e,n,o,i=r.global){try{if(o)return void c.rescaleTo(e.instance,n.instance,o.instance,i);const t=a();return c.rescaleTo(e.instance,n.instance,t.instance,i),t}catch(e){throw t.safe(e)}},modReduceToNext(e,n,o=r.global){try{if(n)return void c.modReduceToNext(e.instance,n.instance,o);const t=a();return c.modReduceToNext(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},modReduceTo(e,n,o,i=r.global){try{if(o)return void c.modReduceTo(e.instance,n.instance,o.instance,i);const t=a();return c.modReduceTo(e.instance,n.instance,t.instance,i),t}catch(e){throw t.safe(e)}},exponentiate(e,n,o,i,s=r.global){try{if(i)return void c.exponentiate(e.instance,n,o.instance,i.instance,s);const t=a();return c.exponentiate(e.instance,n,o.instance,t.instance,s),t}catch(e){throw t.safe(e)}},addPlain(e,n,o,i=r.global){try{if(o)return void c.addPlain(e.instance,n.instance,o.instance,i);const t=a();return c.addPlain(e.instance,n.instance,t.instance,i),t}catch(e){throw t.safe(e)}},subPlain(e,n,o,i=r.global){try{if(o)return void c.subPlain(e.instance,n.instance,o.instance,i);const t=a();return c.subPlain(e.instance,n.instance,t.instance,i),t}catch(e){throw t.safe(e)}},multiplyPlain(e,n,o,i=r.global){try{if(o)return void c.multiplyPlain(e.instance,n.instance,o.instance,i);const t=a();return c.multiplyPlain(e.instance,n.instance,t.instance,i),t}catch(e){throw t.safe(e)}},plainTransformToNtt(e,n,a,i=r.global){try{if(a)return void c.plainTransformToNtt(e.instance,n.instance,a.instance,i);const t=o();return c.plainTransformToNtt(e.instance,n.instance,t.instance,i),t}catch(e){throw t.safe(e)}},cipherTransformToNtt(e,r){try{if(r)return void c.cipherTransformToNtt(e.instance,r.instance);const t=a();return c.cipherTransformToNtt(e.instance,t.instance),t}catch(e){throw t.safe(e)}},cipherTransformFromNtt(e,r){try{if(r)return void c.cipherTransformFromNtt(e.instance,r.instance);const t=a();return c.cipherTransformFromNtt(e.instance,t.instance),t}catch(e){throw t.safe(e)}},applyGalois(e,n,o,i,s=r.global){try{if(i)return void c.applyGalois(e.instance,n,o.instance,i.instance,s);const t=a();return c.applyGalois(e.instance,n,o.instance,t.instance,s),t}catch(e){throw t.safe(e)}},rotateRows(e,n,o,i,s=r.global){try{if(i)return void c.rotateRows(e.instance,n,o.instance,i.instance,s);const t=a();return c.rotateRows(e.instance,n,o.instance,t.instance,s),t}catch(e){throw t.safe(e)}},rotateColumns(e,n,o,i=r.global){try{if(o)return void c.rotateColumns(e.instance,n.instance,o.instance,i);const t=a();return c.rotateColumns(e.instance,n.instance,t.instance,i),t}catch(e){throw t.safe(e)}},rotateVector(e,n,o,i,s=r.global){try{if(i)return void c.rotateVector(e.instance,n,o.instance,i.instance,s);const t=a();return c.rotateVector(e.instance,n,o.instance,t.instance,s),t}catch(e){throw t.safe(e)}},complexConjugate(e,n,o,i=r.global){try{if(o)return void c.complexConjugate(e.instance,n.instance,o.instance,i);const t=a();return c.complexConjugate(e.instance,n.instance,t.instance,i),t}catch(e){throw t.safe(e)}},sumElements(e,n,o,i,s=r.global){try{if(i)return void c.sumElements(e.instance,n.instance,o,i.instance,s);const t=a();return c.sumElements(e.instance,n.instance,o,t.instance,s),t}catch(e){throw t.safe(e)}},dotProduct(e,n,o,i,s,u,l=r.global){try{if(u)return c.multiply(e.instance,n.instance,u.instance,l),c.relinearize(u.instance,o.instance,u.instance,l),void c.sumElements(u.instance,i.instance,s,u.instance,l);const t=a();return c.multiply(e.instance,n.instance,t.instance,l),c.relinearize(t.instance,o.instance,t.instance,l),c.sumElements(t.instance,i.instance,s,t.instance,l),t}catch(e){throw t.safe(e)}},dotProductPlain(e,n,o,i,s,u=r.global){try{if(s)return c.multiplyPlain(e.instance,n.instance,s.instance,u),void c.sumElements(s.instance,o.instance,i,s.instance,u);const t=a();return c.multiplyPlain(e.instance,n.instance,t.instance,u),c.sumElements(t.instance,o.instance,i,t.instance,u),t}catch(e){throw t.safe(e)}}},l=n(u,c);return u})(e.library),w=({loader:e})=>(e=>()=>()=>{const t=e.getException;return{safe:e=>"number"==typeof e?new Error(t(e)):e instanceof Error?e:new Error(e||"Unknown Error!")}})(e.library),v=e=>({Exception:t,ComprModeType:r,Vector:a})=>()=>{const o=e.GaloisKeys;let i=new o;const s={get instance(){return i},inject(e){s.delete(),i=new o(e),c.reregister(i)},delete(){i&&(c.unregister(),i.delete(),i=void 0)},get size(){return i.size()},getIndex(e){try{return i.getIndex(e)}catch(e){throw t.safe(e)}},hasKey(e){try{return i.hasKey(e)}catch(e){throw t.safe(e)}},save(e=r.zstd){try{return i.saveToString(e)}catch(e){throw t.safe(e)}},saveArray(e=r.zstd){const t=a(),n=i.saveToArray(e);t.unsafeInject(n),t.setType("Uint8Array");const o=t.toArray();return t.delete(),o},load(e,r){try{i.loadFromString(e.instance,r)}catch(e){throw t.safe(e)}},loadArray(e,r){try{i.loadFromArray(e.instance,r)}catch(e){throw t.safe(e)}},copy(e){try{i.copy(e.instance)}catch(e){throw t.safe(e)}},clone(){try{const n=i.clone(),o=v(e)({Exception:t,ComprModeType:r,Vector:a})();return o.inject(n),o}catch(e){throw t.safe(e)}},move(e){try{i.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}},c=n(s,i);return s},T=({loader:e})=>{const t=e.library;return v(t)},b=({loader:e})=>(e=>({Exception:t,PublicKey:r,SecretKey:a,RelinKeys:o,GaloisKeys:i,Serializable:s})=>(c,u)=>{const l=e.KeyGenerator;let y=function(e,r){try{return r?new l(e.instance,r.instance):new l(e.instance)}catch(e){throw t.safe(e)}}(c,u);const d={get instance(){return y},unsafeInject(e){d.delete(),y=e,f.reregister(y)},delete(){y&&(f.unregister(),y.delete(),y=void 0)},secretKey(){try{const e=a(),t=y.secretKey();return e.inject(t),e}catch(e){throw t.safe(e)}},createPublicKey(){try{const e=r();return y.createPublicKey(e.instance),e}catch(e){throw t.safe(e)}},createPublicKeySerializable(){try{const e=s(),t=y.createPublicKeySerializable();return e.unsafeInject(t),e}catch(e){throw t.safe(e)}},createRelinKeys(){try{const e=o();return y.createRelinKeys(e.instance),e}catch(e){throw t.safe(e)}},createRelinKeysSerializable(){try{const e=s(),t=y.createRelinKeysSerializable();return e.unsafeInject(t),e}catch(e){throw t.safe(e)}},createGaloisKeys(e=Int32Array.from([])){try{const t=i();return y.createGaloisKeys(e,t.instance),t}catch(e){throw t.safe(e)}},createGaloisKeysSerializable(e=Int32Array.from([])){try{const t=s(),r=y.createGaloisKeysSerializable(e);return t.unsafeInject(r),t}catch(e){throw t.safe(e)}}},f=n(d,y);return d})(e.library),A=({loader:e})=>(e=>()=>()=>{const t=e.MemoryPoolHandle.MemoryPoolHandleGlobal,r=e.MemoryPoolHandle.MemoryPoolHandleThreadLocal;return{get global(){return t()},get threadLocal(){return r()}}})(e.library),C=({loader:e})=>(e=>({Exception:t,ComprModeType:r,Vector:a})=>o=>{const i=e.Modulus;let s=function(e){try{const t=new i;return t.setValue(e.toString()),t}catch(e){throw t.safe(e)}}(o);const c={get instance(){return s},inject(e){c.delete(),s=new i(e),u.reregister(s)},delete(){s&&(u.unregister(),s.delete(),s=void 0)},setValue(e){try{s.setValue(e.toString())}catch(e){throw t.safe(e)}},get value(){return BigInt(s.value())},get bitCount(){return s.bitCount()},get isZero(){return s.isZero()},get isPrime(){return s.isPrime()},save:(e=r.zstd)=>s.saveToString(e),saveArray(e=r.zstd){const t=a(),n=s.saveToArray(e);t.unsafeInject(n),t.setType("Uint8Array");const o=t.toArray();return t.delete(),o},load(e){try{s.loadFromString(e)}catch(e){throw t.safe(e)}},loadArray(e){try{s.loadFromArray(e)}catch(e){throw t.safe(e)}}},u=n(c,s);return c})(e.library),x=({loader:e})=>(e=>({Exception:t})=>()=>{const r=e.ParmsIdType;let a;const o={get instance(){return a},inject(e){o.delete(),a=new r(e),i.reregister(a)},delete(){a&&(i.unregister(),a.delete(),a=void 0)},get values(){try{const e=a.values();return BigUint64Array.from(e)}catch(e){throw t.safe(e)}}},i=n(o,a);return o})(e.library),I=({loader:e})=>(e=>({Exception:t,Modulus:r,Vector:n})=>()=>{const a=e.PlainModulus.Batching,o=e.PlainModulus.BatchingVector;return{Batching(e,n){try{const t=r(BigInt(0));return t.inject(a(e,n)),t}catch(e){throw t.safe(e)}},BatchingVector(e,r){try{const t=n();t.from(r);const a=o(e,t.instance);return t.delete(),a}catch(e){throw t.safe(e)}}}})(e.library),P=e=>({Exception:t,ComprModeType:r,ParmsIdType:a,MemoryPoolHandle:o,Vector:i})=>(s={})=>{const c=e.Plaintext;let u=function(e={}){const{capacity:r,coeffCount:n,pool:a=o.global}=e;try{if(void 0===r&&void 0===n)return new c(a);if(void 0===r&&void 0!==n)return new c(n,a);if(void 0!==r&&void 0!==n)return new c(r,n,a);throw new Error("Must specify a (coeffCount), (coeffCount, capacity)")}catch(e){throw t.safe(e)}}(s);const l={get instance(){return u},unsafeInject(e){l.delete(),u=e,y.reregister(u)},delete(){u&&(y.unregister(),u.delete(),u=void 0)},reserve(e){try{return u.reserve(e)}catch(e){throw t.safe(e)}},shrinkToFit(){u.shrinkToFit()},release(){u.release()},resize(e){try{u.resize(e)}catch(e){throw t.safe(e)}},setZero(){u.setZero()},get isZero(){return u.isZero()},get capacity(){return u.capacity()},get coeffCount(){return u.coeffCount()},get significantCoeffCount(){return u.significantCoeffCount()},get nonzeroCoeffCount(){return u.nonzeroCoeffCount()},toPolynomial(){try{return u.toPolynomial()}catch(e){throw t.safe(e)}},get isNttForm(){return u.isNttForm()},get parmsId(){const e=a();return e.inject(u.parmsId()),e},get scale(){return u.scale()},setScale(e){u.setScale(e)},get pool(){return u.pool()},save:(e=r.zstd)=>u.saveToString(e),saveArray(e=r.zstd){const t=i(),n=u.saveToArray(e);t.unsafeInject(n),t.setType("Uint8Array");const a=t.toArray();return t.delete(),a},load(e,r){try{u.loadFromString(e.instance,r)}catch(e){throw t.safe(e)}},loadArray(e,r){try{u.loadFromArray(e.instance,r)}catch(e){throw t.safe(e)}},copy(e){try{u.copy(e.instance)}catch(e){throw t.safe(e)}},clone(){try{const n=u.clone(),s=P(e)({Exception:t,ComprModeType:r,ParmsIdType:a,MemoryPoolHandle:o,Vector:i})();return s.unsafeInject(n),s}catch(e){throw t.safe(e)}},move(e){try{u.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}},y=n(l,u);return l},E=({loader:e})=>{const t=e.library;return P(t)},S=e=>({Exception:t,ComprModeType:r,Vector:a})=>()=>{const o=e.PublicKey;let i=new o;const s={get instance(){return i},inject(e){s.delete(),i=new o(e),c.reregister(i)},delete(){i&&(c.unregister(),i.delete(),i=void 0)},save(e=r.zstd){try{return i.saveToString(e)}catch(e){throw t.safe(e)}},saveArray(e=r.zstd){const t=a(),n=i.saveToArray(e);t.unsafeInject(n),t.setType("Uint8Array");const o=t.toArray();return t.delete(),o},load(e,r){try{i.loadFromString(e.instance,r)}catch(e){throw t.safe(e)}},loadArray(e,r){try{i.loadFromArray(e.instance,r)}catch(e){throw t.safe(e)}},copy(e){try{i.copy(e.instance)}catch(e){throw t.safe(e)}},clone(){try{const n=i.clone(),o=S(e)({Exception:t,ComprModeType:r,Vector:a})();return o.inject(n),o}catch(e){throw t.safe(e)}},move(e){try{i.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}},c=n(s,i);return s},M=({loader:e})=>{const t=e.library;return S(t)},j=e=>({Exception:t,ComprModeType:r,Vector:a})=>()=>{const o=e.RelinKeys;let i=new o;const s={get instance(){return i},inject(e){s.delete(),i=new o(e),c.reregister(i)},delete(){i&&(c.unregister(),i.delete(),i=void 0)},get size(){return i.size()},getIndex(e){try{return i.getIndex(e)}catch(e){throw t.safe(e)}},hasKey(e){try{return i.hasKey(e)}catch(e){throw t.safe(e)}},save(e=r.zstd){try{return i.saveToString(e)}catch(e){throw t.safe(e)}},saveArray(e=r.zstd){const t=a(),n=i.saveToArray(e);t.unsafeInject(n),t.setType("Uint8Array");const o=t.toArray();return t.delete(),o},load(e,r){try{i.loadFromString(e.instance,r)}catch(e){throw t.safe(e)}},loadArray(e,r){try{i.loadFromArray(e.instance,r)}catch(e){throw t.safe(e)}},copy(e){try{i.copy(e.instance)}catch(e){throw t.safe(e)}},clone(){try{const n=i.clone(),o=j(e)({Exception:t,ComprModeType:r,Vector:a})();return o.inject(n),o}catch(e){throw t.safe(e)}},move(e){try{i.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}},c=n(s,i);return s},$=({loader:e})=>{const t=e.library;return j(t)},U=({loader:e})=>(e=>()=>()=>{const t=e.SchemeType.none,r=e.SchemeType.bfv,n=e.SchemeType.ckks,a=e.SchemeType.bgv;return{get none(){return t},get bfv(){return r},get ckks(){return n},get bgv(){return a}}})(e.library);const V=e=>({Exception:t,ComprModeType:r,Vector:a})=>()=>{const o=e.SecretKey;let i=new o;const s={get instance(){return i},inject(e){s.delete(),i=new o(e),c.reregister(i)},delete(){i&&(c.unregister(),i.delete(),i=void 0)},save(e=r.zstd){try{return i.saveToString(e)}catch(e){throw t.safe(e)}},saveArray(e=r.zstd){const t=a(),n=i.saveToArray(e);t.unsafeInject(n),t.setType("Uint8Array");const o=t.toArray();return t.delete(),o},load(e,r){try{i.loadFromString(e.instance,r)}catch(e){throw t.safe(e)}},loadArray(e,r){try{i.loadFromArray(e.instance,r)}catch(e){throw t.safe(e)}},copy(e){try{i.copy(e.instance)}catch(e){throw t.safe(e)}},clone(){try{const n=i.clone(),o=V(e)({Exception:t,ComprModeType:r,Vect