node-seal
Version:
Homomorphic Encryption for TypeScript or JavaScript using Microsoft SEAL
1 lines • 56.1 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).SEAL=t()}(this,(function(){"use strict";var e="undefined"!=typeof document?document.currentScript:null;async function t(t={}){var r,n,a=t,o="./this.program",i="undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("throws_wasm_cf_worker_umd.js",document.baseURI).href,s="";try{s=new URL(".",i).href}catch{}n=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)},r=async e=>{if((e=await fetch(e,{credentials:"same-origin"})).ok)return e.arrayBuffer();throw Error(e.status+" : "+e.url)};var c,u,l,d,f,y,h,p,m,g,w,v,T,b,A,C=console.error.bind(console),x=!1,I=!1;function P(){var e=f.buffer;y=new Int8Array(e),p=new Int16Array(e),h=new Uint8Array(e),m=new Uint16Array(e),g=new Int32Array(e),w=new Uint32Array(e),v=new Float32Array(e),T=new Float64Array(e),b=new BigInt64Array(e),A=new BigUint64Array(e)}var E,S=0,M=null;function j(e){throw a.onAbort?.(e),C(e="Aborted("+e+")"),x=!0,e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info."),d?.(e),e}async function U(e,t){try{var a=await async function(e){if(!c)try{var t=await r(e);return new Uint8Array(t)}catch{}if(e==E&&c)e=new Uint8Array(c);else{if(!n)throw"both async and sync fetching of the wasm failed";e=n(e)}return e}(e);return await WebAssembly.instantiate(a,t)}catch(e){C(`failed to asynchronously prepare wasm: ${e}`),j(e)}}class ${name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var V=e=>{for(;0<e.length;)e.shift()(a)},z=[],F=[],R=()=>{var e=a.preRun.shift();F.push(e)},B=!0;class K{constructor(e){this.V=e-24}}var k=e=>{e>>>=0;for(var t="";;){var r=h[e++>>>0];if(!r)return t;t+=String.fromCharCode(r)}},N={},_={},D={},O=class extends Error{constructor(e){super(e),this.name="BindingError"}};function W(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(_.hasOwnProperty(e)){if(r.va)return;throw new O(`Cannot register type '${n}' twice`)}_[e]=t,delete D[e],N.hasOwnProperty(e)&&(t=N[e],delete N[e],t.forEach((e=>e())))}(e,t,r)}var L=(e,t,r)=>{switch(t){case 1:return r?e=>y[e>>>0]:e=>h[e>>>0];case 2:return r?e=>p[e>>>1>>>0]:e=>m[e>>>1>>>0];case 4:return r?e=>g[e>>>2>>>0]:e=>w[e>>>2>>>0];case 8:return r?e=>b[e>>>3>>>0]:e=>A[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,G=()=>{},X=e=>"undefined"==typeof FinalizationRegistry?(X=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))})),G=e=>{Z.unregister(e)},(X=e=>{var t=e.T;return t.Z&&Z.register(e,{T:t},e),e})(e));function Y(){}var q=(e,t)=>Object.defineProperty(t,"name",{value:e}),Q={},J=(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}},ee=(e,t,r)=>{if(a.hasOwnProperty(e)){if(void 0===r||void 0!==a[e].Y&&void 0!==a[e].Y[r])throw new O(`Cannot register public name '${e}' twice`);if(J(a,e,e),a[e].Y.hasOwnProperty(r))throw new O(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`);a[e].Y[r]=t}else a[e]=t,a[e].ga=r};function te(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 re=(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},ne=e=>{if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e};function ae(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 "${ne(t)}" as a ${this.name}`);if(!t.T.V)throw new O(`Cannot pass deleted object as a pointer of type ${this.name}`);return re(t.T.V,t.T.X.U,this.U)}function oe(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 "${ne(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=re(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,Ve((()=>n.delete()))),null!==e&&e.push(this.fa,r)}break;default:throw new O("Unsupporting sharing policy")}}return r}function ie(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 "${ne(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 re(t.T.V,t.T.X.U,this.U)}function se(e){return this.W(w[e>>>2>>>0])}var ce=(e,t,r)=>t===r?e:void 0===r.aa||null===(e=ce(e,t,r.aa))?null:r.sa(e),ue={},le=class extends Error{constructor(e){super(e),this.name="InternalError"}},de=(e,t)=>{if(!t.X||!t.V)throw new le("makeClassHandle requires ptr and ptrType");if(!!t.ba!=!!t.Z)throw new le("Both smartPtrType and smartPtr must be specified");return t.count={value:1},X(Object.create(e,{T:{value:t,writable:!0}}))};function fe(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.$=oe:(this.$=n?ae:ie,this.ca=null)}var ye,he=(e,t,r)=>{if(!a.hasOwnProperty(e))throw new le("Replacing nonexistent public symbol");void 0!==a[e].Y&&void 0!==r?a[e].Y[r]=t:(a[e]=t,a[e].ga=r)},pe=[],me=e=>{var t=pe[e];return t||(pe[e]=t=ye.get(e)),t},ge=(e,t)=>(...r)=>((e,t,r=[])=>(t=me(t)(...r),"p"==e[0]?t>>>0:t))(e,t,r),we=(e,t)=>{var r=(e=k(e)).includes("p")?ge(e,t):me(t);if("function"!=typeof r)throw new O(`unknown function pointer with signature ${e}: ${t}`);return r};class ve extends Error{}var Te=e=>{e=st(e);var t=k(e);return lt(e),t},be=(e,t)=>{var r=[],n={};throw t.forEach((function e(t){n[t]||_[t]||(D[t]?D[t].forEach(e):(r.push(t),n[t]=!0))})),new ve(`${e}: `+r.map(Te).join([", "]))},Ae=(e,t,r)=>{function n(t){if((t=r(t)).length!==e.length)throw new le("Mismatched type converter count");for(var n=0;n<e.length;++n)W(e[n],t[n])}e.forEach((e=>D[e]=t));var a=Array(t.length),o=[],i=0;t.forEach(((e,t)=>{_.hasOwnProperty(e)?a[t]=_[e]:(o.push(e),N.hasOwnProperty(e)||(N[e]=[]),N[e].push((()=>{a[t]=_[e],++i===o.length&&n(a)})))})),0===o.length&&n(a)},Ce=e=>{for(;e.length;){var t=e.pop();e.pop()(t)}};function xe(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),d=[],f=[];return q(e,(function(...e){if(f.length=0,d.length=i?2:1,d[0]=a,i){var r=t[1].$(f,this);d[1]=r}for(var o=0;o<u;++o)l[o]=t[o+2].$(f,e[o]),d.push(l[o]);if(e=n(...d),s)Ce(f);else for(o=i?1:2;o<t.length;o++){var y=1===o?r:l[o-2];null!==t[o].ca&&t[o].ca(y)}return r=c?t[0].W(e):void 0}))}var Ie=(e,t)=>{for(var r=[],n=0;n<e;n++)r.push(w[t+4*n>>>2>>>0]);return r},Pe=e=>{const t=(e=e.trim()).indexOf("(");return-1===t?e:e.slice(0,t)},Ee=(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 re(e.T.V,e.T.X.U,t.U)},Se=[],Me=[0,1,,1,null,1,!0,1,!1,1];function je(e){9<(e>>>=0)&&0==--Me[e+1]&&(Me[e]=void 0,Se.push(e))}var Ue,$e=e=>{if(!e)throw new O(`Cannot use deleted val. handle = ${e}`);return Me[e]},Ve=e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:const t=Se.pop()||Me.length;return Me[t]=e,Me[t+1]=1,t}},ze={name:"emscripten::val",W:e=>{var t=$e(e);return je(e),t},$:(e,t)=>Ve(t),da:se,ca:null},Fe=(e,t,r)=>{switch(t){case 1:return r?function(e){return this.W(y[e>>>0])}:function(e){return this.W(h[e>>>0])};case 2:return r?function(e){return this.W(p[e>>>1>>>0])}:function(e){return this.W(m[e>>>1>>>0])};case 4:return r?function(e){return this.W(g[e>>>2>>>0])}:function(e){return this.W(w[e>>>2>>>0])};default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},Re=(e,t)=>{var r=_[e];if(void 0===r)throw e=`${t} has unknown type ${Te(e)}`,new O(e);return r},Be=(e,t)=>{switch(t){case 4:return function(e){return this.W(v[e>>>2>>>0])};case 8:return function(e){return this.W(T[e>>>3>>>0])};default:throw new TypeError(`invalid float width (${t}): ${e}`)}},Ke=Object.assign({optional:!0},ze),ke=(e,t,r)=>{var n=h;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},Ne=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},_e="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,We=(e,t,r)=>{if(16<(t=De(m,e>>>=1,t/2,r))-e&&Oe)return Oe.decode(m.subarray(e>>>0,t>>>0));for(r="";e<t;++e)r+=String.fromCharCode(m[e>>>0]);return r},Le=(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)p[t>>>1>>>0]=e.charCodeAt(a),t+=2;return p[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=w[e+a>>>0];if(!o&&!r)break;n+=String.fromCodePoint(o)}return n},Ge=(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++,g[t>>>2>>>0]=o,(t+=4)+4>r)break}return g[t>>>2>>>0]=0,t-n},Xe=e=>{for(var t=0,r=0;r<e.length;++r)65535<e.codePointAt(r)&&r++,t+=4;return t},Ye=0,qe=[],Qe={},Je=e=>{var t=Qe[e];return void 0===t?k(e):t},et={},tt=e=>{if(!(e instanceof $||"unwind"==e))throw e},rt=e=>{throw u=e,B||0<Ye||(a.onExit?.(e),x=!0),new $(e)},nt={},at=()=>{if(!Ue){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",_:o||"./this.program"};for(e in nt)void 0===nt[e]?delete t[e]:t[e]=nt[e];var r=[];for(e in t)r.push(`${e}=${t[e]}`);Ue=r}return Ue},ot=e=>{(ot=e=>crypto.getRandomValues(e))(e)};(()=>{let e=Y.prototype;Object.assign(e,{isAliasOf:function(e){if(!(this instanceof Y&&e instanceof Y))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=X,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");G(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(fe.prototype,{ua(e){return this.qa&&(e=this.qa(e)),e},pa(e){this.fa?.(e)},da:se,W:function(e){function t(){return this.na?de(this.U.ea,{X:this.xa,V:r,ba:this,Z:e}):de(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 ue[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=ce(r,this.U,n.U);return null===a?t.call(this):this.na?de(n.U.ea,{X:n,V:a,ba:this,Z:e}):de(n.U.ea,{X:n,V:a})}}),a.noExitRuntime&&(B=a.noExitRuntime),a.printErr&&(C=a.printErr),a.wasmBinary&&(c=a.wasmBinary),a.thisProgram&&(o=a.thisProgram);var it,st,ct,ut,lt,dt={a:function(e,t,r){var n=new K(e>>>=0);throw w[n.V+16>>>2>>>0]=0,w[n.V+4>>>2>>>0]=t>>>0,w[n.V+8>>>2>>>0]=r>>>0,e},K:()=>j(""),v:function(e,t,r,n,a){e>>>=0,r>>>=0,t=k(t>>>0);let o=e=>e;if(n=0n===n){const e=8*r;o=t=>BigInt.asUintN(e,t),a=o(a)}W(e,{name:t,W:o,$:(e,t)=>("number"==typeof t&&(t=BigInt(t)),t),da:L(t,r,!n),ca:null})},H:function(e,t,r,n){W(e>>>0,{name:t=k(t>>>0),W:function(e){return!!e},$:function(e,t){return t?r:n},da:function(e){return this.W(h[e>>>0])},ca:null})},g:function(e,t,r,n,a,o,i,s,c,u,l,d,f){e>>>=0,t>>>=0,r>>>=0,n>>>=0,o>>>=0,i>>>=0,s>>>=0,c>>>=0,u>>>=0,d>>>=0,f>>>=0,l=k(l>>>=0),o=we(a>>>0,o),s&&=we(i,s),u&&=we(c,u),f=we(d,f);var y=(e=>{var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&57>=t?`_${e}`:e})(l);ee(y,(function(){be(`Cannot construct ${l} due to unbound types`,[n])})),Ae([e,t,r],n?[n]:[],(t=>{if(t=t[0],n)var r=t.U,a=r.ea;else a=Y.prototype;t=q(l,(function(...e){if(Object.getPrototypeOf(this)!==i)throw new O(`Use 'new' to construct ${l}`);if(void 0===d.ha)throw new O(`${l} has no accessible constructor`);var t=d.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(d.ha).toString()}) parameters instead!`);return t.apply(this,e)}));var i=Object.create(a,{constructor:{value:t}});t.prototype=i;var c,d=new te(l,t,i,f,r,o,s,u);d.aa&&((c=d.aa).la??(c.la=[]),d.aa.la.push(d));return r=new fe(l,d,!0,!1,!1),c=new fe(l+"*",d,!1,!1,!1),a=new fe(l+" const*",d,!1,!0,!1),Q[e]={pointerType:c,ra:a},he(y,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=Ie(r,n>>>0);t=k(t),t=Pe(t),o=we(a,o),Ae([],[e],(e=>{function n(){be(`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):(J(c,t,a),c[t].Y[r-1]=n),Ae([],s,(n=>{if(n=xe(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=k(t>>>=0),o=we(a>>>0,o),Ae([],[e],(e=>{var a=`${(e=e[0]).name}.${t}`,c={get(){be(`Cannot access ${a} due to unbound types`,[r])},enumerable:!0,configurable:!0};return c.set=s?()=>{be(`Cannot access ${a} due to unbound types`,[r])}:()=>{throw new O(`${a} is a read-only property`)},Object.defineProperty(e.U.constructor,t,c),Ae([],[r],(r=>{r=r[0];var a={get:()=>r.W(o(n)),enumerable:!0};return s&&(s=we(i,s),a.set=e=>{var t=[];s(n,r.$(t,e)),Ce(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=Ie(t,r>>>0);a=we(n,a),Ae([],[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]=()=>{be(`Cannot construct ${e.name} due to unbound types`,i)},Ae([],i,(n=>(n.splice(1,0,null),e.U.ha[t-1]=xe(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=Ie(r,n>>>0);t=k(t),t=Pe(t),o=we(a,o),Ae([],[e],(e=>{function n(){be(`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):(J(u,t,a),u[t].Y[r-2]=n),Ae([],c,(n=>(n=xe(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=k(t>>>=0),a=we(n>>>0,a),Ae([],[e],(e=>{var n=`${(e=e[0]).name}.${t}`,l={get(){be(`Cannot access ${n} due to unbound types`,[r,i])},enumerable:!0,configurable:!0};return l.set=c?()=>be(`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),Ae([],c?[r,i]:[r],(r=>{var i=r[0],l={get(){var t=Ee(this,e,n+" getter");return i.W(a(o,t))},enumerable:!0};if(c){c=we(s,c);var d=r[1];l.set=function(t){var r=Ee(this,e,n+" setter"),a=[];c(u,r,d.$(a,t)),Ce(a)}}return Object.defineProperty(e.U.ea,t,l),[]})),[]}))},F:function(e){return W(e>>>0,ze)},t:function(e,t,r,n){function a(){}t=k(t>>>0),a.values={},W(e>>>0,{name:t,constructor:a,W:function(e){return this.constructor.values[e]},$:(e,t)=>t.value,da:Fe(t,r>>>0,n),ca:null}),ee(t,a)},n:function(e,t,r){t>>>=0;var n=Re(e>>>0,"enum");t=k(t),e=n.constructor,n=Object.create(n.constructor.prototype,{value:{value:r},constructor:{value:q(`${n.name}_${t}`,(function(){}))}}),e.values[r]=n,e[t]=n},u:function(e,t,r){W(e>>>0,{name:t=k(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=Ie(t,r>>>0);e=k(e),e=Pe(e),a=we(n,a),ee(e,(function(){be(`Cannot call ${e} due to unbound types`,i)}),t-1),Ae([],i,(r=>(he(e,xe(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=k(t>>>0);let o=e=>e;if(0===n){var i=32-8*r;o=e=>e<<i>>>i,a=o(a)}W(e,{name:t,W:o,$:(e,t)=>t,da:L(t,r,0!==n),ca:null})},l:function(e,t,r){function n(e){return new a(y.buffer,w[e+4>>>2>>>0],w[e>>>2>>>0])}var a=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];W(e>>>0,{name:r=k(r>>>0),W:n,da:n},{va:!0})},o:function(e){W(e>>>0,Ke)},G:function(e,t){W(e>>>0,{name:t=k(t>>>0),W(e){var t=(t=e+4>>>0)?((e=0,t)=>{var r=h;if(16<(t=De(r,e>>>=0,t,!0))-e&&r.buffer&&_e)return _e.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,w[e>>>2>>>0]):"";return lt(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?Ne(t):t.length,a=ut(4+n+1),o=a+4;return w[a>>>2>>>0]=n,r?ke(t,o,n+1):h.set(t,o>>>0),null!==e&&e.push(lt,a),a},da:se,ca(e){lt(e)}})},s:function(e,t,r){if(t>>>=0,r=k(r>>>=0),2===t)var n=We,a=Le,o=He;else n=Ze,a=Ge,o=Xe;W(e>>>0,{name:r,W:e=>{var r=n(e+4,w[e>>>2>>>0]*t,!0);return lt(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=ut(4+i+t);return w[s>>>2>>>0]=i/t,a(n,s+4,i+t),null!==e&&e.push(lt,s),s},da:se,ca(e){lt(e)}})},I:function(e,t){W(e>>>0,{wa:!0,name:t=k(t>>>0),W:()=>{},$:()=>{}})},B:()=>{B=!1,Ye=0},c:function(e,t,r){var[n,...a]=((e,t)=>{for(var r=Array(e),n=0;n<e;++n)r[n]=Re(w[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=qe.length;return qe.push(e),t})(q(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 d=$e(t).apply(null,s);break;case 2:d=Reflect.construct($e(t),s);break;case 3:d=s[0];break;case 1:d=$e(t)[Je(n)](...s)}return d=o(t=[],d),t.length&&(w[a>>>2>>>0]=Ve(t)),d})))},f:je,j:function(e,t){return t>>>=0,e=$e(e>>>0),t=$e(t),Ve(e[t])},i:function(e){9<(e>>>=0)&&(Me[e+1]+=1)},e:function(e,t,r,n,a){return qe[e>>>0](t>>>0,r>>>0,n>>>0,a>>>0)},D:function(){return Ve([])},k:function(e){return Ve(Je(e>>>0))},d:function(e){var t=$e(e>>>=0);Ce(t),je(e)},C:(e,t)=>{if(et[e]&&(clearTimeout(et[e].id),delete et[e]),!t)return 0;var r=setTimeout((()=>{delete et[e],(e=>{if(!x)try{if(e(),!(B||0<Ye))try{u=e=u,rt(e)}catch(e){tt(e)}}catch(e){tt(e)}})((()=>ct(e,performance.now())))}),t);return et[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(),w[e>>>0>>>2>>>0]=60*Math.max(o,a),g[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?(ke(e,r,17),ke(t,n,17)):(ke(e,n,17),ke(t,r,17))},J:function(e){e>>>=0;var t=h.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))-f.buffer.byteLength+65535)/65536|0;try{f.grow(n),P();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 at()){var o=t+n;w[e+a>>>2>>>0]=o,n+=ke(r,o,1/0)+1,a+=4}return 0},E:function(e,t){e>>>=0,t>>>=0;var r=at();for(var n of(w[e>>>2>>>0]=r.length,e=0,r))e+=Ne(n)+1;return w[t>>>2>>>0]=e,0},A:rt,x:function(e,t){return e>>>=0,ot(h.subarray(e>>>0,e+(t>>>0)>>>0)),0}},ft=await async function(){function t(e){return ft=e.exports,ft=function(){var e=ft;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}(),f=ft.L,P(),ye=ft.S,e=ft,a._main=it=e.N,st=e.O,ct=e.P,ut=e.Q,lt=e.R,S--,a.monitorRunDependencies?.(S),0==S&&M&&(e=M,M=null,e()),ft}S++,a.monitorRunDependencies?.(S);var r={a:dt};return a.instantiateWasm?new Promise((e=>{a.instantiateWasm(r,((r,n)=>{e(t(r))}))})):(E??=a.locateFile?a.locateFile?a.locateFile("seal_throws_wasm_cf_worker.wasm",s):s+"seal_throws_wasm_cf_worker.wasm":new URL("seal_throws_wasm_cf_worker.wasm","undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("throws_wasm_cf_worker_umd.js",document.baseURI).href).href,t((await async function(e){var t=E;if(!c)try{var r=fetch(t,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(r,e)}catch(e){C(`wasm streaming compile failed: ${e}`),C("falling back to ArrayBuffer instantiation")}return U(t,e)}(r)).instance))}();if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.shift()();return function e(){function t(){if(a.calledRun=!0,!x){if(I=!0,ft.M(),l?.(a),a.onRuntimeInitialized?.(),!a.noInitialRun){var e=it;try{var t=e(0,0);u=t,rt(t)}catch(e){tt(e)}}if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)e=a.postRun.shift(),z.push(e);V(z)}}if(0<S)M=e;else{if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)R();V(F),0<S?M=e:a.setStatus?(a.setStatus("Running..."),setTimeout((()=>{setTimeout((()=>a.setStatus("")),1),t()}),1)):t()}}(),I?a:new Promise(((e,t)=>{l=e,d=t}))}const r="Unsupported vector type";const n=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 a(e,t){return n.register(e,t)}const o=({loader:e})=>(e=>({Exception:t,MemoryPoolHandle:r,PlainText:n,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=n();return c.encode(e,t.instance,"INT32"),t}if(e.constructor===Uint32Array){if(r)return void c.encode(e,r.instance,"UINT32");const t=n();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 a=n();return c.encode(t,a.instance,"INT64"),a}if(e.constructor===BigUint64Array){const t=e.toString().split(",");if(r)return void c.encode(t,r.instance,"UINT64");const a=n();return c.encode(t,a.instance,"UINT64"),a}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=a(u,c);return u})(e.library),i=e=>({Exception:t,ComprModeType:r,ParmsIdType:n,MemoryPoolHandle:o,Vector:s})=>(c={})=>{const u=e.Ciphertext;let l=function(e={}){const{context:r,parmsId:n,sizeCapacity:a,pool:i=o.global}=e;try{if(r||n||void 0!==a){if(r&&!n&&void 0===a)return new u(r.instance,i);if(r&&n&&void 0===a)return new u(r.instance,n.instance,i);if(r&&n&&void 0!==a)return new u(r.instance,n.instance,a,i);throw new Error("Must specify a (context), (context, parmsId), or (context, parmsId, sizeCapacity)")}return new u(i)}catch(e){throw t.safe(e)}}(c);const d={get instance(){return l},unsafeInject(e){d.delete(),l=e,f.reregister(l)},delete(){l&&(f.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=n();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 a=l.clone(),c=i(e)({Exception:t,ComprModeType:r,ParmsIdType:n,MemoryPoolHandle:o,Vector:s})();return c.unsafeInject(a),c}catch(e){throw t.safe(e)}},move(e){try{l.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}},f=a(d,l);return d},s=({loader:e})=>{const t=e.library;return i(t)},c=({loader:e})=>(e=>({Exception:t,MemoryPoolHandle:r,PlainText:n,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,a,o,i=r.global){try{if(e.constructor===Float64Array){if(o)return void c.encode(e,a,o.instance,i);const t=n();return c.encode(e,a,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=a(u,c);return u})(e.library),u=({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),l=({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),d=({loader:e})=>(e=>({ParmsIdType:t,ContextData:r,SecurityLevel:n})=>(o,i=!0,s=n.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=a(u,c);return u})(e.library),f=e=>({Exception:e,EncryptionParameters:t,ParmsIdType:r,EncryptionParameterQualifiers:n})=>()=>{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=n();return e.unsafeInject(o.qualifiers()),e},get totalCoeffModulusBitCount(){return o.totalCoeffModulusBitCount()},get prevContextData(){const a=f()({Exception:e,EncryptionParameters:t,ParmsIdType:r,EncryptionParameterQualifiers:n})();return a.unsafeInject(o.prevContextData()),a},get nextContextData(){const a=f()({Exception:e,EncryptionParameters:t,ParmsIdType:r,EncryptionParameterQualifiers:n})();return a.unsafeInject(o.nextContextData()),a},get chainIndex(){return o.chainIndex()}},s=a(i,o);return i},y=({loader:e})=>(e.library,f()),h=({loader:e})=>(e=>({Exception:t,PlainText:r})=>(n,o)=>{const i=e.Decryptor;let s;try{s=new i(n.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=a(c,s);return c})(e.library),p=()=>()=>()=>{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=a(t,e);return t},m=({loader:e})=>(e=>({Exception:t,ComprModeType:r,Modulus:n,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,d.reregister(u)},delete(){u&&(d.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=n(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)}}},d=a(l,u);return l})(e.library),g=({loader:e})=>(e=>({Exception:t,MemoryPoolHandle:r,CipherText:n,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 d={get instance(){return l},unsafeInject(e){d.delete(),l=e,f.reregister(l)},delete(){l&&(f.unregister(),l.delete(),l=void 0)},encrypt(e,a,o=r.global){try{if(a)return void l.encrypt(e.instance,a.instance,o);const t=n();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,a,o=r.global){try{if(a)return void l.encryptSymmetric(e.instance,a.instance,o);const t=n();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,a=r.global){try{if(e)return void l.encryptZero(e.instance,a);const t=n();return l.encryptZero(t.instance,a),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)}}},f=a(d,l);return d})(e.library),w=({loader:e})=>(e=>({Exception:t,MemoryPoolHandle:r,CipherText:n,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=n();return c.negate(e.instance,t.instance),t}catch(e){throw t.safe(e)}},add(e,r,a){try{if(a)return void c.add(e.instance,r.instance,a.instance);const t=n();return c.add(e.instance,r.instance,t.instance),t}catch(e){throw t.safe(e)}},sub(e,r,a){try{if(a)return void c.sub(e.instance,r.instance,a.instance);const t=n();return c.sub(e.instance,r.instance,t.instance),t}catch(e){throw t.safe(e)}},multiply(e,a,o,i=r.global){try{if(o)return void c.multiply(e.instance,a.instance,o.instance,i);const t=n();return c.multiply(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},square(e,a,o=r.global){try{if(a)return void c.square(e.instance,a.instance,o);const t=n();return c.square(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},relinearize(e,a,o,i=r.global){try{if(o)return void c.relinearize(e.instance,a.instance,o.instance,i);const t=n();return c.relinearize(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},cipherModSwitchToNext(e,a,o=r.global){try{if(a)return void c.cipherModSwitchToNext(e.instance,a.instance,o);const t=n();return c.cipherModSwitchToNext(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},cipherModSwitchTo(e,a,o,i=r.global){try{if(o)return void c.cipherModSwitchTo(e.instance,a.instance,o.instance,i);const t=n();return c.cipherModSwitchTo(e.instance,a.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,a,o=r.global){try{if(a)return void c.rescaleToNext(e.instance,a.instance,o);const t=n();return c.rescaleToNext(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},rescaleTo(e,a,o,i=r.global){try{if(o)return void c.rescaleTo(e.instance,a.instance,o.instance,i);const t=n();return c.rescaleTo(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},modReduceToNext(e,a,o=r.global){try{if(a)return void c.modReduceToNext(e.instance,a.instance,o);const t=n();return c.modReduceToNext(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},modReduceTo(e,a,o,i=r.global){try{if(o)return void c.modReduceTo(e.instance,a.instance,o.instance,i);const t=n();return c.modReduceTo(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},exponentiate(e,a,o,i,s=r.global){try{if(i)return void c.exponentiate(e.instance,a,o.instance,i.instance,s);const t=n();return c.exponentiate(e.instance,a,o.instance,t.instance,s),t}catch(e){throw t.safe(e)}},addPlain(e,a,o,i=r.global){try{if(o)return void c.addPlain(e.instance,a.instance,o.instance,i);const t=n();return c.addPlain(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},subPlain(e,a,o,i=r.global){try{if(o)return void c.subPlain(e.instance,a.instance,o.instance,i);const t=n();return c.subPlain(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},multiplyPlain(e,a,o,i=r.global){try{if(o)return void c.multiplyPlain(e.instance,a.instance,o.instance,i);const t=n();return c.multiplyPlain(e.instance,a.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=n();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=n();return c.cipherTransformFromNtt(e.instance,t.instance),t}catch(e){throw t.safe(e)}},applyGalois(e,a,o,i,s=r.global){try{if(i)return void c.applyGalois(e.instance,a,o.instance,i.instance,s);const t=n();return c.applyGalois(e.instance,a,o.instance,t.instance,s),t}catch(e){throw t.safe(e)}},rotateRows(e,a,o,i,s=r.global){try{if(i)return void c.rotateRows(e.instance,a,o.instance,i.instance,s);const t=n();return c.rotateRows(e.instance,a,o.instance,t.instance,s),t}catch(e){throw t.safe(e)}},rotateColumns(e,a,o,i=r.global){try{if(o)return void c.rotateColumns(e.instance,a.instance,o.instance,i);const t=n();return c.rotateColumns(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},rotateVector(e,a,o,i,s=r.global){try{if(i)return void c.rotateVector(e.instance,a,o.instance,i.instance,s);const t=n();return c.rotateVector(e.instance,a,o.instance,t.instance,s),t}catch(e){throw t.safe(e)}},complexConjugate(e,a,o,i=r.global){try{if(o)return void c.complexConjugate(e.instance,a.instance,o.instance,i);const t=n();return c.complexConjugate(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},sumElements(e,a,o,i,s=r.global){try{if(i)return void c.sumElements(e.instance,a.instance,o,i.instance,s);const t=n();return c.sumElements(e.instance,a.instance,o,t.instance,s),t}catch(e){throw t.safe(e)}},dotProduct(e,a,o,i,s,u,l=r.global){try{if(u)return c.multiply(e.instance,a.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=n();return c.multiply(e.instance,a.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,a,o,i,s,u=r.global){try{if(s)return c.multiplyPlain(e.instance,a.instance,s.instance,u),void c.sumElements(s.instance,o.instance,i,s.instance,u);const t=n();return c.multiplyPlain(e.instance,a.instance,t.instance,u),c.sumElements(t.instance,o.instance,i,t.instance,u),t}catch(e){throw t.safe(e)}}},l=a(u,c);return u})(e.library),v=({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),T=e=>({Exception:t,ComprModeType:r,Vector:n})=>()=>{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=n(),a=i.saveToArray(e);t.unsafeInject(a),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 a=i.clone(),o=T(e)({Exception:t,ComprModeType:r,Vector:n})();return o.inject(a),o}catch(e){throw t.safe(e)}},move(e){try{i.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}},c=a(s,i);return s},b=({loader:e})=>{const t=e.library;return T(t)},A=({loader:e})=>(e=>({Exception:t,PublicKey:r,SecretKey:n,RelinKeys:o,GaloisKeys:i,Serializable:s})=>(c,u)=>{const l=e.KeyGenerator;let d=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 f={get instance(){return d},unsafeInject(e){f.delete(),d=e,y.reregister(d)},delete(){d&&(y.unregister(),d.delete(),d=void 0)},secretKey(){try{const e=n(),t=d.secretKey();return e.inject(t),e}catch(e){throw t.safe(e)}},createPublicKey(){try{const e=r();return d.createPublicKey(e.instance),e}catch(e){throw t.safe(e)}},createPublicKeySerializable(){try{const e=s(),t=d.createPublicKeySerializable();return e.unsafeInject(t),e}catch(e){throw t.safe(e)}},createRelinKeys(){try{const e=o();return d.createRelinKeys(e.instance),e}catch(e){throw t.safe(e)}},createRelinKeysSerializable(){try{const e=s(),t=d.createRelinKeysSerializable();return e.unsafeInject(t),e}catch(e){throw t.safe(e)}},createGaloisKeys(e=Int32Array.from([])){try{const t=i();return d.createGaloisKeys(e,t.instance),t}catch(e){throw t.safe(e)}},createGaloisKeysSerializable(e=Int32Array.from([])){try{const t=s(),r=d.createGaloisKeysSerializable(e);return t.unsafeInject(r),t}catch(e){throw t.safe(e)}}},y=a(f,d);return f})(e.library),C=({loader:e})=>(e=>()=>()=>{const t=e.MemoryPoolHandle.MemoryPoolHandleGlobal,r=e.MemoryPoolHandle.MemoryPoolHandleThreadLocal;return{get global(){return t()},get threadLocal(){return r()}}})(e.library),x=({loader:e})=>(e=>({Exception:t,ComprModeType:r,Vector:n})=>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=n(),a=s.saveToArray(e);t.unsafeInject(a),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=a(c,s);return c})(e.library),I=({loader:e})=>(e=>({Exception:t})=>()=>{const r=e.ParmsIdType;let n;const o={get instance(){return n},inject(e){o.delete(),n=new r(e),i.reregister(n)},delete(){n&&(i.unregister(),n.delete(),n=void 0)},get values(){try{const e=n.values();return BigUint64Array.from(e)}catch(e){throw t.safe(e)}}},i=a(o,n);return o})(e.library),P=({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),E=e=>({Exception:t,ComprModeType:r,ParmsIdType:n,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,d.reregister(u)},delete(){u&&(d.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=n();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 a=u.clone(),s=E(e)({Exception:t,ComprModeType:r,ParmsIdType:n,MemoryPoolHandle:o,Vector:i})();return s.unsafeInject(a),s}catch(e){throw t.safe(e)}},move(e){try{u.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}},d=a(l,u);return l},S=({loader:e})=>{const t=e.library;return E(t)},M=e=>({Exception:t,ComprModeType:r,Vector:n})=>()=>{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=n(),a=i.saveToArray(e);t.unsafeInject(a),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 a=i.clone(),o=M(e)({Exception:t,ComprModeType:r,Vector:n})();return o.inject(a),o}catch(e){throw t.safe(e)}},move(e){try{i.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}},c=a(s,i);return s},j=({loader:e})=>{const t=e.library;return M(t)},U=e=>({Exception:t,ComprModeType:r,Vector:n})=>()=>{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=n(),a=i.saveToArray(e);t.unsafeInject(a),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 a=i.clone(),o=U(e)({Exception:t,ComprModeType:r,Vector:n})();return o.inject(a),o}catch(e){throw t.safe(e)}},move(e){try{i.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}},c=a(s,i);return s},$=({loader:e})=>{const t=e.library;return U(t)},V=({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