lnlink-server 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/app.js CHANGED
@@ -2152,7 +2152,7 @@ ${e}`;return Object.assign(new Error(r),t,{stack:i})}a(Cwt,"callErrorFromStatus"
2152
2152
  `).trim();d&&e.info(`[tor] ${d}`),d.includes("100%")&&(e.info("[tor] is ready"),o(!0))}),u.stderr.on("data",l=>{let d=l.toString();e.error(`[tor] ${d}`),(d.includes("User option")||d.includes("setuid"))&&e.info("[tor] Detected User permission issue, this is normal in Docker")}),u.on("error",l=>{e.error(`Start tor failed: ${l?.message}`),c(l)})})}a(MCt,"startTorService");function FCt(t){let e=new Dp("processManager");return Wx()?(e.info("External nodes mode: skipping RGB local spawn (managed externally)"),Promise.resolve(!0)):new Promise((r,n)=>{let i=lc("rgb");if(!i)return n(new Error("rgb service not found"));let s=!1,o=a(l=>{s||(s=!0,r(l))},"settleResolve"),c=a(l=>{s||(s=!0,n(l))},"settleReject"),u=bW(i.command,t,{stdio:"pipe"});cf("rgb",u),u.once("exit",(l,d)=>{e.info(`rgb process exited with code ${l??"null"}, signal ${d??"null"}`),lc("rgb")?.process===u&&cf("rgb",null),s||c(new Error(`rgb exited before startup completed (code: ${l??"null"}, signal: ${d??"null"})`))}),u.stdout.on("data",l=>{l.toString().replace(/\n+/g,`
2153
2153
  `).trim().includes("Listening on")&&(e.info("rgb is ready"),o(!0))}),u.on("error",l=>{e.error(`Start rgb failed: ${l?.message}`),c(l)}),u.stderr.on("data",l=>{let d=l.toString();e.error(`[rgb] ${d}`),(d.toLowerCase().includes("fatal")||d.toLowerCase().includes("cannot")||d.toLowerCase().includes("failed to start"))&&c(new Error(`Start rgb failed: ${d}`))})})}a(FCt,"startRgbService");function EW(t,e,r=1e4){let n=new Dp("processManager"),i=!1,s=null,o=t;return new Promise(c=>{let u=a(l=>{i||(i=!0,s&&clearTimeout(s),c(l))},"safeResolve");t.kill("SIGTERM"),t.on("exit",l=>{n.info(`${e} exited with code ${l}`),lc(e)?.process===o&&cf(e,null),u(!0)}),s=setTimeout(()=>{let d=lc(e)?.process;d&&d===o&&(n.info(`${e} did not exit in time, forcing shutdown...`),d.kill("SIGKILL"),cf(e,null)),u(!0)},r)})}a(EW,"killProcess");async function TW(t,e){let r=new Dp("processManager");try{let n=nA?t.split(/[/\\]/).pop().replace(".exe",""):t;r.info(`Looking for ${e} processes matching: ${n}`);let i=await zke(n);if(i.length===0)return r.info(`No ${e} processes found`),!1;r.info(`Found ${i.length} ${e} process(es): ${i.join(", ")}`),await Promise.all(i.map(o=>Jke(o,!1))),await xW(2e3);let s=await zke(n);return s.length>0&&(r.warn(`${s.length} ${e} process(es) still running, force killing...`),await Promise.all(s.map(o=>Jke(o,!0)))),r.info(`${e} processes terminated successfully`),!0}catch(n){return r.error(`Failed to find and kill ${e} processes: ${n.message}`),!1}}a(TW,"findAndKillProcess");async function Wke(){let t=new Dp("processManager");if(Wx())return t.info("External nodes mode: skipping litd stop (managed externally)"),!0;let e=lc("litd");if(!e)throw new Error("litd service not found");try{t.info("Attempting graceful shutdown via RPC..."),await PCt().stopDaemon(),t.info("LND daemon stopped gracefully via RPC");let i=0,s=30;for(;i<s;){let o=lc("litd")?.process??e.process;if(!o||o.killed)return cf("litd",null),!0;await xW(1e3),i++}t.warn("Process did not exit after RPC shutdown, proceeding with fallback...")}catch(n){t.warn(`RPC shutdown failed: ${n.message}, falling back to process termination`)}let r=lc("litd")??e;return r.process?await EW(r.process,"litd"):await TW(r.command,"litd")}a(Wke,"stopLitdService");async function Xke(){let t=new Dp("processManager");if(Wx())return t.info("External nodes mode: skipping Tor stop (managed externally)"),!0;let e=lc("tor");if(!e)throw new Error("tor service not found");return e.process?await EW(e.process,"tor",5e3):await TW(e.command,"tor")}a(Xke,"stopTorService");async function Qke(){let t=new Dp("processManager");if(Wx())return t.info("External nodes mode: skipping RGB stop (managed externally)"),!0;let e=lc("rgb");if(!e)throw new Error("rgb service not found");try{if(t.info("Attempting graceful shutdown of RGB via SIGTERM..."),await new Promise(i=>{nA?F6("taskkill /F /IM rgb-lightning-node.exe",(s,o)=>{s?(t.warn(`Graceful shutdown of RGB failed: ${s?.message}`),i(!1)):(t.info(`RGB stopped gracefully: ${o}`),i(!0))}):F6("pkill -SIGTERM -f 'rgb-lightning-node'",(s,o)=>{s?(t.warn(`Graceful shutdown of RGB failed: ${s?.message}`),i(!1)):(t.info(`RGB stopped gracefully: ${o}`),i(!0))})}))return await xW(2e3),cf("rgb",null),!0;t.info("Graceful shutdown failed, proceeding with process termination...")}catch(r){t.warn(`RGB graceful shutdown failed: ${r.message}, falling back to process termination`)}return e.process?await EW(e.process,"rgb"):await TW("rgb-lightning-node","rgb")}a(Qke,"stopRgbService");async function UCt(t){switch(t){case"litd":return await Wke();case"tor":return await Xke();case"rgb":return await Qke();default:throw new Error(`Unknown service: ${t}`)}}a(UCt,"stopService");async function qCt(t,e){switch(t){case"litd":return await BCt(e);case"tor":return await MCt(e);case"rgb":return await FCt(e);default:throw new Error(`Unknown service: ${t}`)}}a(qCt,"startService");function HCt(){let t=wW();return{litd:{hasProcess:!!t.litd?.process,command:t.litd?.command},tor:{hasProcess:!!t.tor?.process,command:t.tor?.command},rgb:{hasProcess:!!t.rgb?.process,command:t.rgb?.command}}}a(HCt,"getServicesState");Yke.exports={startService:qCt,stopService:UCt,stopLitdService:Wke,stopTorService:Xke,stopRgbService:Qke,getServicesState:HCt}});var kW=v(AW=>{"use strict";Object.defineProperty(AW,"__esModule",{value:!0});var Zke=require("child_process"),jCt=1024*1024,eNe={exec(t,e){let r={maxBuffer:2*jCt,windowsHide:!0};(0,Zke.exec)(t,r,e)},spawn(t,e,r){return(0,Zke.spawn)(t,e,r)},stripLine(t,e){let r=0;for(;e-- >0;){let n=t.indexOf(`
2154
2154
  `,r);n>=0&&(r=n+1)}return r>0?t.substring(r):t},split(t,e){let r=t.trim().split(/\s+/);return r.length>e&&(r[e-1]=r.slice(e-1).join(" ")),r},extractColumns(t,e,r){let n=t.split(/(\r\n|\n|\r)/),i=[];return r||(r=Math.max.apply(null,e)+1),n.forEach(s=>{let o=eNe.split(s,r),c=[];e.forEach(u=>{c.push(o[u]||"")}),i.push(c)}),i},parseTable(t){let e=t.split(/(\r\n\r\n|\r\n\n|\n\r\n|\n\n)/).filter(r=>r&&r.trim().length>0).map(r=>r.split(/(\r\n|\n|\r)/).filter(n=>n.trim().length>0));return e.forEach(r=>{for(let n=0;r[n];){let i=r[n];i.startsWith(" ")?(r[n-1]+=i.trimLeft(),r.splice(n,1)):n+=1}}),e.map(r=>{let n={};return r.forEach(i=>{let s=i.indexOf(":"),o=i.slice(0,s).trim();n[o]=i.slice(s+1).trim()}),n})}};AW.default=eNe});var rNe=v((tNe,U6)=>{(function(t,e){"use strict";typeof define=="function"&&define.amd?define(e):typeof U6=="object"&&U6.exports?U6.exports=e():t.log=e()})(tNe,function(){"use strict";var t=a(function(){},"noop"),e="undefined",r=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),n=["trace","debug","info","warn","error"],i={},s=null;function o(h,m){var g=h[m];if(typeof g.bind=="function")return g.bind(h);try{return Function.prototype.bind.call(g,h)}catch{return function(){return Function.prototype.apply.apply(g,[h,arguments])}}}a(o,"bindMethod");function c(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}a(c,"traceForIE");function u(h){return h==="debug"&&(h="log"),typeof console===e?!1:h==="trace"&&r?c:console[h]!==void 0?o(console,h):console.log!==void 0?o(console,"log"):t}a(u,"realMethod");function l(){for(var h=this.getLevel(),m=0;m<n.length;m++){var g=n[m];this[g]=m<h?t:this.methodFactory(g,h,this.name)}if(this.log=this.debug,typeof console===e&&h<this.levels.SILENT)return"No console available for logging"}a(l,"replaceLoggingMethods");function d(h){return function(){typeof console!==e&&(l.call(this),this[h].apply(this,arguments))}}a(d,"enableLoggingWhenConsoleArrives");function f(h,m,g){return u(h)||d.apply(this,arguments)}a(f,"defaultMethodFactory");function p(h,m){var g=this,y,w,E,A="loglevel";typeof h=="string"?A+=":"+h:typeof h=="symbol"&&(A=void 0);function I(L){var b=(n[L]||"silent").toUpperCase();if(!(typeof window===e||!A)){try{window.localStorage[A]=b;return}catch{}try{window.document.cookie=encodeURIComponent(A)+"="+b+";"}catch{}}}a(I,"persistLevelIfPossible");function R(){var L;if(!(typeof window===e||!A)){try{L=window.localStorage[A]}catch{}if(typeof L===e)try{var b=window.document.cookie,T=encodeURIComponent(A),k=b.indexOf(T+"=");k!==-1&&(L=/^([^;]+)/.exec(b.slice(k+T.length+1))[1])}catch{}return g.levels[L]===void 0&&(L=void 0),L}}a(R,"getPersistedLevel");function $(){if(!(typeof window===e||!A)){try{window.localStorage.removeItem(A)}catch{}try{window.document.cookie=encodeURIComponent(A)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}a($,"clearPersistedLevel");function B(L){var b=L;if(typeof b=="string"&&g.levels[b.toUpperCase()]!==void 0&&(b=g.levels[b.toUpperCase()]),typeof b=="number"&&b>=0&&b<=g.levels.SILENT)return b;throw new TypeError("log.setLevel() called with invalid level: "+L)}a(B,"normalizeLevel"),g.name=h,g.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},g.methodFactory=m||f,g.getLevel=function(){return E??w??y},g.setLevel=function(L,b){return E=B(L),b!==!1&&I(E),l.call(g)},g.setDefaultLevel=function(L){w=B(L),R()||g.setLevel(L,!1)},g.resetLevel=function(){E=null,$(),l.call(g)},g.enableAll=function(L){g.setLevel(g.levels.TRACE,L)},g.disableAll=function(L){g.setLevel(g.levels.SILENT,L)},g.rebuild=function(){if(s!==g&&(y=B(s.getLevel())),l.call(g),s===g)for(var L in i)i[L].rebuild()},y=B(s?s.getLevel():"WARN");var U=R();U!=null&&(E=B(U)),l.call(g)}a(p,"Logger"),s=new p,s.getLogger=a(function(m){if(typeof m!="symbol"&&typeof m!="string"||m==="")throw new TypeError("You must supply a name when creating a logger.");var g=i[m];return g||(g=i[m]=new p(m,s.methodFactory)),g},"getLogger");var _=typeof window!==e?window.log:void 0;return s.noConflict=function(){return typeof window!==e&&window.log===s&&(window.log=_),s},s.getLoggers=a(function(){return i},"getLoggers"),s.default=s,s})});var NW=v(iA=>{"use strict";var $Ct=iA&&iA.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(iA,"__esModule",{value:!0});var GCt=$Ct(rNe());iA.default=GCt.default});var aNe=v(Al=>{"use strict";var VCt=Al&&Al.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:a(function(){return e[r]},"get")}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),KCt=Al&&Al.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),nNe=Al&&Al.__importStar||(function(){var t=a(function(e){return t=Object.getOwnPropertyNames||function(r){var n=[];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[n.length]=i);return n},t(e)},"ownKeys");return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=t(e),i=0;i<n.length;i++)n[i]!=="default"&&VCt(r,e,n[i]);return KCt(r,e),r}})(),iNe=Al&&Al.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Al,"__esModule",{value:!0});var zCt=nNe(require("os")),q6=nNe(require("fs")),dc=iNe(kW()),JCt=iNe(NW()),WCt=a(t=>new Promise((e,r)=>{q6.existsSync(t)?e():q6.mkdir(t,n=>{n?r(n):e()})}),"ensureDir"),Xx={darwin(t){return new Promise((e,r)=>{dc.default.exec("netstat -anv -p TCP && netstat -anv -p UDP",function(n,i,s){if(n)r(n);else{let o=s.toString().trim();if(o){r(new Error(o));return}let c=dc.default.stripLine(i.toString(),1),u=c.slice(0,c.indexOf(`
2155
- `)),l=dc.default.stripLine(c,1),d=u.indexOf("rxbytes")>=0?10:8,f=dc.default.extractColumns(l,[0,3,d],10).filter(p=>!!String(p[0]).match(/^(udp|tcp)/)).find(p=>{let _=String(p[1]).match(/\.(\d+)$/);return!!(_&&_[1]===String(t))});f&&f[2].length?e(parseInt(f[2],10)):r(new Error(`pid of port (${t}) not found`))}})})},linux(t){return new Promise((e,r)=>{dc.default.exec("netstat -tunlp",function(i,s,o){if(i)r(i);else{let c=o.toString().trim();c&&JCt.default.warn(c);let u=dc.default.stripLine(s.toString(),2),l=dc.default.extractColumns(u,[3,6],7).find(d=>{let f=String(d[0]).match(/:(\d+)$/);return!!(f&&f[1]===String(t))});if(l&&l[1]){let d=l[1].split("/",1)[0];d.length?e(parseInt(d,10)):r(new Error(`pid of port (${t}) not found`))}else r(new Error(`pid of port (${t}) not found`))}})})},win32(t){return new Promise((e,r)=>{dc.default.exec("netstat -ano",function(n,i,s){if(n)r(n);else{let o=s.toString().trim();if(o){r(new Error(o));return}let c=dc.default.stripLine(i.toString(),4),u=dc.default.extractColumns(c,[1,4],5).find(l=>{let d=String(l[0]).match(/:(\d+)$/);return!!(d&&d[1]===String(t))});u&&u[1].length&&parseInt(u[1],10)>0?e(parseInt(u[1],10)):r(new Error(`pid of port (${t}) not found`))}})})},android(t){return new Promise((e,r)=>{let n=zCt.tmpdir()+"/.find-process",i=n+"/"+process.pid,s='netstat -tunp >> "'+i+'"';WCt(n).then(()=>{dc.default.exec(s,()=>{q6.readFile(i,"utf8",(o,c)=>{if(q6.unlink(i,()=>{}),o)r(o);else{c=dc.default.stripLine(c,2);let u=dc.default.extractColumns(c,[3,6],7).find(l=>{let d=String(l[0]).match(/:(\d+)$/);return!!(d&&d[1]===String(t))});if(u&&u[1]){let l=u[1].split("/",1)[0];l.length?e(parseInt(l,10)):r(new Error(`pid of port (${t}) not found`))}else r(new Error(`pid of port (${t}) not found`))}})})})})}};Xx.freebsd=Xx.darwin;Xx.sunos=Xx.darwin;function XCt(t){let e=process.platform;return new Promise((r,n)=>{if(!(e in Xx))return n(new Error(`platform ${e} is unsupported`));let i=Xx[e];i(t).then(r,n)})}a(XCt,"findPidByPort");Al.default=XCt});var cNe=v(kl=>{"use strict";var QCt=kl&&kl.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:a(function(){return e[r]},"get")}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),YCt=kl&&kl.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),ZCt=kl&&kl.__importStar||(function(){var t=a(function(e){return t=Object.getOwnPropertyNames||function(r){var n=[];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[n.length]=i);return n},t(e)},"ownKeys");return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=t(e),i=0;i<n.length;i++)n[i]!=="default"&&QCt(r,e,n[i]);return YCt(r,e),r}})(),eRt=kl&&kl.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(kl,"__esModule",{value:!0});var H6=ZCt(require("path")),Xh=eRt(kW());function OW(t,e){return e?t&&t.match?t.match(e)!==null:!1:!0}a(OW,"matchName");function sNe(t){let e=t.split(H6.sep),r=e[e.length-1];r&&(e[e.length-1]=r.split(" ")[0]);let n=[];for(let i of e){let s=i.indexOf(" -");if(s>=0){n.push(i.substring(0,s).trim());break}else if(i.endsWith(" ")){n.push(i.trim());break}n.push(i)}return n.join(H6.sep)}a(sNe,"fetchBin");function oNe(t){if(process.platform==="darwin"){let e=t.indexOf(".app/");if(e>=0)return H6.basename(t.substring(0,e))}return H6.basename(t)}a(oNe,"fetchName");var iy={darwin(t){return new Promise((e,r)=>{let n;"pid"in t&&t.pid!==void 0?n=`ps -p ${t.pid} -ww -o pid,ppid,uid,gid,args`:n="ps ax -ww -o pid,ppid,uid,gid,args",Xh.default.exec(n,function(i,s,o){if(i)"pid"in t&&t.pid!==void 0?e([]):r(i);else{let c=o.toString().trim();if(c){r(new Error(c));return}let u=Xh.default.stripLine(s.toString(),1),d=Xh.default.extractColumns(u,[0,1,2,3,4],5).filter(f=>f[0]&&t.pid!==void 0?f[0]===String(t.pid):f[4]&&t.name?OW(f[4],t.name):!!f[0]).map(f=>{let p=String(f[4]),_=sNe(p);return{pid:parseInt(f[0],10),ppid:parseInt(f[1],10),uid:parseInt(f[2],10),gid:parseInt(f[3],10),name:oNe(_),bin:_,cmd:f[4]}});t.config.strict&&t.name&&(d=d.filter(f=>f.name===t.name)),e(d)}})})},win32(t){return new Promise((e,r)=>{let n="[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; Get-CimInstance -className win32_process | select Name,ProcessId,ParentProcessId,CommandLine,ExecutablePath",i=[],s=Xh.default.spawn("powershell.exe",["/c",n],{detached:!1,windowsHide:!0});s.stdout.on("data",o=>{i.push(o.toString())}),s.on("error",o=>{r(new Error("Command '"+n+"' failed with reason: "+o.toString()))}),s.on("close",o=>{if(o!==0)return r(new Error("Command '"+n+"' terminated with code: "+o));let c=Xh.default.parseTable(i.join("")).filter(u=>{if(t.pid!==void 0)return u.ProcessId===String(t.pid);if(t.name){let l=u.Name||"";return t.config.strict?l===t.name||l.endsWith(".exe")&&l.slice(0,-4)===t.name:OW(u.CommandLine||l,t.name)}else return!0}).map(u=>({pid:parseInt(u.ProcessId,10),ppid:parseInt(u.ParentProcessId,10),bin:u.ExecutablePath,name:u.Name||"",cmd:u.CommandLine}));e(c)})})},android(t){return new Promise((e,r)=>{Xh.default.exec("ps",function(i,s,o){if(i)t.pid!==void 0?e([]):r(i);else{let c=o.toString().trim();if(c){r(new Error(c));return}let u=Xh.default.stripLine(s.toString(),1),d=Xh.default.extractColumns(u,[0,3],4).filter(f=>f[0]&&t.pid!==void 0?f[0]===String(t.pid):f[1]&&t.name?OW(f[1],t.name):!!f[0]).map(f=>{let p=String(f[1]),_=sNe(p);return{pid:parseInt(f[0],10),ppid:0,name:oNe(_),bin:_,cmd:f[1]}});t.config.strict&&t.name&&(d=d.filter(f=>f.name===t.name)),e(d)}})})}};iy.linux=iy.darwin;iy.sunos=iy.darwin;iy.freebsd=iy.darwin;function tRt(t){let e=process.platform,r=iy[e];return r?r(t):Promise.reject(new Error(`Platform "${e}" is not supported`))}a(tRt,"findProcess");kl.default=tRt});var lNe=v(aA=>{"use strict";var CW=aA&&aA.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(aA,"__esModule",{value:!0});var rRt=CW(aNe()),uNe=CW(cNe()),nRt=CW(NW()),IW={port(t,e){return(0,rRt.default)(t).then(r=>IW.pid(r,e),()=>[])},pid(t,e){return(0,uNe.default)({pid:t,config:e})},name(t,e){return(0,uNe.default)({name:t,config:e,skipSelf:!0})}};function iRt(t,e,r){let n=Object.assign({logLevel:"warn",strict:typeof r=="boolean"?r:!1},typeof r=="object"?r:{});return n.logLevel&&nRt.default.setLevel(n.logLevel),new Promise((i,s)=>{if(!(t in IW))s(new Error(`do not support find by "${t}"`));else{let o=/^\d+$/.test(String(e));t==="pid"&&!o?s(new Error("pid must be a number")):t==="port"&&!o?s(new Error("port must be a number")):IW[t](e,n).then(i,s)}})}a(iRt,"find");aA.default=iRt});var fNe=v(dNe=>{"use strict";Object.defineProperty(dNe,"__esModule",{value:!0})});var pNe=v(Nl=>{"use strict";var aRt=Nl&&Nl.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:a(function(){return e[r]},"get")}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),sRt=Nl&&Nl.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&aRt(e,t,r)},oRt=Nl&&Nl.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Nl,"__esModule",{value:!0});Nl.default=void 0;var cRt=lNe();Object.defineProperty(Nl,"default",{enumerable:!0,get:a(function(){return oRt(cRt).default},"get")});sRt(fNe(),Nl)});var hNe=v(Bp=>{"use strict";Object.defineProperties(Bp,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var uRt=gW(),$6=class{static{a(this,"R")}constructor(e){this.client=e}async getAddress(){return this.client._request("post","/address")}async getBtcBalance(e={}){return this.client._request("post","/btcbalance",e)}async sendBtc(e){return this.client._request("post","/sendbtc",e)}async createUtxos(e={}){return this.client._request("post","/createutxos",e)}async estimateFee(e){return this.client._request("post","/estimatefee",e)}async listOnchainTransactions(e={}){return this.client._request("post","/listtransactions",e)}async listUnspents(e={}){return this.client._request("post","/listunspents",e)}},G6=class{static{a(this,"N")}constructor(e){this.client=e,this.rgbTransactionSubscriptions=new Map,this.rgbTransactionPollingIntervals=new Map}async getAssetBalance(e){return this.client._request("post","/assetbalance",e)}async getAssetMetadata(e){return this.client._request("post","/assetmetadata",e)}async listAssets(e={}){let r={filter_asset_schemas:e.filter_asset_schemas};return this.client._request("post","/listassets",r)}async listTransactions(e={skip_sync:!1}){return this.client._request("post","/listtransactions",e)}async listTransfers(e){return this.client._request("post","/listtransfers",{asset_id:e})}async issueAssetCfa(e){return this.client._request("post","/issueassetcfa",e)}async issueAssetNia(e){return this.client._request("post","/issueassetnia",e)}async issueAssetUda(e){return this.client._request("post","/issueassetuda",e)}async sendAsset(e){return this.client._request("post","/sendasset",e)}async createRgbInvoice(e){let r={asset_id:e.asset_id,duration_seconds:e.duration_seconds,min_confirmations:e.min_confirmations,witness:e.witness||!1};return this.client._request("post","/rgbinvoice",r)}async payRgbInvoice(e){var r;let n=await this.decodeRgbInvoice({invoice:e.invoice}),i={recipient_id:n.recipient_id,asset_id:e.asset_id||n.asset_id,assignment:{type:"Fungible",value:e.amount||((r=n?.assignment)==null?void 0:r.value)},fee_rate:e.fee_rate,skip_sync:e.skip_sync,donation:e.donation||!1,min_confirmations:e.min_confirmations||1,transport_endpoints:e.transport_endpoints||n.transport_endpoints||[]};return this.sendAsset(i)}async decodeRgbInvoice(e){return this.client._request("post","/decodergbinvoice",e)}async failTransfers(e){return this.client._request("post","/failtransfers",e)}async getAssetMedia(e){return this.client._request("post","/getassetmedia",e)}async refreshTransfers(e={}){let r={skip_sync:e.skip_sync};return this.client._request("post","/refreshtransfers",r)}async syncRgbWallet(){return this.client._request("post","/sync",{})}async postAssetMedia(e){let r=new FormData;return r.append("file",e.file),this.client._request("post","/postassetmedia",r)}subscribeToRgbTransactions(e){let{onTransaction:r,onError:n,pollingInterval:i=5e3,maxStoredIds:s=1e3,skipInitialFetch:o=!1}=e;if(!r||typeof r!="function")throw new Error("onTransaction callback is required and must be a function");i<1e3&&console.warn("Warning: Polling interval less than 1000ms may cause performance issues");let c=`rgb-tx-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,u=Date.now(),l=new Set,d=new Map,f=a(g=>typeof g=="string"?new Date(g).getTime():g||0,"d"),p=a(()=>{l.size<=s||[...d.entries()].sort((g,y)=>g[1]-y[1]).map(g=>g[0]).slice(0,l.size-s).forEach(g=>{l.delete(g),d.delete(g)})},"f");o||this.listTransactions().then(g=>{g&&g.transfers&&Array.isArray(g.transfers)&&(g.transfers.forEach(y=>{l.add(y.idx),d.set(y.idx,f(y.created_at))}),p())}).catch(g=>{n&&typeof n=="function"&&n(g)});let _=i,h=0,m=setInterval(async()=>{try{let g=await this.listTransactions();if(g&&g.transfers&&Array.isArray(g.transfers)){let y=g.transfers.filter(w=>{if(!l.has(w.idx))return l.add(w.idx),d.set(w.idx,f(w.created_at)),!0;let E=f(w.created_at);return l.has(w.idx)&&E>(d.get(w.idx)||0)?(d.set(w.idx,E),!0):!1});if(g.transfers.length>0){let w=Math.max(...g.transfers.map(E=>f(E.created_at)));u=Math.max(u,w)}if(p(),y.length>0)y.forEach(w=>{r(w)}),h=0;else if(h++,h>5){let w=Math.min(i*3,i*(1+h/10));if(w!==_){_=w,clearInterval(m);let E=setInterval(m.callback,_);this.rgbTransactionPollingIntervals.set(c,E)}}}}catch(g){n&&typeof n=="function"&&n(g)}},i);return m.callback=m._onTimeout,this.rgbTransactionSubscriptions.set(c,{onTransaction:r,onError:n,pollingInterval:i,currentPollingInterval:_,maxStoredIds:s}),this.rgbTransactionPollingIntervals.set(c,m),c}unsubscribeFromRgbTransactions(e){if(!this.rgbTransactionSubscriptions.has(e))return!1;let r=this.rgbTransactionPollingIntervals.get(e);return r&&(clearInterval(r),this.rgbTransactionPollingIntervals.delete(e)),this.rgbTransactionSubscriptions.delete(e),!0}},ay={},_Ne;function lRt(){if(_Ne)return ay;_Ne=1,Object.defineProperty(ay,"__esModule",{value:!0}),ay.bech32m=ay.bech32=void 0;let t="qpzry9x8gf2tvdw0s3jn54khce6mua7l",e={};for(let l=0;l<t.length;l++){let d=t.charAt(l);e[d]=l}function r(l){let d=l>>25;return(l&33554431)<<5^-(d>>0&1)&996825010^-(d>>1&1)&642813549^-(d>>2&1)&513874426^-(d>>3&1)&1027748829^-(d>>4&1)&705979059}a(r,"t");function n(l){let d=1;for(let f=0;f<l.length;++f){let p=l.charCodeAt(f);if(p<33||p>126)return"Invalid prefix ("+l+")";d=r(d)^p>>5}d=r(d);for(let f=0;f<l.length;++f){let p=l.charCodeAt(f);d=r(d)^p&31}return d}a(n,"r");function i(l,d,f,p){let _=0,h=0,m=(1<<f)-1,g=[];for(let y=0;y<l.length;++y)for(_=_<<d|l[y],h+=d;h>=f;)h-=f,g.push(_>>h&m);if(p)h>0&&g.push(_<<f-h&m);else{if(h>=d)return"Excess padding";if(_<<f-h&m)return"Non-zero padding"}return g}a(i,"c");function s(l){return i(l,8,5,!0)}a(s,"u");function o(l){let d=i(l,5,8,!1);if(Array.isArray(d))return d}a(o,"p");function c(l){let d=i(l,5,8,!1);if(Array.isArray(d))return d;throw new Error(d)}a(c,"g");function u(l){let d;l==="bech32"?d=1:d=734539939;function f(m,g,y){if(y=y||90,m.length+7+g.length>y)throw new TypeError("Exceeds length limit");m=m.toLowerCase();let w=n(m);if(typeof w=="string")throw new Error(w);let E=m+"1";for(let A=0;A<g.length;++A){let I=g[A];if(I>>5!==0)throw new Error("Non 5-bit word");w=r(w)^I,E+=t.charAt(I)}for(let A=0;A<6;++A)w=r(w);w^=d;for(let A=0;A<6;++A){let I=w>>(5-A)*5&31;E+=t.charAt(I)}return E}a(f,"d");function p(m,g){if(g=g||90,m.length<8)return m+" too short";if(m.length>g)return"Exceeds length limit";let y=m.toLowerCase(),w=m.toUpperCase();if(m!==y&&m!==w)return"Mixed-case string "+m;m=y;let E=m.lastIndexOf("1");if(E===-1)return"No separator character for "+m;if(E===0)return"Missing prefix for "+m;let A=m.slice(0,E),I=m.slice(E+1);if(I.length<6)return"Data too short";let R=n(A);if(typeof R=="string")return R;let $=[];for(let B=0;B<I.length;++B){let U=I.charAt(B),L=e[U];if(L===void 0)return"Unknown character "+U;R=r(R)^L,!(B+6>=I.length)&&$.push(L)}return R!==d?"Invalid checksum for "+m:{prefix:A,words:$}}a(p,"f");function _(m,g){let y=p(m,g);if(typeof y=="object")return y}a(_,"m");function h(m,g){let y=p(m,g);if(typeof y=="object")return y;throw new Error(y)}return a(h,"y"),{decodeUnsafe:_,decode:h,encode:f,toWords:s,fromWordsUnsafe:o,fromWords:c}}return a(u,"b"),ay.bech32=u("bech32"),ay.bech32m=u("bech32m"),ay}a(lRt,"B");var dRt=lRt(),fRt=1,pRt=13,_Rt=19,hRt=23,mRt=6,gRt=24,yRt=16,vRt=27,bRt=5,xRt=30,wRt=31,ERt={bc:"Mainnet",tb:"Testnet",bcrt:"Regtest",sb:"Signet",tbs:"Signet"},TRt={m:.001,u:1e-6,n:1e-9,p:1e-12};function j6(t){let e=0;for(let r of t)e=e*32+r;return e}a(j6,"E");function Qh(t){let e=[],r=0,n=0;for(let i of t)for(r=r<<5|i,n+=5;n>=8;)e.push(r>>>n-8&255),n-=8;return new Uint8Array(e)}a(Qh,"v");function Qx(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}a(Qx,"A");function SRt(t){let e=t.match(/^ln([a-z]+)(\d*)([munp]?)$/);if(!e)throw new Error("Invalid HRP format");let[,r,n,i]=e;return{currency:r,amount:n?parseInt(n):null,siPrefix:i||null,network:ERt[r]||"Unknown"}}a(SRt,"ee");function ARt(t){let e={},r=0;for(;r<t.length;){if(r+3>t.length)throw new Error("Unexpected end of tagged fields");let n=t[r],i=t[r+1]<<5|t[r+2];if(r+=3,r+i>t.length)throw new Error("Tagged field length exceeds remaining data");let s=t.slice(r,r+i);r+=i;try{switch(n){case fRt:s.length===52&&(e.paymentHash=Qx(Qh(s)));break;case pRt:let o=Qh(s);e.description=new TextDecoder().decode(o);break;case _Rt:s.length===53&&(e.payeePubkey=Qx(Qh(s)));break;case hRt:s.length===52&&(e.descriptionHash=Qx(Qh(s)));break;case mRt:e.expiryTime=j6(s);break;case gRt:e.minFinalCltvExpiryDelta=j6(s);break;case yRt:s.length===52&&(e.paymentSecret=Qx(Qh(s)));break;case vRt:e.paymentMetadata=Qx(Qh(s));break;case bRt:e.features=Qx(Qh(s));break;case xRt:e.rgbAmount=j6(s);break;case wRt:let c=Qh(s);e.rgbContractId=new TextDecoder().decode(c);break;default:break}}catch{continue}}return e}a(ARt,"te");function kRt(t){try{let e=dRt.bech32.decode(t,2e3),{prefix:r,words:n}=e,i=SRt(r);if(n.length<111)throw new Error("Invoice data too short");let s=n.slice(0,7),o=j6(s),c=n.slice(7,n.length-104),u=ARt(c),l=null;if(i.amount!==null){let p=i.amount;i.siPrefix&&TRt[i.siPrefix]?i.siPrefix==="u"?l=p*1e5:i.siPrefix==="m"?l=p*1e8:i.siPrefix==="n"?l=p*100:i.siPrefix==="p"&&(l=Math.floor(p/10)):l=Math.floor(p/10)}let d=u.expiryTime||3600,f=null;return u.rgbContractId&&(f=u.rgbContractId),{amt_msat:l,expiry_sec:d,timestamp:o,asset_id:f,asset_amount:u.rgbAmount||null,payment_hash:u.paymentHash||null,payment_secret:u.paymentSecret||null,payee_pubkey:u.payeePubkey||null,network:i.network}}catch(e){throw new Error(`Failed to decode Lightning invoice: ${e.message}`)}}a(kRt,"se");var V6=class{static{a(this,"D")}constructor(e){this.client=e,this.paymentSubscriptions=new Map,this.paymentPollingIntervals=new Map}async connectPeer(e){return this.client._request("post","/connectpeer",e)}async listPeers(){return this.client._request("get","/listpeers")}async disconnectPeer(e){return this.client._request("post","/disconnectpeer",e)}async openChannel(e){return this.client._request("post","/openchannel",e)}async closeChannel(e){return this.client._request("post","/closechannel",e)}async listChannels(){return this.client._request("get","/listchannels")}async getChannelIdByTempId(e){return this.client._request("post","/getchannelid",e)}async createInvoice(e){return this.client._request("post","/lninvoice",e)}async payInvoice(e){return this.client._request("post","/sendpayment",e)}async decodeLnInvoice(e){return this.client._request("post","/decodelninvoice",e)}async getInvoiceStatus(e){return this.client._request("post","/invoicestatus",e)}async getPayment(e){return this.client._request("post","/getpayment",e)}async listPayments(){return this.client._request("get","/listpayments")}async keysend(e){return this.client._request("post","/keysend",e)}subscribeToPastPayments(e){let{onPayment:r,onError:n,pollingInterval:i=5e3,maxStoredIds:s=1e3,skipInitialFetch:o=!1}=e;if(!r||typeof r!="function")throw new Error("onPayment callback is required and must be a function");i<1e3&&console.warn("Warning: Polling interval less than 1000ms may cause performance issues");let c=`payment-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,u=Date.now(),l=new Set,d=new Map,f=a(()=>{l.size<=s||[...d.entries()].sort((m,g)=>m[1]-g[1]).map(m=>m[0]).slice(0,l.size-s).forEach(m=>{l.delete(m),d.delete(m)})},"d");o||this.listPayments().then(m=>{m&&m.payments&&Array.isArray(m.payments)&&(m.payments.forEach(g=>{l.add(g.payment_hash),d.set(g.payment_hash,g.created_at||Date.now())}),f())}).catch(m=>{n&&typeof n=="function"&&n(m)});let p=i,_=0,h=setInterval(async()=>{try{let m=await this.listPayments();if(m&&m.payments&&Array.isArray(m.payments)){let g=m.payments.filter(y=>l.has(y.payment_hash)?l.has(y.payment_hash)&&y.updated_at>(d.get(y.payment_hash)||0)?(d.set(y.payment_hash,y.updated_at||Date.now()),!0):!1:(l.add(y.payment_hash),d.set(y.payment_hash,y.created_at||Date.now()),!0));if(m.payments.length>0){let y=Math.max(...m.payments.map(w=>w.updated_at||0));u=Math.max(u,y)}if(f(),g.length>0)g.forEach(y=>{r(y)}),_=0;else if(_++,_>5){let y=Math.min(i*3,i*(1+_/10));if(y!==p){p=y,clearInterval(h);let w=setInterval(h.callback,p);this.paymentPollingIntervals.set(c,w)}}}}catch(m){n&&typeof n=="function"&&n(m)}},i);return h.callback=h._onTimeout,this.paymentSubscriptions.set(c,{onPayment:r,onError:n,pollingInterval:i,currentPollingInterval:p,maxStoredIds:s}),this.paymentPollingIntervals.set(c,h),c}unsubscribeFromPayments(e){if(!this.paymentSubscriptions.has(e))return!1;let r=this.paymentPollingIntervals.get(e);return r&&(clearInterval(r),this.paymentPollingIntervals.delete(e)),this.paymentSubscriptions.delete(e),!0}decodeRGBLNInvoice(e){return kRt(e)}},K6=class{static{a(this,"C")}constructor(e){this.client=e}async makerInitSwap(e){return this.client._request("post","/makerinit",e)}async makerExecuteSwap(e){return this.client._request("post","/makerexecute",e)}async takerAcceptSwap(e){return this.client._request("post","/taker",e)}async getSwap(e){return this.client._request("post","/getswap",e)}async listSwaps(){return this.client._request("get","/listswaps")}},z6=class{static{a(this,"U")}constructor(e){this.client=e}async getNodeInfo(){return this.client._request("get","/nodeinfo")}async getNodeState(){try{let e=await this.client._request("get","/nodestate");return e?.state}catch(e){if(e.message.includes("Network Error"))return"NonExisting";throw e}}async getNetworkInfo(){return this.client._request("get","/networkinfo")}async checkIndexerUrl(e){return this.client._request("post","/checkindexerurl",e)}async checkProxyEndpoint(e){return this.client._request("post","/checkproxyendpoint",e)}async sendOnionMessage(e){return this.client._request("post","/sendonionmessage",e)}async signMessage(e){return this.client._request("post","/signmessage",e)}async initNode(e){return this.client._request("post","/init",e)}async unlockNode(e){return this.client._request("post","/unlock",e)}async lockNode(){return this.client._request("post","/lock")}async changePassword(e){return this.client._request("post","/changepassword",e)}async backupNode(e){return this.client._request("post","/backup",e)}async restoreNode(e){return this.client._request("post","/restore",e)}},J6=class{static{a(this,"G")}constructor(e={},r=null){let n={};typeof e=="string"?(n.baseUrl=e,r&&(n.headers={Authorization:`Bearer ${r}`})):n=e,this.baseUrl=n.baseUrl||"http://localhost:3001",this.axios=uRt.create({baseURL:this.baseUrl,headers:{"Content-Type":"application/json",...n.headers},...n.axiosConfig}),this.onchain=new $6(this),this.rgb=new G6(this),this.lightning=new V6(this),this.swaps=new K6(this),this.node=new z6(this)}async _request(e,r,n=null){var i,s;try{let o={method:e,url:r};return n!==null&&(e==="post"||e==="put"||e==="patch")?o.data=n:n!==null&&e==="get"&&(o.params=n),(await this.axios.request(o)).data}catch(o){if(o.response){let c=((i=o.response.data)==null?void 0:i.message)||((s=o.response.data)==null?void 0:s.error)||o.response.statusText;throw new Error(`API Error (${o.response.status}): ${c}`)}else throw o.request?new Error(`Network Error: Unable to reach RGB API at ${this.baseUrl}`):new Error(`Request Error: ${o.message}`)}}};Bp.LightningMethods=V6;Bp.NodeMethods=z6;Bp.OnchainMethods=$6;Bp.RgbApiClient=J6;Bp.RgbMethods=G6;Bp.SwapMethods=K6;Bp.default=J6});var sA=v((qMr,mNe)=>{var{getConfig:NRt}=Vt(),{RgbApiClient:ORt}=hNe(),RW=null;function IRt(){if(!RW){let t=NRt();if(!t.LINK_RGB_LISTENING_PORT)throw new Error("RGB configuration not available");RW=new ORt({baseUrl:`http://127.0.0.1:${t.LINK_RGB_LISTENING_PORT}`})}return RW}a(IRt,"getRgbClient");mNe.exports=IRt});var oA=v((jMr,vNe)=>{var{checkObjectArgs:gNe}=Qi(),{getConfig:CRt}=Vt(),{decryptNostrString:W6}=Cr(),{getConfigFilePath:yNe}=jS(),{TASKS:RRt}=tt(),{reportTaskCompletion:PRt}=Lp(),Yx=sA();async function X6(){let t=await Yx().node.getNodeState(),e={};switch(t){case"None":e.state=0;break;case"Locked":e.state=1;break;case"Changing":e.state=3;break;case"Running":e.state=4;break;case"NonExisting":e.state=255;break;default:e.state=0}return e}a(X6,"getNodeState");async function LRt(){return(await Yx().rgb.listAssets({filter_asset_schemas:[]}))?.nia??[]}a(LRt,"getRGBAssetsList");async function DRt({password:t}){if(!t)throw new Error("password is required");let e=Yx(),r=await W6(t);return await e.node.initNode({password:r})}a(DRt,"genSeed");async function BRt({password:t,lnlinkUser:e}){if(!t)throw new Error("password is required");let r=Yx(),{LINK_BITCOIND_RPCHOST:n,LINK_BITCOIND_RPCUSER:i,LINK_BITCOIND_RPCPASS:s,LINK_RGB_LDK_PEER_LISTENING_PORT:o=9735,LINK_NAME:c,LINK_RGB_ELECTRS_HOST:u,LINK_RGB_PROXY_ENDPOINT:l}=CRt(),d=await W6(t),f=n?.split(":")[0],p=Number(n?.split(":")[1]),_={bitcoind_rpc_username:i,bitcoind_rpc_password:s,bitcoind_rpc_host:f,bitcoind_rpc_port:p,indexer_url:u,proxy_endpoint:l,password:d,announce_addresses:[`0.0.0.0:${o}`],announce_alias:`${c}`};e&&PRt({nostrAddress:e?.npub,tag:RRt.EnableRGBNode});let h=r.node.unlockNode(_),m=3e4,g,y=new Promise(E=>{g=setTimeout(async()=>{let A=await X6();E({message:"Request submitted, current node status:",status:A})},m)}),w=await Promise.race([h,y]);return clearTimeout(g),w||!0}a(BRt,"unlockNode");async function MRt({password:t}){let{rgbBackupPath:e}=yNe(),r={password:t,backup_path:e},n=Yx();gNe(r,["password","backup_path"]),(await X6()).state===4&&await n.node.lockNode();let s=await W6(t);return r.password=s,await n.node.backupNode(r)||!0}a(MRt,"backupNode");async function FRt({password:t}){let{rgbBackupPath:e}=yNe(),r={password:t,backup_path:e},n=Yx();(await X6()).state===4&&await n.node.lockNode(),gNe(r,["password","backup_path"]);let s=await W6(t);return r.password=s,await n.node.restoreNode(r)||!0}a(FRt,"restoreNode");vNe.exports={getNodeState:X6,genSeed:DRt,unlockNode:BRt,backupNode:MRt,restoreNode:FRt,getRGBAssetsList:LRt}});var TNe=v((VMr,ENe)=>{var PW=pNe().default,{getWalletState:URt}=Qi(),{getConfig:qRt}=Vt(),{WALLET_STATE_CODE:GMr}=tt(),Yh=Ke(),{getNodeState:HRt}=oA(),{getServiceConfig:bNe}=M6(),{getServicesState:jRt}=SW();function xNe(){let t=qRt();return t.LINK_EXTERNAL_NODES==="true"||t.LINK_EXTERNAL_NODES===!0}a(xNe,"isExternalNodesMode");var va={RUNNING:"Running",STOPPED:"Stopped"};async function $Rt(){let t=new Yh("statusChecker");try{return jRt()?.tor?.hasProcess?va.RUNNING:va.STOPPED}catch(e){return t.error(`Error checking tor process: ${e.message}`),va.STOPPED}}a($Rt,"checkTorProcess");async function GRt(){let t=new Yh("statusChecker");try{if(xNe()){t.info("External nodes mode: checking litd via RPC...");try{let r=await URt();if(r!=null)return t.info(`Litd is running (wallet state: ${r})`),va.RUNNING}catch(r){t.warn(`RPC check failed: ${r.message}`)}return va.STOPPED}let e=await PW("name","litd");return e.length>0?(t.info(`Found litd process(es): ${e.map(r=>r.pid).join(", ")}`),va.RUNNING):va.STOPPED}catch(e){return t.warn(`Failed to check litd process: ${e.message}`),va.STOPPED}}a(GRt,"checkLitdProcess");async function wNe(){let t=new Yh("statusChecker");try{if(xNe()){t.info("External nodes mode: checking RGB via SDK...");try{let r=await HRt();if(r!=null)return t.info("RGB is running (node state received)"),va.RUNNING}catch(r){t.warn(`RGB SDK check failed: ${r.message}`)}return va.STOPPED}let e=await PW("name","rgb-lightning-node");return e.length>0?(t.info(`Found rgb-lightning-node process(es): ${e.map(r=>r.pid).join(", ")}`),va.RUNNING):va.STOPPED}catch(e){return t.warn(`Failed to check rgb process: ${e.message}`),va.STOPPED}}a(wNe,"checkRgbProcess");async function Q6(t){let e=new Yh("statusChecker");try{let r=bNe();if(!r[t])throw new Error(`${t} does not exist.`);switch(t){case"tor":return await $Rt();case"litd":return await GRt();case"rgb":return await wNe();default:{let i=r[t].command.split(/[\/\\]/).pop().replace(".exe","");return(await PW("name",i)).length>0?va.RUNNING:va.STOPPED}}}catch(r){throw e.error(`Error checking ${t} process: ${r.message}`),r}}a(Q6,"checkProcess");function VRt(t=""){let e=bNe(),r=new Yh("statusChecker"),n=a(s=>s!=="rgb"&&(!t||s.includes(t)),"shouldInclude"),i=Object.keys(e).filter(n);return Promise.all(i.map(async s=>{try{let o=await Q6(s);return{service_name:s,status:o}}catch(o){return r.error(`Error checking ${s} status: ${o.message}`),{service_name:s,status:va.STOPPED,error:o.message}}}))}a(VRt,"getTerminalStatus");async function KRt(){let t=new Yh("statusChecker");try{return{service_name:"rgb",status:await wNe()}}catch(e){return t.error(`Error checking rgb status: ${e.message}`),{service_name:"rgb",status:va.STOPPED,error:e.message}}}a(KRt,"getRGBStatus");async function zRt(t){let e=new Yh("statusChecker");try{return await Q6(t)===va.RUNNING}catch(r){return e.error(`Error checking if ${t} is running: ${r.message}`),!1}}a(zRt,"isServiceRunning");function JRt(t,e,r=3e4,n=1e3){let i=new Yh("statusChecker");return new Promise(s=>{let o=Date.now(),c=a(async()=>{try{if(await Q6(t)===e){s(!0);return}}catch(u){i.error(`Error waiting for ${t} status: ${u.message}`)}if(Date.now()-o>=r){i.warn(`Timeout waiting for ${t} to reach status: ${e}`),s(!1);return}setTimeout(c,n)},"checkStatus");c()})}a(JRt,"waitForServiceStatus");ENe.exports={ServiceStatus:va,checkProcess:Q6,getRGBStatus:KRt,getTerminalStatus:VRt,isServiceRunning:zRt,waitForServiceStatus:JRt}});var uf=v((zMr,LNe)=>{var{getConfig:ANe,reloadConfig:WRt}=Vt(),{TASKS:LW}=tt(),ru=Ke(),{sleep:kNe}=$S(),{updateMainLnlinkConfig:XRt}=Cr(),{reportTaskCompletion:DW}=Lp(),{buildLitdArgs:QRt,buildTorArgs:YRt,buildRgbArgs:ZRt}=M6(),{startService:Y6,stopService:Zx}=SW(),{getTerminalStatus:cA,isServiceRunning:e1,getRGBStatus:uA,ServiceStatus:Ol}=TNe();async function NNe(t,{timeoutMs:e=15e3,pollIntervalMs:r=1e3}={}){let n=new ru("litdService"),i=Date.now()+e,s=[];for(;;){if(s=await cA("litd"),s.find(d=>d.service_name==="litd")?.status===t)return n.info(`Litd reached target status: ${t}`),{matched:!0,statuses:s};let u=Date.now();if(u>=i)break;let l=Math.min(r,Math.max(0,i-u));l>0&&await kNe(l)}let o=s.find(c=>c.service_name==="litd")?.status||"Unknown";return n.warn(`Timed out waiting for Litd status "${t}". Last observed status: ${o}`),{matched:!1,statuses:s}}a(NNe,"waitForLitdStatus");async function SNe(t,{timeoutMs:e=15e3,pollIntervalMs:r=1e3}={}){let n=new ru("rgbService"),i=Date.now()+e,s=null;for(;;){if(s=await uA(),s?.status===t)return n.info(`RGB reached target status: ${t}`),{matched:!0,statuses:s};let u=Date.now();if(u>=i)break;let l=Math.min(r,Math.max(0,i-u));l>0&&await kNe(l)}let o=s?.status||"Unknown";return n.warn(`Timed out waiting for RGB status "${t}". Last observed status: ${o}`),{matched:!1,statuses:s}}a(SNe,"waitForRgbStatus");async function ONe({waitForRunning:t=!0}={}){let e=new ru("litdService"),{LINK_ENABLE_TOR:r}=ANe(),n=r==="true"||r===!0;e.info("Starting terminal services...");let i=await cA(),s=i.find(c=>c.service_name==="litd"),o=i.find(c=>c.service_name==="tor");e.info(`Current status - Litd: ${s?.status}, Tor: ${o?.status}`);try{if(n&&o?.status===Ol.STOPPED){e.info("Starting Tor service...");let l=YRt();await Y6("tor",l),e.info("Tor service started successfully")}if(s?.status===Ol.STOPPED){e.info("Starting Litd service...");let l=QRt(n);await Y6("litd",l),e.info("Litd service started successfully")}let c=await cA(),u=c.find(l=>l.service_name==="litd")?.status;if(t&&u!==Ol.RUNNING){e.info("Waiting for Litd to reach running state after start...");let{matched:l,statuses:d}=await NNe(Ol.RUNNING,{timeoutMs:2e4,pollIntervalMs:1e3});if(!l)throw new Error("Litd failed to reach RUNNING state after start");return e.info("Terminal services started and Litd is running"),d}return e.info("Terminal services started successfully"),c}catch(c){throw e.error(`Failed to start terminal services: ${c.message}`),c}}a(ONe,"startTerminal");async function INe(t={}){let e=new ru("litdService"),{lnlinkUser:r,waitForStopped:n=!0,waitOptions:i={}}=t||{};e.info("Stopping terminal services...");try{if(!await Zx("litd"))return e.warn("stopService returned a falsy result"),!1;if(r&&DW({nostrAddress:r.npub,tag:LW.StopTaprootAssetNode}),!n)return e.info("Terminal services stopped (waiting for STOPPED state skipped)"),!0;e.info("Waiting for Litd to confirm STOPPED state...");let{matched:o}=await NNe(Ol.STOPPED,{timeoutMs:15e3,pollIntervalMs:1e3,...i});if(!o)throw new Error("Litd did not stop within the expected time window");return e.info("Terminal services stopped successfully and Litd is confirmed STOPPED"),!0}catch(s){throw e.error(`Failed to stop terminal services: ${s.message}`),s}}a(INe,"stopTerminal");async function BW(t={}){let e=new ru("litdService");e.info("Restarting terminal services...");try{if(!await INe({...t,waitForStopped:!0}))return e.warn("Stopping Litd returned a falsy result, aborting restart."),!1;e.info("Starting Litd...");let n=await ONe({waitForRunning:!0});return e.info("Terminal services restarted successfully"),n}catch(r){throw e.error(`Failed to restart terminal services: ${r.message}`),r}}a(BW,"restartTerminal");async function e6t(t={}){let e=new ru("litdService");if(Object.keys(t).length===0)throw new Error("config is empty");return e.info("Applying new configuration..."),await BW()}a(e6t,"configTerminal");async function t6t(){let t=new ru("litdService");try{let e=await cA(),r=await e1("litd"),n=await e1("tor");return{healthy:r,services:{litd:{running:r,status:e.find(i=>i.service_name==="litd")?.status||"Unknown"},tor:{running:n,status:e.find(i=>i.service_name==="tor")?.status||"Unknown"}},timestamp:new Date().toISOString()}}catch(e){return t.error(`Health check failed: ${e.message}`),{healthy:!1,error:e.message,timestamp:new Date().toISOString()}}}a(t6t,"healthCheck");async function CNe(t){let e=new ru("rgbService");e.info("Starting RGB service...");try{let r=await uA();if(r?.status===Ol.STOPPED){e.info("RGB service is stopped, starting...");let i=ZRt();await Y6("rgb",i),t?.lnlinkUser&&DW({nostrAddress:t?.lnlinkUser?.npub,tag:LW.EnableRGBNode}),e.info("RGB service started successfully")}else e.info(`RGB service is already ${r?.status}`);return await uA()}catch(r){throw e.error(`Failed to start RGB service: ${r.message}`),r}}a(CNe,"startRGB");async function RNe(t){let e=new ru("rgbService");e.info("Stopping RGB service...");let r=t?.lnlinkUser;try{let n=await Zx("rgb");return e.info("RGB service stopped successfully"),r&&DW({nostrAddress:r.npub,tag:LW.StopRGBNode}),n}catch(n){throw e.error(`Failed to stop RGB service: ${n.message}`),n}}a(RNe,"stopRGB");async function PNe(t={}){let e=new ru("rgbService");e.info("Restarting RGB service...");try{let r=await uA(),n=!!r?.error;if(r?.status===Ol.RUNNING||n){if(e.info(n?"RGB status check failed; forcing stop before restart...":"Stopping RGB service..."),!await RNe(t))return e.warn("Stopping RGB returned a falsy result, aborting restart."),!1;e.info("Waiting for RGB to stop...");let{matched:d}=await SNe(Ol.STOPPED,{timeoutMs:15e3,pollIntervalMs:1e3});if(!d)throw new Error("RGB did not stop within the expected time window")}e.info("Starting RGB...");let s=await CNe(t);if(s?.status===Ol.RUNNING)return e.info("RGB service restarted successfully"),s;e.info("Waiting for RGB to reach running state...");let{matched:c,statuses:u}=await SNe(Ol.RUNNING,{timeoutMs:2e4,pollIntervalMs:1e3});if(!c)throw new Error("RGB failed to reach RUNNING state after restart");return e.info("RGB service restarted successfully"),u}catch(r){throw e.error(`Failed to restart RGB service: ${r.message}`),r}}a(PNe,"restartRGB");async function r6t(t={}){let e=new ru("nodeManage");e.info("Updating node name...");try{let{node_name:r}=t;if(!r)throw new Error("node_name is required");let n=await XRt({node_name:r});if(n!==1)throw new Error("Failed to update node name in DB");await WRt();let s=ANe()?.LINK_NAME||r,o=await BW(t);if(!o)throw new Error("Failed to restart litd after updating node name");let u=(Array.isArray(o)?o.find(f=>f.service_name==="litd"):null)?.status||(Array.isArray(o)?"Unknown":o?.status||"Unknown"),l=await PNe(t),d=Array.isArray(l)?l.find(f=>f.service_name==="rgb")?.status||"Unknown":l?.status||"Unknown";return{update_status:n===1,node_name:s,litd_status:u,litd_details:o,rgb_status:d,rgb_details:l}}catch(r){throw e.error(`Failed to update nodename: ${r.message}`),r}}a(r6t,"updateNodeName");if(globalThis.addCleanupFunction){let t=new ru("nodeManage");globalThis.addCleanupFunction(async()=>{t.info("Cleaning up node processes...");try{await e1("litd")&&(await Zx("litd"),t.info("litd process stopped")),await e1("tor")&&(await Zx("tor"),t.info("tor process stopped")),await e1("rgb")&&(await Zx("rgb"),t.info("RGB process stopped"))}catch(e){t.error(`Error during node cleanup: ${e.message}`)}})}LNe.exports={startTerminal:ONe,stopTerminal:INe,restartTerminal:BW,configTerminal:e6t,getTerminalStatus:cA,healthCheck:t6t,startRGB:CNe,stopRGB:RNe,restartRGB:PNe,getRGBStatus:uA,startService:Y6,stopService:Zx,isServiceRunning:e1,ServiceStatus:Ol,updateNodeName:r6t}});var FW=v((WMr,MNe)=>{var{getConfig:n6t}=Vt(),{getWalletState:i6t}=Qi(),{getMainLnlinkConfig:MW,updateMainLnlinkConfig:DNe}=Cr(),{nip19:a6t,getPublicKey:s6t,generatePrivateKey:o6t}=rc(),{getRGBStatus:BNe,getTerminalStatus:c6t}=uf();async function u6t({owner:t,settings:e,nodeName:r}){if(!t)throw new Error("ownerNostrAddr is null");if(!/^npub[a-z0-9]{59,}$/.test(t))throw new Error("owner nostr address format error");let n=await MW();if(n&&n.node_sk&&n.owner_npub){let s={settings:e};r&&(s.node_name=r),await DNe(s)}else{let s=o6t(),o=a6t.npubEncode(s6t(s)),c={owner_npub:t,node_sk:s,node_npub:o,settings:e};r&&(c.node_name=r),await DNe(c)}return await MW()}a(u6t,"initConfig");async function l6t(){let t=n6t(),e=[],r=await i6t(!0);if(r===4){let i=await c6t(),s=await BNe(),o=[...new Set([s,...i])];e.push(...o)}else{let i=await BNe();e.push(i);let s=r>=0&&r<=4;e.push({service_name:"litd",status:s?"Running":"Stopped"})}let n=await MW();return{linkName:t?.LINK_NAME,owner:t?.LINK_OWNER,nodeAddr:t?.LINK_NODE_ADDR,relayUri:t?.LINK_RELAY_URI,settings:n?.settings,linkStatus:e}}a(l6t,"getInfo");MNe.exports={initConfig:u6t,getInfo:l6t}});var UW=v((QMr,FNe)=>{var d6t=require("node:events"),f6t=new d6t;FNe.exports=f6t});var jNe=v((YMr,HNe)=>{var p6t=cH(),lA=p6t.Router(),{getConfig:_6t,reloadConfig:qNe}=Vt(),{getInfo:h6t,initConfig:m6t,updateNodeName:g6t}=FW(),{sendResponse:Zh}=oi(),UNe=UW();lA.get("/health",async(t,e)=>{try{let r={status:"healthy",timestamp:new Date().toISOString(),uptime:process.uptime(),memory:process.memoryUsage()};Zh(e,200,"Server is healthy",r)}catch(r){Zh(e,500,"Server health check failed",{error:r.message})}});lA.post("/update-name",async(t,e)=>{try{let{nodeName:r}=t?.body,n=await g6t(r);await qNe(),Zh(e,200,"lnlink node_name update success",n)}catch(r){Zh(e,500,r.message,null)}});lA.post("/init",async(t,e)=>{try{let{owner:r,settings:n,nodeName:i}=t?.body,s=await m6t({owner:r,settings:n,nodeName:i});await qNe(),UNe.emit("initAccount"),UNe.emit("listenNostrEvent"),Zh(e,200,"lnlink config init success",s)}catch(r){Zh(e,500,r.message,null)}});lA.get("/info",async(t,e)=>{try{let{owner:r,nodeAddr:n,relayUri:i,linkStatus:s,settings:o}=await h6t(),c={};s.forEach(l=>{c[l.service_name]=l.status});let{LINK_LNFI_NODE_SITE_URL:u}=_6t();Zh(e,200,"success",{owner:r,nodeAddr:n,relayUri:i,...c,manageUrl:`${u.replace(/\/#\/|\/#|\/$/,"")}/#/?owner=${r}&npub=${n}`,settings:o})}catch(r){Zh(e,500,r.message,null)}});HNe.exports=lA});var qW=v((ZMr,GNe)=>{var{Buffer:$Ne}=require("node:buffer"),y6t=require("node:crypto");function v6t(t,e){let r=y6t.createHash("sha256");r.update(t);let n=r.digest();if(e<n.length)return n.slice(0,e);if(e>n.length){let i=$Ne.alloc(e-n.length);return $Ne.concat([n,i])}return n}a(v6t,"stringToFixedBytes");GNe.exports={stringToFixedBytes:v6t}});var XNe=v((tFr,WNe)=>{var HW=BigInt(Number.MAX_SAFE_INTEGER),VNe=BigInt("9223372036854775807"),Z6=BigInt("1000000000000000000000000000"),eP=Z6,KNe=+"4102444800",$W=2147483647,zNe=VNe,jW=eP,JNe=$W,b6t={isUnlimited:a(t=>{if(!t)return!1;if(typeof t=="bigint")return t===jW||t===Z6||t===eP;if(typeof t=="string"){let e=jW.toString(),r=Z6.toString(),n=eP.toString();return t===e||t===r||t===n}return!1},"isUnlimited"),isNeverExpire:a(t=>t?t===JNe||t===zNe||t===KNe||t===$W:!1,"isNeverExpire"),isSafeInteger:a(t=>t<=HW&&t>=-HW,"isSafeInteger"),toDbString:a(t=>t?typeof t=="string"?t:typeof t=="bigint"?t.toString():String(t):null,"toDbString"),fromDbString:a(t=>{if(!t)return null;try{return BigInt(t)}catch(e){return console.warn(`Failed to convert string to BigInt: ${t} ${e.message}`),null}},"fromDbString"),toSafeString:a(t=>t?t.toString():null,"toSafeString"),fromString:a(t=>t?BigInt(t):null,"fromString"),formatLargeNumber:a(t=>{if(!t)return"0";let e=t.toString(),r=e.length;return r<=6?e:r<=9?`${(Number(e)/1e6).toFixed(1)}M`:r<=12?`${(Number(e)/1e9).toFixed(1)}B`:r<=15?`${(Number(e)/1e12).toFixed(1)}T`:Number(e).toExponential(2)},"formatLargeNumber"),createTokenAmount:a((t,e=18)=>{let r=BigInt(10)**BigInt(e);return BigInt(t)*r},"createTokenAmount")};WNe.exports={MAX_SAFE_INTEGER:HW,MAX_SQLITE_INTEGER:VNe,MAX_TOKEN_AMOUNT:Z6,UNLIMITED_AUTH_LIMIT:eP,UNLIMITED_AMOUNT:jW,NEVER_EXPIRE_MAX:zNe,NEVER_EXPIRE_2100:KNe,NEVER_EXPIRE_2038:$W,NEVER_EXPIRE:JNe,BigIntUtils:b6t}});var eOe=v((nFr,ZNe)=>{var{getMainLnlinkConfig:tP}=Cr(),{insertLnlinkUser:GW,getLNDOwner:x6t,getFlashRegister:w6t,getReadOnly:E6t}=Cr(),VW=Ke(),{stringToFixedBytes:QNe}=qW(),{UNLIMITED_AMOUNT:T6t,NEVER_EXPIRE:KW,BigIntUtils:S6t}=XNe(),{ACCOUNT_TYPE:zW,FLASH_REGISTER_PERMISSIONS:A6t,OWNER_PERMISSIONS:k6t,READ_ONLY_PERMISSIONS:N6t}=tt(),JW=Kc(),{nip19:t1,getPublicKey:YNe}=rc();async function O6t(){let t=new VW("init");try{if(!await x6t()){let r=await tP(),n="owner",{owner_npub:i,settings:s,node_npub:o}=r,c=s?.nostrRelays?s?.nostrRelays?.[0]:null;await GW({name:n,pubkey:t1.decode(i).data,sk:null,node_pubkey:t1.decode(o).data,relay:c,asset_id:null,account_type:zW.OWNER,social_id:null,auth_limit:S6t.toDbString(T6t),permissions:JSON.stringify(k6t),create_at:JW().unix(),expire_time:KW,parent_pubkey:null})&&t.info(`init owner to DB owner ${i} init success.`)}}catch(e){t.error(`init owner error: ${e.message}`)}}a(O6t,"initOwner");async function I6t(){let t=new VW("init");try{let e=await tP(),{node_npub:r,settings:n}=e,i=n?.nostrRelays?n?.nostrRelays?.[0]:null,s=QNe(`${r}`).toString("hex"),o=YNe(s),c=t1.npubEncode(o);await w6t()||await GW({name:"flash_register",pubkey:o,sk:s,node_pubkey:t1.decode(r).data,relay:i,asset_id:null,account_type:zW.FLASH_REGISTER,social_id:null,social_type:null,auth_limit:"0",permissions:JSON.stringify(A6t),create_at:JW().unix(),expire_time:KW,parent_pubkey:null})&&t.info(`init flash_register to DB flash_register ${c} init success.`)}catch(e){t.error(`init flash_register error: ${e.message}`)}}a(I6t,"initFlashRegister");async function C6t(){let t=new VW("init");try{let e=await tP(),{node_npub:r,settings:n}=e,i=n?.nostrRelays?n?.nostrRelays?.[0]:null,o=QNe(`${r}:lnlink_readonly_v1`).toString("hex"),c=YNe(o),u=t1.npubEncode(c);await E6t()||await GW({name:"readonly",pubkey:c,sk:o,node_pubkey:t1.decode(r).data,relay:i,asset_id:null,account_type:zW.READ_ONLY,social_id:null,social_type:null,auth_limit:"0",permissions:JSON.stringify(N6t),create_at:JW().unix(),expire_time:KW,parent_pubkey:null})&&t.info(`init readonly to DB readonly ${u} init success.`)}catch(e){t.error(`init readonly error: ${e.message}`)}}a(C6t,"initReadOnly");async function R6t(){(await tP())?.owner_npub&&(await O6t(),await C6t(),await I6t())}a(R6t,"initAccount");ZNe.exports={initAccount:R6t}});var WW=v((aFr,tOe)=>{var rP=new Map;async function P6t(t,e=[],r,n=60*1e3,i){let s=a(async()=>{try{await t(...e),i.info(`\u2705 Attempt ${r} succeeded`)}catch(o){i.error(`Attempt ${r} failed with: ${o.message}, retrying in ${n/1e3} seconds`)}finally{setTimeout(s,n)}},"retry");s()}a(P6t,"executeWithRetry");async function L6t(t,e,r,n=0,i=60*1e3,s){rP.has(r)&&(clearTimeout(rP.get(r)),rP.delete(r));let o=a(async(c=1)=>{try{Array.isArray(e)?await t(...e):await t(e),s.info(`\u2705 Attempt ${r} succeeded`)}catch(u){if(s.warn(`Attempt ${r} failed with: ${u.message}, retrying in ${i/1e3} seconds`),n&&c>=n)return s.error(`Attempt ${r} failed after ${c} attempts`),!1;let l=setTimeout(()=>o(c+1),i);rP.set(r,l)}},"retry");o()}a(L6t,"terminateableRetryExecute");async function D6t(t,e,r,n=10,i=1e3,s){return new Promise((o,c)=>{let u=a(async(l=1)=>{try{let d=await t(...e);if(d!==void 0){s.info(`\u2705 Attempt ${r} succeeded`),o(d);return}throw new Error(`${r} returned falsy value`)}catch(d){if(s.warn(`Attempt ${l}/${n} for ${r} failed: ${d.message}`),l>=n){s.error(`\u274C ${r} failed after ${n} attempts`),c(d);return}setTimeout(()=>{u(l+1).catch(c)},i)}},"retry");u(1).catch(c)})}a(D6t,"retryUntilSuccess");tOe.exports={executeWithRetry:P6t,terminateableRetryExecute:L6t,retryUntilSuccess:D6t}});var XW=v((oFr,B6t)=>{B6t.exports={name:"lnlink-server",version:"1.0.2",private:!1,main:"dist/index.js",files:["dist","README.md"],scripts:{build:"node build.js && node build.js --mode development --external all --entry electron","start:bin":"dotenv -e .env.bin -- node scripts/start-bin.js","start:docker:dev":"dotenv -e .env.dev -- docker compose -f ./docker-compose.dev.yml up --build","start:dev":'dotenv -e .env.dev -- sh -c "prisma generate && (prisma migrate dev --name auto_update || prisma db push) && clinic heapprof -- node ./app.js"',"start:regtest":"docker compose --env-file ./.env.regtest -f ./docker-compose-lnlink.yml up --build","start:testnet":"docker compose --env-file ./.env.testnet -f ./docker-compose-lnlink.yml up --build","start:mainnet":"docker compose --env-file ./.env.mainnet -f ./docker-compose-lnlink.yml up --build","start:bin:dist":"dotenv -e .env.bin -- node scripts/start-bin.js --dist",lint:"eslint .","lint:fix":"eslint . --fix","lint:staged":"lint-staged",preinstall:"npx husky"},_moduleAliases:{"@api":"api","@constants":"constants","@business":"business","@nostr":"nostr","@package.json":"./package.json"},dependencies:{"@grpc/grpc-js":"^1.10.8","@grpc/proto-loader":"^0.7.9","@lightsparkdev/lightspark-sdk":"^1.8.9","@lnfi-network/rgb-api-js-sdk":"^1.0.7","@prisma/client":"6.14.0",axios:"^1.7.2","bitcoin-core":"^4.2.0","body-parser":"^1.20.2",bolt11:"^1.4.1","cookie-parser":"~1.4.4","crypto-js":"^4.2.0",dayjs:"^1.11.10",debug:"~2.6.9","decimal.js":"^10.4.3",ethers:"^6.15.0",express:"^4.18.2","express-rate-limit":"^8.0.1","find-process":"^2.0.0","form-data":"^4.0.2","http-errors":"~1.6.3",jest:"^29.6.2",long:"^5.2.3","module-alias":"^2.2.3",morgan:"~1.9.1","node-cache":"^5.1.2","node-cron":"^3.0.3","nostr-tools":"1.17.0",pino:"^9.9.0","pino-pretty":"^13.1.1","pino-roll":"^3.1.0",prisma:"^6.14.0",typescript:"^5.7.3",ws:"^8.18.0"},"lint-staged":{"*.ts":["eslint --fix","git add"],"*.js":["eslint --fix","git add"]},devDependencies:{"@antfu/eslint-config":"^4.3.0","@commitlint/cli":"^19.7.1","@commitlint/config-conventional":"^19.7.1","dotenv-cli":"^10.0.0","electron-rebuild":"^3.2.9",esbuild:"^0.25.9",eslint:"^9.20.1",husky:"^9.1.7","lint-staged":"^15.4.3",nodemon:"^3.0.3",protobufjs:"^7.2.5"},engines:{node:">=19.0.0"}}});var sy=v((cFr,fOe)=>{var{Buffer:t0}=require("node:buffer"),aOe=require("node:fs"),rOe=require("node:path"),{getConfig:r0}=Vt(),{getMainLnlinkConfig:ZW,getLnlinkUser:M6t,upsertTransactionByFilter:aP}=Cr(),{retryUntilSuccess:F6t}=WW(),{ACCOUNT_TYPE:U6t,INVOICE_EXPIRY_TIME:q6t}=tt(),{WALLET_STATE_CODE:e0,SATS_ID:sP,NODE_TYPE:r1,TRANSACTION_KIND:oP,TRANSACTION_DIRECTION:n1,TRANSACTION_ASSET_TYPE:cP,TRANSACTION_STATUS:sOe}=tt(),H6t=XW(),{nip04:j6t,getPublicKey:nOe}=rc(),{getWalletService:uP,getWalletState:i1,getLightningService:Fi,checkWalletState:$6t,checkTprEnabled:G6t,getOpenedChannelList:oOe}=Qi(),{getConfigFilePath:eX,sleep:lP,getCacheMacaroon:tX,storeEnctryptAdminMacaroon:V6t,setCacheMacaroon:QW,storeEnctryptLoopMacaroon:K6t}=oi(),nu=No(),iu=Ke(),{getTerminalStatus:cOe,startTerminal:z6t}=uf(),{getTransactionsByFilter:J6t,decryptNostrString:YW}=Cr(),uOe=require("node:child_process").exec,{TASKS:dP}=tt(),{reportTaskCompletion:fP}=Lp();async function W6t(t){let e=new iu("lnd"),{type:r,event_id:n,lnlinkUser:i}=t;if(r==null)throw new Error("type is required");let o=await Fi().newAddress({type:r});return n&&i?(await aP({event_id:n,user_npub:i.npub,asset_type:cP.BTC,asset_id:sP,asset_amount:"0",node_type:r1.LITD,transaction_kind:oP.ONCHAIN,direction:n1.IN,target_address:o.address,status:sOe.PENDING,description:`BTC deposit address generated for ${i.npub}`,tx_type:"deposit",create_at:Math.floor(Date.now()/1e3),update_at:Math.floor(Date.now()/1e3)},{event_id:n}),e.info(`Generated BTC address: ${o.address} for user: ${i.npub}, event: ${n}`)):e.info(`Generated BTC address: ${o.address}`),o}a(W6t,"newAddress");async function X6t(t){let e=new iu("lnd"),{addr:r,amount:n,sat_per_vbyte:i,send_all:s,withinfo:o,event_id:c,lnlinkUser:u}=t,l=Fi(),d={addr:r};n&&(d.amount=n),i&&(d.sat_per_vbyte=Number(i)),s&&(d.send_all=s);let f=await l.sendCoins(d);if(f?.txid&&c&&u){let p=s?"0":n?.toString()||"0";await aP({event_id:c,user_npub:u.npub,asset_type:cP.BTC,asset_id:sP,asset_amount:p,node_type:r1.LITD,transaction_kind:oP.ONCHAIN,direction:n1.OUT,target_address:r,status:sOe.PENDING,description:`BTC withdrawal for ${u.npub} to ${r}`,tx_type:"withdraw",tx_hash:f.txid,create_at:Math.floor(Date.now()/1e3),update_at:Math.floor(Date.now()/1e3)},{tx_hash:f.txid}),e.info(`Created outgoing transaction record: ${f.txid}, user: ${u.npub}, event: ${c}`)}if(o){let p=await au();f.nodeInfo=p}return f}a(X6t,"sendCoins");async function lOe(){return(await Fi().closedChannels({}))?.channels?.map(i=>({channelId:i.chan_id,closeTx:i.closing_tx_hash,remotePubkey:i.remote_pubkey,channelPoint:i.channel_point,capacity:i.capacity,close_type:i.close_type,settledBalance:i.settled_balance,open_initiator:i.open_initiator,close_initiator:i.close_initiator}))}a(lOe,"getClosedChannelList");function nP({channel:t}){let e="";return t.custom_channel_data&&(e=JSON.parse(t0.from(t.custom_channel_data,"hex").toString("utf-8"))),{channel:{...t,custom_channel_data:e}}}a(nP,"covertChannel");async function Q6t(){let t=await i1(!0),e=new iu("lnd"),{isMacaroonDecrypted:r}=tX();if(t!==4||!r)return{open_channel_list:[],pending_channel_list:[],closed_channel_list:[]};let n=Fi(),i=await Promise.allSettled([oOe(),n.pendingChannels({}),lOe()]),s=i?.filter(w=>w.status==="rejected")?.map(w=>w.reason);s&&s.length>0&&e.error(`getChannelList ~ errors:${JSON.stringify(s)}`);let o=i[0].value,c=i[1].value,u=i[2].value,{pending_open_channels:l,pending_closing_channels:d,waiting_close_channels:f,pending_force_closing_channels:p}=c,_=l?.map(nP),h=d?.map(nP),m=f?.map(nP),g=p?.map(nP);return{open_channel_list:o,pending_channel_list:{pending_open_channels:_,pending_closing_channels:h,waiting_close_channels:m,pending_force_closing_channels:g},closed_channel_list:u}}a(Q6t,"getChannelList");async function au(){let{LINK_NAME:t,LINK_NETWORK:e,LINK_OWNER:r,LINK_NODE_ADDR:n}=r0(),i=await i1(!0),s=await cOe(),o={};s.forEach(E=>{o[E.service_name]=E.status});let c=new iu("lnd"),u=15e3,l=nu.get("combineNodeInfo")||{},d,f=new Promise(E=>{d=setTimeout(()=>{c.warn("combineNodeInfoAsync timed out after 15s, using cached result if available"),E({fromCache:!0,data:l})},u)}),p=await Promise.race([aPt(i).then(E=>({fromCache:!1,data:E})),f]);clearTimeout(d);let _=p.data||{},h=H6t.version,m=await G6t().catch(()=>!1),g=await M6t({account_type:U6t.READ_ONLY}),y=_?.uris?.[0];return{pubkey:_?.identity_pubkey,name:t,status:{state:i,...o},owner:r,node_addr:n,balance:_?.balance,version:h,uri:y,host:y?y.split("@")[1]:null,peers:_?.peers,network:e,taproot_assets_enabled:m,read_only_account_sk:g?.sk}}a(au,"getNodeInfo");async function Y6t({pay_req:t}){return await Fi().decodePayReq({pay_req:t})}a(Y6t,"decodePayReq");async function Z6t(){let t=await i1(!0);if(t===4){let e=await cOe(),r={};return e.forEach(n=>{r[n.service_name]=n.status}),{state:t,...r}}else{let e=t>=0&&t<=4;return{state:t,litd:e?"Running":"Stopped"}}}a(Z6t,"getNodeState");async function ePt(){return await Fi().pendingChannels({})}a(ePt,"getPendingChannelList");async function iP({node_pubkey:t}){let{LINK_NOSTR_NODE_NPUBKEY:e}=r0(),r=t||e;return(await Fi().listPeers({}))?.peers?.findIndex(s=>s.pub_key===r)>-1}a(iP,"isConnectPeer");async function tPt(t){let{invoice:e,withinfo:r,outgoing_chan_id:n="",event_id:i,lnlinkUser:s}=t,o=Fi(),c={payment_request:e,allow_self_payment:!0,fee_limit:{fixed:1e3}};n&&(c.outgoing_chan_id=`${n}`,c.outgoing_chan_ids=[`${n}`]);let u=await o.sendPaymentSync(c);if(u?.payment_hash){await lP(300);let d=(await o.decodePayReq({pay_req:e}))?.num_satoshis;await aP({event_id:i,user_npub:s.npub,asset_id:sP,asset_amount:`${d}`,asset_type:cP.BTC,invoice:e,node_type:r1.LITD,transaction_kind:oP.LIGHTNING,direction:n1.OUT},{payment_hash:u.payment_hash})}if(r){let l=await au();u.nodeInfo=l}return u}a(tPt,"sendPaymentSync");async function rPt(t){let{memo:e,value:r,event_id:n,lnlinkUser:i,expiry:s=q6t["10m"]}=t,c=await Fi().addInvoice({memo:e,value:r,expiry:s});return c?.payment_request&&(await lP(500),await aP({event_id:n,user_npub:i.npub,asset_id:sP,asset_amount:`${r}`,asset_type:cP.BTC,invoice:c?.payment_request,node_type:r1.LITD,transaction_kind:oP.LIGHTNING,direction:n1.IN,description:e,add_index:Number.parseInt(c?.add_index)},{invoice:c.payment_request})),{...c}}a(rPt,"createLnInvoice");async function nPt(t){let{node_pubkey:e,amount:r,sat_per_vbyte:n,fund_max:i,zero_conf_enable:s,withinfo:o,push_sat:c,lnlinkUser:u}=t,l=Fi(),{LINK_NOSTR_NODE_NPUBKEY:d}=r0(),f=e||d,p=new iu("lnd"),_=await iP({node_pubkey:f}),h;if(!_)h={isConnected:!1};else{let m={node_pubkey:f,local_funding_amount:r,min_confs:1};s&&(m.target_conf=0,m.zero_conf=!0,m.commitment_type=3,m.push_sat=1e5),n&&(m.sat_per_vbyte=n),i&&(m.fund_max=i,m.local_funding_amount="0"),c&&(m.push_sat=c),h=await l.openChannelSync(m),h.isConnected=!0,p.info(`openChannelSync ret--->, ${JSON.stringify(m)}, ${JSON.stringify(h)}`),u&&fP({nostrAddress:u.npub,tag:dP.CreateBTCChannel})}if(o){let m=await au();h.nodeInfo=m}return h}a(nPt,"openChannel");async function iPt(){let t=Fi(),{settings:e}=await ZW();return((await t.listPeers({}))?.peers||[]).map(s=>{let o=s.pub_key===e?.officialLndPeer;return{pub_key:s.pub_key,alias:o?"Lnfi":`${s.pub_key}@${s.address}`,address:s.address}})}a(iPt,"listPeers");async function aPt(t){let e={},r=new iu("lnd");try{let{isMacaroonDecrypted:n}=tX(),i=t;if(i>e0.UNLOCKED&&i!==e0.WAITING_TO_START&&(n||(i=e0.LOCKED)),i>=e0.RPC_ACTIVE&&n&&i!==e0.WAITING_TO_START){let s=Fi(),{settings:o}=await ZW(),c=await Promise.allSettled([s.getInfo(),s.walletBalance(),s.listPeers({})]),[u,l,d]=c,f=u.value,p=l.value,h=d.value?.peers||[],m=h.map(y=>{let w=y.pub_key===o?.officialLndPeer;return{pub_key:y.pub_key,alias:w?"Lnfi":`${y.pub_key}@${y.address}`,address:y.address}});r.info(`LND lndService combineNodeInfoAsync peer:${h.map(y=>y.pub_key)}`);let g=c?.filter(y=>y.status==="rejected")?.map(y=>y.reason);g&&g.length>0&&r.error(`LND lndService combineNodeInfoAsync errors:${JSON.stringify(g)}`),e={identity_pubkey:f?.identity_pubkey,...f,balance:p,peers:m}}return e={...e,state:i},nu.set("combineNodeInfo",e),e}catch(n){r.warn(`LND lndService combineNodeInfoAsync peer combineNodeInfo warn--->${n.message}`)}}a(aPt,"combineNodeInfoAsync");async function iOe(){let e=await Fi().getInfo();return nu.set("nodeInfo",e),e}a(iOe,"getInfo");async function sPt(t=!0){let e=new iu("lnd");try{let r=nu.get("nodeInfo");return r?.identity_pubkey?(t&&iOe(),r):await iOe()}catch(r){e.error(`LND lndService getCacheInfo err--->${r.message}`)}}a(sPt,"getCacheNodeInfo");async function oPt(t){await $6t(e0.RPC_ACTIVE);let{secret:e,origin_secret:r}=t;if(!e&&!r)throw new Error("secret is required.");let n=r||await YW(e),i=Fi(),o={permissions:[{entity:"uri",action:"/looprpc.SwapClient/GetInfo"},{entity:"uri",action:"/looprpc.SwapClient/LoopOut"},{entity:"uri",action:"/looprpc.SwapClient/LoopIn"},{entity:"uri",action:"/looprpc.SwapClient/ListSwaps"},{entity:"uri",action:"/looprpc.SwapClient/SwapInfo"},{entity:"uri",action:"/looprpc.SwapClient/AbandonSwap"},{entity:"uri",action:"/looprpc.SwapClient/Monitor"},{entity:"uri",action:"/looprpc.SwapClient/LoopOutTerms"},{entity:"uri",action:"/looprpc.SwapClient/LoopOutQuote"},{entity:"uri",action:"/looprpc.SwapClient/GetLoopInTerms"},{entity:"uri",action:"/looprpc.SwapClient/GetLoopInQuote"}],root_key_id:"18441921392371827000"},c=await i.bakeMacaroon(o);if(c?.macaroon){let u=t0.from(c?.macaroon,"hex");K6t(u,n)}}a(oPt,"bakeLoopMacaroon");async function dOe(t){let{walletUnlockerService:e}=uP(),r=new iu("lnd"),{wallet_password:n,cipher_seed_mnemonic:i}=t;if(i)nu.set("cipherSeedMnemonic",i);else{let u=await e.genSeed({});if(u?.cipher_seed_mnemonic){let l=u?.cipher_seed_mnemonic;nu.set("cipherSeedMnemonic",l)}}let s=nu.get("cipherSeedMnemonic");if(!s)throw new Error("Get seed error.");let{LINK_DEBUG:o}=r0(),c=await e.initWallet({wallet_password:t0.from(n),cipher_seed_mnemonic:s,stateless_init:!(o==="true"||o===!0)});return r.info(`LND lndService initWallet RPC response ->macaroon length:${c?.admin_macaroon?.length}`),c?.admin_macaroon&&V6t(c?.admin_macaroon,n),c}a(dOe,"wrapperInitWallet");async function cPt(){let{walletUnlockerService:t}=uP(),e=nu.get("cipherSeedMnemonic");if(e)return{cipherSeedMnemonic:e};let r=await t.genSeed({});if(r?.cipher_seed_mnemonic){let n=r?.cipher_seed_mnemonic;return nu.set("cipherSeedMnemonic",n),{cipherSeedMnemonic:n}}throw new Error("Get seed error.")}a(cPt,"genseed");async function uPt(t){let{password:e,withinfo:r,cipher_seed_mnemonic:n,origin_password:i,lnlinkUser:s}=t;if(!e&&!i)throw new Error("Password is null.");let o="",c;if(e&&(o=(await YW(e)).toString()),i&&(o=`${i}`),n&&(c=JSON.parse(await YW(n))),o&&o.length<8)throw new Error("Password length must be at least 8 characters.");let{isMacaroonDecrypted:u}=tX();if(u)throw new Error("You have already initialized.");await dOe({wallet_password:o,cipher_seed_mnemonic:c}),nu.set("tempPassword",e);let d={message:"Init wallet success.",cipherSeedMnemonic:nu.get("cipherSeedMnemonic")};return s&&fP({nostrAddress:s.npub,tag:dP.EnableTaprootAssetNode}),r&&(d.nodeInfo=await au()),d}a(uPt,"initWallet");async function lPt(t){let e=Fi(),{withinfo:r,lnlinkUser:n,...i}=t,s={...i},o=await e.closeChannel(s);if(n&&fP({nostrAddress:n.npub,tag:dP.CloseTaprootChannel}),r){let c=await au();o.nodeInfo=c}return o}a(lPt,"closeChannel");async function dPt(t){let{pubkey:e,host:r,perm:n,timeout:i,withinfo:s}=t,o=new iu("lnd"),{LINK_NOSTR_NODE_NPUBKEY:c,LINK_NOSTR_NODE_HOST:u}=r0(),l=e||c,d=r||u,f=Fi(),p=!1,_=20;if(await iP({node_pubkey:l}))p={isConnected:!0};else{o.info("Lnd lndService connectPeer"),await f.connectPeer({addr:{pubkey:l,host:d},perm:n||!1,timeout:i||30}).catch(g=>{o.error(`Lnd lndService connectPeer error ${g.message}`)});let m=0;for(;;){if(m++,m>_){p={isConnected:!1};break}if(await iP({node_pubkey:l})){p={isConnected:!0};break}else{await lP(1e3);continue}}}if(s){let m=await au();p.nodeInfo=m}return p}a(dPt,"connectPeer");async function fPt(t){let{wallet_password:e,recovery_window:r,withinfo:n}=t,{LINK_DEBUG:i}=r0(),o=(await ZW()).node_sk,c=nOe(nOe(o)),l=await j6t.decrypt(o,c,e),{walletUnlockerService:d}=uP(),f=await i1(!0);if(f>e0.UNLOCKED&&f<e0.WAITING_TO_START)QW(l);else{let _={wallet_password:t0.from(l),stateless_init:!(i==="true"||i===!0)};r&&(_.recovery_window=Number(r)),await d.unlockWallet(_),QW(l),nu.set("tempPassword",e)}let p={msg:"Unlock success."};if(n){let _=await au();p.nodeInfo=_}return p}a(fPt,"unlock");async function pPt(t){let{wallet_password:e,recovery_window:r}=t,{walletUnlockerService:n}=uP(),i=Number(r)||2500,{LINK_DEBUG:s}=r0();return await n.unlockWallet({wallet_password:t0.from(e),recovery_window:i,stateless_init:!(s==="true"||s===!0)}),QW(e),{msg:"Unlock success."}}a(pPt,"unlockForce");async function _Pt(t){let{withinfo:e}=t,{channelBackupPath:r,lndNodeOriginPath:n,targetNodeBackupPath:i}=eX(),s=Fi(),o=await s.exportAllChannelBackups({});aOe.writeFileSync(r,o.multi_chan_backup.multi_chan_backup),await s.stopDaemon({});let c=rOe.dirname(n),u=rOe.basename(n),l=`cd ${c} && tar -zcvf ${i} ${u}`,p={channelBakeup:"success.",nodeBackup:await new Promise((_,h)=>{uOe(l,m=>{m?h(m):_("success.")})})};if(e){await lP(3e3);let _=await au();p.nodeInfo=_}return p}a(_Pt,"bakeNode");async function hPt(t){let{withinfo:e}=t;await Fi().stopDaemon({}).catch(l=>{new iu("lnd").error(`Lnd lndService stopDaemon error ${l?.message}`)});let{basePath:n,targetNodeBackupPath:i}=eX(),s=`tar -zxvf ${i} -C ${n}`,u={nodeRestore:await new Promise((l,d)=>{uOe(s,f=>{f?d(f):l("success.")})})};if(e){let l=await au();u.nodeInfo=l}return u}a(hPt,"restoreNode");async function mPt(){let t=Fi(),{channelBackupPath:e}=eX(),n=aOe.readFileSync(e).toString("hex");return{channelRestore:await t.restoreChannelBackups({multi_chan_backup:t0.from(n,"hex")})}}a(mPt,"restoreChannels");async function gPt(t){let{msg:e}=t;return await Fi().signMessage({msg:t0.from(`${e}`)})}a(gPt,"signMessage");async function yPt(t){let{msg:e,signature:r}=t;return await Fi().verifyMessage({msg:t0.from(`${e}`),signature:r})}a(yPt,"nstVerifyMessage");async function vPt(t){let{node_type:e,transaction_kind:r,status:n,direction:i,asset_type:s,page_index:o=1,page_size:c=20,asset_id:u}=t;return await J6t({transaction_kind:r,direction:i?/out/.test(i)?n1.OUT:n1.IN:"",node_type:e?/litd|lnd/.test(e)?r1.LITD:r1.RGB:"",asset_type:s,status:n,limit:c,offset:(o-1)*c,asset_id:u})}a(vPt,"getTransactions");async function bPt(t){let{lnlinkUser:e}=t,{LINK_ENABLE_TOR:r}=r0(),n=new iu("lnd"),i=r,s={};e&&fP({nostrAddress:e?.npub,tag:dP.EnableTaprootAssetNode});let o=await z6t(i);if(s.linkStatus=o,await F6t(i1,[!1],"getWalletState",10,3e3,n)!==void 0){let u=await au();s.nodeInfo=u}return s}a(bPt,"startLink");async function xPt(t){let e=new iu("lnd"),{enable:r,lnlinkUser:n}=t;if(r==null)throw new Error("enable parameter is required (true or false)");let i=r===!0||r==="true";e.info(`Toggling Tor mode to: ${i}, requested by: ${n?.npub||"unknown"}`);try{let{updateMainLnlinkConfig:s}=Cr(),o=await s({enable_tor:i});o!==1&&e.warn(`Database update returned: ${o}, proceeding anyway`);let{reloadConfig:c}=Vt();await c();let{restartTerminal:u,stopService:l,isServiceRunning:d}=uf();i||await d("tor")&&(e.info("Stopping Tor service..."),await l("tor")),e.info("Restarting litd with new Tor configuration...");let f=await u({lnlinkUser:n}),p=await au();return e.info(`Tor mode toggled successfully. Tor enabled: ${i}`),{enable_tor:i,status:"ok",terminal_status:f,node_info:p}}catch(s){throw e.error(`Failed to toggle Tor: ${s.message}`),s}}a(xPt,"toggleTor");fOe.exports={startLink:bPt,toggleTor:xPt,getWalletState:i1,sendPaymentSync:tPt,createLnInvoice:rPt,getNodeInfo:au,getNodeState:Z6t,getChannelList:Q6t,getOpenedChannelList:oOe,getPendingChannelList:ePt,getClosedChannelList:lOe,openChannel:nPt,listPeers:iPt,decodePayReq:Y6t,wrapperInitWallet:dOe,initWallet:uPt,genseed:cPt,isConnectPeer:iP,sendCoins:X6t,closeChannel:lPt,connectPeer:dPt,unlock:fPt,unlockForce:pPt,bakeNode:_Pt,restoreNode:hPt,restoreChannels:mPt,bakeLoopMacaroon:oPt,signMessage:gPt,nstVerifyMessage:yPt,getCacheNodeInfo:sPt,getTransactions:vPt,newAddress:W6t}});var _Oe=v((lFr,pOe)=>{pOe.exports=require("crypto").createHash});var yOe=v((dFr,gOe)=>{"use strict";var _P="qpzry9x8gf2tvdw0s3jn54khce6mua7l",rX={};for(dA=0;dA<_P.length;dA++){if(pP=_P.charAt(dA),rX[pP]!==void 0)throw new TypeError(pP+" is ambiguous");rX[pP]=dA}var pP,dA;function a1(t){var e=t>>25;return(t&33554431)<<5^-(e>>0&1)&996825010^-(e>>1&1)&642813549^-(e>>2&1)&513874426^-(e>>3&1)&1027748829^-(e>>4&1)&705979059}a(a1,"polymodStep");function hOe(t){for(var e=1,r=0;r<t.length;++r){var n=t.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+t+")";e=a1(e)^n>>5}for(e=a1(e),r=0;r<t.length;++r){var i=t.charCodeAt(r);e=a1(e)^i&31}return e}a(hOe,"prefixChk");function wPt(t,e,r){if(r=r||90,t.length+7+e.length>r)throw new TypeError("Exceeds length limit");t=t.toLowerCase();var n=hOe(t);if(typeof n=="string")throw new Error(n);for(var i=t+"1",s=0;s<e.length;++s){var o=e[s];if(o>>5!==0)throw new Error("Non 5-bit word");n=a1(n)^o,i+=_P.charAt(o)}for(s=0;s<6;++s)n=a1(n);for(n^=1,s=0;s<6;++s){var c=n>>(5-s)*5&31;i+=_P.charAt(c)}return i}a(wPt,"encode");function mOe(t,e){if(e=e||90,t.length<8)return t+" too short";if(t.length>e)return"Exceeds length limit";var r=t.toLowerCase(),n=t.toUpperCase();if(t!==r&&t!==n)return"Mixed-case string "+t;t=r;var i=t.lastIndexOf("1");if(i===-1)return"No separator character for "+t;if(i===0)return"Missing prefix for "+t;var s=t.slice(0,i),o=t.slice(i+1);if(o.length<6)return"Data too short";var c=hOe(s);if(typeof c=="string")return c;for(var u=[],l=0;l<o.length;++l){var d=o.charAt(l),f=rX[d];if(f===void 0)return"Unknown character "+d;c=a1(c)^f,!(l+6>=o.length)&&u.push(f)}return c!==1?"Invalid checksum for "+t:{prefix:s,words:u}}a(mOe,"__decode");function EPt(){var t=mOe.apply(null,arguments);if(typeof t=="object")return t}a(EPt,"decodeUnsafe");function TPt(t){var e=mOe.apply(null,arguments);if(typeof e=="object")return e;throw new Error(e)}a(TPt,"decode");function hP(t,e,r,n){for(var i=0,s=0,o=(1<<r)-1,c=[],u=0;u<t.length;++u)for(i=i<<e|t[u],s+=e;s>=r;)s-=r,c.push(i>>s&o);if(n)s>0&&c.push(i<<r-s&o);else{if(s>=e)return"Excess padding";if(i<<r-s&o)return"Non-zero padding"}return c}a(hP,"convert");function SPt(t){var e=hP(t,8,5,!0);if(Array.isArray(e))return e}a(SPt,"toWordsUnsafe");function APt(t){var e=hP(t,8,5,!0);if(Array.isArray(e))return e;throw new Error(e)}a(APt,"toWords");function kPt(t){var e=hP(t,5,8,!1);if(Array.isArray(e))return e}a(kPt,"fromWordsUnsafe");function NPt(t){var e=hP(t,5,8,!1);if(Array.isArray(e))return e;throw new Error(e)}a(NPt,"fromWords");gOe.exports={decodeUnsafe:EPt,decode:TPt,encode:wPt,toWordsUnsafe:SPt,toWords:APt,fromWordsUnsafe:kPt,fromWords:NPt}});var LOe=v((pFr,POe)=>{var wOe=require("fs"),Mp=require("path"),EOe=require("os"),TOe=typeof __webpack_require__=="function"?__non_webpack_require__:require,OPt=process.config&&process.config.variables||{},IPt=!!process.env.PREBUILDS_ONLY,vOe=process.versions.modules,nX=PPt()?"electron":RPt()?"node-webkit":"node",iX=process.env.npm_config_arch||EOe.arch(),aX=process.env.npm_config_platform||EOe.platform(),SOe=process.env.LIBC||(LPt(aX)?"musl":"glibc"),sX=process.env.ARM_VERSION||(iX==="arm64"?"8":OPt.arm_version)||"",AOe=(process.versions.uv||"").split(".")[0];POe.exports=lf;function lf(t){return TOe(lf.resolve(t))}a(lf,"load");lf.resolve=lf.path=function(t){t=Mp.resolve(t||".");try{var e=TOe(Mp.join(t,"package.json")).name.toUpperCase().replace(/-/g,"_");process.env[e+"_PREBUILD"]&&(t=process.env[e+"_PREBUILD"])}catch{}if(!IPt){var r=bOe(Mp.join(t,"build/Release"),xOe);if(r)return r;var n=bOe(Mp.join(t,"build/Debug"),xOe);if(n)return n}var i=c(t);if(i)return i;var s=c(Mp.dirname(process.execPath));if(s)return s;var o=["platform="+aX,"arch="+iX,"runtime="+nX,"abi="+vOe,"uv="+AOe,sX?"armv="+sX:"","libc="+SOe,"node="+process.versions.node,process.versions.electron?"electron="+process.versions.electron:"",typeof __webpack_require__=="function"?"webpack=true":""].filter(Boolean).join(" ");throw new Error("No native build was found for "+o+`
2155
+ `)),l=dc.default.stripLine(c,1),d=u.indexOf("rxbytes")>=0?10:8,f=dc.default.extractColumns(l,[0,3,d],10).filter(p=>!!String(p[0]).match(/^(udp|tcp)/)).find(p=>{let _=String(p[1]).match(/\.(\d+)$/);return!!(_&&_[1]===String(t))});f&&f[2].length?e(parseInt(f[2],10)):r(new Error(`pid of port (${t}) not found`))}})})},linux(t){return new Promise((e,r)=>{dc.default.exec("netstat -tunlp",function(i,s,o){if(i)r(i);else{let c=o.toString().trim();c&&JCt.default.warn(c);let u=dc.default.stripLine(s.toString(),2),l=dc.default.extractColumns(u,[3,6],7).find(d=>{let f=String(d[0]).match(/:(\d+)$/);return!!(f&&f[1]===String(t))});if(l&&l[1]){let d=l[1].split("/",1)[0];d.length?e(parseInt(d,10)):r(new Error(`pid of port (${t}) not found`))}else r(new Error(`pid of port (${t}) not found`))}})})},win32(t){return new Promise((e,r)=>{dc.default.exec("netstat -ano",function(n,i,s){if(n)r(n);else{let o=s.toString().trim();if(o){r(new Error(o));return}let c=dc.default.stripLine(i.toString(),4),u=dc.default.extractColumns(c,[1,4],5).find(l=>{let d=String(l[0]).match(/:(\d+)$/);return!!(d&&d[1]===String(t))});u&&u[1].length&&parseInt(u[1],10)>0?e(parseInt(u[1],10)):r(new Error(`pid of port (${t}) not found`))}})})},android(t){return new Promise((e,r)=>{let n=zCt.tmpdir()+"/.find-process",i=n+"/"+process.pid,s='netstat -tunp >> "'+i+'"';WCt(n).then(()=>{dc.default.exec(s,()=>{q6.readFile(i,"utf8",(o,c)=>{if(q6.unlink(i,()=>{}),o)r(o);else{c=dc.default.stripLine(c,2);let u=dc.default.extractColumns(c,[3,6],7).find(l=>{let d=String(l[0]).match(/:(\d+)$/);return!!(d&&d[1]===String(t))});if(u&&u[1]){let l=u[1].split("/",1)[0];l.length?e(parseInt(l,10)):r(new Error(`pid of port (${t}) not found`))}else r(new Error(`pid of port (${t}) not found`))}})})})})}};Xx.freebsd=Xx.darwin;Xx.sunos=Xx.darwin;function XCt(t){let e=process.platform;return new Promise((r,n)=>{if(!(e in Xx))return n(new Error(`platform ${e} is unsupported`));let i=Xx[e];i(t).then(r,n)})}a(XCt,"findPidByPort");Al.default=XCt});var cNe=v(kl=>{"use strict";var QCt=kl&&kl.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:a(function(){return e[r]},"get")}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),YCt=kl&&kl.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),ZCt=kl&&kl.__importStar||(function(){var t=a(function(e){return t=Object.getOwnPropertyNames||function(r){var n=[];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[n.length]=i);return n},t(e)},"ownKeys");return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=t(e),i=0;i<n.length;i++)n[i]!=="default"&&QCt(r,e,n[i]);return YCt(r,e),r}})(),eRt=kl&&kl.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(kl,"__esModule",{value:!0});var H6=ZCt(require("path")),Xh=eRt(kW());function OW(t,e){return e?t&&t.match?t.match(e)!==null:!1:!0}a(OW,"matchName");function sNe(t){let e=t.split(H6.sep),r=e[e.length-1];r&&(e[e.length-1]=r.split(" ")[0]);let n=[];for(let i of e){let s=i.indexOf(" -");if(s>=0){n.push(i.substring(0,s).trim());break}else if(i.endsWith(" ")){n.push(i.trim());break}n.push(i)}return n.join(H6.sep)}a(sNe,"fetchBin");function oNe(t){if(process.platform==="darwin"){let e=t.indexOf(".app/");if(e>=0)return H6.basename(t.substring(0,e))}return H6.basename(t)}a(oNe,"fetchName");var iy={darwin(t){return new Promise((e,r)=>{let n;"pid"in t&&t.pid!==void 0?n=`ps -p ${t.pid} -ww -o pid,ppid,uid,gid,args`:n="ps ax -ww -o pid,ppid,uid,gid,args",Xh.default.exec(n,function(i,s,o){if(i)"pid"in t&&t.pid!==void 0?e([]):r(i);else{let c=o.toString().trim();if(c){r(new Error(c));return}let u=Xh.default.stripLine(s.toString(),1),d=Xh.default.extractColumns(u,[0,1,2,3,4],5).filter(f=>f[0]&&t.pid!==void 0?f[0]===String(t.pid):f[4]&&t.name?OW(f[4],t.name):!!f[0]).map(f=>{let p=String(f[4]),_=sNe(p);return{pid:parseInt(f[0],10),ppid:parseInt(f[1],10),uid:parseInt(f[2],10),gid:parseInt(f[3],10),name:oNe(_),bin:_,cmd:f[4]}});t.config.strict&&t.name&&(d=d.filter(f=>f.name===t.name)),e(d)}})})},win32(t){return new Promise((e,r)=>{let n="[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; Get-CimInstance -className win32_process | select Name,ProcessId,ParentProcessId,CommandLine,ExecutablePath",i=[],s=Xh.default.spawn("powershell.exe",["/c",n],{detached:!1,windowsHide:!0});s.stdout.on("data",o=>{i.push(o.toString())}),s.on("error",o=>{r(new Error("Command '"+n+"' failed with reason: "+o.toString()))}),s.on("close",o=>{if(o!==0)return r(new Error("Command '"+n+"' terminated with code: "+o));let c=Xh.default.parseTable(i.join("")).filter(u=>{if(t.pid!==void 0)return u.ProcessId===String(t.pid);if(t.name){let l=u.Name||"";return t.config.strict?l===t.name||l.endsWith(".exe")&&l.slice(0,-4)===t.name:OW(u.CommandLine||l,t.name)}else return!0}).map(u=>({pid:parseInt(u.ProcessId,10),ppid:parseInt(u.ParentProcessId,10),bin:u.ExecutablePath,name:u.Name||"",cmd:u.CommandLine}));e(c)})})},android(t){return new Promise((e,r)=>{Xh.default.exec("ps",function(i,s,o){if(i)t.pid!==void 0?e([]):r(i);else{let c=o.toString().trim();if(c){r(new Error(c));return}let u=Xh.default.stripLine(s.toString(),1),d=Xh.default.extractColumns(u,[0,3],4).filter(f=>f[0]&&t.pid!==void 0?f[0]===String(t.pid):f[1]&&t.name?OW(f[1],t.name):!!f[0]).map(f=>{let p=String(f[1]),_=sNe(p);return{pid:parseInt(f[0],10),ppid:0,name:oNe(_),bin:_,cmd:f[1]}});t.config.strict&&t.name&&(d=d.filter(f=>f.name===t.name)),e(d)}})})}};iy.linux=iy.darwin;iy.sunos=iy.darwin;iy.freebsd=iy.darwin;function tRt(t){let e=process.platform,r=iy[e];return r?r(t):Promise.reject(new Error(`Platform "${e}" is not supported`))}a(tRt,"findProcess");kl.default=tRt});var lNe=v(aA=>{"use strict";var CW=aA&&aA.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(aA,"__esModule",{value:!0});var rRt=CW(aNe()),uNe=CW(cNe()),nRt=CW(NW()),IW={port(t,e){return(0,rRt.default)(t).then(r=>IW.pid(r,e),()=>[])},pid(t,e){return(0,uNe.default)({pid:t,config:e})},name(t,e){return(0,uNe.default)({name:t,config:e,skipSelf:!0})}};function iRt(t,e,r){let n=Object.assign({logLevel:"warn",strict:typeof r=="boolean"?r:!1},typeof r=="object"?r:{});return n.logLevel&&nRt.default.setLevel(n.logLevel),new Promise((i,s)=>{if(!(t in IW))s(new Error(`do not support find by "${t}"`));else{let o=/^\d+$/.test(String(e));t==="pid"&&!o?s(new Error("pid must be a number")):t==="port"&&!o?s(new Error("port must be a number")):IW[t](e,n).then(i,s)}})}a(iRt,"find");aA.default=iRt});var fNe=v(dNe=>{"use strict";Object.defineProperty(dNe,"__esModule",{value:!0})});var pNe=v(Nl=>{"use strict";var aRt=Nl&&Nl.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:a(function(){return e[r]},"get")}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),sRt=Nl&&Nl.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&aRt(e,t,r)},oRt=Nl&&Nl.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Nl,"__esModule",{value:!0});Nl.default=void 0;var cRt=lNe();Object.defineProperty(Nl,"default",{enumerable:!0,get:a(function(){return oRt(cRt).default},"get")});sRt(fNe(),Nl)});var hNe=v(Bp=>{"use strict";Object.defineProperties(Bp,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var uRt=gW(),$6=class{static{a(this,"R")}constructor(e){this.client=e}async getAddress(){return this.client._request("post","/address")}async getBtcBalance(e={}){return this.client._request("post","/btcbalance",e)}async sendBtc(e){return this.client._request("post","/sendbtc",e)}async createUtxos(e={}){return this.client._request("post","/createutxos",e)}async estimateFee(e){return this.client._request("post","/estimatefee",e)}async listOnchainTransactions(e={}){return this.client._request("post","/listtransactions",e)}async listUnspents(e={}){return this.client._request("post","/listunspents",e)}},G6=class{static{a(this,"N")}constructor(e){this.client=e,this.rgbTransactionSubscriptions=new Map,this.rgbTransactionPollingIntervals=new Map}async getAssetBalance(e){return this.client._request("post","/assetbalance",e)}async getAssetMetadata(e){return this.client._request("post","/assetmetadata",e)}async listAssets(e={}){let r={filter_asset_schemas:e.filter_asset_schemas};return this.client._request("post","/listassets",r)}async listTransactions(e={skip_sync:!1}){return this.client._request("post","/listtransactions",e)}async listTransfers(e){return this.client._request("post","/listtransfers",{asset_id:e})}async issueAssetCfa(e){return this.client._request("post","/issueassetcfa",e)}async issueAssetNia(e){return this.client._request("post","/issueassetnia",e)}async issueAssetUda(e){return this.client._request("post","/issueassetuda",e)}async sendAsset(e){return this.client._request("post","/sendasset",e)}async createRgbInvoice(e){let r={asset_id:e.asset_id,duration_seconds:e.duration_seconds,min_confirmations:e.min_confirmations,witness:e.witness||!1};return this.client._request("post","/rgbinvoice",r)}async payRgbInvoice(e){var r;let n=await this.decodeRgbInvoice({invoice:e.invoice}),i={recipient_id:n.recipient_id,asset_id:e.asset_id||n.asset_id,assignment:{type:"Fungible",value:e.amount||((r=n?.assignment)==null?void 0:r.value)},fee_rate:e.fee_rate,skip_sync:e.skip_sync,donation:e.donation||!1,min_confirmations:e.min_confirmations||1,transport_endpoints:e.transport_endpoints||n.transport_endpoints||[]};return this.sendAsset(i)}async decodeRgbInvoice(e){return this.client._request("post","/decodergbinvoice",e)}async failTransfers(e){return this.client._request("post","/failtransfers",e)}async getAssetMedia(e){return this.client._request("post","/getassetmedia",e)}async refreshTransfers(e={}){let r={skip_sync:e.skip_sync};return this.client._request("post","/refreshtransfers",r)}async syncRgbWallet(){return this.client._request("post","/sync",{})}async postAssetMedia(e){let r=new FormData;return r.append("file",e.file),this.client._request("post","/postassetmedia",r)}subscribeToRgbTransactions(e){let{onTransaction:r,onError:n,pollingInterval:i=5e3,maxStoredIds:s=1e3,skipInitialFetch:o=!1}=e;if(!r||typeof r!="function")throw new Error("onTransaction callback is required and must be a function");i<1e3&&console.warn("Warning: Polling interval less than 1000ms may cause performance issues");let c=`rgb-tx-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,u=Date.now(),l=new Set,d=new Map,f=a(g=>typeof g=="string"?new Date(g).getTime():g||0,"d"),p=a(()=>{l.size<=s||[...d.entries()].sort((g,y)=>g[1]-y[1]).map(g=>g[0]).slice(0,l.size-s).forEach(g=>{l.delete(g),d.delete(g)})},"f");o||this.listTransactions().then(g=>{g&&g.transfers&&Array.isArray(g.transfers)&&(g.transfers.forEach(y=>{l.add(y.idx),d.set(y.idx,f(y.created_at))}),p())}).catch(g=>{n&&typeof n=="function"&&n(g)});let _=i,h=0,m=setInterval(async()=>{try{let g=await this.listTransactions();if(g&&g.transfers&&Array.isArray(g.transfers)){let y=g.transfers.filter(w=>{if(!l.has(w.idx))return l.add(w.idx),d.set(w.idx,f(w.created_at)),!0;let E=f(w.created_at);return l.has(w.idx)&&E>(d.get(w.idx)||0)?(d.set(w.idx,E),!0):!1});if(g.transfers.length>0){let w=Math.max(...g.transfers.map(E=>f(E.created_at)));u=Math.max(u,w)}if(p(),y.length>0)y.forEach(w=>{r(w)}),h=0;else if(h++,h>5){let w=Math.min(i*3,i*(1+h/10));if(w!==_){_=w,clearInterval(m);let E=setInterval(m.callback,_);this.rgbTransactionPollingIntervals.set(c,E)}}}}catch(g){n&&typeof n=="function"&&n(g)}},i);return m.callback=m._onTimeout,this.rgbTransactionSubscriptions.set(c,{onTransaction:r,onError:n,pollingInterval:i,currentPollingInterval:_,maxStoredIds:s}),this.rgbTransactionPollingIntervals.set(c,m),c}unsubscribeFromRgbTransactions(e){if(!this.rgbTransactionSubscriptions.has(e))return!1;let r=this.rgbTransactionPollingIntervals.get(e);return r&&(clearInterval(r),this.rgbTransactionPollingIntervals.delete(e)),this.rgbTransactionSubscriptions.delete(e),!0}},ay={},_Ne;function lRt(){if(_Ne)return ay;_Ne=1,Object.defineProperty(ay,"__esModule",{value:!0}),ay.bech32m=ay.bech32=void 0;let t="qpzry9x8gf2tvdw0s3jn54khce6mua7l",e={};for(let l=0;l<t.length;l++){let d=t.charAt(l);e[d]=l}function r(l){let d=l>>25;return(l&33554431)<<5^-(d>>0&1)&996825010^-(d>>1&1)&642813549^-(d>>2&1)&513874426^-(d>>3&1)&1027748829^-(d>>4&1)&705979059}a(r,"t");function n(l){let d=1;for(let f=0;f<l.length;++f){let p=l.charCodeAt(f);if(p<33||p>126)return"Invalid prefix ("+l+")";d=r(d)^p>>5}d=r(d);for(let f=0;f<l.length;++f){let p=l.charCodeAt(f);d=r(d)^p&31}return d}a(n,"r");function i(l,d,f,p){let _=0,h=0,m=(1<<f)-1,g=[];for(let y=0;y<l.length;++y)for(_=_<<d|l[y],h+=d;h>=f;)h-=f,g.push(_>>h&m);if(p)h>0&&g.push(_<<f-h&m);else{if(h>=d)return"Excess padding";if(_<<f-h&m)return"Non-zero padding"}return g}a(i,"c");function s(l){return i(l,8,5,!0)}a(s,"u");function o(l){let d=i(l,5,8,!1);if(Array.isArray(d))return d}a(o,"p");function c(l){let d=i(l,5,8,!1);if(Array.isArray(d))return d;throw new Error(d)}a(c,"g");function u(l){let d;l==="bech32"?d=1:d=734539939;function f(m,g,y){if(y=y||90,m.length+7+g.length>y)throw new TypeError("Exceeds length limit");m=m.toLowerCase();let w=n(m);if(typeof w=="string")throw new Error(w);let E=m+"1";for(let A=0;A<g.length;++A){let I=g[A];if(I>>5!==0)throw new Error("Non 5-bit word");w=r(w)^I,E+=t.charAt(I)}for(let A=0;A<6;++A)w=r(w);w^=d;for(let A=0;A<6;++A){let I=w>>(5-A)*5&31;E+=t.charAt(I)}return E}a(f,"d");function p(m,g){if(g=g||90,m.length<8)return m+" too short";if(m.length>g)return"Exceeds length limit";let y=m.toLowerCase(),w=m.toUpperCase();if(m!==y&&m!==w)return"Mixed-case string "+m;m=y;let E=m.lastIndexOf("1");if(E===-1)return"No separator character for "+m;if(E===0)return"Missing prefix for "+m;let A=m.slice(0,E),I=m.slice(E+1);if(I.length<6)return"Data too short";let R=n(A);if(typeof R=="string")return R;let $=[];for(let B=0;B<I.length;++B){let U=I.charAt(B),L=e[U];if(L===void 0)return"Unknown character "+U;R=r(R)^L,!(B+6>=I.length)&&$.push(L)}return R!==d?"Invalid checksum for "+m:{prefix:A,words:$}}a(p,"f");function _(m,g){let y=p(m,g);if(typeof y=="object")return y}a(_,"m");function h(m,g){let y=p(m,g);if(typeof y=="object")return y;throw new Error(y)}return a(h,"y"),{decodeUnsafe:_,decode:h,encode:f,toWords:s,fromWordsUnsafe:o,fromWords:c}}return a(u,"b"),ay.bech32=u("bech32"),ay.bech32m=u("bech32m"),ay}a(lRt,"B");var dRt=lRt(),fRt=1,pRt=13,_Rt=19,hRt=23,mRt=6,gRt=24,yRt=16,vRt=27,bRt=5,xRt=30,wRt=31,ERt={bc:"Mainnet",tb:"Testnet",bcrt:"Regtest",sb:"Signet",tbs:"Signet"},TRt={m:.001,u:1e-6,n:1e-9,p:1e-12};function j6(t){let e=0;for(let r of t)e=e*32+r;return e}a(j6,"E");function Qh(t){let e=[],r=0,n=0;for(let i of t)for(r=r<<5|i,n+=5;n>=8;)e.push(r>>>n-8&255),n-=8;return new Uint8Array(e)}a(Qh,"v");function Qx(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}a(Qx,"A");function SRt(t){let e=t.match(/^ln([a-z]+)(\d*)([munp]?)$/);if(!e)throw new Error("Invalid HRP format");let[,r,n,i]=e;return{currency:r,amount:n?parseInt(n):null,siPrefix:i||null,network:ERt[r]||"Unknown"}}a(SRt,"ee");function ARt(t){let e={},r=0;for(;r<t.length;){if(r+3>t.length)throw new Error("Unexpected end of tagged fields");let n=t[r],i=t[r+1]<<5|t[r+2];if(r+=3,r+i>t.length)throw new Error("Tagged field length exceeds remaining data");let s=t.slice(r,r+i);r+=i;try{switch(n){case fRt:s.length===52&&(e.paymentHash=Qx(Qh(s)));break;case pRt:let o=Qh(s);e.description=new TextDecoder().decode(o);break;case _Rt:s.length===53&&(e.payeePubkey=Qx(Qh(s)));break;case hRt:s.length===52&&(e.descriptionHash=Qx(Qh(s)));break;case mRt:e.expiryTime=j6(s);break;case gRt:e.minFinalCltvExpiryDelta=j6(s);break;case yRt:s.length===52&&(e.paymentSecret=Qx(Qh(s)));break;case vRt:e.paymentMetadata=Qx(Qh(s));break;case bRt:e.features=Qx(Qh(s));break;case xRt:e.rgbAmount=j6(s);break;case wRt:let c=Qh(s);e.rgbContractId=new TextDecoder().decode(c);break;default:break}}catch{continue}}return e}a(ARt,"te");function kRt(t){try{let e=dRt.bech32.decode(t,2e3),{prefix:r,words:n}=e,i=SRt(r);if(n.length<111)throw new Error("Invoice data too short");let s=n.slice(0,7),o=j6(s),c=n.slice(7,n.length-104),u=ARt(c),l=null;if(i.amount!==null){let p=i.amount;i.siPrefix&&TRt[i.siPrefix]?i.siPrefix==="u"?l=p*1e5:i.siPrefix==="m"?l=p*1e8:i.siPrefix==="n"?l=p*100:i.siPrefix==="p"&&(l=Math.floor(p/10)):l=Math.floor(p/10)}let d=u.expiryTime||3600,f=null;return u.rgbContractId&&(f=u.rgbContractId),{amt_msat:l,expiry_sec:d,timestamp:o,asset_id:f,asset_amount:u.rgbAmount||null,payment_hash:u.paymentHash||null,payment_secret:u.paymentSecret||null,payee_pubkey:u.payeePubkey||null,network:i.network}}catch(e){throw new Error(`Failed to decode Lightning invoice: ${e.message}`)}}a(kRt,"se");var V6=class{static{a(this,"D")}constructor(e){this.client=e,this.paymentSubscriptions=new Map,this.paymentPollingIntervals=new Map}async connectPeer(e){return this.client._request("post","/connectpeer",e)}async listPeers(){return this.client._request("get","/listpeers")}async disconnectPeer(e){return this.client._request("post","/disconnectpeer",e)}async openChannel(e){return this.client._request("post","/openchannel",e)}async closeChannel(e){return this.client._request("post","/closechannel",e)}async listChannels(){return this.client._request("get","/listchannels")}async getChannelIdByTempId(e){return this.client._request("post","/getchannelid",e)}async createInvoice(e){return this.client._request("post","/lninvoice",e)}async payInvoice(e){return this.client._request("post","/sendpayment",e)}async decodeLnInvoice(e){return this.client._request("post","/decodelninvoice",e)}async getInvoiceStatus(e){return this.client._request("post","/invoicestatus",e)}async getPayment(e){return this.client._request("post","/getpayment",e)}async listPayments(){return this.client._request("get","/listpayments")}async keysend(e){return this.client._request("post","/keysend",e)}subscribeToPastPayments(e){let{onPayment:r,onError:n,pollingInterval:i=5e3,maxStoredIds:s=1e3,skipInitialFetch:o=!1}=e;if(!r||typeof r!="function")throw new Error("onPayment callback is required and must be a function");i<1e3&&console.warn("Warning: Polling interval less than 1000ms may cause performance issues");let c=`payment-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,u=Date.now(),l=new Set,d=new Map,f=a(()=>{l.size<=s||[...d.entries()].sort((m,g)=>m[1]-g[1]).map(m=>m[0]).slice(0,l.size-s).forEach(m=>{l.delete(m),d.delete(m)})},"d");o||this.listPayments().then(m=>{m&&m.payments&&Array.isArray(m.payments)&&(m.payments.forEach(g=>{l.add(g.payment_hash),d.set(g.payment_hash,g.created_at||Date.now())}),f())}).catch(m=>{n&&typeof n=="function"&&n(m)});let p=i,_=0,h=setInterval(async()=>{try{let m=await this.listPayments();if(m&&m.payments&&Array.isArray(m.payments)){let g=m.payments.filter(y=>l.has(y.payment_hash)?l.has(y.payment_hash)&&y.updated_at>(d.get(y.payment_hash)||0)?(d.set(y.payment_hash,y.updated_at||Date.now()),!0):!1:(l.add(y.payment_hash),d.set(y.payment_hash,y.created_at||Date.now()),!0));if(m.payments.length>0){let y=Math.max(...m.payments.map(w=>w.updated_at||0));u=Math.max(u,y)}if(f(),g.length>0)g.forEach(y=>{r(y)}),_=0;else if(_++,_>5){let y=Math.min(i*3,i*(1+_/10));if(y!==p){p=y,clearInterval(h);let w=setInterval(h.callback,p);this.paymentPollingIntervals.set(c,w)}}}}catch(m){n&&typeof n=="function"&&n(m)}},i);return h.callback=h._onTimeout,this.paymentSubscriptions.set(c,{onPayment:r,onError:n,pollingInterval:i,currentPollingInterval:p,maxStoredIds:s}),this.paymentPollingIntervals.set(c,h),c}unsubscribeFromPayments(e){if(!this.paymentSubscriptions.has(e))return!1;let r=this.paymentPollingIntervals.get(e);return r&&(clearInterval(r),this.paymentPollingIntervals.delete(e)),this.paymentSubscriptions.delete(e),!0}decodeRGBLNInvoice(e){return kRt(e)}},K6=class{static{a(this,"C")}constructor(e){this.client=e}async makerInitSwap(e){return this.client._request("post","/makerinit",e)}async makerExecuteSwap(e){return this.client._request("post","/makerexecute",e)}async takerAcceptSwap(e){return this.client._request("post","/taker",e)}async getSwap(e){return this.client._request("post","/getswap",e)}async listSwaps(){return this.client._request("get","/listswaps")}},z6=class{static{a(this,"U")}constructor(e){this.client=e}async getNodeInfo(){return this.client._request("get","/nodeinfo")}async getNodeState(){try{let e=await this.client._request("get","/nodestate");return e?.state}catch(e){if(e.message.includes("Network Error"))return"NonExisting";throw e}}async getNetworkInfo(){return this.client._request("get","/networkinfo")}async checkIndexerUrl(e){return this.client._request("post","/checkindexerurl",e)}async checkProxyEndpoint(e){return this.client._request("post","/checkproxyendpoint",e)}async sendOnionMessage(e){return this.client._request("post","/sendonionmessage",e)}async signMessage(e){return this.client._request("post","/signmessage",e)}async initNode(e){return this.client._request("post","/init",e)}async unlockNode(e){return this.client._request("post","/unlock",e)}async lockNode(){return this.client._request("post","/lock")}async changePassword(e){return this.client._request("post","/changepassword",e)}async backupNode(e){return this.client._request("post","/backup",e)}async restoreNode(e){return this.client._request("post","/restore",e)}},J6=class{static{a(this,"G")}constructor(e={},r=null){let n={};typeof e=="string"?(n.baseUrl=e,r&&(n.headers={Authorization:`Bearer ${r}`})):n=e,this.baseUrl=n.baseUrl||"http://localhost:3001",this.axios=uRt.create({baseURL:this.baseUrl,headers:{"Content-Type":"application/json",...n.headers},...n.axiosConfig}),this.onchain=new $6(this),this.rgb=new G6(this),this.lightning=new V6(this),this.swaps=new K6(this),this.node=new z6(this)}async _request(e,r,n=null){var i,s;try{let o={method:e,url:r};return n!==null&&(e==="post"||e==="put"||e==="patch")?o.data=n:n!==null&&e==="get"&&(o.params=n),(await this.axios.request(o)).data}catch(o){if(o.response){let c=((i=o.response.data)==null?void 0:i.message)||((s=o.response.data)==null?void 0:s.error)||o.response.statusText;throw new Error(`API Error (${o.response.status}): ${c}`)}else throw o.request?new Error(`Network Error: Unable to reach RGB API at ${this.baseUrl}`):new Error(`Request Error: ${o.message}`)}}};Bp.LightningMethods=V6;Bp.NodeMethods=z6;Bp.OnchainMethods=$6;Bp.RgbApiClient=J6;Bp.RgbMethods=G6;Bp.SwapMethods=K6;Bp.default=J6});var sA=v((qMr,mNe)=>{var{getConfig:NRt}=Vt(),{RgbApiClient:ORt}=hNe(),RW=null;function IRt(){if(!RW){let t=NRt();if(!t.LINK_RGB_LISTENING_PORT)throw new Error("RGB configuration not available");RW=new ORt({baseUrl:`http://127.0.0.1:${t.LINK_RGB_LISTENING_PORT}`})}return RW}a(IRt,"getRgbClient");mNe.exports=IRt});var oA=v((jMr,vNe)=>{var{checkObjectArgs:gNe}=Qi(),{getConfig:CRt}=Vt(),{decryptNostrString:W6}=Cr(),{getConfigFilePath:yNe}=jS(),{TASKS:RRt}=tt(),{reportTaskCompletion:PRt}=Lp(),Yx=sA();async function X6(){let t=await Yx().node.getNodeState(),e={};switch(t){case"None":e.state=0;break;case"Locked":e.state=1;break;case"Changing":e.state=3;break;case"Running":e.state=4;break;case"NonExisting":e.state=255;break;default:e.state=0}return e}a(X6,"getNodeState");async function LRt(){return(await Yx().rgb.listAssets({filter_asset_schemas:[]}))?.nia??[]}a(LRt,"getRGBAssetsList");async function DRt({password:t}){if(!t)throw new Error("password is required");let e=Yx(),r=await W6(t);return await e.node.initNode({password:r})}a(DRt,"genSeed");async function BRt({password:t,lnlinkUser:e}){if(!t)throw new Error("password is required");let r=Yx(),{LINK_BITCOIND_RPCHOST:n,LINK_BITCOIND_RPCUSER:i,LINK_BITCOIND_RPCPASS:s,LINK_RGB_LDK_PEER_LISTENING_PORT:o=9735,LINK_NAME:c,LINK_RGB_ELECTRS_HOST:u,LINK_RGB_PROXY_ENDPOINT:l}=CRt(),d=await W6(t),f=n?.split(":")[0],p=Number(n?.split(":")[1]),_={bitcoind_rpc_username:i,bitcoind_rpc_password:s,bitcoind_rpc_host:f,bitcoind_rpc_port:p,indexer_url:u,proxy_endpoint:l,password:d,announce_addresses:[`0.0.0.0:${o}`],announce_alias:`${c}`};e&&PRt({nostrAddress:e?.npub,tag:RRt.EnableRGBNode});let h=r.node.unlockNode(_),m=3e4,g,y=new Promise(E=>{g=setTimeout(async()=>{let A=await X6();E({message:"Request submitted, current node status:",status:A})},m)}),w=await Promise.race([h,y]);return clearTimeout(g),w||!0}a(BRt,"unlockNode");async function MRt({password:t}){let{rgbBackupPath:e}=yNe(),r={password:t,backup_path:e},n=Yx();gNe(r,["password","backup_path"]),(await X6()).state===4&&await n.node.lockNode();let s=await W6(t);return r.password=s,await n.node.backupNode(r)||!0}a(MRt,"backupNode");async function FRt({password:t}){let{rgbBackupPath:e}=yNe(),r={password:t,backup_path:e},n=Yx();(await X6()).state===4&&await n.node.lockNode(),gNe(r,["password","backup_path"]);let s=await W6(t);return r.password=s,await n.node.restoreNode(r)||!0}a(FRt,"restoreNode");vNe.exports={getNodeState:X6,genSeed:DRt,unlockNode:BRt,backupNode:MRt,restoreNode:FRt,getRGBAssetsList:LRt}});var TNe=v((VMr,ENe)=>{var PW=pNe().default,{getWalletState:URt}=Qi(),{getConfig:qRt}=Vt(),{WALLET_STATE_CODE:GMr}=tt(),Yh=Ke(),{getNodeState:HRt}=oA(),{getServiceConfig:bNe}=M6(),{getServicesState:jRt}=SW();function xNe(){let t=qRt();return t.LINK_EXTERNAL_NODES==="true"||t.LINK_EXTERNAL_NODES===!0}a(xNe,"isExternalNodesMode");var va={RUNNING:"Running",STOPPED:"Stopped"};async function $Rt(){let t=new Yh("statusChecker");try{return jRt()?.tor?.hasProcess?va.RUNNING:va.STOPPED}catch(e){return t.error(`Error checking tor process: ${e.message}`),va.STOPPED}}a($Rt,"checkTorProcess");async function GRt(){let t=new Yh("statusChecker");try{if(xNe()){t.info("External nodes mode: checking litd via RPC...");try{let r=await URt();if(r!=null)return t.info(`Litd is running (wallet state: ${r})`),va.RUNNING}catch(r){t.warn(`RPC check failed: ${r.message}`)}return va.STOPPED}let e=await PW("name","litd");return e.length>0?(t.info(`Found litd process(es): ${e.map(r=>r.pid).join(", ")}`),va.RUNNING):va.STOPPED}catch(e){return t.warn(`Failed to check litd process: ${e.message}`),va.STOPPED}}a(GRt,"checkLitdProcess");async function wNe(){let t=new Yh("statusChecker");try{if(xNe()){t.info("External nodes mode: checking RGB via SDK...");try{let r=await HRt();if(r!=null)return t.info("RGB is running (node state received)"),va.RUNNING}catch(r){t.warn(`RGB SDK check failed: ${r.message}`)}return va.STOPPED}let e=await PW("name","rgb-lightning-node");return e.length>0?(t.info(`Found rgb-lightning-node process(es): ${e.map(r=>r.pid).join(", ")}`),va.RUNNING):va.STOPPED}catch(e){return t.warn(`Failed to check rgb process: ${e.message}`),va.STOPPED}}a(wNe,"checkRgbProcess");async function Q6(t){let e=new Yh("statusChecker");try{let r=bNe();if(!r[t])throw new Error(`${t} does not exist.`);switch(t){case"tor":return await $Rt();case"litd":return await GRt();case"rgb":return await wNe();default:{let i=r[t].command.split(/[\/\\]/).pop().replace(".exe","");return(await PW("name",i)).length>0?va.RUNNING:va.STOPPED}}}catch(r){throw e.error(`Error checking ${t} process: ${r.message}`),r}}a(Q6,"checkProcess");function VRt(t=""){let e=bNe(),r=new Yh("statusChecker"),n=a(s=>s!=="rgb"&&(!t||s.includes(t)),"shouldInclude"),i=Object.keys(e).filter(n);return Promise.all(i.map(async s=>{try{let o=await Q6(s);return{service_name:s,status:o}}catch(o){return r.error(`Error checking ${s} status: ${o.message}`),{service_name:s,status:va.STOPPED,error:o.message}}}))}a(VRt,"getTerminalStatus");async function KRt(){let t=new Yh("statusChecker");try{return{service_name:"rgb",status:await wNe()}}catch(e){return t.error(`Error checking rgb status: ${e.message}`),{service_name:"rgb",status:va.STOPPED,error:e.message}}}a(KRt,"getRGBStatus");async function zRt(t){let e=new Yh("statusChecker");try{return await Q6(t)===va.RUNNING}catch(r){return e.error(`Error checking if ${t} is running: ${r.message}`),!1}}a(zRt,"isServiceRunning");function JRt(t,e,r=3e4,n=1e3){let i=new Yh("statusChecker");return new Promise(s=>{let o=Date.now(),c=a(async()=>{try{if(await Q6(t)===e){s(!0);return}}catch(u){i.error(`Error waiting for ${t} status: ${u.message}`)}if(Date.now()-o>=r){i.warn(`Timeout waiting for ${t} to reach status: ${e}`),s(!1);return}setTimeout(c,n)},"checkStatus");c()})}a(JRt,"waitForServiceStatus");ENe.exports={ServiceStatus:va,checkProcess:Q6,getRGBStatus:KRt,getTerminalStatus:VRt,isServiceRunning:zRt,waitForServiceStatus:JRt}});var uf=v((zMr,LNe)=>{var{getConfig:ANe,reloadConfig:WRt}=Vt(),{TASKS:LW}=tt(),ru=Ke(),{sleep:kNe}=$S(),{updateMainLnlinkConfig:XRt}=Cr(),{reportTaskCompletion:DW}=Lp(),{buildLitdArgs:QRt,buildTorArgs:YRt,buildRgbArgs:ZRt}=M6(),{startService:Y6,stopService:Zx}=SW(),{getTerminalStatus:cA,isServiceRunning:e1,getRGBStatus:uA,ServiceStatus:Ol}=TNe();async function NNe(t,{timeoutMs:e=15e3,pollIntervalMs:r=1e3}={}){let n=new ru("litdService"),i=Date.now()+e,s=[];for(;;){if(s=await cA("litd"),s.find(d=>d.service_name==="litd")?.status===t)return n.info(`Litd reached target status: ${t}`),{matched:!0,statuses:s};let u=Date.now();if(u>=i)break;let l=Math.min(r,Math.max(0,i-u));l>0&&await kNe(l)}let o=s.find(c=>c.service_name==="litd")?.status||"Unknown";return n.warn(`Timed out waiting for Litd status "${t}". Last observed status: ${o}`),{matched:!1,statuses:s}}a(NNe,"waitForLitdStatus");async function SNe(t,{timeoutMs:e=15e3,pollIntervalMs:r=1e3}={}){let n=new ru("rgbService"),i=Date.now()+e,s=null;for(;;){if(s=await uA(),s?.status===t)return n.info(`RGB reached target status: ${t}`),{matched:!0,statuses:s};let u=Date.now();if(u>=i)break;let l=Math.min(r,Math.max(0,i-u));l>0&&await kNe(l)}let o=s?.status||"Unknown";return n.warn(`Timed out waiting for RGB status "${t}". Last observed status: ${o}`),{matched:!1,statuses:s}}a(SNe,"waitForRgbStatus");async function ONe({waitForRunning:t=!0}={}){let e=new ru("litdService"),{LINK_ENABLE_TOR:r}=ANe(),n=r==="true"||r===!0;e.info("Starting terminal services...");let i=await cA(),s=i.find(c=>c.service_name==="litd"),o=i.find(c=>c.service_name==="tor");e.info(`Current status - Litd: ${s?.status}, Tor: ${o?.status}`);try{if(n&&o?.status===Ol.STOPPED){e.info("Starting Tor service...");let l=YRt();await Y6("tor",l),e.info("Tor service started successfully")}if(s?.status===Ol.STOPPED){e.info("Starting Litd service...");let l=QRt(n);await Y6("litd",l),e.info("Litd service started successfully")}let c=await cA(),u=c.find(l=>l.service_name==="litd")?.status;if(t&&u!==Ol.RUNNING){e.info("Waiting for Litd to reach running state after start...");let{matched:l,statuses:d}=await NNe(Ol.RUNNING,{timeoutMs:2e4,pollIntervalMs:1e3});if(!l)throw new Error("Litd failed to reach RUNNING state after start");return e.info("Terminal services started and Litd is running"),d}return e.info("Terminal services started successfully"),c}catch(c){throw e.error(`Failed to start terminal services: ${c.message}`),c}}a(ONe,"startTerminal");async function INe(t={}){let e=new ru("litdService"),{lnlinkUser:r,waitForStopped:n=!0,waitOptions:i={}}=t||{};e.info("Stopping terminal services...");try{if(!await Zx("litd"))return e.warn("stopService returned a falsy result"),!1;if(r&&DW({nostrAddress:r.npub,tag:LW.StopTaprootAssetNode}),!n)return e.info("Terminal services stopped (waiting for STOPPED state skipped)"),!0;e.info("Waiting for Litd to confirm STOPPED state...");let{matched:o}=await NNe(Ol.STOPPED,{timeoutMs:15e3,pollIntervalMs:1e3,...i});if(!o)throw new Error("Litd did not stop within the expected time window");return e.info("Terminal services stopped successfully and Litd is confirmed STOPPED"),!0}catch(s){throw e.error(`Failed to stop terminal services: ${s.message}`),s}}a(INe,"stopTerminal");async function BW(t={}){let e=new ru("litdService");e.info("Restarting terminal services...");try{if(!await INe({...t,waitForStopped:!0}))return e.warn("Stopping Litd returned a falsy result, aborting restart."),!1;e.info("Starting Litd...");let n=await ONe({waitForRunning:!0});return e.info("Terminal services restarted successfully"),n}catch(r){throw e.error(`Failed to restart terminal services: ${r.message}`),r}}a(BW,"restartTerminal");async function e6t(t={}){let e=new ru("litdService");if(Object.keys(t).length===0)throw new Error("config is empty");return e.info("Applying new configuration..."),await BW()}a(e6t,"configTerminal");async function t6t(){let t=new ru("litdService");try{let e=await cA(),r=await e1("litd"),n=await e1("tor");return{healthy:r,services:{litd:{running:r,status:e.find(i=>i.service_name==="litd")?.status||"Unknown"},tor:{running:n,status:e.find(i=>i.service_name==="tor")?.status||"Unknown"}},timestamp:new Date().toISOString()}}catch(e){return t.error(`Health check failed: ${e.message}`),{healthy:!1,error:e.message,timestamp:new Date().toISOString()}}}a(t6t,"healthCheck");async function CNe(t){let e=new ru("rgbService");e.info("Starting RGB service...");try{let r=await uA();if(r?.status===Ol.STOPPED){e.info("RGB service is stopped, starting...");let i=ZRt();await Y6("rgb",i),t?.lnlinkUser&&DW({nostrAddress:t?.lnlinkUser?.npub,tag:LW.EnableRGBNode}),e.info("RGB service started successfully")}else e.info(`RGB service is already ${r?.status}`);return await uA()}catch(r){throw e.error(`Failed to start RGB service: ${r.message}`),r}}a(CNe,"startRGB");async function RNe(t){let e=new ru("rgbService");e.info("Stopping RGB service...");let r=t?.lnlinkUser;try{let n=await Zx("rgb");return e.info("RGB service stopped successfully"),r&&DW({nostrAddress:r.npub,tag:LW.StopRGBNode}),n}catch(n){throw e.error(`Failed to stop RGB service: ${n.message}`),n}}a(RNe,"stopRGB");async function PNe(t={}){let e=new ru("rgbService");e.info("Restarting RGB service...");try{let r=await uA(),n=!!r?.error;if(r?.status===Ol.RUNNING||n){if(e.info(n?"RGB status check failed; forcing stop before restart...":"Stopping RGB service..."),!await RNe(t))return e.warn("Stopping RGB returned a falsy result, aborting restart."),!1;e.info("Waiting for RGB to stop...");let{matched:d}=await SNe(Ol.STOPPED,{timeoutMs:15e3,pollIntervalMs:1e3});if(!d)throw new Error("RGB did not stop within the expected time window")}e.info("Starting RGB...");let s=await CNe(t);if(s?.status===Ol.RUNNING)return e.info("RGB service restarted successfully"),s;e.info("Waiting for RGB to reach running state...");let{matched:c,statuses:u}=await SNe(Ol.RUNNING,{timeoutMs:2e4,pollIntervalMs:1e3});if(!c)throw new Error("RGB failed to reach RUNNING state after restart");return e.info("RGB service restarted successfully"),u}catch(r){throw e.error(`Failed to restart RGB service: ${r.message}`),r}}a(PNe,"restartRGB");async function r6t(t={}){let e=new ru("nodeManage");e.info("Updating node name...");try{let{node_name:r}=t;if(!r)throw new Error("node_name is required");let n=await XRt({node_name:r});if(n!==1)throw new Error("Failed to update node name in DB");await WRt();let s=ANe()?.LINK_NAME||r,o=await BW(t);if(!o)throw new Error("Failed to restart litd after updating node name");let u=(Array.isArray(o)?o.find(f=>f.service_name==="litd"):null)?.status||(Array.isArray(o)?"Unknown":o?.status||"Unknown"),l=await PNe(t),d=Array.isArray(l)?l.find(f=>f.service_name==="rgb")?.status||"Unknown":l?.status||"Unknown";return{update_status:n===1,node_name:s,litd_status:u,litd_details:o,rgb_status:d,rgb_details:l}}catch(r){throw e.error(`Failed to update nodename: ${r.message}`),r}}a(r6t,"updateNodeName");if(globalThis.addCleanupFunction){let t=new ru("nodeManage");globalThis.addCleanupFunction(async()=>{t.info("Cleaning up node processes...");try{await e1("litd")&&(await Zx("litd"),t.info("litd process stopped")),await e1("tor")&&(await Zx("tor"),t.info("tor process stopped")),await e1("rgb")&&(await Zx("rgb"),t.info("RGB process stopped"))}catch(e){t.error(`Error during node cleanup: ${e.message}`)}})}LNe.exports={startTerminal:ONe,stopTerminal:INe,restartTerminal:BW,configTerminal:e6t,getTerminalStatus:cA,healthCheck:t6t,startRGB:CNe,stopRGB:RNe,restartRGB:PNe,getRGBStatus:uA,startService:Y6,stopService:Zx,isServiceRunning:e1,ServiceStatus:Ol,updateNodeName:r6t}});var FW=v((WMr,MNe)=>{var{getConfig:n6t}=Vt(),{getWalletState:i6t}=Qi(),{getMainLnlinkConfig:MW,updateMainLnlinkConfig:DNe}=Cr(),{nip19:a6t,getPublicKey:s6t,generatePrivateKey:o6t}=rc(),{getRGBStatus:BNe,getTerminalStatus:c6t}=uf();async function u6t({owner:t,settings:e,nodeName:r}){if(!t)throw new Error("ownerNostrAddr is null");if(!/^npub[a-z0-9]{59,}$/.test(t))throw new Error("owner nostr address format error");let n=await MW();if(n&&n.node_sk&&n.owner_npub){let s={settings:e};r&&(s.node_name=r),await DNe(s)}else{let s=o6t(),o=a6t.npubEncode(s6t(s)),c={owner_npub:t,node_sk:s,node_npub:o,settings:e};r&&(c.node_name=r),await DNe(c)}return await MW()}a(u6t,"initConfig");async function l6t(){let t=n6t(),e=[],r=await i6t(!0);if(r===4){let i=await c6t(),s=await BNe(),o=[...new Set([s,...i])];e.push(...o)}else{let i=await BNe();e.push(i);let s=r>=0&&r<=4;e.push({service_name:"litd",status:s?"Running":"Stopped"})}let n=await MW();return{linkName:t?.LINK_NAME,owner:t?.LINK_OWNER,nodeAddr:t?.LINK_NODE_ADDR,relayUri:t?.LINK_RELAY_URI,settings:n?.settings,linkStatus:e}}a(l6t,"getInfo");MNe.exports={initConfig:u6t,getInfo:l6t}});var UW=v((QMr,FNe)=>{var d6t=require("node:events"),f6t=new d6t;FNe.exports=f6t});var jNe=v((YMr,HNe)=>{var p6t=cH(),lA=p6t.Router(),{getConfig:_6t,reloadConfig:qNe}=Vt(),{getInfo:h6t,initConfig:m6t,updateNodeName:g6t}=FW(),{sendResponse:Zh}=oi(),UNe=UW();lA.get("/health",async(t,e)=>{try{let r={status:"healthy",timestamp:new Date().toISOString(),uptime:process.uptime(),memory:process.memoryUsage()};Zh(e,200,"Server is healthy",r)}catch(r){Zh(e,500,"Server health check failed",{error:r.message})}});lA.post("/update-name",async(t,e)=>{try{let{nodeName:r}=t?.body,n=await g6t(r);await qNe(),Zh(e,200,"lnlink node_name update success",n)}catch(r){Zh(e,500,r.message,null)}});lA.post("/init",async(t,e)=>{try{let{owner:r,settings:n,nodeName:i}=t?.body,s=await m6t({owner:r,settings:n,nodeName:i});await qNe(),UNe.emit("initAccount"),UNe.emit("listenNostrEvent"),Zh(e,200,"lnlink config init success",s)}catch(r){Zh(e,500,r.message,null)}});lA.get("/info",async(t,e)=>{try{let{owner:r,nodeAddr:n,relayUri:i,linkStatus:s,settings:o}=await h6t(),c={};s.forEach(l=>{c[l.service_name]=l.status});let{LINK_LNFI_NODE_SITE_URL:u}=_6t();Zh(e,200,"success",{owner:r,nodeAddr:n,relayUri:i,...c,manageUrl:`${u.replace(/\/#\/|\/#|\/$/,"")}/#/?owner=${r}&npub=${n}`,settings:o})}catch(r){Zh(e,500,r.message,null)}});HNe.exports=lA});var qW=v((ZMr,GNe)=>{var{Buffer:$Ne}=require("node:buffer"),y6t=require("node:crypto");function v6t(t,e){let r=y6t.createHash("sha256");r.update(t);let n=r.digest();if(e<n.length)return n.slice(0,e);if(e>n.length){let i=$Ne.alloc(e-n.length);return $Ne.concat([n,i])}return n}a(v6t,"stringToFixedBytes");GNe.exports={stringToFixedBytes:v6t}});var XNe=v((tFr,WNe)=>{var HW=BigInt(Number.MAX_SAFE_INTEGER),VNe=BigInt("9223372036854775807"),Z6=BigInt("1000000000000000000000000000"),eP=Z6,KNe=+"4102444800",$W=2147483647,zNe=VNe,jW=eP,JNe=$W,b6t={isUnlimited:a(t=>{if(!t)return!1;if(typeof t=="bigint")return t===jW||t===Z6||t===eP;if(typeof t=="string"){let e=jW.toString(),r=Z6.toString(),n=eP.toString();return t===e||t===r||t===n}return!1},"isUnlimited"),isNeverExpire:a(t=>t?t===JNe||t===zNe||t===KNe||t===$W:!1,"isNeverExpire"),isSafeInteger:a(t=>t<=HW&&t>=-HW,"isSafeInteger"),toDbString:a(t=>t?typeof t=="string"?t:typeof t=="bigint"?t.toString():String(t):null,"toDbString"),fromDbString:a(t=>{if(!t)return null;try{return BigInt(t)}catch(e){return console.warn(`Failed to convert string to BigInt: ${t} ${e.message}`),null}},"fromDbString"),toSafeString:a(t=>t?t.toString():null,"toSafeString"),fromString:a(t=>t?BigInt(t):null,"fromString"),formatLargeNumber:a(t=>{if(!t)return"0";let e=t.toString(),r=e.length;return r<=6?e:r<=9?`${(Number(e)/1e6).toFixed(1)}M`:r<=12?`${(Number(e)/1e9).toFixed(1)}B`:r<=15?`${(Number(e)/1e12).toFixed(1)}T`:Number(e).toExponential(2)},"formatLargeNumber"),createTokenAmount:a((t,e=18)=>{let r=BigInt(10)**BigInt(e);return BigInt(t)*r},"createTokenAmount")};WNe.exports={MAX_SAFE_INTEGER:HW,MAX_SQLITE_INTEGER:VNe,MAX_TOKEN_AMOUNT:Z6,UNLIMITED_AUTH_LIMIT:eP,UNLIMITED_AMOUNT:jW,NEVER_EXPIRE_MAX:zNe,NEVER_EXPIRE_2100:KNe,NEVER_EXPIRE_2038:$W,NEVER_EXPIRE:JNe,BigIntUtils:b6t}});var eOe=v((nFr,ZNe)=>{var{getMainLnlinkConfig:tP}=Cr(),{insertLnlinkUser:GW,getLNDOwner:x6t,getFlashRegister:w6t,getReadOnly:E6t}=Cr(),VW=Ke(),{stringToFixedBytes:QNe}=qW(),{UNLIMITED_AMOUNT:T6t,NEVER_EXPIRE:KW,BigIntUtils:S6t}=XNe(),{ACCOUNT_TYPE:zW,FLASH_REGISTER_PERMISSIONS:A6t,OWNER_PERMISSIONS:k6t,READ_ONLY_PERMISSIONS:N6t}=tt(),JW=Kc(),{nip19:t1,getPublicKey:YNe}=rc();async function O6t(){let t=new VW("init");try{if(!await x6t()){let r=await tP(),n="owner",{owner_npub:i,settings:s,node_npub:o}=r,c=s?.nostrRelays?s?.nostrRelays?.[0]:null;await GW({name:n,pubkey:t1.decode(i).data,sk:null,node_pubkey:t1.decode(o).data,relay:c,asset_id:null,account_type:zW.OWNER,social_id:null,auth_limit:S6t.toDbString(T6t),permissions:JSON.stringify(k6t),create_at:JW().unix(),expire_time:KW,parent_pubkey:null})&&t.info(`init owner to DB owner ${i} init success.`)}}catch(e){t.error(`init owner error: ${e.message}`)}}a(O6t,"initOwner");async function I6t(){let t=new VW("init");try{let e=await tP(),{node_npub:r,settings:n}=e,i=n?.nostrRelays?n?.nostrRelays?.[0]:null,s=QNe(`${r}`).toString("hex"),o=YNe(s),c=t1.npubEncode(o);await w6t()||await GW({name:"flash_register",pubkey:o,sk:s,node_pubkey:t1.decode(r).data,relay:i,asset_id:null,account_type:zW.FLASH_REGISTER,social_id:null,social_type:null,auth_limit:"0",permissions:JSON.stringify(A6t),create_at:JW().unix(),expire_time:KW,parent_pubkey:null})&&t.info(`init flash_register to DB flash_register ${c} init success.`)}catch(e){t.error(`init flash_register error: ${e.message}`)}}a(I6t,"initFlashRegister");async function C6t(){let t=new VW("init");try{let e=await tP(),{node_npub:r,settings:n}=e,i=n?.nostrRelays?n?.nostrRelays?.[0]:null,o=QNe(`${r}:lnlink_readonly_v1`).toString("hex"),c=YNe(o),u=t1.npubEncode(c);await E6t()||await GW({name:"readonly",pubkey:c,sk:o,node_pubkey:t1.decode(r).data,relay:i,asset_id:null,account_type:zW.READ_ONLY,social_id:null,social_type:null,auth_limit:"0",permissions:JSON.stringify(N6t),create_at:JW().unix(),expire_time:KW,parent_pubkey:null})&&t.info(`init readonly to DB readonly ${u} init success.`)}catch(e){t.error(`init readonly error: ${e.message}`)}}a(C6t,"initReadOnly");async function R6t(){(await tP())?.owner_npub&&(await O6t(),await C6t(),await I6t())}a(R6t,"initAccount");ZNe.exports={initAccount:R6t}});var WW=v((aFr,tOe)=>{var rP=new Map;async function P6t(t,e=[],r,n=60*1e3,i){let s=a(async()=>{try{await t(...e),i.info(`\u2705 Attempt ${r} succeeded`)}catch(o){i.error(`Attempt ${r} failed with: ${o.message}, retrying in ${n/1e3} seconds`)}finally{setTimeout(s,n)}},"retry");s()}a(P6t,"executeWithRetry");async function L6t(t,e,r,n=0,i=60*1e3,s){rP.has(r)&&(clearTimeout(rP.get(r)),rP.delete(r));let o=a(async(c=1)=>{try{Array.isArray(e)?await t(...e):await t(e),s.info(`\u2705 Attempt ${r} succeeded`)}catch(u){if(s.warn(`Attempt ${r} failed with: ${u.message}, retrying in ${i/1e3} seconds`),n&&c>=n)return s.error(`Attempt ${r} failed after ${c} attempts`),!1;let l=setTimeout(()=>o(c+1),i);rP.set(r,l)}},"retry");o()}a(L6t,"terminateableRetryExecute");async function D6t(t,e,r,n=10,i=1e3,s){return new Promise((o,c)=>{let u=a(async(l=1)=>{try{let d=await t(...e);if(d!==void 0){s.info(`\u2705 Attempt ${r} succeeded`),o(d);return}throw new Error(`${r} returned falsy value`)}catch(d){if(s.warn(`Attempt ${l}/${n} for ${r} failed: ${d.message}`),l>=n){s.error(`\u274C ${r} failed after ${n} attempts`),c(d);return}setTimeout(()=>{u(l+1).catch(c)},i)}},"retry");u(1).catch(c)})}a(D6t,"retryUntilSuccess");tOe.exports={executeWithRetry:P6t,terminateableRetryExecute:L6t,retryUntilSuccess:D6t}});var XW=v((oFr,B6t)=>{B6t.exports={name:"lnlink-server",version:"1.0.4",private:!1,main:"dist/index.js",files:["dist","prisma","README.md"],scripts:{build:"node build.js && node build.js --mode development --external all --entry electron","start:bin":"dotenv -e .env.bin -- node scripts/start-bin.js","start:docker:dev":"dotenv -e .env.dev -- docker compose -f ./docker-compose.dev.yml up --build","start:dev":'dotenv -e .env.dev -- sh -c "prisma generate && (prisma migrate dev --name auto_update || prisma db push) && clinic heapprof -- node ./app.js"',"start:regtest":"docker compose --env-file ./.env.regtest -f ./docker-compose-lnlink.yml up --build","start:testnet":"docker compose --env-file ./.env.testnet -f ./docker-compose-lnlink.yml up --build","start:mainnet":"docker compose --env-file ./.env.mainnet -f ./docker-compose-lnlink.yml up --build","start:bin:dist":"dotenv -e .env.bin -- node scripts/start-bin.js --dist",lint:"eslint .","lint:fix":"eslint . --fix","lint:staged":"lint-staged",preinstall:"npx husky"},_moduleAliases:{"@api":"api","@constants":"constants","@business":"business","@nostr":"nostr","@package.json":"./package.json"},dependencies:{"@grpc/grpc-js":"^1.10.8","@grpc/proto-loader":"^0.7.9","@lightsparkdev/lightspark-sdk":"^1.8.9","@lnfi-network/rgb-api-js-sdk":"^1.0.7","@prisma/client":"6.14.0",axios:"^1.7.2","bitcoin-core":"^4.2.0","body-parser":"^1.20.2",bolt11:"^1.4.1","cookie-parser":"~1.4.4","crypto-js":"^4.2.0",dayjs:"^1.11.10",debug:"~2.6.9","decimal.js":"^10.4.3",ethers:"^6.15.0",express:"^4.18.2","express-rate-limit":"^8.0.1","find-process":"^2.0.0","form-data":"^4.0.2","http-errors":"~1.6.3",jest:"^29.6.2",long:"^5.2.3","module-alias":"^2.2.3",morgan:"~1.9.1","node-cache":"^5.1.2","node-cron":"^3.0.3","nostr-tools":"1.17.0",pino:"^9.9.0","pino-pretty":"^13.1.1","pino-roll":"^3.1.0",prisma:"^6.14.0",typescript:"^5.7.3",ws:"^8.18.0"},"lint-staged":{"*.ts":["eslint --fix","git add"],"*.js":["eslint --fix","git add"]},devDependencies:{"@antfu/eslint-config":"^4.3.0","@commitlint/cli":"^19.7.1","@commitlint/config-conventional":"^19.7.1","dotenv-cli":"^10.0.0","electron-rebuild":"^3.2.9",esbuild:"^0.25.9",eslint:"^9.20.1",husky:"^9.1.7","lint-staged":"^15.4.3",nodemon:"^3.0.3",protobufjs:"^7.2.5"},engines:{node:">=19.0.0"}}});var sy=v((cFr,fOe)=>{var{Buffer:t0}=require("node:buffer"),aOe=require("node:fs"),rOe=require("node:path"),{getConfig:r0}=Vt(),{getMainLnlinkConfig:ZW,getLnlinkUser:M6t,upsertTransactionByFilter:aP}=Cr(),{retryUntilSuccess:F6t}=WW(),{ACCOUNT_TYPE:U6t,INVOICE_EXPIRY_TIME:q6t}=tt(),{WALLET_STATE_CODE:e0,SATS_ID:sP,NODE_TYPE:r1,TRANSACTION_KIND:oP,TRANSACTION_DIRECTION:n1,TRANSACTION_ASSET_TYPE:cP,TRANSACTION_STATUS:sOe}=tt(),H6t=XW(),{nip04:j6t,getPublicKey:nOe}=rc(),{getWalletService:uP,getWalletState:i1,getLightningService:Fi,checkWalletState:$6t,checkTprEnabled:G6t,getOpenedChannelList:oOe}=Qi(),{getConfigFilePath:eX,sleep:lP,getCacheMacaroon:tX,storeEnctryptAdminMacaroon:V6t,setCacheMacaroon:QW,storeEnctryptLoopMacaroon:K6t}=oi(),nu=No(),iu=Ke(),{getTerminalStatus:cOe,startTerminal:z6t}=uf(),{getTransactionsByFilter:J6t,decryptNostrString:YW}=Cr(),uOe=require("node:child_process").exec,{TASKS:dP}=tt(),{reportTaskCompletion:fP}=Lp();async function W6t(t){let e=new iu("lnd"),{type:r,event_id:n,lnlinkUser:i}=t;if(r==null)throw new Error("type is required");let o=await Fi().newAddress({type:r});return n&&i?(await aP({event_id:n,user_npub:i.npub,asset_type:cP.BTC,asset_id:sP,asset_amount:"0",node_type:r1.LITD,transaction_kind:oP.ONCHAIN,direction:n1.IN,target_address:o.address,status:sOe.PENDING,description:`BTC deposit address generated for ${i.npub}`,tx_type:"deposit",create_at:Math.floor(Date.now()/1e3),update_at:Math.floor(Date.now()/1e3)},{event_id:n}),e.info(`Generated BTC address: ${o.address} for user: ${i.npub}, event: ${n}`)):e.info(`Generated BTC address: ${o.address}`),o}a(W6t,"newAddress");async function X6t(t){let e=new iu("lnd"),{addr:r,amount:n,sat_per_vbyte:i,send_all:s,withinfo:o,event_id:c,lnlinkUser:u}=t,l=Fi(),d={addr:r};n&&(d.amount=n),i&&(d.sat_per_vbyte=Number(i)),s&&(d.send_all=s);let f=await l.sendCoins(d);if(f?.txid&&c&&u){let p=s?"0":n?.toString()||"0";await aP({event_id:c,user_npub:u.npub,asset_type:cP.BTC,asset_id:sP,asset_amount:p,node_type:r1.LITD,transaction_kind:oP.ONCHAIN,direction:n1.OUT,target_address:r,status:sOe.PENDING,description:`BTC withdrawal for ${u.npub} to ${r}`,tx_type:"withdraw",tx_hash:f.txid,create_at:Math.floor(Date.now()/1e3),update_at:Math.floor(Date.now()/1e3)},{tx_hash:f.txid}),e.info(`Created outgoing transaction record: ${f.txid}, user: ${u.npub}, event: ${c}`)}if(o){let p=await au();f.nodeInfo=p}return f}a(X6t,"sendCoins");async function lOe(){return(await Fi().closedChannels({}))?.channels?.map(i=>({channelId:i.chan_id,closeTx:i.closing_tx_hash,remotePubkey:i.remote_pubkey,channelPoint:i.channel_point,capacity:i.capacity,close_type:i.close_type,settledBalance:i.settled_balance,open_initiator:i.open_initiator,close_initiator:i.close_initiator}))}a(lOe,"getClosedChannelList");function nP({channel:t}){let e="";return t.custom_channel_data&&(e=JSON.parse(t0.from(t.custom_channel_data,"hex").toString("utf-8"))),{channel:{...t,custom_channel_data:e}}}a(nP,"covertChannel");async function Q6t(){let t=await i1(!0),e=new iu("lnd"),{isMacaroonDecrypted:r}=tX();if(t!==4||!r)return{open_channel_list:[],pending_channel_list:[],closed_channel_list:[]};let n=Fi(),i=await Promise.allSettled([oOe(),n.pendingChannels({}),lOe()]),s=i?.filter(w=>w.status==="rejected")?.map(w=>w.reason);s&&s.length>0&&e.error(`getChannelList ~ errors:${JSON.stringify(s)}`);let o=i[0].value,c=i[1].value,u=i[2].value,{pending_open_channels:l,pending_closing_channels:d,waiting_close_channels:f,pending_force_closing_channels:p}=c,_=l?.map(nP),h=d?.map(nP),m=f?.map(nP),g=p?.map(nP);return{open_channel_list:o,pending_channel_list:{pending_open_channels:_,pending_closing_channels:h,waiting_close_channels:m,pending_force_closing_channels:g},closed_channel_list:u}}a(Q6t,"getChannelList");async function au(){let{LINK_NAME:t,LINK_NETWORK:e,LINK_OWNER:r,LINK_NODE_ADDR:n}=r0(),i=await i1(!0),s=await cOe(),o={};s.forEach(E=>{o[E.service_name]=E.status});let c=new iu("lnd"),u=15e3,l=nu.get("combineNodeInfo")||{},d,f=new Promise(E=>{d=setTimeout(()=>{c.warn("combineNodeInfoAsync timed out after 15s, using cached result if available"),E({fromCache:!0,data:l})},u)}),p=await Promise.race([aPt(i).then(E=>({fromCache:!1,data:E})),f]);clearTimeout(d);let _=p.data||{},h=H6t.version,m=await G6t().catch(()=>!1),g=await M6t({account_type:U6t.READ_ONLY}),y=_?.uris?.[0];return{pubkey:_?.identity_pubkey,name:t,status:{state:i,...o},owner:r,node_addr:n,balance:_?.balance,version:h,uri:y,host:y?y.split("@")[1]:null,peers:_?.peers,network:e,taproot_assets_enabled:m,read_only_account_sk:g?.sk}}a(au,"getNodeInfo");async function Y6t({pay_req:t}){return await Fi().decodePayReq({pay_req:t})}a(Y6t,"decodePayReq");async function Z6t(){let t=await i1(!0);if(t===4){let e=await cOe(),r={};return e.forEach(n=>{r[n.service_name]=n.status}),{state:t,...r}}else{let e=t>=0&&t<=4;return{state:t,litd:e?"Running":"Stopped"}}}a(Z6t,"getNodeState");async function ePt(){return await Fi().pendingChannels({})}a(ePt,"getPendingChannelList");async function iP({node_pubkey:t}){let{LINK_NOSTR_NODE_NPUBKEY:e}=r0(),r=t||e;return(await Fi().listPeers({}))?.peers?.findIndex(s=>s.pub_key===r)>-1}a(iP,"isConnectPeer");async function tPt(t){let{invoice:e,withinfo:r,outgoing_chan_id:n="",event_id:i,lnlinkUser:s}=t,o=Fi(),c={payment_request:e,allow_self_payment:!0,fee_limit:{fixed:1e3}};n&&(c.outgoing_chan_id=`${n}`,c.outgoing_chan_ids=[`${n}`]);let u=await o.sendPaymentSync(c);if(u?.payment_hash){await lP(300);let d=(await o.decodePayReq({pay_req:e}))?.num_satoshis;await aP({event_id:i,user_npub:s.npub,asset_id:sP,asset_amount:`${d}`,asset_type:cP.BTC,invoice:e,node_type:r1.LITD,transaction_kind:oP.LIGHTNING,direction:n1.OUT},{payment_hash:u.payment_hash})}if(r){let l=await au();u.nodeInfo=l}return u}a(tPt,"sendPaymentSync");async function rPt(t){let{memo:e,value:r,event_id:n,lnlinkUser:i,expiry:s=q6t["10m"]}=t,c=await Fi().addInvoice({memo:e,value:r,expiry:s});return c?.payment_request&&(await lP(500),await aP({event_id:n,user_npub:i.npub,asset_id:sP,asset_amount:`${r}`,asset_type:cP.BTC,invoice:c?.payment_request,node_type:r1.LITD,transaction_kind:oP.LIGHTNING,direction:n1.IN,description:e,add_index:Number.parseInt(c?.add_index)},{invoice:c.payment_request})),{...c}}a(rPt,"createLnInvoice");async function nPt(t){let{node_pubkey:e,amount:r,sat_per_vbyte:n,fund_max:i,zero_conf_enable:s,withinfo:o,push_sat:c,lnlinkUser:u}=t,l=Fi(),{LINK_NOSTR_NODE_NPUBKEY:d}=r0(),f=e||d,p=new iu("lnd"),_=await iP({node_pubkey:f}),h;if(!_)h={isConnected:!1};else{let m={node_pubkey:f,local_funding_amount:r,min_confs:1};s&&(m.target_conf=0,m.zero_conf=!0,m.commitment_type=3,m.push_sat=1e5),n&&(m.sat_per_vbyte=n),i&&(m.fund_max=i,m.local_funding_amount="0"),c&&(m.push_sat=c),h=await l.openChannelSync(m),h.isConnected=!0,p.info(`openChannelSync ret--->, ${JSON.stringify(m)}, ${JSON.stringify(h)}`),u&&fP({nostrAddress:u.npub,tag:dP.CreateBTCChannel})}if(o){let m=await au();h.nodeInfo=m}return h}a(nPt,"openChannel");async function iPt(){let t=Fi(),{settings:e}=await ZW();return((await t.listPeers({}))?.peers||[]).map(s=>{let o=s.pub_key===e?.officialLndPeer;return{pub_key:s.pub_key,alias:o?"Lnfi":`${s.pub_key}@${s.address}`,address:s.address}})}a(iPt,"listPeers");async function aPt(t){let e={},r=new iu("lnd");try{let{isMacaroonDecrypted:n}=tX(),i=t;if(i>e0.UNLOCKED&&i!==e0.WAITING_TO_START&&(n||(i=e0.LOCKED)),i>=e0.RPC_ACTIVE&&n&&i!==e0.WAITING_TO_START){let s=Fi(),{settings:o}=await ZW(),c=await Promise.allSettled([s.getInfo(),s.walletBalance(),s.listPeers({})]),[u,l,d]=c,f=u.value,p=l.value,h=d.value?.peers||[],m=h.map(y=>{let w=y.pub_key===o?.officialLndPeer;return{pub_key:y.pub_key,alias:w?"Lnfi":`${y.pub_key}@${y.address}`,address:y.address}});r.info(`LND lndService combineNodeInfoAsync peer:${h.map(y=>y.pub_key)}`);let g=c?.filter(y=>y.status==="rejected")?.map(y=>y.reason);g&&g.length>0&&r.error(`LND lndService combineNodeInfoAsync errors:${JSON.stringify(g)}`),e={identity_pubkey:f?.identity_pubkey,...f,balance:p,peers:m}}return e={...e,state:i},nu.set("combineNodeInfo",e),e}catch(n){r.warn(`LND lndService combineNodeInfoAsync peer combineNodeInfo warn--->${n.message}`)}}a(aPt,"combineNodeInfoAsync");async function iOe(){let e=await Fi().getInfo();return nu.set("nodeInfo",e),e}a(iOe,"getInfo");async function sPt(t=!0){let e=new iu("lnd");try{let r=nu.get("nodeInfo");return r?.identity_pubkey?(t&&iOe(),r):await iOe()}catch(r){e.error(`LND lndService getCacheInfo err--->${r.message}`)}}a(sPt,"getCacheNodeInfo");async function oPt(t){await $6t(e0.RPC_ACTIVE);let{secret:e,origin_secret:r}=t;if(!e&&!r)throw new Error("secret is required.");let n=r||await YW(e),i=Fi(),o={permissions:[{entity:"uri",action:"/looprpc.SwapClient/GetInfo"},{entity:"uri",action:"/looprpc.SwapClient/LoopOut"},{entity:"uri",action:"/looprpc.SwapClient/LoopIn"},{entity:"uri",action:"/looprpc.SwapClient/ListSwaps"},{entity:"uri",action:"/looprpc.SwapClient/SwapInfo"},{entity:"uri",action:"/looprpc.SwapClient/AbandonSwap"},{entity:"uri",action:"/looprpc.SwapClient/Monitor"},{entity:"uri",action:"/looprpc.SwapClient/LoopOutTerms"},{entity:"uri",action:"/looprpc.SwapClient/LoopOutQuote"},{entity:"uri",action:"/looprpc.SwapClient/GetLoopInTerms"},{entity:"uri",action:"/looprpc.SwapClient/GetLoopInQuote"}],root_key_id:"18441921392371827000"},c=await i.bakeMacaroon(o);if(c?.macaroon){let u=t0.from(c?.macaroon,"hex");K6t(u,n)}}a(oPt,"bakeLoopMacaroon");async function dOe(t){let{walletUnlockerService:e}=uP(),r=new iu("lnd"),{wallet_password:n,cipher_seed_mnemonic:i}=t;if(i)nu.set("cipherSeedMnemonic",i);else{let u=await e.genSeed({});if(u?.cipher_seed_mnemonic){let l=u?.cipher_seed_mnemonic;nu.set("cipherSeedMnemonic",l)}}let s=nu.get("cipherSeedMnemonic");if(!s)throw new Error("Get seed error.");let{LINK_DEBUG:o}=r0(),c=await e.initWallet({wallet_password:t0.from(n),cipher_seed_mnemonic:s,stateless_init:!(o==="true"||o===!0)});return r.info(`LND lndService initWallet RPC response ->macaroon length:${c?.admin_macaroon?.length}`),c?.admin_macaroon&&V6t(c?.admin_macaroon,n),c}a(dOe,"wrapperInitWallet");async function cPt(){let{walletUnlockerService:t}=uP(),e=nu.get("cipherSeedMnemonic");if(e)return{cipherSeedMnemonic:e};let r=await t.genSeed({});if(r?.cipher_seed_mnemonic){let n=r?.cipher_seed_mnemonic;return nu.set("cipherSeedMnemonic",n),{cipherSeedMnemonic:n}}throw new Error("Get seed error.")}a(cPt,"genseed");async function uPt(t){let{password:e,withinfo:r,cipher_seed_mnemonic:n,origin_password:i,lnlinkUser:s}=t;if(!e&&!i)throw new Error("Password is null.");let o="",c;if(e&&(o=(await YW(e)).toString()),i&&(o=`${i}`),n&&(c=JSON.parse(await YW(n))),o&&o.length<8)throw new Error("Password length must be at least 8 characters.");let{isMacaroonDecrypted:u}=tX();if(u)throw new Error("You have already initialized.");await dOe({wallet_password:o,cipher_seed_mnemonic:c}),nu.set("tempPassword",e);let d={message:"Init wallet success.",cipherSeedMnemonic:nu.get("cipherSeedMnemonic")};return s&&fP({nostrAddress:s.npub,tag:dP.EnableTaprootAssetNode}),r&&(d.nodeInfo=await au()),d}a(uPt,"initWallet");async function lPt(t){let e=Fi(),{withinfo:r,lnlinkUser:n,...i}=t,s={...i},o=await e.closeChannel(s);if(n&&fP({nostrAddress:n.npub,tag:dP.CloseTaprootChannel}),r){let c=await au();o.nodeInfo=c}return o}a(lPt,"closeChannel");async function dPt(t){let{pubkey:e,host:r,perm:n,timeout:i,withinfo:s}=t,o=new iu("lnd"),{LINK_NOSTR_NODE_NPUBKEY:c,LINK_NOSTR_NODE_HOST:u}=r0(),l=e||c,d=r||u,f=Fi(),p=!1,_=20;if(await iP({node_pubkey:l}))p={isConnected:!0};else{o.info("Lnd lndService connectPeer"),await f.connectPeer({addr:{pubkey:l,host:d},perm:n||!1,timeout:i||30}).catch(g=>{o.error(`Lnd lndService connectPeer error ${g.message}`)});let m=0;for(;;){if(m++,m>_){p={isConnected:!1};break}if(await iP({node_pubkey:l})){p={isConnected:!0};break}else{await lP(1e3);continue}}}if(s){let m=await au();p.nodeInfo=m}return p}a(dPt,"connectPeer");async function fPt(t){let{wallet_password:e,recovery_window:r,withinfo:n}=t,{LINK_DEBUG:i}=r0(),o=(await ZW()).node_sk,c=nOe(nOe(o)),l=await j6t.decrypt(o,c,e),{walletUnlockerService:d}=uP(),f=await i1(!0);if(f>e0.UNLOCKED&&f<e0.WAITING_TO_START)QW(l);else{let _={wallet_password:t0.from(l),stateless_init:!(i==="true"||i===!0)};r&&(_.recovery_window=Number(r)),await d.unlockWallet(_),QW(l),nu.set("tempPassword",e)}let p={msg:"Unlock success."};if(n){let _=await au();p.nodeInfo=_}return p}a(fPt,"unlock");async function pPt(t){let{wallet_password:e,recovery_window:r}=t,{walletUnlockerService:n}=uP(),i=Number(r)||2500,{LINK_DEBUG:s}=r0();return await n.unlockWallet({wallet_password:t0.from(e),recovery_window:i,stateless_init:!(s==="true"||s===!0)}),QW(e),{msg:"Unlock success."}}a(pPt,"unlockForce");async function _Pt(t){let{withinfo:e}=t,{channelBackupPath:r,lndNodeOriginPath:n,targetNodeBackupPath:i}=eX(),s=Fi(),o=await s.exportAllChannelBackups({});aOe.writeFileSync(r,o.multi_chan_backup.multi_chan_backup),await s.stopDaemon({});let c=rOe.dirname(n),u=rOe.basename(n),l=`cd ${c} && tar -zcvf ${i} ${u}`,p={channelBakeup:"success.",nodeBackup:await new Promise((_,h)=>{uOe(l,m=>{m?h(m):_("success.")})})};if(e){await lP(3e3);let _=await au();p.nodeInfo=_}return p}a(_Pt,"bakeNode");async function hPt(t){let{withinfo:e}=t;await Fi().stopDaemon({}).catch(l=>{new iu("lnd").error(`Lnd lndService stopDaemon error ${l?.message}`)});let{basePath:n,targetNodeBackupPath:i}=eX(),s=`tar -zxvf ${i} -C ${n}`,u={nodeRestore:await new Promise((l,d)=>{uOe(s,f=>{f?d(f):l("success.")})})};if(e){let l=await au();u.nodeInfo=l}return u}a(hPt,"restoreNode");async function mPt(){let t=Fi(),{channelBackupPath:e}=eX(),n=aOe.readFileSync(e).toString("hex");return{channelRestore:await t.restoreChannelBackups({multi_chan_backup:t0.from(n,"hex")})}}a(mPt,"restoreChannels");async function gPt(t){let{msg:e}=t;return await Fi().signMessage({msg:t0.from(`${e}`)})}a(gPt,"signMessage");async function yPt(t){let{msg:e,signature:r}=t;return await Fi().verifyMessage({msg:t0.from(`${e}`),signature:r})}a(yPt,"nstVerifyMessage");async function vPt(t){let{node_type:e,transaction_kind:r,status:n,direction:i,asset_type:s,page_index:o=1,page_size:c=20,asset_id:u}=t;return await J6t({transaction_kind:r,direction:i?/out/.test(i)?n1.OUT:n1.IN:"",node_type:e?/litd|lnd/.test(e)?r1.LITD:r1.RGB:"",asset_type:s,status:n,limit:c,offset:(o-1)*c,asset_id:u})}a(vPt,"getTransactions");async function bPt(t){let{lnlinkUser:e}=t,{LINK_ENABLE_TOR:r}=r0(),n=new iu("lnd"),i=r,s={};e&&fP({nostrAddress:e?.npub,tag:dP.EnableTaprootAssetNode});let o=await z6t(i);if(s.linkStatus=o,await F6t(i1,[!1],"getWalletState",10,3e3,n)!==void 0){let u=await au();s.nodeInfo=u}return s}a(bPt,"startLink");async function xPt(t){let e=new iu("lnd"),{enable:r,lnlinkUser:n}=t;if(r==null)throw new Error("enable parameter is required (true or false)");let i=r===!0||r==="true";e.info(`Toggling Tor mode to: ${i}, requested by: ${n?.npub||"unknown"}`);try{let{updateMainLnlinkConfig:s}=Cr(),o=await s({enable_tor:i});o!==1&&e.warn(`Database update returned: ${o}, proceeding anyway`);let{reloadConfig:c}=Vt();await c();let{restartTerminal:u,stopService:l,isServiceRunning:d}=uf();i||await d("tor")&&(e.info("Stopping Tor service..."),await l("tor")),e.info("Restarting litd with new Tor configuration...");let f=await u({lnlinkUser:n}),p=await au();return e.info(`Tor mode toggled successfully. Tor enabled: ${i}`),{enable_tor:i,status:"ok",terminal_status:f,node_info:p}}catch(s){throw e.error(`Failed to toggle Tor: ${s.message}`),s}}a(xPt,"toggleTor");fOe.exports={startLink:bPt,toggleTor:xPt,getWalletState:i1,sendPaymentSync:tPt,createLnInvoice:rPt,getNodeInfo:au,getNodeState:Z6t,getChannelList:Q6t,getOpenedChannelList:oOe,getPendingChannelList:ePt,getClosedChannelList:lOe,openChannel:nPt,listPeers:iPt,decodePayReq:Y6t,wrapperInitWallet:dOe,initWallet:uPt,genseed:cPt,isConnectPeer:iP,sendCoins:X6t,closeChannel:lPt,connectPeer:dPt,unlock:fPt,unlockForce:pPt,bakeNode:_Pt,restoreNode:hPt,restoreChannels:mPt,bakeLoopMacaroon:oPt,signMessage:gPt,nstVerifyMessage:yPt,getCacheNodeInfo:sPt,getTransactions:vPt,newAddress:W6t}});var _Oe=v((lFr,pOe)=>{pOe.exports=require("crypto").createHash});var yOe=v((dFr,gOe)=>{"use strict";var _P="qpzry9x8gf2tvdw0s3jn54khce6mua7l",rX={};for(dA=0;dA<_P.length;dA++){if(pP=_P.charAt(dA),rX[pP]!==void 0)throw new TypeError(pP+" is ambiguous");rX[pP]=dA}var pP,dA;function a1(t){var e=t>>25;return(t&33554431)<<5^-(e>>0&1)&996825010^-(e>>1&1)&642813549^-(e>>2&1)&513874426^-(e>>3&1)&1027748829^-(e>>4&1)&705979059}a(a1,"polymodStep");function hOe(t){for(var e=1,r=0;r<t.length;++r){var n=t.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+t+")";e=a1(e)^n>>5}for(e=a1(e),r=0;r<t.length;++r){var i=t.charCodeAt(r);e=a1(e)^i&31}return e}a(hOe,"prefixChk");function wPt(t,e,r){if(r=r||90,t.length+7+e.length>r)throw new TypeError("Exceeds length limit");t=t.toLowerCase();var n=hOe(t);if(typeof n=="string")throw new Error(n);for(var i=t+"1",s=0;s<e.length;++s){var o=e[s];if(o>>5!==0)throw new Error("Non 5-bit word");n=a1(n)^o,i+=_P.charAt(o)}for(s=0;s<6;++s)n=a1(n);for(n^=1,s=0;s<6;++s){var c=n>>(5-s)*5&31;i+=_P.charAt(c)}return i}a(wPt,"encode");function mOe(t,e){if(e=e||90,t.length<8)return t+" too short";if(t.length>e)return"Exceeds length limit";var r=t.toLowerCase(),n=t.toUpperCase();if(t!==r&&t!==n)return"Mixed-case string "+t;t=r;var i=t.lastIndexOf("1");if(i===-1)return"No separator character for "+t;if(i===0)return"Missing prefix for "+t;var s=t.slice(0,i),o=t.slice(i+1);if(o.length<6)return"Data too short";var c=hOe(s);if(typeof c=="string")return c;for(var u=[],l=0;l<o.length;++l){var d=o.charAt(l),f=rX[d];if(f===void 0)return"Unknown character "+d;c=a1(c)^f,!(l+6>=o.length)&&u.push(f)}return c!==1?"Invalid checksum for "+t:{prefix:s,words:u}}a(mOe,"__decode");function EPt(){var t=mOe.apply(null,arguments);if(typeof t=="object")return t}a(EPt,"decodeUnsafe");function TPt(t){var e=mOe.apply(null,arguments);if(typeof e=="object")return e;throw new Error(e)}a(TPt,"decode");function hP(t,e,r,n){for(var i=0,s=0,o=(1<<r)-1,c=[],u=0;u<t.length;++u)for(i=i<<e|t[u],s+=e;s>=r;)s-=r,c.push(i>>s&o);if(n)s>0&&c.push(i<<r-s&o);else{if(s>=e)return"Excess padding";if(i<<r-s&o)return"Non-zero padding"}return c}a(hP,"convert");function SPt(t){var e=hP(t,8,5,!0);if(Array.isArray(e))return e}a(SPt,"toWordsUnsafe");function APt(t){var e=hP(t,8,5,!0);if(Array.isArray(e))return e;throw new Error(e)}a(APt,"toWords");function kPt(t){var e=hP(t,5,8,!1);if(Array.isArray(e))return e}a(kPt,"fromWordsUnsafe");function NPt(t){var e=hP(t,5,8,!1);if(Array.isArray(e))return e;throw new Error(e)}a(NPt,"fromWords");gOe.exports={decodeUnsafe:EPt,decode:TPt,encode:wPt,toWordsUnsafe:SPt,toWords:APt,fromWordsUnsafe:kPt,fromWords:NPt}});var LOe=v((pFr,POe)=>{var wOe=require("fs"),Mp=require("path"),EOe=require("os"),TOe=typeof __webpack_require__=="function"?__non_webpack_require__:require,OPt=process.config&&process.config.variables||{},IPt=!!process.env.PREBUILDS_ONLY,vOe=process.versions.modules,nX=PPt()?"electron":RPt()?"node-webkit":"node",iX=process.env.npm_config_arch||EOe.arch(),aX=process.env.npm_config_platform||EOe.platform(),SOe=process.env.LIBC||(LPt(aX)?"musl":"glibc"),sX=process.env.ARM_VERSION||(iX==="arm64"?"8":OPt.arm_version)||"",AOe=(process.versions.uv||"").split(".")[0];POe.exports=lf;function lf(t){return TOe(lf.resolve(t))}a(lf,"load");lf.resolve=lf.path=function(t){t=Mp.resolve(t||".");try{var e=TOe(Mp.join(t,"package.json")).name.toUpperCase().replace(/-/g,"_");process.env[e+"_PREBUILD"]&&(t=process.env[e+"_PREBUILD"])}catch{}if(!IPt){var r=bOe(Mp.join(t,"build/Release"),xOe);if(r)return r;var n=bOe(Mp.join(t,"build/Debug"),xOe);if(n)return n}var i=c(t);if(i)return i;var s=c(Mp.dirname(process.execPath));if(s)return s;var o=["platform="+aX,"arch="+iX,"runtime="+nX,"abi="+vOe,"uv="+AOe,sX?"armv="+sX:"","libc="+SOe,"node="+process.versions.node,process.versions.electron?"electron="+process.versions.electron:"",typeof __webpack_require__=="function"?"webpack=true":""].filter(Boolean).join(" ");throw new Error("No native build was found for "+o+`
2156
2156
  loaded from: `+t+`
2157
2157
  `);function c(u){var l=oX(Mp.join(u,"prebuilds")).map(kOe),d=l.filter(NOe(aX,iX)).sort(OOe)[0];if(d){var f=Mp.join(u,"prebuilds",d.name),p=oX(f).map(IOe),_=p.filter(COe(nX,vOe)),h=_.sort(ROe(nX))[0];if(h)return Mp.join(f,h.file)}}};function oX(t){try{return wOe.readdirSync(t)}catch{return[]}}a(oX,"readdirSync");function bOe(t,e){var r=oX(t).filter(e);return r[0]&&Mp.join(t,r[0])}a(bOe,"getFirst");function xOe(t){return/\.node$/.test(t)}a(xOe,"matchBuild");function kOe(t){var e=t.split("-");if(e.length===2){var r=e[0],n=e[1].split("+");if(r&&n.length&&n.every(Boolean))return{name:t,platform:r,architectures:n}}}a(kOe,"parseTuple");function NOe(t,e){return function(r){return r==null||r.platform!==t?!1:r.architectures.includes(e)}}a(NOe,"matchTuple");function OOe(t,e){return t.architectures.length-e.architectures.length}a(OOe,"compareTuples");function IOe(t){var e=t.split("."),r=e.pop(),n={file:t,specificity:0};if(r==="node"){for(var i=0;i<e.length;i++){var s=e[i];if(s==="node"||s==="electron"||s==="node-webkit")n.runtime=s;else if(s==="napi")n.napi=!0;else if(s.slice(0,3)==="abi")n.abi=s.slice(3);else if(s.slice(0,2)==="uv")n.uv=s.slice(2);else if(s.slice(0,4)==="armv")n.armv=s.slice(4);else if(s==="glibc"||s==="musl")n.libc=s;else continue;n.specificity++}return n}}a(IOe,"parseTags");function COe(t,e){return function(r){return!(r==null||r.runtime&&r.runtime!==t&&!CPt(r)||r.abi&&r.abi!==e&&!r.napi||r.uv&&r.uv!==AOe||r.armv&&r.armv!==sX||r.libc&&r.libc!==SOe)}}a(COe,"matchTags");function CPt(t){return t.runtime==="node"&&t.napi}a(CPt,"runtimeAgnostic");function ROe(t){return function(e,r){return e.runtime!==r.runtime?e.runtime===t?-1:1:e.abi!==r.abi?e.abi?-1:1:e.specificity!==r.specificity?e.specificity>r.specificity?-1:1:0}}a(ROe,"compareTags");function RPt(){return!!(process.versions&&process.versions.nw)}a(RPt,"isNwjs");function PPt(){return process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE?!0:typeof window<"u"&&window.process&&window.process.type==="renderer"}a(PPt,"isElectron");function LPt(t){return t==="linux"&&wOe.existsSync("/etc/alpine-release")}a(LPt,"isAlpine");lf.parseTags=IOe;lf.matchTags=COe;lf.compareTags=ROe;lf.parseTuple=kOe;lf.matchTuple=NOe;lf.compareTuples=OOe});var lX=v((hFr,uX)=>{var cX=typeof __webpack_require__=="function"?__non_webpack_require__:require;typeof cX.addon=="function"?uX.exports=cX.addon.bind(cX):uX.exports=LOe()});var dX=v((mFr,DOe)=>{var yr={IMPOSSIBLE_CASE:"Impossible case. Please create issue.",TWEAK_ADD:"The tweak was out of range or the resulted private key is invalid",TWEAK_MUL:"The tweak was out of range or equal to zero",CONTEXT_RANDOMIZE_UNKNOW:"Unknow error on context randomization",SECKEY_INVALID:"Private Key is invalid",PUBKEY_PARSE:"Public Key could not be parsed",PUBKEY_SERIALIZE:"Public Key serialization error",PUBKEY_COMBINE:"The sum of the public keys is not valid",SIG_PARSE:"Signature could not be parsed",SIGN:"The nonce generation function failed, or the private key was invalid",RECOVER:"Public key could not be recover",ECDH:"Scalar was invalid (zero or overflow)"};function su(t,e){if(!t)throw new Error(e)}a(su,"assert");function dr(t,e,r){if(su(e instanceof Uint8Array,`Expected ${t} to be an Uint8Array`),r!==void 0)if(Array.isArray(r)){let n=r.join(", "),i=`Expected ${t} to be an Uint8Array with length [${n}]`;su(r.includes(e.length),i)}else{let n=`Expected ${t} to be an Uint8Array with length ${r}`;su(e.length===r,n)}}a(dr,"isUint8Array");function oy(t){su(s1(t)==="Boolean","Expected compressed to be a Boolean")}a(oy,"isCompressed");function Il(t=r=>new Uint8Array(r),e){return typeof t=="function"&&(t=t(e)),dr("output",t,e),t}a(Il,"getAssertedOutput");function s1(t){return Object.prototype.toString.call(t).slice(8,-1)}a(s1,"toTypeString");DOe.exports=t=>({contextRandomize(e){switch(su(e===null||e instanceof Uint8Array,"Expected seed to be an Uint8Array or null"),e!==null&&dr("seed",e,32),t.contextRandomize(e)){case 1:throw new Error(yr.CONTEXT_RANDOMIZE_UNKNOW)}},privateKeyVerify(e){return dr("private key",e,32),t.privateKeyVerify(e)===0},privateKeyNegate(e){switch(dr("private key",e,32),t.privateKeyNegate(e)){case 0:return e;case 1:throw new Error(yr.IMPOSSIBLE_CASE)}},privateKeyTweakAdd(e,r){switch(dr("private key",e,32),dr("tweak",r,32),t.privateKeyTweakAdd(e,r)){case 0:return e;case 1:throw new Error(yr.TWEAK_ADD)}},privateKeyTweakMul(e,r){switch(dr("private key",e,32),dr("tweak",r,32),t.privateKeyTweakMul(e,r)){case 0:return e;case 1:throw new Error(yr.TWEAK_MUL)}},publicKeyVerify(e){return dr("public key",e,[33,65]),t.publicKeyVerify(e)===0},publicKeyCreate(e,r=!0,n){switch(dr("private key",e,32),oy(r),n=Il(n,r?33:65),t.publicKeyCreate(n,e)){case 0:return n;case 1:throw new Error(yr.SECKEY_INVALID);case 2:throw new Error(yr.PUBKEY_SERIALIZE)}},publicKeyConvert(e,r=!0,n){switch(dr("public key",e,[33,65]),oy(r),n=Il(n,r?33:65),t.publicKeyConvert(n,e)){case 0:return n;case 1:throw new Error(yr.PUBKEY_PARSE);case 2:throw new Error(yr.PUBKEY_SERIALIZE)}},publicKeyNegate(e,r=!0,n){switch(dr("public key",e,[33,65]),oy(r),n=Il(n,r?33:65),t.publicKeyNegate(n,e)){case 0:return n;case 1:throw new Error(yr.PUBKEY_PARSE);case 2:throw new Error(yr.IMPOSSIBLE_CASE);case 3:throw new Error(yr.PUBKEY_SERIALIZE)}},publicKeyCombine(e,r=!0,n){su(Array.isArray(e),"Expected public keys to be an Array"),su(e.length>0,"Expected public keys array will have more than zero items");for(let i of e)dr("public key",i,[33,65]);switch(oy(r),n=Il(n,r?33:65),t.publicKeyCombine(n,e)){case 0:return n;case 1:throw new Error(yr.PUBKEY_PARSE);case 2:throw new Error(yr.PUBKEY_COMBINE);case 3:throw new Error(yr.PUBKEY_SERIALIZE)}},publicKeyTweakAdd(e,r,n=!0,i){switch(dr("public key",e,[33,65]),dr("tweak",r,32),oy(n),i=Il(i,n?33:65),t.publicKeyTweakAdd(i,e,r)){case 0:return i;case 1:throw new Error(yr.PUBKEY_PARSE);case 2:throw new Error(yr.TWEAK_ADD)}},publicKeyTweakMul(e,r,n=!0,i){switch(dr("public key",e,[33,65]),dr("tweak",r,32),oy(n),i=Il(i,n?33:65),t.publicKeyTweakMul(i,e,r)){case 0:return i;case 1:throw new Error(yr.PUBKEY_PARSE);case 2:throw new Error(yr.TWEAK_MUL)}},signatureNormalize(e){switch(dr("signature",e,64),t.signatureNormalize(e)){case 0:return e;case 1:throw new Error(yr.SIG_PARSE)}},signatureExport(e,r){dr("signature",e,64),r=Il(r,72);let n={output:r,outputlen:72};switch(t.signatureExport(n,e)){case 0:return r.slice(0,n.outputlen);case 1:throw new Error(yr.SIG_PARSE);case 2:throw new Error(yr.IMPOSSIBLE_CASE)}},signatureImport(e,r){switch(dr("signature",e),r=Il(r,64),t.signatureImport(r,e)){case 0:return r;case 1:throw new Error(yr.SIG_PARSE);case 2:throw new Error(yr.IMPOSSIBLE_CASE)}},ecdsaSign(e,r,n={},i){dr("message",e,32),dr("private key",r,32),su(s1(n)==="Object","Expected options to be an Object"),n.data!==void 0&&dr("options.data",n.data),n.noncefn!==void 0&&su(s1(n.noncefn)==="Function","Expected options.noncefn to be a Function"),i=Il(i,64);let s={signature:i,recid:null};switch(t.ecdsaSign(s,e,r,n.data,n.noncefn)){case 0:return s;case 1:throw new Error(yr.SIGN);case 2:throw new Error(yr.IMPOSSIBLE_CASE)}},ecdsaVerify(e,r,n){switch(dr("signature",e,64),dr("message",r,32),dr("public key",n,[33,65]),t.ecdsaVerify(e,r,n)){case 0:return!0;case 3:return!1;case 1:throw new Error(yr.SIG_PARSE);case 2:throw new Error(yr.PUBKEY_PARSE)}},ecdsaRecover(e,r,n,i=!0,s){switch(dr("signature",e,64),su(s1(r)==="Number"&&r>=0&&r<=3,"Expected recovery id to be a Number within interval [0, 3]"),dr("message",n,32),oy(i),s=Il(s,i?33:65),t.ecdsaRecover(s,e,r,n)){case 0:return s;case 1:throw new Error(yr.SIG_PARSE);case 2:throw new Error(yr.RECOVER);case 3:throw new Error(yr.IMPOSSIBLE_CASE)}},ecdh(e,r,n={},i){switch(dr("public key",e,[33,65]),dr("private key",r,32),su(s1(n)==="Object","Expected options to be an Object"),n.data!==void 0&&dr("options.data",n.data),n.hashfn!==void 0?(su(s1(n.hashfn)==="Function","Expected options.hashfn to be a Function"),n.xbuf!==void 0&&dr("options.xbuf",n.xbuf,32),n.ybuf!==void 0&&dr("options.ybuf",n.ybuf,32),dr("output",i)):i=Il(i,32),t.ecdh(i,e,r,n.data,n.hashfn,n.xbuf,n.ybuf)){case 0:return i;case 1:throw new Error(yr.PUBKEY_PARSE);case 2:throw new Error(yr.ECDH)}}})});var MOe=v((yFr,BOe)=>{var DPt=lX()(__dirname);BOe.exports=dX()(new DPt.Secp256k1)});var FOe=v((vFr,BPt)=>{BPt.exports={name:"elliptic",version:"6.6.1",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny <fedor@indutny.com>",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}});var Cl=v((UOe,fX)=>{(function(t,e){"use strict";function r(L,b){if(!L)throw new Error(b||"Assertion failed")}a(r,"assert");function n(L,b){L.super_=b;var T=a(function(){},"TempCtor");T.prototype=b.prototype,L.prototype=new T,L.prototype.constructor=L}a(n,"inherits");function i(L,b,T){if(i.isBN(L))return L;this.negative=0,this.words=null,this.length=0,this.red=null,L!==null&&((b==="le"||b==="be")&&(T=b,b=10),this._init(L||0,b||10,T||"be"))}a(i,"BN"),typeof t=="object"?t.exports=i:e.BN=i,i.BN=i,i.wordSize=26;var s;try{typeof window<"u"&&typeof window.Buffer<"u"?s=window.Buffer:s=require("buffer").Buffer}catch{}i.isBN=a(function(b){return b instanceof i?!0:b!==null&&typeof b=="object"&&b.constructor.wordSize===i.wordSize&&Array.isArray(b.words)},"isBN"),i.max=a(function(b,T){return b.cmp(T)>0?b:T},"max"),i.min=a(function(b,T){return b.cmp(T)<0?b:T},"min"),i.prototype._init=a(function(b,T,k){if(typeof b=="number")return this._initNumber(b,T,k);if(typeof b=="object")return this._initArray(b,T,k);T==="hex"&&(T=16),r(T===(T|0)&&T>=2&&T<=36),b=b.toString().replace(/\s+/g,"");var S=0;b[0]==="-"&&(S++,this.negative=1),S<b.length&&(T===16?this._parseHex(b,S,k):(this._parseBase(b,T,S),k==="le"&&this._initArray(this.toArray(),T,k)))},"init"),i.prototype._initNumber=a(function(b,T,k){b<0&&(this.negative=1,b=-b),b<67108864?(this.words=[b&67108863],this.length=1):b<4503599627370496?(this.words=[b&67108863,b/67108864&67108863],this.length=2):(r(b<9007199254740992),this.words=[b&67108863,b/67108864&67108863,1],this.length=3),k==="le"&&this._initArray(this.toArray(),T,k)},"_initNumber"),i.prototype._initArray=a(function(b,T,k){if(r(typeof b.length=="number"),b.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(b.length/3),this.words=new Array(this.length);for(var S=0;S<this.length;S++)this.words[S]=0;var N,P,F=0;if(k==="be")for(S=b.length-1,N=0;S>=0;S-=3)P=b[S]|b[S-1]<<8|b[S-2]<<16,this.words[N]|=P<<F&67108863,this.words[N+1]=P>>>26-F&67108863,F+=24,F>=26&&(F-=26,N++);else if(k==="le")for(S=0,N=0;S<b.length;S+=3)P=b[S]|b[S+1]<<8|b[S+2]<<16,this.words[N]|=P<<F&67108863,this.words[N+1]=P>>>26-F&67108863,F+=24,F>=26&&(F-=26,N++);return this.strip()},"_initArray");function o(L,b){var T=L.charCodeAt(b);return T>=65&&T<=70?T-55:T>=97&&T<=102?T-87:T-48&15}a(o,"parseHex4Bits");function c(L,b,T){var k=o(L,T);return T-1>=b&&(k|=o(L,T-1)<<4),k}a(c,"parseHexByte"),i.prototype._parseHex=a(function(b,T,k){this.length=Math.ceil((b.length-T)/6),this.words=new Array(this.length);for(var S=0;S<this.length;S++)this.words[S]=0;var N=0,P=0,F;if(k==="be")for(S=b.length-1;S>=T;S-=2)F=c(b,T,S)<<N,this.words[P]|=F&67108863,N>=18?(N-=18,P+=1,this.words[P]|=F>>>26):N+=8;else{var D=b.length-T;for(S=D%2===0?T+1:T;S<b.length;S+=2)F=c(b,T,S)<<N,this.words[P]|=F&67108863,N>=18?(N-=18,P+=1,this.words[P]|=F>>>26):N+=8}this.strip()},"_parseHex");function u(L,b,T,k){for(var S=0,N=Math.min(L.length,T),P=b;P<N;P++){var F=L.charCodeAt(P)-48;S*=k,F>=49?S+=F-49+10:F>=17?S+=F-17+10:S+=F}return S}a(u,"parseBase"),i.prototype._parseBase=a(function(b,T,k){this.words=[0],this.length=1;for(var S=0,N=1;N<=67108863;N*=T)S++;S--,N=N/T|0;for(var P=b.length-k,F=P%S,D=Math.min(P,P-F)+k,x=0,O=k;O<D;O+=S)x=u(b,O,O+S,T),this.imuln(N),this.words[0]+x<67108864?this.words[0]+=x:this._iaddn(x);if(F!==0){var G=1;for(x=u(b,O,b.length,T),O=0;O<F;O++)G*=T;this.imuln(G),this.words[0]+x<67108864?this.words[0]+=x:this._iaddn(x)}this.strip()},"_parseBase"),i.prototype.copy=a(function(b){b.words=new Array(this.length);for(var T=0;T<this.length;T++)b.words[T]=this.words[T];b.length=this.length,b.negative=this.negative,b.red=this.red},"copy"),i.prototype.clone=a(function(){var b=new i(null);return this.copy(b),b},"clone"),i.prototype._expand=a(function(b){for(;this.length<b;)this.words[this.length++]=0;return this},"_expand"),i.prototype.strip=a(function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},"strip"),i.prototype._normSign=a(function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},"_normSign"),i.prototype.inspect=a(function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"},"inspect");var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=a(function(b,T){b=b||10,T=T|0||1;var k;if(b===16||b==="hex"){k="";for(var S=0,N=0,P=0;P<this.length;P++){var F=this.words[P],D=((F<<S|N)&16777215).toString(16);N=F>>>24-S&16777215,S+=2,S>=26&&(S-=26,P--),N!==0||P!==this.length-1?k=l[6-D.length]+D+k:k=D+k}for(N!==0&&(k=N.toString(16)+k);k.length%T!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}if(b===(b|0)&&b>=2&&b<=36){var x=d[b],O=f[b];k="";var G=this.clone();for(G.negative=0;!G.isZero();){var M=G.modn(O).toString(b);G=G.idivn(O),G.isZero()?k=M+k:k=l[x-M.length]+M+k}for(this.isZero()&&(k="0"+k);k.length%T!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}r(!1,"Base should be between 2 and 36")},"toString"),i.prototype.toNumber=a(function(){var b=this.words[0];return this.length===2?b+=this.words[1]*67108864:this.length===3&&this.words[2]===1?b+=4503599627370496+this.words[1]*67108864:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-b:b},"toNumber"),i.prototype.toJSON=a(function(){return this.toString(16)},"toJSON"),i.prototype.toBuffer=a(function(b,T){return r(typeof s<"u"),this.toArrayLike(s,b,T)},"toBuffer"),i.prototype.toArray=a(function(b,T){return this.toArrayLike(Array,b,T)},"toArray"),i.prototype.toArrayLike=a(function(b,T,k){var S=this.byteLength(),N=k||Math.max(1,S);r(S<=N,"byte array longer than desired length"),r(N>0,"Requested array length <= 0"),this.strip();var P=T==="le",F=new b(N),D,x,O=this.clone();if(P){for(x=0;!O.isZero();x++)D=O.andln(255),O.iushrn(8),F[x]=D;for(;x<N;x++)F[x]=0}else{for(x=0;x<N-S;x++)F[x]=0;for(x=0;!O.isZero();x++)D=O.andln(255),O.iushrn(8),F[N-x-1]=D}return F},"toArrayLike"),Math.clz32?i.prototype._countBits=a(function(b){return 32-Math.clz32(b)},"_countBits"):i.prototype._countBits=a(function(b){var T=b,k=0;return T>=4096&&(k+=13,T>>>=13),T>=64&&(k+=7,T>>>=7),T>=8&&(k+=4,T>>>=4),T>=2&&(k+=2,T>>>=2),k+T},"_countBits"),i.prototype._zeroBits=a(function(b){if(b===0)return 26;var T=b,k=0;return(T&8191)===0&&(k+=13,T>>>=13),(T&127)===0&&(k+=7,T>>>=7),(T&15)===0&&(k+=4,T>>>=4),(T&3)===0&&(k+=2,T>>>=2),(T&1)===0&&k++,k},"_zeroBits"),i.prototype.bitLength=a(function(){var b=this.words[this.length-1],T=this._countBits(b);return(this.length-1)*26+T},"bitLength");function p(L){for(var b=new Array(L.bitLength()),T=0;T<b.length;T++){var k=T/26|0,S=T%26;b[T]=(L.words[k]&1<<S)>>>S}return b}a(p,"toBitArray"),i.prototype.zeroBits=a(function(){if(this.isZero())return 0;for(var b=0,T=0;T<this.length;T++){var k=this._zeroBits(this.words[T]);if(b+=k,k!==26)break}return b},"zeroBits"),i.prototype.byteLength=a(function(){return Math.ceil(this.bitLength()/8)},"byteLength"),i.prototype.toTwos=a(function(b){return this.negative!==0?this.abs().inotn(b).iaddn(1):this.clone()},"toTwos"),i.prototype.fromTwos=a(function(b){return this.testn(b-1)?this.notn(b).iaddn(1).ineg():this.clone()},"fromTwos"),i.prototype.isNeg=a(function(){return this.negative!==0},"isNeg"),i.prototype.neg=a(function(){return this.clone().ineg()},"neg"),i.prototype.ineg=a(function(){return this.isZero()||(this.negative^=1),this},"ineg"),i.prototype.iuor=a(function(b){for(;this.length<b.length;)this.words[this.length++]=0;for(var T=0;T<b.length;T++)this.words[T]=this.words[T]|b.words[T];return this.strip()},"iuor"),i.prototype.ior=a(function(b){return r((this.negative|b.negative)===0),this.iuor(b)},"ior"),i.prototype.or=a(function(b){return this.length>b.length?this.clone().ior(b):b.clone().ior(this)},"or"),i.prototype.uor=a(function(b){return this.length>b.length?this.clone().iuor(b):b.clone().iuor(this)},"uor"),i.prototype.iuand=a(function(b){var T;this.length>b.length?T=b:T=this;for(var k=0;k<T.length;k++)this.words[k]=this.words[k]&b.words[k];return this.length=T.length,this.strip()},"iuand"),i.prototype.iand=a(function(b){return r((this.negative|b.negative)===0),this.iuand(b)},"iand"),i.prototype.and=a(function(b){return this.length>b.length?this.clone().iand(b):b.clone().iand(this)},"and"),i.prototype.uand=a(function(b){return this.length>b.length?this.clone().iuand(b):b.clone().iuand(this)},"uand"),i.prototype.iuxor=a(function(b){var T,k;this.length>b.length?(T=this,k=b):(T=b,k=this);for(var S=0;S<k.length;S++)this.words[S]=T.words[S]^k.words[S];if(this!==T)for(;S<T.length;S++)this.words[S]=T.words[S];return this.length=T.length,this.strip()},"iuxor"),i.prototype.ixor=a(function(b){return r((this.negative|b.negative)===0),this.iuxor(b)},"ixor"),i.prototype.xor=a(function(b){return this.length>b.length?this.clone().ixor(b):b.clone().ixor(this)},"xor"),i.prototype.uxor=a(function(b){return this.length>b.length?this.clone().iuxor(b):b.clone().iuxor(this)},"uxor"),i.prototype.inotn=a(function(b){r(typeof b=="number"&&b>=0);var T=Math.ceil(b/26)|0,k=b%26;this._expand(T),k>0&&T--;for(var S=0;S<T;S++)this.words[S]=~this.words[S]&67108863;return k>0&&(this.words[S]=~this.words[S]&67108863>>26-k),this.strip()},"inotn"),i.prototype.notn=a(function(b){return this.clone().inotn(b)},"notn"),i.prototype.setn=a(function(b,T){r(typeof b=="number"&&b>=0);var k=b/26|0,S=b%26;return this._expand(k+1),T?this.words[k]=this.words[k]|1<<S:this.words[k]=this.words[k]&~(1<<S),this.strip()},"setn"),i.prototype.iadd=a(function(b){var T;if(this.negative!==0&&b.negative===0)return this.negative=0,T=this.isub(b),this.negative^=1,this._normSign();if(this.negative===0&&b.negative!==0)return b.negative=0,T=this.isub(b),b.negative=1,T._normSign();var k,S;this.length>b.length?(k=this,S=b):(k=b,S=this);for(var N=0,P=0;P<S.length;P++)T=(k.words[P]|0)+(S.words[P]|0)+N,this.words[P]=T&67108863,N=T>>>26;for(;N!==0&&P<k.length;P++)T=(k.words[P]|0)+N,this.words[P]=T&67108863,N=T>>>26;if(this.length=k.length,N!==0)this.words[this.length]=N,this.length++;else if(k!==this)for(;P<k.length;P++)this.words[P]=k.words[P];return this},"iadd"),i.prototype.add=a(function(b){var T;return b.negative!==0&&this.negative===0?(b.negative=0,T=this.sub(b),b.negative^=1,T):b.negative===0&&this.negative!==0?(this.negative=0,T=b.sub(this),this.negative=1,T):this.length>b.length?this.clone().iadd(b):b.clone().iadd(this)},"add"),i.prototype.isub=a(function(b){if(b.negative!==0){b.negative=0;var T=this.iadd(b);return b.negative=1,T._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(b),this.negative=1,this._normSign();var k=this.cmp(b);if(k===0)return this.negative=0,this.length=1,this.words[0]=0,this;var S,N;k>0?(S=this,N=b):(S=b,N=this);for(var P=0,F=0;F<N.length;F++)T=(S.words[F]|0)-(N.words[F]|0)+P,P=T>>26,this.words[F]=T&67108863;for(;P!==0&&F<S.length;F++)T=(S.words[F]|0)+P,P=T>>26,this.words[F]=T&67108863;if(P===0&&F<S.length&&S!==this)for(;F<S.length;F++)this.words[F]=S.words[F];return this.length=Math.max(this.length,F),S!==this&&(this.negative=1),this.strip()},"isub"),i.prototype.sub=a(function(b){return this.clone().isub(b)},"sub");function _(L,b,T){T.negative=b.negative^L.negative;var k=L.length+b.length|0;T.length=k,k=k-1|0;var S=L.words[0]|0,N=b.words[0]|0,P=S*N,F=P&67108863,D=P/67108864|0;T.words[0]=F;for(var x=1;x<k;x++){for(var O=D>>>26,G=D&67108863,M=Math.min(x,b.length-1),J=Math.max(0,x-L.length+1);J<=M;J++){var X=x-J|0;S=L.words[X]|0,N=b.words[J]|0,P=S*N+G,O+=P/67108864|0,G=P&67108863}T.words[x]=G|0,D=O|0}return D!==0?T.words[x]=D|0:T.length--,T.strip()}a(_,"smallMulTo");var h=a(function(b,T,k){var S=b.words,N=T.words,P=k.words,F=0,D,x,O,G=S[0]|0,M=G&8191,J=G>>>13,X=S[1]|0,Z=X&8191,ae=X>>>13,pe=S[2]|0,he=pe&8191,xe=pe>>>13,Be=S[3]|0,Oe=Be&8191,re=Be>>>13,ce=S[4]|0,le=ce&8191,ge=ce>>>13,Ee=S[5]|0,Ie=Ee&8191,Ge=Ee>>>13,or=S[6]|0,Qe=or&8191,zt=or>>>13,yd=S[7]|0,Dr=yd&8191,Br=yd>>>13,vd=S[8]|0,Kn=vd&8191,On=vd>>>13,$m=S[9]|0,Mr=$m&8191,Ur=$m>>>13,Yv=N[0]|0,In=Yv&8191,Cn=Yv>>>13,Zv=N[1]|0,Rn=Zv&8191,Pn=Zv>>>13,eb=N[2]|0,Ln=eb&8191,zn=eb>>>13,G_=N[3]|0,Jn=G_&8191,Wn=G_>>>13,tb=N[4]|0,Dn=tb&8191,Xn=tb>>>13,rb=N[5]|0,Bn=rb&8191,Qn=rb>>>13,Gm=N[6]|0,Jt=Gm&8191,Ar=Gm>>>13,Vm=N[7]|0,Yn=Vm&8191,pi=Vm>>>13,xN=N[8]|0,_i=xN&8191,hi=xN>>>13,wN=N[9]|0,mi=wN&8191,gi=wN>>>13;k.negative=b.negative^T.negative,k.length=19,D=Math.imul(M,In),x=Math.imul(M,Cn),x=x+Math.imul(J,In)|0,O=Math.imul(J,Cn);var C=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(C>>>26)|0,C&=67108863,D=Math.imul(Z,In),x=Math.imul(Z,Cn),x=x+Math.imul(ae,In)|0,O=Math.imul(ae,Cn),D=D+Math.imul(M,Rn)|0,x=x+Math.imul(M,Pn)|0,x=x+Math.imul(J,Rn)|0,O=O+Math.imul(J,Pn)|0;var q=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(q>>>26)|0,q&=67108863,D=Math.imul(he,In),x=Math.imul(he,Cn),x=x+Math.imul(xe,In)|0,O=Math.imul(xe,Cn),D=D+Math.imul(Z,Rn)|0,x=x+Math.imul(Z,Pn)|0,x=x+Math.imul(ae,Rn)|0,O=O+Math.imul(ae,Pn)|0,D=D+Math.imul(M,Ln)|0,x=x+Math.imul(M,zn)|0,x=x+Math.imul(J,Ln)|0,O=O+Math.imul(J,zn)|0;var j=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(j>>>26)|0,j&=67108863,D=Math.imul(Oe,In),x=Math.imul(Oe,Cn),x=x+Math.imul(re,In)|0,O=Math.imul(re,Cn),D=D+Math.imul(he,Rn)|0,x=x+Math.imul(he,Pn)|0,x=x+Math.imul(xe,Rn)|0,O=O+Math.imul(xe,Pn)|0,D=D+Math.imul(Z,Ln)|0,x=x+Math.imul(Z,zn)|0,x=x+Math.imul(ae,Ln)|0,O=O+Math.imul(ae,zn)|0,D=D+Math.imul(M,Jn)|0,x=x+Math.imul(M,Wn)|0,x=x+Math.imul(J,Jn)|0,O=O+Math.imul(J,Wn)|0;var V=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(V>>>26)|0,V&=67108863,D=Math.imul(le,In),x=Math.imul(le,Cn),x=x+Math.imul(ge,In)|0,O=Math.imul(ge,Cn),D=D+Math.imul(Oe,Rn)|0,x=x+Math.imul(Oe,Pn)|0,x=x+Math.imul(re,Rn)|0,O=O+Math.imul(re,Pn)|0,D=D+Math.imul(he,Ln)|0,x=x+Math.imul(he,zn)|0,x=x+Math.imul(xe,Ln)|0,O=O+Math.imul(xe,zn)|0,D=D+Math.imul(Z,Jn)|0,x=x+Math.imul(Z,Wn)|0,x=x+Math.imul(ae,Jn)|0,O=O+Math.imul(ae,Wn)|0,D=D+Math.imul(M,Dn)|0,x=x+Math.imul(M,Xn)|0,x=x+Math.imul(J,Dn)|0,O=O+Math.imul(J,Xn)|0;var W=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(W>>>26)|0,W&=67108863,D=Math.imul(Ie,In),x=Math.imul(Ie,Cn),x=x+Math.imul(Ge,In)|0,O=Math.imul(Ge,Cn),D=D+Math.imul(le,Rn)|0,x=x+Math.imul(le,Pn)|0,x=x+Math.imul(ge,Rn)|0,O=O+Math.imul(ge,Pn)|0,D=D+Math.imul(Oe,Ln)|0,x=x+Math.imul(Oe,zn)|0,x=x+Math.imul(re,Ln)|0,O=O+Math.imul(re,zn)|0,D=D+Math.imul(he,Jn)|0,x=x+Math.imul(he,Wn)|0,x=x+Math.imul(xe,Jn)|0,O=O+Math.imul(xe,Wn)|0,D=D+Math.imul(Z,Dn)|0,x=x+Math.imul(Z,Xn)|0,x=x+Math.imul(ae,Dn)|0,O=O+Math.imul(ae,Xn)|0,D=D+Math.imul(M,Bn)|0,x=x+Math.imul(M,Qn)|0,x=x+Math.imul(J,Bn)|0,O=O+Math.imul(J,Qn)|0;var z=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(z>>>26)|0,z&=67108863,D=Math.imul(Qe,In),x=Math.imul(Qe,Cn),x=x+Math.imul(zt,In)|0,O=Math.imul(zt,Cn),D=D+Math.imul(Ie,Rn)|0,x=x+Math.imul(Ie,Pn)|0,x=x+Math.imul(Ge,Rn)|0,O=O+Math.imul(Ge,Pn)|0,D=D+Math.imul(le,Ln)|0,x=x+Math.imul(le,zn)|0,x=x+Math.imul(ge,Ln)|0,O=O+Math.imul(ge,zn)|0,D=D+Math.imul(Oe,Jn)|0,x=x+Math.imul(Oe,Wn)|0,x=x+Math.imul(re,Jn)|0,O=O+Math.imul(re,Wn)|0,D=D+Math.imul(he,Dn)|0,x=x+Math.imul(he,Xn)|0,x=x+Math.imul(xe,Dn)|0,O=O+Math.imul(xe,Xn)|0,D=D+Math.imul(Z,Bn)|0,x=x+Math.imul(Z,Qn)|0,x=x+Math.imul(ae,Bn)|0,O=O+Math.imul(ae,Qn)|0,D=D+Math.imul(M,Jt)|0,x=x+Math.imul(M,Ar)|0,x=x+Math.imul(J,Jt)|0,O=O+Math.imul(J,Ar)|0;var Q=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(Q>>>26)|0,Q&=67108863,D=Math.imul(Dr,In),x=Math.imul(Dr,Cn),x=x+Math.imul(Br,In)|0,O=Math.imul(Br,Cn),D=D+Math.imul(Qe,Rn)|0,x=x+Math.imul(Qe,Pn)|0,x=x+Math.imul(zt,Rn)|0,O=O+Math.imul(zt,Pn)|0,D=D+Math.imul(Ie,Ln)|0,x=x+Math.imul(Ie,zn)|0,x=x+Math.imul(Ge,Ln)|0,O=O+Math.imul(Ge,zn)|0,D=D+Math.imul(le,Jn)|0,x=x+Math.imul(le,Wn)|0,x=x+Math.imul(ge,Jn)|0,O=O+Math.imul(ge,Wn)|0,D=D+Math.imul(Oe,Dn)|0,x=x+Math.imul(Oe,Xn)|0,x=x+Math.imul(re,Dn)|0,O=O+Math.imul(re,Xn)|0,D=D+Math.imul(he,Bn)|0,x=x+Math.imul(he,Qn)|0,x=x+Math.imul(xe,Bn)|0,O=O+Math.imul(xe,Qn)|0,D=D+Math.imul(Z,Jt)|0,x=x+Math.imul(Z,Ar)|0,x=x+Math.imul(ae,Jt)|0,O=O+Math.imul(ae,Ar)|0,D=D+Math.imul(M,Yn)|0,x=x+Math.imul(M,pi)|0,x=x+Math.imul(J,Yn)|0,O=O+Math.imul(J,pi)|0;var ee=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(ee>>>26)|0,ee&=67108863,D=Math.imul(Kn,In),x=Math.imul(Kn,Cn),x=x+Math.imul(On,In)|0,O=Math.imul(On,Cn),D=D+Math.imul(Dr,Rn)|0,x=x+Math.imul(Dr,Pn)|0,x=x+Math.imul(Br,Rn)|0,O=O+Math.imul(Br,Pn)|0,D=D+Math.imul(Qe,Ln)|0,x=x+Math.imul(Qe,zn)|0,x=x+Math.imul(zt,Ln)|0,O=O+Math.imul(zt,zn)|0,D=D+Math.imul(Ie,Jn)|0,x=x+Math.imul(Ie,Wn)|0,x=x+Math.imul(Ge,Jn)|0,O=O+Math.imul(Ge,Wn)|0,D=D+Math.imul(le,Dn)|0,x=x+Math.imul(le,Xn)|0,x=x+Math.imul(ge,Dn)|0,O=O+Math.imul(ge,Xn)|0,D=D+Math.imul(Oe,Bn)|0,x=x+Math.imul(Oe,Qn)|0,x=x+Math.imul(re,Bn)|0,O=O+Math.imul(re,Qn)|0,D=D+Math.imul(he,Jt)|0,x=x+Math.imul(he,Ar)|0,x=x+Math.imul(xe,Jt)|0,O=O+Math.imul(xe,Ar)|0,D=D+Math.imul(Z,Yn)|0,x=x+Math.imul(Z,pi)|0,x=x+Math.imul(ae,Yn)|0,O=O+Math.imul(ae,pi)|0,D=D+Math.imul(M,_i)|0,x=x+Math.imul(M,hi)|0,x=x+Math.imul(J,_i)|0,O=O+Math.imul(J,hi)|0;var ne=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(ne>>>26)|0,ne&=67108863,D=Math.imul(Mr,In),x=Math.imul(Mr,Cn),x=x+Math.imul(Ur,In)|0,O=Math.imul(Ur,Cn),D=D+Math.imul(Kn,Rn)|0,x=x+Math.imul(Kn,Pn)|0,x=x+Math.imul(On,Rn)|0,O=O+Math.imul(On,Pn)|0,D=D+Math.imul(Dr,Ln)|0,x=x+Math.imul(Dr,zn)|0,x=x+Math.imul(Br,Ln)|0,O=O+Math.imul(Br,zn)|0,D=D+Math.imul(Qe,Jn)|0,x=x+Math.imul(Qe,Wn)|0,x=x+Math.imul(zt,Jn)|0,O=O+Math.imul(zt,Wn)|0,D=D+Math.imul(Ie,Dn)|0,x=x+Math.imul(Ie,Xn)|0,x=x+Math.imul(Ge,Dn)|0,O=O+Math.imul(Ge,Xn)|0,D=D+Math.imul(le,Bn)|0,x=x+Math.imul(le,Qn)|0,x=x+Math.imul(ge,Bn)|0,O=O+Math.imul(ge,Qn)|0,D=D+Math.imul(Oe,Jt)|0,x=x+Math.imul(Oe,Ar)|0,x=x+Math.imul(re,Jt)|0,O=O+Math.imul(re,Ar)|0,D=D+Math.imul(he,Yn)|0,x=x+Math.imul(he,pi)|0,x=x+Math.imul(xe,Yn)|0,O=O+Math.imul(xe,pi)|0,D=D+Math.imul(Z,_i)|0,x=x+Math.imul(Z,hi)|0,x=x+Math.imul(ae,_i)|0,O=O+Math.imul(ae,hi)|0,D=D+Math.imul(M,mi)|0,x=x+Math.imul(M,gi)|0,x=x+Math.imul(J,mi)|0,O=O+Math.imul(J,gi)|0;var te=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(te>>>26)|0,te&=67108863,D=Math.imul(Mr,Rn),x=Math.imul(Mr,Pn),x=x+Math.imul(Ur,Rn)|0,O=Math.imul(Ur,Pn),D=D+Math.imul(Kn,Ln)|0,x=x+Math.imul(Kn,zn)|0,x=x+Math.imul(On,Ln)|0,O=O+Math.imul(On,zn)|0,D=D+Math.imul(Dr,Jn)|0,x=x+Math.imul(Dr,Wn)|0,x=x+Math.imul(Br,Jn)|0,O=O+Math.imul(Br,Wn)|0,D=D+Math.imul(Qe,Dn)|0,x=x+Math.imul(Qe,Xn)|0,x=x+Math.imul(zt,Dn)|0,O=O+Math.imul(zt,Xn)|0,D=D+Math.imul(Ie,Bn)|0,x=x+Math.imul(Ie,Qn)|0,x=x+Math.imul(Ge,Bn)|0,O=O+Math.imul(Ge,Qn)|0,D=D+Math.imul(le,Jt)|0,x=x+Math.imul(le,Ar)|0,x=x+Math.imul(ge,Jt)|0,O=O+Math.imul(ge,Ar)|0,D=D+Math.imul(Oe,Yn)|0,x=x+Math.imul(Oe,pi)|0,x=x+Math.imul(re,Yn)|0,O=O+Math.imul(re,pi)|0,D=D+Math.imul(he,_i)|0,x=x+Math.imul(he,hi)|0,x=x+Math.imul(xe,_i)|0,O=O+Math.imul(xe,hi)|0,D=D+Math.imul(Z,mi)|0,x=x+Math.imul(Z,gi)|0,x=x+Math.imul(ae,mi)|0,O=O+Math.imul(ae,gi)|0;var se=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(se>>>26)|0,se&=67108863,D=Math.imul(Mr,Ln),x=Math.imul(Mr,zn),x=x+Math.imul(Ur,Ln)|0,O=Math.imul(Ur,zn),D=D+Math.imul(Kn,Jn)|0,x=x+Math.imul(Kn,Wn)|0,x=x+Math.imul(On,Jn)|0,O=O+Math.imul(On,Wn)|0,D=D+Math.imul(Dr,Dn)|0,x=x+Math.imul(Dr,Xn)|0,x=x+Math.imul(Br,Dn)|0,O=O+Math.imul(Br,Xn)|0,D=D+Math.imul(Qe,Bn)|0,x=x+Math.imul(Qe,Qn)|0,x=x+Math.imul(zt,Bn)|0,O=O+Math.imul(zt,Qn)|0,D=D+Math.imul(Ie,Jt)|0,x=x+Math.imul(Ie,Ar)|0,x=x+Math.imul(Ge,Jt)|0,O=O+Math.imul(Ge,Ar)|0,D=D+Math.imul(le,Yn)|0,x=x+Math.imul(le,pi)|0,x=x+Math.imul(ge,Yn)|0,O=O+Math.imul(ge,pi)|0,D=D+Math.imul(Oe,_i)|0,x=x+Math.imul(Oe,hi)|0,x=x+Math.imul(re,_i)|0,O=O+Math.imul(re,hi)|0,D=D+Math.imul(he,mi)|0,x=x+Math.imul(he,gi)|0,x=x+Math.imul(xe,mi)|0,O=O+Math.imul(xe,gi)|0;var fe=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(fe>>>26)|0,fe&=67108863,D=Math.imul(Mr,Jn),x=Math.imul(Mr,Wn),x=x+Math.imul(Ur,Jn)|0,O=Math.imul(Ur,Wn),D=D+Math.imul(Kn,Dn)|0,x=x+Math.imul(Kn,Xn)|0,x=x+Math.imul(On,Dn)|0,O=O+Math.imul(On,Xn)|0,D=D+Math.imul(Dr,Bn)|0,x=x+Math.imul(Dr,Qn)|0,x=x+Math.imul(Br,Bn)|0,O=O+Math.imul(Br,Qn)|0,D=D+Math.imul(Qe,Jt)|0,x=x+Math.imul(Qe,Ar)|0,x=x+Math.imul(zt,Jt)|0,O=O+Math.imul(zt,Ar)|0,D=D+Math.imul(Ie,Yn)|0,x=x+Math.imul(Ie,pi)|0,x=x+Math.imul(Ge,Yn)|0,O=O+Math.imul(Ge,pi)|0,D=D+Math.imul(le,_i)|0,x=x+Math.imul(le,hi)|0,x=x+Math.imul(ge,_i)|0,O=O+Math.imul(ge,hi)|0,D=D+Math.imul(Oe,mi)|0,x=x+Math.imul(Oe,gi)|0,x=x+Math.imul(re,mi)|0,O=O+Math.imul(re,gi)|0;var _e=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(_e>>>26)|0,_e&=67108863,D=Math.imul(Mr,Dn),x=Math.imul(Mr,Xn),x=x+Math.imul(Ur,Dn)|0,O=Math.imul(Ur,Xn),D=D+Math.imul(Kn,Bn)|0,x=x+Math.imul(Kn,Qn)|0,x=x+Math.imul(On,Bn)|0,O=O+Math.imul(On,Qn)|0,D=D+Math.imul(Dr,Jt)|0,x=x+Math.imul(Dr,Ar)|0,x=x+Math.imul(Br,Jt)|0,O=O+Math.imul(Br,Ar)|0,D=D+Math.imul(Qe,Yn)|0,x=x+Math.imul(Qe,pi)|0,x=x+Math.imul(zt,Yn)|0,O=O+Math.imul(zt,pi)|0,D=D+Math.imul(Ie,_i)|0,x=x+Math.imul(Ie,hi)|0,x=x+Math.imul(Ge,_i)|0,O=O+Math.imul(Ge,hi)|0,D=D+Math.imul(le,mi)|0,x=x+Math.imul(le,gi)|0,x=x+Math.imul(ge,mi)|0,O=O+Math.imul(ge,gi)|0;var qe=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(qe>>>26)|0,qe&=67108863,D=Math.imul(Mr,Bn),x=Math.imul(Mr,Qn),x=x+Math.imul(Ur,Bn)|0,O=Math.imul(Ur,Qn),D=D+Math.imul(Kn,Jt)|0,x=x+Math.imul(Kn,Ar)|0,x=x+Math.imul(On,Jt)|0,O=O+Math.imul(On,Ar)|0,D=D+Math.imul(Dr,Yn)|0,x=x+Math.imul(Dr,pi)|0,x=x+Math.imul(Br,Yn)|0,O=O+Math.imul(Br,pi)|0,D=D+Math.imul(Qe,_i)|0,x=x+Math.imul(Qe,hi)|0,x=x+Math.imul(zt,_i)|0,O=O+Math.imul(zt,hi)|0,D=D+Math.imul(Ie,mi)|0,x=x+Math.imul(Ie,gi)|0,x=x+Math.imul(Ge,mi)|0,O=O+Math.imul(Ge,gi)|0;var $t=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+($t>>>26)|0,$t&=67108863,D=Math.imul(Mr,Jt),x=Math.imul(Mr,Ar),x=x+Math.imul(Ur,Jt)|0,O=Math.imul(Ur,Ar),D=D+Math.imul(Kn,Yn)|0,x=x+Math.imul(Kn,pi)|0,x=x+Math.imul(On,Yn)|0,O=O+Math.imul(On,pi)|0,D=D+Math.imul(Dr,_i)|0,x=x+Math.imul(Dr,hi)|0,x=x+Math.imul(Br,_i)|0,O=O+Math.imul(Br,hi)|0,D=D+Math.imul(Qe,mi)|0,x=x+Math.imul(Qe,gi)|0,x=x+Math.imul(zt,mi)|0,O=O+Math.imul(zt,gi)|0;var rt=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(rt>>>26)|0,rt&=67108863,D=Math.imul(Mr,Yn),x=Math.imul(Mr,pi),x=x+Math.imul(Ur,Yn)|0,O=Math.imul(Ur,pi),D=D+Math.imul(Kn,_i)|0,x=x+Math.imul(Kn,hi)|0,x=x+Math.imul(On,_i)|0,O=O+Math.imul(On,hi)|0,D=D+Math.imul(Dr,mi)|0,x=x+Math.imul(Dr,gi)|0,x=x+Math.imul(Br,mi)|0,O=O+Math.imul(Br,gi)|0;var la=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(la>>>26)|0,la&=67108863,D=Math.imul(Mr,_i),x=Math.imul(Mr,hi),x=x+Math.imul(Ur,_i)|0,O=Math.imul(Ur,hi),D=D+Math.imul(Kn,mi)|0,x=x+Math.imul(Kn,gi)|0,x=x+Math.imul(On,mi)|0,O=O+Math.imul(On,gi)|0;var Jr=(F+D|0)+((x&8191)<<13)|0;F=(O+(x>>>13)|0)+(Jr>>>26)|0,Jr&=67108863,D=Math.imul(Mr,mi),x=Math.imul(Mr,gi),x=x+Math.imul(Ur,mi)|0,O=Math.imul(Ur,gi);var Ms=(F+D|0)+((x&8191)<<13)|0;return F=(O+(x>>>13)|0)+(Ms>>>26)|0,Ms&=67108863,P[0]=C,P[1]=q,P[2]=j,P[3]=V,P[4]=W,P[5]=z,P[6]=Q,P[7]=ee,P[8]=ne,P[9]=te,P[10]=se,P[11]=fe,P[12]=_e,P[13]=qe,P[14]=$t,P[15]=rt,P[16]=la,P[17]=Jr,P[18]=Ms,F!==0&&(P[19]=F,k.length++),k},"comb10MulTo");Math.imul||(h=_);function m(L,b,T){T.negative=b.negative^L.negative,T.length=L.length+b.length;for(var k=0,S=0,N=0;N<T.length-1;N++){var P=S;S=0;for(var F=k&67108863,D=Math.min(N,b.length-1),x=Math.max(0,N-L.length+1);x<=D;x++){var O=N-x,G=L.words[O]|0,M=b.words[x]|0,J=G*M,X=J&67108863;P=P+(J/67108864|0)|0,X=X+F|0,F=X&67108863,P=P+(X>>>26)|0,S+=P>>>26,P&=67108863}T.words[N]=F,k=P,P=S}return k!==0?T.words[N]=k:T.length--,T.strip()}a(m,"bigMulTo");function g(L,b,T){var k=new y;return k.mulp(L,b,T)}a(g,"jumboMulTo"),i.prototype.mulTo=a(function(b,T){var k,S=this.length+b.length;return this.length===10&&b.length===10?k=h(this,b,T):S<63?k=_(this,b,T):S<1024?k=m(this,b,T):k=g(this,b,T),k},"mulTo");function y(L,b){this.x=L,this.y=b}a(y,"FFTM"),y.prototype.makeRBT=a(function(b){for(var T=new Array(b),k=i.prototype._countBits(b)-1,S=0;S<b;S++)T[S]=this.revBin(S,k,b);return T},"makeRBT"),y.prototype.revBin=a(function(b,T,k){if(b===0||b===k-1)return b;for(var S=0,N=0;N<T;N++)S|=(b&1)<<T-N-1,b>>=1;return S},"revBin"),y.prototype.permute=a(function(b,T,k,S,N,P){for(var F=0;F<P;F++)S[F]=T[b[F]],N[F]=k[b[F]]},"permute"),y.prototype.transform=a(function(b,T,k,S,N,P){this.permute(P,b,T,k,S,N);for(var F=1;F<N;F<<=1)for(var D=F<<1,x=Math.cos(2*Math.PI/D),O=Math.sin(2*Math.PI/D),G=0;G<N;G+=D)for(var M=x,J=O,X=0;X<F;X++){var Z=k[G+X],ae=S[G+X],pe=k[G+X+F],he=S[G+X+F],xe=M*pe-J*he;he=M*he+J*pe,pe=xe,k[G+X]=Z+pe,S[G+X]=ae+he,k[G+X+F]=Z-pe,S[G+X+F]=ae-he,X!==D&&(xe=x*M-O*J,J=x*J+O*M,M=xe)}},"transform"),y.prototype.guessLen13b=a(function(b,T){var k=Math.max(T,b)|1,S=k&1,N=0;for(k=k/2|0;k;k=k>>>1)N++;return 1<<N+1+S},"guessLen13b"),y.prototype.conjugate=a(function(b,T,k){if(!(k<=1))for(var S=0;S<k/2;S++){var N=b[S];b[S]=b[k-S-1],b[k-S-1]=N,N=T[S],T[S]=-T[k-S-1],T[k-S-1]=-N}},"conjugate"),y.prototype.normalize13b=a(function(b,T){for(var k=0,S=0;S<T/2;S++){var N=Math.round(b[2*S+1]/T)*8192+Math.round(b[2*S]/T)+k;b[S]=N&67108863,N<67108864?k=0:k=N/67108864|0}return b},"normalize13b"),y.prototype.convert13b=a(function(b,T,k,S){for(var N=0,P=0;P<T;P++)N=N+(b[P]|0),k[2*P]=N&8191,N=N>>>13,k[2*P+1]=N&8191,N=N>>>13;for(P=2*T;P<S;++P)k[P]=0;r(N===0),r((N&-8192)===0)},"convert13b"),y.prototype.stub=a(function(b){for(var T=new Array(b),k=0;k<b;k++)T[k]=0;return T},"stub"),y.prototype.mulp=a(function(b,T,k){var S=2*this.guessLen13b(b.length,T.length),N=this.makeRBT(S),P=this.stub(S),F=new Array(S),D=new Array(S),x=new Array(S),O=new Array(S),G=new Array(S),M=new Array(S),J=k.words;J.length=S,this.convert13b(b.words,b.length,F,S),this.convert13b(T.words,T.length,O,S),this.transform(F,P,D,x,S,N),this.transform(O,P,G,M,S,N);for(var X=0;X<S;X++){var Z=D[X]*G[X]-x[X]*M[X];x[X]=D[X]*M[X]+x[X]*G[X],D[X]=Z}return this.conjugate(D,x,S),this.transform(D,x,J,P,S,N),this.conjugate(J,P,S),this.normalize13b(J,S),k.negative=b.negative^T.negative,k.length=b.length+T.length,k.strip()},"mulp"),i.prototype.mul=a(function(b){var T=new i(null);return T.words=new Array(this.length+b.length),this.mulTo(b,T)},"mul"),i.prototype.mulf=a(function(b){var T=new i(null);return T.words=new Array(this.length+b.length),g(this,b,T)},"mulf"),i.prototype.imul=a(function(b){return this.clone().mulTo(b,this)},"imul"),i.prototype.imuln=a(function(b){r(typeof b=="number"),r(b<67108864);for(var T=0,k=0;k<this.length;k++){var S=(this.words[k]|0)*b,N=(S&67108863)+(T&67108863);T>>=26,T+=S/67108864|0,T+=N>>>26,this.words[k]=N&67108863}return T!==0&&(this.words[k]=T,this.length++),this.length=b===0?1:this.length,this},"imuln"),i.prototype.muln=a(function(b){return this.clone().imuln(b)},"muln"),i.prototype.sqr=a(function(){return this.mul(this)},"sqr"),i.prototype.isqr=a(function(){return this.imul(this.clone())},"isqr"),i.prototype.pow=a(function(b){var T=p(b);if(T.length===0)return new i(1);for(var k=this,S=0;S<T.length&&T[S]===0;S++,k=k.sqr());if(++S<T.length)for(var N=k.sqr();S<T.length;S++,N=N.sqr())T[S]!==0&&(k=k.mul(N));return k},"pow"),i.prototype.iushln=a(function(b){r(typeof b=="number"&&b>=0);var T=b%26,k=(b-T)/26,S=67108863>>>26-T<<26-T,N;if(T!==0){var P=0;for(N=0;N<this.length;N++){var F=this.words[N]&S,D=(this.words[N]|0)-F<<T;this.words[N]=D|P,P=F>>>26-T}P&&(this.words[N]=P,this.length++)}if(k!==0){for(N=this.length-1;N>=0;N--)this.words[N+k]=this.words[N];for(N=0;N<k;N++)this.words[N]=0;this.length+=k}return this.strip()},"iushln"),i.prototype.ishln=a(function(b){return r(this.negative===0),this.iushln(b)},"ishln"),i.prototype.iushrn=a(function(b,T,k){r(typeof b=="number"&&b>=0);var S;T?S=(T-T%26)/26:S=0;var N=b%26,P=Math.min((b-N)/26,this.length),F=67108863^67108863>>>N<<N,D=k;if(S-=P,S=Math.max(0,S),D){for(var x=0;x<P;x++)D.words[x]=this.words[x];D.length=P}if(P!==0)if(this.length>P)for(this.length-=P,x=0;x<this.length;x++)this.words[x]=this.words[x+P];else this.words[0]=0,this.length=1;var O=0;for(x=this.length-1;x>=0&&(O!==0||x>=S);x--){var G=this.words[x]|0;this.words[x]=O<<26-N|G>>>N,O=G&F}return D&&O!==0&&(D.words[D.length++]=O),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},"iushrn"),i.prototype.ishrn=a(function(b,T,k){return r(this.negative===0),this.iushrn(b,T,k)},"ishrn"),i.prototype.shln=a(function(b){return this.clone().ishln(b)},"shln"),i.prototype.ushln=a(function(b){return this.clone().iushln(b)},"ushln"),i.prototype.shrn=a(function(b){return this.clone().ishrn(b)},"shrn"),i.prototype.ushrn=a(function(b){return this.clone().iushrn(b)},"ushrn"),i.prototype.testn=a(function(b){r(typeof b=="number"&&b>=0);var T=b%26,k=(b-T)/26,S=1<<T;if(this.length<=k)return!1;var N=this.words[k];return!!(N&S)},"testn"),i.prototype.imaskn=a(function(b){r(typeof b=="number"&&b>=0);var T=b%26,k=(b-T)/26;if(r(this.negative===0,"imaskn works only with positive numbers"),this.length<=k)return this;if(T!==0&&k++,this.length=Math.min(k,this.length),T!==0){var S=67108863^67108863>>>T<<T;this.words[this.length-1]&=S}return this.strip()},"imaskn"),i.prototype.maskn=a(function(b){return this.clone().imaskn(b)},"maskn"),i.prototype.iaddn=a(function(b){return r(typeof b=="number"),r(b<67108864),b<0?this.isubn(-b):this.negative!==0?this.length===1&&(this.words[0]|0)<b?(this.words[0]=b-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(b),this.negative=1,this):this._iaddn(b)},"iaddn"),i.prototype._iaddn=a(function(b){this.words[0]+=b;for(var T=0;T<this.length&&this.words[T]>=67108864;T++)this.words[T]-=67108864,T===this.length-1?this.words[T+1]=1:this.words[T+1]++;return this.length=Math.max(this.length,T+1),this},"_iaddn"),i.prototype.isubn=a(function(b){if(r(typeof b=="number"),r(b<67108864),b<0)return this.iaddn(-b);if(this.negative!==0)return this.negative=0,this.iaddn(b),this.negative=1,this;if(this.words[0]-=b,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var T=0;T<this.length&&this.words[T]<0;T++)this.words[T]+=67108864,this.words[T+1]-=1;return this.strip()},"isubn"),i.prototype.addn=a(function(b){return this.clone().iaddn(b)},"addn"),i.prototype.subn=a(function(b){return this.clone().isubn(b)},"subn"),i.prototype.iabs=a(function(){return this.negative=0,this},"iabs"),i.prototype.abs=a(function(){return this.clone().iabs()},"abs"),i.prototype._ishlnsubmul=a(function(b,T,k){var S=b.length+k,N;this._expand(S);var P,F=0;for(N=0;N<b.length;N++){P=(this.words[N+k]|0)+F;var D=(b.words[N]|0)*T;P-=D&67108863,F=(P>>26)-(D/67108864|0),this.words[N+k]=P&67108863}for(;N<this.length-k;N++)P=(this.words[N+k]|0)+F,F=P>>26,this.words[N+k]=P&67108863;if(F===0)return this.strip();for(r(F===-1),F=0,N=0;N<this.length;N++)P=-(this.words[N]|0)+F,F=P>>26,this.words[N]=P&67108863;return this.negative=1,this.strip()},"_ishlnsubmul"),i.prototype._wordDiv=a(function(b,T){var k=this.length-b.length,S=this.clone(),N=b,P=N.words[N.length-1]|0,F=this._countBits(P);k=26-F,k!==0&&(N=N.ushln(k),S.iushln(k),P=N.words[N.length-1]|0);var D=S.length-N.length,x;if(T!=="mod"){x=new i(null),x.length=D+1,x.words=new Array(x.length);for(var O=0;O<x.length;O++)x.words[O]=0}var G=S.clone()._ishlnsubmul(N,1,D);G.negative===0&&(S=G,x&&(x.words[D]=1));for(var M=D-1;M>=0;M--){var J=(S.words[N.length+M]|0)*67108864+(S.words[N.length+M-1]|0);for(J=Math.min(J/P|0,67108863),S._ishlnsubmul(N,J,M);S.negative!==0;)J--,S.negative=0,S._ishlnsubmul(N,1,M),S.isZero()||(S.negative^=1);x&&(x.words[M]=J)}return x&&x.strip(),S.strip(),T!=="div"&&k!==0&&S.iushrn(k),{div:x||null,mod:S}},"_wordDiv"),i.prototype.divmod=a(function(b,T,k){if(r(!b.isZero()),this.isZero())return{div:new i(0),mod:new i(0)};var S,N,P;return this.negative!==0&&b.negative===0?(P=this.neg().divmod(b,T),T!=="mod"&&(S=P.div.neg()),T!=="div"&&(N=P.mod.neg(),k&&N.negative!==0&&N.iadd(b)),{div:S,mod:N}):this.negative===0&&b.negative!==0?(P=this.divmod(b.neg(),T),T!=="mod"&&(S=P.div.neg()),{div:S,mod:P.mod}):(this.negative&b.negative)!==0?(P=this.neg().divmod(b.neg(),T),T!=="div"&&(N=P.mod.neg(),k&&N.negative!==0&&N.isub(b)),{div:P.div,mod:N}):b.length>this.length||this.cmp(b)<0?{div:new i(0),mod:this}:b.length===1?T==="div"?{div:this.divn(b.words[0]),mod:null}:T==="mod"?{div:null,mod:new i(this.modn(b.words[0]))}:{div:this.divn(b.words[0]),mod:new i(this.modn(b.words[0]))}:this._wordDiv(b,T)},"divmod"),i.prototype.div=a(function(b){return this.divmod(b,"div",!1).div},"div"),i.prototype.mod=a(function(b){return this.divmod(b,"mod",!1).mod},"mod"),i.prototype.umod=a(function(b){return this.divmod(b,"mod",!0).mod},"umod"),i.prototype.divRound=a(function(b){var T=this.divmod(b);if(T.mod.isZero())return T.div;var k=T.div.negative!==0?T.mod.isub(b):T.mod,S=b.ushrn(1),N=b.andln(1),P=k.cmp(S);return P<0||N===1&&P===0?T.div:T.div.negative!==0?T.div.isubn(1):T.div.iaddn(1)},"divRound"),i.prototype.modn=a(function(b){r(b<=67108863);for(var T=(1<<26)%b,k=0,S=this.length-1;S>=0;S--)k=(T*k+(this.words[S]|0))%b;return k},"modn"),i.prototype.idivn=a(function(b){r(b<=67108863);for(var T=0,k=this.length-1;k>=0;k--){var S=(this.words[k]|0)+T*67108864;this.words[k]=S/b|0,T=S%b}return this.strip()},"idivn"),i.prototype.divn=a(function(b){return this.clone().idivn(b)},"divn"),i.prototype.egcd=a(function(b){r(b.negative===0),r(!b.isZero());var T=this,k=b.clone();T.negative!==0?T=T.umod(b):T=T.clone();for(var S=new i(1),N=new i(0),P=new i(0),F=new i(1),D=0;T.isEven()&&k.isEven();)T.iushrn(1),k.iushrn(1),++D;for(var x=k.clone(),O=T.clone();!T.isZero();){for(var G=0,M=1;(T.words[0]&M)===0&&G<26;++G,M<<=1);if(G>0)for(T.iushrn(G);G-- >0;)(S.isOdd()||N.isOdd())&&(S.iadd(x),N.isub(O)),S.iushrn(1),N.iushrn(1);for(var J=0,X=1;(k.words[0]&X)===0&&J<26;++J,X<<=1);if(J>0)for(k.iushrn(J);J-- >0;)(P.isOdd()||F.isOdd())&&(P.iadd(x),F.isub(O)),P.iushrn(1),F.iushrn(1);T.cmp(k)>=0?(T.isub(k),S.isub(P),N.isub(F)):(k.isub(T),P.isub(S),F.isub(N))}return{a:P,b:F,gcd:k.iushln(D)}},"egcd"),i.prototype._invmp=a(function(b){r(b.negative===0),r(!b.isZero());var T=this,k=b.clone();T.negative!==0?T=T.umod(b):T=T.clone();for(var S=new i(1),N=new i(0),P=k.clone();T.cmpn(1)>0&&k.cmpn(1)>0;){for(var F=0,D=1;(T.words[0]&D)===0&&F<26;++F,D<<=1);if(F>0)for(T.iushrn(F);F-- >0;)S.isOdd()&&S.iadd(P),S.iushrn(1);for(var x=0,O=1;(k.words[0]&O)===0&&x<26;++x,O<<=1);if(x>0)for(k.iushrn(x);x-- >0;)N.isOdd()&&N.iadd(P),N.iushrn(1);T.cmp(k)>=0?(T.isub(k),S.isub(N)):(k.isub(T),N.isub(S))}var G;return T.cmpn(1)===0?G=S:G=N,G.cmpn(0)<0&&G.iadd(b),G},"_invmp"),i.prototype.gcd=a(function(b){if(this.isZero())return b.abs();if(b.isZero())return this.abs();var T=this.clone(),k=b.clone();T.negative=0,k.negative=0;for(var S=0;T.isEven()&&k.isEven();S++)T.iushrn(1),k.iushrn(1);do{for(;T.isEven();)T.iushrn(1);for(;k.isEven();)k.iushrn(1);var N=T.cmp(k);if(N<0){var P=T;T=k,k=P}else if(N===0||k.cmpn(1)===0)break;T.isub(k)}while(!0);return k.iushln(S)},"gcd"),i.prototype.invm=a(function(b){return this.egcd(b).a.umod(b)},"invm"),i.prototype.isEven=a(function(){return(this.words[0]&1)===0},"isEven"),i.prototype.isOdd=a(function(){return(this.words[0]&1)===1},"isOdd"),i.prototype.andln=a(function(b){return this.words[0]&b},"andln"),i.prototype.bincn=a(function(b){r(typeof b=="number");var T=b%26,k=(b-T)/26,S=1<<T;if(this.length<=k)return this._expand(k+1),this.words[k]|=S,this;for(var N=S,P=k;N!==0&&P<this.length;P++){var F=this.words[P]|0;F+=N,N=F>>>26,F&=67108863,this.words[P]=F}return N!==0&&(this.words[P]=N,this.length++),this},"bincn"),i.prototype.isZero=a(function(){return this.length===1&&this.words[0]===0},"isZero"),i.prototype.cmpn=a(function(b){var T=b<0;if(this.negative!==0&&!T)return-1;if(this.negative===0&&T)return 1;this.strip();var k;if(this.length>1)k=1;else{T&&(b=-b),r(b<=67108863,"Number is too big");var S=this.words[0]|0;k=S===b?0:S<b?-1:1}return this.negative!==0?-k|0:k},"cmpn"),i.prototype.cmp=a(function(b){if(this.negative!==0&&b.negative===0)return-1;if(this.negative===0&&b.negative!==0)return 1;var T=this.ucmp(b);return this.negative!==0?-T|0:T},"cmp"),i.prototype.ucmp=a(function(b){if(this.length>b.length)return 1;if(this.length<b.length)return-1;for(var T=0,k=this.length-1;k>=0;k--){var S=this.words[k]|0,N=b.words[k]|0;if(S!==N){S<N?T=-1:S>N&&(T=1);break}}return T},"ucmp"),i.prototype.gtn=a(function(b){return this.cmpn(b)===1},"gtn"),i.prototype.gt=a(function(b){return this.cmp(b)===1},"gt"),i.prototype.gten=a(function(b){return this.cmpn(b)>=0},"gten"),i.prototype.gte=a(function(b){return this.cmp(b)>=0},"gte"),i.prototype.ltn=a(function(b){return this.cmpn(b)===-1},"ltn"),i.prototype.lt=a(function(b){return this.cmp(b)===-1},"lt"),i.prototype.lten=a(function(b){return this.cmpn(b)<=0},"lten"),i.prototype.lte=a(function(b){return this.cmp(b)<=0},"lte"),i.prototype.eqn=a(function(b){return this.cmpn(b)===0},"eqn"),i.prototype.eq=a(function(b){return this.cmp(b)===0},"eq"),i.red=a(function(b){return new B(b)},"red"),i.prototype.toRed=a(function(b){return r(!this.red,"Already a number in reduction context"),r(this.negative===0,"red works only with positives"),b.convertTo(this)._forceRed(b)},"toRed"),i.prototype.fromRed=a(function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},"fromRed"),i.prototype._forceRed=a(function(b){return this.red=b,this},"_forceRed"),i.prototype.forceRed=a(function(b){return r(!this.red,"Already a number in reduction context"),this._forceRed(b)},"forceRed"),i.prototype.redAdd=a(function(b){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,b)},"redAdd"),i.prototype.redIAdd=a(function(b){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,b)},"redIAdd"),i.prototype.redSub=a(function(b){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,b)},"redSub"),i.prototype.redISub=a(function(b){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,b)},"redISub"),i.prototype.redShl=a(function(b){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,b)},"redShl"),i.prototype.redMul=a(function(b){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,b),this.red.mul(this,b)},"redMul"),i.prototype.redIMul=a(function(b){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,b),this.red.imul(this,b)},"redIMul"),i.prototype.redSqr=a(function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},"redSqr"),i.prototype.redISqr=a(function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},"redISqr"),i.prototype.redSqrt=a(function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},"redSqrt"),i.prototype.redInvm=a(function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},"redInvm"),i.prototype.redNeg=a(function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},"redNeg"),i.prototype.redPow=a(function(b){return r(this.red&&!b.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,b)},"redPow");var w={k256:null,p224:null,p192:null,p25519:null};function E(L,b){this.name=L,this.p=new i(b,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}a(E,"MPrime"),E.prototype._tmp=a(function(){var b=new i(null);return b.words=new Array(Math.ceil(this.n/13)),b},"_tmp"),E.prototype.ireduce=a(function(b){var T=b,k;do this.split(T,this.tmp),T=this.imulK(T),T=T.iadd(this.tmp),k=T.bitLength();while(k>this.n);var S=k<this.n?-1:T.ucmp(this.p);return S===0?(T.words[0]=0,T.length=1):S>0?T.isub(this.p):T.strip!==void 0?T.strip():T._strip(),T},"ireduce"),E.prototype.split=a(function(b,T){b.iushrn(this.n,0,T)},"split"),E.prototype.imulK=a(function(b){return b.imul(this.k)},"imulK");function A(){E.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}a(A,"K256"),n(A,E),A.prototype.split=a(function(b,T){for(var k=4194303,S=Math.min(b.length,9),N=0;N<S;N++)T.words[N]=b.words[N];if(T.length=S,b.length<=9){b.words[0]=0,b.length=1;return}var P=b.words[9];for(T.words[T.length++]=P&k,N=10;N<b.length;N++){var F=b.words[N]|0;b.words[N-10]=(F&k)<<4|P>>>22,P=F}P>>>=22,b.words[N-10]=P,P===0&&b.length>10?b.length-=10:b.length-=9},"split"),A.prototype.imulK=a(function(b){b.words[b.length]=0,b.words[b.length+1]=0,b.length+=2;for(var T=0,k=0;k<b.length;k++){var S=b.words[k]|0;T+=S*977,b.words[k]=T&67108863,T=S*64+(T/67108864|0)}return b.words[b.length-1]===0&&(b.length--,b.words[b.length-1]===0&&b.length--),b},"imulK");function I(){E.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}a(I,"P224"),n(I,E);function R(){E.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}a(R,"P192"),n(R,E);function $(){E.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}a($,"P25519"),n($,E),$.prototype.imulK=a(function(b){for(var T=0,k=0;k<b.length;k++){var S=(b.words[k]|0)*19+T,N=S&67108863;S>>>=26,b.words[k]=N,T=S}return T!==0&&(b.words[b.length++]=T),b},"imulK"),i._prime=a(function(b){if(w[b])return w[b];var T;if(b==="k256")T=new A;else if(b==="p224")T=new I;else if(b==="p192")T=new R;else if(b==="p25519")T=new $;else throw new Error("Unknown prime "+b);return w[b]=T,T},"prime");function B(L){if(typeof L=="string"){var b=i._prime(L);this.m=b.p,this.prime=b}else r(L.gtn(1),"modulus must be greater than 1"),this.m=L,this.prime=null}a(B,"Red"),B.prototype._verify1=a(function(b){r(b.negative===0,"red works only with positives"),r(b.red,"red works only with red numbers")},"_verify1"),B.prototype._verify2=a(function(b,T){r((b.negative|T.negative)===0,"red works only with positives"),r(b.red&&b.red===T.red,"red works only with red numbers")},"_verify2"),B.prototype.imod=a(function(b){return this.prime?this.prime.ireduce(b)._forceRed(this):b.umod(this.m)._forceRed(this)},"imod"),B.prototype.neg=a(function(b){return b.isZero()?b.clone():this.m.sub(b)._forceRed(this)},"neg"),B.prototype.add=a(function(b,T){this._verify2(b,T);var k=b.add(T);return k.cmp(this.m)>=0&&k.isub(this.m),k._forceRed(this)},"add"),B.prototype.iadd=a(function(b,T){this._verify2(b,T);var k=b.iadd(T);return k.cmp(this.m)>=0&&k.isub(this.m),k},"iadd"),B.prototype.sub=a(function(b,T){this._verify2(b,T);var k=b.sub(T);return k.cmpn(0)<0&&k.iadd(this.m),k._forceRed(this)},"sub"),B.prototype.isub=a(function(b,T){this._verify2(b,T);var k=b.isub(T);return k.cmpn(0)<0&&k.iadd(this.m),k},"isub"),B.prototype.shl=a(function(b,T){return this._verify1(b),this.imod(b.ushln(T))},"shl"),B.prototype.imul=a(function(b,T){return this._verify2(b,T),this.imod(b.imul(T))},"imul"),B.prototype.mul=a(function(b,T){return this._verify2(b,T),this.imod(b.mul(T))},"mul"),B.prototype.isqr=a(function(b){return this.imul(b,b.clone())},"isqr"),B.prototype.sqr=a(function(b){return this.mul(b,b)},"sqr"),B.prototype.sqrt=a(function(b){if(b.isZero())return b.clone();var T=this.m.andln(3);if(r(T%2===1),T===3){var k=this.m.add(new i(1)).iushrn(2);return this.pow(b,k)}for(var S=this.m.subn(1),N=0;!S.isZero()&&S.andln(1)===0;)N++,S.iushrn(1);r(!S.isZero());var P=new i(1).toRed(this),F=P.redNeg(),D=this.m.subn(1).iushrn(1),x=this.m.bitLength();for(x=new i(2*x*x).toRed(this);this.pow(x,D).cmp(F)!==0;)x.redIAdd(F);for(var O=this.pow(x,S),G=this.pow(b,S.addn(1).iushrn(1)),M=this.pow(b,S),J=N;M.cmp(P)!==0;){for(var X=M,Z=0;X.cmp(P)!==0;Z++)X=X.redSqr();r(Z<J);var ae=this.pow(O,new i(1).iushln(J-Z-1));G=G.redMul(ae),O=ae.redSqr(),M=M.redMul(O),J=Z}return G},"sqrt"),B.prototype.invm=a(function(b){var T=b._invmp(this.m);return T.negative!==0?(T.negative=0,this.imod(T).redNeg()):this.imod(T)},"invm"),B.prototype.pow=a(function(b,T){if(T.isZero())return new i(1).toRed(this);if(T.cmpn(1)===0)return b.clone();var k=4,S=new Array(1<<k);S[0]=new i(1).toRed(this),S[1]=b;for(var N=2;N<S.length;N++)S[N]=this.mul(S[N-1],b);var P=S[0],F=0,D=0,x=T.bitLength()%26;for(x===0&&(x=26),N=T.length-1;N>=0;N--){for(var O=T.words[N],G=x-1;G>=0;G--){var M=O>>G&1;if(P!==S[0]&&(P=this.sqr(P)),M===0&&F===0){D=0;continue}F<<=1,F|=M,D++,!(D!==k&&(N!==0||G!==0))&&(P=this.mul(P,S[F]),D=0,F=0)}x=26}return P},"pow"),B.prototype.convertTo=a(function(b){var T=b.umod(this.m);return T===b?T.clone():T},"convertTo"),B.prototype.convertFrom=a(function(b){var T=b.clone();return T.red=null,T},"convertFrom"),i.mont=a(function(b){return new U(b)},"mont");function U(L){B.call(this,L),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}a(U,"Mont"),n(U,B),U.prototype.convertTo=a(function(b){return this.imod(b.ushln(this.shift))},"convertTo"),U.prototype.convertFrom=a(function(b){var T=this.imod(b.mul(this.rinv));return T.red=null,T},"convertFrom"),U.prototype.imul=a(function(b,T){if(b.isZero()||T.isZero())return b.words[0]=0,b.length=1,b;var k=b.imul(T),S=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(S).iushrn(this.shift),P=N;return N.cmp(this.m)>=0?P=N.isub(this.m):N.cmpn(0)<0&&(P=N.iadd(this.m)),P._forceRed(this)},"imul"),U.prototype.mul=a(function(b,T){if(b.isZero()||T.isZero())return new i(0)._forceRed(this);var k=b.mul(T),S=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(S).iushrn(this.shift),P=N;return N.cmp(this.m)>=0?P=N.isub(this.m):N.cmpn(0)<0&&(P=N.iadd(this.m)),P._forceRed(this)},"mul"),U.prototype.invm=a(function(b){var T=this.imod(b._invmp(this.m).mul(this.r2));return T._forceRed(this)},"invm")})(typeof fX>"u"||fX,UOe)});var n0=v((xFr,HOe)=>{HOe.exports=qOe;function qOe(t,e){if(!t)throw new Error(e||"Assertion failed")}a(qOe,"assert");qOe.equal=a(function(e,r,n){if(e!=r)throw new Error(n||"Assertion failed: "+e+" != "+r)},"assertEqual")});var pX=v(GOe=>{"use strict";var mP=GOe;function MPt(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if(typeof t!="string"){for(var n=0;n<t.length;n++)r[n]=t[n]|0;return r}if(e==="hex"){t=t.replace(/[^a-z0-9]+/ig,""),t.length%2!==0&&(t="0"+t);for(var n=0;n<t.length;n+=2)r.push(parseInt(t[n]+t[n+1],16))}else for(var n=0;n<t.length;n++){var i=t.charCodeAt(n),s=i>>8,o=i&255;s?r.push(s,o):r.push(o)}return r}a(MPt,"toArray");mP.toArray=MPt;function jOe(t){return t.length===1?"0"+t:t}a(jOe,"zero2");mP.zero2=jOe;function $Oe(t){for(var e="",r=0;r<t.length;r++)e+=jOe(t[r].toString(16));return e}a($Oe,"toHex");mP.toHex=$Oe;mP.encode=a(function(e,r){return r==="hex"?$Oe(e):e},"encode")});var fc=v(VOe=>{"use strict";var Rl=VOe,FPt=Cl(),UPt=n0(),gP=pX();Rl.assert=UPt;Rl.toArray=gP.toArray;Rl.zero2=gP.zero2;Rl.toHex=gP.toHex;Rl.encode=gP.encode;function qPt(t,e,r){var n=new Array(Math.max(t.bitLength(),r)+1),i;for(i=0;i<n.length;i+=1)n[i]=0;var s=1<<e+1,o=t.clone();for(i=0;i<n.length;i++){var c,u=o.andln(s-1);o.isOdd()?(u>(s>>1)-1?c=(s>>1)-u:c=u,o.isubn(c)):c=0,n[i]=c,o.iushrn(1)}return n}a(qPt,"getNAF");Rl.getNAF=qPt;function HPt(t,e){var r=[[],[]];t=t.clone(),e=e.clone();for(var n=0,i=0,s;t.cmpn(-n)>0||e.cmpn(-i)>0;){var o=t.andln(3)+n&3,c=e.andln(3)+i&3;o===3&&(o=-1),c===3&&(c=-1);var u;(o&1)===0?u=0:(s=t.andln(7)+n&7,(s===3||s===5)&&c===2?u=-o:u=o),r[0].push(u);var l;(c&1)===0?l=0:(s=e.andln(7)+i&7,(s===3||s===5)&&o===2?l=-c:l=c),r[1].push(l),2*n===u+1&&(n=1-n),2*i===l+1&&(i=1-i),t.iushrn(1),e.iushrn(1)}return r}a(HPt,"getJSF");Rl.getJSF=HPt;function jPt(t,e,r){var n="_"+e;t.prototype[e]=a(function(){return this[n]!==void 0?this[n]:this[n]=r.call(this)},"cachedProperty")}a(jPt,"cachedProperty");Rl.cachedProperty=jPt;function $Pt(t){return typeof t=="string"?Rl.toArray(t,"hex"):t}a($Pt,"parseBytes");Rl.parseBytes=$Pt;function GPt(t){return new FPt(t,"hex","le")}a(GPt,"intFromLE");Rl.intFromLE=GPt});var gX=v((kFr,mX)=>{var _X;mX.exports=a(function(e){return _X||(_X=new i0(null)),_X.generate(e)},"rand");function i0(t){this.rand=t}a(i0,"Rand");mX.exports.Rand=i0;i0.prototype.generate=a(function(e){return this._rand(e)},"generate");i0.prototype._rand=a(function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var r=new Uint8Array(e),n=0;n<r.length;n++)r[n]=this.rand.getByte();return r},"_rand");if(typeof self=="object")self.crypto&&self.crypto.getRandomValues?i0.prototype._rand=a(function(e){var r=new Uint8Array(e);return self.crypto.getRandomValues(r),r},"_rand"):self.msCrypto&&self.msCrypto.getRandomValues?i0.prototype._rand=a(function(e){var r=new Uint8Array(e);return self.msCrypto.getRandomValues(r),r},"_rand"):typeof window=="object"&&(i0.prototype._rand=function(){throw new Error("Not implemented yet")});else try{if(hX=require("crypto"),typeof hX.randomBytes!="function")throw new Error("Not supported");i0.prototype._rand=a(function(e){return hX.randomBytes(e)},"_rand")}catch{}var hX});var pA=v((OFr,KOe)=>{"use strict";var cy=Cl(),fA=fc(),yP=fA.getNAF,VPt=fA.getJSF,vP=fA.assert;function a0(t,e){this.type=t,this.p=new cy(e.p,16),this.red=e.prime?cy.red(e.prime):cy.mont(this.p),this.zero=new cy(0).toRed(this.red),this.one=new cy(1).toRed(this.red),this.two=new cy(2).toRed(this.red),this.n=e.n&&new cy(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}a(a0,"BaseCurve");KOe.exports=a0;a0.prototype.point=a(function(){throw new Error("Not implemented")},"point");a0.prototype.validate=a(function(){throw new Error("Not implemented")},"validate");a0.prototype._fixedNafMul=a(function(e,r){vP(e.precomputed);var n=e._getDoubles(),i=yP(r,1,this._bitLength),s=(1<<n.step+1)-(n.step%2===0?2:1);s/=3;var o=[],c,u;for(c=0;c<i.length;c+=n.step){u=0;for(var l=c+n.step-1;l>=c;l--)u=(u<<1)+i[l];o.push(u)}for(var d=this.jpoint(null,null,null),f=this.jpoint(null,null,null),p=s;p>0;p--){for(c=0;c<o.length;c++)u=o[c],u===p?f=f.mixedAdd(n.points[c]):u===-p&&(f=f.mixedAdd(n.points[c].neg()));d=d.add(f)}return d.toP()},"_fixedNafMul");a0.prototype._wnafMul=a(function(e,r){var n=4,i=e._getNAFPoints(n);n=i.wnd;for(var s=i.points,o=yP(r,n,this._bitLength),c=this.jpoint(null,null,null),u=o.length-1;u>=0;u--){for(var l=0;u>=0&&o[u]===0;u--)l++;if(u>=0&&l++,c=c.dblp(l),u<0)break;var d=o[u];vP(d!==0),e.type==="affine"?d>0?c=c.mixedAdd(s[d-1>>1]):c=c.mixedAdd(s[-d-1>>1].neg()):d>0?c=c.add(s[d-1>>1]):c=c.add(s[-d-1>>1].neg())}return e.type==="affine"?c.toP():c},"_wnafMul");a0.prototype._wnafMulAdd=a(function(e,r,n,i,s){var o=this._wnafT1,c=this._wnafT2,u=this._wnafT3,l=0,d,f,p;for(d=0;d<i;d++){p=r[d];var _=p._getNAFPoints(e);o[d]=_.wnd,c[d]=_.points}for(d=i-1;d>=1;d-=2){var h=d-1,m=d;if(o[h]!==1||o[m]!==1){u[h]=yP(n[h],o[h],this._bitLength),u[m]=yP(n[m],o[m],this._bitLength),l=Math.max(u[h].length,l),l=Math.max(u[m].length,l);continue}var g=[r[h],null,null,r[m]];r[h].y.cmp(r[m].y)===0?(g[1]=r[h].add(r[m]),g[2]=r[h].toJ().mixedAdd(r[m].neg())):r[h].y.cmp(r[m].y.redNeg())===0?(g[1]=r[h].toJ().mixedAdd(r[m]),g[2]=r[h].add(r[m].neg())):(g[1]=r[h].toJ().mixedAdd(r[m]),g[2]=r[h].toJ().mixedAdd(r[m].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],w=VPt(n[h],n[m]);for(l=Math.max(w[0].length,l),u[h]=new Array(l),u[m]=new Array(l),f=0;f<l;f++){var E=w[0][f]|0,A=w[1][f]|0;u[h][f]=y[(E+1)*3+(A+1)],u[m][f]=0,c[h]=g}}var I=this.jpoint(null,null,null),R=this._wnafT4;for(d=l;d>=0;d--){for(var $=0;d>=0;){var B=!0;for(f=0;f<i;f++)R[f]=u[f][d]|0,R[f]!==0&&(B=!1);if(!B)break;$++,d--}if(d>=0&&$++,I=I.dblp($),d<0)break;for(f=0;f<i;f++){var U=R[f];U!==0&&(U>0?p=c[f][U-1>>1]:U<0&&(p=c[f][-U-1>>1].neg()),p.type==="affine"?I=I.mixedAdd(p):I=I.add(p))}}for(d=0;d<i;d++)c[d]=null;return s?I:I.toP()},"_wnafMulAdd");function ou(t,e){this.curve=t,this.type=e,this.precomputed=null}a(ou,"BasePoint");a0.BasePoint=ou;ou.prototype.eq=a(function(){throw new Error("Not implemented")},"eq");ou.prototype.validate=a(function(){return this.curve.validate(this)},"validate");a0.prototype.decodePoint=a(function(e,r){e=fA.toArray(e,r);var n=this.p.byteLength();if((e[0]===4||e[0]===6||e[0]===7)&&e.length-1===2*n){e[0]===6?vP(e[e.length-1]%2===0):e[0]===7&&vP(e[e.length-1]%2===1);var i=this.point(e.slice(1,1+n),e.slice(1+n,1+2*n));return i}else if((e[0]===2||e[0]===3)&&e.length-1===n)return this.pointFromX(e.slice(1,1+n),e[0]===3);throw new Error("Unknown point format")},"decodePoint");ou.prototype.encodeCompressed=a(function(e){return this.encode(e,!0)},"encodeCompressed");ou.prototype._encode=a(function(e){var r=this.curve.p.byteLength(),n=this.getX().toArray("be",r);return e?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",r))},"_encode");ou.prototype.encode=a(function(e,r){return fA.encode(this._encode(r),e)},"encode");ou.prototype.precompute=a(function(e){if(this.precomputed)return this;var r={doubles:null,naf:null,beta:null};return r.naf=this._getNAFPoints(8),r.doubles=this._getDoubles(4,e),r.beta=this._getBeta(),this.precomputed=r,this},"precompute");ou.prototype._hasDoubles=a(function(e){if(!this.precomputed)return!1;var r=this.precomputed.doubles;return r?r.points.length>=Math.ceil((e.bitLength()+1)/r.step):!1},"_hasDoubles");ou.prototype._getDoubles=a(function(e,r){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],i=this,s=0;s<r;s+=e){for(var o=0;o<e;o++)i=i.dbl();n.push(i)}return{step:e,points:n}},"_getDoubles");ou.prototype._getNAFPoints=a(function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var r=[this],n=(1<<e)-1,i=n===1?null:this.dbl(),s=1;s<n;s++)r[s]=r[s-1].add(i);return{wnd:e,points:r}},"_getNAFPoints");ou.prototype._getBeta=a(function(){return null},"_getBeta");ou.prototype.dblp=a(function(e){for(var r=this,n=0;n<e;n++)r=r.dbl();return r},"dblp")});var JOe=v((CFr,zOe)=>{"use strict";var KPt=fc(),Si=Cl(),yX=op(),o1=pA(),zPt=KPt.assert;function cu(t){o1.call(this,"short",t),this.a=new Si(t.a,16).toRed(this.red),this.b=new Si(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}a(cu,"ShortCurve");yX(cu,o1);zOe.exports=cu;cu.prototype._getEndomorphism=a(function(e){if(!(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)){var r,n;if(e.beta)r=new Si(e.beta,16).toRed(this.red);else{var i=this._getEndoRoots(this.p);r=i[0].cmp(i[1])<0?i[0]:i[1],r=r.toRed(this.red)}if(e.lambda)n=new Si(e.lambda,16);else{var s=this._getEndoRoots(this.n);this.g.mul(s[0]).x.cmp(this.g.x.redMul(r))===0?n=s[0]:(n=s[1],zPt(this.g.mul(n).x.cmp(this.g.x.redMul(r))===0))}var o;return e.basis?o=e.basis.map(function(c){return{a:new Si(c.a,16),b:new Si(c.b,16)}}):o=this._getEndoBasis(n),{beta:r,lambda:n,basis:o}}},"_getEndomorphism");cu.prototype._getEndoRoots=a(function(e){var r=e===this.p?this.red:Si.mont(e),n=new Si(2).toRed(r).redInvm(),i=n.redNeg(),s=new Si(3).toRed(r).redNeg().redSqrt().redMul(n),o=i.redAdd(s).fromRed(),c=i.redSub(s).fromRed();return[o,c]},"_getEndoRoots");cu.prototype._getEndoBasis=a(function(e){for(var r=this.n.ushrn(Math.floor(this.n.bitLength()/2)),n=e,i=this.n.clone(),s=new Si(1),o=new Si(0),c=new Si(0),u=new Si(1),l,d,f,p,_,h,m,g=0,y,w;n.cmpn(0)!==0;){var E=i.div(n);y=i.sub(E.mul(n)),w=c.sub(E.mul(s));var A=u.sub(E.mul(o));if(!f&&y.cmp(r)<0)l=m.neg(),d=s,f=y.neg(),p=w;else if(f&&++g===2)break;m=y,i=n,n=y,c=s,s=w,u=o,o=A}_=y.neg(),h=w;var I=f.sqr().add(p.sqr()),R=_.sqr().add(h.sqr());return R.cmp(I)>=0&&(_=l,h=d),f.negative&&(f=f.neg(),p=p.neg()),_.negative&&(_=_.neg(),h=h.neg()),[{a:f,b:p},{a:_,b:h}]},"_getEndoBasis");cu.prototype._endoSplit=a(function(e){var r=this.endo.basis,n=r[0],i=r[1],s=i.b.mul(e).divRound(this.n),o=n.b.neg().mul(e).divRound(this.n),c=s.mul(n.a),u=o.mul(i.a),l=s.mul(n.b),d=o.mul(i.b),f=e.sub(c).sub(u),p=l.add(d).neg();return{k1:f,k2:p}},"_endoSplit");cu.prototype.pointFromX=a(function(e,r){e=new Si(e,16),e.red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),i=n.redSqrt();if(i.redSqr().redSub(n).cmp(this.zero)!==0)throw new Error("invalid point");var s=i.fromRed().isOdd();return(r&&!s||!r&&s)&&(i=i.redNeg()),this.point(e,i)},"pointFromX");cu.prototype.validate=a(function(e){if(e.inf)return!0;var r=e.x,n=e.y,i=this.a.redMul(r),s=r.redSqr().redMul(r).redIAdd(i).redIAdd(this.b);return n.redSqr().redISub(s).cmpn(0)===0},"validate");cu.prototype._endoWnafMulAdd=a(function(e,r,n){for(var i=this._endoWnafT1,s=this._endoWnafT2,o=0;o<e.length;o++){var c=this._endoSplit(r[o]),u=e[o],l=u._getBeta();c.k1.negative&&(c.k1.ineg(),u=u.neg(!0)),c.k2.negative&&(c.k2.ineg(),l=l.neg(!0)),i[o*2]=u,i[o*2+1]=l,s[o*2]=c.k1,s[o*2+1]=c.k2}for(var d=this._wnafMulAdd(1,i,s,o*2,n),f=0;f<o*2;f++)i[f]=null,s[f]=null;return d},"_endoWnafMulAdd");function qa(t,e,r,n){o1.BasePoint.call(this,t,"affine"),e===null&&r===null?(this.x=null,this.y=null,this.inf=!0):(this.x=new Si(e,16),this.y=new Si(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}a(qa,"Point");yX(qa,o1.BasePoint);cu.prototype.point=a(function(e,r,n){return new qa(this,e,r,n)},"point");cu.prototype.pointFromJSON=a(function(e,r){return qa.fromJSON(this,e,r)},"pointFromJSON");qa.prototype._getBeta=a(function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var r=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var n=this.curve,i=a(function(s){return n.point(s.x.redMul(n.endo.beta),s.y)},"endoMul");e.beta=r,r.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(i)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(i)}}}return r}},"_getBeta");qa.prototype.toJSON=a(function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},"toJSON");qa.fromJSON=a(function(e,r,n){typeof r=="string"&&(r=JSON.parse(r));var i=e.point(r[0],r[1],n);if(!r[2])return i;function s(c){return e.point(c[0],c[1],n)}a(s,"obj2point");var o=r[2];return i.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[i].concat(o.doubles.points.map(s))},naf:o.naf&&{wnd:o.naf.wnd,points:[i].concat(o.naf.points.map(s))}},i},"fromJSON");qa.prototype.inspect=a(function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},"inspect");qa.prototype.isInfinity=a(function(){return this.inf},"isInfinity");qa.prototype.add=a(function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(this.x.cmp(e.x)===0)return this.curve.point(null,null);var r=this.y.redSub(e.y);r.cmpn(0)!==0&&(r=r.redMul(this.x.redSub(e.x).redInvm()));var n=r.redSqr().redISub(this.x).redISub(e.x),i=r.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,i)},"add");qa.prototype.dbl=a(function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(e.cmpn(0)===0)return this.curve.point(null,null);var r=this.curve.a,n=this.x.redSqr(),i=e.redInvm(),s=n.redAdd(n).redIAdd(n).redIAdd(r).redMul(i),o=s.redSqr().redISub(this.x.redAdd(this.x)),c=s.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,c)},"dbl");qa.prototype.getX=a(function(){return this.x.fromRed()},"getX");qa.prototype.getY=a(function(){return this.y.fromRed()},"getY");qa.prototype.mul=a(function(e){return e=new Si(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},"mul");qa.prototype.mulAdd=a(function(e,r,n){var i=[this,r],s=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(i,s):this.curve._wnafMulAdd(1,i,s,2)},"mulAdd");qa.prototype.jmulAdd=a(function(e,r,n){var i=[this,r],s=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(i,s,!0):this.curve._wnafMulAdd(1,i,s,2,!0)},"jmulAdd");qa.prototype.eq=a(function(e){return this===e||this.inf===e.inf&&(this.inf||this.x.cmp(e.x)===0&&this.y.cmp(e.y)===0)},"eq");qa.prototype.neg=a(function(e){if(this.inf)return this;var r=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,i=a(function(s){return s.neg()},"negate");r.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(i)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(i)}}}return r},"neg");qa.prototype.toJ=a(function(){if(this.inf)return this.curve.jpoint(null,null,null);var e=this.curve.jpoint(this.x,this.y,this.curve.one);return e},"toJ");function rs(t,e,r,n){o1.BasePoint.call(this,t,"jacobian"),e===null&&r===null&&n===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Si(0)):(this.x=new Si(e,16),this.y=new Si(r,16),this.z=new Si(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}a(rs,"JPoint");yX(rs,o1.BasePoint);cu.prototype.jpoint=a(function(e,r,n){return new rs(this,e,r,n)},"jpoint");rs.prototype.toP=a(function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),r=e.redSqr(),n=this.x.redMul(r),i=this.y.redMul(r).redMul(e);return this.curve.point(n,i)},"toP");rs.prototype.neg=a(function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},"neg");rs.prototype.add=a(function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var r=e.z.redSqr(),n=this.z.redSqr(),i=this.x.redMul(r),s=e.x.redMul(n),o=this.y.redMul(r.redMul(e.z)),c=e.y.redMul(n.redMul(this.z)),u=i.redSub(s),l=o.redSub(c);if(u.cmpn(0)===0)return l.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var d=u.redSqr(),f=d.redMul(u),p=i.redMul(d),_=l.redSqr().redIAdd(f).redISub(p).redISub(p),h=l.redMul(p.redISub(_)).redISub(o.redMul(f)),m=this.z.redMul(e.z).redMul(u);return this.curve.jpoint(_,h,m)},"add");rs.prototype.mixedAdd=a(function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var r=this.z.redSqr(),n=this.x,i=e.x.redMul(r),s=this.y,o=e.y.redMul(r).redMul(this.z),c=n.redSub(i),u=s.redSub(o);if(c.cmpn(0)===0)return u.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var l=c.redSqr(),d=l.redMul(c),f=n.redMul(l),p=u.redSqr().redIAdd(d).redISub(f).redISub(f),_=u.redMul(f.redISub(p)).redISub(s.redMul(d)),h=this.z.redMul(c);return this.curve.jpoint(p,_,h)},"mixedAdd");rs.prototype.dblp=a(function(e){if(e===0)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var r;if(this.curve.zeroA||this.curve.threeA){var n=this;for(r=0;r<e;r++)n=n.dbl();return n}var i=this.curve.a,s=this.curve.tinv,o=this.x,c=this.y,u=this.z,l=u.redSqr().redSqr(),d=c.redAdd(c);for(r=0;r<e;r++){var f=o.redSqr(),p=d.redSqr(),_=p.redSqr(),h=f.redAdd(f).redIAdd(f).redIAdd(i.redMul(l)),m=o.redMul(p),g=h.redSqr().redISub(m.redAdd(m)),y=m.redISub(g),w=h.redMul(y);w=w.redIAdd(w).redISub(_);var E=d.redMul(u);r+1<e&&(l=l.redMul(_)),o=g,u=E,d=w}return this.curve.jpoint(o,d.redMul(s),u)},"dblp");rs.prototype.dbl=a(function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},"dbl");rs.prototype._zeroDbl=a(function(){var e,r,n;if(this.zOne){var i=this.x.redSqr(),s=this.y.redSqr(),o=s.redSqr(),c=this.x.redAdd(s).redSqr().redISub(i).redISub(o);c=c.redIAdd(c);var u=i.redAdd(i).redIAdd(i),l=u.redSqr().redISub(c).redISub(c),d=o.redIAdd(o);d=d.redIAdd(d),d=d.redIAdd(d),e=l,r=u.redMul(c.redISub(l)).redISub(d),n=this.y.redAdd(this.y)}else{var f=this.x.redSqr(),p=this.y.redSqr(),_=p.redSqr(),h=this.x.redAdd(p).redSqr().redISub(f).redISub(_);h=h.redIAdd(h);var m=f.redAdd(f).redIAdd(f),g=m.redSqr(),y=_.redIAdd(_);y=y.redIAdd(y),y=y.redIAdd(y),e=g.redISub(h).redISub(h),r=m.redMul(h.redISub(e)).redISub(y),n=this.y.redMul(this.z),n=n.redIAdd(n)}return this.curve.jpoint(e,r,n)},"_zeroDbl");rs.prototype._threeDbl=a(function(){var e,r,n;if(this.zOne){var i=this.x.redSqr(),s=this.y.redSqr(),o=s.redSqr(),c=this.x.redAdd(s).redSqr().redISub(i).redISub(o);c=c.redIAdd(c);var u=i.redAdd(i).redIAdd(i).redIAdd(this.curve.a),l=u.redSqr().redISub(c).redISub(c);e=l;var d=o.redIAdd(o);d=d.redIAdd(d),d=d.redIAdd(d),r=u.redMul(c.redISub(l)).redISub(d),n=this.y.redAdd(this.y)}else{var f=this.z.redSqr(),p=this.y.redSqr(),_=this.x.redMul(p),h=this.x.redSub(f).redMul(this.x.redAdd(f));h=h.redAdd(h).redIAdd(h);var m=_.redIAdd(_);m=m.redIAdd(m);var g=m.redAdd(m);e=h.redSqr().redISub(g),n=this.y.redAdd(this.z).redSqr().redISub(p).redISub(f);var y=p.redSqr();y=y.redIAdd(y),y=y.redIAdd(y),y=y.redIAdd(y),r=h.redMul(m.redISub(e)).redISub(y)}return this.curve.jpoint(e,r,n)},"_threeDbl");rs.prototype._dbl=a(function(){var e=this.curve.a,r=this.x,n=this.y,i=this.z,s=i.redSqr().redSqr(),o=r.redSqr(),c=n.redSqr(),u=o.redAdd(o).redIAdd(o).redIAdd(e.redMul(s)),l=r.redAdd(r);l=l.redIAdd(l);var d=l.redMul(c),f=u.redSqr().redISub(d.redAdd(d)),p=d.redISub(f),_=c.redSqr();_=_.redIAdd(_),_=_.redIAdd(_),_=_.redIAdd(_);var h=u.redMul(p).redISub(_),m=n.redAdd(n).redMul(i);return this.curve.jpoint(f,h,m)},"_dbl");rs.prototype.trpl=a(function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),r=this.y.redSqr(),n=this.z.redSqr(),i=r.redSqr(),s=e.redAdd(e).redIAdd(e),o=s.redSqr(),c=this.x.redAdd(r).redSqr().redISub(e).redISub(i);c=c.redIAdd(c),c=c.redAdd(c).redIAdd(c),c=c.redISub(o);var u=c.redSqr(),l=i.redIAdd(i);l=l.redIAdd(l),l=l.redIAdd(l),l=l.redIAdd(l);var d=s.redIAdd(c).redSqr().redISub(o).redISub(u).redISub(l),f=r.redMul(d);f=f.redIAdd(f),f=f.redIAdd(f);var p=this.x.redMul(u).redISub(f);p=p.redIAdd(p),p=p.redIAdd(p);var _=this.y.redMul(d.redMul(l.redISub(d)).redISub(c.redMul(u)));_=_.redIAdd(_),_=_.redIAdd(_),_=_.redIAdd(_);var h=this.z.redAdd(c).redSqr().redISub(n).redISub(u);return this.curve.jpoint(p,_,h)},"trpl");rs.prototype.mul=a(function(e,r){return e=new Si(e,r),this.curve._wnafMul(this,e)},"mul");rs.prototype.eq=a(function(e){if(e.type==="affine")return this.eq(e.toJ());if(this===e)return!0;var r=this.z.redSqr(),n=e.z.redSqr();if(this.x.redMul(n).redISub(e.x.redMul(r)).cmpn(0)!==0)return!1;var i=r.redMul(this.z),s=n.redMul(e.z);return this.y.redMul(s).redISub(e.y.redMul(i)).cmpn(0)===0},"eq");rs.prototype.eqXToP=a(function(e){var r=this.z.redSqr(),n=e.toRed(this.curve.red).redMul(r);if(this.x.cmp(n)===0)return!0;for(var i=e.clone(),s=this.curve.redN.redMul(r);;){if(i.iadd(this.curve.n),i.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(s),this.x.cmp(n)===0)return!0}},"eqXToP");rs.prototype.inspect=a(function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},"inspect");rs.prototype.isInfinity=a(function(){return this.z.cmpn(0)===0},"isInfinity")});var QOe=v((PFr,XOe)=>{"use strict";var c1=Cl(),WOe=op(),bP=pA(),JPt=fc();function u1(t){bP.call(this,"mont",t),this.a=new c1(t.a,16).toRed(this.red),this.b=new c1(t.b,16).toRed(this.red),this.i4=new c1(4).toRed(this.red).redInvm(),this.two=new c1(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}a(u1,"MontCurve");WOe(u1,bP);XOe.exports=u1;u1.prototype.validate=a(function(e){var r=e.normalize().x,n=r.redSqr(),i=n.redMul(r).redAdd(n.redMul(this.a)).redAdd(r),s=i.redSqrt();return s.redSqr().cmp(i)===0},"validate");function Ha(t,e,r){bP.BasePoint.call(this,t,"projective"),e===null&&r===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new c1(e,16),this.z=new c1(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}a(Ha,"Point");WOe(Ha,bP.BasePoint);u1.prototype.decodePoint=a(function(e,r){return this.point(JPt.toArray(e,r),1)},"decodePoint");u1.prototype.point=a(function(e,r){return new Ha(this,e,r)},"point");u1.prototype.pointFromJSON=a(function(e){return Ha.fromJSON(this,e)},"pointFromJSON");Ha.prototype.precompute=a(function(){},"precompute");Ha.prototype._encode=a(function(){return this.getX().toArray("be",this.curve.p.byteLength())},"_encode");Ha.fromJSON=a(function(e,r){return new Ha(e,r[0],r[1]||e.one)},"fromJSON");Ha.prototype.inspect=a(function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},"inspect");Ha.prototype.isInfinity=a(function(){return this.z.cmpn(0)===0},"isInfinity");Ha.prototype.dbl=a(function(){var e=this.x.redAdd(this.z),r=e.redSqr(),n=this.x.redSub(this.z),i=n.redSqr(),s=r.redSub(i),o=r.redMul(i),c=s.redMul(i.redAdd(this.curve.a24.redMul(s)));return this.curve.point(o,c)},"dbl");Ha.prototype.add=a(function(){throw new Error("Not supported on Montgomery curve")},"add");Ha.prototype.diffAdd=a(function(e,r){var n=this.x.redAdd(this.z),i=this.x.redSub(this.z),s=e.x.redAdd(e.z),o=e.x.redSub(e.z),c=o.redMul(n),u=s.redMul(i),l=r.z.redMul(c.redAdd(u).redSqr()),d=r.x.redMul(c.redISub(u).redSqr());return this.curve.point(l,d)},"diffAdd");Ha.prototype.mul=a(function(e){for(var r=e.clone(),n=this,i=this.curve.point(null,null),s=this,o=[];r.cmpn(0)!==0;r.iushrn(1))o.push(r.andln(1));for(var c=o.length-1;c>=0;c--)o[c]===0?(n=n.diffAdd(i,s),i=i.dbl()):(i=n.diffAdd(i,s),n=n.dbl());return i},"mul");Ha.prototype.mulAdd=a(function(){throw new Error("Not supported on Montgomery curve")},"mulAdd");Ha.prototype.jumlAdd=a(function(){throw new Error("Not supported on Montgomery curve")},"jumlAdd");Ha.prototype.eq=a(function(e){return this.getX().cmp(e.getX())===0},"eq");Ha.prototype.normalize=a(function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},"normalize");Ha.prototype.getX=a(function(){return this.normalize(),this.x.fromRed()},"getX")});var e4e=v((DFr,ZOe)=>{"use strict";var WPt=fc(),Fp=Cl(),YOe=op(),xP=pA(),XPt=WPt.assert;function df(t){this.twisted=(t.a|0)!==1,this.mOneA=this.twisted&&(t.a|0)===-1,this.extended=this.mOneA,xP.call(this,"edwards",t),this.a=new Fp(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new Fp(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new Fp(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),XPt(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(t.c|0)===1}a(df,"EdwardsCurve");YOe(df,xP);ZOe.exports=df;df.prototype._mulA=a(function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},"_mulA");df.prototype._mulC=a(function(e){return this.oneC?e:this.c.redMul(e)},"_mulC");df.prototype.jpoint=a(function(e,r,n,i){return this.point(e,r,n,i)},"jpoint");df.prototype.pointFromX=a(function(e,r){e=new Fp(e,16),e.red||(e=e.toRed(this.red));var n=e.redSqr(),i=this.c2.redSub(this.a.redMul(n)),s=this.one.redSub(this.c2.redMul(this.d).redMul(n)),o=i.redMul(s.redInvm()),c=o.redSqrt();if(c.redSqr().redSub(o).cmp(this.zero)!==0)throw new Error("invalid point");var u=c.fromRed().isOdd();return(r&&!u||!r&&u)&&(c=c.redNeg()),this.point(e,c)},"pointFromX");df.prototype.pointFromY=a(function(e,r){e=new Fp(e,16),e.red||(e=e.toRed(this.red));var n=e.redSqr(),i=n.redSub(this.c2),s=n.redMul(this.d).redMul(this.c2).redSub(this.a),o=i.redMul(s.redInvm());if(o.cmp(this.zero)===0){if(r)throw new Error("invalid point");return this.point(this.zero,e)}var c=o.redSqrt();if(c.redSqr().redSub(o).cmp(this.zero)!==0)throw new Error("invalid point");return c.fromRed().isOdd()!==r&&(c=c.redNeg()),this.point(c,e)},"pointFromY");df.prototype.validate=a(function(e){if(e.isInfinity())return!0;e.normalize();var r=e.x.redSqr(),n=e.y.redSqr(),i=r.redMul(this.a).redAdd(n),s=this.c2.redMul(this.one.redAdd(this.d.redMul(r).redMul(n)));return i.cmp(s)===0},"validate");function vn(t,e,r,n,i){xP.BasePoint.call(this,t,"projective"),e===null&&r===null&&n===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new Fp(e,16),this.y=new Fp(r,16),this.z=n?new Fp(n,16):this.curve.one,this.t=i&&new Fp(i,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}a(vn,"Point");YOe(vn,xP.BasePoint);df.prototype.pointFromJSON=a(function(e){return vn.fromJSON(this,e)},"pointFromJSON");df.prototype.point=a(function(e,r,n,i){return new vn(this,e,r,n,i)},"point");vn.fromJSON=a(function(e,r){return new vn(e,r[0],r[1],r[2])},"fromJSON");vn.prototype.inspect=a(function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},"inspect");vn.prototype.isInfinity=a(function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},"isInfinity");vn.prototype._extDbl=a(function(){var e=this.x.redSqr(),r=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var i=this.curve._mulA(e),s=this.x.redAdd(this.y).redSqr().redISub(e).redISub(r),o=i.redAdd(r),c=o.redSub(n),u=i.redSub(r),l=s.redMul(c),d=o.redMul(u),f=s.redMul(u),p=c.redMul(o);return this.curve.point(l,d,p,f)},"_extDbl");vn.prototype._projDbl=a(function(){var e=this.x.redAdd(this.y).redSqr(),r=this.x.redSqr(),n=this.y.redSqr(),i,s,o,c,u,l;if(this.curve.twisted){c=this.curve._mulA(r);var d=c.redAdd(n);this.zOne?(i=e.redSub(r).redSub(n).redMul(d.redSub(this.curve.two)),s=d.redMul(c.redSub(n)),o=d.redSqr().redSub(d).redSub(d)):(u=this.z.redSqr(),l=d.redSub(u).redISub(u),i=e.redSub(r).redISub(n).redMul(l),s=d.redMul(c.redSub(n)),o=d.redMul(l))}else c=r.redAdd(n),u=this.curve._mulC(this.z).redSqr(),l=c.redSub(u).redSub(u),i=this.curve._mulC(e.redISub(c)).redMul(l),s=this.curve._mulC(c).redMul(r.redISub(n)),o=c.redMul(l);return this.curve.point(i,s,o)},"_projDbl");vn.prototype.dbl=a(function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},"dbl");vn.prototype._extAdd=a(function(e){var r=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),n=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),i=this.t.redMul(this.curve.dd).redMul(e.t),s=this.z.redMul(e.z.redAdd(e.z)),o=n.redSub(r),c=s.redSub(i),u=s.redAdd(i),l=n.redAdd(r),d=o.redMul(c),f=u.redMul(l),p=o.redMul(l),_=c.redMul(u);return this.curve.point(d,f,_,p)},"_extAdd");vn.prototype._projAdd=a(function(e){var r=this.z.redMul(e.z),n=r.redSqr(),i=this.x.redMul(e.x),s=this.y.redMul(e.y),o=this.curve.d.redMul(i).redMul(s),c=n.redSub(o),u=n.redAdd(o),l=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(i).redISub(s),d=r.redMul(c).redMul(l),f,p;return this.curve.twisted?(f=r.redMul(u).redMul(s.redSub(this.curve._mulA(i))),p=c.redMul(u)):(f=r.redMul(u).redMul(s.redSub(i)),p=this.curve._mulC(c).redMul(u)),this.curve.point(d,f,p)},"_projAdd");vn.prototype.add=a(function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},"add");vn.prototype.mul=a(function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},"mul");vn.prototype.mulAdd=a(function(e,r,n){return this.curve._wnafMulAdd(1,[this,r],[e,n],2,!1)},"mulAdd");vn.prototype.jmulAdd=a(function(e,r,n){return this.curve._wnafMulAdd(1,[this,r],[e,n],2,!0)},"jmulAdd");vn.prototype.normalize=a(function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},"normalize");vn.prototype.neg=a(function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},"neg");vn.prototype.getX=a(function(){return this.normalize(),this.x.fromRed()},"getX");vn.prototype.getY=a(function(){return this.normalize(),this.y.fromRed()},"getY");vn.prototype.eq=a(function(e){return this===e||this.getX().cmp(e.getX())===0&&this.getY().cmp(e.getY())===0},"eq");vn.prototype.eqXToP=a(function(e){var r=e.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(r)===0)return!0;for(var n=e.clone(),i=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(i),this.x.cmp(r)===0)return!0}},"eqXToP");vn.prototype.toP=vn.prototype.normalize;vn.prototype.mixedAdd=vn.prototype.add});var vX=v(t4e=>{"use strict";var wP=t4e;wP.base=pA();wP.short=JOe();wP.mont=QOe();wP.edwards=e4e()});var Pl=v(Zr=>{"use strict";var QPt=n0(),YPt=op();Zr.inherits=YPt;function ZPt(t,e){return(t.charCodeAt(e)&64512)!==55296||e<0||e+1>=t.length?!1:(t.charCodeAt(e+1)&64512)===56320}a(ZPt,"isSurrogatePair");function e5t(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if(typeof t=="string")if(e){if(e==="hex")for(t=t.replace(/[^a-z0-9]+/ig,""),t.length%2!==0&&(t="0"+t),i=0;i<t.length;i+=2)r.push(parseInt(t[i]+t[i+1],16))}else for(var n=0,i=0;i<t.length;i++){var s=t.charCodeAt(i);s<128?r[n++]=s:s<2048?(r[n++]=s>>6|192,r[n++]=s&63|128):ZPt(t,i)?(s=65536+((s&1023)<<10)+(t.charCodeAt(++i)&1023),r[n++]=s>>18|240,r[n++]=s>>12&63|128,r[n++]=s>>6&63|128,r[n++]=s&63|128):(r[n++]=s>>12|224,r[n++]=s>>6&63|128,r[n++]=s&63|128)}else for(i=0;i<t.length;i++)r[i]=t[i]|0;return r}a(e5t,"toArray");Zr.toArray=e5t;function t5t(t){for(var e="",r=0;r<t.length;r++)e+=n4e(t[r].toString(16));return e}a(t5t,"toHex");Zr.toHex=t5t;function r4e(t){var e=t>>>24|t>>>8&65280|t<<8&16711680|(t&255)<<24;return e>>>0}a(r4e,"htonl");Zr.htonl=r4e;function r5t(t,e){for(var r="",n=0;n<t.length;n++){var i=t[n];e==="little"&&(i=r4e(i)),r+=i4e(i.toString(16))}return r}a(r5t,"toHex32");Zr.toHex32=r5t;function n4e(t){return t.length===1?"0"+t:t}a(n4e,"zero2");Zr.zero2=n4e;function i4e(t){return t.length===7?"0"+t:t.length===6?"00"+t:t.length===5?"000"+t:t.length===4?"0000"+t:t.length===3?"00000"+t:t.length===2?"000000"+t:t.length===1?"0000000"+t:t}a(i4e,"zero8");Zr.zero8=i4e;function n5t(t,e,r,n){var i=r-e;QPt(i%4===0);for(var s=new Array(i/4),o=0,c=e;o<s.length;o++,c+=4){var u;n==="big"?u=t[c]<<24|t[c+1]<<16|t[c+2]<<8|t[c+3]:u=t[c+3]<<24|t[c+2]<<16|t[c+1]<<8|t[c],s[o]=u>>>0}return s}a(n5t,"join32");Zr.join32=n5t;function i5t(t,e){for(var r=new Array(t.length*4),n=0,i=0;n<t.length;n++,i+=4){var s=t[n];e==="big"?(r[i]=s>>>24,r[i+1]=s>>>16&255,r[i+2]=s>>>8&255,r[i+3]=s&255):(r[i+3]=s>>>24,r[i+2]=s>>>16&255,r[i+1]=s>>>8&255,r[i]=s&255)}return r}a(i5t,"split32");Zr.split32=i5t;function a5t(t,e){return t>>>e|t<<32-e}a(a5t,"rotr32");Zr.rotr32=a5t;function s5t(t,e){return t<<e|t>>>32-e}a(s5t,"rotl32");Zr.rotl32=s5t;function o5t(t,e){return t+e>>>0}a(o5t,"sum32");Zr.sum32=o5t;function c5t(t,e,r){return t+e+r>>>0}a(c5t,"sum32_3");Zr.sum32_3=c5t;function u5t(t,e,r,n){return t+e+r+n>>>0}a(u5t,"sum32_4");Zr.sum32_4=u5t;function l5t(t,e,r,n,i){return t+e+r+n+i>>>0}a(l5t,"sum32_5");Zr.sum32_5=l5t;function d5t(t,e,r,n){var i=t[e],s=t[e+1],o=n+s>>>0,c=(o<n?1:0)+r+i;t[e]=c>>>0,t[e+1]=o}a(d5t,"sum64");Zr.sum64=d5t;function f5t(t,e,r,n){var i=e+n>>>0,s=(i<e?1:0)+t+r;return s>>>0}a(f5t,"sum64_hi");Zr.sum64_hi=f5t;function p5t(t,e,r,n){var i=e+n;return i>>>0}a(p5t,"sum64_lo");Zr.sum64_lo=p5t;function _5t(t,e,r,n,i,s,o,c){var u=0,l=e;l=l+n>>>0,u+=l<e?1:0,l=l+s>>>0,u+=l<s?1:0,l=l+c>>>0,u+=l<c?1:0;var d=t+r+i+o+u;return d>>>0}a(_5t,"sum64_4_hi");Zr.sum64_4_hi=_5t;function h5t(t,e,r,n,i,s,o,c){var u=e+n+s+c;return u>>>0}a(h5t,"sum64_4_lo");Zr.sum64_4_lo=h5t;function m5t(t,e,r,n,i,s,o,c,u,l){var d=0,f=e;f=f+n>>>0,d+=f<e?1:0,f=f+s>>>0,d+=f<s?1:0,f=f+c>>>0,d+=f<c?1:0,f=f+l>>>0,d+=f<l?1:0;var p=t+r+i+o+u+d;return p>>>0}a(m5t,"sum64_5_hi");Zr.sum64_5_hi=m5t;function g5t(t,e,r,n,i,s,o,c,u,l){var d=e+n+s+c+l;return d>>>0}a(g5t,"sum64_5_lo");Zr.sum64_5_lo=g5t;function y5t(t,e,r){var n=e<<32-r|t>>>r;return n>>>0}a(y5t,"rotr64_hi");Zr.rotr64_hi=y5t;function v5t(t,e,r){var n=t<<32-r|e>>>r;return n>>>0}a(v5t,"rotr64_lo");Zr.rotr64_lo=v5t;function b5t(t,e,r){return t>>>r}a(b5t,"shr64_hi");Zr.shr64_hi=b5t;function x5t(t,e,r){var n=t<<32-r|e>>>r;return n>>>0}a(x5t,"shr64_lo");Zr.shr64_lo=x5t});var l1=v(s4e=>{"use strict";var a4e=Pl(),w5t=n0();function EP(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}a(EP,"BlockHash");s4e.BlockHash=EP;EP.prototype.update=a(function(e,r){if(e=a4e.toArray(e,r),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){e=this.pending;var n=e.length%this._delta8;this.pending=e.slice(e.length-n,e.length),this.pending.length===0&&(this.pending=null),e=a4e.join32(e,0,e.length-n,this.endian);for(var i=0;i<e.length;i+=this._delta32)this._update(e,i,i+this._delta32)}return this},"update");EP.prototype.digest=a(function(e){return this.update(this._pad()),w5t(this.pending===null),this._digest(e)},"digest");EP.prototype._pad=a(function(){var e=this.pendingTotal,r=this._delta8,n=r-(e+this.padLength)%r,i=new Array(n+this.padLength);i[0]=128;for(var s=1;s<n;s++)i[s]=0;if(e<<=3,this.endian==="big"){for(var o=8;o<this.padLength;o++)i[s++]=0;i[s++]=0,i[s++]=0,i[s++]=0,i[s++]=0,i[s++]=e>>>24&255,i[s++]=e>>>16&255,i[s++]=e>>>8&255,i[s++]=e&255}else for(i[s++]=e&255,i[s++]=e>>>8&255,i[s++]=e>>>16&255,i[s++]=e>>>24&255,i[s++]=0,i[s++]=0,i[s++]=0,i[s++]=0,o=8;o<this.padLength;o++)i[s++]=0;return i},"pad")});var bX=v(Up=>{"use strict";var E5t=Pl(),ff=E5t.rotr32;function T5t(t,e,r,n){if(t===0)return o4e(e,r,n);if(t===1||t===3)return u4e(e,r,n);if(t===2)return c4e(e,r,n)}a(T5t,"ft_1");Up.ft_1=T5t;function o4e(t,e,r){return t&e^~t&r}a(o4e,"ch32");Up.ch32=o4e;function c4e(t,e,r){return t&e^t&r^e&r}a(c4e,"maj32");Up.maj32=c4e;function u4e(t,e,r){return t^e^r}a(u4e,"p32");Up.p32=u4e;function S5t(t){return ff(t,2)^ff(t,13)^ff(t,22)}a(S5t,"s0_256");Up.s0_256=S5t;function A5t(t){return ff(t,6)^ff(t,11)^ff(t,25)}a(A5t,"s1_256");Up.s1_256=A5t;function k5t(t){return ff(t,7)^ff(t,18)^t>>>3}a(k5t,"g0_256");Up.g0_256=k5t;function N5t(t){return ff(t,17)^ff(t,19)^t>>>10}a(N5t,"g1_256");Up.g1_256=N5t});var f4e=v((GFr,d4e)=>{"use strict";var d1=Pl(),O5t=l1(),I5t=bX(),xX=d1.rotl32,_A=d1.sum32,C5t=d1.sum32_5,R5t=I5t.ft_1,l4e=O5t.BlockHash,P5t=[1518500249,1859775393,2400959708,3395469782];function pf(){if(!(this instanceof pf))return new pf;l4e.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}a(pf,"SHA1");d1.inherits(pf,l4e);d4e.exports=pf;pf.blockSize=512;pf.outSize=160;pf.hmacStrength=80;pf.padLength=64;pf.prototype._update=a(function(e,r){for(var n=this.W,i=0;i<16;i++)n[i]=e[r+i];for(;i<n.length;i++)n[i]=xX(n[i-3]^n[i-8]^n[i-14]^n[i-16],1);var s=this.h[0],o=this.h[1],c=this.h[2],u=this.h[3],l=this.h[4];for(i=0;i<n.length;i++){var d=~~(i/20),f=C5t(xX(s,5),R5t(d,o,c,u),l,n[i],P5t[d]);l=u,u=c,c=xX(o,30),o=s,s=f}this.h[0]=_A(this.h[0],s),this.h[1]=_A(this.h[1],o),this.h[2]=_A(this.h[2],c),this.h[3]=_A(this.h[3],u),this.h[4]=_A(this.h[4],l)},"_update");pf.prototype._digest=a(function(e){return e==="hex"?d1.toHex32(this.h,"big"):d1.split32(this.h,"big")},"digest")});var wX=v((KFr,_4e)=>{"use strict";var f1=Pl(),L5t=l1(),p1=bX(),D5t=n0(),Ll=f1.sum32,B5t=f1.sum32_4,M5t=f1.sum32_5,F5t=p1.ch32,U5t=p1.maj32,q5t=p1.s0_256,H5t=p1.s1_256,j5t=p1.g0_256,$5t=p1.g1_256,p4e=L5t.BlockHash,G5t=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function _f(){if(!(this instanceof _f))return new _f;p4e.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=G5t,this.W=new Array(64)}a(_f,"SHA256");f1.inherits(_f,p4e);_4e.exports=_f;_f.blockSize=512;_f.outSize=256;_f.hmacStrength=192;_f.padLength=64;_f.prototype._update=a(function(e,r){for(var n=this.W,i=0;i<16;i++)n[i]=e[r+i];for(;i<n.length;i++)n[i]=B5t($5t(n[i-2]),n[i-7],j5t(n[i-15]),n[i-16]);var s=this.h[0],o=this.h[1],c=this.h[2],u=this.h[3],l=this.h[4],d=this.h[5],f=this.h[6],p=this.h[7];for(D5t(this.k.length===n.length),i=0;i<n.length;i++){var _=M5t(p,H5t(l),F5t(l,d,f),this.k[i],n[i]),h=Ll(q5t(s),U5t(s,o,c));p=f,f=d,d=l,l=Ll(u,_),u=c,c=o,o=s,s=Ll(_,h)}this.h[0]=Ll(this.h[0],s),this.h[1]=Ll(this.h[1],o),this.h[2]=Ll(this.h[2],c),this.h[3]=Ll(this.h[3],u),this.h[4]=Ll(this.h[4],l),this.h[5]=Ll(this.h[5],d),this.h[6]=Ll(this.h[6],f),this.h[7]=Ll(this.h[7],p)},"_update");_f.prototype._digest=a(function(e){return e==="hex"?f1.toHex32(this.h,"big"):f1.split32(this.h,"big")},"digest")});var g4e=v((JFr,m4e)=>{"use strict";var EX=Pl(),h4e=wX();function qp(){if(!(this instanceof qp))return new qp;h4e.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}a(qp,"SHA224");EX.inherits(qp,h4e);m4e.exports=qp;qp.blockSize=512;qp.outSize=224;qp.hmacStrength=192;qp.padLength=64;qp.prototype._digest=a(function(e){return e==="hex"?EX.toHex32(this.h.slice(0,7),"big"):EX.split32(this.h.slice(0,7),"big")},"digest")});var AX=v((XFr,x4e)=>{"use strict";var Mo=Pl(),V5t=l1(),K5t=n0(),hf=Mo.rotr64_hi,mf=Mo.rotr64_lo,y4e=Mo.shr64_hi,v4e=Mo.shr64_lo,s0=Mo.sum64,TX=Mo.sum64_hi,SX=Mo.sum64_lo,z5t=Mo.sum64_4_hi,J5t=Mo.sum64_4_lo,W5t=Mo.sum64_5_hi,X5t=Mo.sum64_5_lo,b4e=V5t.BlockHash,Q5t=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function Dl(){if(!(this instanceof Dl))return new Dl;b4e.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=Q5t,this.W=new Array(160)}a(Dl,"SHA512");Mo.inherits(Dl,b4e);x4e.exports=Dl;Dl.blockSize=1024;Dl.outSize=512;Dl.hmacStrength=192;Dl.padLength=128;Dl.prototype._prepareBlock=a(function(e,r){for(var n=this.W,i=0;i<32;i++)n[i]=e[r+i];for(;i<n.length;i+=2){var s=cLt(n[i-4],n[i-3]),o=uLt(n[i-4],n[i-3]),c=n[i-14],u=n[i-13],l=sLt(n[i-30],n[i-29]),d=oLt(n[i-30],n[i-29]),f=n[i-32],p=n[i-31];n[i]=z5t(s,o,c,u,l,d,f,p),n[i+1]=J5t(s,o,c,u,l,d,f,p)}},"_prepareBlock");Dl.prototype._update=a(function(e,r){this._prepareBlock(e,r);var n=this.W,i=this.h[0],s=this.h[1],o=this.h[2],c=this.h[3],u=this.h[4],l=this.h[5],d=this.h[6],f=this.h[7],p=this.h[8],_=this.h[9],h=this.h[10],m=this.h[11],g=this.h[12],y=this.h[13],w=this.h[14],E=this.h[15];K5t(this.k.length===n.length);for(var A=0;A<n.length;A+=2){var I=w,R=E,$=iLt(p,_),B=aLt(p,_),U=Y5t(p,_,h,m,g,y),L=Z5t(p,_,h,m,g,y),b=this.k[A],T=this.k[A+1],k=n[A],S=n[A+1],N=W5t(I,R,$,B,U,L,b,T,k,S),P=X5t(I,R,$,B,U,L,b,T,k,S);I=rLt(i,s),R=nLt(i,s),$=eLt(i,s,o,c,u,l),B=tLt(i,s,o,c,u,l);var F=TX(I,R,$,B),D=SX(I,R,$,B);w=g,E=y,g=h,y=m,h=p,m=_,p=TX(d,f,N,P),_=SX(f,f,N,P),d=u,f=l,u=o,l=c,o=i,c=s,i=TX(N,P,F,D),s=SX(N,P,F,D)}s0(this.h,0,i,s),s0(this.h,2,o,c),s0(this.h,4,u,l),s0(this.h,6,d,f),s0(this.h,8,p,_),s0(this.h,10,h,m),s0(this.h,12,g,y),s0(this.h,14,w,E)},"_update");Dl.prototype._digest=a(function(e){return e==="hex"?Mo.toHex32(this.h,"big"):Mo.split32(this.h,"big")},"digest");function Y5t(t,e,r,n,i){var s=t&r^~t&i;return s<0&&(s+=4294967296),s}a(Y5t,"ch64_hi");function Z5t(t,e,r,n,i,s){var o=e&n^~e&s;return o<0&&(o+=4294967296),o}a(Z5t,"ch64_lo");function eLt(t,e,r,n,i){var s=t&r^t&i^r&i;return s<0&&(s+=4294967296),s}a(eLt,"maj64_hi");function tLt(t,e,r,n,i,s){var o=e&n^e&s^n&s;return o<0&&(o+=4294967296),o}a(tLt,"maj64_lo");function rLt(t,e){var r=hf(t,e,28),n=hf(e,t,2),i=hf(e,t,7),s=r^n^i;return s<0&&(s+=4294967296),s}a(rLt,"s0_512_hi");function nLt(t,e){var r=mf(t,e,28),n=mf(e,t,2),i=mf(e,t,7),s=r^n^i;return s<0&&(s+=4294967296),s}a(nLt,"s0_512_lo");function iLt(t,e){var r=hf(t,e,14),n=hf(t,e,18),i=hf(e,t,9),s=r^n^i;return s<0&&(s+=4294967296),s}a(iLt,"s1_512_hi");function aLt(t,e){var r=mf(t,e,14),n=mf(t,e,18),i=mf(e,t,9),s=r^n^i;return s<0&&(s+=4294967296),s}a(aLt,"s1_512_lo");function sLt(t,e){var r=hf(t,e,1),n=hf(t,e,8),i=y4e(t,e,7),s=r^n^i;return s<0&&(s+=4294967296),s}a(sLt,"g0_512_hi");function oLt(t,e){var r=mf(t,e,1),n=mf(t,e,8),i=v4e(t,e,7),s=r^n^i;return s<0&&(s+=4294967296),s}a(oLt,"g0_512_lo");function cLt(t,e){var r=hf(t,e,19),n=hf(e,t,29),i=y4e(t,e,6),s=r^n^i;return s<0&&(s+=4294967296),s}a(cLt,"g1_512_hi");function uLt(t,e){var r=mf(t,e,19),n=mf(e,t,29),i=v4e(t,e,6),s=r^n^i;return s<0&&(s+=4294967296),s}a(uLt,"g1_512_lo")});var T4e=v((YFr,E4e)=>{"use strict";var kX=Pl(),w4e=AX();function Hp(){if(!(this instanceof Hp))return new Hp;w4e.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}a(Hp,"SHA384");kX.inherits(Hp,w4e);E4e.exports=Hp;Hp.blockSize=1024;Hp.outSize=384;Hp.hmacStrength=192;Hp.padLength=128;Hp.prototype._digest=a(function(e){return e==="hex"?kX.toHex32(this.h.slice(0,12),"big"):kX.split32(this.h.slice(0,12),"big")},"digest")});var S4e=v(_1=>{"use strict";_1.sha1=f4e();_1.sha224=g4e();_1.sha256=wX();_1.sha384=T4e();_1.sha512=AX()});var C4e=v(I4e=>{"use strict";var uy=Pl(),lLt=l1(),TP=uy.rotl32,A4e=uy.sum32,hA=uy.sum32_3,k4e=uy.sum32_4,O4e=lLt.BlockHash;function gf(){if(!(this instanceof gf))return new gf;O4e.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}a(gf,"RIPEMD160");uy.inherits(gf,O4e);I4e.ripemd160=gf;gf.blockSize=512;gf.outSize=160;gf.hmacStrength=192;gf.padLength=64;gf.prototype._update=a(function(e,r){for(var n=this.h[0],i=this.h[1],s=this.h[2],o=this.h[3],c=this.h[4],u=n,l=i,d=s,f=o,p=c,_=0;_<80;_++){var h=A4e(TP(k4e(n,N4e(_,i,s,o),e[pLt[_]+r],dLt(_)),hLt[_]),c);n=c,c=o,o=TP(s,10),s=i,i=h,h=A4e(TP(k4e(u,N4e(79-_,l,d,f),e[_Lt[_]+r],fLt(_)),mLt[_]),p),u=p,p=f,f=TP(d,10),d=l,l=h}h=hA(this.h[1],s,f),this.h[1]=hA(this.h[2],o,p),this.h[2]=hA(this.h[3],c,u),this.h[3]=hA(this.h[4],n,l),this.h[4]=hA(this.h[0],i,d),this.h[0]=h},"update");gf.prototype._digest=a(function(e){return e==="hex"?uy.toHex32(this.h,"little"):uy.split32(this.h,"little")},"digest");function N4e(t,e,r,n){return t<=15?e^r^n:t<=31?e&r|~e&n:t<=47?(e|~r)^n:t<=63?e&n|r&~n:e^(r|~n)}a(N4e,"f");function dLt(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}a(dLt,"K");function fLt(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}a(fLt,"Kh");var pLt=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],_Lt=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],hLt=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],mLt=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]});var P4e=v((nUr,R4e)=>{"use strict";var gLt=Pl(),yLt=n0();function h1(t,e,r){if(!(this instanceof h1))return new h1(t,e,r);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(gLt.toArray(e,r))}a(h1,"Hmac");R4e.exports=h1;h1.prototype._init=a(function(e){e.length>this.blockSize&&(e=new this.Hash().update(e).digest()),yLt(e.length<=this.blockSize);for(var r=e.length;r<this.blockSize;r++)e.push(0);for(r=0;r<e.length;r++)e[r]^=54;for(this.inner=new this.Hash().update(e),r=0;r<e.length;r++)e[r]^=106;this.outer=new this.Hash().update(e)},"init");h1.prototype.update=a(function(e,r){return this.inner.update(e,r),this},"update");h1.prototype.digest=a(function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)},"digest")});var SP=v(L4e=>{var ns=L4e;ns.utils=Pl();ns.common=l1();ns.sha=S4e();ns.ripemd=C4e();ns.hmac=P4e();ns.sha1=ns.sha.sha1;ns.sha256=ns.sha.sha256;ns.sha224=ns.sha.sha224;ns.sha384=ns.sha.sha384;ns.sha512=ns.sha.sha512;ns.ripemd160=ns.ripemd.ripemd160});var B4e=v((sUr,D4e)=>{D4e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}});var AP=v(U4e=>{"use strict";var OX=U4e,o0=SP(),NX=vX(),vLt=fc(),M4e=vLt.assert;function F4e(t){t.type==="short"?this.curve=new NX.short(t):t.type==="edwards"?this.curve=new NX.edwards(t):this.curve=new NX.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,M4e(this.g.validate(),"Invalid curve"),M4e(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}a(F4e,"PresetCurve");OX.PresetCurve=F4e;function c0(t,e){Object.defineProperty(OX,t,{configurable:!0,enumerable:!0,get:a(function(){var r=new F4e(e);return Object.defineProperty(OX,t,{configurable:!0,enumerable:!0,value:r}),r},"get")})}a(c0,"defineCurve");c0("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o0.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]});c0("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o0.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]});c0("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o0.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]});c0("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o0.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]});c0("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o0.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]});c0("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o0.sha256,gRed:!1,g:["9"]});c0("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o0.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var IX;try{IX=B4e()}catch{IX=void 0}c0("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o0.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",IX]})});var j4e=v((uUr,H4e)=>{"use strict";var bLt=SP(),ly=pX(),q4e=n0();function u0(t){if(!(this instanceof u0))return new u0(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=ly.toArray(t.entropy,t.entropyEnc||"hex"),r=ly.toArray(t.nonce,t.nonceEnc||"hex"),n=ly.toArray(t.pers,t.persEnc||"hex");q4e(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,r,n)}a(u0,"HmacDRBG");H4e.exports=u0;u0.prototype._init=a(function(e,r,n){var i=e.concat(r).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var s=0;s<this.V.length;s++)this.K[s]=0,this.V[s]=1;this._update(i),this._reseed=1,this.reseedInterval=281474976710656},"init");u0.prototype._hmac=a(function(){return new bLt.hmac(this.hash,this.K)},"hmac");u0.prototype._update=a(function(e){var r=this._hmac().update(this.V).update([0]);e&&(r=r.update(e)),this.K=r.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},"update");u0.prototype.reseed=a(function(e,r,n,i){typeof r!="string"&&(i=n,n=r,r=null),e=ly.toArray(e,r),n=ly.toArray(n,i),q4e(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},"reseed");u0.prototype.generate=a(function(e,r,n,i){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof r!="string"&&(i=n,n=r,r=null),n&&(n=ly.toArray(n,i||"hex"),this._update(n));for(var s=[];s.length<e;)this.V=this._hmac().update(this.V).digest(),s=s.concat(this.V);var o=s.slice(0,e);return this._update(n),this._reseed++,ly.encode(o,r)},"generate")});var G4e=v((dUr,$4e)=>{"use strict";var xLt=Cl(),wLt=fc(),CX=wLt.assert;function vs(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}a(vs,"KeyPair");$4e.exports=vs;vs.fromPublic=a(function(e,r,n){return r instanceof vs?r:new vs(e,{pub:r,pubEnc:n})},"fromPublic");vs.fromPrivate=a(function(e,r,n){return r instanceof vs?r:new vs(e,{priv:r,privEnc:n})},"fromPrivate");vs.prototype.validate=a(function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},"validate");vs.prototype.getPublic=a(function(e,r){return typeof e=="string"&&(r=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),r?this.pub.encode(r,e):this.pub},"getPublic");vs.prototype.getPrivate=a(function(e){return e==="hex"?this.priv.toString(16,2):this.priv},"getPrivate");vs.prototype._importPrivate=a(function(e,r){this.priv=new xLt(e,r||16),this.priv=this.priv.umod(this.ec.curve.n)},"_importPrivate");vs.prototype._importPublic=a(function(e,r){if(e.x||e.y){this.ec.curve.type==="mont"?CX(e.x,"Need x coordinate"):(this.ec.curve.type==="short"||this.ec.curve.type==="edwards")&&CX(e.x&&e.y,"Need both x and y coordinate"),this.pub=this.ec.curve.point(e.x,e.y);return}this.pub=this.ec.curve.decodePoint(e,r)},"_importPublic");vs.prototype.derive=a(function(e){return e.validate()||CX(e.validate(),"public point not validated"),e.mul(this.priv).getX()},"derive");vs.prototype.sign=a(function(e,r,n){return this.ec.sign(e,this,r,n)},"sign");vs.prototype.verify=a(function(e,r,n){return this.ec.verify(e,r,this,void 0,n)},"verify");vs.prototype.inspect=a(function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"},"inspect")});var z4e=v((pUr,K4e)=>{"use strict";var kP=Cl(),LX=fc(),ELt=LX.assert;function NP(t,e){if(t instanceof NP)return t;this._importDER(t,e)||(ELt(t.r&&t.s,"Signature without r or s"),this.r=new kP(t.r,16),this.s=new kP(t.s,16),t.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}a(NP,"Signature");K4e.exports=NP;function TLt(){this.place=0}a(TLt,"Position");function RX(t,e){var r=t[e.place++];if(!(r&128))return r;var n=r&15;if(n===0||n>4||t[e.place]===0)return!1;for(var i=0,s=0,o=e.place;s<n;s++,o++)i<<=8,i|=t[o],i>>>=0;return i<=127?!1:(e.place=o,i)}a(RX,"getLength");function V4e(t){for(var e=0,r=t.length-1;!t[e]&&!(t[e+1]&128)&&e<r;)e++;return e===0?t:t.slice(e)}a(V4e,"rmPadding");NP.prototype._importDER=a(function(e,r){e=LX.toArray(e,r);var n=new TLt;if(e[n.place++]!==48)return!1;var i=RX(e,n);if(i===!1||i+n.place!==e.length||e[n.place++]!==2)return!1;var s=RX(e,n);if(s===!1||(e[n.place]&128)!==0)return!1;var o=e.slice(n.place,s+n.place);if(n.place+=s,e[n.place++]!==2)return!1;var c=RX(e,n);if(c===!1||e.length!==c+n.place||(e[n.place]&128)!==0)return!1;var u=e.slice(n.place,c+n.place);if(o[0]===0)if(o[1]&128)o=o.slice(1);else return!1;if(u[0]===0)if(u[1]&128)u=u.slice(1);else return!1;return this.r=new kP(o),this.s=new kP(u),this.recoveryParam=null,!0},"_importDER");function PX(t,e){if(e<128){t.push(e);return}var r=1+(Math.log(e)/Math.LN2>>>3);for(t.push(r|128);--r;)t.push(e>>>(r<<3)&255);t.push(e)}a(PX,"constructLength");NP.prototype.toDER=a(function(e){var r=this.r.toArray(),n=this.s.toArray();for(r[0]&128&&(r=[0].concat(r)),n[0]&128&&(n=[0].concat(n)),r=V4e(r),n=V4e(n);!n[0]&&!(n[1]&128);)n=n.slice(1);var i=[2];PX(i,r.length),i=i.concat(r),i.push(2),PX(i,n.length);var s=i.concat(n),o=[48];return PX(o,s.length),o=o.concat(s),LX.encode(o,e)},"toDER")});var X4e=v((hUr,W4e)=>{"use strict";var Bl=Cl(),J4e=j4e(),SLt=fc(),DX=AP(),ALt=gX(),dy=SLt.assert,BX=G4e(),OP=z4e();function uu(t){if(!(this instanceof uu))return new uu(t);typeof t=="string"&&(dy(Object.prototype.hasOwnProperty.call(DX,t),"Unknown curve "+t),t=DX[t]),t instanceof DX.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}a(uu,"EC");W4e.exports=uu;uu.prototype.keyPair=a(function(e){return new BX(this,e)},"keyPair");uu.prototype.keyFromPrivate=a(function(e,r){return BX.fromPrivate(this,e,r)},"keyFromPrivate");uu.prototype.keyFromPublic=a(function(e,r){return BX.fromPublic(this,e,r)},"keyFromPublic");uu.prototype.genKeyPair=a(function(e){e||(e={});for(var r=new J4e({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||ALt(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),i=this.n.sub(new Bl(2));;){var s=new Bl(r.generate(n));if(!(s.cmp(i)>0))return s.iaddn(1),this.keyFromPrivate(s)}},"genKeyPair");uu.prototype._truncateToN=a(function(e,r,n){var i;if(Bl.isBN(e)||typeof e=="number")e=new Bl(e,16),i=e.byteLength();else if(typeof e=="object")i=e.length,e=new Bl(e,16);else{var s=e.toString();i=s.length+1>>>1,e=new Bl(s,16)}typeof n!="number"&&(n=i*8);var o=n-this.n.bitLength();return o>0&&(e=e.ushrn(o)),!r&&e.cmp(this.n)>=0?e.sub(this.n):e},"_truncateToN");uu.prototype.sign=a(function(e,r,n,i){if(typeof n=="object"&&(i=n,n=null),i||(i={}),typeof e!="string"&&typeof e!="number"&&!Bl.isBN(e)){dy(typeof e=="object"&&e&&typeof e.length=="number","Expected message to be an array-like, a hex string, or a BN instance"),dy(e.length>>>0===e.length);for(var s=0;s<e.length;s++)dy((e[s]&255)===e[s])}r=this.keyFromPrivate(r,n),e=this._truncateToN(e,!1,i.msgBitLength),dy(!e.isNeg(),"Can not sign a negative message");var o=this.n.byteLength(),c=r.getPrivate().toArray("be",o),u=e.toArray("be",o);dy(new Bl(u).eq(e),"Can not sign message");for(var l=new J4e({hash:this.hash,entropy:c,nonce:u,pers:i.pers,persEnc:i.persEnc||"utf8"}),d=this.n.sub(new Bl(1)),f=0;;f++){var p=i.k?i.k(f):new Bl(l.generate(this.n.byteLength()));if(p=this._truncateToN(p,!0),!(p.cmpn(1)<=0||p.cmp(d)>=0)){var _=this.g.mul(p);if(!_.isInfinity()){var h=_.getX(),m=h.umod(this.n);if(m.cmpn(0)!==0){var g=p.invm(this.n).mul(m.mul(r.getPrivate()).iadd(e));if(g=g.umod(this.n),g.cmpn(0)!==0){var y=(_.getY().isOdd()?1:0)|(h.cmp(m)!==0?2:0);return i.canonical&&g.cmp(this.nh)>0&&(g=this.n.sub(g),y^=1),new OP({r:m,s:g,recoveryParam:y})}}}}}},"sign");uu.prototype.verify=a(function(e,r,n,i,s){s||(s={}),e=this._truncateToN(e,!1,s.msgBitLength),n=this.keyFromPublic(n,i),r=new OP(r,"hex");var o=r.r,c=r.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0||c.cmpn(1)<0||c.cmp(this.n)>=0)return!1;var u=c.invm(this.n),l=u.mul(e).umod(this.n),d=u.mul(o).umod(this.n),f;return this.curve._maxwellTrick?(f=this.g.jmulAdd(l,n.getPublic(),d),f.isInfinity()?!1:f.eqXToP(o)):(f=this.g.mulAdd(l,n.getPublic(),d),f.isInfinity()?!1:f.getX().umod(this.n).cmp(o)===0)},"verify");uu.prototype.recoverPubKey=function(t,e,r,n){dy((3&r)===r,"The recovery param is more than two bits"),e=new OP(e,n);var i=this.n,s=new Bl(t),o=e.r,c=e.s,u=r&1,l=r>>1;if(o.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");l?o=this.curve.pointFromX(o.add(this.curve.n),u):o=this.curve.pointFromX(o,u);var d=e.r.invm(i),f=i.sub(s).mul(d).umod(i),p=c.mul(d).umod(i);return this.g.mulAdd(f,o,p)};uu.prototype.getKeyRecoveryParam=function(t,e,r,n){if(e=new OP(e,n),e.recoveryParam!==null)return e.recoveryParam;for(var i=0;i<4;i++){var s;try{s=this.recoverPubKey(t,e,i)}catch{continue}if(s.eq(r))return i}throw new Error("Unable to find valid recovery factor")}});var eIe=v((gUr,Z4e)=>{"use strict";var mA=fc(),Y4e=mA.assert,Q4e=mA.parseBytes,m1=mA.cachedProperty;function ja(t,e){this.eddsa=t,this._secret=Q4e(e.secret),t.isPoint(e.pub)?this._pub=e.pub:this._pubBytes=Q4e(e.pub)}a(ja,"KeyPair");ja.fromPublic=a(function(e,r){return r instanceof ja?r:new ja(e,{pub:r})},"fromPublic");ja.fromSecret=a(function(e,r){return r instanceof ja?r:new ja(e,{secret:r})},"fromSecret");ja.prototype.secret=a(function(){return this._secret},"secret");m1(ja,"pubBytes",a(function(){return this.eddsa.encodePoint(this.pub())},"pubBytes"));m1(ja,"pub",a(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())},"pub"));m1(ja,"privBytes",a(function(){var e=this.eddsa,r=this.hash(),n=e.encodingLength-1,i=r.slice(0,e.encodingLength);return i[0]&=248,i[n]&=127,i[n]|=64,i},"privBytes"));m1(ja,"priv",a(function(){return this.eddsa.decodeInt(this.privBytes())},"priv"));m1(ja,"hash",a(function(){return this.eddsa.hash().update(this.secret()).digest()},"hash"));m1(ja,"messagePrefix",a(function(){return this.hash().slice(this.eddsa.encodingLength)},"messagePrefix"));ja.prototype.sign=a(function(e){return Y4e(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},"sign");ja.prototype.verify=a(function(e,r){return this.eddsa.verify(e,r,this)},"verify");ja.prototype.getSecret=a(function(e){return Y4e(this._secret,"KeyPair is public only"),mA.encode(this.secret(),e)},"getSecret");ja.prototype.getPublic=a(function(e){return mA.encode(this.pubBytes(),e)},"getPublic");Z4e.exports=ja});var nIe=v((vUr,rIe)=>{"use strict";var kLt=Cl(),IP=fc(),tIe=IP.assert,CP=IP.cachedProperty,NLt=IP.parseBytes;function fy(t,e){this.eddsa=t,typeof e!="object"&&(e=NLt(e)),Array.isArray(e)&&(tIe(e.length===t.encodingLength*2,"Signature has invalid size"),e={R:e.slice(0,t.encodingLength),S:e.slice(t.encodingLength)}),tIe(e.R&&e.S,"Signature without R or S"),t.isPoint(e.R)&&(this._R=e.R),e.S instanceof kLt&&(this._S=e.S),this._Rencoded=Array.isArray(e.R)?e.R:e.Rencoded,this._Sencoded=Array.isArray(e.S)?e.S:e.Sencoded}a(fy,"Signature");CP(fy,"S",a(function(){return this.eddsa.decodeInt(this.Sencoded())},"S"));CP(fy,"R",a(function(){return this.eddsa.decodePoint(this.Rencoded())},"R"));CP(fy,"Rencoded",a(function(){return this.eddsa.encodePoint(this.R())},"Rencoded"));CP(fy,"Sencoded",a(function(){return this.eddsa.encodeInt(this.S())},"Sencoded"));fy.prototype.toBytes=a(function(){return this.Rencoded().concat(this.Sencoded())},"toBytes");fy.prototype.toHex=a(function(){return IP.encode(this.toBytes(),"hex").toUpperCase()},"toHex");rIe.exports=fy});var cIe=v((xUr,oIe)=>{"use strict";var OLt=SP(),ILt=AP(),g1=fc(),CLt=g1.assert,aIe=g1.parseBytes,sIe=eIe(),iIe=nIe();function Fo(t){if(CLt(t==="ed25519","only tested with ed25519 so far"),!(this instanceof Fo))return new Fo(t);t=ILt[t].curve,this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=OLt.sha512}a(Fo,"EDDSA");oIe.exports=Fo;Fo.prototype.sign=a(function(e,r){e=aIe(e);var n=this.keyFromSecret(r),i=this.hashInt(n.messagePrefix(),e),s=this.g.mul(i),o=this.encodePoint(s),c=this.hashInt(o,n.pubBytes(),e).mul(n.priv()),u=i.add(c).umod(this.curve.n);return this.makeSignature({R:s,S:u,Rencoded:o})},"sign");Fo.prototype.verify=a(function(e,r,n){if(e=aIe(e),r=this.makeSignature(r),r.S().gte(r.eddsa.curve.n)||r.S().isNeg())return!1;var i=this.keyFromPublic(n),s=this.hashInt(r.Rencoded(),i.pubBytes(),e),o=this.g.mul(r.S()),c=r.R().add(i.pub().mul(s));return c.eq(o)},"verify");Fo.prototype.hashInt=a(function(){for(var e=this.hash(),r=0;r<arguments.length;r++)e.update(arguments[r]);return g1.intFromLE(e.digest()).umod(this.curve.n)},"hashInt");Fo.prototype.keyFromPublic=a(function(e){return sIe.fromPublic(this,e)},"keyFromPublic");Fo.prototype.keyFromSecret=a(function(e){return sIe.fromSecret(this,e)},"keyFromSecret");Fo.prototype.makeSignature=a(function(e){return e instanceof iIe?e:new iIe(this,e)},"makeSignature");Fo.prototype.encodePoint=a(function(e){var r=e.getY().toArray("le",this.encodingLength);return r[this.encodingLength-1]|=e.getX().isOdd()?128:0,r},"encodePoint");Fo.prototype.decodePoint=a(function(e){e=g1.parseBytes(e);var r=e.length-1,n=e.slice(0,r).concat(e[r]&-129),i=(e[r]&128)!==0,s=g1.intFromLE(n);return this.curve.pointFromY(s,i)},"decodePoint");Fo.prototype.encodeInt=a(function(e){return e.toArray("le",this.encodingLength)},"encodeInt");Fo.prototype.decodeInt=a(function(e){return g1.intFromLE(e)},"decodeInt");Fo.prototype.isPoint=a(function(e){return e instanceof this.pointClass},"isPoint")});var MX=v(uIe=>{"use strict";var py=uIe;py.version=FOe().version;py.utils=fc();py.rand=gX();py.curve=vX();py.curves=AP();py.ec=X4e();py.eddsa=cIe()});var dIe=v((TUr,lIe)=>{var RLt=MX().ec,yf=new RLt("secp256k1"),Qt=yf.curve,en=Qt.n.constructor;function PLt(t,e){let r=new en(e);if(r.cmp(Qt.p)>=0)return null;r=r.toRed(Qt.red);let n=r.redSqr().redIMul(r).redIAdd(Qt.b).redSqrt();t===3!==n.isOdd()&&(n=n.redNeg());let i=r.redSqr().redIMul(r);return n.redSqr().redISub(i.redIAdd(Qt.b)).isZero()?yf.keyPair({pub:{x:r,y:n}}):null}a(PLt,"loadCompressedPublicKey");function LLt(t,e,r){let n=new en(e),i=new en(r);if(n.cmp(Qt.p)>=0||i.cmp(Qt.p)>=0||(n=n.toRed(Qt.red),i=i.toRed(Qt.red),(t===6||t===7)&&i.isOdd()!==(t===7)))return null;let s=n.redSqr().redIMul(n);return i.redSqr().redISub(s.redIAdd(Qt.b)).isZero()?yf.keyPair({pub:{x:n,y:i}}):null}a(LLt,"loadUncompressedPublicKey");function l0(t){let e=t[0];switch(e){case 2:case 3:return t.length!==33?null:PLt(e,t.subarray(1,33));case 4:case 6:case 7:return t.length!==65?null:LLt(e,t.subarray(1,33),t.subarray(33,65));default:return null}}a(l0,"loadPublicKey");function _y(t,e){let r=e.encode(null,t.length===33);for(let n=0;n<t.length;++n)t[n]=r[n]}a(_y,"savePublicKey");lIe.exports={contextRandomize(){return 0},privateKeyVerify(t){let e=new en(t);return e.cmp(Qt.n)<0&&!e.isZero()?0:1},privateKeyNegate(t){let e=new en(t),r=Qt.n.sub(e).umod(Qt.n).toArrayLike(Uint8Array,"be",32);return t.set(r),0},privateKeyTweakAdd(t,e){let r=new en(e);if(r.cmp(Qt.n)>=0||(r.iadd(new en(t)),r.cmp(Qt.n)>=0&&r.isub(Qt.n),r.isZero()))return 1;let n=r.toArrayLike(Uint8Array,"be",32);return t.set(n),0},privateKeyTweakMul(t,e){let r=new en(e);if(r.cmp(Qt.n)>=0||r.isZero())return 1;r.imul(new en(t)),r.cmp(Qt.n)>=0&&(r=r.umod(Qt.n));let n=r.toArrayLike(Uint8Array,"be",32);return t.set(n),0},publicKeyVerify(t){return l0(t)===null?1:0},publicKeyCreate(t,e){let r=new en(e);if(r.cmp(Qt.n)>=0||r.isZero())return 1;let n=yf.keyFromPrivate(e).getPublic();return _y(t,n),0},publicKeyConvert(t,e){let r=l0(e);if(r===null)return 1;let n=r.getPublic();return _y(t,n),0},publicKeyNegate(t,e){let r=l0(e);if(r===null)return 1;let n=r.getPublic();return n.y=n.y.redNeg(),_y(t,n),0},publicKeyCombine(t,e){let r=new Array(e.length);for(let i=0;i<e.length;++i)if(r[i]=l0(e[i]),r[i]===null)return 1;let n=r[0].getPublic();for(let i=1;i<r.length;++i)n=n.add(r[i].pub);return n.isInfinity()?2:(_y(t,n),0)},publicKeyTweakAdd(t,e,r){let n=l0(e);if(n===null)return 1;if(r=new en(r),r.cmp(Qt.n)>=0)return 2;let i=n.getPublic().add(Qt.g.mul(r));return i.isInfinity()?2:(_y(t,i),0)},publicKeyTweakMul(t,e,r){let n=l0(e);if(n===null)return 1;if(r=new en(r),r.cmp(Qt.n)>=0||r.isZero())return 2;let i=n.getPublic().mul(r);return _y(t,i),0},signatureNormalize(t){let e=new en(t.subarray(0,32)),r=new en(t.subarray(32,64));return e.cmp(Qt.n)>=0||r.cmp(Qt.n)>=0?1:(r.cmp(yf.nh)===1&&t.set(Qt.n.sub(r).toArrayLike(Uint8Array,"be",32),32),0)},signatureExport(t,e){let r=e.subarray(0,32),n=e.subarray(32,64);if(new en(r).cmp(Qt.n)>=0||new en(n).cmp(Qt.n)>=0)return 1;let{output:i}=t,s=i.subarray(4,37);s[0]=0,s.set(r,1);let o=33,c=0;for(;o>1&&s[c]===0&&!(s[c+1]&128);--o,++c);if(s=s.subarray(c),s[0]&128||o>1&&s[0]===0&&!(s[1]&128))return 1;let u=i.subarray(39,72);u[0]=0,u.set(n,1);let l=33,d=0;for(;l>1&&u[d]===0&&!(u[d+1]&128);--l,++d);return u=u.subarray(d),u[0]&128||l>1&&u[0]===0&&!(u[1]&128)?1:(t.outputlen=6+o+l,i[0]=48,i[1]=t.outputlen-2,i[2]=2,i[3]=s.length,i.set(s,4),i[4+o]=2,i[5+o]=u.length,i.set(u,6+o),0)},signatureImport(t,e){if(e.length<8||e.length>72||e[0]!==48||e[1]!==e.length-2||e[2]!==2)return 1;let r=e[3];if(r===0||5+r>=e.length||e[4+r]!==2)return 1;let n=e[5+r];if(n===0||6+r+n!==e.length||e[4]&128||r>1&&e[4]===0&&!(e[5]&128)||e[r+6]&128||n>1&&e[r+6]===0&&!(e[r+7]&128))return 1;let i=e.subarray(4,4+r);if(i.length===33&&i[0]===0&&(i=i.subarray(1)),i.length>32)return 1;let s=e.subarray(6+r);if(s.length===33&&s[0]===0&&(s=s.slice(1)),s.length>32)throw new Error("S length is too long");let o=new en(i);o.cmp(Qt.n)>=0&&(o=new en(0));let c=new en(e.subarray(6+r));return c.cmp(Qt.n)>=0&&(c=new en(0)),t.set(o.toArrayLike(Uint8Array,"be",32),0),t.set(c.toArrayLike(Uint8Array,"be",32),32),0},ecdsaSign(t,e,r,n,i){if(i){let c=i;i=a(u=>{let l=c(e,r,null,n,u);if(!(l instanceof Uint8Array&&l.length===32))throw new Error("This is the way");return new en(l)},"noncefn")}let s=new en(r);if(s.cmp(Qt.n)>=0||s.isZero())return 1;let o;try{o=yf.sign(e,r,{canonical:!0,k:i,pers:n})}catch{return 1}return t.signature.set(o.r.toArrayLike(Uint8Array,"be",32),0),t.signature.set(o.s.toArrayLike(Uint8Array,"be",32),32),t.recid=o.recoveryParam,0},ecdsaVerify(t,e,r){let n={r:t.subarray(0,32),s:t.subarray(32,64)},i=new en(n.r),s=new en(n.s);if(i.cmp(Qt.n)>=0||s.cmp(Qt.n)>=0)return 1;if(s.cmp(yf.nh)===1||i.isZero()||s.isZero())return 3;let o=l0(r);if(o===null)return 2;let c=o.getPublic();return yf.verify(e,n,c)?0:3},ecdsaRecover(t,e,r,n){let i={r:e.slice(0,32),s:e.slice(32,64)},s=new en(i.r),o=new en(i.s);if(s.cmp(Qt.n)>=0||o.cmp(Qt.n)>=0)return 1;if(s.isZero()||o.isZero())return 2;let c;try{c=yf.recoverPubKey(n,i,r)}catch{return 2}return _y(t,c),0},ecdh(t,e,r,n,i,s,o){let c=l0(e);if(c===null)return 1;let u=new en(r);if(u.cmp(Qt.n)>=0||u.isZero())return 2;let l=c.getPublic().mul(u);if(i===void 0){let d=l.encode(null,!0),f=yf.hash().update(d).digest();for(let p=0;p<32;++p)t[p]=f[p]}else{s||(s=new Uint8Array(32));let d=l.getX().toArray("be",32);for(let h=0;h<32;++h)s[h]=d[h];o||(o=new Uint8Array(32));let f=l.getY().toArray("be",32);for(let h=0;h<32;++h)o[h]=f[h];let p=i(s,o,n);if(!(p instanceof Uint8Array&&p.length===t.length))return 2;t.set(p)}return 0}}});var pIe=v((AUr,fIe)=>{fIe.exports=dX()(dIe())});var _Ie=v((kUr,FX)=>{try{FX.exports=MOe()}catch{FX.exports=pIe()}});var lu=v(d0=>{"use strict";Object.defineProperty(d0,"__esModule",{value:!0});d0.testnet=d0.regtest=d0.bitcoin=void 0;d0.bitcoin={messagePrefix:`Bitcoin Signed Message:
2158
2158
  `,bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128};d0.regtest={messagePrefix:`Bitcoin Signed Message: